ATLAS Offline Software
HnlSkimmingTool.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5 */
6 
8 // HnlSkimmingTool.h (c) ATLAS Detector software
10 
11 #ifndef DERIVATIONFRAMEWORK_HNLSKIMMINGTOOL_H
12 #define DERIVATIONFRAMEWORK_HNLSKIMMINGTOOL_H 1
13 
16 
19 #include "xAODMuon/MuonContainer.h"
21 
22 #include <string>
23 #include <vector>
24 
25 namespace DerivationFramework {
26 
27  class HnlSkimmingTool : public AthAlgTool, public ISkimmingTool {
28 
29  public:
31  HnlSkimmingTool(const std::string& t, const std::string& n, const IInterface* p);
32 
34  virtual ~HnlSkimmingTool() = default;
35 
36  // Athena algtool's Hooks
37  virtual StatusCode initialize() override;
38  virtual StatusCode finalize() override;
39 
41  virtual bool eventPassesFilter() const override;
42  bool isGood(const xAOD::Muon& mu) const;
43 
44  private:
45  // Lepton types
48 
49  // Triggers
50  ToolHandle<Trig::TrigDecisionTool> m_trigDecisionTool;
51  std::vector<std::string> m_triggers;
52 
53  // Muons
54  SG::ReadHandleKey<xAOD::MuonContainer> m_muonSGKey { this, "MuonContainerKey", "Muons", ""};
55  SG::ReadDecorHandleKey<xAOD::MuonContainer> m_muonIsoDecorKey { this, "MuonIsoDecorKey", "Muons.ptcone30", ""};
56  // Prompt muons
57  float m_mu1PtMin;
59  std::vector<int> m_mu1Types;
60  int m_mu1IsoType; //http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationType.h
61  bool m_mu1IsoCutIsRel; //is the isolation cut relative or absolute
62  float m_mu1IsoCut; //cut value
63  // Displaced muons
64  float m_mu2PtMin;
66  std::vector<int> m_mu2Types;
69  float m_mu2IsoCut;
70  float m_mu2d0Min;
71 
72  // Electrons
73  SG::ReadHandleKey<xAOD::ElectronContainer> m_electronSGKey { this, "ElectronContainerKey", "Electrons", ""};
74  SG::ReadDecorHandleKey<xAOD::ElectronContainer> m_electronIsoDecorKey { this, "ElectronIsoDecorKey", "Electrons.ptcone30", ""};
75  // Prompt electrons
76  float m_el1PtMin;
78  std::string m_el1IDKey;
79  int m_el1IsoType; //http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationType.h
80  bool m_el1IsoCutIsRel; //is the isolation cut relative or absolute
81  float m_el1IsoCut; //cut value
82  // Displaced electrons
83  float m_el2PtMin;
87  float m_el2IsoCut;
88  float m_el2d0Min;
89 
90  float m_dPhiMin;
91 
93  std::vector<const xAOD::Muon*>& promptMuonCandidates) const;
95  std::vector<const xAOD::Muon*>& displacedMuonCandidates) const;
97  std::vector<const xAOD::Electron*>& promptElectronCandidates) const;
99  std::vector<const xAOD::Electron*>& displacedElectronCandidates) const;
100  };
101 
102 }
103 
104 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
DerivationFramework::HnlSkimmingTool::m_mu2AbsEtaMax
float m_mu2AbsEtaMax
Definition: HnlSkimmingTool.h:65
DerivationFramework::HnlSkimmingTool::m_el1IsoCutIsRel
bool m_el1IsoCutIsRel
Definition: HnlSkimmingTool.h:80
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::HnlSkimmingTool::m_dPhiMin
float m_dPhiMin
Definition: HnlSkimmingTool.h:90
DerivationFramework::HnlSkimmingTool::m_el2AbsEtaMax
float m_el2AbsEtaMax
Definition: HnlSkimmingTool.h:84
DerivationFramework::HnlSkimmingTool::m_el1PtMin
float m_el1PtMin
Definition: HnlSkimmingTool.h:76
DerivationFramework::HnlSkimmingTool
Definition: HnlSkimmingTool.h:27
DerivationFramework::HnlSkimmingTool::m_el2d0Min
float m_el2d0Min
Definition: HnlSkimmingTool.h:88
DerivationFramework::HnlSkimmingTool::m_el2IsoCut
float m_el2IsoCut
Definition: HnlSkimmingTool.h:87
DerivationFramework::HnlSkimmingTool::m_el1AbsEtaMax
float m_el1AbsEtaMax
Definition: HnlSkimmingTool.h:77
DerivationFramework::HnlSkimmingTool::m_mu1Types
std::vector< int > m_mu1Types
Definition: HnlSkimmingTool.h:59
DerivationFramework::HnlSkimmingTool::m_trigDecisionTool
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
Definition: HnlSkimmingTool.h:50
DerivationFramework::HnlSkimmingTool::getPromptMuonCandidates
void getPromptMuonCandidates(SG::ReadHandle< DataVector< xAOD::Muon_v1 >> &muons, std::vector< const xAOD::Muon * > &promptMuonCandidates) const
Definition: HnlSkimmingTool.cxx:230
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
DerivationFramework::HnlSkimmingTool::m_mu2Types
std::vector< int > m_mu2Types
Definition: HnlSkimmingTool.h:66
DerivationFramework::HnlSkimmingTool::eventPassesFilter
virtual bool eventPassesFilter() const override
Check that the current event passes this filter.
Definition: HnlSkimmingTool.cxx:105
TrigDecisionTool.h
DerivationFramework::HnlSkimmingTool::m_mu2IsoCut
float m_mu2IsoCut
Definition: HnlSkimmingTool.h:69
DerivationFramework::ISkimmingTool
Definition: ISkimmingTool.h:25
DerivationFramework::HnlSkimmingTool::getDisplacedElectronCandidates
void getDisplacedElectronCandidates(SG::ReadHandle< DataVector< xAOD::Electron_v1 >> &electrons, std::vector< const xAOD::Electron * > &displacedElectronCandidates) const
Definition: HnlSkimmingTool.cxx:350
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
DerivationFramework::HnlSkimmingTool::m_mu2IsoType
int m_mu2IsoType
Definition: HnlSkimmingTool.h:67
DerivationFramework::HnlSkimmingTool::m_muonSGKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonSGKey
Definition: HnlSkimmingTool.h:54
DerivationFramework::HnlSkimmingTool::m_el2PtMin
float m_el2PtMin
Definition: HnlSkimmingTool.h:83
ElectronContainer.h
DerivationFramework::HnlSkimmingTool::m_isDisplacedMuon
bool m_isDisplacedMuon
Definition: HnlSkimmingTool.h:47
DerivationFramework::HnlSkimmingTool::m_muonIsoDecorKey
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_muonIsoDecorKey
Definition: HnlSkimmingTool.h:55
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::HnlSkimmingTool::isGood
bool isGood(const xAOD::Muon &mu) const
Definition: HnlSkimmingTool.cxx:90
AthAlgTool.h
DerivationFramework::HnlSkimmingTool::m_el1IDKey
std::string m_el1IDKey
Definition: HnlSkimmingTool.h:78
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
DerivationFramework::HnlSkimmingTool::m_isPromptMuon
bool m_isPromptMuon
Definition: HnlSkimmingTool.h:46
DerivationFramework::HnlSkimmingTool::m_el2IsoCutIsRel
bool m_el2IsoCutIsRel
Definition: HnlSkimmingTool.h:86
DerivationFramework::HnlSkimmingTool::m_el1IsoCut
float m_el1IsoCut
Definition: HnlSkimmingTool.h:81
DerivationFramework::HnlSkimmingTool::~HnlSkimmingTool
virtual ~HnlSkimmingTool()=default
Destructor.
DerivationFramework::HnlSkimmingTool::getDisplacedMuonCandidates
void getDisplacedMuonCandidates(SG::ReadHandle< DataVector< xAOD::Muon_v1 >> &muons, std::vector< const xAOD::Muon * > &displacedMuonCandidates) const
Definition: HnlSkimmingTool.cxx:269
DerivationFramework::HnlSkimmingTool::m_mu2IsoCutIsRel
bool m_mu2IsoCutIsRel
Definition: HnlSkimmingTool.h:68
DerivationFramework::HnlSkimmingTool::m_mu2PtMin
float m_mu2PtMin
Definition: HnlSkimmingTool.h:64
MuonContainer.h
DerivationFramework::HnlSkimmingTool::m_mu1PtMin
float m_mu1PtMin
Definition: HnlSkimmingTool.h:57
DerivationFramework::HnlSkimmingTool::finalize
virtual StatusCode finalize() override
Definition: HnlSkimmingTool.cxx:80
DerivationFramework::HnlSkimmingTool::m_el2IsoType
int m_el2IsoType
Definition: HnlSkimmingTool.h:85
DerivationFramework::HnlSkimmingTool::m_mu1AbsEtaMax
float m_mu1AbsEtaMax
Definition: HnlSkimmingTool.h:58
DerivationFramework::HnlSkimmingTool::m_triggers
std::vector< std::string > m_triggers
Definition: HnlSkimmingTool.h:51
DerivationFramework::HnlSkimmingTool::m_el1IsoType
int m_el1IsoType
Definition: HnlSkimmingTool.h:79
DerivationFramework::HnlSkimmingTool::m_electronSGKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronSGKey
Definition: HnlSkimmingTool.h:73
DerivationFramework::HnlSkimmingTool::getPromptElectronCandidates
void getPromptElectronCandidates(SG::ReadHandle< DataVector< xAOD::Electron_v1 >> &electrons, std::vector< const xAOD::Electron * > &promptElectronCandidates) const
Definition: HnlSkimmingTool.cxx:320
DerivationFramework::HnlSkimmingTool::m_mu1IsoCut
float m_mu1IsoCut
Definition: HnlSkimmingTool.h:62
AthAlgTool
Definition: AthAlgTool.h:26
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
DerivationFramework::HnlSkimmingTool::HnlSkimmingTool
HnlSkimmingTool(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition: HnlSkimmingTool.cxx:15
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
DerivationFramework::HnlSkimmingTool::m_mu1IsoType
int m_mu1IsoType
Definition: HnlSkimmingTool.h:60
DerivationFramework::HnlSkimmingTool::m_mu1IsoCutIsRel
bool m_mu1IsoCutIsRel
Definition: HnlSkimmingTool.h:61
DerivationFramework::HnlSkimmingTool::m_mu2d0Min
float m_mu2d0Min
Definition: HnlSkimmingTool.h:70
ISkimmingTool.h
DerivationFramework::HnlSkimmingTool::m_electronIsoDecorKey
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_electronIsoDecorKey
Definition: HnlSkimmingTool.h:74
DerivationFramework::HnlSkimmingTool::initialize
virtual StatusCode initialize() override
Definition: HnlSkimmingTool.cxx:66
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17