ATLAS Offline Software
MonitorTnPAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 
4  Author : B. Laforge (laforge@lpnhe.in2p3.fr)
5  4 May 2020
6 */
7 
8 
9 #ifndef MonitorTnPAlgorithm_H
10 #define MonitorTnPAlgorithm_H
11 
15 
16 #include "xAODEgamma/Electron.h"
20 
21 #include <string>
22 
24 public:
25  MonitorTnPAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
26  virtual ~MonitorTnPAlgorithm() = default;
27  virtual StatusCode initialize() override;
28  StatusCode fillHistograms( const EventContext& ctx ) const override;
29  StatusCode fillElectronProbe(const xAOD::Electron *el, const bool isleading, const EventContext& ctx) const;
30  enum Regions : int { BARREL=0, CRACK, ENDCAP, FORWARD, NREGIONS };
31 
32 private:
33 
34  SG::ReadHandleKey<xAOD::ElectronContainer> m_ParticleContainerKey {this, "ParticleContainerName", "Electrons", "Name of electron container" };
35  SG::ReadDecorHandleKeyArray<xAOD::ElectronContainer> m_ElectronIsolationKey {this, "ElectronIsolationKey", {"Electrons.ptcone20", "Electrons.topoetcone40"} };
36  Gaudi::Property<std::string> m_ParticlePrefix {this,"ParticlePrefix","electron","Name of the particle prefix to be used to define hists"};
37  Gaudi::Property<std::string> m_RecoName {this,"RecoName","LHLoose","Name of particle flavor in egamma reco"};
38  Gaudi::Property<std::string> m_TnPType {this,"TnPType","Z","Variable to describe what is the TnP resonance name"};
39 
40  Gaudi::Property<Float_t> m_MassPeak {this, "MassPeak", ParticleConstants::ZMassInMeV, "Resonance peak position"};
41  Gaudi::Property<Float_t> m_ElectronEtCut {this, "ElectronEtCut", 15000, "Et cut for electron"};
42  Gaudi::Property<Float_t> m_MassLowerCut {this, "MassLowerCut", 70000, "Lower Mass cut"};
43  Gaudi::Property<Float_t> m_MassUpperCut {this, "MassUpperCut", 110000, "Upper Mass Cut"};
44 
45  Regions GetRegion(Float_t eta) const {
46  Float_t aeta = fabs(eta);
47  // check if object is in barrel
48  if ( aeta < 1.37 ) return MonitorTnPAlgorithm::BARREL;
49  // check if object is in end-caps
50  if ( aeta > 1.52 && aeta < 2.47 ) return MonitorTnPAlgorithm::ENDCAP;
51  // check if object is in crack region
52  if ( aeta > 1.37 && aeta < 1.52 ) return MonitorTnPAlgorithm::CRACK;
53  return MonitorTnPAlgorithm::NREGIONS; // out of acceptance
54  }
55 
56 };
57 #endif
MonitorTnPAlgorithm::fillElectronProbe
StatusCode fillElectronProbe(const xAOD::Electron *el, const bool isleading, const EventContext &ctx) const
Definition: MonitorTnPAlgorithm.cxx:154
MonitorTnPAlgorithm::fillHistograms
StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: MonitorTnPAlgorithm.cxx:22
MonitorTnPAlgorithm::GetRegion
Regions GetRegion(Float_t eta) const
Definition: MonitorTnPAlgorithm.h:45
MonitorTnPAlgorithm::m_MassLowerCut
Gaudi::Property< Float_t > m_MassLowerCut
Definition: MonitorTnPAlgorithm.h:42
ParticleConstants::PDG2011::ZMassInMeV
constexpr double ZMassInMeV
the mass of the Z0 boson (in MeV)
Definition: ParticleConstants.h:35
MonitorTnPAlgorithm::MonitorTnPAlgorithm
MonitorTnPAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MonitorTnPAlgorithm.cxx:10
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
ElectronxAODHelpers.h
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
SG::ReadHandleKey< xAOD::ElectronContainer >
MonitorTnPAlgorithm::FORWARD
@ FORWARD
Definition: MonitorTnPAlgorithm.h:30
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
MonitorTnPAlgorithm::Regions
Regions
Definition: MonitorTnPAlgorithm.h:30
MonitorTnPAlgorithm::BARREL
@ BARREL
Definition: MonitorTnPAlgorithm.h:30
MonitorTnPAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: MonitorTnPAlgorithm.cxx:14
ElectronContainer.h
ParticleConstants.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthMonitorAlgorithm.h
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
MonitorTnPAlgorithm::NREGIONS
@ NREGIONS
Definition: MonitorTnPAlgorithm.h:30
MonitorTnPAlgorithm::CRACK
@ CRACK
Definition: MonitorTnPAlgorithm.h:30
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
MonitorTnPAlgorithm::m_ElectronIsolationKey
SG::ReadDecorHandleKeyArray< xAOD::ElectronContainer > m_ElectronIsolationKey
Definition: MonitorTnPAlgorithm.h:35
MonitorTnPAlgorithm::ENDCAP
@ ENDCAP
Definition: MonitorTnPAlgorithm.h:30
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
MonitorTnPAlgorithm::~MonitorTnPAlgorithm
virtual ~MonitorTnPAlgorithm()=default
xAOD::Electron_v1
Definition: Electron_v1.h:34
MonitorTnPAlgorithm::m_ParticlePrefix
Gaudi::Property< std::string > m_ParticlePrefix
Definition: MonitorTnPAlgorithm.h:36
MonitorTnPAlgorithm::m_ParticleContainerKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_ParticleContainerKey
Definition: MonitorTnPAlgorithm.h:34
Electron.h
MonitorTnPAlgorithm
Definition: MonitorTnPAlgorithm.h:23
MonitorTnPAlgorithm::m_ElectronEtCut
Gaudi::Property< Float_t > m_ElectronEtCut
Definition: MonitorTnPAlgorithm.h:41
ReadDecorHandleKeyArray.h
MonitorTnPAlgorithm::m_RecoName
Gaudi::Property< std::string > m_RecoName
Definition: MonitorTnPAlgorithm.h:37
MonitorTnPAlgorithm::m_MassPeak
Gaudi::Property< Float_t > m_MassPeak
Definition: MonitorTnPAlgorithm.h:40
MonitorTnPAlgorithm::m_MassUpperCut
Gaudi::Property< Float_t > m_MassUpperCut
Definition: MonitorTnPAlgorithm.h:43
MonitorTnPAlgorithm::m_TnPType
Gaudi::Property< std::string > m_TnPType
Definition: MonitorTnPAlgorithm.h:38