GENFIT Rev: NoNumberAvailable
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*/
23
24
28
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
52
53
57class MeasurementCreator : public TObject {
58
59
60 public:
61
62 // Constructors/Destructors ---------
64
66
68 void setTrackModel(const HelixTrackModel* model) {delete trackModel_; trackModel_ = model;}
69 void setResolution(double resolution) {resolution_ = resolution;}
70 void setResolutionWire(double resolutionWire) {resolutionWire_ = resolutionWire;}
71 void setOutlierProb(double outlierProb) {outlierProb_ = outlierProb;}
72 void setOutlierRange(double outlierRange) {outlierRange_ = outlierRange;}
73 void setThetaDetPlane(double thetaDetPlane) {thetaDetPlane_ = thetaDetPlane;}
74 void setPhiDetPlane(double phiDetPlane) {phiDetPlane_ = phiDetPlane;}
75 void setWireDir(const TVector3 wireDir) {wireDir_ = wireDir; wireDir_.SetMag(1.);}
76 void setMinDrift(double minDrift) {minDrift_ = minDrift;}
77 void setMaxDrift(double maxDrift) {maxDrift_ = maxDrift;}
78 void setIdealLRResolution(bool idealLRResolution) {idealLRResolution_ = idealLRResolution;}
79 void setUseSkew(bool useSkew) {useSkew_ = useSkew;}
80 void setSkewAngle(double skewAngle) {skewAngle_ = skewAngle;}
81 void setNSuperLayer(int nSuperLayer) {nSuperLayer_ = nSuperLayer;}
82 void setDebug(bool debug) {debug_ = debug;}
83
84
85 std::vector<genfit::AbsMeasurement*> create(eMeasurementType, double tracklength, bool& outlier, int& lr);
86 std::vector<genfit::AbsMeasurement*> create(eMeasurementType type, double tracklength) {
87 bool dummy1;
88 int dummy2;
89 return create(type, tracklength, dummy1, dummy2);
90 }
91
92 void reset();
93
94 private:
95
96 const HelixTrackModel* trackModel_; // ownership
97
98 double resolution_; // cm; resolution of generated measurements
99 double resolutionWire_; // cm; resolution in wire direction of generated measurements (wire and prolate sp measurements)
100
103
104 // planarMeasurement specific
105 double thetaDetPlane_; // degree
106 double phiDetPlane_; // degree
107
108 // WireMeasurement specific
110 TVector3 wireDir_;
111 double minDrift_;
112 double maxDrift_;
113 bool idealLRResolution_; // resolve the l/r ambiguities of the wire measurements
117
118 // misc
120 bool debug_;
121
122
123 public:
124 ClassDef(MeasurementCreator,1)
125
126};
127
128} /* End of namespace genfit */
130
131#endif // genfit_MeasurementOnPlaneCreator_h
Helix track model 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)
Defines for I/O streams used for error and debug printing.