ATLAS Offline Software
Reconstruction
egamma
egammaValidation
src
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
5
#include "
RecoClusterHistograms.h
"
6
#include "GaudiKernel/ITHistSvc.h"
7
#include "
AthenaBaseComps/AthCheckMacros.h
"
8
9
#include "
xAODEgamma/EgammaxAODHelpers.h
"
10
#include "
xAODCaloEvent/CaloCluster.h
"
11
#include "
CaloEvent/CaloClusterCellLink.h
"
12
#include "
CaloEvent/CaloCell.h
"
13
14
#include "TH3D.h"
15
16
using namespace
egammaMonitoring
;
17
18
StatusCode
RecoClusterHistograms::initializePlots
() {
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
38
void
RecoClusterHistograms::fill
(
const
xAOD::Egamma
&
egamma
) {
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
()*1
e
-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
)*1
e
-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
CaloClusterCellLink
Bookkeeping of cells that make up a cluster Simplified replacement for CaloCellLink,...
Definition:
CaloClusterCellLink.h:24
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
CaloClusterCellLink.h
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
Generated on Sun Dec 22 2024 21:17:00 for ATLAS Offline Software by
1.8.18