EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MeasurementCreator.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MeasurementCreator.h
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 
39 namespace genfit {
40 
41 
51  };
52 
53 
57 class 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 
101  double outlierProb_;
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
114  bool useSkew_;
115  double skewAngle_;
117 
118  // misc
120  bool debug_;
121 
122 
123  public:
124  ClassDef(MeasurementCreator,1)
125 
126 };
127 
128 } /* End of namespace genfit */
131 #endif // genfit_MeasurementOnPlaneCreator_h