ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
PFlow
PFlowValidation
PFOHistUtils
src
PFOAlgPropertyPlots.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
PFOHistUtils/PFOAlgPropertyPlots.h
"
6
#include "
AthenaKernel/Units.h
"
7
8
namespace
PFO
{
9
10
PFOAlgPropertyPlots::PFOAlgPropertyPlots
(
PlotBase
* pParent,
const
std::string & sDir,
const
std::string & sFEContainerName) :
PlotBase
(pParent, sDir),
m_sFEContainerName
(sFEContainerName){
11
12
}
13
14
void
PFOAlgPropertyPlots::initializePlots
(){
15
// book FlowElement histograms
16
if
(!
m_sFEContainerName
.empty()){
17
m_FE_isInDenseEnvironment
=
Book1D
(
"_isInDenseEnvironment"
,
m_sFEContainerName
+
"_isInDenseEnvironment"
,3,-1,2);
18
m_FE_tracksExpectedEnergyDeposit
=
Book1D
(
"_tracksExpectedEnergyDeposit"
,
m_sFEContainerName
+
"_tracksExpectedEnergyDeposit"
,11,-1,10);
19
20
m_FE_isInDenseEnvironment_etaBinA
=
Book1D
(
"_isInDenseEnvironment_binA"
,
m_sFEContainerName
+
"_isInDenseEnvironment (|eta| < 1)"
,3,-1,2);
21
m_FE_tracksExpectedEnergyDeposit_etaBinA
=
Book1D
(
"_tracksExpectedEnergyDeposit_binA)"
,
m_sFEContainerName
+
"_tracksExpectedEnergyDeposit (|eta| < 1)"
,11,-1,10);
22
23
m_FE_isInDenseEnvironment_etaBinB
=
Book1D
(
"_isInDenseEnvironment_binB"
,
m_sFEContainerName
+
"_isInDenseEnvironment (1 <= |eta| < 2)"
,3,-1,2);
24
m_FE_tracksExpectedEnergyDeposit_etaBinB
=
Book1D
(
"_tracksExpectedEnergyDeposit_binB"
,
m_sFEContainerName
+
"_tracksExpectedEnergyDeposit (1 <= |eta| < 2)"
,11,-1,10);
25
26
m_FE_isInDenseEnvironment_etaBinC
=
Book1D
(
"_isInDenseEnvironment_binC"
,
m_sFEContainerName
+
"_isInDenseEnvironment (|eta| >= 2)"
,3,-1,2);
27
m_FE_tracksExpectedEnergyDeposit_etaBinC
=
Book1D
(
"_tracksExpectedEnergyDeposit_binC"
,
m_sFEContainerName
+
"_tracksExpectedEnergyDeposit (|eta| >= 2)"
,11,-1,10);
28
}
29
}
30
31
void
PFOAlgPropertyPlots::fill
(
const
xAOD::FlowElement
& FE,
const
xAOD::EventInfo
& eventInfo){
32
33
static
const
SG::ConstAccessor<int>
acc_IsInDenseEnvironment(
"IsInDenseEnvironment"
);
34
// dump the "isInDenseEnvironment
35
if
(acc_IsInDenseEnvironment.
isAvailable
(FE)){
36
int
isInDenseEnvironment=acc_IsInDenseEnvironment(FE);
37
m_FE_isInDenseEnvironment
->Fill(isInDenseEnvironment,eventInfo.
beamSpotWeight
());
38
if
(std::abs(FE.
eta
()) < 1)
m_FE_isInDenseEnvironment_etaBinA
->Fill(isInDenseEnvironment,eventInfo.
beamSpotWeight
());
39
else
if
(std::abs(FE.
eta
()) < 2)
m_FE_isInDenseEnvironment_etaBinB
->Fill(isInDenseEnvironment,eventInfo.
beamSpotWeight
());
40
else
m_FE_isInDenseEnvironment_etaBinC
->Fill(isInDenseEnvironment,eventInfo.
beamSpotWeight
());
41
}
42
else
{
43
m_FE_isInDenseEnvironment
->Fill(-1.0,eventInfo.
beamSpotWeight
());
44
if
(std::abs(FE.
eta
()) < 1)
m_FE_isInDenseEnvironment_etaBinA
->Fill(-1.0,eventInfo.
beamSpotWeight
());
45
else
if
(std::abs(FE.
eta
()) < 2)
m_FE_isInDenseEnvironment_etaBinB
->Fill(-1.0,eventInfo.
beamSpotWeight
());
46
else
m_FE_isInDenseEnvironment_etaBinC
->Fill(-1.0,eventInfo.
beamSpotWeight
());
47
}
48
static
const
SG::ConstAccessor<float>
acc_FE_tracksExpectedEnergyDeposit(
"TracksExpectedEnergyDeposit"
);
49
50
if
(acc_FE_tracksExpectedEnergyDeposit.
isAvailable
(FE)){
51
float
expectedEnergy=acc_FE_tracksExpectedEnergyDeposit(FE);
52
m_FE_tracksExpectedEnergyDeposit
->Fill(expectedEnergy/Athena::Units::GeV,eventInfo.
beamSpotWeight
());
53
if
(std::abs(FE.
eta
())<1)
54
m_FE_tracksExpectedEnergyDeposit_etaBinA
->Fill(expectedEnergy/Athena::Units::GeV,eventInfo.
beamSpotWeight
());
55
else
if
(std::abs(FE.
eta
())<2)
56
m_FE_tracksExpectedEnergyDeposit_etaBinB
->Fill(expectedEnergy/Athena::Units::GeV,eventInfo.
beamSpotWeight
());
57
else
58
m_FE_tracksExpectedEnergyDeposit_etaBinC
->Fill(expectedEnergy/Athena::Units::GeV,eventInfo.
beamSpotWeight
());
59
}
// end of accessor block on tracks expected energy deposit
60
else
{
61
m_FE_tracksExpectedEnergyDeposit
->Fill(-1.0,eventInfo.
beamSpotWeight
());
62
if
( std::abs(FE.
eta
())<1)
m_FE_tracksExpectedEnergyDeposit_etaBinA
->Fill(-1.0,eventInfo.
beamSpotWeight
());
63
else
if
((std::abs(FE.
eta
())<2))
m_FE_tracksExpectedEnergyDeposit_etaBinB
->Fill(-1.0,eventInfo.
beamSpotWeight
());
64
else
65
m_FE_tracksExpectedEnergyDeposit_etaBinC
->Fill(-1.0,eventInfo.
beamSpotWeight
());
66
}
67
68
}
// end of PFOAlgPropertyPlots::fill(const xAOD::FlowElement& FE)
69
}
// end of namespace PFO
PFOAlgPropertyPlots.h
Units.h
Wrapper to avoid constant divisions when using units.
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment_etaBinA
TH1 * m_FE_isInDenseEnvironment_etaBinA
Definition
PFOAlgPropertyPlots.h:30
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit
TH1 * m_FE_tracksExpectedEnergyDeposit
Definition
PFOAlgPropertyPlots.h:27
PFO::PFOAlgPropertyPlots::m_sFEContainerName
std::string m_sFEContainerName
Definition
PFOAlgPropertyPlots.h:41
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment_etaBinB
TH1 * m_FE_isInDenseEnvironment_etaBinB
Definition
PFOAlgPropertyPlots.h:33
PFO::PFOAlgPropertyPlots::PFOAlgPropertyPlots
PFOAlgPropertyPlots(PlotBase *pParent, const std::string &sDir, const std::string &sFEContainerName)
Definition
PFOAlgPropertyPlots.cxx:10
PFO::PFOAlgPropertyPlots::fill
void fill(const xAOD::FlowElement &theFE, const xAOD::EventInfo &eventInfo)
Definition
PFOAlgPropertyPlots.cxx:31
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit_etaBinC
TH1 * m_FE_tracksExpectedEnergyDeposit_etaBinC
Definition
PFOAlgPropertyPlots.h:37
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit_etaBinB
TH1 * m_FE_tracksExpectedEnergyDeposit_etaBinB
Definition
PFOAlgPropertyPlots.h:34
PFO::PFOAlgPropertyPlots::initializePlots
void initializePlots()
Definition
PFOAlgPropertyPlots.cxx:14
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment
TH1 * m_FE_isInDenseEnvironment
Flow Element Histograms.
Definition
PFOAlgPropertyPlots.h:26
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment_etaBinC
TH1 * m_FE_isInDenseEnvironment_etaBinC
Definition
PFOAlgPropertyPlots.h:36
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit_etaBinA
TH1 * m_FE_tracksExpectedEnergyDeposit_etaBinA
Definition
PFOAlgPropertyPlots.h:31
PlotBase::Book1D
TH1D * Book1D(std::string_view name, std::string_view labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition
PlotBase.cxx:94
PlotBase::PlotBase
PlotBase(PlotBase *parent, std::string_view sDir)
Definition
PlotBase.cxx:29
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition
ConstAccessor.h:55
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
xAOD::EventInfo_v1::beamSpotWeight
float beamSpotWeight() const
Weight for beam spot size reweighting.
Definition
EventInfo_v1.cxx:970
xAOD::FlowElement_v1::eta
virtual double eta() const override
The pseudorapidity ( ) of the particle.
PFO
Definition
ClusterMomentPlots.h:15
xAOD::EventInfo
EventInfo_v1 EventInfo
Definition of the latest event info version.
Definition
IEventInfoCnvTool.h:16
xAOD::FlowElement
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition
FlowElement.h:16
Generated on
for ATLAS Offline Software by
1.17.0