File indexing completed on 2025-08-05 08:18:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef genfit_MeasurementOnPlaneCreator_h
0030 #define genfit_MeasurementOnPlaneCreator_h
0031
0032 #include "AbsMeasurement.h"
0033 #include "HelixTrackModel.h"
0034
0035 #include <TObject.h>
0036 #include <TVector3.h>
0037
0038
0039 namespace genfit {
0040
0041
0042 enum eMeasurementType { Pixel = 0,
0043 Spacepoint,
0044 ProlateSpacepoint,
0045 StripU,
0046 StripV,
0047 StripUV,
0048 Wire,
0049 WirePoint,
0050 nMeasurementTypes
0051 };
0052
0053
0054
0055
0056
0057 class MeasurementCreator : public TObject {
0058
0059
0060 public:
0061
0062
0063 MeasurementCreator();
0064
0065 ~MeasurementCreator() {delete trackModel_;}
0066
0067
0068 void setTrackModel(const HelixTrackModel* model) {delete trackModel_; trackModel_ = model;}
0069 void setResolution(double resolution) {resolution_ = resolution;}
0070 void setResolutionWire(double resolutionWire) {resolutionWire_ = resolutionWire;}
0071 void setOutlierProb(double outlierProb) {outlierProb_ = outlierProb;}
0072 void setOutlierRange(double outlierRange) {outlierRange_ = outlierRange;}
0073 void setThetaDetPlane(double thetaDetPlane) {thetaDetPlane_ = thetaDetPlane;}
0074 void setPhiDetPlane(double phiDetPlane) {phiDetPlane_ = phiDetPlane;}
0075 void setWireDir(const TVector3 wireDir) {wireDir_ = wireDir; wireDir_.SetMag(1.);}
0076 void setMinDrift(double minDrift) {minDrift_ = minDrift;}
0077 void setMaxDrift(double maxDrift) {maxDrift_ = maxDrift;}
0078 void setIdealLRResolution(bool idealLRResolution) {idealLRResolution_ = idealLRResolution;}
0079 void setUseSkew(bool useSkew) {useSkew_ = useSkew;}
0080 void setSkewAngle(double skewAngle) {skewAngle_ = skewAngle;}
0081 void setNSuperLayer(int nSuperLayer) {nSuperLayer_ = nSuperLayer;}
0082 void setDebug(bool debug) {debug_ = debug;}
0083
0084
0085 std::vector<genfit::AbsMeasurement*> create(eMeasurementType, double tracklength, bool& outlier, int& lr);
0086 std::vector<genfit::AbsMeasurement*> create(eMeasurementType type, double tracklength) {
0087 bool dummy1;
0088 int dummy2;
0089 return create(type, tracklength, dummy1, dummy2);
0090 }
0091
0092 void reset();
0093
0094 private:
0095
0096 const HelixTrackModel* trackModel_;
0097
0098 double resolution_;
0099 double resolutionWire_;
0100
0101 double outlierProb_;
0102 double outlierRange_;
0103
0104
0105 double thetaDetPlane_;
0106 double phiDetPlane_;
0107
0108
0109 int wireCounter_;
0110 TVector3 wireDir_;
0111 double minDrift_;
0112 double maxDrift_;
0113 bool idealLRResolution_;
0114 bool useSkew_;
0115 double skewAngle_;
0116 int nSuperLayer_;
0117
0118
0119 int measurementCounter_;
0120 bool debug_;
0121
0122
0123 public:
0124 ClassDef(MeasurementCreator,1)
0125
0126 };
0127
0128 }
0129
0130
0131 #endif