Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PFOAlgPropertyPlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 namespace PFO {
8 
9  PFOAlgPropertyPlots::PFOAlgPropertyPlots(PlotBase* pParent, const std::string & sDir, const std::string & sFEContainerName) : PlotBase(pParent, sDir), m_sFEContainerName(sFEContainerName){
10 
11  }
12 
14  // book FlowElement histograms
15  if(!m_sFEContainerName.empty()){
16  m_FE_isInDenseEnvironment = Book1D("_isInDenseEnvironment",m_sFEContainerName+"_isInDenseEnvironment",3,-1,2);
17  m_FE_tracksExpectedEnergyDeposit = Book1D("_tracksExpectedEnergyDeposit",m_sFEContainerName+"_tracksExpectedEnergyDeposit",11,-1,10);
18 
19  m_FE_isInDenseEnvironment_etaBinA = Book1D("_isInDenseEnvironment_binA",m_sFEContainerName+"_isInDenseEnvironment (|eta| < 1)",3,-1,2);
20  m_FE_tracksExpectedEnergyDeposit_etaBinA = Book1D("_tracksExpectedEnergyDeposit_binA)",m_sFEContainerName+"_tracksExpectedEnergyDeposit (|eta| < 1)",11,-1,10);
21 
22  m_FE_isInDenseEnvironment_etaBinB = Book1D("_isInDenseEnvironment_binB",m_sFEContainerName+"_isInDenseEnvironment (1 <= |eta| < 2)",3,-1,2);
23  m_FE_tracksExpectedEnergyDeposit_etaBinB = Book1D("_tracksExpectedEnergyDeposit_binB",m_sFEContainerName+"_tracksExpectedEnergyDeposit (1 <= |eta| < 2)",11,-1,10);
24 
25  m_FE_isInDenseEnvironment_etaBinC = Book1D("_isInDenseEnvironment_binC",m_sFEContainerName+"_isInDenseEnvironment (|eta| >= 2)",3,-1,2);
26  m_FE_tracksExpectedEnergyDeposit_etaBinC = Book1D("_tracksExpectedEnergyDeposit_binC",m_sFEContainerName+"_tracksExpectedEnergyDeposit (|eta| >= 2)",11,-1,10);
27  }
28  }
29 
30  void PFOAlgPropertyPlots::fill(const xAOD::FlowElement& FE, const xAOD::EventInfo& eventInfo){
31 
32  static const SG::AuxElement::ConstAccessor<int> acc_IsInDenseEnvironment("IsInDenseEnvironment");
33  // dump the "isInDenseEnvironment
34  if(acc_IsInDenseEnvironment.isAvailable(FE)){
35  int isInDenseEnvironment=acc_IsInDenseEnvironment(FE);
36  m_FE_isInDenseEnvironment->Fill(isInDenseEnvironment,eventInfo.beamSpotWeight());
37  if (fabs(FE.eta()) < 1) m_FE_isInDenseEnvironment_etaBinA->Fill(isInDenseEnvironment,eventInfo.beamSpotWeight());
38  else if (fabs(FE.eta()) < 2) m_FE_isInDenseEnvironment_etaBinB->Fill(isInDenseEnvironment,eventInfo.beamSpotWeight());
39  else m_FE_isInDenseEnvironment_etaBinC->Fill(isInDenseEnvironment,eventInfo.beamSpotWeight());
40  }
41  else{
42  m_FE_isInDenseEnvironment->Fill(-1.0,eventInfo.beamSpotWeight());
43  if (fabs(FE.eta()) < 1) m_FE_isInDenseEnvironment_etaBinA->Fill(-1.0,eventInfo.beamSpotWeight());
44  else if (fabs(FE.eta()) < 2) m_FE_isInDenseEnvironment_etaBinB->Fill(-1.0,eventInfo.beamSpotWeight());
45  else m_FE_isInDenseEnvironment_etaBinC->Fill(-1.0,eventInfo.beamSpotWeight());
46  }
47  static const SG::AuxElement::ConstAccessor<float> acc_FE_tracksExpectedEnergyDeposit("TracksExpectedEnergyDeposit");
48 
49  if(acc_FE_tracksExpectedEnergyDeposit.isAvailable(FE)){
50  float expectedEnergy=acc_FE_tracksExpectedEnergyDeposit(FE);
51  m_FE_tracksExpectedEnergyDeposit->Fill(expectedEnergy/1000.0,eventInfo.beamSpotWeight());
52  if(fabs(FE.eta())<1)
53  m_FE_tracksExpectedEnergyDeposit_etaBinA->Fill(expectedEnergy/1000.0,eventInfo.beamSpotWeight());
54  else if(fabs(FE.eta())<2)
55  m_FE_tracksExpectedEnergyDeposit_etaBinB->Fill(expectedEnergy/1000.0,eventInfo.beamSpotWeight());
56  else
57  m_FE_tracksExpectedEnergyDeposit_etaBinC->Fill(expectedEnergy/1000.0,eventInfo.beamSpotWeight());
58  }// end of accessor block on tracks expected energy deposit
59  else{
60  m_FE_tracksExpectedEnergyDeposit->Fill(-1.0,eventInfo.beamSpotWeight());
61  if( fabs(FE.eta())<1) m_FE_tracksExpectedEnergyDeposit_etaBinA->Fill(-1.0,eventInfo.beamSpotWeight());
62  else if ((fabs(FE.eta())<2)) m_FE_tracksExpectedEnergyDeposit_etaBinB->Fill(-1.0,eventInfo.beamSpotWeight());
63  else
64  m_FE_tracksExpectedEnergyDeposit_etaBinC->Fill(-1.0,eventInfo.beamSpotWeight());
65  }
66 
67  } // end of PFOAlgPropertyPlots::fill(const xAOD::FlowElement& FE)
68 } // end of namespace PFO
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment
TH1 * m_FE_isInDenseEnvironment
Flow Element Histograms.
Definition: PFOAlgPropertyPlots.h:26
PFO::PFOAlgPropertyPlots::m_sFEContainerName
std::string m_sFEContainerName
Definition: PFOAlgPropertyPlots.h:41
PlotBase
Definition: PlotBase.h:34
PFO::PFOAlgPropertyPlots::fill
void fill(const xAOD::FlowElement &theFE, const xAOD::EventInfo &eventInfo)
Definition: PFOAlgPropertyPlots.cxx:30
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit
TH1 * m_FE_tracksExpectedEnergyDeposit
Definition: PFOAlgPropertyPlots.h:27
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
PFO::PFOAlgPropertyPlots::initializePlots
void initializePlots()
Definition: PFOAlgPropertyPlots.cxx:13
PlotBase::Book1D
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:94
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit_etaBinC
TH1 * m_FE_tracksExpectedEnergyDeposit_etaBinC
Definition: PFOAlgPropertyPlots.h:37
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit_etaBinA
TH1 * m_FE_tracksExpectedEnergyDeposit_etaBinA
Definition: PFOAlgPropertyPlots.h:31
PFO::PFOAlgPropertyPlots::m_FE_tracksExpectedEnergyDeposit_etaBinB
TH1 * m_FE_tracksExpectedEnergyDeposit_etaBinB
Definition: PFOAlgPropertyPlots.h:34
PFOAlgPropertyPlots.h
PFO
Definition: ClusterMomentPlots.h:15
PFO::PFOAlgPropertyPlots::PFOAlgPropertyPlots
PFOAlgPropertyPlots(PlotBase *pParent, const std::string &sDir, const std::string &sFEContainerName)
Definition: PFOAlgPropertyPlots.cxx:9
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
xAOD::FlowElement_v1::eta
virtual double eta() const override
The pseudorapidity ( ) of the particle.
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment_etaBinA
TH1 * m_FE_isInDenseEnvironment_etaBinA
Definition: PFOAlgPropertyPlots.h:30
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment_etaBinC
TH1 * m_FE_isInDenseEnvironment_etaBinC
Definition: PFOAlgPropertyPlots.h:36
PFO::PFOAlgPropertyPlots::m_FE_isInDenseEnvironment_etaBinB
TH1 * m_FE_isInDenseEnvironment_etaBinB
Definition: PFOAlgPropertyPlots.h:33
xAOD::FlowElement_v1
A detector object made of other lower level object(s)
Definition: FlowElement_v1.h:25