3 #ifndef LARCLUSTERCELLDUMPER_EVENTREADERBASEALG_H
4 #define LARCLUSTERCELLDUMPER_EVENTREADERBASEALG_H
35 bool isEtaOutsideLArCrack(
float absEta);
41 double fixPhi(
double phi);
42 double deltaPhi(
double phi1 ,
double phi2);
47 void bookBranches(TTree *
tree);
48 void bookDatabaseBranches(TTree *
tree);
51 Gaudi::Property<float> m_elecEtaCut {
this,
"electronEtaCut", 1.4,
"Electron |eta| cut value."};
52 Gaudi::Property<std::string> m_offTagTightness {
this,
"offTagTightness",
"LHMedium"};
53 Gaudi::Property<std::string> m_offProbeTightness {
this,
"offProbeTightness",
"Loose"};
54 Gaudi::Property<float> m_etMinProbe {
this,
"etMinProbe", 15 ,
"Min electron Pt value for Zee probe selection loose (GeV)."};
55 Gaudi::Property<float> m_etMinTag {
this,
"etMinTag", 15 ,
"Min Et value for the electrons in Zee tag selection (GeV)."};
56 Gaudi::Property<float> m_d0TagSig {
this,
"d0TagSig", 5,
"d_0 transverse impact parameter significance."};
57 Gaudi::Property<float> m_z0Tag {
this,
"z0Tag", 0.5,
"z0 longitudinal impact parameter (mm)"};
58 Gaudi::Property<bool> m_doElecSelectByTrackOnly {
this,
"doElecSelectByTrackOnly",
false,
"Perform electron selection by track only, witout tag and probe."};
59 Gaudi::Property<bool> m_doTagAndProbe {
this,
"doTagAndProbe",
true,
"First, the electrons are selected by track criteria, then, perform Tag and Probe selection for Zee."};
60 Gaudi::Property<bool> m_doPhotonDump {
this,
"doPhotonDump",
false,
"Perform a photon particle dump based on offline Photons Container."};
61 Gaudi::Property<bool> m_doTruthEventDump {
this,
"doTruthEventDump",
false,
"Dump the Truth Event variables."};
62 Gaudi::Property<bool> m_doTruthPartDump {
this,
"doTruthPartDump",
false,
"Perform a truth particle dump."};
63 Gaudi::Property<bool> m_doLArEMBHitsDump {
this,
"doLArEMBHitsDump",
false,
"Dump the EMB HITs container energy and time."};
64 Gaudi::Property<bool> m_isMC {
this,
"isMC",
false,
"Switch the dumper to MC sample mode."};
65 Gaudi::Property<bool> m_getLArCalibConstants {
this,
"getLArCalibConstants",
false,
"Get the LAr calorimeter calibration constants, related to cells energy and time (online and offline)."};
66 Gaudi::Property<bool> m_noBadCells {
this,
"noBadCells",
true,
"If True, skip the cells tagged as badCells/channels."};
67 Gaudi::Property<bool> m_doAssocTopoCluster711Dump {
this,
"doAssocTopoCluster711Dump",
false,
"Dump the 7x11 EMB2 window cells."};
74 TTree *m_secondTree{};
81 std::vector < std::vector < float > > *m_lb_bcidLuminosity =
nullptr;
82 std::vector < int > *m_lb_lumiblock =
nullptr;
85 unsigned int m_e_runNumber = 9999;
86 unsigned int m_e_bcid = 9999;
87 unsigned long long m_e_eventNumber = 9999;
88 int m_e_lumiBlock = 999;
89 float m_e_inTimePileup = -999;
90 float m_e_outOfTimePileUp = -999;
93 int m_c_clusterIndexCounter = 0;
94 std::vector < int > *m_c_clusterIndex =
nullptr;
95 std::vector < int > *m_c_electronIndex_clusterLvl =
nullptr;
96 std::vector < double > *m_c_clusterEnergy =
nullptr;
97 std::vector < double > *m_c_clusterTime =
nullptr;
98 std::vector < double > *m_c_clusterEta =
nullptr;
99 std::vector < double > *m_c_clusterPhi =
nullptr;
100 std::vector < double > *m_c_clusterPt =
nullptr;
102 int m_c_cellIndexCounter = 0;
103 std::vector < int > *m_c_clusterIndex_cellLvl =
nullptr;
104 std::vector < int > *m_c_clusterCellIndex =
nullptr;
105 std::vector < int > *m_c_cellGain =
nullptr;
106 std::vector < int > *m_c_cellLayer =
nullptr;
107 std::vector < int > *m_c_cellRegion =
nullptr;
108 std::vector < double > *m_c_cellEnergy =
nullptr;
109 std::vector < double > *m_c_cellTime =
nullptr;
110 std::vector < double > *m_c_cellEta =
nullptr;
111 std::vector < double > *m_c_cellPhi =
nullptr;
112 std::vector < double > *m_c_cellDEta =
nullptr;
113 std::vector < double > *m_c_cellDPhi =
nullptr;
114 std::vector < double > *m_c_cellToClusterDPhi =
nullptr;
115 std::vector < double > *m_c_cellToClusterDEta =
nullptr;
117 std::vector < int > *m_c_clusterIndex_chLvl =
nullptr;
118 std::vector < int > *m_c_clusterChannelIndex =
nullptr;
119 std::vector < std::vector < int > > *m_c_channelChInfo =
nullptr;
120 std::vector < std::vector < float > > *m_c_channelDigits =
nullptr;
121 std::vector < double > *m_c_channelEnergy =
nullptr;
122 std::vector < double > *m_c_channelTime =
nullptr;
123 std::vector < int > *m_c_channelLayer =
nullptr;
124 std::vector < bool > *m_c_channelBad =
nullptr;
125 std::vector < unsigned int > *m_c_channelHashMap =
nullptr;
126 std::vector < unsigned int > *m_c_channelChannelIdMap =
nullptr;
127 std::vector < float > *m_c_channelEffectiveSigma =
nullptr;
128 std::vector < float > *m_c_channelNoise =
nullptr;
129 std::vector < float > *m_c_channelDSPThreshold =
nullptr;
130 std::vector < std::vector < double > > *m_c_channelOFCa =
nullptr;
131 std::vector < std::vector < double > > *m_c_channelOFCb =
nullptr;
132 std::vector < std::vector < double > > *m_c_channelShape =
nullptr;
133 std::vector < std::vector < double > > *m_c_channelShapeDer =
nullptr;
134 std::vector < double > *m_c_channelOFCTimeOffset =
nullptr;
135 std::vector < float > *m_c_channelADC2MEV0 =
nullptr;
136 std::vector < float > *m_c_channelADC2MEV1 =
nullptr;
137 std::vector < float > *m_c_channelPed =
nullptr;
138 std::vector < float > *m_c_channelMinBiasAvg =
nullptr;
139 std::vector < float > *m_c_channelOfflHVScale =
nullptr;
140 std::vector < float > *m_c_channelOfflEneRescaler =
nullptr;
143 std::vector < std::vector < int > > *m_c_rawChannelChInfo =
nullptr;
144 std::vector < unsigned int > *m_c_rawChannelIdMap =
nullptr;
145 std::vector < float > *m_c_rawChannelAmplitude =
nullptr;
146 std::vector < float > *m_c_rawChannelTime =
nullptr;
147 std::vector < int > *m_c_rawChannelLayer =
nullptr;
148 std::vector < float > *m_c_rawChannelPed =
nullptr;
149 std::vector < float > *m_c_rawChannelProv =
nullptr;
150 std::vector < float > *m_c_rawChannelQuality =
nullptr;
151 std::vector < float > *m_c_clusterRawChannelIndex =
nullptr;
152 std::vector < int > *m_c_clusterIndex_rawChLvl =
nullptr;
153 std::vector < float > *m_c_rawChannelDSPThreshold =
nullptr;
157 const double m_minEnergy = 1
e-9;
158 std::vector < int > *m_hits_sampling =
nullptr;
159 std::vector < int > *m_hits_clusterIndex_chLvl =
nullptr;
160 std::vector < int > *m_hits_clusterChannelIndex =
nullptr;
161 std::vector < unsigned int > *m_hits_hash =
nullptr;
162 std::vector < double > *m_hits_energy =
nullptr;
163 std::vector < double > *m_hits_time =
nullptr;
164 std::vector < float > *m_hits_sampFrac =
nullptr;
165 std::vector < double > *m_hits_energyConv =
nullptr;
166 std::vector < double > *m_hits_cellEta =
nullptr;
167 std::vector < double > *m_hits_cellPhi =
nullptr;
171 int *m_c711_clusterIndexCounter = 0;
172 std::vector < int > *m_c711_clusterIndex =
nullptr;
173 std::vector < int > *m_c711_electronIndex_clusterLvl =
nullptr;
174 std::vector < double > *m_c711_clusterEnergy =
nullptr;
175 std::vector < double > *m_c711_clusterTime =
nullptr;
176 std::vector < double > *m_c711_clusterEta =
nullptr;
177 std::vector < double > *m_c711_clusterPhi =
nullptr;
178 std::vector < double > *m_c711_clusterPt =
nullptr;
181 int *m_c711_cellIndexCounter =
nullptr;
182 std::vector < int > *m_c711_clusterIndex_cellLvl =
nullptr;
183 std::vector < int > *m_c711_clusterCellIndex =
nullptr;
184 std::vector < int > *m_c711_cellGain =
nullptr;
185 std::vector < int > *m_c711_cellLayer =
nullptr;
186 std::vector < int > *m_c711_cellRegion =
nullptr;
187 std::vector < double > *m_c711_cellEnergy =
nullptr;
188 std::vector < double > *m_c711_cellTime =
nullptr;
189 std::vector < double > *m_c711_cellEta =
nullptr;
190 std::vector < double > *m_c711_cellPhi =
nullptr;
191 std::vector < double > *m_c711_cellDEta =
nullptr;
192 std::vector < double > *m_c711_cellDPhi =
nullptr;
193 std::vector < double > *m_c711_cellToClusterDPhi =
nullptr;
194 std::vector < double > *m_c711_cellToClusterDEta =
nullptr;
196 std::vector < int > *m_c711_clusterIndex_chLvl =
nullptr;
197 std::vector < int > *m_c711_clusterChannelIndex =
nullptr;
198 std::vector < std::vector < int > > *m_c711_channelChInfo =
nullptr;
199 std::vector < std::vector < float > > *m_c711_channelDigits =
nullptr;
200 std::vector < double > *m_c711_channelEnergy =
nullptr;
201 std::vector < double > *m_c711_channelTime =
nullptr;
202 std::vector < int > *m_c711_channelLayer =
nullptr;
203 std::vector < bool > *m_c711_channelBad =
nullptr;
204 std::vector < unsigned int > *m_c711_channelHashMap =
nullptr;
205 std::vector < unsigned int > *m_c711_channelChannelIdMap =
nullptr;
206 std::vector < float > *m_c711_channelEffectiveSigma =
nullptr;
207 std::vector < float > *m_c711_channelNoise =
nullptr;
208 std::vector < float > *m_c711_channelDSPThreshold =
nullptr;
209 std::vector < std::vector < double > > *m_c711_channelOFCa =
nullptr;
210 std::vector < std::vector < double > > *m_c711_channelOFCb =
nullptr;
211 std::vector < std::vector < double > > *m_c711_channelShape =
nullptr;
212 std::vector < std::vector < double > > *m_c711_channelShapeDer =
nullptr;
213 std::vector < double > *m_c711_channelOFCTimeOffset =
nullptr;
214 std::vector < float > *m_c711_channelADC2MEV0 =
nullptr;
215 std::vector < float > *m_c711_channelADC2MEV1 =
nullptr;
216 std::vector < float > *m_c711_channelPed =
nullptr;
217 std::vector < float > *m_c711_channelMinBiasAvg =
nullptr;
218 std::vector < float > *m_c711_channelOfflHVScale =
nullptr;
219 std::vector < float > *m_c711_channelOfflEneRescaler =
nullptr;
221 std::vector < std::vector < int > > *m_c711_rawChannelChInfo =
nullptr;
222 std::vector < unsigned int > *m_c711_rawChannelIdMap =
nullptr;
223 std::vector < float > *m_c711_rawChannelAmplitude =
nullptr;
224 std::vector < float > *m_c711_rawChannelTime =
nullptr;
225 std::vector < int > *m_c711_rawChannelLayer =
nullptr;
226 std::vector < float > *m_c711_rawChannelPed =
nullptr;
227 std::vector < float > *m_c711_rawChannelProv =
nullptr;
228 std::vector < float > *m_c711_rawChannelQuality =
nullptr;
229 std::vector < float > *m_c711_clusterRawChannelIndex =
nullptr;
230 std::vector < int > *m_c711_clusterIndex_rawChLvl =
nullptr;
231 std::vector < float > *m_c711_rawChannelDSPThreshold =
nullptr;
234 std::vector < float > *m_mc_part_energy =
nullptr;
235 std::vector < float > *m_mc_part_pt =
nullptr;
236 std::vector < float > *m_mc_part_m =
nullptr;
237 std::vector < float > *m_mc_part_eta =
nullptr;
238 std::vector < float > *m_mc_part_phi =
nullptr;
239 std::vector < int > *m_mc_part_pdgId =
nullptr;
240 std::vector < int > *m_mc_part_status =
nullptr;
241 std::vector < int > *m_mc_part_barcode =
nullptr;
244 std::vector < float > *m_mc_vert_x =
nullptr;
245 std::vector < float > *m_mc_vert_y =
nullptr;
246 std::vector < float > *m_mc_vert_z =
nullptr;
247 std::vector < float > *m_mc_vert_time =
nullptr;
248 std::vector < float > *m_mc_vert_perp =
nullptr;
249 std::vector < float > *m_mc_vert_eta =
nullptr;
250 std::vector < float > *m_mc_vert_phi =
nullptr;
251 std::vector < int > *m_mc_vert_barcode =
nullptr;
252 std::vector < int > *m_mc_vert_status =
nullptr;
255 std::vector < float > *m_vtx_x =
nullptr;
256 std::vector < float > *m_vtx_y =
nullptr;
257 std::vector < float > *m_vtx_z =
nullptr;
258 std::vector < float > *m_vtx_deltaZ0 =
nullptr;
259 std::vector < float > *m_vtx_delta_z0_sin =
nullptr;
260 std::vector < double > *m_vtx_d0sig =
nullptr;
263 std::vector < float > *m_ph_eta =
nullptr;
264 std::vector < float > *m_ph_phi =
nullptr;
265 std::vector < float > *m_ph_pt =
nullptr;
266 std::vector < float > *m_ph_energy =
nullptr;
267 std::vector < float > *m_ph_m =
nullptr;
270 std::vector < int > *m_el_index =
nullptr;
271 std::vector < float > *m_el_Pt =
nullptr;
272 std::vector < float > *m_el_et =
nullptr;
273 std::vector < float > *m_el_Eta =
nullptr;
274 std::vector < float > *m_el_Phi =
nullptr;
275 std::vector < float > *m_el_m =
nullptr;
276 std::vector < float > *m_el_eoverp =
nullptr;
278 std::vector < float > *m_el_f1 =
nullptr;
279 std::vector < float > *m_el_f3 =
nullptr;
280 std::vector < float > *m_el_eratio =
nullptr;
281 std::vector < float > *m_el_weta1 =
nullptr;
282 std::vector < float > *m_el_weta2 =
nullptr;
283 std::vector < float > *m_el_fracs1 =
nullptr;
284 std::vector < float > *m_el_wtots1 =
nullptr;
285 std::vector < float > *m_el_e277 =
nullptr;
286 std::vector < float > *m_el_reta =
nullptr;
287 std::vector < float > *m_el_rphi =
nullptr;
288 std::vector < float > *m_el_deltae =
nullptr;
289 std::vector < float > *m_el_rhad =
nullptr;
290 std::vector < float > *m_el_rhad1 =
nullptr;
293 std::vector < float > *m_tp_electronPt =
nullptr;
294 std::vector < float > *m_tp_electronEt =
nullptr;
295 std::vector < float > *m_tp_electronEta =
nullptr;
296 std::vector < float > *m_tp_electronPhi =
nullptr;
298 std::vector < int > *m_tp_probeIndex =
nullptr;
299 std::vector < int > *m_tp_tagIndex =
nullptr;
300 std::vector < bool > *m_tp_isTag =
nullptr;
301 std::vector < bool > *m_tp_isProbe =
nullptr;
303 std::vector < double > *m_zee_M =
nullptr;
304 std::vector < double > *m_zee_E =
nullptr;
305 std::vector < double > *m_zee_pt =
nullptr;
306 std::vector < double > *m_zee_px =
nullptr;
307 std::vector < double > *m_zee_py =
nullptr;
308 std::vector < double > *m_zee_pz =
nullptr;
309 std::vector < double > *m_zee_T =
nullptr;
310 std::vector < double > *m_zee_deltaR =
nullptr;