ATLAS Offline Software
ElectronLikelihood.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef TOPOBJECTSELECTIONTOOLSELECTRONLIKELIHOOD_H_
6 #define TOPOBJECTSELECTIONTOOLSELECTRONLIKELIHOOD_H_
7 
11 #include "AsgTools/AnaToolHandle.h"
12 #include <memory>
13 
14 namespace top {
19  public:
36  ElectronLikelihood(const double ptcut, const bool vetoCrack, const std::string& operatingPoint,
37  const std::string& operatingPointLoose, StandardIsolation* isolation,
38  const bool applyChargeIDCut);
39 
40  ElectronLikelihood(const double ptcut, const bool vetoCrack, const std::string& operatingPoint,
41  const std::string& operatingPointLoose, StandardIsolation* isolation,
42  const bool applyTTVACut, const bool applyChargeIDCut);
43 
44  ElectronLikelihood(const double ptcut, const bool vetoCrack, const std::string& operatingPoint,
45  const std::string& operatingPointLoose, StandardIsolation* isolation,
46  const double d0SigCut, const double delta_z0, const bool applyTTVACut,
47  const bool applyChargeIDCut);
48 
49  virtual ~ElectronLikelihood() {}
56  virtual bool passSelection(const xAOD::Electron& el) const override;
57 
65  virtual bool passSelectionLoose(const xAOD::Electron& el) const override;
66 
73  virtual bool passBLayerCuts(const xAOD::Electron& el) const;
74 
75 
82  virtual bool passTTVACuts(const xAOD::Electron& el) const;
83 
90  virtual bool passChargeIDCut(const xAOD::Electron& el) const;
91 
97  virtual void print(std::ostream& os) const override;
98  protected:
107  bool passSelectionNoIsolation(const xAOD::Electron& el, const std::string& operatingPoint_DF,
108  const std::string& operatingPoint) const;
109 
111  double m_ptcut;
112 
115 
117  double m_d0SigCut;
118  double m_delta_z0;
119 
120  std::string m_operatingPoint;
122  std::string m_operatingPoint_DF;
124 
126  std::unique_ptr<top::StandardIsolation> m_isolation;
127 
130 
133 
134  // Removing electron clusters from EMEC bad HV regions
135  // https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EGammaIdentificationRun2#Removal_of_Electron_Photon_clust
137  };
138 }
139 
140 #endif
asg::AnaToolHandle< IAsgDeadHVCellRemovalTool >
top::ElectronLikelihood::m_operatingPoint_DF
std::string m_operatingPoint_DF
Definition: ElectronLikelihood.h:122
top::ElectronLikelihood::m_applyChargeIDCut
bool m_applyChargeIDCut
decide to apply the charge ID selector tool
Definition: ElectronLikelihood.h:132
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
top::StandardIsolation
Apply the cuts to etcone and ptcone like we used to in Run-I.
Definition: IsolationTools.h:231
top::ElectronLikelihood::passTTVACuts
virtual bool passTTVACuts(const xAOD::Electron &el) const
The track-to-vertex association (TTVA) cuts.
Definition: ElectronLikelihood.cxx:197
top::ElectronLikelihood::m_d0SigCut
double m_d0SigCut
TTVA cuts.
Definition: ElectronLikelihood.h:117
top::ElectronLikelihood::m_isolation
std::unique_ptr< top::StandardIsolation > m_isolation
The isolation tool, or nullptr if we don't want isolation.
Definition: ElectronLikelihood.h:126
ElectronSelectionBase.h
Pythia8_A14_NNPDF23LO_forMGHT_EvtGen.ptcut
float ptcut
Definition: Pythia8_A14_NNPDF23LO_forMGHT_EvtGen.py:9
top::ElectronLikelihood::m_operatingPoint
std::string m_operatingPoint
Definition: ElectronLikelihood.h:120
IsolationTools.h
top::ElectronLikelihood::~ElectronLikelihood
virtual ~ElectronLikelihood()
Definition: ElectronLikelihood.h:49
top::ElectronLikelihood::m_deadHVTool
asg::AnaToolHandle< IAsgDeadHVCellRemovalTool > m_deadHVTool
Definition: ElectronLikelihood.h:136
top::ElectronLikelihood::passBLayerCuts
virtual bool passBLayerCuts(const xAOD::Electron &el) const
The BLayer cuts for the loose lepton LH WP.
Definition: ElectronLikelihood.cxx:191
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
IAsgDeadHVCellRemovalTool.h
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
top::ElectronLikelihood::m_operatingPointLoose
std::string m_operatingPointLoose
Definition: ElectronLikelihood.h:121
AnaToolHandle.h
top::ElectronLikelihood
To select electrons based on the "likelihood" definition.
Definition: ElectronLikelihood.h:18
top::ElectronLikelihood::print
virtual void print(std::ostream &os) const override
Why would you not want to know what you're running?
Definition: ElectronLikelihood.cxx:227
top::ElectronLikelihood::passSelection
virtual bool passSelection(const xAOD::Electron &el) const override
Selection for the main analysis (i.e.
Definition: ElectronLikelihood.cxx:99
xAOD::Electron_v1
Definition: Electron_v1.h:34
top::ElectronLikelihood::m_operatingPointLoose_DF
std::string m_operatingPointLoose_DF
Definition: ElectronLikelihood.h:123
top::ElectronLikelihood::m_delta_z0
double m_delta_z0
Definition: ElectronLikelihood.h:118
top::ElectronLikelihood::m_ptcut
double m_ptcut
Minimum pT that electrons should have.
Definition: ElectronLikelihood.h:111
top::ElectronLikelihood::passSelectionLoose
virtual bool passSelectionLoose(const xAOD::Electron &el) const override
Selection for the loose object definitions (e.g.
Definition: ElectronLikelihood.cxx:107
top::ElectronLikelihood::passSelectionNoIsolation
bool passSelectionNoIsolation(const xAOD::Electron &el, const std::string &operatingPoint_DF, const std::string &operatingPoint) const
The loose and tight selections are the same, except they have different use isolation and a different...
Definition: ElectronLikelihood.cxx:115
top::ElectronSelectionBase
Base class for implementing an electron selection.
Definition: ElectronSelectionBase.h:22
top::ElectronLikelihood::passChargeIDCut
virtual bool passChargeIDCut(const xAOD::Electron &el) const
The charge flip selector cut.
Definition: ElectronLikelihood.cxx:219
top::ElectronLikelihood::m_applyTTVACut
bool m_applyTTVACut
decide if TTVA cut should be applied at all
Definition: ElectronLikelihood.h:129
top::ElectronLikelihood::m_vetoCrack
bool m_vetoCrack
Veto the crack region?
Definition: ElectronLikelihood.h:114
top::ElectronLikelihood::ElectronLikelihood
ElectronLikelihood(const double ptcut, const bool vetoCrack, const std::string &operatingPoint, const std::string &operatingPointLoose, StandardIsolation *isolation, const bool applyChargeIDCut)
Cut on likelihood electrons.
Definition: ElectronLikelihood.cxx:80