ATLAS Offline Software
CaloHitAnalysis.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Base class
6 #include "CaloHitAnalysis.h"
7 
8 // Section of includes for LAr calo tests
10 #include "CaloDetDescr/CaloDetDescrElement.h"
12 
13 // Section of includes for tile calo tests
15 #include "CaloIdentifier/TileID.h"
16 #include "TileSimEvent/TileHit.h"
18 
19 //Section of includes for Calibrated Calo hits
22 
23 #include "TString.h"
24 #include "TH1.h"
25 #include "TH2.h"
26 #include "TTree.h"
27 
28 #include <algorithm>
29 #include <math.h>
30 #include <functional>
31 #include <iostream>
32 
33 CaloHitAnalysis::CaloHitAnalysis(const std::string& name, ISvcLocator* pSvcLocator)
34  : AthAlgorithm(name, pSvcLocator)
35  , m_expert("off")
36  , m_calib("off")
37  , m_ntupleFileName("/CaloHitAnalysis/")
38  , m_path("/CaloHitAnalysis/")
39  , m_thistSvc("THistSvc", name)
40 {
41  declareProperty("ExpertMode", m_expert="off");
42  declareProperty("CalibHits", m_calib="off");
43  declareProperty("NtupleFileName", m_ntupleFileName);
44  declareProperty("HistPath", m_path);
45 }
46 
47 
49  ATH_MSG_DEBUG( "Initializing CaloHitAnalysis" );
50 
53 
54  // Grab the Ntuple and histogramming service for the tree
55  CHECK( m_thistSvc.retrieve() );
56 
58 
59  m_h_cell_e = new TH1D("h_Calo_cell_e", "cell_e", 100,0.,500.);
60  m_h_cell_e->StatOverflows();
61  CHECK(m_thistSvc->regHist( m_path+m_h_cell_e->GetName(), m_h_cell_e));
62 
63  m_h_cell_eta = new TH1D("h_Calo_cell_eta", "cell_eta", 50,-5.,5.);
64  m_h_cell_eta->StatOverflows();
65  CHECK(m_thistSvc->regHist( m_path+m_h_cell_eta->GetName(), m_h_cell_eta));
66 
67  m_h_cell_phi = new TH1D("h_Calo_cell_phi", "cell_phi", 50,-3.1416,3.1416);
68  m_h_cell_phi->StatOverflows();
69  CHECK(m_thistSvc->regHist( m_path+m_h_cell_phi->GetName(), m_h_cell_phi));
70 
71  m_h_cell_radius = new TH1D("h_Calo_cell_radius", "cell_radius", 100, 0., 6000.);
72  m_h_cell_radius->StatOverflows();
73  CHECK(m_thistSvc->regHist( m_path+m_h_cell_radius->GetName(), m_h_cell_radius));
74 
75  m_h_xy = new TH2F("h_Calo_xy", "xy", 100,-4000,4000,100, -4000, 4000);
76  m_h_xy->StatOverflows();
77  CHECK(m_thistSvc->regHist( m_path+m_h_xy->GetName(), m_h_xy));
78 
79  m_h_zr = new TH2D("h_Calo_zr", "zr", 100,-7000.,7000.,100, 0., 6000.);
80  m_h_zr->StatOverflows();
81  CHECK(m_thistSvc->regHist( m_path+m_h_zr->GetName(), m_h_zr));
82 
83  m_h_etaphi = new TH2D("h_Calo_etaphi", "eta_phi", 50,-5.,5.,50, -3.1416, 3.1416);
84  m_h_etaphi->StatOverflows();
85  CHECK(m_thistSvc->regHist( m_path+m_h_etaphi->GetName(), m_h_etaphi));
86 
87  //These histograms will be filled only if expert mode is set on
88  m_h_time_e = new TH2D("h_Calo_time_e", "energy vs time", 100, 0,50, 100,0,500);
89  m_h_time_e->StatOverflows();
90 
91  m_h_eta_e = new TH2D("h_Calo_eta_e", "energy vs eta", 50, -5,5, 100,0,500);
92  m_h_eta_e->StatOverflows();
93 
94  m_h_phi_e = new TH2D("h_Calo_phi_e", "energy vs phi", 50, -3.1416,3.1416, 100,0,500);
95  m_h_phi_e->StatOverflows();
96 
97  m_h_r_e = new TH2D("h_Calo_r_e", "energy vs radius", 100, 0,6000, 100,0,500);
98  m_h_r_e->StatOverflows();
99 
100  if (m_expert == "on") {
101  CHECK(m_thistSvc->regHist(m_path + m_h_time_e->GetName(), m_h_time_e));
102  CHECK(m_thistSvc->regHist(m_path + m_h_eta_e->GetName(), m_h_eta_e));
103  CHECK(m_thistSvc->regHist(m_path + m_h_phi_e->GetName(), m_h_phi_e));
104  CHECK(m_thistSvc->regHist(m_path + m_h_r_e->GetName(), m_h_r_e));
105  }
106 
107  //Histograms for calibrated hits
108  m_h_calib_eta = new TH1D("h_calib_eta", "calib. hits eta", 50,-5,5);
109  m_h_calib_eta->StatOverflows();
110 
111  m_h_calib_phi = new TH1D("h_calib_phi", "calib. hits phi", 50,-3.1416,3.1416);
112  m_h_calib_phi->StatOverflows();
113 
114  m_h_calib_rz = new TH2D("h_calib_rz", "calib. hits r vs z", 100,-7000,7000,1000, 0,6000);
115  m_h_calib_rz->StatOverflows();
116 
117  m_h_calib_etaphi = new TH2D("h_calib_etaphi", "calib. hits eta vs phi",50,-5.,5., 50,-3.1416,3.1416);
118  m_h_calib_etaphi->StatOverflows();
119 
120  m_h_calib_eEM = new TH1D("h_calib_eEM", "calib. hits EM energy", 100,0,100);
121  m_h_calib_eEM->StatOverflows();
122 
123  m_h_calib_eNonEM = new TH1D("h_calib_nonEM", "calib. hits non EM energy", 100,0,100);
124  m_h_calib_eNonEM->StatOverflows();
125 
126  m_h_calib_eInv = new TH1D("h_calib_eInv", "calib. hits invisible energy", 100,0,100);
127  m_h_calib_eInv->StatOverflows();
128 
129  m_h_calib_eEsc = new TH1D("h_calib_eEsc", "calib. hits escaped energy", 100,0,100);
130  m_h_calib_eEsc->StatOverflows();
131 
132  m_h_calib_eTot = new TH1D("h_calib_eTot", "calib. hits energy", 100,0,100);
133  m_h_calib_eTot->StatOverflows();
134 
135  m_h_calib_eTotpartID = new TH1D("h_calib_eTotpartID", "calib. hits partID weighted with energy",600,0,300000);
136  m_h_calib_eTotpartID->StatOverflows();
137 
138  if( m_calib == "on") {
139  CHECK(m_thistSvc->regHist(m_path + m_h_calib_eta->GetName(), m_h_calib_eta));
140  CHECK(m_thistSvc->regHist(m_path + m_h_calib_phi->GetName(), m_h_calib_phi));
141  CHECK(m_thistSvc->regHist(m_path + m_h_calib_rz->GetName(), m_h_calib_rz));
142  CHECK(m_thistSvc->regHist(m_path + m_h_calib_etaphi->GetName(), m_h_calib_etaphi));
143  CHECK(m_thistSvc->regHist(m_path + m_h_calib_eEM->GetName(), m_h_calib_eEM));
144  CHECK(m_thistSvc->regHist(m_path + m_h_calib_eNonEM->GetName(), m_h_calib_eNonEM));
145  CHECK(m_thistSvc->regHist(m_path + m_h_calib_eInv->GetName(), m_h_calib_eInv));
146  CHECK(m_thistSvc->regHist(m_path + m_h_calib_eEsc->GetName(), m_h_calib_eEsc));
147  CHECK(m_thistSvc->regHist(m_path + m_h_calib_eTot->GetName(), m_h_calib_eTot));
149  }
150 
152  m_tree = new TTree("Calo", "Calo");
153  std::string fullNtupleName = "/" + m_ntupleFileName + "/";
154  CHECK( m_thistSvc->regTree(fullNtupleName, m_tree) );
155 
156  if(m_tree) {
157  m_tree->Branch("CellEta", &m_cell_eta);
158  m_tree->Branch("CellPhi", &m_cell_phi);
159  m_tree->Branch("CellX", &m_cell_x);
160  m_tree->Branch("CellY", &m_cell_y);
161  m_tree->Branch("CellZ", &m_cell_z);
162  m_tree->Branch("CellE", &m_cell_e);
163  m_tree->Branch("CellRadius", &m_cell_radius);
164  m_tree->Branch("Time", &m_time);
165  m_tree->Branch("CalibEta", &m_calib_eta);
166  m_tree->Branch("CalibPhi", &m_calib_phi);
167  m_tree->Branch("CalibRadius", &m_calib_radius);
168  m_tree->Branch("CalibZ", &m_calib_z);
169  m_tree->Branch("Calib_eEM", &m_calib_eEM);
170  m_tree->Branch("Calib_eNonEM", &m_calib_eNonEM);
171  m_tree->Branch("Calib_eInv", &m_calib_eInv);
172  m_tree->Branch("Calib_eEsc", &m_calib_eEsc);
173  m_tree->Branch("Calib_eTot", &m_calib_eTot);
174  m_tree->Branch("Calib_partID", &m_calib_partID);
175  }
176  else {
177  ATH_MSG_ERROR( "No tree found!" );
178  }
179 
180  return StatusCode::SUCCESS;
181 }
182 
183 
185  ATH_MSG_DEBUG( "In CaloHitAnalysis::execute()" );
186 
187  m_cell_eta->clear();
188  m_cell_phi->clear();
189  m_cell_e->clear();
190  m_cell_x->clear();
191  m_cell_y->clear();
192  m_cell_z->clear();
193  m_cell_radius->clear();
194  m_time->clear();
195  m_calib_eta->clear();
196  m_calib_phi->clear();
197  m_calib_radius->clear();
198  m_calib_z->clear();
199  m_calib_eEM->clear();
200  m_calib_eNonEM->clear();
201  m_calib_eInv->clear();
202  m_calib_eEsc->clear();
203  m_calib_eTot->clear();
204  m_calib_partID->clear();
205 
207  ATH_CHECK(caloMgrHandle.isValid());
208  const CaloDetDescrManager* caloMgr = *caloMgrHandle;
209 
210  std::string lArKey [4] = {"LArHitEMB", "LArHitEMEC", "LArHitFCAL", "LArHitHEC"};
211  for (unsigned int i=0; i<4; i++) {
212  const LArHitContainer* iter;
213  if (evtStore()->retrieve(iter,lArKey[i]) == StatusCode::SUCCESS) {
214  for (auto hi : *iter ) {
215  const CaloDetDescrElement *hitElement = caloMgr->get_element(hi->cellID());
216  double energy = hi->energy();
217  double time = hi->time();
218  double eta = hitElement->eta();
219  double phi = hitElement->phi();
220  double radius = hitElement->r();
221  float x = hitElement->x();
222  float y = hitElement->y();
223  double z = hitElement->z();
224 
225  m_h_cell_e->Fill( energy );
226  m_h_cell_eta->Fill( eta );
227  m_h_cell_phi->Fill( phi );
229  m_h_xy->Fill(x,y);
230  m_h_zr->Fill(z,radius);
231  m_h_etaphi->Fill(eta, phi);
232  if (m_expert == "on") {
237  }
238  m_cell_eta->push_back(eta);
239  m_cell_phi->push_back(phi);
240  m_cell_e->push_back(energy);
241  m_cell_x->push_back(x);
242  m_cell_y->push_back(y);
243  m_cell_z->push_back(z);
244  m_cell_radius->push_back(radius);
245  m_time->push_back(time);
246  } // End while hits
247  } // End statuscode success upon retrieval of hits
248  } // End detector type loop
249 
250  const TileHitVector* hitVec;
251  //const TileHitVector* hitVec;
252  if (evtStore()->retrieve(hitVec,"TileHitVec") == StatusCode::SUCCESS && m_tileMgr && m_tileID) {
253  for (const auto& i_hit : *hitVec) {
254  Identifier pmt_id = (i_hit).identify();
255  Identifier cell_id = m_tileID->cell_id(pmt_id);
256  const CaloDetDescrElement* ddElement = (m_tileID->is_tile_aux(cell_id)) ? 0 : m_tileMgr->get_cell_element(cell_id);
257  if (ddElement) {
258  double tot_e = 0.;
259  double tot_time = 0.;
260  for (int t=0; t<(i_hit).size(); ++t) tot_e += (i_hit).energy(t);
261  for (int t=0; t<(i_hit).size(); ++t) tot_time += (i_hit).time(t);
262  m_h_cell_e->Fill(tot_e);
263  m_h_cell_eta->Fill(ddElement->eta());
264  m_h_cell_phi->Fill(ddElement->phi()) ;
265  m_h_cell_radius->Fill(ddElement->z());
266  m_h_xy->Fill(ddElement->x(), ddElement->y());
267  m_h_zr->Fill(ddElement->r(), ddElement->r());
268  m_h_etaphi->Fill(ddElement->eta(), ddElement->phi());
269 
270  if (m_expert == "on") {
271  m_h_time_e->Fill(tot_time, tot_e);
272  m_h_eta_e->Fill(ddElement->eta(), tot_e);
273  m_h_phi_e->Fill(ddElement->phi(), tot_e);
274  m_h_r_e->Fill(ddElement->r(), tot_e);
275  }
276  m_cell_eta->push_back(ddElement->eta());
277  m_cell_phi->push_back(ddElement->phi());
278  m_cell_e->push_back(tot_e);
279  m_cell_x->push_back(ddElement->x());
280  m_cell_y->push_back(ddElement->y());
281  m_cell_z->push_back(ddElement->z());
282  m_cell_radius->push_back(ddElement->r());
283  m_time->push_back(tot_time);
284  }
285  }
286  }
287 
288  //For calibrated hits
289  std::string LArCalibKey [3] = {"LArCalibrationHitActive", "LArCalibrationHitInactive","LArCalibrationHitDeadMaterial"};
290  for (unsigned int j=0; j<3; j++) {
291  if (m_calib != "on") continue;
293  if(evtStore()->retrieve(iterator, LArCalibKey[j]) == StatusCode::SUCCESS) {
294  //Not tested
295  for (auto hit_i : *iterator) {
296  GeoCaloCalibHit geoHit(*hit_i, LArCalibKey[j], caloMgr);
297  if (!geoHit) continue;
298  const CaloDetDescrElement* Element = geoHit.getDetDescrElement();
299  double eta = Element->eta();
300  double phi = Element->phi();
301  double radius = Element->r();
302  double z = Element->z();
303  double emEnergy = geoHit.energyEM();
304  double nonEmEnergy = geoHit.energyNonEM();
305  double invEnergy = geoHit.energyInvisible();
306  double escEnergy = geoHit.energyEscaped();
307  double totEnergy = geoHit.energyTotal();
308  double particleID = (*hit_i).particleID();
309 
314  m_h_calib_eEM->Fill(emEnergy);
315  m_h_calib_eNonEM->Fill(nonEmEnergy);
316  m_h_calib_eInv->Fill(invEnergy);
317  m_h_calib_eEsc->Fill(escEnergy);
318  m_h_calib_eTot->Fill(totEnergy);
319  m_h_calib_eTotpartID->Fill(particleID, totEnergy);
320 
321  m_calib_eta->push_back(eta);
322  m_calib_phi->push_back(phi);
323  m_calib_radius->push_back(radius);
324  m_calib_z->push_back(z);
325  m_calib_eEM->push_back(emEnergy);
326  m_calib_eNonEM->push_back(nonEmEnergy);
327  m_calib_eInv->push_back(invEnergy);
328  m_calib_eEsc->push_back(escEnergy);
329  m_calib_eTot->push_back(totEnergy);
330  m_calib_partID->push_back(particleID);
331  }
332  }
333  }
334 
335  if(m_tree) m_tree->Fill();
336 
337  return StatusCode::SUCCESS;
338 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TH2::Fill
int Fill(double, double)
Definition: rootspy.cxx:382
Tile_Base_ID::is_tile_aux
bool is_tile_aux(const Identifier &id) const
Definition: Tile_Base_ID.cxx:232
CaloHitAnalysis::m_ntupleFileName
std::string m_ntupleFileName
Definition: CaloHitAnalysis.h:88
CaloCalibrationHitContainer
Definition: CaloCalibrationHitContainer.h:25
CaloHitAnalysis::m_h_calib_eTotpartID
TH1 * m_h_calib_eTotpartID
Definition: CaloHitAnalysis.h:60
CaloHitAnalysis::m_h_time_e
TH2 * m_h_time_e
Definition: CaloHitAnalysis.h:47
CaloHitAnalysis::m_calib_z
std::vector< float > * m_calib_z
Definition: CaloHitAnalysis.h:76
GeoCaloCalibHit
Adaptor for CaloCalibHits.
Definition: GeoCaloCalibHit.h:26
GeoCaloCalibHit::energyEscaped
double energyEscaped() const
CaloHitAnalysis::m_calib_partID
std::vector< float > * m_calib_partID
Definition: CaloHitAnalysis.h:82
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
CaloDetDescrElement::y
float y() const
cell y
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:365
GeoCaloCalibHit::energyEM
double energyEM() const
CaloHitAnalysis::m_h_cell_e
TH1 * m_h_cell_e
Definition: CaloHitAnalysis.h:42
CaloHitAnalysis::initialize
virtual StatusCode initialize() override
Definition: CaloHitAnalysis.cxx:48
CaloHitAnalysis::m_h_cell_radius
TH1 * m_h_cell_radius
Definition: CaloHitAnalysis.h:43
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloHitAnalysis::m_h_calib_eta
TH1 * m_h_calib_eta
Definition: CaloHitAnalysis.h:51
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
CaloHitAnalysis::m_calib_phi
std::vector< float > * m_calib_phi
Definition: CaloHitAnalysis.h:74
CaloHitAnalysis::m_cell_y
std::vector< float > * m_cell_y
Definition: CaloHitAnalysis.h:68
CaloDetDescrManager_Base::get_element
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
Definition: CaloDetDescrManager.cxx:159
AtlasHitsVector
Definition: AtlasHitsVector.h:33
CaloHitAnalysis::m_h_calib_eEsc
TH1 * m_h_calib_eEsc
Definition: CaloHitAnalysis.h:58
CaloHitAnalysis::m_cell_radius
std::vector< float > * m_cell_radius
Definition: CaloHitAnalysis.h:71
TH1D
Definition: rootspy.cxx:342
CaloHitAnalysis::m_time
std::vector< float > * m_time
Definition: CaloHitAnalysis.h:72
CaloHitAnalysis::m_h_calib_eInv
TH1 * m_h_calib_eInv
Definition: CaloHitAnalysis.h:57
CaloHitAnalysis::m_path
std::string m_path
Definition: CaloHitAnalysis.h:89
CaloHitAnalysis::m_calib_radius
std::vector< float > * m_calib_radius
Definition: CaloHitAnalysis.h:75
CaloHitAnalysis::m_calib
std::string m_calib
Definition: CaloHitAnalysis.h:85
LArHitContainer
Hit collection.
Definition: LArHitContainer.h:26
CaloHitAnalysis::m_h_calib_etaphi
TH2 * m_h_calib_etaphi
Definition: CaloHitAnalysis.h:54
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
GeoCaloCalibHit::energyNonEM
double energyNonEM() const
CaloHitAnalysis::m_calib_eTot
std::vector< float > * m_calib_eTot
Definition: CaloHitAnalysis.h:81
GeoCaloCalibHit.h
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
x
#define x
CaloHitAnalysis::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: CaloHitAnalysis.h:91
CaloHitAnalysis::m_thistSvc
ServiceHandle< ITHistSvc > m_thistSvc
Definition: CaloHitAnalysis.h:90
CaloCalibrationHitContainer.h
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
TileID.h
TileDetDescrManager.h
CaloHitAnalysis::m_calib_eEsc
std::vector< float > * m_calib_eEsc
Definition: CaloHitAnalysis.h:80
GeoCaloCalibHit::getDetDescrElement
const CaloDetDescrElement * getDetDescrElement() const
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
CaloHitAnalysis::m_tileMgr
const TileDetDescrManager * m_tileMgr
Definition: CaloHitAnalysis.h:63
CaloHitAnalysis::m_h_calib_eNonEM
TH1 * m_h_calib_eNonEM
Definition: CaloHitAnalysis.h:56
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CaloHitAnalysis::m_h_calib_rz
TH2 * m_h_calib_rz
Definition: CaloHitAnalysis.h:53
CaloHitAnalysis::m_calib_eInv
std::vector< float > * m_calib_eInv
Definition: CaloHitAnalysis.h:79
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
GeoCaloCalibHit::energyInvisible
double energyInvisible() const
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CaloHitAnalysis::m_h_etaphi
TH2 * m_h_etaphi
Definition: CaloHitAnalysis.h:46
CaloHitAnalysis::m_calib_eNonEM
std::vector< float > * m_calib_eNonEM
Definition: CaloHitAnalysis.h:78
CaloHitAnalysis::m_h_cell_eta
TH1 * m_h_cell_eta
Simple variables by Ketevi.
Definition: CaloHitAnalysis.h:40
m_path
std::string m_path
the path being used
Definition: OutputStreamData.cxx:88
CaloHitAnalysis::m_h_eta_e
TH2 * m_h_eta_e
Definition: CaloHitAnalysis.h:48
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
CaloHitAnalysis::m_h_cell_phi
TH1 * m_h_cell_phi
Definition: CaloHitAnalysis.h:41
TH2D
Definition: rootspy.cxx:430
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
AthAlgorithm
Definition: AthAlgorithm.h:47
CaloHitAnalysis::m_cell_z
std::vector< float > * m_cell_z
Definition: CaloHitAnalysis.h:69
TileDetDescrManager::get_cell_element
CaloDetDescrElement * get_cell_element(unsigned int cell_hash) const
Definition: TileDetDescrManager.h:156
CaloHitAnalysis::m_expert
std::string m_expert
Definition: CaloHitAnalysis.h:84
TileHitVector.h
TileHit.h
CaloHitAnalysis::m_calib_eEM
std::vector< float > * m_calib_eEM
Definition: CaloHitAnalysis.h:77
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CaloHitAnalysis::m_cell_e
std::vector< float > * m_cell_e
Definition: CaloHitAnalysis.h:70
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
CaloHitAnalysis::m_h_xy
TH2 * m_h_xy
Definition: CaloHitAnalysis.h:44
CaloHitAnalysis::m_h_calib_eEM
TH1 * m_h_calib_eEM
Definition: CaloHitAnalysis.h:55
CaloHitAnalysis::m_tree
TTree * m_tree
Definition: CaloHitAnalysis.h:87
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
CaloDetDescrElement::x
float x() const
cell x
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:363
CaloHitAnalysis.h
y
#define y
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
CaloHitAnalysis::m_h_calib_eTot
TH1 * m_h_calib_eTot
Definition: CaloHitAnalysis.h:59
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
CaloHitAnalysis::execute
virtual StatusCode execute() override
Definition: CaloHitAnalysis.cxx:184
LArHitContainer.h
CaloDetDescrElement::z
float z() const
cell z
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:367
GeoCaloCalibHit::energyTotal
double energyTotal() const
CaloDetDescrElement::eta
float eta() const
cell eta
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:344
CaloHitAnalysis::m_cell_eta
std::vector< float > * m_cell_eta
Definition: CaloHitAnalysis.h:65
CaloHitAnalysis::m_h_r_e
TH2 * m_h_r_e
Definition: CaloHitAnalysis.h:50
CaloHitAnalysis::CaloHitAnalysis
CaloHitAnalysis(const std::string &name, ISvcLocator *pSvcLocator)
Definition: CaloHitAnalysis.cxx:33
CaloDetDescrElement::phi
float phi() const
cell phi
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:346
CaloHitAnalysis::m_calib_eta
std::vector< float > * m_calib_eta
Definition: CaloHitAnalysis.h:73
CaloHitAnalysis::m_h_phi_e
TH2 * m_h_phi_e
Definition: CaloHitAnalysis.h:49
CaloDetDescrElement::r
float r() const
cell r
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:348
Tile_Base_ID::cell_id
Identifier cell_id(const Identifier &any_id) const
Definition: Tile_Base_ID.cxx:581
CaloHitAnalysis::m_cell_phi
std::vector< float > * m_cell_phi
Definition: CaloHitAnalysis.h:66
CaloHitAnalysis::m_h_calib_phi
TH1 * m_h_calib_phi
Definition: CaloHitAnalysis.h:52
CaloHitAnalysis::m_tileID
const TileID * m_tileID
Definition: CaloHitAnalysis.h:62
CaloHitAnalysis::m_h_zr
TH2 * m_h_zr
Definition: CaloHitAnalysis.h:45
CaloHitAnalysis::m_cell_x
std::vector< float > * m_cell_x
Definition: CaloHitAnalysis.h:67