1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
#ifndef DataFormats_Scouting_Run3ScoutingMuon_h
#define DataFormats_Scouting_Run3ScoutingMuon_h
#include <vector>
#include "DataFormats/Scouting/interface/Run3ScoutingHitPatternPOD.h"
// Class for holding muon information, for use in data scouting
// IMPORTANT: the content of this class should be changed only in backwards compatible ways!
class Run3ScoutingMuon {
public:
//constructor with values for all data fields
Run3ScoutingMuon(float pt,
float eta,
float phi,
float m,
unsigned int type,
int charge,
float normalizedChi2,
float ecalIso,
float hcalIso,
float trackIso,
int nValidStandAloneMuonHits,
int nStandAloneMuonMatchedStations,
int nValidRecoMuonHits,
int nRecoMuonChambers,
int nRecoMuonChambersCSCorDT,
int nRecoMuonMatches,
int nRecoMuonMatchedStations,
unsigned int nRecoMuonExpectedMatchedStations,
unsigned int recoMuonStationMask,
int nRecoMuonMatchedRPCLayers,
unsigned int recoMuonRPClayerMask,
int nValidPixelHits,
int nValidStripHits,
int nPixelLayersWithMeasurement,
int nTrackerLayersWithMeasurement,
float trk_chi2,
float trk_ndof,
float trk_dxy,
float trk_dz,
float trk_qoverp,
float trk_lambda,
float trk_pt,
float trk_phi,
float trk_eta,
float trk_dxyError,
float trk_dzError,
float trk_qoverpError,
float trk_lambdaError,
float trk_phiError,
float trk_dsz,
float trk_dszError,
float trk_qoverp_lambda_cov,
float trk_qoverp_phi_cov,
float trk_qoverp_dxy_cov,
float trk_qoverp_dsz_cov,
float trk_lambda_phi_cov,
float trk_lambda_dxy_cov,
float trk_lambda_dsz_cov,
float trk_phi_dxy_cov,
float trk_phi_dsz_cov,
float trk_dxy_dsz_cov,
float trk_vx,
float trk_vy,
float trk_vz,
std::vector<int> vtxIndx,
Run3ScoutingHitPatternPOD trk_hitPattern)
: pt_(pt),
eta_(eta),
phi_(phi),
m_(m),
type_(type),
charge_(charge),
normalizedChi2_(normalizedChi2),
ecalIso_(ecalIso),
hcalIso_(hcalIso),
trackIso_(trackIso),
nValidStandAloneMuonHits_(nValidStandAloneMuonHits),
nStandAloneMuonMatchedStations_(nStandAloneMuonMatchedStations),
nValidRecoMuonHits_(nValidRecoMuonHits),
nRecoMuonChambers_(nRecoMuonChambers),
nRecoMuonChambersCSCorDT_(nRecoMuonChambersCSCorDT),
nRecoMuonMatches_(nRecoMuonMatches),
nRecoMuonMatchedStations_(nRecoMuonMatchedStations),
nRecoMuonExpectedMatchedStations_(nRecoMuonExpectedMatchedStations),
recoMuonStationMask_(recoMuonStationMask),
nRecoMuonMatchedRPCLayers_(nRecoMuonMatchedRPCLayers),
recoMuonRPClayerMask_(recoMuonRPClayerMask),
nValidPixelHits_(nValidPixelHits),
nValidStripHits_(nValidStripHits),
nPixelLayersWithMeasurement_(nPixelLayersWithMeasurement),
nTrackerLayersWithMeasurement_(nTrackerLayersWithMeasurement),
trk_chi2_(trk_chi2),
trk_ndof_(trk_ndof),
trk_dxy_(trk_dxy),
trk_dz_(trk_dz),
trk_qoverp_(trk_qoverp),
trk_lambda_(trk_lambda),
trk_pt_(trk_pt),
trk_phi_(trk_phi),
trk_eta_(trk_eta),
trk_dxyError_(trk_dxyError),
trk_dzError_(trk_dzError),
trk_qoverpError_(trk_qoverpError),
trk_lambdaError_(trk_lambdaError),
trk_phiError_(trk_phiError),
trk_dsz_(trk_dsz),
trk_dszError_(trk_dszError),
trk_qoverp_lambda_cov_(trk_qoverp_lambda_cov),
trk_qoverp_phi_cov_(trk_qoverp_phi_cov),
trk_qoverp_dxy_cov_(trk_qoverp_dxy_cov),
trk_qoverp_dsz_cov_(trk_qoverp_dsz_cov),
trk_lambda_phi_cov_(trk_lambda_phi_cov),
trk_lambda_dxy_cov_(trk_lambda_dxy_cov),
trk_lambda_dsz_cov_(trk_lambda_dsz_cov),
trk_phi_dxy_cov_(trk_phi_dxy_cov),
trk_phi_dsz_cov_(trk_phi_dsz_cov),
trk_dxy_dsz_cov_(trk_dxy_dsz_cov),
trk_vx_(trk_vx),
trk_vy_(trk_vy),
trk_vz_(trk_vz),
vtxIndx_(std::move(vtxIndx)),
trk_hitPattern_(std::move(trk_hitPattern)) {}
//default constructor
Run3ScoutingMuon()
: pt_(0),
eta_(0),
phi_(0),
m_(0),
type_(0),
charge_(0),
normalizedChi2_(0),
ecalIso_(0),
hcalIso_(0),
trackIso_(0),
nValidStandAloneMuonHits_(0),
nStandAloneMuonMatchedStations_(0),
nValidRecoMuonHits_(0),
nRecoMuonChambers_(0),
nRecoMuonChambersCSCorDT_(0),
nRecoMuonMatches_(0),
nRecoMuonMatchedStations_(0),
nRecoMuonExpectedMatchedStations_(0),
recoMuonStationMask_(0),
nRecoMuonMatchedRPCLayers_(0),
recoMuonRPClayerMask_(0),
nValidPixelHits_(0),
nValidStripHits_(0),
nPixelLayersWithMeasurement_(0),
nTrackerLayersWithMeasurement_(0),
trk_chi2_(0),
trk_ndof_(0),
trk_dxy_(0),
trk_dz_(0),
trk_qoverp_(0),
trk_lambda_(0),
trk_pt_(0),
trk_phi_(0),
trk_eta_(0),
trk_dxyError_(0),
trk_dzError_(0),
trk_qoverpError_(0),
trk_lambdaError_(0),
trk_phiError_(0),
trk_dsz_(0),
trk_dszError_(0),
trk_qoverp_lambda_cov_(0),
trk_qoverp_phi_cov_(0),
trk_qoverp_dxy_cov_(0),
trk_qoverp_dsz_cov_(0),
trk_lambda_phi_cov_(0),
trk_lambda_dxy_cov_(0),
trk_lambda_dsz_cov_(0),
trk_phi_dxy_cov_(0),
trk_phi_dsz_cov_(0),
trk_dxy_dsz_cov_(0),
trk_vx_(0),
trk_vy_(0),
trk_vz_(0),
vtxIndx_(0) {}
//accessor functions
float pt() const { return pt_; }
float eta() const { return eta_; }
float phi() const { return phi_; }
float m() const { return m_; }
unsigned int type() const { return type_; }
bool isGlobalMuon() const { return type_ & 1 << 1; }
bool isTrackerMuon() const { return type_ & 1 << 2; }
int charge() const { return charge_; }
float normalizedChi2() const { return normalizedChi2_; }
float ecalIso() const { return ecalIso_; }
float hcalIso() const { return hcalIso_; }
float trackIso() const { return trackIso_; }
int nValidStandAloneMuonHits() const { return nValidStandAloneMuonHits_; }
int nStandAloneMuonMatchedStations() const { return nStandAloneMuonMatchedStations_; }
int nValidRecoMuonHits() const { return nValidRecoMuonHits_; }
int nRecoMuonChambers() const { return nRecoMuonChambers_; }
int nRecoMuonChambersCSCorDT() const { return nRecoMuonChambersCSCorDT_; }
int nRecoMuonMatches() const { return nRecoMuonMatches_; }
int nRecoMuonMatchedStations() const { return nRecoMuonMatchedStations_; }
unsigned int nRecoMuonExpectedMatchedStations() const { return nRecoMuonExpectedMatchedStations_; }
unsigned int recoMuonStationMask() const { return recoMuonStationMask_; }
int nRecoMuonMatchedRPCLayers() const { return nRecoMuonMatchedRPCLayers_; }
unsigned int recoMuonRPClayerMask() const { return recoMuonRPClayerMask_; }
int nValidPixelHits() const { return nValidPixelHits_; }
int nValidStripHits() const { return nValidStripHits_; }
int nPixelLayersWithMeasurement() const { return nPixelLayersWithMeasurement_; }
int nTrackerLayersWithMeasurement() const { return nTrackerLayersWithMeasurement_; }
float trk_chi2() const { return trk_chi2_; }
float trk_ndof() const { return trk_ndof_; }
float trk_dxy() const { return trk_dxy_; }
float trk_dz() const { return trk_dz_; }
float trk_qoverp() const { return trk_qoverp_; }
float trk_lambda() const { return trk_lambda_; }
float trk_pt() const { return trk_pt_; }
float trk_phi() const { return trk_phi_; }
float trk_eta() const { return trk_eta_; }
float trk_dxyError() const { return trk_dxyError_; }
float trk_dzError() const { return trk_dzError_; }
float trk_qoverpError() const { return trk_qoverpError_; }
float trk_lambdaError() const { return trk_lambdaError_; }
float trk_phiError() const { return trk_phiError_; }
float trk_dsz() const { return trk_dsz_; }
float trk_dszError() const { return trk_dszError_; }
//add off-diagonal covariance matrix parameter, the above "Error" variables correspond to the diagonal, enum for Cov matrix (qoverp, lambda, phi, dxy, dsz), see https://github.com/cms-sw/cmssw/blob/CMSSW_11_2_X/DataFormats/TrackReco/src/TrackBase.cc for details
float trk_qoverp_lambda_cov() const { return trk_qoverp_lambda_cov_; }
float trk_qoverp_phi_cov() const { return trk_qoverp_phi_cov_; }
float trk_qoverp_dxy_cov() const { return trk_qoverp_dxy_cov_; }
float trk_qoverp_dsz_cov() const { return trk_qoverp_dsz_cov_; }
float trk_lambda_phi_cov() const { return trk_lambda_phi_cov_; }
float trk_lambda_dxy_cov() const { return trk_lambda_dxy_cov_; }
float trk_lambda_dsz_cov() const { return trk_lambda_dsz_cov_; }
float trk_phi_dxy_cov() const { return trk_phi_dxy_cov_; }
float trk_phi_dsz_cov() const { return trk_phi_dsz_cov_; }
float trk_dxy_dsz_cov() const { return trk_dxy_dsz_cov_; }
float trk_vx() const { return trk_vx_; }
float trk_vy() const { return trk_vy_; }
float trk_vz() const { return trk_vz_; }
std::vector<int> const& vtxIndx() const { return vtxIndx_; }
Run3ScoutingHitPatternPOD const& trk_hitPattern() const { return trk_hitPattern_; }
private:
float pt_;
float eta_;
float phi_;
float m_;
unsigned int type_;
int charge_;
float normalizedChi2_;
float ecalIso_;
float hcalIso_;
float trackIso_;
int nValidStandAloneMuonHits_;
int nStandAloneMuonMatchedStations_;
int nValidRecoMuonHits_;
int nRecoMuonChambers_;
int nRecoMuonChambersCSCorDT_;
int nRecoMuonMatches_;
int nRecoMuonMatchedStations_;
unsigned int nRecoMuonExpectedMatchedStations_;
unsigned int recoMuonStationMask_;
int nRecoMuonMatchedRPCLayers_;
unsigned int recoMuonRPClayerMask_;
int nValidPixelHits_;
int nValidStripHits_;
int nPixelLayersWithMeasurement_;
int nTrackerLayersWithMeasurement_;
float trk_chi2_;
float trk_ndof_;
float trk_dxy_;
float trk_dz_;
float trk_qoverp_;
float trk_lambda_;
float trk_pt_;
float trk_phi_;
float trk_eta_;
float trk_dxyError_;
float trk_dzError_;
float trk_qoverpError_;
float trk_lambdaError_;
float trk_phiError_;
float trk_dsz_;
float trk_dszError_;
float trk_qoverp_lambda_cov_;
float trk_qoverp_phi_cov_;
float trk_qoverp_dxy_cov_;
float trk_qoverp_dsz_cov_;
float trk_lambda_phi_cov_;
float trk_lambda_dxy_cov_;
float trk_lambda_dsz_cov_;
float trk_phi_dxy_cov_;
float trk_phi_dsz_cov_;
float trk_dxy_dsz_cov_;
float trk_vx_;
float trk_vy_;
float trk_vz_;
std::vector<int> vtxIndx_;
Run3ScoutingHitPatternPOD trk_hitPattern_;
};
typedef std::vector<Run3ScoutingMuon> Run3ScoutingMuonCollection;
#endif
|