ATLAS Offline Software
RecoClusterHistograms.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 #include "GaudiKernel/ITHistSvc.h"
8 
12 #include "CaloEvent/CaloCell.h"
13 
14 #include "TH3D.h"
15 
16 using namespace egammaMonitoring;
17 
19 
20  const char* fN = m_name.c_str();
21 
22  for (int il = 0; il < 4; il++) {
23  TString hN = Form("hNcellsvseteta_Lr%i",il);
24  m_histo3DMap[hN.Data()] = new TH3D(Form("%s_%s",fN,hN.Data()),"",20,0,200,25,0,2.5,60,0,60);
25  ATH_CHECK(m_rootHistSvc->regHist(m_folder+hN.Data(), m_histo3DMap[hN.Data()]));
26  hN = Form("hEvseteta_Lr%i",il);
27  m_histo3DMap[hN.Data()] = new TH3D(Form("%s_%s",fN,hN.Data()),"",20,0,200,25,0,2.5,50,0,200);
28  ATH_CHECK(m_rootHistSvc->regHist(m_folder+hN.Data(), m_histo3DMap[hN.Data()]));
29  }
30  TString hN = "hNToposvseteta";
31  m_histo3DMap[hN.Data()] = new TH3D(Form("%s_%s",fN,hN.Data()),"",20,0,200,25,0,2.5,10,0,10);
32  ATH_CHECK(m_rootHistSvc->regHist(m_folder+hN.Data(), m_histo3DMap[hN.Data()]));
33 
34  return StatusCode::SUCCESS;
35 
36 } // initializePlots
37 
39 
40  const xAOD::CaloCluster *cluster = egamma.caloCluster();
41  // This should be a real error...
42  if (!cluster) {
43  return;
44  }
45 
46  const CaloClusterCellLink* cellLinks = cluster->getCellLinks();
47  if (!cellLinks) {
48  return;
49  }
50 
51  double et = egamma.pt()*1e-3;
52  double aeta = std::abs(egamma.eta());
53 
54  std::map<int, int > cells_per_layer;
55  for (const CaloCell* cell : *cellLinks) {
56  if (cell) {
57  int layer = cell->caloDDE()->getLayer();
58  cells_per_layer[layer]++;
59  }
60  }
61 
62  auto associatedTopoCluster = xAOD::EgammaHelpers::getAssociatedTopoClusters(cluster);
63  m_histo3DMap["hNToposvseteta"]->Fill(et,aeta,associatedTopoCluster.size());
64 
65  for (int il = 0; il < 4; il++) {
66  int nc = cells_per_layer.find(il) != cells_per_layer.end() ? cells_per_layer[il] : 0;
67  m_histo3DMap[Form("hNcellsvseteta_Lr%i",il)]->Fill(et,aeta,nc);
68  m_histo3DMap[Form("hEvseteta_Lr%i",il)]->Fill(et,aeta,cluster->energyBE(il)*1e-3);
69  }
70 
71 }
PlotCalibFromCool.il
il
Definition: PlotCalibFromCool.py:381
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
egammaMonitoring::RecoClusterHistograms::m_histo3DMap
std::map< std::string, TH3D * > m_histo3DMap
Definition: RecoClusterHistograms.h:32
egammaMonitoring::RecoClusterHistograms::m_rootHistSvc
SmartIF< ITHistSvc > m_rootHistSvc
Definition: RecoClusterHistograms.h:41
et
Extra patterns decribing particle interation process.
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
RecoClusterHistograms.h
ParticleImpl::pt
virtual double pt() const
transverse momentum
Definition: ParticleImpl.h:554
AthCheckMacros.h
egammaMonitoring::RecoClusterHistograms::initializePlots
StatusCode initializePlots()
Definition: RecoClusterHistograms.cxx:18
CaloCell.h
xAOD::Egamma_v1
Definition: Egamma_v1.h:56
egamma
Definition: egamma.h:58
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
EgammaxAODHelpers.h
CaloCluster.h
egammaMonitoring::RecoClusterHistograms::fill
void fill(const xAOD::Egamma &egamma)
Definition: RecoClusterHistograms.cxx:38
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ParticleImpl::eta
virtual double eta() const
pseudo rapidity
Definition: ParticleImpl.h:514
xAOD::CaloCluster_v1::getCellLinks
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
Definition: CaloCluster_v1.cxx:905
egammaMonitoring::RecoClusterHistograms::m_name
std::string m_name
Definition: RecoClusterHistograms.h:38
egammaMonitoring
Definition: ClusterHistograms.h:19
egammaMonitoring::RecoClusterHistograms::m_folder
std::string m_folder
Definition: RecoClusterHistograms.h:40
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
xAOD::CaloCluster_v1::energyBE
float energyBE(const unsigned layer) const
Get the energy in one layer of the EM Calo.
Definition: CaloCluster_v1.cxx:630
plotBeamSpotMon.nc
int nc
Definition: plotBeamSpotMon.py:83