SND@LHC Software
Loading...
Searching...
No Matches
MeasurementCreator.h
Go to the documentation of this file.
1/* Copyright 2008-2010, Technische Universitaet Muenchen,
2 Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3
4 This file is part of GENFIT.
5
6 GENFIT is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 GENFIT is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18*/
29#ifndef genfit_MeasurementOnPlaneCreator_h
30#define genfit_MeasurementOnPlaneCreator_h
31
32#include "AbsMeasurement.h"
33#include "HelixTrackModel.h"
34
35#include <TObject.h>
36#include <TVector3.h>
37
38
39namespace genfit {
40
41
50
51
55class MeasurementCreator : public TObject {
56
57
58 public:
59
60 // Constructors/Destructors ---------
62
64
66 void setTrackModel(const HelixTrackModel* model) {delete trackModel_; trackModel_ = model;}
67 void setResolution(double resolution) {resolution_ = resolution;}
68 void setResolutionWire(double resolutionWire) {resolutionWire_ = resolutionWire;}
69 void setOutlierProb(double outlierProb) {outlierProb_ = outlierProb;}
70 void setOutlierRange(double outlierRange) {outlierRange_ = outlierRange;}
71 void setThetaDetPlane(double thetaDetPlane) {thetaDetPlane_ = thetaDetPlane;}
72 void setPhiDetPlane(double phiDetPlane) {phiDetPlane_ = phiDetPlane;}
73 void setWireDir(const TVector3 wireDir) {wireDir_ = wireDir; wireDir_.SetMag(1.);}
74 void setMinDrift(double minDrift) {minDrift_ = minDrift;}
75 void setMaxDrift(double maxDrift) {maxDrift_ = maxDrift;}
76 void setIdealLRResolution(bool idealLRResolution) {idealLRResolution_ = idealLRResolution;}
77 void setUseSkew(bool useSkew) {useSkew_ = useSkew;}
78 void setSkewAngle(double skewAngle) {skewAngle_ = skewAngle;}
79 void setNSuperLayer(int nSuperLayer) {nSuperLayer_ = nSuperLayer;}
80 void setDebug(bool debug) {debug_ = debug;}
81
82
83 std::vector<genfit::AbsMeasurement*> create(eMeasurementType, double tracklength, bool& outlier, int& lr);
84 std::vector<genfit::AbsMeasurement*> create(eMeasurementType type, double tracklength) {
85 bool dummy1;
86 int dummy2;
87 return create(type, tracklength, dummy1, dummy2);
88 }
89
90 void reset();
91
92 private:
93
94 const HelixTrackModel* trackModel_; // ownership
95
96 double resolution_; // cm; resolution of generated measurements
97 double resolutionWire_; // cm; resolution in wire direction of generated measurements (wire and prolate sp measurements)
98
101
102 // planarMeasurement specific
103 double thetaDetPlane_; // degree
104 double phiDetPlane_; // degree
105
106 // WireMeasurement specific
108 TVector3 wireDir_;
109 double minDrift_;
110 double maxDrift_;
111 bool idealLRResolution_; // resolve the l/r ambiguities of the wire measurements
115
116 // misc
118 bool debug_;
119
120
121 public:
122 ClassDef(MeasurementCreator,1)
123
124};
125
126} /* End of namespace genfit */
129#endif // genfit_MeasurementOnPlaneCreator_h
Helix track model for testing purposes.
Create different measurement types along a HelixTrackModel for testing purposes.
void setMaxDrift(double maxDrift)
void setSkewAngle(double skewAngle)
void setPhiDetPlane(double phiDetPlane)
void setResolutionWire(double resolutionWire)
void setOutlierRange(double outlierRange)
std::vector< genfit::AbsMeasurement * > create(eMeasurementType type, double tracklength)
void setMinDrift(double minDrift)
void setWireDir(const TVector3 wireDir)
void setResolution(double resolution)
std::vector< genfit::AbsMeasurement * > create(eMeasurementType, double tracklength, bool &outlier, int &lr)
void setNSuperLayer(int nSuperLayer)
const HelixTrackModel * trackModel_
void setOutlierProb(double outlierProb)
void setTrackModel(const HelixTrackModel *model)
Takes ownership!
void setThetaDetPlane(double thetaDetPlane)
void setIdealLRResolution(bool idealLRResolution)
Matrix inversion tools.
Definition AbsBField.h:29