1 |
#ifndef __L1Analysis_L1AnalysisRecoMuonDataFormat_H__
|
2 |
#define __L1Analysis_L1AnalysisRecoMuonDataFormat_H__
|
3 |
|
4 |
//-------------------------------------------------------------------------------
|
5 |
// Created 20/04/2010 - E. Conte, A.C. Le Bihan
|
6 |
//
|
7 |
//
|
8 |
// Original code : UserCode/L1TriggerDPG/L1RecoMuonDataFormatProducer - Luigi Guiducci
|
9 |
//-------------------------------------------------------------------------------
|
10 |
|
11 |
#include <vector>
|
12 |
|
13 |
namespace L1Analysis
|
14 |
{
|
15 |
struct L1AnalysisRecoMuonDataFormat
|
16 |
{
|
17 |
L1AnalysisRecoMuonDataFormat(){Reset();};
|
18 |
~L1AnalysisRecoMuonDataFormat(){Reset();};
|
19 |
|
20 |
void Reset()
|
21 |
{
|
22 |
nMuons = 0;
|
23 |
|
24 |
// what muon kind? 0=global 1=SA 2=trackeronly
|
25 |
type.clear();
|
26 |
howmanytypes.clear();
|
27 |
// global muons quantities
|
28 |
ch.clear();
|
29 |
pt.clear();
|
30 |
p.clear();
|
31 |
eta.clear();
|
32 |
phi.clear();
|
33 |
validhits.clear();
|
34 |
numberOfMatchedStations.clear();
|
35 |
numberOfValidMuonHits.clear();
|
36 |
normchi2.clear();
|
37 |
imp_point_x.clear();
|
38 |
imp_point_y.clear();
|
39 |
imp_point_z.clear();
|
40 |
imp_point_p.clear();
|
41 |
imp_point_pt.clear();
|
42 |
phi_hb.clear();
|
43 |
z_hb.clear();
|
44 |
r_he_p.clear();
|
45 |
r_he_n.clear();
|
46 |
phi_he_p.clear();
|
47 |
phi_he_n.clear();
|
48 |
|
49 |
// tracker muons quantities
|
50 |
tr_ch.clear();
|
51 |
tr_pt.clear();
|
52 |
tr_p.clear();
|
53 |
tr_eta.clear();
|
54 |
tr_phi.clear();
|
55 |
tr_validhits.clear();
|
56 |
tr_validpixhits.clear();
|
57 |
tr_normchi2.clear();
|
58 |
tr_d0.clear();
|
59 |
tr_imp_point_x.clear();
|
60 |
tr_imp_point_y.clear();
|
61 |
tr_imp_point_z.clear();
|
62 |
tr_imp_point_p.clear();
|
63 |
tr_imp_point_pt.clear();
|
64 |
|
65 |
tr_z_mb2.clear();
|
66 |
tr_phi_mb2.clear();
|
67 |
tr_r_me2_p.clear();
|
68 |
tr_phi_me2_p.clear();
|
69 |
tr_r_me2_n.clear();
|
70 |
tr_phi_me2_n.clear();
|
71 |
|
72 |
tr_z_mb1.clear();
|
73 |
tr_phi_mb1.clear();
|
74 |
tr_r_me1_p.clear();
|
75 |
tr_phi_me1_p.clear();
|
76 |
tr_r_me1_n.clear();
|
77 |
tr_phi_me1_n.clear();
|
78 |
|
79 |
// standalone muons (either part of global or SA only)
|
80 |
sa_phi_mb2.clear();
|
81 |
sa_z_mb2.clear();
|
82 |
sa_pseta.clear();
|
83 |
sa_normchi2.clear();
|
84 |
sa_validhits.clear();
|
85 |
sa_ch.clear();
|
86 |
sa_pt.clear();
|
87 |
sa_p.clear();
|
88 |
sa_eta.clear();
|
89 |
sa_phi.clear();
|
90 |
sa_outer_pt.clear();
|
91 |
sa_inner_pt.clear();
|
92 |
sa_outer_eta.clear();
|
93 |
sa_inner_eta.clear();
|
94 |
sa_outer_phi.clear();
|
95 |
sa_inner_phi.clear();
|
96 |
sa_outer_x.clear();
|
97 |
sa_outer_y.clear();
|
98 |
sa_outer_z.clear();
|
99 |
sa_inner_x.clear();
|
100 |
sa_inner_y.clear();
|
101 |
sa_inner_z.clear();
|
102 |
sa_imp_point_x.clear();
|
103 |
sa_imp_point_y.clear();
|
104 |
sa_imp_point_z.clear();
|
105 |
sa_imp_point_p.clear();
|
106 |
sa_imp_point_pt.clear();
|
107 |
sa_phi_hb.clear();
|
108 |
sa_z_hb.clear();
|
109 |
sa_r_he_p.clear();
|
110 |
sa_r_he_n.clear();
|
111 |
sa_phi_he_p.clear();
|
112 |
sa_phi_he_n.clear();
|
113 |
sa_phi_me2_p.clear();
|
114 |
sa_phi_me2_n.clear();
|
115 |
sa_r_me2_p.clear();
|
116 |
sa_r_me2_n.clear();
|
117 |
|
118 |
sa_z_mb1.clear();
|
119 |
sa_phi_mb1.clear();
|
120 |
sa_r_me1_p.clear();
|
121 |
sa_phi_me1_p.clear();
|
122 |
sa_r_me1_n.clear();
|
123 |
sa_phi_me1_n.clear();
|
124 |
|
125 |
calo_energy.clear();
|
126 |
calo_energy3x3.clear();
|
127 |
ecal_time.clear();
|
128 |
ecal_terr.clear();
|
129 |
hcal_time.clear();
|
130 |
hcal_terr.clear();
|
131 |
time_dir.clear(); // -1 = outsideIn 0=undefined 1=insideOut
|
132 |
time_inout.clear();
|
133 |
time_inout_err.clear();
|
134 |
time_outin.clear();
|
135 |
time_outin_err.clear();
|
136 |
|
137 |
sa_nChambers.clear();
|
138 |
sa_nMatches.clear();
|
139 |
|
140 |
// RECHIT information from CSC: only for standalone/global muons!
|
141 |
rchCSCtype.clear();
|
142 |
rchPhi.clear();
|
143 |
rchEta.clear();
|
144 |
|
145 |
// Trigger matching information:
|
146 |
hlt_isomu.clear();
|
147 |
hlt_mu.clear();
|
148 |
hlt_isoDeltaR.clear();
|
149 |
hlt_deltaR.clear();
|
150 |
|
151 |
|
152 |
}
|
153 |
|
154 |
// how many muons of any kind
|
155 |
int nMuons;
|
156 |
|
157 |
// what muon kind? 0=global 1=SA 2=trackeronly 3=trsa
|
158 |
std::vector<int> type;
|
159 |
std::vector<int> howmanytypes;
|
160 |
// global muons quantities
|
161 |
std::vector<double> ch;
|
162 |
std::vector<double> pt;
|
163 |
std::vector<double> p;
|
164 |
std::vector<double> eta;
|
165 |
std::vector<double> phi;
|
166 |
std::vector<double> validhits;
|
167 |
std::vector<double> numberOfMatchedStations;
|
168 |
std::vector<double> numberOfValidMuonHits;
|
169 |
std::vector<double> normchi2;
|
170 |
std::vector<double> imp_point_x;
|
171 |
std::vector<double> imp_point_y;
|
172 |
std::vector<double> imp_point_z;
|
173 |
std::vector<double> imp_point_p;
|
174 |
std::vector<double> imp_point_pt;
|
175 |
std::vector<double> phi_hb;
|
176 |
std::vector<double> z_hb;
|
177 |
std::vector<double> r_he_p;
|
178 |
std::vector<double> r_he_n;
|
179 |
std::vector<double> phi_he_p;
|
180 |
std::vector<double> phi_he_n;
|
181 |
|
182 |
// tracker muons quantities
|
183 |
std::vector<double> tr_ch;
|
184 |
std::vector<double> tr_pt;
|
185 |
std::vector<double> tr_p;
|
186 |
std::vector<double> tr_eta;
|
187 |
std::vector<double> tr_phi;
|
188 |
std::vector<double> tr_validhits;
|
189 |
std::vector<double> tr_validpixhits;
|
190 |
std::vector<double> tr_normchi2;
|
191 |
std::vector<double> tr_d0;
|
192 |
std::vector<double> tr_imp_point_x;
|
193 |
std::vector<double> tr_imp_point_y;
|
194 |
std::vector<double> tr_imp_point_z;
|
195 |
std::vector<double> tr_imp_point_p;
|
196 |
std::vector<double> tr_imp_point_pt;
|
197 |
|
198 |
std::vector<double> tr_z_mb2;
|
199 |
std::vector<double> tr_phi_mb2;
|
200 |
std::vector<double> tr_r_me2_p;
|
201 |
std::vector<double> tr_phi_me2_p;
|
202 |
std::vector<double> tr_r_me2_n;
|
203 |
std::vector<double> tr_phi_me2_n;
|
204 |
|
205 |
std::vector<double> tr_z_mb1 ;
|
206 |
std::vector<double> tr_phi_mb1;
|
207 |
std::vector<double> tr_r_me1_p ;
|
208 |
std::vector<double> tr_phi_me1_p;
|
209 |
std::vector<double> tr_r_me1_n ;
|
210 |
std::vector<double> tr_phi_me1_n;
|
211 |
|
212 |
// standalone muons (either part of global or SA only)
|
213 |
std::vector<double> sa_phi_mb2;
|
214 |
std::vector<double> sa_z_mb2;
|
215 |
std::vector<double> sa_pseta;
|
216 |
std::vector<double> sa_normchi2;
|
217 |
std::vector<double> sa_validhits;
|
218 |
std::vector<double> sa_ch;
|
219 |
std::vector<double> sa_pt;
|
220 |
std::vector<double> sa_p;
|
221 |
std::vector<double> sa_eta;
|
222 |
std::vector<double> sa_phi;
|
223 |
std::vector<double> sa_outer_pt;
|
224 |
std::vector<double> sa_inner_pt;
|
225 |
std::vector<double> sa_outer_eta;
|
226 |
std::vector<double> sa_inner_eta;
|
227 |
std::vector<double> sa_outer_phi;
|
228 |
std::vector<double> sa_inner_phi;
|
229 |
std::vector<double> sa_outer_x;
|
230 |
std::vector<double> sa_outer_y;
|
231 |
std::vector<double> sa_outer_z;
|
232 |
std::vector<double> sa_inner_x;
|
233 |
std::vector<double> sa_inner_y;
|
234 |
std::vector<double> sa_inner_z;
|
235 |
std::vector<double> sa_imp_point_x;
|
236 |
std::vector<double> sa_imp_point_y;
|
237 |
std::vector<double> sa_imp_point_z;
|
238 |
std::vector<double> sa_imp_point_p;
|
239 |
std::vector<double> sa_imp_point_pt;
|
240 |
std::vector<double> sa_phi_hb;
|
241 |
std::vector<double> sa_z_hb;
|
242 |
std::vector<double> sa_r_he_p;
|
243 |
std::vector<double> sa_r_he_n;
|
244 |
std::vector<double> sa_phi_he_p;
|
245 |
std::vector<double> sa_phi_he_n;
|
246 |
std::vector<double> sa_r_me2_p;
|
247 |
std::vector<double> sa_r_me2_n;
|
248 |
std::vector<double> sa_phi_me2_p;
|
249 |
std::vector<double> sa_phi_me2_n;
|
250 |
|
251 |
std::vector<double> sa_z_mb1;
|
252 |
std::vector<double> sa_phi_mb1;
|
253 |
std::vector<double> sa_r_me1_p;
|
254 |
std::vector<double> sa_phi_me1_p;
|
255 |
std::vector<double> sa_r_me1_n;
|
256 |
std::vector<double> sa_phi_me1_n;
|
257 |
|
258 |
std::vector<double> calo_energy;
|
259 |
std::vector<double> calo_energy3x3;
|
260 |
std::vector<double> ecal_time;
|
261 |
std::vector<double> ecal_terr;
|
262 |
std::vector<double> hcal_time;
|
263 |
std::vector<double> hcal_terr;
|
264 |
|
265 |
std::vector<double> time_dir; // -1 = outsideIn ; 0=undefined; 1=insideOut
|
266 |
std::vector<double> time_inout;
|
267 |
std::vector<double> time_inout_err;
|
268 |
std::vector<double> time_outin;
|
269 |
std::vector<double> time_outin_err;
|
270 |
|
271 |
std::vector<int> sa_nChambers;
|
272 |
std::vector<int> sa_nMatches;
|
273 |
|
274 |
|
275 |
// RECHIT information from CSC: only for standalone/global muons!
|
276 |
std::vector<int> rchCSCtype;
|
277 |
std::vector<double> rchPhi;
|
278 |
std::vector<double> rchEta;
|
279 |
|
280 |
// Trigger matching information:
|
281 |
std::vector<int> hlt_isomu;
|
282 |
std::vector<int> hlt_mu;
|
283 |
std::vector<double> hlt_isoDeltaR;
|
284 |
std::vector<double> hlt_deltaR;
|
285 |
|
286 |
};
|
287 |
}
|
288 |
#endif
|
289 |
|
290 |
|