ATLAS Offline Software
EventReaderAlg.cxx
Go to the documentation of this file.
1 // Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
4 
8 
9 #include "Identifier/Identifier.h"
11 
12 #include "CaloGeoHelpers/CaloSampling.h"
13 
16 
18 
19 #include <bitset>
20 #include "CLHEP/Units/SystemOfUnits.h"
21 #include "TTree.h"
22 #include "xAODEgamma/EgammaxAODHelpers.h" //for getAssociatedTopoClusters
23 
24 
25 using CLHEP::twopi;
26 using CLHEP::GeV;
27 using CLHEP::pi;
28 
29 EventReaderAlg::EventReaderAlg( const std::string& name, ISvcLocator* pSvcLocator ) :
30  EventReaderBaseAlg(name, pSvcLocator)
31  , m_ntsvc("THistSvc/THistSvc", name)
32  {}
33 
35  ATH_MSG_INFO ("Initializing " << name() << "...");
36  ATH_MSG_INFO ("(EventReader) Initializing conditions...");
37 
38  // Conditions
41  ATH_CHECK(m_noiseCDOKey.initialize()); //---- retrieve the noise CDO
50  ATH_MSG_DEBUG(" (EventReader) Condition Keys initialized!");
51 
52  // Containers
54  ATH_CHECK(m_primVertSgKey.initialize());
59  ATH_CHECK(m_truthEventCntSgKey.initialize());
64  ATH_MSG_DEBUG(" (EventReader) Container Keys initialized!");
65 
66  // -- Retrieve ID Helpers --
67  ATH_CHECK( detStore()->retrieve(m_onlineLArID, "LArOnlineID") ); // get online ID info from LAr (online)
68  ATH_CHECK( detStore()->retrieve (m_calocell_id, "CaloCell_ID") );
70 
71  StatusCode sc = detStore()->retrieve(m_caloIdMgr);
72  if (sc.isFailure()) {
73  ATH_MSG_ERROR(" Unable to retrieve CaloIdManager from DetectoreStore");
74  return StatusCode::FAILURE;
75  }
76  else{
80  }
81  // -------------------------
82 
83  // Book the variables to save in the *.root
84  m_Tree = new TTree("dumpedData", "dumpedData");
85  m_secondTree = new TTree("lumiblockData", "lumiblockData");
86 
87  ATH_MSG_DEBUG("Booking branches...");
88  bookBranches(m_Tree); // book TTree with branches
90 
91  if (!m_ntsvc->regTree("/rec/tree1", m_Tree).isSuccess()) {
92  ATH_MSG_ERROR("could not register tree [dumpedData]");
93  return StatusCode::FAILURE;
94  }
95  if (!m_ntsvc->regTree("/rec/tree2", m_secondTree).isSuccess()) {
96  ATH_MSG_ERROR("could not register tree [database]");
97  return StatusCode::FAILURE;
98  }
99 
100  if (m_doTagAndProbe && m_doElecSelectByTrackOnly) ATH_MSG_INFO("Entering single_e mode...");
101  else if (m_doTagAndProbe && !m_doElecSelectByTrackOnly) ATH_MSG_INFO("Entering Zee T&P mode...");
102  else {
103  ATH_MSG_ERROR("No valid electron chain selected!");
104  return StatusCode::FAILURE;
105  }
106 
107  return StatusCode::SUCCESS;
108 }
109 
111  ATH_MSG_DEBUG ("Executing " << name() << "...");
112  ATH_MSG_DEBUG("Cleanning of event variables...");
113  const EventContext& ctx = getContext();
114  clear(); // clear all variables selected to dump to the output NTuple.
115 
116  // Conditions
117  if (!m_isMC){
118 
119  if (!m_EneRescalerFldr.empty()){
121  const coral::Blob& blob = (**EneRescalerHdl)["CaloCondBlob16M"].data<coral::Blob>();
122  if (blob.size()<3) ATH_MSG_WARNING("Found empty blob, no correction needed");
123  m_EneRescaler = CaloCondBlobFlt::getInstance(blob); // offline egamma cell correction (due from 5 to 4 downsampling rate)
124  ATH_MSG_DEBUG("offlineEnergyRescaler is set!");
125  }
126 
127  if (!m_run2DSPThresholdsKey.empty()) {
129  m_run2DSPThresh = std::unique_ptr<LArDSPThresholdsFlat>(new LArDSPThresholdsFlat(*dspThrshAttrHdl));
130  ATH_MSG_DEBUG("DSPThreshold has set!");
131  }
132 
133  if (!m_lumiDataKey.empty()){
135  m_lumis =*lumiHdl;
136  ATH_MSG_DEBUG("LuminosityCondData is set!");
137  }
138 
141  m_oflHVCorr =*oflHVCorrHdl;
142  ATH_MSG_DEBUG("OfflineHVCorrection is set!");
143  }
144  }
145  else{
146  if (!m_fSamplKey.empty()){ // MC
148  m_fSampl = *fSamplHdl;
149  ATH_MSG_DEBUG("SamplingFraction is set!");
150  }
151  }
152 
160 
161  m_larCabling = *larCablingHdl;
162  m_noiseCDO = *noiseHdl;
163  m_peds = *pedHdl;
164  m_adc2MeVs = *adc2mevHdl;
165  m_ofcs = *ofcHdl;
166  m_shapes = *shapeHdl;
167  m_minBiasAvgs = *minBiasAvgHdl;
168 
170  if (!ei.isValid()) ATH_MSG_ERROR(" EventInfo container is not valid!");
171 
173  ATH_MSG_WARNING("Event not passing LAr! Skipping event.");
174  return StatusCode::SUCCESS;
175  }
176 
178  if (!primVertexCnt.isValid()) ATH_MSG_ERROR(" Primary Vertex container is not valid!");
179 
180  // *** Lumiblock data ***
181  // Verify if ei->lumiBlock() was dumped into lb_lumiblock. if not, add it.
182  // Each LB entry should be dumped just once, since their content doesnt change per event.
183  if (std::count(m_lb_lumiblock->begin(), m_lb_lumiblock->end(), ei->lumiBlock()) == 0){
184  if(!dumpLumiblockInfo(ei)) ATH_MSG_INFO("Lumiblock information cannot be collected!");
185  }
186 
187  // EventInfo
188  if(!dumpEventInfo(ei)) ATH_MSG_INFO("Event information cannot be collected!");
189 
190  // Clusters
191  if (m_doClusterDump){
192 
194 
195  if(!cls.isValid()){
196  ATH_MSG_ERROR("CaloCluster container is not valid!");
197  return StatusCode::FAILURE;
198  }
199 
200  for (const xAOD::CaloCluster *cl : *cls){
201  ATH_MSG_DEBUG ("Cluster "<< m_c_clusterIndexCounter << ", Total size: " << cl->numberCells() << "/ "<< cl->clusterSize() << ", etaBE: " << cl->etaBE(2) << ", numberCellsInSampling: " << cl->numberCellsInSampling(CaloSampling::EMB2) <<", eta size: " << cl->etasize(CaloSampling::EMB2) << ", phi size: " << cl->phisize(CaloSampling::EMB2) );
202 
203  if (! dumpClusterCells(cl, m_c_clusterIndexCounter , ctx) ) ATH_MSG_WARNING ("CaloCluster Cells cannot be dumped for Zee.");
204 
206  }
207  }
208 
209  // Apply the Zee cut
211 
212  if(!dumpZeeCut(ei,primVertexCnt, ctx)) ATH_MSG_DEBUG("Zee cut algorithm cannot be executed!");
213 
214  std::string eSelectionText = "";
215  SG::ReadHandle<xAOD::ElectronContainer> myElectronsSelection;
216 
217  if (m_doElecSelectByTrackOnly) eSelectionText = "Number of myElectronsSelection single electrons: ";
218  else eSelectionText = "Number of myElectronsSelection tagAndProbe Zee candidates: ";
219 
220  myElectronsSelection = SG::makeHandle(m_myElecSelectionSgKey,ctx);
221  // Optional: Skip empty events.
222  if (m_skipEmptyEvents && (myElectronsSelection->size() == 0)){
223  ATH_MSG_INFO("This event has no selected electrons! Cleanning event variables and skipping writing to NTuple...");
224  clear(); // clear all variables selected to dump to the output NTuple.
225  return StatusCode::SUCCESS;
226  }
227 
228  if(!FillNTupleWithSelectedElectrons(ei, primVertexCnt, myElectronsSelection, eSelectionText, ctx)) ATH_MSG_DEBUG("FillNTupleWithElectrons cannot be executed!");
229 
230  if (m_isMC){
231  // Particle Truth
232  if (m_doTruthPartDump){
234  if (!truthParticleCnt.isValid()) ATH_MSG_ERROR("TruthParticleContainer is not valid!");
235 
236  if(!dumpTruthParticle(myElectronsSelection, truthParticleCnt)) ATH_MSG_DEBUG("Truth Particle information cannot be collected!");
237  }
238  }
239  } // end if-start TagAndProbe chain
240 
241  m_Tree->Fill();
242 
243  return StatusCode::SUCCESS;
244 }
245 
247 
248  ATH_MSG_INFO(eSelectionText << elContainer->size() );
249 
250  int electronIndex = 0;
251  for (const xAOD::Electron *elec : *elContainer){
252 
253  const auto& clusLinks = elec->caloClusterLinks(); // get the cluster links for the electron
254 
255  // loop over clusters and dump cells
256  for (const auto& clusLink : clusLinks){
257 
258  // get associated topoclusters from superclusters
260  auto assocCls = xAOD::EgammaHelpers::getAssociatedTopoClusters( (*clusLink) );
261 
262  for ( auto assocCl : assocCls){
263  ATH_MSG_DEBUG ("AssociatedTopoCluster " << m_c_clusterIndexCounter << ": e: "<< assocCl->e() << ", eta: " << assocCl->eta() << ", phi: " << assocCl->phi() <<". Total size: " << assocCl->numberCells() << "/ "<< assocCl->clusterSize() << ", etaBE: " << assocCl->etaBE(2) << ", numberCellsInSampling: " << assocCl->numberCellsInSampling(CaloSampling::EMB2) <<", eta size: " << assocCl->etasize(CaloSampling::EMB2) << ", phi size: " << assocCl->phisize(CaloSampling::EMB2) );
264  if (! dumpClusterCells(assocCl, m_c_clusterIndexCounter, ctx ) ) ATH_MSG_WARNING ("CaloCluster Cells cannot be dumped for Zee.");
265 
267  }
268  }
269  else{ // dump only the superclusters
270  if (! dumpClusterCells((*clusLink), m_c_clusterIndexCounter, ctx ) ) ATH_MSG_WARNING ("CaloCluster Cells cannot be dumped for Zee.");
272  }
273  m_c_electronIndex_clusterLvl->push_back(electronIndex); // electron indexes for each cluster
274  } //end-for loop in clusLinks
275 
276  // dump tag and probe electrons
277  if (!dumpElectrons(elec)) ATH_MSG_WARNING ("Cannot dump ordinary electrons...");
278  if (!dumpOfflineSS(elec)) ATH_MSG_WARNING ("Cannot dump offline shower shapes for electrons...");
279  if (!dumpPrimVertexAssocToElectron(elec, primVertexCnt, ei)) ATH_MSG_WARNING ("Cannot dump primary vertexes info associated to electrons...");
280  m_el_index->push_back(electronIndex);
281 
282  electronIndex++;
283 
284  } // end-for loop in m_electronsSelectedByTrack electrons
285 
286  return StatusCode::SUCCESS;
287 }
288 
290  m_el_f1->push_back(electron->showerShapeValue(xAOD::EgammaParameters::f1));
291  m_el_f3->push_back(electron->showerShapeValue(xAOD::EgammaParameters::f3));
292  m_el_eratio->push_back(electron->showerShapeValue(xAOD::EgammaParameters::Eratio));
293  m_el_weta1->push_back(electron->showerShapeValue(xAOD::EgammaParameters::weta1));
294  m_el_weta2->push_back(electron->showerShapeValue(xAOD::EgammaParameters::weta2));
295  m_el_fracs1->push_back(electron->showerShapeValue(xAOD::EgammaParameters::fracs1));
296  m_el_wtots1->push_back(electron->showerShapeValue(xAOD::EgammaParameters::wtots1));
297  m_el_e277->push_back(electron->showerShapeValue(xAOD::EgammaParameters::e277));
298  m_el_reta->push_back(electron->showerShapeValue(xAOD::EgammaParameters::Reta));
299  m_el_rphi->push_back(electron->showerShapeValue(xAOD::EgammaParameters::Rphi));
300  m_el_deltae->push_back(electron->showerShapeValue(xAOD::EgammaParameters::DeltaE));
301  m_el_rhad->push_back(electron->showerShapeValue(xAOD::EgammaParameters::Rhad));
302  m_el_rhad1->push_back(electron->showerShapeValue(xAOD::EgammaParameters::Rhad1));
303 
304  return StatusCode::SUCCESS;
305 }
306 
308  float electronEt = electron->e()/(cosh(electron->trackParticle()->eta()));
309  float track_p = (electron->trackParticle())->pt()*std::cosh((electron->trackParticle())->eta());
310  float eoverp = (electron->caloCluster())->e()/track_p;
311  m_el_eoverp->push_back(eoverp);
312  m_el_Pt->push_back(electron->pt());
313  m_el_et->push_back(electronEt);
314  m_el_Eta->push_back(electron->eta());
315  m_el_Phi->push_back(electron->phi());
316  m_el_m->push_back(electron->m());
317 
318  return StatusCode::SUCCESS;
319 }
320 
322 
323  const xAOD::TrackParticle *trackElectron = el->trackParticle();
324 
325  // check for primary vertex in the event
326  // *************** Primary vertex check ***************
327  //loop over vertices and look for good primary vertex
328  float bestDeltaZ0Sin = 9999.0, bestZfromVertex = 9999.0, bestXFromVertex = 9999.0, bestYFromVertex = 9999.0, bestDeltaZ0 = 9999.0;
329  double bestD0Sig = 9999.0;
330  int vtxCounter = 0;//, bestVtxCounter = 0;
331  bool isAnyClosestVtx = false;
332  for (const xAOD::Vertex *vxIter : *primVertexCnt) {
333 
334  // Select good primary vertex
335  float zFromVertex = vxIter->z();
336  float delta_z0 = fabs(trackElectron->z0() + trackElectron->vz() - zFromVertex); //where trk.vz() represents the point of reference for the z0 calculation (in this case, the beamspot position along the z axis).
337  float delta_z0_sin = delta_z0 * sin(trackElectron->theta()); //where sin(trk.theta()) parameterises the uncertainty of the z0 measurement.
338  double d0sig = xAOD::TrackingHelpers::d0significance( trackElectron, evtInfo->beamPosSigmaX(), evtInfo->beamPosSigmaY(), evtInfo->beamPosSigmaXY() );
339 
340 
341  if ((vxIter->vertexType() == xAOD::VxType::PriVtx) && ( fabs(delta_z0_sin) < m_z0Tag) && (fabs(d0sig) < m_d0TagSig) ){ //is this vertex passed into d0sig and dz0Sin conditions?
342  isAnyClosestVtx = true;
343 
344  ATH_MSG_DEBUG ("(dumpPrimVertexAssocToElectron) Vertex "<< vtxCounter << ": This is a primary vertex. |delta_z0_sin| < 0.5 mm ("<< delta_z0_sin << "). |d0sig| < 5 (" << d0sig << ")");
345  if ( (fabs(delta_z0_sin) < fabs(bestDeltaZ0Sin) ) && (fabs(d0sig) < fabs(bestD0Sig)) ) // is this vertex the closest one to that electron track?
346  {
347  // assign all variables to dump:
348  ATH_MSG_DEBUG ("(dumpPrimVertexAssocToElectron) New best associated Vertex. Vertex "<< vtxCounter << ": |delta_z0_sin| < 0.5 mm ("<< delta_z0_sin << "). |d0sig| < 5 (" << d0sig << ")");
349 
350  bestDeltaZ0Sin = delta_z0_sin;
351  bestD0Sig = d0sig;
352 
353  bestXFromVertex = vxIter->x();
354  bestYFromVertex = vxIter->y();
355  bestZfromVertex = zFromVertex;
356  bestDeltaZ0 = delta_z0;
357  }
358  }
359  vtxCounter++;
360  }
361  // --------- Dump here: ---------
362  if (isAnyClosestVtx){
363  m_vtx_x->push_back(bestXFromVertex);
364  m_vtx_y->push_back(bestYFromVertex);
365  m_vtx_z->push_back(bestZfromVertex);
366  m_vtx_deltaZ0->push_back(bestDeltaZ0);
367  m_vtx_delta_z0_sin->push_back(bestDeltaZ0Sin);
368  m_vtx_d0sig->push_back(bestD0Sig);
369  }
370  else{
371  ATH_MSG_ERROR("A pre-selected electron track has no closest vertex to dump! (weird?)");
372  }
373  // -------------------------------
374 
375 
376  return StatusCode::SUCCESS;
377 }
378 
380 
381  if (!m_isMC){
383  ATH_MSG_INFO ("LB_data: lbLuminosityPerBCIDVector stored into ntuple." );
384  }
385  m_lb_lumiblock->push_back( ei->lumiBlock() );
386  ATH_MSG_INFO ("LB_data: Lumiblock "<< ei->lumiBlock() << " stored into ntuple." );
387 
388  return StatusCode::SUCCESS;
389 }
390 
392  m_e_runNumber = ei->runNumber();
394  m_e_bcid = ei->bcid();
395  m_e_lumiBlock = ei->lumiBlock();
398 
399  ATH_MSG_INFO ("in execute, runNumber = " << m_e_runNumber << ", eventNumber = " << m_e_eventNumber << ", bcid: " << m_e_bcid );
400 
401  return StatusCode::SUCCESS;
402 }
403 
405  ATH_MSG_INFO("Dumping Zee cut region...");
406 
407  auto electronSelectionCnt = std::make_unique<ConstDataVector<xAOD::ElectronContainer>> (SG::VIEW_ELEMENTS);
408  auto TagAndProbeElectronSelectionCnt = std::make_unique<ConstDataVector<xAOD::ElectronContainer>> (SG::VIEW_ELEMENTS);
409 
411 
412  if (!electronsCnt.isValid()) {
413  ATH_MSG_ERROR("Electron container is not valid!");
414  return StatusCode::FAILURE;
415  }
416 
417  // Pre-selection of electrons
418  for (auto el : *electronsCnt){
419  if (std::abs(el->eta()) > m_elecEtaCut){ // apply electron |eta| cut
420  continue;
421  }
422  if (trackSelectionElectrons(el, primVertexCnt, ei) == true){
423  if (eOverPElectron(el) == true){ // if 0.7 < E/p < 1.4
424  electronSelectionCnt->push_back( el );
425  }
426  }
427  else continue;
428  }
429 
430  if (m_doElecSelectByTrackOnly){ // do not proceed to T&P
431  ATH_CHECK (evtStore()->record( electronSelectionCnt.release(), "MySelectedElectrons"));
432  return StatusCode::SUCCESS;
433  }
434 
435  if (electronSelectionCnt->size() < 2){
436  ATH_MSG_DEBUG("(TagAndProbe) Not enough Electrons for T&P (nElectrons="<<electronSelectionCnt->size() << "). Storing "<<electronSelectionCnt->size()<<" electron on MyTagAndProbeElectrons container. This will not be dumped!");
437  ATH_CHECK (evtStore()->record( TagAndProbeElectronSelectionCnt.release(), "MyTagAndProbeElectrons"));
438  return StatusCode::SUCCESS;
439  }
440 
441  // ## Loop over electron container in search of Zee pairs ##
442  for (const xAOD::Electron *elTag : *electronSelectionCnt){
443 
444  if (! isTagElectron(elTag)) continue;
445  ATH_MSG_DEBUG("(TagAndProbe) Electron is a Tag!");
446 
447  for (const xAOD::Electron *elProbe : *electronSelectionCnt){
448  if (elTag==elProbe) continue;
449 
450  //check for charge (opposite charges for Zee)
451  if ( elTag->charge() == elProbe->charge() ) continue;
452  ATH_MSG_DEBUG ("(TagAndProbe) Electron Pair Charges are opposite! Good.");
453 
454  //check for Zee mass
455  TLorentzVector el1;
456  TLorentzVector el2;
457  el1.SetPtEtaPhiE(elTag->pt(), elTag->trackParticle()->eta(), elTag->trackParticle()->phi(), elTag->e());
458  el2.SetPtEtaPhiE(elProbe->pt(), elProbe->trackParticle()->eta(), elProbe->trackParticle()->phi(), elProbe->e());
459 
460  float tpPairMass = (el1 + el2).M(); // mass of the electron pair
461  ATH_MSG_DEBUG ("(TagAndProbe) Electron Pair mass: " << tpPairMass << ". Min: "<< m_minZeeMassTP*GeV << ". Max: " << m_maxZeeMassTP*GeV);
462  if (!((tpPairMass > m_minZeeMassTP*GeV) && (tpPairMass < m_maxZeeMassTP*GeV))){
463  ATH_MSG_DEBUG ("(TagAndProbe) Electron pair not in Z mass window.");
464  continue;
465  }
466  else{
467  ATH_MSG_INFO ("(TagAndProbe) Electron-positron pair are in Z mass window.");
468  // test for goodProbeElectron
469  if (!isGoodProbeElectron(elProbe)){
470  ATH_MSG_DEBUG (" Probe electron not passed in Goodnes of Probe test.");
471  continue;
472  }
473  ATH_MSG_INFO("(TagAndProbe) Electron is a good probe.");
474  ATH_MSG_INFO ("Tag and probe pair found.");
475 
476  ATH_MSG_INFO ("TAG: pt="<< elTag->pt() << " e="<< elTag->e());
477  ATH_MSG_INFO ("PRO: pt="<< elProbe->pt() << " e="<< elProbe->e());
478  ATH_MSG_INFO ("Zee: M="<< tpPairMass << " E="<< (el1 + el2).E());
479  m_zee_M->push_back((el1 + el2).M());
480  m_zee_E->push_back((el1 + el2).E());
481  m_zee_pt->push_back((el1 + el2).Pt());
482  m_zee_px->push_back((el1 + el2).Px());
483  m_zee_py->push_back((el1 + el2).Py());
484  m_zee_pz->push_back((el1 + el2).Pz());
485  m_zee_T->push_back((el1 + el2).T());
486  m_zee_deltaR->push_back(el1.DeltaR(el2));
487 
488  // ****************************************************************
489  // store electrons in a container to dump their clusters and cells.
490  TagAndProbeElectronSelectionCnt->push_back( (elTag) );
491  // ****************************************************************
492  }
493  } //end-loop probe electrons
494  } //end-loop tag electrons
495 
496  ATH_CHECK (evtStore()->record( TagAndProbeElectronSelectionCnt.release(), "MyTagAndProbeElectrons"));
497  return StatusCode::SUCCESS;
498 }
499 
501  ATH_MSG_INFO("Dumping Truth Particle...");
502 
503  auto elecCandidates = std::make_unique<ConstDataVector<xAOD::TruthParticleContainer>> (SG::VIEW_ELEMENTS);
504 
505  if (truthParticleCnt->size() == 0) ATH_MSG_INFO("truthParticleCnt is empty!");
506  else{
507  for (const xAOD::Electron *recElectron : *electronSelectionCnt){
508 
509  const xAOD::TruthParticle *truth = xAOD::TruthHelpers::getTruthParticle(*recElectron);
510  elecCandidates->push_back( truth );
511 
512  ATH_MSG_INFO("(TruthParticle) Reco pt="<< recElectron->pt()<<" , Truth pt= "<< truth->pt());
513  }
514  }
515 
516  if (elecCandidates->size() > 0) ATH_MSG_INFO("(TruthParticle) Size of elecCandidates is "<< elecCandidates->size()<<" !");
517 
518  for (const xAOD::TruthParticle *elecSelected : *elecCandidates){
519  const xAOD::TruthVertex* vertex = elecSelected->prodVtx();
520 
521  TLorentzVector elecCandidateLorentz;
522  elecCandidateLorentz.SetPtEtaPhiE(elecSelected->pt(),elecSelected->eta(),elecSelected->phi(),elecSelected->e());
523 
524  m_mc_vert_x->push_back(vertex->x()); // vertex displacement
525  m_mc_vert_y->push_back(vertex->y()); // vertex displacement
526  m_mc_vert_z->push_back(vertex->z()); // vertex displacement in beam direction
527  m_mc_vert_time->push_back(vertex->t()); // vertex time
528  m_mc_vert_perp->push_back(vertex->perp()); // Vertex transverse distance from the beam line
529  m_mc_vert_eta->push_back(vertex->eta()); // Vertex pseudorapidity
530  m_mc_vert_phi->push_back(vertex->phi()); // Vertex azimuthal angle
531  m_mc_vert_barcode->push_back(HepMC::barcode(vertex)); // FIXME barcode-based
533 
534  m_mc_part_energy->push_back(elecSelected->e());
535  m_mc_part_pt->push_back(elecSelected->pt());
536  m_mc_part_pdgId->push_back(elecSelected->pdgId());
537  m_mc_part_m->push_back(elecSelected->m());
538  m_mc_part_phi->push_back(elecSelected->phi());
539  m_mc_part_eta->push_back(elecSelected->eta());
540  }
541  ATH_CHECK (evtStore()->record( elecCandidates.release(), "MyMatchedTruthElectrons"));
542  return StatusCode::SUCCESS;
543 
544 }
545 
546 StatusCode EventReaderAlg::dumpClusterCells(const xAOD::CaloCluster *cl, int clusIndex, const EventContext& ctx){
547 
549  if(!LarDigCnt.isValid()) ATH_MSG_ERROR("LArDigitContainer is not a valid container!");
551  if(!LArRawCnt.isValid()) ATH_MSG_ERROR("LArRawChannelContainer is not a valid container!");
552 
553  // calorimeter level
554  std::bitset<200000> larClusteredDigits;
555  std::vector<size_t> caloHashMap;
556  std::vector<HWIdentifier> channelHwidInClusterMap; //unique for any readout in the ATLAS
557  std::vector<int> cellIndexMap;
558  std::vector<float> channelIndexMap;
559  std::vector<int> cellLayerMap;
560  // cell level
561  std::vector<double> clusCellEtaMap;//unused
562  std::vector<double> clusCellPhiMap; //unused
563  // channel level
564  std::vector<double> channelEnergyInClusterMap;
565  std::vector<double> channelTimeInClusterMap;
566  std::vector<double> channelEtaInClusterMap;
567  std::vector<double> channelPhiInClusterMap;
568  std::vector<float> channelEffectiveSigmaClusterMap;
569  std::vector<float> channelNoiseClusterMap;
570 
571  std::vector<int> channelCaloRegionMap;
572  std::vector<bool> badChannelMap;
573 
574  // cluster
575  double clusEta = cl->eta();
576  double clusPhi = cl->phi();
577  double clusEt = cl->et();
578  double clusPt = cl->pt();
579  double clusTime = cl->time();
580 
581  ATH_MSG_DEBUG (" (Cluster) Cluster: "<< clusIndex <<", numberCells: " << cl->numberCells() << ", e = " << cl->e() << ", time = "<< clusTime << ", pt = " << cl->pt() << " , eta = " << cl->eta() << " , phi = " << cl->phi());
582 
583  // loop over cells in cluster
584  auto itrCellsBegin = cl->cell_begin();
585  auto itrCellsEnd = cl->cell_end();
586  int cellNum = 0; //cell number just for printing out
587 
588  for (auto itCells=itrCellsBegin; itCells != itrCellsEnd; ++itCells){
589  const CaloCell* cell = (*itCells); //get the caloCells
590  if (cell){ // check for empty clusters
591  Identifier cellId = cell->ID();
592 
593  int caloRegionIndex = getCaloRegionIndex(cell); // custom caloRegionIndex based on caloDDE
594 
595  double eneCell = cell->energy();
596  double timeCell = cell->time();
597  double etaCell = cell->eta();
598  double phiCell = cell->phi();
599  int gainCell = cell->gain(); // CaloGain type
600  int layerCell = m_calocell_id->calo_sample(cell->ID());
601  bool badCell = cell->badcell(); // applied to LAR channels. For Tile, we use TileCell* tCell->badch1() or 2.
602  bool isTile = cell->caloDDE()->is_tile();
603  bool isLAr = cell->caloDDE()->is_lar_em();
604  bool isLArFwd = cell->caloDDE()->is_lar_fcal();
605  bool isLArHEC = cell->caloDDE()->is_lar_hec();
606  double detaCell = cell->caloDDE()->deta(); //delta eta - granularity
607  double dphiCell = cell->caloDDE()->dphi(); //delta phi - granularity
608  float effSigma = m_noiseCDO->getEffectiveSigma(cell->ID(), cell->gain(), cell->energy()); // effective sigma of cell related to its noise.
609  float cellNoise = m_noiseCDO->getNoise(cell->ID(), cell->gain()); // cell noise value
610 
611  IdentifierHash chidHash;
612  HWIdentifier chhwid;
613  size_t index;
614 
615  // ========= TileCal ==========
616  if (isTile) continue;
617 
618  // ========= LAr ==========
619  else if ((isLAr) || (isLArFwd) || (isLArHEC)) { //LAr
620  chhwid = m_larCabling->createSignalChannelID(cellId);
621  chidHash = m_onlineLArID->channel_Hash(chhwid);
622  index = (size_t) (chidHash);
623 
624  if (larClusteredDigits.test(index)) {
625  ATH_MSG_ERROR (" ##### (Cluster) Error LAr: Conflict index position in Channel map. Position was already filled in this event. Skipping the cell of index: " << index << " and hwid: " << chhwid << ". Cell_E/t="<<cell->energy() << "/"<< cell->time() << ". Eta/Phi: "<< cell->eta() << "/" << cell->phi());
626  continue;
627  }
628  if (badCell && m_noBadCells){
629  ATH_MSG_INFO (" (Cluster)(LAr) Cell "<< cellNum <<" in cluster is a bad LAr channel! Skipping the cell.");
630  continue;
631  }
632  larClusteredDigits.set(index);
633  caloHashMap.push_back(index);
634  cellIndexMap.push_back(m_c_cellIndexCounter);
635  clusCellEtaMap.push_back(etaCell);
636  clusCellPhiMap.push_back(phiCell);
637  cellLayerMap.push_back(layerCell);
638  channelIndexMap.push_back( m_c_cellIndexCounter );
639  channelHwidInClusterMap.push_back(chhwid);
640  channelTimeInClusterMap.push_back(timeCell);
641  channelEnergyInClusterMap.push_back(eneCell);
642  channelCaloRegionMap.push_back(caloRegionIndex);
643  channelEffectiveSigmaClusterMap.push_back(effSigma);
644  channelNoiseClusterMap.push_back(cellNoise);
645  if (!m_noBadCells) badChannelMap.push_back(badCell);
646 
647  if (m_printCellsClus){ //optional to help debugging
648  ATH_MSG_INFO (" (Cluster) in IsLAr: Cell (layer) "<< cellNum << " (" << layerCell <<") ID: " << cellId << "). HwId (B_EC/P_N/FeedTr/slot/ch) " << chhwid << " (" << m_onlineLArID->barrel_ec(chhwid) << "/" << m_onlineLArID->pos_neg(chhwid) << "/"<< m_onlineLArID->feedthrough(chhwid) << "/" << m_onlineLArID->slot(chhwid) << "/" << m_onlineLArID->channel(chhwid) << ") . Index: " << index << ". ene " << eneCell << ". time " << timeCell << ". D_eta: " << detaCell << ". D_phi: " << dphiCell << " ):" << ". Eta/Phi: "<< cell->eta() << "/" << cell->phi());
649  }
650  } //end else LAr
651 
652  else {
653  ATH_MSG_ERROR (" ####### (Cluster) ERROR ! No CaloCell region was found!");
654  continue;
655  }
656 
657  // ##############################
658  // CELL INFO DUMP (CLUSTER)
659  // ##############################
660  const double clusterDphiRaw = clusPhi - phiCell;
661  double cluster_dphi = 0.;
662 
663  if (clusterDphiRaw < -pi) {
664  cluster_dphi = twopi + clusterDphiRaw;
665  }
666  else if (clusterDphiRaw > pi) {
667  cluster_dphi = clusterDphiRaw - twopi;
668  }
669  else {
670  cluster_dphi = clusterDphiRaw;
671  }
672 
673  m_c_clusterIndex_cellLvl->push_back(clusIndex);
675  m_c_cellGain->push_back(gainCell);
676  m_c_cellLayer->push_back(layerCell);
677  m_c_cellEnergy->push_back(eneCell);
678  m_c_cellTime->push_back(timeCell);
679  m_c_cellEta->push_back(etaCell);
680  m_c_cellPhi->push_back(phiCell);
681  m_c_cellDEta->push_back(detaCell);
682  m_c_cellDPhi->push_back(dphiCell);
683  m_c_cellToClusterDEta->push_back(clusEta - etaCell);
684  m_c_cellToClusterDPhi->push_back(cluster_dphi);
685  m_c_cellRegion->push_back(caloRegionIndex);
686 
688  cellNum++;
689  } // end if-cell is empty verification
690  } // end loop at cells inside cluster
691 
692  // ##############################
693  // CLUSTER INFO DUMP (CLUSTER)
694  // // ##############################
695  m_c_clusterIndex->push_back(clusIndex);
696  m_c_clusterEnergy->push_back(clusEt);
697  m_c_clusterTime->push_back(clusTime);
698  m_c_clusterEta->push_back(clusEta);
699  m_c_clusterPhi->push_back(clusPhi);
700  m_c_clusterPt->push_back(clusPt);
701 
702  // ##############################
703  // DIGITS CHANNEL INFO DUMP (CLUSTER)
704  // ##############################
705  // Loop over ALL channels in LAr Digit Container.
706  // Dump only the channels inside the previous clusters
707 
708  // ========= LAr ==========
709  if (larClusteredDigits.any()){
710  // -- LAr_Hits --
711  if (m_isMC && m_doLArEMBHitsDump){
712  ATH_MSG_DEBUG (" (Cluster-HITS) Dumping LAr EMB Hits...");
713 
715 
717  if(!larHitCnt.isValid()) ATH_MSG_ERROR("LAr EMB Hit container is not valid!");
718 
719  for (unsigned int k=0 ; k < channelHwidInClusterMap.size() ; k++){
720  double cell_total_ene = 0.0;
721  double cell_total_eneCalib = 0.0;
722  double cell_hit_tof = -999.0;
723  double hit_ene = 0.;
724  double hit_time = 0.;
725  float hit_fSampCalib = 1.;
726  int hit_sampling = 0;
727  size_t hit_index1 = 0;
728  bool thereIsOneHitToDump = false;
729  std::vector<double> hitEnergiesFromMap;
730  std::vector<double> hitTimesFromMap ;
731 
732  for (const LArHit* hit : *larHitCnt){
733  Identifier hit_cellID = hit->cellID();
734  HWIdentifier hit_hwid = m_larCabling->createSignalChannelID(hit_cellID);
735  IdentifierHash hit_idHash = m_onlineLArID->channel_Hash(hit_hwid);
736  hit_index1 = (size_t) (hit_idHash);//(m_calocell_id->calo_cell_hash(hit_cellID));
737 
738  if (larClusteredDigits.test(hit_index1)){
739  if (channelHwidInClusterMap[k]==hit_hwid){
740 
741  hit_ene = hit->energy();
742  hit_time = hit->time();
743  hit_sampling = m_calocell_id->calo_sample(hit_cellID);
744 
745  if (hit_index1 < m_ncell && fabs(hit_time) < 25.){ // time < 25 ns (current BC)
746  hitEnergiesFromMap.push_back(hit_ene);
747  hitTimesFromMap.push_back(hit_time);
748  hit_fSampCalib = m_fSampl->FSAMPL(hit_cellID);
749  thereIsOneHitToDump = true;
750 
751  ATH_MSG_DEBUG ("(HITS) Match in "<< k <<"/"<< channelHwidInClusterMap.size() <<"! Sampling "<< hit_sampling << ", Cell (clus): "<< channelIndexMap[k] <<" ("<< clusIndex <<"), ID (mapHwid / hwid / hash ): "<< hit_cellID << " ("<< channelHwidInClusterMap[k] << " / "<< hit_hwid << " / "<< hit_index1 <<"), hitEne: "<< hit_ene <<", hitTime: "<< hit_time << ", m_fSampl: "<< hit_fSampCalib <<". eta="<< clusCellEtaMap[k]<< ", phi="<<clusCellPhiMap[k]<<".");
752 
753  }// end-if caloHashMap matches
754  }// end-if cluster map has this hit_index
755  }// end-if current bc test
756  }// end-if current bc test
757 
758  if (thereIsOneHitToDump){
759  for (auto hitE : hitEnergiesFromMap){
760  cell_total_ene += hitE;
761  cell_total_eneCalib += hitE / hit_fSampCalib; //calib energy from hits
762  }
763  cell_hit_tof = *std::min_element(hitTimesFromMap.begin(), hitTimesFromMap.end());
764 
765  m_hits_energy->push_back(cell_total_ene);
766  m_hits_time->push_back(cell_hit_tof);
767  m_hits_sampling->push_back(hit_sampling);
768  m_hits_clusterIndex_chLvl->push_back(clusIndex);
769  m_hits_clusterChannelIndex->push_back(channelIndexMap[k]);
770  m_hits_hash->push_back(hit_index1);
771  m_hits_sampFrac->push_back(hit_fSampCalib);
772  m_hits_energyConv->push_back(cell_total_eneCalib);
773  m_hits_cellEta->push_back(clusCellEtaMap[k]);
774  m_hits_cellPhi->push_back(clusCellPhiMap[k]);
775  }
776  else{
777  ATH_MSG_DEBUG("(HITS) Hit from cell "<< k <<"/"<< channelHwidInClusterMap.size() <<" not found! Sampling "<< hit_sampling << ", Cell (clus): "<< channelIndexMap[k] <<" ("<< clusIndex <<"), mapHwid: "<< channelHwidInClusterMap[k]<<". eta="<< clusCellEtaMap[k]<< ", phi="<<clusCellPhiMap[k]<<".");
778  }
779  hitEnergiesFromMap.clear();
780  hitTimesFromMap.clear();
781 
782  }// end for loop over caloHashMaps
783  }// end-if isMC and dumpHits
784 
785 
786  // -- LAr_Digits --
787  ATH_MSG_DEBUG (" (Cluster) Dumping LAr Digits...");
788 
789  for (const LArDigit* dig : *LarDigCnt) {
790  HWIdentifier channelID = dig->channelID();
791  IdentifierHash idHash = m_onlineLArID->channel_Hash(channelID);
792  size_t index = (size_t) (idHash);
793 
794  if (larClusteredDigits.test(index)) {
795  for (unsigned int k=0 ; k < channelHwidInClusterMap.size() ; k++){
796  if (channelHwidInClusterMap[k]==channelID){
797 
798  // digits
799  std::vector<short> larDigitShort = dig->samples();
800  std::vector<float> larDigit( larDigitShort.begin(), larDigitShort.end() ); // get vector conversion from 'short int' to 'float'
801  m_c_channelDigits->push_back(larDigit);
802 
803  const HWIdentifier digId = dig->hardwareID();
804  const int digGain = dig->gain();
805  auto ofc_a = m_ofcs->OFC_a(digId, digGain);
806  auto ofc_b = m_ofcs->OFC_b(digId, digGain);
807 
808  std::vector<double> ofca, ofcb, shape, shapeDer;
809  const IdentifierHash& dig_cell_hashId = m_onlineLArID->channel_Hash(channelID);
810  for (size_t k=0; k < ofc_a.size(); k++) ofca.push_back((double) ofc_a[k]);
811  for (size_t k=0; k < ofc_b.size(); k++) ofcb.push_back((double) ofc_b[k]);
812 
813  const auto& adc2mev = m_adc2MeVs->ADC2MEV(digId, digGain);
814  const float pedLAr = m_peds->pedestal(digId, digGain);
815  const auto& minBiasLAr = m_minBiasAvgs->minBiasAverage(digId);
816 
817  // Remark: Looks like the EC does not have this rescale in DB (?)
818  if (!m_isMC){
819  auto sig_shape = m_shapes->Shape(digId, digGain);
820  auto sig_shapeDer = m_shapes->ShapeDer(digId, digGain);
821  for (size_t k=0; k < sig_shape.size(); k++) shape.push_back((double) sig_shape[k]);
822  for (size_t k=0; k < sig_shapeDer.size(); k++) shapeDer.push_back((double) sig_shapeDer[k]);
823 
824  float offl_EneRescaler = 1.0; // if the channel is outside of hash_id limits from DB, set scale to 1.0 (energy remains unchanged).
825  const auto& offl_hv = m_oflHVCorr->HVScaleCorr(digId);
826  if (dig_cell_hashId < m_EneRescaler->getNChans()){ // if the channel is INSIDE the hash_id limit, get the data from DB.
827  offl_EneRescaler = m_EneRescaler->getData(dig_cell_hashId,0,0); // IMPORTANT REMARK: There was an update in Athena v23, compared to v22. There is a new <T> for getData() instance, which no longer needs the 2nd and 3rd accessor (adc, gain).
828  }
829  m_c_channelDSPThreshold->push_back(m_run2DSPThresh->tQThr(digId));
830  m_c_channelOfflEneRescaler->push_back(offl_EneRescaler);
831  m_c_channelOfflHVScale->push_back(offl_hv);
832  m_c_channelShape->push_back(shape);
833  m_c_channelShapeDer->push_back(shapeDer);
834  }
835  // Cell / readout data
836  m_c_channelEnergy->push_back(channelEnergyInClusterMap[k]);
837  m_c_channelTime->push_back(channelTimeInClusterMap[k]);
838  m_c_channelLayer->push_back(cellLayerMap[k]);
839  m_c_channelEffectiveSigma->push_back(channelEffectiveSigmaClusterMap[k]);
840  m_c_channelNoise->push_back(channelNoiseClusterMap[k]);
841  if (!m_noBadCells) m_c_channelBad->push_back(badChannelMap[k]);
842  // Calibration constants
843  m_c_channelOFCa->push_back(ofca);
844  m_c_channelOFCb->push_back(ofcb);
845  m_c_channelOFCTimeOffset->push_back(m_ofcs->timeOffset(digId,digGain));
846  m_c_channelADC2MEV0->push_back(adc2mev[0]);
847  m_c_channelADC2MEV1->push_back(adc2mev[1]);
848  m_c_channelPed->push_back(pedLAr);
849  m_c_channelMinBiasAvg->push_back(minBiasLAr);
850 
851  // Channel info
852  int barrelEc = m_onlineLArID->barrel_ec(channelID);
853  int posNeg = m_onlineLArID->pos_neg(channelID);
854  int feedThr = m_onlineLArID->feedthrough(channelID); // feedthrough - cabling interface from cold and hot side. in barrel, there are 2 feedThr for each crate.
855  int slot = m_onlineLArID->slot(channelID);
856  int chn = m_onlineLArID->channel(channelID);
857  std::vector<int> chInfo {barrelEc, posNeg, feedThr, slot, chn } ; //unite info
858  m_c_channelChInfo->push_back(chInfo); //add to the list of cell info (both calo)
859 
860  // important indexes
861  m_c_clusterChannelIndex->push_back(channelIndexMap[k]);//each LAr cell is an individual read out.
862  m_c_clusterIndex_chLvl->push_back(clusIndex); // what roi this cell belongs at the actual event: 0, 1, 2 ...
863  m_c_channelHashMap->push_back(index); // online id hash for channel
864  m_c_channelChannelIdMap->push_back(channelID.get_identifier32().get_compact());
865 
866 
867  if (m_printCellsClus){
868 
869  ATH_MSG_INFO ("(Cluster) In DumpLAr Digits: ReadOutIndex "<< channelIndexMap[k] << ". HwId " << channelID);
870  ATH_MSG_INFO ("(Cluster) In DumpLAr Digits: ReadOutIndex "<< channelIndexMap[k] << " HwId.get_compact() " << channelID.get_compact());
871  ATH_MSG_INFO ("(Cluster) In DumpLAr Digits: ReadOutIndex "<< channelIndexMap[k] << " HwId.get_identifier32().get_compact() " << channelID.get_identifier32().get_compact());
872 
873  ATH_MSG_INFO("(Cluster) LAr OFC timeOffset: "<< m_ofcs->timeOffset(digId, digGain) <<", dig->hardwareID: " << digId << ", dig->channelID: "<< channelID);
874  ATH_MSG_INFO("\tOFCa ("<< ofca.size()<<"): ["<< ofca[0] <<", " << ofca[1] <<", " << ofca[2]<<", " << ofca[3] <<"]");
875  ATH_MSG_INFO("\tOFCb ("<< ofcb.size()<<"): ["<< ofcb[0] <<", " << ofcb[1] <<", " << ofcb[2]<<", " << ofcb[3] <<"]");
876 
877  ATH_MSG_DEBUG ("(Cluster) In DumpLAr Digits: ReadOutIndex "<< channelIndexMap[k] << ". HwId (B_EC/P_N/FeedTr/slot/ch) " << channelID << " (" << barrelEc << "/" << posNeg << "/"<< feedThr << "/" << slot << "/" << chn << ". Dig (float): " << larDigit);
878 
879  }
880  } //end-if caloHashMap matches
881  } //end for loop over caloHashMaps
882  } // end-if clustBits Test
883  } //end loop over LAr digits container
884  } //end-if larClustBits is not empty
885 
886  // ##############################
887  // RAW CHANNEL INFO DUMP (CLUSTER)
888  // ##############################
889 
890  // ========= LAr ==========
891  if (larClusteredDigits.any()) {
892  ATH_MSG_INFO ("(Cluster) Dumping LAr Raw Channel...");
893 
894  for (const LArRawChannel& LArChannel : *LArRawCnt){
895 
896  HWIdentifier channelID = LArChannel.channelID();
897  IdentifierHash chHwidHash = m_onlineLArID->channel_Hash(channelID);
898 
899  size_t index = static_cast<size_t>(chHwidHash);
900 
901  if (larClusteredDigits.test(index)){ //if this channel index is inside
902  for (unsigned int k=0 ; k < channelHwidInClusterMap.size() ; k++){ //loop over the vector of hashIndex, and verify if the cell index match.
903  if (channelHwidInClusterMap[k] == channelID){
904 
905  //RawCh info
906  int rawEnergy = LArChannel.energy(); // energy in MeV (rounded to integer)
907  int rawTime = LArChannel.time(); // time in ps (rounded to integer)
908  uint16_t rawQuality = LArChannel.quality(); // quality from pulse reconstruction
909  int provenance = static_cast<int>(LArChannel.provenance()); // its uint16_t
910  float rawEnergyConv = static_cast<float>(rawEnergy);
911  float rawTimeConv = static_cast<float>(rawTime);
912  float rawQualityConv = static_cast<float>(rawQuality);
913 
914  // Channel info
915  int barrelEc = m_onlineLArID->barrel_ec(channelID);
916  int posNeg = m_onlineLArID->pos_neg(channelID);
917  int feedThr = m_onlineLArID->feedthrough(channelID); // feedthrough - cabling interface from cold and hot side. in barrel, there are 2 feedThr for each crate.
918  int slot = m_onlineLArID->slot(channelID);
919  int chn = m_onlineLArID->channel(channelID);
920  std::vector<int> chInfo {barrelEc, posNeg, feedThr, slot, chn } ; //unite info
921  m_c_rawChannelChInfo->push_back(chInfo); //add to the list of cell info (both calo)
922 
923  if ( (rawEnergy != rawEnergyConv) || (rawTime != rawTimeConv) || (rawQuality != rawQualityConv) ){
924  ATH_MSG_ERROR (" ###### (Cluster) LAR RAW CHANNEL: Value conversion from int to float of amplitude, time or quality (uint16_t) had changed its actual value !!!");
925  }
926  m_c_rawChannelAmplitude->push_back(rawEnergyConv);
927  m_c_rawChannelTime->push_back(rawTimeConv);
928  m_c_rawChannelLayer->push_back(cellLayerMap[k]);
929  m_c_rawChannelQuality->push_back(rawQualityConv);
930  m_c_rawChannelProv->push_back(provenance);
931  m_c_rawChannelPed->push_back(-8888); // masked LAr
932  if (!m_isMC){
933  m_c_rawChannelDSPThreshold->push_back(m_run2DSPThresh->tQThr(channelID));
934  }
935 
936  // important indexes
937  m_c_clusterRawChannelIndex->push_back(channelIndexMap[k]);
938  m_c_clusterIndex_rawChLvl->push_back(clusIndex); // what roi this ch belongs
939  m_c_rawChannelIdMap->push_back(channelID.get_identifier32().get_compact());
940 
941  if (m_printCellsClus){ //optional to help debugging
942 
943  HWIdentifier hardwareID = LArChannel.hardwareID();
944 
945  if (!m_isMC){
946  ATH_MSG_INFO ("(Cluster) In DumpLAr Raw "<< channelIndexMap[k] <<": hardwareID (B_EC/P_N/feedThr/slot/chn): " << hardwareID << "(" << barrelEc << "/" << posNeg << "/" << feedThr << "/" << slot << "/" << chn << ")" << ". Energy: " << rawEnergyConv << ". Time: " << rawTimeConv << ". Provenance: " << provenance << ". Quality: " << rawQualityConv <<" ecut (DSPThr) = " << m_run2DSPThresh->tQThr(channelID));
947  }
948  else{
949  ATH_MSG_INFO ("(Cluster) In DumpLAr Raw "<< channelIndexMap[k] <<": hardwareID (B_EC/P_N/feedThr/slot/chn): " << hardwareID << "(" << barrelEc << "/" << posNeg << "/" << feedThr << "/" << slot << "/" << chn << ")" << ". Energy: " << rawEnergyConv << ". Time: " << rawTimeConv << ". Provenance: " << provenance << ". Quality: " << rawQualityConv);
950  }
951 
952  } // end-if optional cell print
953  } // end-if hwid match rawChID
954  } // end loop over HWIDClusterMap
955  } // end-if clust.test
956  } //end loop LArRawChannelContainer
957  } // end-if clustBits have Cells
958 
959  larClusteredDigits.reset();
960 
961  caloHashMap.clear();
962 
963  channelHwidInClusterMap.clear();
964  cellIndexMap.clear();
965  cellLayerMap.clear();
966  clusCellEtaMap.clear();
967  clusCellPhiMap.clear();
968  channelIndexMap.clear();
969  channelEnergyInClusterMap.clear();
970  channelTimeInClusterMap.clear();
971  channelEtaInClusterMap.clear();
972  channelPhiInClusterMap.clear();
973  channelEffectiveSigmaClusterMap.clear();
974  channelNoiseClusterMap.clear();
975  channelCaloRegionMap.clear();
976  if (!m_noBadCells) badChannelMap.clear();
977 
978  ATH_MSG_INFO (" (Cluster) RawChannel: "<< m_c_rawChannelAmplitude->size() <<" channels dumped, from " << m_c_cellEta->size() <<" cluster cells. ");
979  ATH_MSG_INFO (" (Cluster) Digits: "<< m_c_channelDigits->size() <<" channels dumped, out of " << m_c_rawChannelAmplitude->size() <<" raw channel cluster channels. ");
980  if (m_c_channelDigits->size() == m_c_rawChannelAmplitude->size()){
981  ATH_MSG_INFO (" (Cluster) ALL Digits from the cluster were dumped successfully!");}
982  else{
983  ATH_MSG_INFO (" (Cluster) The digits from "<< (m_c_rawChannelAmplitude->size() - m_c_channelDigits->size()) <<" channels are missing!");}
984 
985 
986  return StatusCode::SUCCESS;
987 }
988 
989 
991  ATH_MSG_DEBUG ("Finalizing " << name() << "...");
992  m_secondTree->Fill();
993 
994  return StatusCode::SUCCESS;
995 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
EventReaderBaseAlg::m_isMC
Gaudi::Property< bool > m_isMC
Definition: EventReaderBaseAlg.h:64
EventReaderBaseAlg::m_zee_E
std::vector< double > * m_zee_E
Definition: EventReaderBaseAlg.h:304
EventReaderBaseAlg::m_el_Phi
std::vector< float > * m_el_Phi
Definition: EventReaderBaseAlg.h:274
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
EventReaderBaseAlg::m_el_deltae
std::vector< float > * m_el_deltae
Definition: EventReaderBaseAlg.h:288
ILArPedestal::pedestal
virtual float pedestal(const HWIdentifier &id, int gain) const =0
EventReaderAlg::dumpOfflineSS
virtual StatusCode dumpOfflineSS(const xAOD::Electron *electron)
Definition: EventReaderAlg.cxx:289
EventReaderBaseAlg::m_el_eoverp
std::vector< float > * m_el_eoverp
Definition: EventReaderBaseAlg.h:276
LuminosityCondData::lbLuminosityPerBCIDVector
const std::vector< float > & lbLuminosityPerBCIDVector() const
Definition: LuminosityCondData.cxx:46
EventReaderBaseAlg::m_noBadCells
Gaudi::Property< bool > m_noBadCells
Definition: EventReaderBaseAlg.h:66
EventReaderBaseAlg::m_zee_pz
std::vector< double > * m_zee_pz
Definition: EventReaderBaseAlg.h:308
EventReaderBaseAlg::m_c_channelShapeDer
std::vector< std::vector< double > > * m_c_channelShapeDer
Definition: EventReaderBaseAlg.h:133
LArADC2MeV::ADC2MEV
const LArVectorProxy ADC2MEV(const HWIdentifier &id, int gain) const
Definition: LArADC2MeV.h:32
CaloCondBlobDat::getData
T getData(const unsigned int channel, const unsigned int adc, const unsigned int idx) const
Returns a single T belonging to a channel/gain.
Definition: CaloCondBlobDat.h:134
EventReaderBaseAlg::bookBranches
void bookBranches(TTree *tree)
Definition: EventReaderBaseAlg.cxx:253
EventReaderAlg::m_pedestalKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
Definition: EventReaderAlg.h:85
EventReaderBaseAlg::clear
void clear()
Definition: EventReaderBaseAlg.cxx:492
EventReaderAlg::m_truthParticleCntSgKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleCntSgKey
Definition: EventReaderAlg.h:98
EventReaderBaseAlg::m_c_clusterPhi
std::vector< double > * m_c_clusterPhi
Definition: EventReaderBaseAlg.h:99
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
LArOnlineID_Base::channel_Hash
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
Definition: LArOnlineID_Base.cxx:1632
CaloNoise::getEffectiveSigma
float getEffectiveSigma(const Identifier id, const int gain, const float energy) const
Definition: CaloNoise.h:55
EventReaderAlg::m_larDigitCntSgKey
SG::ReadHandleKey< LArDigitContainer > m_larDigitCntSgKey
Definition: EventReaderAlg.h:102
xAOD::EgammaHelpers::getAssociatedTopoClusters
std::vector< const xAOD::CaloCluster * > getAssociatedTopoClusters(const xAOD::CaloCluster *cluster)
Return a vector of all the topo clusters associated with the egamma cluster.
Definition: EgammaxAODHelpers.cxx:65
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
EventReaderBaseAlg::m_c_cellRegion
std::vector< int > * m_c_cellRegion
Definition: EventReaderBaseAlg.h:107
TrackParticlexAODHelpers.h
CaloCompactCellContainer.h
EventReaderAlg::execute
virtual StatusCode execute() override
Definition: EventReaderAlg.cxx:110
EventReaderBaseAlg::trackSelectionElectrons
bool trackSelectionElectrons(const xAOD::Electron *electron, SG::ReadHandle< xAOD::VertexContainer > &primVertexCnt, SG::ReadHandle< xAOD::EventInfo > &ei)
Definition: EventReaderBaseAlg.cxx:52
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
EventReaderBaseAlg::m_mc_part_m
std::vector< float > * m_mc_part_m
Definition: EventReaderBaseAlg.h:236
EventReaderBaseAlg::m_c_clusterIndex_chLvl
std::vector< int > * m_c_clusterIndex_chLvl
Definition: EventReaderBaseAlg.h:117
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
EventReaderBaseAlg::m_mc_part_energy
std::vector< float > * m_mc_part_energy
Definition: EventReaderBaseAlg.h:234
EventReaderAlg::m_larem_id
const LArEM_ID * m_larem_id
Definition: EventReaderAlg.h:123
xAOD::EgammaParameters::Reta
@ Reta
e237/e277
Definition: EgammaEnums.h:154
EventReaderBaseAlg::m_c_rawChannelAmplitude
std::vector< float > * m_c_rawChannelAmplitude
Definition: EventReaderBaseAlg.h:145
EventReaderBaseAlg::m_hits_hash
std::vector< unsigned int > * m_hits_hash
Definition: EventReaderBaseAlg.h:161
EventReaderBaseAlg::m_c_channelPed
std::vector< float > * m_c_channelPed
Definition: EventReaderBaseAlg.h:137
EventReaderBaseAlg::m_mc_vert_z
std::vector< float > * m_mc_vert_z
Definition: EventReaderBaseAlg.h:246
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
EventReaderAlg::m_ntsvc
ServiceHandle< ITHistSvc > m_ntsvc
Definition: EventReaderAlg.h:78
EventReaderBaseAlg::m_c_rawChannelProv
std::vector< float > * m_c_rawChannelProv
Definition: EventReaderBaseAlg.h:149
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
index
Definition: index.py:1
EventReaderAlg::m_eventInfoSgKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoSgKey
Definition: EventReaderAlg.h:94
EventReaderAlg::m_printCellsClus
Gaudi::Property< bool > m_printCellsClus
Definition: EventReaderAlg.h:67
EventReaderBaseAlg::m_c_channelChInfo
std::vector< std::vector< int > > * m_c_channelChInfo
Definition: EventReaderBaseAlg.h:119
EventReaderAlg::initialize
virtual StatusCode initialize() override
Definition: EventReaderAlg.cxx:34
EventReaderBaseAlg::m_c_channelBad
std::vector< bool > * m_c_channelBad
Definition: EventReaderBaseAlg.h:124
EventReaderBaseAlg::m_el_fracs1
std::vector< float > * m_el_fracs1
Definition: EventReaderBaseAlg.h:283
EventReaderBaseAlg::m_c_channelMinBiasAvg
std::vector< float > * m_c_channelMinBiasAvg
Definition: EventReaderBaseAlg.h:138
xAOD::TrackParticle_v1::vz
float vz() const
The z origin for the parameters.
EventReaderAlg::m_adc2MeVKey
SG::ReadCondHandleKey< LArADC2MeV > m_adc2MeVKey
Definition: EventReaderAlg.h:86
EventReaderBaseAlg::m_doLArEMBHitsDump
Gaudi::Property< bool > m_doLArEMBHitsDump
Definition: EventReaderBaseAlg.h:63
CaloIdManager::getEM_ID
const LArEM_ID * getEM_ID(void) const
Definition: CaloIdManager.cxx:80
ILArOFC::OFC_b
virtual OFCRef_t OFC_b(const HWIdentifier &id, int gain, int tbin=0) const =0
xAOD::TrackingHelpers::d0significance
double d0significance(const xAOD::TrackParticle *tp, double d0_uncert_beam_spot_2)
Definition: TrackParticlexAODHelpers.cxx:42
EventReaderBaseAlg::m_c_channelOfflHVScale
std::vector< float > * m_c_channelOfflHVScale
Definition: EventReaderBaseAlg.h:139
ILArShape::ShapeDer
virtual ShapeRef_t ShapeDer(const HWIdentifier &id, int gain, int tbin=0, int mode=0) const =0
EventReaderBaseAlg::m_c_cellToClusterDPhi
std::vector< double > * m_c_cellToClusterDPhi
Definition: EventReaderBaseAlg.h:114
EventReaderBaseAlg::m_c_channelOFCa
std::vector< std::vector< double > > * m_c_channelOFCa
Definition: EventReaderBaseAlg.h:130
EventReaderAlg::m_adc2MeVs
const LArADC2MeV * m_adc2MeVs
Definition: EventReaderAlg.h:111
EventReaderAlg::m_peds
const ILArPedestal * m_peds
Definition: EventReaderAlg.h:110
test_pyathena.pt
pt
Definition: test_pyathena.py:11
LArOnlineID_Base::slot
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
Definition: LArOnlineID_Base.cxx:1957
EventReaderBaseAlg::m_hits_cellPhi
std::vector< double > * m_hits_cellPhi
Definition: EventReaderBaseAlg.h:167
xAOD::TrackParticle_v1::z0
float z0() const
Returns the parameter.
EventReaderAlg::dumpClusterCells
virtual StatusCode dumpClusterCells(const xAOD::CaloCluster *cl, int clusIndex, const EventContext &ctx)
Definition: EventReaderAlg.cxx:546
Identifier::get_identifier32
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
CaloClusterListBadChannel.cls
cls
Definition: CaloClusterListBadChannel.py:8
EventReaderBaseAlg::m_c_clusterIndexCounter
int m_c_clusterIndexCounter
Definition: EventReaderBaseAlg.h:93
Identifier::get_compact
value_type get_compact() const
Get the compact id.
xAOD::EventInfo_v1::beamPosSigmaX
float beamPosSigmaX() const
The width of the beam spot in the X direction.
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
EventReaderAlg::m_minBiasAvgs
const ILArMinBiasAverage * m_minBiasAvgs
Definition: EventReaderAlg.h:114
EventReaderBaseAlg::m_ncell
size_t m_ncell
Definition: EventReaderBaseAlg.h:156
EventReaderBaseAlg::m_mc_vert_status
std::vector< int > * m_mc_vert_status
Definition: EventReaderBaseAlg.h:252
xAOD::EgammaParameters::Rphi
@ Rphi
e233/e237
Definition: EgammaEnums.h:156
CaloCell_Base_ID::calo_sample
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
Definition: CaloCell_Base_ID.cxx:141
EventReaderBaseAlg::m_c_electronIndex_clusterLvl
std::vector< int > * m_c_electronIndex_clusterLvl
Definition: EventReaderBaseAlg.h:95
LArDSPThresholdsFlat
Definition: LArDSPThresholdsFlat.h:17
EventReaderBaseAlg::m_e_lumiBlock
int m_e_lumiBlock
Definition: EventReaderBaseAlg.h:88
EventReaderAlg::m_maxZeeMassTP
Gaudi::Property< float > m_maxZeeMassTP
Definition: EventReaderAlg.h:72
EventReaderBaseAlg::m_el_weta2
std::vector< float > * m_el_weta2
Definition: EventReaderBaseAlg.h:282
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
EventReaderBaseAlg::m_c_cellPhi
std::vector< double > * m_c_cellPhi
Definition: EventReaderBaseAlg.h:111
EventReaderBaseAlg::m_doTruthPartDump
Gaudi::Property< bool > m_doTruthPartDump
Definition: EventReaderBaseAlg.h:62
HWIdentifier
Definition: HWIdentifier.h:13
CaloNoise::getNoise
float getNoise(const IdentifierHash h, const int gain) const
Accessor by IdentifierHash and gain.
Definition: CaloNoise.h:34
LArOnlineID_Base::barrel_ec
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
Definition: LArOnlineID_Base.cxx:1938
xAODTruthHelpers.h
EventReaderBaseAlg::m_c_channelTime
std::vector< double > * m_c_channelTime
Definition: EventReaderBaseAlg.h:122
EventReaderBaseAlg::m_hits_clusterChannelIndex
std::vector< int > * m_hits_clusterChannelIndex
Definition: EventReaderBaseAlg.h:160
EventReaderBaseAlg::m_c_clusterPt
std::vector< double > * m_c_clusterPt
Definition: EventReaderBaseAlg.h:100
EventReaderAlg::m_larCabling
const LArOnOffIdMapping * m_larCabling
Definition: EventReaderAlg.h:121
EventReaderBaseAlg::m_c_cellEta
std::vector< double > * m_c_cellEta
Definition: EventReaderBaseAlg.h:110
xAOD::EventInfo_v1::LAr
@ LAr
The LAr calorimeter.
Definition: EventInfo_v1.h:335
EventReaderBaseAlg::m_el_m
std::vector< float > * m_el_m
Definition: EventReaderBaseAlg.h:275
EventReaderBaseAlg::m_mc_vert_phi
std::vector< float > * m_mc_vert_phi
Definition: EventReaderBaseAlg.h:250
Identifier32::get_compact
value_type get_compact() const
Get the compact id.
Definition: Identifier32.h:44
xAOD::EgammaParameters::wtots1
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
Definition: EgammaEnums.h:140
EventReaderBaseAlg::m_hits_clusterIndex_chLvl
std::vector< int > * m_hits_clusterIndex_chLvl
Definition: EventReaderBaseAlg.h:159
EventReaderBaseAlg::m_el_f3
std::vector< float > * m_el_f3
Definition: EventReaderBaseAlg.h:279
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
pi
#define pi
Definition: TileMuonFitter.cxx:65
EventReaderAlg::m_primVertSgKey
SG::ReadHandleKey< xAOD::VertexContainer > m_primVertSgKey
Definition: EventReaderAlg.h:95
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
EventReaderBaseAlg::m_e_outOfTimePileUp
float m_e_outOfTimePileUp
Definition: EventReaderBaseAlg.h:90
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
xAOD::EventInfo_v1::Error
@ Error
The sub-detector issued an error.
Definition: EventInfo_v1.h:349
EventReaderAlg::m_doClusterDump
Gaudi::Property< bool > m_doClusterDump
Definition: EventReaderAlg.h:68
EventReaderBaseAlg::m_c_channelDSPThreshold
std::vector< float > * m_c_channelDSPThreshold
Definition: EventReaderBaseAlg.h:129
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
EventReaderBaseAlg::m_c_cellEnergy
std::vector< double > * m_c_cellEnergy
Definition: EventReaderBaseAlg.h:108
EventReaderBaseAlg::m_hits_sampFrac
std::vector< float > * m_hits_sampFrac
Definition: EventReaderBaseAlg.h:164
EventReaderBaseAlg::m_hits_time
std::vector< double > * m_hits_time
Definition: EventReaderBaseAlg.h:163
EventReaderBaseAlg::m_mc_part_eta
std::vector< float > * m_mc_part_eta
Definition: EventReaderBaseAlg.h:237
xAOD::EgammaParameters::f3
@ f3
fraction of energy reconstructed in 3rd sampling
Definition: EgammaEnums.h:54
EventReaderAlg::m_larfcal_id
const LArFCAL_ID * m_larfcal_id
Definition: EventReaderAlg.h:125
EventReaderAlg::dumpZeeCut
virtual StatusCode dumpZeeCut(SG::ReadHandle< xAOD::EventInfo > &ei, SG::ReadHandle< xAOD::VertexContainer > &primVertexCnt, const EventContext &ctx)
Definition: EventReaderAlg.cxx:404
EventReaderBaseAlg::m_c_cellIndexCounter
int m_c_cellIndexCounter
Definition: EventReaderBaseAlg.h:102
EventReaderBaseAlg::eOverPElectron
bool eOverPElectron(const xAOD::Electron *electron)
Definition: EventReaderBaseAlg.cxx:31
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
ILArOFC::timeOffset
virtual float timeOffset(const HWIdentifier &CellID, int gain) const =0
EventReaderAlg::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: EventReaderAlg.h:84
LArOnlineID_Base::channel
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Definition: LArOnlineID_Base.cxx:1963
EgammaxAODHelpers.h
EventReaderAlg::m_skipEmptyEvents
Gaudi::Property< bool > m_skipEmptyEvents
Definition: EventReaderAlg.h:70
EventReaderBaseAlg::m_c_channelADC2MEV0
std::vector< float > * m_c_channelADC2MEV0
Definition: EventReaderBaseAlg.h:135
EventReaderBaseAlg::m_c_channelLayer
std::vector< int > * m_c_channelLayer
Definition: EventReaderBaseAlg.h:123
EventReaderBaseAlg::m_el_eratio
std::vector< float > * m_el_eratio
Definition: EventReaderBaseAlg.h:280
EventReaderBaseAlg::m_el_reta
std::vector< float > * m_el_reta
Definition: EventReaderBaseAlg.h:286
CaloIdManager::getHEC_ID
const LArHEC_ID * getHEC_ID(void) const
Definition: CaloIdManager.cxx:95
EventReaderBaseAlg::m_c_rawChannelLayer
std::vector< int > * m_c_rawChannelLayer
Definition: EventReaderBaseAlg.h:147
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
EventReaderBaseAlg::m_el_f1
std::vector< float > * m_el_f1
Definition: EventReaderBaseAlg.h:278
EventReaderBaseAlg::m_c_cellDPhi
std::vector< double > * m_c_cellDPhi
Definition: EventReaderBaseAlg.h:113
EventReaderAlg::dumpLumiblockInfo
virtual StatusCode dumpLumiblockInfo(SG::ReadHandle< xAOD::EventInfo > &ei)
Definition: EventReaderAlg.cxx:379
EventReaderBaseAlg::m_el_weta1
std::vector< float > * m_el_weta1
Definition: EventReaderBaseAlg.h:281
EventReaderAlg::m_oflHVCorr
const LArHVCorr * m_oflHVCorr
Definition: EventReaderAlg.h:115
constants.EMB2
int EMB2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:54
xAOD::EgammaParameters::f1
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
Definition: EgammaEnums.h:52
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
EventReaderBaseAlg::m_hits_sampling
std::vector< int > * m_hits_sampling
Definition: EventReaderBaseAlg.h:158
EventReaderBaseAlg::m_c_clusterEnergy
std::vector< double > * m_c_clusterEnergy
Definition: EventReaderBaseAlg.h:96
EventReaderBaseAlg::m_mc_vert_time
std::vector< float > * m_mc_vert_time
Definition: EventReaderBaseAlg.h:247
EventReaderAlg::dumpTruthParticle
virtual StatusCode dumpTruthParticle(SG::ReadHandle< xAOD::ElectronContainer > &electronSelectionCnt, SG::ReadHandle< xAOD::TruthParticleContainer > &truthParticleCnt)
Definition: EventReaderAlg.cxx:500
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
EventReaderBaseAlg::m_vtx_delta_z0_sin
std::vector< float > * m_vtx_delta_z0_sin
Definition: EventReaderBaseAlg.h:259
EventReaderBaseAlg::m_c_channelChannelIdMap
std::vector< unsigned int > * m_c_channelChannelIdMap
Definition: EventReaderBaseAlg.h:126
LArRawChannel
Liquid Argon ROD output object base class.
Definition: LArRawChannel.h:40
ILArMinBiasAverage::minBiasAverage
virtual const float & minBiasAverage(const HWIdentifier &id) const =0
access to average of E in minimum bias events index by Identifier
EventReaderBaseAlg::m_vtx_d0sig
std::vector< double > * m_vtx_d0sig
Definition: EventReaderBaseAlg.h:260
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
EventReaderAlg::m_offlineHVScaleCorrKey
SG::ReadCondHandleKey< LArHVCorr > m_offlineHVScaleCorrKey
Definition: EventReaderAlg.h:90
EventReaderBaseAlg::m_c_cellToClusterDEta
std::vector< double > * m_c_cellToClusterDEta
Definition: EventReaderBaseAlg.h:115
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
EventReaderAlg::dumpElectrons
virtual StatusCode dumpElectrons(const xAOD::Electron *electron)
Definition: EventReaderAlg.cxx:307
EventReaderBaseAlg::m_doTagAndProbe
Gaudi::Property< bool > m_doTagAndProbe
Definition: EventReaderBaseAlg.h:59
ILArfSampl::FSAMPL
virtual const float & FSAMPL(const HWIdentifier &id) const =0
EventReaderAlg::m_myElecSelectionSgKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_myElecSelectionSgKey
Definition: EventReaderAlg.h:97
EventReaderBaseAlg::m_c_channelHashMap
std::vector< unsigned int > * m_c_channelHashMap
Definition: EventReaderBaseAlg.h:125
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
EventReaderBaseAlg::m_c_channelNoise
std::vector< float > * m_c_channelNoise
Definition: EventReaderBaseAlg.h:128
CaloIdManager::getFCAL_ID
const LArFCAL_ID * getFCAL_ID(void) const
Definition: CaloIdManager.cxx:85
EventReaderBaseAlg::m_c_cellTime
std::vector< double > * m_c_cellTime
Definition: EventReaderBaseAlg.h:109
EventReaderAlg::m_larhec_id
const LArHEC_ID * m_larhec_id
Definition: EventReaderAlg.h:124
EventReaderBaseAlg::m_c_rawChannelTime
std::vector< float > * m_c_rawChannelTime
Definition: EventReaderBaseAlg.h:146
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:571
EventReaderBaseAlg::m_c_rawChannelIdMap
std::vector< unsigned int > * m_c_rawChannelIdMap
Definition: EventReaderBaseAlg.h:144
EventReaderBaseAlg::m_hits_energy
std::vector< double > * m_hits_energy
Definition: EventReaderBaseAlg.h:162
EventReaderBaseAlg::m_el_rphi
std::vector< float > * m_el_rphi
Definition: EventReaderBaseAlg.h:287
EventReaderBaseAlg::m_mc_vert_perp
std::vector< float > * m_mc_vert_perp
Definition: EventReaderBaseAlg.h:248
LArOnlineID_Base::pos_neg
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
Definition: LArOnlineID_Base.cxx:1950
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
EventReaderBaseAlg::m_c_channelEnergy
std::vector< double > * m_c_channelEnergy
Definition: EventReaderBaseAlg.h:121
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
EventReaderAlg::m_noiseCDO
const CaloNoise * m_noiseCDO
Definition: EventReaderAlg.h:108
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::EventInfo_v1::lumiBlock
uint32_t lumiBlock() const
The current event's luminosity block number.
LArOnOffIdMapping::createSignalChannelID
HWIdentifier createSignalChannelID(const Identifier &id) const
create a HWIdentifier from an Identifier (not inline)
Definition: LArOnOffIdMapping.h:126
EventReaderBaseAlg::m_mc_vert_y
std::vector< float > * m_mc_vert_y
Definition: EventReaderBaseAlg.h:245
EventReaderBaseAlg::m_elecEtaCut
Gaudi::Property< float > m_elecEtaCut
Definition: EventReaderBaseAlg.h:51
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
xAOD::EgammaParameters::Rhad1
@ Rhad1
ethad1/et
Definition: EgammaEnums.h:162
EventReaderBaseAlg::m_mc_vert_x
std::vector< float > * m_mc_vert_x
Definition: EventReaderBaseAlg.h:244
EventReaderAlg::m_allCaloCellCntSgKey
SG::ReadHandleKey< CaloCellContainer > m_allCaloCellCntSgKey
Definition: EventReaderAlg.h:104
xAOD::EventInfo_v1::beamPosSigmaY
float beamPosSigmaY() const
The width of the beam spot in the Y direction.
EventReaderAlg::m_onlineLArID
const LArOnlineID * m_onlineLArID
Definition: EventReaderAlg.h:120
EventReaderAlg.h
xAOD::EventInfo_v1::averageInteractionsPerCrossing
float averageInteractionsPerCrossing() const
Average interactions per crossing for all BCIDs - for out-of-time pile-up.
Definition: EventInfo_v1.cxx:397
EventReaderAlg::dumpEventInfo
virtual StatusCode dumpEventInfo(SG::ReadHandle< xAOD::EventInfo > &ei)
Definition: EventReaderAlg.cxx:391
twopi
constexpr double twopi
Definition: VertexPointEstimator.cxx:16
xAOD::TruthVertex_v1
Class describing a truth vertex in the MC record.
Definition: TruthVertex_v1.h:37
EventReaderBaseAlg::bookDatabaseBranches
void bookDatabaseBranches(TTree *tree)
Definition: EventReaderBaseAlg.cxx:237
EventReaderBaseAlg::m_zee_T
std::vector< double > * m_zee_T
Definition: EventReaderBaseAlg.h:309
EventReaderAlg::m_calocell_id
const CaloCell_ID * m_calocell_id
Definition: EventReaderAlg.h:126
EventReaderBaseAlg::m_c_cellLayer
std::vector< int > * m_c_cellLayer
Definition: EventReaderBaseAlg.h:106
EventReaderBaseAlg::m_c_rawChannelChInfo
std::vector< std::vector< int > > * m_c_rawChannelChInfo
Definition: EventReaderBaseAlg.h:143
EventReaderBaseAlg::m_c_clusterIndex_cellLvl
std::vector< int > * m_c_clusterIndex_cellLvl
Definition: EventReaderBaseAlg.h:103
EventReaderBaseAlg::m_mc_vert_barcode
std::vector< int > * m_mc_vert_barcode
Definition: EventReaderBaseAlg.h:251
EventReaderBaseAlg::m_e_inTimePileup
float m_e_inTimePileup
Definition: EventReaderBaseAlg.h:89
HWIdentifier.h
EventReaderBaseAlg::m_mc_vert_eta
std::vector< float > * m_mc_vert_eta
Definition: EventReaderBaseAlg.h:249
EventReaderBaseAlg::m_e_runNumber
unsigned int m_e_runNumber
Definition: EventReaderBaseAlg.h:85
EventReaderAlg::m_run2DSPThresh
std::unique_ptr< LArDSPThresholdsFlat > m_run2DSPThresh
Definition: EventReaderAlg.h:106
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MagicNumbers.h
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
EventReaderBaseAlg::m_c_rawChannelDSPThreshold
std::vector< float > * m_c_rawChannelDSPThreshold
Definition: EventReaderBaseAlg.h:153
EventReaderBaseAlg::m_mc_part_phi
std::vector< float > * m_mc_part_phi
Definition: EventReaderBaseAlg.h:238
xAOD::TruthHelpers::getTruthParticle
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle &p)
Return the truthParticle associated to the given IParticle (if any)
Definition: xAODTruthHelpers.cxx:25
EventReaderBaseAlg::m_c_channelShape
std::vector< std::vector< double > > * m_c_channelShape
Definition: EventReaderBaseAlg.h:132
EventReaderBaseAlg::m_c_channelOFCTimeOffset
std::vector< double > * m_c_channelOFCTimeOffset
Definition: EventReaderBaseAlg.h:134
EventReaderBaseAlg::m_c_cellDEta
std::vector< double > * m_c_cellDEta
Definition: EventReaderBaseAlg.h:112
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
EventReaderBaseAlg::isTagElectron
bool isTagElectron(const xAOD::Electron *electron)
Definition: EventReaderBaseAlg.cxx:116
EventReaderBaseAlg::m_d0TagSig
Gaudi::Property< float > m_d0TagSig
Definition: EventReaderBaseAlg.h:56
EventReaderBaseAlg::m_zee_M
std::vector< double > * m_zee_M
Definition: EventReaderBaseAlg.h:303
EventReaderBaseAlg::m_el_wtots1
std::vector< float > * m_el_wtots1
Definition: EventReaderBaseAlg.h:284
LArHit
Class to store hit energy and time in LAr cell from G4 simulation.
Definition: LArHit.h:25
EventReaderAlg::m_shapes
const ILArShape * m_shapes
Definition: EventReaderAlg.h:113
EventReaderAlg::m_ofcKey
SG::ReadCondHandleKey< ILArOFC > m_ofcKey
Definition: EventReaderAlg.h:87
CaloCellContainer.h
xAOD::Electron_v1
Definition: Electron_v1.h:34
EventReaderAlg::m_minZeeMassTP
Gaudi::Property< float > m_minZeeMassTP
Definition: EventReaderAlg.h:71
EventReaderAlg::m_fSamplKey
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
Definition: EventReaderAlg.h:91
EventReaderBaseAlg::m_vtx_z
std::vector< float > * m_vtx_z
Definition: EventReaderBaseAlg.h:257
EventReaderAlg::m_minBiasAvgKey
SG::ReadCondHandleKey< ILArMinBiasAverage > m_minBiasAvgKey
Definition: EventReaderAlg.h:89
EventReaderAlg::dumpPrimVertexAssocToElectron
virtual StatusCode dumpPrimVertexAssocToElectron(const xAOD::Electron *el, SG::ReadHandle< xAOD::VertexContainer > &primVertexCnt, SG::ReadHandle< xAOD::EventInfo > &evtInfo)
Definition: EventReaderAlg.cxx:321
EventReaderBaseAlg::m_secondTree
TTree * m_secondTree
Definition: EventReaderBaseAlg.h:74
EventReaderBaseAlg::m_el_et
std::vector< float > * m_el_et
Definition: EventReaderBaseAlg.h:272
EventReaderBaseAlg::m_zee_pt
std::vector< double > * m_zee_pt
Definition: EventReaderBaseAlg.h:305
EventReaderAlg::m_larEMBHitCntSgKey
SG::ReadHandleKey< LArHitContainer > m_larEMBHitCntSgKey
Definition: EventReaderAlg.h:101
EventReaderBaseAlg::m_c_channelOfflEneRescaler
std::vector< float > * m_c_channelOfflEneRescaler
Definition: EventReaderBaseAlg.h:140
EventReaderAlg::FillNTupleWithSelectedElectrons
virtual StatusCode FillNTupleWithSelectedElectrons(SG::ReadHandle< xAOD::EventInfo > &ei, SG::ReadHandle< xAOD::VertexContainer > &primVertexCnt, SG::ReadHandle< xAOD::ElectronContainer > &electronSelectionCnt, std::string &eSelectionText, const EventContext &ctx)
Definition: EventReaderAlg.cxx:246
EventReaderAlg::m_EneRescalerFldr
SG::ReadCondHandleKey< AthenaAttributeList > m_EneRescalerFldr
Definition: EventReaderAlg.h:83
EventReaderAlg::m_lumis
const LuminosityCondData * m_lumis
Definition: EventReaderAlg.h:109
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
DeMoScan.index
string index
Definition: DeMoScan.py:364
LArOnlineID_Base::feedthrough
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
Definition: LArOnlineID_Base.cxx:1944
EventReaderAlg::m_larCablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_larCablingKey
Definition: EventReaderAlg.h:92
EventReaderBaseAlg::m_z0Tag
Gaudi::Property< float > m_z0Tag
Definition: EventReaderBaseAlg.h:57
Prompt::Def::Pt
@ Pt
Definition: VarHolder.h:76
EventReaderAlg::m_caloIdMgr
const CaloIdManager * m_caloIdMgr
Definition: EventReaderAlg.h:122
xAOD::EventInfo_v1::beamPosSigmaXY
float beamPosSigmaXY() const
The beam spot shape's X-Y correlation.
EventReaderBaseAlg::m_el_Pt
std::vector< float > * m_el_Pt
Definition: EventReaderBaseAlg.h:271
EventReaderBaseAlg::m_c_cellGain
std::vector< int > * m_c_cellGain
Definition: EventReaderBaseAlg.h:105
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
EventReaderBaseAlg::isGoodProbeElectron
bool isGoodProbeElectron(const xAOD::Electron *el)
Definition: EventReaderBaseAlg.cxx:157
EventReaderBaseAlg::m_c_rawChannelQuality
std::vector< float > * m_c_rawChannelQuality
Definition: EventReaderBaseAlg.h:150
CaloCondBlobFlt::getInstance
static CaloCondBlobFlt * getInstance(coral::Blob &blob)
Returns a pointer to a non-const CaloCondBlobFlt.
Definition: CaloCondBlobFlt.cxx:12
EventReaderBaseAlg::m_c_clusterChannelIndex
std::vector< int > * m_c_clusterChannelIndex
Definition: EventReaderBaseAlg.h:118
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
EventReaderBaseAlg::m_c_clusterTime
std::vector< double > * m_c_clusterTime
Definition: EventReaderBaseAlg.h:97
EventReaderBaseAlg::m_el_index
std::vector< int > * m_el_index
Definition: EventReaderBaseAlg.h:270
EventReaderAlg::m_ofcs
const ILArOFC * m_ofcs
Definition: EventReaderAlg.h:112
EventReaderBaseAlg::m_c_clusterIndex
std::vector< int > * m_c_clusterIndex
Definition: EventReaderBaseAlg.h:94
EventReaderBaseAlg::m_el_e277
std::vector< float > * m_el_e277
Definition: EventReaderBaseAlg.h:285
EventReaderAlg::m_EneRescaler
const CaloCondBlobFlt * m_EneRescaler
Definition: EventReaderAlg.h:116
EventReaderBaseAlg::m_vtx_y
std::vector< float > * m_vtx_y
Definition: EventReaderBaseAlg.h:256
EventReaderBaseAlg::m_mc_part_pdgId
std::vector< int > * m_mc_part_pdgId
Definition: EventReaderBaseAlg.h:239
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
EventReaderBaseAlg::m_doElecSelectByTrackOnly
Gaudi::Property< bool > m_doElecSelectByTrackOnly
Definition: EventReaderBaseAlg.h:58
xAOD::EventInfo_v1::errorState
EventFlagErrorState errorState(EventFlagSubDet subDet) const
Get the error state for a particular sub-detector.
Definition: EventInfo_v1.cxx:817
ILArOFC::OFC_a
virtual OFCRef_t OFC_a(const HWIdentifier &id, int gain, int tbin=0) const =0
access to OFCs by online ID, gain, and tbin (!=0 for testbeam)
xAOD::TruthParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TruthParticle_v1.cxx:166
xAOD::EgammaParameters::e277
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
Definition: EgammaEnums.h:80
EventReaderBaseAlg::m_vtx_x
std::vector< float > * m_vtx_x
Definition: EventReaderBaseAlg.h:255
EventReaderBaseAlg::m_c_clusterIndex_rawChLvl
std::vector< int > * m_c_clusterIndex_rawChLvl
Definition: EventReaderBaseAlg.h:152
EventReaderBaseAlg::m_Tree
TTree * m_Tree
Definition: EventReaderBaseAlg.h:73
EventReaderBaseAlg::m_lb_lumiblock
std::vector< int > * m_lb_lumiblock
Definition: EventReaderBaseAlg.h:82
EventReaderBaseAlg::m_el_rhad1
std::vector< float > * m_el_rhad1
Definition: EventReaderBaseAlg.h:290
EventReaderAlg::m_larRawChCntSgKey
SG::ReadHandleKey< LArRawChannelContainer > m_larRawChCntSgKey
Definition: EventReaderAlg.h:103
EventReaderBaseAlg::m_c_channelDigits
std::vector< std::vector< float > > * m_c_channelDigits
Definition: EventReaderBaseAlg.h:120
xAOD::EgammaParameters::weta1
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
Definition: EgammaEnums.h:97
EventReaderBaseAlg::m_el_Eta
std::vector< float > * m_el_Eta
Definition: EventReaderBaseAlg.h:273
EventReaderBaseAlg::m_vtx_deltaZ0
std::vector< float > * m_vtx_deltaZ0
Definition: EventReaderBaseAlg.h:258
xAOD::EgammaParameters::Eratio
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
Definition: EgammaEnums.h:158
EventReaderBaseAlg::m_c_clusterRawChannelIndex
std::vector< float > * m_c_clusterRawChannelIndex
Definition: EventReaderBaseAlg.h:151
EventReaderBaseAlg::getCaloRegionIndex
int getCaloRegionIndex(const CaloCell *cell)
Definition: EventReaderBaseAlg.cxx:205
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
EventReaderBaseAlg::m_e_eventNumber
unsigned long long m_e_eventNumber
Definition: EventReaderBaseAlg.h:87
EventReaderAlg::m_fSampl
const ILArfSampl * m_fSampl
Definition: EventReaderAlg.h:117
EventReaderBaseAlg::m_hits_cellEta
std::vector< double > * m_hits_cellEta
Definition: EventReaderBaseAlg.h:166
EventReaderBaseAlg::m_c_clusterEta
std::vector< double > * m_c_clusterEta
Definition: EventReaderBaseAlg.h:98
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
HepMC::status
int status(const T &p)
Definition: MagicNumbers.h:138
EventReaderAlg::EventReaderAlg
EventReaderAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: EventReaderAlg.cxx:29
xAOD::EgammaParameters::Rhad
@ Rhad
ethad/et
Definition: EgammaEnums.h:160
xAOD::EventInfo_v1::bcid
uint32_t bcid() const
The bunch crossing ID of the event.
xAOD::EgammaParameters::DeltaE
@ DeltaE
e2tsts1-emins1
Definition: EgammaEnums.h:164
EventReaderBaseAlg::m_el_rhad
std::vector< float > * m_el_rhad
Definition: EventReaderBaseAlg.h:289
EventReaderBaseAlg::m_mc_part_pt
std::vector< float > * m_mc_part_pt
Definition: EventReaderBaseAlg.h:235
EventReaderBaseAlg::m_c_channelEffectiveSigma
std::vector< float > * m_c_channelEffectiveSigma
Definition: EventReaderBaseAlg.h:127
EventReaderBaseAlg
Definition: EventReaderBaseAlg.h:20
xAOD::TrackParticle_v1::theta
float theta() const
Returns the parameter, which has range 0 to .
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
EventReaderBaseAlg::m_c_rawChannelPed
std::vector< float > * m_c_rawChannelPed
Definition: EventReaderBaseAlg.h:148
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
EventReaderBaseAlg::m_zee_px
std::vector< double > * m_zee_px
Definition: EventReaderBaseAlg.h:306
EventReaderAlg::m_truthEventCntSgKey
SG::ReadHandleKey< xAOD::TruthEventContainer > m_truthEventCntSgKey
Definition: EventReaderAlg.h:100
EventReaderAlg::m_getAssociatedTopoCluster
Gaudi::Property< bool > m_getAssociatedTopoCluster
Definition: EventReaderAlg.h:69
EventReaderBaseAlg::m_e_bcid
unsigned int m_e_bcid
Definition: EventReaderBaseAlg.h:86
EventReaderBaseAlg::m_c_channelOFCb
std::vector< std::vector< double > > * m_c_channelOFCb
Definition: EventReaderBaseAlg.h:131
EventReaderAlg::m_electronCntSgKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronCntSgKey
Definition: EventReaderAlg.h:99
EventReaderAlg::m_caloClusSgKey
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_caloClusSgKey
Definition: EventReaderAlg.h:96
EventReaderAlg::m_shapeKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Definition: EventReaderAlg.h:88
EventReaderBaseAlg::m_lb_bcidLuminosity
std::vector< std::vector< float > > * m_lb_bcidLuminosity
Definition: EventReaderBaseAlg.h:81
EventReaderBaseAlg::m_hits_energyConv
std::vector< double > * m_hits_energyConv
Definition: EventReaderBaseAlg.h:165
EventReaderAlg::m_noiseCDOKey
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
Definition: EventReaderAlg.h:81
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
xAOD::EgammaParameters::fracs1
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
Definition: EgammaEnums.h:111
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96
EventReaderBaseAlg::m_zee_py
std::vector< double > * m_zee_py
Definition: EventReaderBaseAlg.h:307
fitman.k
k
Definition: fitman.py:528
LArHVCorr::HVScaleCorr
virtual const float & HVScaleCorr(const HWIdentifier &chid) const override final
Definition: LArHVCorr.cxx:19
xAOD::EventInfo_v1::actualInteractionsPerCrossing
float actualInteractionsPerCrossing() const
Average interactions per crossing for the current BCID - for in-time pile-up.
Definition: EventInfo_v1.cxx:380
EventReaderAlg::finalize
virtual StatusCode finalize() override
Definition: EventReaderAlg.cxx:990
EventReaderBaseAlg::m_c_channelADC2MEV1
std::vector< float > * m_c_channelADC2MEV1
Definition: EventReaderBaseAlg.h:136
xAOD::EgammaParameters::weta2
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...
Definition: EgammaEnums.h:103
CaloCell_Base_ID::calo_cell_hash_max
size_type calo_cell_hash_max(void) const
cell 'global' hash table max size
EventReaderAlg::m_run2DSPThresholdsKey
SG::ReadCondHandleKey< AthenaAttributeList > m_run2DSPThresholdsKey
Definition: EventReaderAlg.h:82
ILArShape::Shape
virtual ShapeRef_t Shape(const HWIdentifier &id, int gain, int tbin=0, int mode=0) const =0
python.LArCondContChannels.posNeg
posNeg
Definition: LArCondContChannels.py:659
EventReaderBaseAlg::m_zee_deltaR
std::vector< double > * m_zee_deltaR
Definition: EventReaderBaseAlg.h:310
EventReaderBaseAlg::m_c_clusterCellIndex
std::vector< int > * m_c_clusterCellIndex
Definition: EventReaderBaseAlg.h:104
Identifier
Definition: IdentifierFieldParser.cxx:14