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
MuonSeedCreator::SMB_32S
std::vector< double > SMB_32S
Definition: MuonSeedCreator.h:175
TrajectoryStateOnSurface.h
MuonSeedCreator::CSC34_1
std::vector< double > CSC34_1
Definition: MuonSeedCreator.h:146
MuonSeedCreator::CSC23
std::vector< double > CSC23
Definition: MuonSeedCreator.h:105
GeomDet
Definition: GeomDet.h:27
MuonSeedCreator::DT12
std::vector< double > DT12
Definition: MuonSeedCreator.h:92
MuonSeedCreator::SME_22S
std::vector< double > SME_22S
Definition: MuonSeedCreator.h:181
MuonSeedCreator::SMB30
std::vector< double > SMB30
Definition: MuonSeedCreator.h:130
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
MuonSeedCreator::CSC12_3
std::vector< double > CSC12_3
Definition: MuonSeedCreator.h:139
MuonSeedCreator::debug
bool debug
Definition: MuonSeedCreator.h:86
MuonSeedCreator::theMinMomentum
float theMinMomentum
Definition: MuonSeedCreator.h:78
MuonSeedCreator::DT13_1
std::vector< double > DT13_1
Definition: MuonSeedCreator.h:150
MuonSeedCreator::estimatePtSingle
void estimatePtSingle(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from single segment.
Definition: MuonSeedCreator.cc:773
MuonSeedCreator::OL1213
std::vector< double > OL1213
Definition: MuonSeedCreator.h:109
MuonSeedCreator::DT13
std::vector< double > DT13
Definition: MuonSeedCreator.h:93
MuonSeedCreator::OL_1222
std::vector< double > OL_1222
Definition: MuonSeedCreator.h:162
MuonTransientTrackingRecHit::MuonRecHitContainer
std::vector< MuonRecHitPointer > MuonRecHitContainer
Definition: MuonTransientTrackingRecHit.h:26
MuonSeedCreator::CSC12_2
std::vector< double > CSC12_2
Definition: MuonSeedCreator.h:138
MuonTransientTrackingRecHit
Definition: MuonTransientTrackingRecHit.h:19
MuonTransientTrackingRecHit.h
MuonSeedCreator::CSC01_1
std::vector< double > CSC01_1
Definition: MuonSeedCreator.h:136
MuonSeedCreator::DT23_1
std::vector< double > DT23_1
Definition: MuonSeedCreator.h:154
MuonSeedCreator::SME11
std::vector< double > SME11
Definition: MuonSeedCreator.h:115
MuonSeedCreator::estimatePtCSC
void estimatePtCSC(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from CSC measurements.
Definition: MuonSeedCreator.cc:324
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
MuonSeedCreator::SMB20
std::vector< double > SMB20
Definition: MuonSeedCreator.h:127
MuonSeedCreator::DT14_1
std::vector< double > DT14_1
Definition: MuonSeedCreator.h:152
MuonSeedCreator::SMB11
std::vector< double > SMB11
Definition: MuonSeedCreator.h:125
PVValHelper::eta
Definition: PVValidationHelpers.h:69
MuonSeedCreator::defaultMomentum
float defaultMomentum
Definition: MuonSeedCreator.h:80
MuonSeedCreator::SMB_30S
std::vector< double > SMB_30S
Definition: MuonSeedCreator.h:173
HLT_2018_cff.dPhi
dPhi
Definition: HLT_2018_cff.py:12290
MuonSeedCreator::CSC12
std::vector< double > CSC12
Definition: MuonSeedCreator.h:100
MuonSeedCreator::SME_13S
std::vector< double > SME_13S
Definition: MuonSeedCreator.h:179
MuonSeedCreator::SMB31
std::vector< double > SMB31
Definition: MuonSeedCreator.h:131
MuonSeedCreator::SME22
std::vector< double > SME22
Definition: MuonSeedCreator.h:119
MuonSeedCreator::DT34_1
std::vector< double > DT34_1
Definition: MuonSeedCreator.h:158
MuonSeedCreator::OL1232
std::vector< double > OL1232
Definition: MuonSeedCreator.h:111
MuonSeedCreator::CSC03
std::vector< double > CSC03
Definition: MuonSeedCreator.h:103
TrajectorySeed.h
MuonSeedCreator::estimatePtShowering
void estimatePtShowering(int &NShowers, int &NShowerSeg, double &pt, double &spt)
Estimate transverse momentum of track from showering segment.
Definition: MuonSeedCreator.cc:909
MuonSeedCreator::OL_2222
std::vector< double > OL_2222
Definition: MuonSeedCreator.h:165
MuonSeedCreator::CSC13_3
std::vector< double > CSC13_3
Definition: MuonSeedCreator.h:141
MuonSeedCreator::SME13
std::vector< double > SME13
Definition: MuonSeedCreator.h:117
MuonSeedCreator::CSC24
std::vector< double > CSC24
Definition: MuonSeedCreator.h:106
MuonSeedCreator::DT24_2
std::vector< double > DT24_2
Definition: MuonSeedCreator.h:157
MuonSeedCreator::DT23_2
std::vector< double > DT23_2
Definition: MuonSeedCreator.h:155
edm::ParameterSet
Definition: ParameterSet.h:36
MuonSeedCreator::SMB10
std::vector< double > SMB10
Definition: MuonSeedCreator.h:124
MuonSeedCreator::theMaxMomentum
float theMaxMomentum
Definition: MuonSeedCreator.h:79
MuonSeedCreator::CSC12_1
std::vector< double > CSC12_1
Definition: MuonSeedCreator.h:137
MuonSeedCreator::DT12_2
std::vector< double > DT12_2
Definition: MuonSeedCreator.h:149
MuonSeedCreator::sysError
double sysError
Definition: MuonSeedCreator.h:83
MuonSeedCreator::OL_2213
std::vector< double > OL_2213
Definition: MuonSeedCreator.h:164
MuonSeedCreator::DT23
std::vector< double > DT23
Definition: MuonSeedCreator.h:95
MuonSeedCreator::DT14_2
std::vector< double > DT14_2
Definition: MuonSeedCreator.h:153
MuonSeedCreator::SMB32
std::vector< double > SMB32
Definition: MuonSeedCreator.h:132
MuonSeedCreator::SMB12
std::vector< double > SMB12
Definition: MuonSeedCreator.h:126
MuonSeedCreator::scaledPhi
double scaledPhi(double dphi, double t1)
Scale the dPhi from segment position.
Definition: MuonSeedCreator.cc:1013
MuonSeedCreator::CSC24_1
std::vector< double > CSC24_1
Definition: MuonSeedCreator.h:145
MuonSeedCreator::SMB_11S
std::vector< double > SMB_11S
Definition: MuonSeedCreator.h:168
MuonSeedCreator::SME32
std::vector< double > SME32
Definition: MuonSeedCreator.h:121
MuonSeedCreator::CSC14
std::vector< double > CSC14
Definition: MuonSeedCreator.h:104
MuonSeedCreator::SME_12S
std::vector< double > SME_12S
Definition: MuonSeedCreator.h:178
MuonSeedCreator::OL2222
std::vector< double > OL2222
Definition: MuonSeedCreator.h:113
MuonSeedCreator::SMB_10S
std::vector< double > SMB_10S
Definition: MuonSeedCreator.h:167
MuonSeedCreator::MuonSeedCreator
MuonSeedCreator(const edm::ParameterSet &pset)
Constructor.
Definition: MuonSeedCreator.cc:35
MuonSeedCreator::SMB22
std::vector< double > SMB22
Definition: MuonSeedCreator.h:129
MuonSeedCreator::OL_1213
std::vector< double > OL_1213
Definition: MuonSeedCreator.h:161
MuonSeedCreator::~MuonSeedCreator
~MuonSeedCreator()
Destructor.
Definition: MuonSeedCreator.cc:136
MuonSeedCreator::DT24_1
std::vector< double > DT24_1
Definition: MuonSeedCreator.h:156
MuonSeedCreator::setBField
void setBField(const MagneticField *theField)
Cache Magnetic Field for current event.
Definition: MuonSeedCreator.h:43
MuonSeedCreator::SME31
std::vector< double > SME31
Definition: MuonSeedCreator.h:120
MuonSeedCreator::SMB_12S
std::vector< double > SMB_12S
Definition: MuonSeedCreator.h:169
MuonSeedCreator::DT24
std::vector< double > DT24
Definition: MuonSeedCreator.h:96
type
type
Definition: HCALResponse.h:21
MuonSeedCreator
Definition: MuonSeedCreator.h:30
MuonSeedCreator::SME21
std::vector< double > SME21
Definition: MuonSeedCreator.h:118
MuonSeedCreator::CSC13
std::vector< double > CSC13
Definition: MuonSeedCreator.h:102
MuonSeedCreator::estimatePtOverlap
void estimatePtOverlap(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from CSC + DT measurements.
Definition: MuonSeedCreator.cc:643
MuonSeedCreator::BField
const MagneticField * BField
Definition: MuonSeedCreator.h:89
MuonSeedCreator::SMB_31S
std::vector< double > SMB_31S
Definition: MuonSeedCreator.h:174
MuonSeedCreator::OL1222
std::vector< double > OL1222
Definition: MuonSeedCreator.h:110
MuonSeedCreator::DT12_1
std::vector< double > DT12_1
Definition: MuonSeedCreator.h:148
MuonSeedCreator::CSC23_2
std::vector< double > CSC23_2
Definition: MuonSeedCreator.h:144
MuonSeedCreator::OL2213
std::vector< double > OL2213
Definition: MuonSeedCreator.h:112
Plane
Definition: Plane.h:16
TrajectorySeed
Definition: TrajectorySeed.h:17
MuonSeedCreator::DT13_2
std::vector< double > DT13_2
Definition: MuonSeedCreator.h:151
MuonSeedCreator::SMB_20S
std::vector< double > SMB_20S
Definition: MuonSeedCreator.h:170
MuonSeedCreator::SegmentContainer
MuonTransientTrackingRecHit::MuonRecHitContainer SegmentContainer
Definition: MuonSeedCreator.h:32
MuonSeedCreator::SME12
std::vector< double > SME12
Definition: MuonSeedCreator.h:116
MuonSeedCreator::getPt
std::vector< double > getPt(const std::vector< double > &vParameters, double eta, double dPhi)
Compute pt from parameters.
Definition: MuonSeedCreator.cc:1001
MuonSeedCreator::DT34
std::vector< double > DT34
Definition: MuonSeedCreator.h:97
MuonSeedCreator::SMB_21S
std::vector< double > SMB_21S
Definition: MuonSeedCreator.h:171
MuonSeedCreator::CSC02
std::vector< double > CSC02
Definition: MuonSeedCreator.h:101
MuonSeedCreator::CSC13_2
std::vector< double > CSC13_2
Definition: MuonSeedCreator.h:140
MuonSeedCreator::CSC23_1
std::vector< double > CSC23_1
Definition: MuonSeedCreator.h:143
MuonSeedCreator::SME_21S
std::vector< double > SME_21S
Definition: MuonSeedCreator.h:180
ParameterSet.h
MuonSeedCreator::DT34_2
std::vector< double > DT34_2
Definition: MuonSeedCreator.h:159
MuonSeedCreator::DT14
std::vector< double > DT14
Definition: MuonSeedCreator.h:94
MagneticField
Definition: MagneticField.h:19
MuonSeedCreator::CSC01
std::vector< double > CSC01
Definition: MuonSeedCreator.h:99
MuonSeedCreator::estimatePtDT
void estimatePtDT(const SegmentContainer &seg, const std::vector< int > &layers, double &pt, double &spt)
Estimate transverse momentum of track from DT measurements.
Definition: MuonSeedCreator.cc:494
MuonSeedCreator::weightedPt
void weightedPt(const std::vector< double > &ptEstimate, const std::vector< double > &sptEstimate, double &ptAvg, double &sptAvg)
Compute weighted mean pt from different pt estimators.
Definition: MuonSeedCreator.cc:934
MuonSeedCreator::CSC34
std::vector< double > CSC34
Definition: MuonSeedCreator.h:107
MuonSeedCreator::SME_11S
std::vector< double > SME_11S
Definition: MuonSeedCreator.h:177
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
MuonSeedCreator::SMB_22S
std::vector< double > SMB_22S
Definition: MuonSeedCreator.h:172
MuonSeedCreator::createSeed
TrajectorySeed createSeed(int type, const SegmentContainer &seg, const std::vector< int > &layers, int NShower, int NShowerSeg)
Create a seed from set of segments.
Definition: MuonSeedCreator.cc:145
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
MuonSeedCreator::SMB21
std::vector< double > SMB21
Definition: MuonSeedCreator.h:128
MuonSeedCreator::OL_1232
std::vector< double > OL_1232
Definition: MuonSeedCreator.h:163
MuonSeedCreator::SME41
std::vector< double > SME41
Definition: MuonSeedCreator.h:122
MuonSeedCreator::CSC14_3
std::vector< double > CSC14_3
Definition: MuonSeedCreator.h:142