CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
32  public:
33 
35 
37  explicit MuonSeedCreator(const edm::ParameterSet& pset);
38 
41 
42  // Operations
43 
45  void setBField( const MagneticField* theField ){ BField = theField; };
46 
48  TrajectorySeed createSeed(int type, const SegmentContainer& seg, const std::vector<int>& layers, int NShower, int NShowerSeg );
49 
50 
51 
52  private:
53 
55  void estimatePtCSC(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
56 
58  void estimatePtOverlap(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
59 
61  void estimatePtDT(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
62 
64  void estimatePtSingle(const SegmentContainer& seg, const std::vector<int>& layers, double& pt, double& spt);
65 
67  void estimatePtShowering(int& NShowers, int& NShowerSeg, double& pt, double& spt);
68 
70  void weightedPt(const std::vector<double>& ptEstimate, const std::vector<double>& sptEstimate, double& ptAvg, double& sptAvg);
71 
73  std::vector<double> getPt(const std::vector<double>& vParameters, double eta, double dPhi);
74 
76  double scaledPhi(double dphi, double t1);
77 
78  // Miminum and maximum pt momentum of a track
82 
83  // Error on pt estimate which prevents weighted average from blowing up ( spt --> 0 )
84  double sysError;
85 
86  // Flag for internal debugging
87  bool debug;
88 
89  // Cache Magnetic Field for current event
91 
92  // seed parameters vectors
93  std::vector<double> DT12;
94  std::vector<double> DT13;
95  std::vector<double> DT14;
96  std::vector<double> DT23;
97  std::vector<double> DT24;
98  std::vector<double> DT34;
99 
100  std::vector<double> CSC01;
101  std::vector<double> CSC12;
102  std::vector<double> CSC02;
103  std::vector<double> CSC13;
104  std::vector<double> CSC03;
105  std::vector<double> CSC14;
106  std::vector<double> CSC23;
107  std::vector<double> CSC24;
108  std::vector<double> CSC34;
109 
110  std::vector<double> OL1213;
111  std::vector<double> OL1222;
112  std::vector<double> OL1232;
113  std::vector<double> OL2213;
114  std::vector<double> OL2222;
115 
116  std::vector<double> SME11;
117  std::vector<double> SME12;
118  std::vector<double> SME13;
119  std::vector<double> SME21;
120  std::vector<double> SME22;
121  std::vector<double> SME31;
122  std::vector<double> SME32;
123  std::vector<double> SME41;
124 
125  std::vector<double> SMB10;
126  std::vector<double> SMB11;
127  std::vector<double> SMB12;
128  std::vector<double> SMB20;
129  std::vector<double> SMB21;
130  std::vector<double> SMB22;
131  std::vector<double> SMB30;
132  std::vector<double> SMB31;
133  std::vector<double> SMB32;
134 
135  // dphi scaling factors
136 
137  std::vector<double> CSC01_1;
138  std::vector<double> CSC12_1;
139  std::vector<double> CSC12_2;
140  std::vector<double> CSC12_3;
141  std::vector<double> CSC13_2;
142  std::vector<double> CSC13_3;
143  std::vector<double> CSC14_3;
144  std::vector<double> CSC23_1;
145  std::vector<double> CSC23_2;
146  std::vector<double> CSC24_1;
147  std::vector<double> CSC34_1;
148 
149  std::vector<double> DT12_1;
150  std::vector<double> DT12_2;
151  std::vector<double> DT13_1;
152  std::vector<double> DT13_2;
153  std::vector<double> DT14_1;
154  std::vector<double> DT14_2;
155  std::vector<double> DT23_1;
156  std::vector<double> DT23_2;
157  std::vector<double> DT24_1;
158  std::vector<double> DT24_2;
159  std::vector<double> DT34_1;
160  std::vector<double> DT34_2;
161 
162  std::vector<double> OL_1213;
163  std::vector<double> OL_1222;
164  std::vector<double> OL_1232;
165  std::vector<double> OL_2213;
166  std::vector<double> OL_2222;
167 
168  std::vector<double> SMB_10S;
169  std::vector<double> SMB_11S;
170  std::vector<double> SMB_12S;
171  std::vector<double> SMB_20S;
172  std::vector<double> SMB_21S;
173  std::vector<double> SMB_22S;
174  std::vector<double> SMB_30S;
175  std::vector<double> SMB_31S;
176  std::vector<double> SMB_32S;
177 
178  std::vector<double> SME_11S;
179  std::vector<double> SME_12S;
180  std::vector<double> SME_13S;
181  std::vector<double> SME_21S;
182  std::vector<double> SME_22S;
183 
184 };
185 #endif
std::vector< double > OL2213
type
Definition: HCALResponse.h:21
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< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
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:17
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
double dPhi(double phi1, double phi2)
Definition: JetUtil.h:30
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