ATLAS Offline Software
Loading...
Searching...
No Matches
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
7
8namespace PFO {
9
10 PFOAlgPropertyPlots::PFOAlgPropertyPlots(PlotBase* pParent, const std::string & sDir, const std::string & sFEContainerName) : PlotBase(pParent, sDir), m_sFEContainerName(sFEContainerName){
11
12 }
13
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
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{
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
66 }
67
68 } // end of PFOAlgPropertyPlots::fill(const xAOD::FlowElement& FE)
69} // end of namespace PFO
Wrapper to avoid constant divisions when using units.
PFOAlgPropertyPlots(PlotBase *pParent, const std::string &sDir, const std::string &sFEContainerName)
void fill(const xAOD::FlowElement &theFE, const xAOD::EventInfo &eventInfo)
TH1 * m_FE_isInDenseEnvironment
Flow Element Histograms.
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 *parent, std::string_view sDir)
Definition PlotBase.cxx:29
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
float beamSpotWeight() const
Weight for beam spot size reweighting.
virtual double eta() const override
The pseudorapidity ( ) of the particle.
EventInfo_v1 EventInfo
Definition of the latest event info version.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition FlowElement.h:16