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"
19 
20 #include <string>
21 
23 public:
24  MonitorTnPAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
25  virtual ~MonitorTnPAlgorithm() = default;
26  virtual StatusCode initialize() override;
27  StatusCode fillHistograms( const EventContext& ctx ) const override;
28  StatusCode fillElectronProbe(const xAOD::Electron *el, const bool isleading, const EventContext& ctx) const;
29  enum Regions : int { BARREL=0, CRACK, ENDCAP, FORWARD, NREGIONS };
30 
31 private:
32 
33  SG::ReadHandleKey<xAOD::ElectronContainer> m_ParticleContainerKey {this, "ParticleContainerName", "Electrons", "Name of electron container" };
34  SG::ReadDecorHandleKeyArray<xAOD::ElectronContainer> m_ElectronIsolationKey {this, "ElectronIsolationKey", {"Electrons.ptcone20", "Electrons.topoetcone40"} };
35  Gaudi::Property<std::string> m_ParticlePrefix {this,"ParticlePrefix","electron","Name of the particle prefix to be used to define hists"};
36  Gaudi::Property<std::string> m_RecoName {this,"RecoName","LHLoose","Name of particle flavor in egamma reco"};
37  Gaudi::Property<std::string> m_TnPType {this,"TnPType","Z","Variable to describe what is the TnP resonance name"};
38 
39  Gaudi::Property<Float_t> m_MassPeak {this, "MassPeak", 91188, "Resonance peak position"};
40  Gaudi::Property<Float_t> m_ElectronEtCut {this, "ElectronEtCut", 15000, "Et cut for electron"};
41  Gaudi::Property<Float_t> m_MassLowerCut {this, "MassLowerCut", 70000, "Lower Mass cut"};
42  Gaudi::Property<Float_t> m_MassUpperCut {this, "MassUpperCut", 110000, "Upper Mass Cut"};
43 
44  Regions GetRegion(Float_t eta) const {
45  Float_t aeta = fabs(eta);
46  // check if object is in barrel
47  if ( aeta < 1.37 ) return MonitorTnPAlgorithm::BARREL;
48  // check if object is in end-caps
49  if ( aeta > 1.52 && aeta < 2.47 ) return MonitorTnPAlgorithm::ENDCAP;
50  // check if object is in crack region
51  if ( aeta > 1.37 && aeta < 1.52 ) return MonitorTnPAlgorithm::CRACK;
52  return MonitorTnPAlgorithm::NREGIONS; // out of acceptance
53  }
54 
55 };
56 #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:44
MonitorTnPAlgorithm::m_MassLowerCut
Gaudi::Property< Float_t > m_MassLowerCut
Definition: MonitorTnPAlgorithm.h:41
MonitorTnPAlgorithm::MonitorTnPAlgorithm
MonitorTnPAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MonitorTnPAlgorithm.cxx:10
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
ElectronxAODHelpers.h
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
SG::ReadHandleKey< xAOD::ElectronContainer >
MonitorTnPAlgorithm::FORWARD
@ FORWARD
Definition: MonitorTnPAlgorithm.h:29
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
MonitorTnPAlgorithm::Regions
Regions
Definition: MonitorTnPAlgorithm.h:29
MonitorTnPAlgorithm::BARREL
@ BARREL
Definition: MonitorTnPAlgorithm.h:29
MonitorTnPAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: MonitorTnPAlgorithm.cxx:14
ElectronContainer.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:29
MonitorTnPAlgorithm::CRACK
@ CRACK
Definition: MonitorTnPAlgorithm.h:29
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:34
MonitorTnPAlgorithm::ENDCAP
@ ENDCAP
Definition: MonitorTnPAlgorithm.h:29
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
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:35
MonitorTnPAlgorithm::m_ParticleContainerKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_ParticleContainerKey
Definition: MonitorTnPAlgorithm.h:33
Electron.h
MonitorTnPAlgorithm
Definition: MonitorTnPAlgorithm.h:22
MonitorTnPAlgorithm::m_ElectronEtCut
Gaudi::Property< Float_t > m_ElectronEtCut
Definition: MonitorTnPAlgorithm.h:40
ReadDecorHandleKeyArray.h
MonitorTnPAlgorithm::m_RecoName
Gaudi::Property< std::string > m_RecoName
Definition: MonitorTnPAlgorithm.h:36
MonitorTnPAlgorithm::m_MassPeak
Gaudi::Property< Float_t > m_MassPeak
Definition: MonitorTnPAlgorithm.h:39
MonitorTnPAlgorithm::m_MassUpperCut
Gaudi::Property< Float_t > m_MassUpperCut
Definition: MonitorTnPAlgorithm.h:42
MonitorTnPAlgorithm::m_TnPType
Gaudi::Property< std::string > m_TnPType
Definition: MonitorTnPAlgorithm.h:37