CMS 3D CMS Logo

MuonSeedCreator.h
Go to the documentation of this file.
1 #ifndef RecoMuon_SeedGenerator_MuonSeedCreator_H
2 #define RecoMuon_SeedGenerator_MuonSeedCreator_H
3 
19 
21 
22 #include <vector>
23 
24 class RecHit;
25 class Plane;
26 class GeomDet;
27 class MagneticField;
29 
31 public:
33 
35  explicit MuonSeedCreator(const edm::ParameterSet& pset);
36 
39 
40  // Operations
41 
43  void setBField(const MagneticField* theField) { BField = theField; };
44 
47  int type, const SegmentContainer& seg, const std::vector<int>& layers, int NShower, int NShowerSeg);
48 
49 private:
51  void estimatePtCSC(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
52 
54  void estimatePtOverlap(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
55 
57  void estimatePtDT(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
58 
60  void estimatePtSingle(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
61 
63  void estimatePtShowering(int& NShowers, int& NShowerSeg, double& pt, double& spt);
64 
66  void weightedPt(const std::vector<double>& ptEstimate,
67  const std::vector<double>& sptEstimate,
68  double& ptAvg,
69  double& sptAvg);
70 
72  std::vector<double> getPt(const std::vector<double>& vParameters, double eta, double dPhi);
73 
75  double scaledPhi(double dphi, double t1);
76 
77  // Miminum and maximum pt momentum of a track
81 
82  // Error on pt estimate which prevents weighted average from blowing up ( spt --> 0 )
83  double sysError;
84 
85  // Flag for internal debugging
86  bool debug;
87 
88  // Cache Magnetic Field for current event
90 
91  // seed parameters vectors
92  std::vector<double> DT12;
93  std::vector<double> DT13;
94  std::vector<double> DT14;
95  std::vector<double> DT23;
96  std::vector<double> DT24;
97  std::vector<double> DT34;
98 
99  std::vector<double> CSC01;
100  std::vector<double> CSC12;
101  std::vector<double> CSC02;
102  std::vector<double> CSC13;
103  std::vector<double> CSC03;
104  std::vector<double> CSC14;
105  std::vector<double> CSC23;
106  std::vector<double> CSC24;
107  std::vector<double> CSC34;
108 
109  std::vector<double> OL1213;
110  std::vector<double> OL1222;
111  std::vector<double> OL1232;
112  std::vector<double> OL2213;
113  std::vector<double> OL2222;
114 
115  std::vector<double> SME11;
116  std::vector<double> SME12;
117  std::vector<double> SME13;
118  std::vector<double> SME21;
119  std::vector<double> SME22;
120  std::vector<double> SME31;
121  std::vector<double> SME32;
122  std::vector<double> SME41;
123 
124  std::vector<double> SMB10;
125  std::vector<double> SMB11;
126  std::vector<double> SMB12;
127  std::vector<double> SMB20;
128  std::vector<double> SMB21;
129  std::vector<double> SMB22;
130  std::vector<double> SMB30;
131  std::vector<double> SMB31;
132  std::vector<double> SMB32;
133 
134  // dphi scaling factors
135 
136  std::vector<double> CSC01_1;
137  std::vector<double> CSC12_1;
138  std::vector<double> CSC12_2;
139  std::vector<double> CSC12_3;
140  std::vector<double> CSC13_2;
141  std::vector<double> CSC13_3;
142  std::vector<double> CSC14_3;
143  std::vector<double> CSC23_1;
144  std::vector<double> CSC23_2;
145  std::vector<double> CSC24_1;
146  std::vector<double> CSC34_1;
147 
148  std::vector<double> DT12_1;
149  std::vector<double> DT12_2;
150  std::vector<double> DT13_1;
151  std::vector<double> DT13_2;
152  std::vector<double> DT14_1;
153  std::vector<double> DT14_2;
154  std::vector<double> DT23_1;
155  std::vector<double> DT23_2;
156  std::vector<double> DT24_1;
157  std::vector<double> DT24_2;
158  std::vector<double> DT34_1;
159  std::vector<double> DT34_2;
160 
161  std::vector<double> OL_1213;
162  std::vector<double> OL_1222;
163  std::vector<double> OL_1232;
164  std::vector<double> OL_2213;
165  std::vector<double> OL_2222;
166 
167  std::vector<double> SMB_10S;
168  std::vector<double> SMB_11S;
169  std::vector<double> SMB_12S;
170  std::vector<double> SMB_20S;
171  std::vector<double> SMB_21S;
172  std::vector<double> SMB_22S;
173  std::vector<double> SMB_30S;
174  std::vector<double> SMB_31S;
175  std::vector<double> SMB_32S;
176 
177  std::vector<double> SME_11S;
178  std::vector<double> SME_12S;
179  std::vector<double> SME_13S;
180  std::vector<double> SME_21S;
181  std::vector<double> SME_22S;
182 };
183 #endif
std::vector< double > OL2213
std::vector< double > DT13_2
std::vector< double > SMB32
std::vector< double > CSC23_1
std::vector< double > SMB_30S
std::vector< double > SMB_21S
std::vector< double > DT14_2
std::vector< double > DT23_2
std::vector< double > DT34_1
std::vector< double > DT14_1
std::vector< double > SME_22S
std::vector< double > SMB22
std::vector< double > CSC01
std::vector< double > OL1232
std::vector< double > DT34_2
std::vector< double > CSC24
void estimatePtDT(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from DT measurements.
void weightedPt(const std::vector< double > &ptEstimate, const std::vector< double > &sptEstimate, double &ptAvg, double &sptAvg)
Compute weighted mean pt from different pt estimators.
std::vector< double > CSC23_2
std::vector< double > SMB20
std::vector< double > CSC14
std::vector< double > DT34
std::vector< double > CSC12_2
std::vector< double > CSC13_2
std::vector< double > CSC12_1
std::vector< double > SME12
std::vector< double > SME22
TrajectorySeed createSeed(int type, const SegmentContainer &seg, const std::vector< int > &layers, int NShower, int NShowerSeg)
Create a seed from set of segments.
MuonTransientTrackingRecHit::MuonRecHitContainer SegmentContainer
std::vector< double > SME21
void estimatePtOverlap(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from CSC + DT measurements.
std::vector< double > CSC13_3
MuonSeedCreator(const edm::ParameterSet &pset)
Constructor.
const MagneticField * BField
Definition: Plane.h:16
void estimatePtSingle(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from single segment.
std::vector< double > CSC34
std::vector< double > SME13
void estimatePtCSC(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from CSC measurements.
std::vector< double > DT13
std::vector< double > CSC12_3
std::vector< double > SMB10
std::vector< double > CSC12
std::vector< double > DT12_2
std::vector< double > OL_1222
std::vector< double > OL1222
void estimatePtShowering(int &NShowers, int &NShowerSeg, double &pt, double &spt)
Estimate transverse momentum of track from showering segment.
std::vector< double > CSC23
std::vector< double > CSC13
void setBField(const MagneticField *theField)
Cache Magnetic Field for current event.
std::vector< double > DT23_1
std::vector< double > SMB30
std::vector< double > SMB_10S
std::vector< double > DT24_2
std::vector< double > SMB_31S
std::vector< double > SMB_32S
std::vector< double > DT12_1
std::vector< double > CSC14_3
std::vector< double > DT12
std::vector< double > SMB_20S
std::vector< double > SMB_11S
std::vector< double > OL1213
std::vector< double > getPt(const std::vector< double > &vParameters, double eta, double dPhi)
Compute pt from parameters.
std::vector< double > SMB12
std::vector< double > SME_21S
std::vector< double > SME_12S
std::vector< double > OL2222
std::vector< double > SME_11S
std::vector< double > DT14
std::vector< double > DT13_1
std::vector< double > SME31
std::vector< double > DT24
std::vector< double > OL_2213
std::vector< double > DT23
std::vector< double > SME32
std::vector< double > CSC24_1
std::vector< double > SMB21
std::vector< double > CSC01_1
double scaledPhi(double dphi, double t1)
Scale the dPhi from segment position.
~MuonSeedCreator()
Destructor.
std::vector< double > SME_13S
std::vector< double > OL_2222
std::vector< double > SMB31
std::vector< double > CSC03
std::vector< double > CSC02
std::vector< double > DT24_1
std::vector< double > CSC34_1
std::vector< double > SME11
std::vector< double > SMB11
std::vector< MuonRecHitPointer > MuonRecHitContainer
std::vector< double > OL_1232
std::vector< double > SMB_12S
std::vector< double > SME41
std::vector< double > OL_1213
std::vector< double > SMB_22S