ATLAS Offline Software
Loading...
Searching...
No Matches
EventReaderBaseAlg.h
Go to the documentation of this file.
1// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3#ifndef LARCLUSTERCELLDUMPER_EVENTREADERBASEALG_H
4#define LARCLUSTERCELLDUMPER_EVENTREADERBASEALG_H
5
7
12class TTree;
13class CaloCell;
14
15
16
17
18
20{
21 public:
22
23
24 EventReaderBaseAlg( const std::string& name, ISvcLocator* pSvcLocator );
25
26 virtual ~EventReaderBaseAlg() override;
27
28 virtual StatusCode initialize() override;
29 virtual StatusCode execute() override;
30 virtual StatusCode finalize() override;
31
32 private:
33
34 protected:
35 bool isEtaOutsideLArCrack(float absEta);
36 bool isTagElectron(const xAOD::Electron* electron);
37 bool isGoodProbeElectron(const xAOD::Electron* el);
38 bool trackSelectionElectrons(const xAOD::Electron *electron, SG::ReadHandle<xAOD::VertexContainer> &primVertexCnt, SG::ReadHandle<xAOD::EventInfo> &ei); // for Xtalk studies
39 bool eOverPElectron(const xAOD::Electron* electron);
40 int getCaloRegionIndex(const CaloCell* cell); //customized representative indexes of calo region
41 double fixPhi(double phi);
42 double deltaPhi(double phi1 , double phi2);
43 double deltaR( double eta, double phi);
44
45 void clear();
46 void clearLBData();
47 void bookBranches(TTree *tree);
48 void bookDatabaseBranches(TTree *tree);
49
50
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)."}; // Et or pT ?
55 Gaudi::Property<float> m_etMinTag {this, "etMinTag", 15 ,"Min Et value for the electrons in Zee tag selection (GeV)."}; // Et?
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)"};// https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/TrackingCPEOYE2015
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."};
68
69 //#############################
70 // Global Variables in general
71 //#############################
72
73 TTree *m_Tree{};
74 TTree *m_secondTree{};
75
76 //##################
77 // Dumped Variables
78 //##################
79
80 // ## Lumiblock variables
81 std::vector < std::vector < float > > *m_lb_bcidLuminosity = nullptr;
82 std::vector < int > *m_lb_lumiblock = nullptr;
83
84 // ## EventInfo ##
85 unsigned int m_e_runNumber = 9999; //< Run number
86 unsigned int m_e_bcid = 9999; //< BCID number
87 unsigned long long m_e_eventNumber = 9999; //< Event number
88 int m_e_lumiBlock = 999; // lumiblock number
89 float m_e_inTimePileup = -999; //< avg_mu
90 float m_e_outOfTimePileUp = -999; // OOT pileup
91
92 // ## Cluster (TOPOCLUSTER) ##
93 int m_c_clusterIndexCounter = 0; // cluster index counter, for the entire event
94 std::vector < int > *m_c_clusterIndex = nullptr; // cluster index, for each cluster in the same event. (they have the same number of inputs)
95 std::vector < int > *m_c_electronIndex_clusterLvl = nullptr; // electron index, for each cluster in the same event.
96 std::vector < double > *m_c_clusterEnergy = nullptr; //energy of the cluster
97 std::vector < double > *m_c_clusterTime = nullptr; //timing of the cluster
98 std::vector < double > *m_c_clusterEta = nullptr; // clus. baricenter eta
99 std::vector < double > *m_c_clusterPhi = nullptr; // clus. baricenter phi
100 std::vector < double > *m_c_clusterPt = nullptr; // clus. baricenter eta
101 // Cell
102 int m_c_cellIndexCounter = 0; // cell index counter inside a cluster, for the entire event
103 std::vector < int > *m_c_clusterIndex_cellLvl = nullptr; // cluster index, for each cell index. (they have the same number of inputs)
104 std::vector < int > *m_c_clusterCellIndex = nullptr; // cell index inside a cluster
105 std::vector < int > *m_c_cellGain = nullptr; // gain of cell signal, from 'CaloGain' standard.
106 std::vector < int > *m_c_cellLayer = nullptr; // layer index of cell signal, from caloDDE.
107 std::vector < int > *m_c_cellRegion = nullptr; // region of calorimeter system (custom index from 'getCaloRegionIndex')
108 std::vector < double > *m_c_cellEnergy = nullptr; // cell inside cluster energy
109 std::vector < double > *m_c_cellTime = nullptr; // cell inside cluster energy
110 std::vector < double > *m_c_cellEta = nullptr; // cell inside cluster baricenter eta
111 std::vector < double > *m_c_cellPhi = nullptr; // cell inside cluster baricenter phi
112 std::vector < double > *m_c_cellDEta = nullptr; // cell inside cluster delta_eta (granularity)
113 std::vector < double > *m_c_cellDPhi = nullptr; // cell inside cluster delta_phi (granularity)
114 std::vector < double > *m_c_cellToClusterDPhi = nullptr; // cell inside cluster delta_phi distance to cluster baricenter.
115 std::vector < double > *m_c_cellToClusterDEta = nullptr; // cell inside cluster delta_eta distance to cluster baricenter.
116 //**** Channel
117 std::vector < int > *m_c_clusterIndex_chLvl = nullptr; // cluster index, for each channel index. (they have the same number of inputs)
118 std::vector < int > *m_c_clusterChannelIndex = nullptr; // index for a sequence of channels. It is a float for identify PMTs: +0.0 LAr, +0.1 Tile PMT1, +0.2 Tile PMT2
119 std::vector < std::vector < int > > *m_c_channelChInfo = nullptr; // from both LAr (barrel_ec, pos_neg, feedthrough, slot, channel) and Tile (ros, drawer, channel, adc)
120 std::vector < std::vector < float > > *m_c_channelDigits = nullptr; // samples from LAr and Tile cells/channels
121 std::vector < double > *m_c_channelEnergy = nullptr; // energy of cell or readout channel inside cluster (MeV)
122 std::vector < double > *m_c_channelTime = nullptr; // time of channel inside cluster
123 std::vector < int > *m_c_channelLayer = nullptr; // layer index of channel signal, from caloDDE.
124 std::vector < bool > *m_c_channelBad = nullptr; // channel linked to a cluster, whitch is tagged as bad. (1 - bad, 0 - not bad)
125 std::vector < unsigned int > *m_c_channelHashMap = nullptr; //cell map of ALL cells inside a cluster. id 0x2d214a140000000. is a 64-bit number that represent the cell.
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; // get from Athena POOL Utilities
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; // shape
133 std::vector < std::vector < double > > *m_c_channelShapeDer = nullptr; // shape derivative
134 std::vector < double > *m_c_channelOFCTimeOffset = nullptr;
135 std::vector < float > *m_c_channelADC2MEV0 = nullptr; //ramp0
136 std::vector < float > *m_c_channelADC2MEV1 = nullptr; //ramp1
137 std::vector < float > *m_c_channelPed = nullptr; //pedestal from DB (LAr / maskedTile)
138 std::vector < float > *m_c_channelMinBiasAvg = nullptr; //cell minBias average
139 std::vector < float > *m_c_channelOfflHVScale = nullptr;
140 std::vector < float > *m_c_channelOfflEneRescaler = nullptr;
141
142 // Raw channel
143 std::vector < std::vector < int > > *m_c_rawChannelChInfo = nullptr; // from both LAr (barrel_ec, pos_neg, feedthrough, slot, channel, provenance) and Tile (ros, drawer, channel, adc, pedestal)
144 std::vector < unsigned int > *m_c_rawChannelIdMap = nullptr;
145 std::vector < float > *m_c_rawChannelAmplitude = nullptr; // raw channel energy (adc)
146 std::vector < float > *m_c_rawChannelTime = nullptr; // ps
147 std::vector < int > *m_c_rawChannelLayer = nullptr; // layer index of cell signal, from caloDDE.
148 std::vector < float > *m_c_rawChannelPed = nullptr; // raw channel estimated pedestal (Tile) or LAr provenance
149 std::vector < float > *m_c_rawChannelProv = nullptr; // raw channel estimated pedestal (Tile) or LAr provenance
150 std::vector < float > *m_c_rawChannelQuality = nullptr; // raw channel quality
151 std::vector < float > *m_c_clusterRawChannelIndex = nullptr; // raw channel index
152 std::vector < int > *m_c_clusterIndex_rawChLvl = nullptr; // cluster index at raw channel level
153 std::vector < float > *m_c_rawChannelDSPThreshold = nullptr; // get from Athena POOL Utilities
154
155 // LAr HITs
156 size_t m_ncell = 0;
157 const double m_minEnergy = 1e-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; // sampling fraction from MC/data E_calibration
165 std::vector < double > *m_hits_energyConv = nullptr;
166 std::vector < double > *m_hits_cellEta = nullptr;
167 std::vector < double > *m_hits_cellPhi = nullptr;
168
169
170 // ## Cluster (EMB2 EGAMMA CALO CLUSTER 7_11) ##
171 int *m_c711_clusterIndexCounter = 0; // cluster index counter, for the entire event
172 std::vector < int > *m_c711_clusterIndex = nullptr; // cluster index, for each cluster in the same event. (they have the same number of inputs)
173 std::vector < int > *m_c711_electronIndex_clusterLvl = nullptr; // electron index, for each cluster in the same event.
174 std::vector < double > *m_c711_clusterEnergy = nullptr; //energy of the cluster
175 std::vector < double > *m_c711_clusterTime = nullptr; //timing of the cluster
176 std::vector < double > *m_c711_clusterEta = nullptr; // clus. baricenter eta
177 std::vector < double > *m_c711_clusterPhi = nullptr; // clus. baricenter phi
178 std::vector < double > *m_c711_clusterPt = nullptr; // clus. baricenter eta
179
180 // Cell
181 int *m_c711_cellIndexCounter = nullptr; // cell index counter inside a cluster, for the entire event
182 std::vector < int > *m_c711_clusterIndex_cellLvl = nullptr; // cluster index, for each cell index. (they have the same number of inputs)
183 std::vector < int > *m_c711_clusterCellIndex = nullptr; // cell index inside a cluster
184 std::vector < int > *m_c711_cellGain = nullptr; // gain of cell signal, from 'CaloGain' standard.
185 std::vector < int > *m_c711_cellLayer = nullptr; // layer index of cell signal, from caloDDE.
186 std::vector < int > *m_c711_cellRegion = nullptr; // region of calorimeter system (custom index from 'getCaloRegionIndex')
187 std::vector < double > *m_c711_cellEnergy = nullptr; // cell inside cluster energy
188 std::vector < double > *m_c711_cellTime = nullptr; // cell inside cluster energy
189 std::vector < double > *m_c711_cellEta = nullptr; // cell inside cluster baricenter eta
190 std::vector < double > *m_c711_cellPhi = nullptr; // cell inside cluster baricenter phi
191 std::vector < double > *m_c711_cellDEta = nullptr; // cell inside cluster delta_eta (granularity)
192 std::vector < double > *m_c711_cellDPhi = nullptr; // cell inside cluster delta_phi (granularity)
193 std::vector < double > *m_c711_cellToClusterDPhi = nullptr; // cell inside cluster delta_phi distance to cluster baricenter.
194 std::vector < double > *m_c711_cellToClusterDEta = nullptr; // cell inside cluster delta_eta distance to cluster baricenter.
195 // Channel
196 std::vector < int > *m_c711_clusterIndex_chLvl = nullptr; // cluster index, for each channel index. (they have the same number of inputs)
197 std::vector < int > *m_c711_clusterChannelIndex = nullptr; // index for a sequence of channels. It is a float for identify PMTs: +0.0 LAr, +0.1 Tile PMT1, +0.2 Tile PMT2
198 std::vector < std::vector < int > > *m_c711_channelChInfo = nullptr; // from both LAr (barrel_ec, pos_neg, feedthrough, slot, channel) and Tile (ros, drawer, channel, adc)
199 std::vector < std::vector < float > > *m_c711_channelDigits = nullptr; // samples from LAr and Tile cells/channels
200 std::vector < double > *m_c711_channelEnergy = nullptr; // energy of cell or readout channel inside cluster (MeV)
201 std::vector < double > *m_c711_channelTime = nullptr; // time of channel inside cluster
202 std::vector < int > *m_c711_channelLayer = nullptr; // layer index of cell signal, from caloDDE.
203 std::vector < bool > *m_c711_channelBad = nullptr; // channel linked to a cluster, whitch is tagged as bad. (1 - bad, 0 - not bad)
204 std::vector < unsigned int > *m_c711_channelHashMap = nullptr; //cell map of ALL cells inside a cluster. id 0x2d214a140000000. is a 64-bit number that represent the cell.
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; // get from Athena POOL Utilities
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; // shape
212 std::vector < std::vector < double > > *m_c711_channelShapeDer = nullptr; // shape derivative
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; //pedestal from DB (LAr / maskedTile)
217 std::vector < float > *m_c711_channelMinBiasAvg = nullptr;
218 std::vector < float > *m_c711_channelOfflHVScale = nullptr;
219 std::vector < float > *m_c711_channelOfflEneRescaler = nullptr;
220 // Raw channel
221 std::vector < std::vector < int > > *m_c711_rawChannelChInfo = nullptr; // from both LAr (barrel_ec, pos_neg, feedthrough, slot, channel, provenance) and Tile (ros, drawer, channel, adc, pedestal)
222 std::vector < unsigned int > *m_c711_rawChannelIdMap = nullptr;
223 std::vector < float > *m_c711_rawChannelAmplitude = nullptr; // raw channel energy (adc)
224 std::vector < float > *m_c711_rawChannelTime = nullptr; // raw channel time
225 std::vector < int > *m_c711_rawChannelLayer = nullptr; // layer index of cell signal, from caloDDE.
226 std::vector < float > *m_c711_rawChannelPed = nullptr; // raw channel estimated pedestal
227 std::vector < float > *m_c711_rawChannelProv = nullptr; // raw channel LAr provenance (tile masked)
228 std::vector < float > *m_c711_rawChannelQuality = nullptr; // raw channel quality
229 std::vector < float > *m_c711_clusterRawChannelIndex = nullptr; // raw channel index
230 std::vector < int > *m_c711_clusterIndex_rawChLvl = nullptr; // cluster index at raw channel level
231 std::vector < float > *m_c711_rawChannelDSPThreshold = nullptr; // get from Athena POOL utilities
232
233 // ## Particle Truth ## (MC)
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_uniqueID = nullptr;
242
243 // ## Vertex Truth ## (MC)
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_uniqueID = nullptr;
252 std::vector < int > *m_mc_vert_status = nullptr;
253
254 // ## Primary Vertex ##
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;
261
262 // ## Photons Reco ##
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;
268
269 // ## Electrons ##
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;
277 // offline shower shapes
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;
291
292 // ## Tag and probe ##
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;
297 // indexes
298 std::vector < int > *m_tp_probeIndex = nullptr; // contains the electron indexes associated to each electron (tags). The vector position represent the Tags, the number on it, the associated Probe.
299 std::vector < int > *m_tp_tagIndex = nullptr; // index for each electron in the container
300 std::vector < bool > *m_tp_isTag = nullptr;
301 std::vector < bool > *m_tp_isProbe = nullptr;
302 // Zee
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;
311};
312
313#endif
Scalar eta() const
pseudorapidity method
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
Scalar deltaR(const MatrixBase< Derived > &vec) const
Scalar phi() const
phi method
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
std::vector< float > * m_vtx_x
Gaudi::Property< bool > m_doTruthEventDump
std::vector< std::vector< double > > * m_c_channelShape
std::vector< float > * m_el_deltae
std::vector< float > * m_c_channelPed
Gaudi::Property< bool > m_doAssocTopoCluster711Dump
std::vector< int > * m_c_clusterIndex_rawChLvl
Gaudi::Property< float > m_d0TagSig
std::vector< double > * m_c_clusterEnergy
unsigned long long m_e_eventNumber
std::vector< double > * m_c711_cellEnergy
std::vector< float > * m_c_rawChannelQuality
std::vector< int > * m_c711_cellRegion
std::vector< float > * m_el_fracs1
std::vector< double > * m_c711_channelTime
std::vector< int > * m_c_cellRegion
std::vector< unsigned int > * m_c_channelChannelIdMap
std::vector< float > * m_ph_energy
std::vector< double > * m_zee_py
std::vector< float > * m_el_wtots1
std::vector< double > * m_hits_cellPhi
std::vector< int > * m_c711_cellLayer
std::vector< double > * m_c711_cellToClusterDEta
std::vector< float > * m_el_Phi
std::vector< std::vector< double > > * m_c_channelShapeDer
Gaudi::Property< bool > m_doLArEMBHitsDump
std::vector< int > * m_c_clusterChannelIndex
Gaudi::Property< float > m_z0Tag
void bookDatabaseBranches(TTree *tree)
std::vector< double > * m_zee_px
std::vector< float > * m_ph_eta
std::vector< int > * m_tp_tagIndex
std::vector< double > * m_zee_deltaR
std::vector< int > * m_c711_clusterCellIndex
std::vector< std::vector< float > > * m_lb_bcidLuminosity
std::vector< bool > * m_c_channelBad
std::vector< int > * m_c711_rawChannelLayer
std::vector< float > * m_c711_channelOfflHVScale
std::vector< double > * m_hits_energyConv
std::vector< double > * m_c_cellTime
std::vector< float > * m_tp_electronPhi
std::vector< float > * m_c711_rawChannelAmplitude
std::vector< int > * m_c711_clusterIndex
std::vector< float > * m_c_rawChannelProv
std::vector< float > * m_el_e277
std::vector< int > * m_c711_cellGain
std::vector< float > * m_el_rhad
std::vector< double > * m_c711_clusterTime
std::vector< float > * m_c711_rawChannelQuality
std::vector< double > * m_vtx_d0sig
std::vector< int > * m_mc_vert_status
std::vector< std::vector< double > > * m_c_channelOFCb
std::vector< int > * m_c711_clusterIndex_rawChLvl
std::vector< float > * m_mc_vert_phi
std::vector< std::vector< double > > * m_c_channelOFCa
std::vector< int > * m_mc_part_pdgId
std::vector< float > * m_c711_clusterRawChannelIndex
std::vector< float > * m_c_rawChannelAmplitude
std::vector< float > * m_mc_vert_z
std::vector< float > * m_c711_rawChannelPed
std::vector< double > * m_c_cellPhi
std::vector< int > * m_c711_electronIndex_clusterLvl
std::vector< float > * m_vtx_delta_z0_sin
std::vector< double > * m_c_cellEnergy
std::vector< std::vector< float > > * m_c711_channelDigits
int getCaloRegionIndex(const CaloCell *cell)
std::vector< double > * m_c711_channelOFCTimeOffset
std::vector< int > * m_c_clusterIndex_chLvl
std::vector< float > * m_mc_vert_y
std::vector< double > * m_zee_pt
std::vector< float > * m_hits_sampFrac
std::vector< int > * m_c_cellLayer
std::vector< double > * m_c_clusterPt
std::vector< bool > * m_tp_isProbe
bool isGoodProbeElectron(const xAOD::Electron *el)
std::vector< float > * m_c_rawChannelPed
std::vector< float > * m_mc_part_pt
std::vector< int > * m_c_clusterIndex
std::vector< double > * m_c_cellToClusterDPhi
std::vector< float > * m_c_channelNoise
std::vector< int > * m_hits_clusterChannelIndex
std::vector< float > * m_c711_channelPed
std::vector< double > * m_c711_clusterEta
std::vector< float > * m_el_f1
std::vector< float > * m_c_clusterRawChannelIndex
std::vector< bool > * m_tp_isTag
std::vector< float > * m_el_Pt
std::vector< float > * m_c711_channelEffectiveSigma
std::vector< int > * m_c_clusterCellIndex
bool isTagElectron(const xAOD::Electron *electron)
std::vector< float > * m_ph_pt
std::vector< float > * m_c_channelEffectiveSigma
std::vector< unsigned int > * m_c_channelHashMap
bool trackSelectionElectrons(const xAOD::Electron *electron, SG::ReadHandle< xAOD::VertexContainer > &primVertexCnt, SG::ReadHandle< xAOD::EventInfo > &ei)
std::vector< int > * m_c711_clusterChannelIndex
std::vector< int > * m_c_rawChannelLayer
std::vector< double > * m_c711_cellDPhi
std::vector< int > * m_c711_channelLayer
std::vector< std::vector< float > > * m_c_channelDigits
std::vector< double > * m_c_cellEta
std::vector< double > * m_c_cellDEta
std::vector< float > * m_c711_channelMinBiasAvg
std::vector< float > * m_c711_rawChannelTime
std::vector< double > * m_c711_cellTime
std::vector< std::vector< double > > * m_c711_channelShapeDer
std::vector< float > * m_ph_phi
std::vector< double > * m_hits_cellEta
Gaudi::Property< bool > m_doTruthPartDump
std::vector< float > * m_c_channelOfflEneRescaler
std::vector< double > * m_zee_M
std::vector< float > * m_c711_channelDSPThreshold
std::vector< double > * m_zee_pz
std::vector< double > * m_c711_clusterPhi
std::vector< std::vector< int > > * m_c711_rawChannelChInfo
std::vector< double > * m_c_cellDPhi
std::vector< float > * m_el_rhad1
std::vector< float > * m_el_weta1
std::vector< bool > * m_c711_channelBad
EventReaderBaseAlg(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< float > * m_el_et
std::vector< double > * m_c711_clusterPt
bool isEtaOutsideLArCrack(float absEta)
std::vector< std::vector< int > > * m_c711_channelChInfo
std::vector< float > * m_vtx_z
std::vector< float > * m_tp_electronPt
std::vector< int > * m_tp_probeIndex
std::vector< int > * m_lb_lumiblock
std::vector< int > * m_c_channelLayer
std::vector< double > * m_zee_T
std::vector< int > * m_c711_clusterIndex_cellLvl
std::vector< double > * m_c_clusterPhi
std::vector< double > * m_c711_clusterEnergy
std::vector< int > * m_el_index
std::vector< std::vector< int > > * m_c_rawChannelChInfo
std::vector< double > * m_c711_cellPhi
std::vector< double > * m_c711_cellEta
std::vector< int > * m_mc_part_status
Gaudi::Property< bool > m_doTagAndProbe
std::vector< float > * m_tp_electronEt
std::vector< std::vector< double > > * m_c711_channelOFCa
Gaudi::Property< float > m_etMinTag
Gaudi::Property< bool > m_isMC
std::vector< int > * m_mc_vert_uniqueID
std::vector< double > * m_hits_energy
std::vector< float > * m_c_channelADC2MEV1
std::vector< float > * m_mc_part_eta
std::vector< float > * m_mc_part_energy
std::vector< std::vector< double > > * m_c711_channelShape
std::vector< float > * m_el_Eta
std::vector< float > * m_c_channelOfflHVScale
std::vector< double > * m_c_channelTime
std::vector< double > * m_c711_cellDEta
Gaudi::Property< bool > m_getLArCalibConstants
std::vector< int > * m_c_clusterIndex_cellLvl
std::vector< double > * m_c_clusterTime
void bookBranches(TTree *tree)
Gaudi::Property< std::string > m_offProbeTightness
Define the PID for tag electron.
virtual StatusCode finalize() override
std::vector< float > * m_c_channelMinBiasAvg
std::vector< float > * m_mc_vert_time
std::vector< int > * m_c711_clusterIndex_chLvl
std::vector< float > * m_c_channelDSPThreshold
std::vector< float > * m_c711_channelNoise
std::vector< double > * m_c_clusterEta
std::vector< int > * m_c_cellGain
std::vector< float > * m_mc_part_phi
std::vector< double > * m_c711_channelEnergy
std::vector< float > * m_c_channelADC2MEV0
std::vector< int > * m_c_electronIndex_clusterLvl
std::vector< float > * m_mc_part_m
std::vector< double > * m_zee_E
std::vector< std::vector< double > > * m_c711_channelOFCb
std::vector< float > * m_tp_electronEta
std::vector< float > * m_mc_vert_x
std::vector< float > * m_c711_channelADC2MEV0
std::vector< float > * m_c711_channelOfflEneRescaler
Gaudi::Property< float > m_elecEtaCut
std::vector< float > * m_vtx_deltaZ0
std::vector< double > * m_c711_cellToClusterDPhi
std::vector< int > * m_hits_sampling
std::vector< std::vector< int > > * m_c_channelChInfo
std::vector< float > * m_c_rawChannelDSPThreshold
std::vector< float > * m_vtx_y
std::vector< double > * m_c_channelEnergy
std::vector< float > * m_el_rphi
Gaudi::Property< bool > m_doElecSelectByTrackOnly
Gaudi::Property< bool > m_doPhotonDump
std::vector< double > * m_c_channelOFCTimeOffset
std::vector< unsigned int > * m_c711_rawChannelIdMap
std::vector< float > * m_el_eratio
Gaudi::Property< float > m_etMinProbe
define the Pid of Probe from the user
std::vector< unsigned int > * m_hits_hash
std::vector< float > * m_c_rawChannelTime
Gaudi::Property< bool > m_noBadCells
std::vector< float > * m_ph_m
std::vector< float > * m_c711_rawChannelDSPThreshold
std::vector< float > * m_mc_vert_eta
std::vector< float > * m_c711_rawChannelProv
std::vector< int > * m_mc_part_uniqueID
std::vector< float > * m_el_f3
std::vector< float > * m_el_reta
std::vector< unsigned int > * m_c711_channelChannelIdMap
std::vector< int > * m_hits_clusterIndex_chLvl
std::vector< float > * m_mc_vert_perp
std::vector< float > * m_c711_channelADC2MEV1
Gaudi::Property< std::string > m_offTagTightness
virtual StatusCode execute() override
bool eOverPElectron(const xAOD::Electron *electron)
std::vector< float > * m_el_weta2
std::vector< float > * m_el_eoverp
std::vector< float > * m_el_m
std::vector< double > * m_c_cellToClusterDEta
std::vector< unsigned int > * m_c_rawChannelIdMap
std::vector< double > * m_hits_time
double fixPhi(double phi)
std::vector< unsigned int > * m_c711_channelHashMap
Electron_v1 Electron
Definition of the current "egamma version".
void initialize()
TChain * tree