ATLAS Offline Software
IsolationCorrectionTool.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 ISOLATIONCORRECTION_ISOLATIONCORRECTIONTOOL_H
6 #define ISOLATIONCORRECTION_ISOLATIONCORRECTIONTOOL_H
7 
10 //
15 #include "AsgTools/AsgTool.h"
16 //
19 //
20 #include "TGraph.h"
21 
22 namespace CP {
23 
25  : virtual public IIsolationCorrectionTool
26  , public asg::AsgMetadataTool
27 {
28  // Create a proper constructor for Athena
33 
34 public:
35  IsolationCorrectionTool(const std::string& name);
36  virtual ~IsolationCorrectionTool();
37 
38  virtual StatusCode initialize() override final;
39 
40  // Apply correction to a modifyable Egamma object
41  virtual CP::CorrectionCode applyCorrection(xAOD::Egamma&) override final;
42 
43  // This helps to correct for the (wrong) leakage at the analysis level
44  virtual CP::CorrectionCode CorrectLeakage(xAOD::Egamma&) override final;
45 
46  // Create a corrected copy from a const Egamma object
48  xAOD::Egamma*&) override final;
49 
50  // systematics
51  // Which systematics have an effect on the tool's behaviour?
52  virtual CP::SystematicSet affectingSystematics() const override final;
53  // Is the tool affected by a specific systematic?
54  virtual bool isAffectedBySystematic(
55  const CP::SystematicVariation& systematic) const override final;
56  // Systematics to be used for physics analysis
57  virtual CP::SystematicSet recommendedSystematics() const override final;
58  // Use specific systematic
60  const CP::SystematicSet& systConfig) override final;
61 
62  virtual float GetPtCorrectedIsolation(const xAOD::Egamma&,
63  xAOD::Iso::IsolationType) override;
64  virtual float GetPtCorrection(const xAOD::Egamma&,
65  xAOD::Iso::IsolationType) const override final;
66  virtual float GetDDCorrection(const xAOD::Egamma&,
67  xAOD::Iso::IsolationType) override final;
68  void Print() { m_isol_corr->Print(); };
69 
70 private:
72  {
74  };
75 
77  "EventInfoKey",
78  "EventInfo",
79  "" };
81  this,
82  "CentralEventShapeKey",
83  "TopoClusterIsoCentralEventShape",
84  ""
85  };
86 
88  this,
89  "ForwardEventShape",
90  "TopoClusterIsoForwardEventShape",
91  ""
92  };
93 
94  std::string m_corr_file;
95  std::string m_corr_ddshift_file;
98  std::string m_tool_ver_str;
99 
102  std::map<xAOD::Iso::IsolationType, std::unique_ptr<TGraph>>
104  std::map<xAOD::Iso::IsolationType, std::unique_ptr<TGraph>>
106  std::string m_ddVersion;
110  bool m_is_mc;
117 
118  // For systematcis
120 };
121 
122 }
123 
124 #endif
CP::IsolationCorrectionTool::Print
void Print()
Definition: IsolationCorrectionTool.h:68
CP::IsolationCorrectionTool::GetDDCorrection
virtual float GetDDCorrection(const xAOD::Egamma &, xAOD::Iso::IsolationType) override final
Definition: IsolationCorrectionTool.cxx:346
CP::IsolationCorrectionTool::m_tool_ver_str
std::string m_tool_ver_str
Definition: IsolationCorrectionTool.h:98
CP::IsolationCorrectionTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const override final
the list of all systematics this tool can be affected by
Definition: IsolationCorrectionTool.cxx:377
CP::IsolationCorrectionTool::m_centralEventShapeKey
SG::ReadHandleKey< xAOD::EventShape > m_centralEventShapeKey
Definition: IsolationCorrectionTool.h:80
CP::IsolationCorrectionTool::m_forwardEventShapeKey
SG::ReadHandleKey< xAOD::EventShape > m_forwardEventShapeKey
Definition: IsolationCorrectionTool.h:87
EventShape.h
CP::IsolationCorrectionTool::m_corr_ddsmearing_file
std::string m_corr_ddsmearing_file
Definition: IsolationCorrectionTool.h:96
CP::IsolationCorrectionTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const CP::SystematicVariation &systematic) const override final
Declare the interface that this class provides.
Definition: IsolationCorrectionTool.cxx:372
CP::IsolationCorrectionTool::CorrectLeakage
virtual CP::CorrectionCode CorrectLeakage(xAOD::Egamma &) override final
Definition: IsolationCorrectionTool.cxx:167
CP::IsolationCorrection::Print
void Print()
Definition: IsolationCorrection.cxx:1342
CP::IsolationCorrectionTool::m_apply_SC_leak_corr
bool m_apply_SC_leak_corr
Definition: IsolationCorrectionTool.h:107
CP::IsolationCorrectionTool::GetPtCorrectedIsolation
virtual float GetPtCorrectedIsolation(const xAOD::Egamma &, xAOD::Iso::IsolationType) override
Definition: IsolationCorrectionTool.cxx:338
CP::IsolationCorrectionTool::m_is_mc
bool m_is_mc
Definition: IsolationCorrectionTool.h:110
CP::IsolationCorrectionTool::m_map_isotype_zeta_mc_corr
std::map< xAOD::Iso::IsolationType, std::unique_ptr< TGraph > > m_map_isotype_zeta_mc_corr
Definition: IsolationCorrectionTool.h:105
CP::IsolationCorrectionTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &systConfig) override final
effects: configure this tool for the given list of systematic variations.
Definition: IsolationCorrectionTool.cxx:386
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
CP::IsolationCorrectionTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::Egamma &) override final
Definition: IsolationCorrectionTool.cxx:209
CP::IsolationCorrectionTool::m_apply_etaEDParPU_corr
bool m_apply_etaEDParPU_corr
Definition: IsolationCorrectionTool.h:108
IsolationCorrection.h
CP::IsolationCorrectionTool::m_corr_file
std::string m_corr_file
Definition: IsolationCorrectionTool.h:94
xAOD::Egamma_v1
Definition: Egamma_v1.h:56
CP::IsolationCorrectionTool::m_apply_etaEDParPU_mc_corr
bool m_apply_etaEDParPU_mc_corr
Definition: IsolationCorrectionTool.h:109
CP::SystematicVariation
Definition: SystematicVariation.h:47
SG::ReadHandleKey< xAOD::EventInfo >
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
CP::IsolationCorrectionTool::m_corr_ddshift_file
std::string m_corr_ddshift_file
Definition: IsolationCorrectionTool.h:95
CP::IsolationCorrectionTool::m_corr_etaEDPar_mc_corr_file
std::string m_corr_etaEDPar_mc_corr_file
Definition: IsolationCorrectionTool.h:101
CP::IsolationCorrectionTool::correctedCopy
virtual CP::CorrectionCode correctedCopy(const xAOD::Egamma &, xAOD::Egamma *&) override final
Definition: IsolationCorrectionTool.cxx:350
AsgMessaging.h
CP::IsolationCorrectionTool::m_trouble_categories
bool m_trouble_categories
Definition: IsolationCorrectionTool.h:114
CP::IsolationCorrectionTool::m_forcePartType
bool m_forcePartType
Definition: IsolationCorrectionTool.h:116
IIsolationCorrectionTool.h
CP::IsolationCorrectionTool::m_systDDonoff
CP::SystematicVariation m_systDDonoff
Definition: IsolationCorrectionTool.h:119
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition: IsolationType.h:26
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
CP::IsolationCorrectionTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: IsolationCorrectionTool.h:76
CP::IIsolationCorrectionTool
Definition: IIsolationCorrectionTool.h:22
CP::IsolationCorrectionTool::recommendedSystematics
virtual CP::SystematicSet recommendedSystematics() const override final
the list of all systematics this tool recommends to use
Definition: IsolationCorrectionTool.cxx:382
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CP::IsolationCorrectionTool::m_map_isotype_zetaPU
std::map< xAOD::Iso::IsolationType, std::unique_ptr< TGraph > > m_map_isotype_zetaPU
Definition: IsolationCorrectionTool.h:103
ReadHandle.h
Handle class for reading from StoreGate.
CP::IsolationCorrectionTool::GetEtaPointing
float GetEtaPointing(const xAOD::Egamma *input)
Definition: IsolationCorrectionTool.h:71
CP::IsolationCorrectionTool
Definition: IsolationCorrectionTool.h:27
EventInfo.h
CP::IsolationCorrectionTool::m_ddVersion
std::string m_ddVersion
Definition: IsolationCorrectionTool.h:106
CP::IsolationCorrectionTool::m_corr_etaEDParPU_file
std::string m_corr_etaEDParPU_file
Definition: IsolationCorrectionTool.h:100
CP::ISystematicsTool
Interface for all CP tools supporting systematic variations.
Definition: ISystematicsTool.h:32
asg::AsgMetadataTool
Base class for dual-use tools that provide file metadata access.
Definition: AsgMetadataTool.h:48
CP::IsolationCorrectionTool::GetPtCorrection
virtual float GetPtCorrection(const xAOD::Egamma &, xAOD::Iso::IsolationType) const override final
Definition: IsolationCorrectionTool.cxx:342
CP::IsolationCorrectionTool::m_isol_corr
IsolationCorrection * m_isol_corr
Definition: IsolationCorrectionTool.h:97
CP::IsolationCorrectionTool::m_useLogLogFit
bool m_useLogLogFit
Definition: IsolationCorrectionTool.h:115
AsgMetadataTool.h
ASG_TOOL_CLASS3
#define ASG_TOOL_CLASS3(CLASSNAME, INT1, INT2, INT3)
Definition: AsgToolMacros.h:85
CP::IsolationCorrectionTool::m_apply_dd
bool m_apply_dd
Definition: IsolationCorrectionTool.h:112
CP::IsolationCorrection::GetEtaPointing
float GetEtaPointing(const xAOD::Egamma *)
Definition: IsolationCorrection.cxx:372
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
CP::IReentrantSystematicsTool
interface for all CP tools supporting systematic variations within a reentrant algorithm
Definition: IReentrantSystematicsTool.h:58
CP::IsolationCorrectionTool::m_AFII_corr
bool m_AFII_corr
Definition: IsolationCorrectionTool.h:111
CP::IsolationCorrectionTool::m_correct_etcone
bool m_correct_etcone
Definition: IsolationCorrectionTool.h:113
CP::IsolationCorrection
Definition: PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/IsolationCorrections/IsolationCorrection.h:23
AsgTool.h
CP::IsolationCorrectionTool::initialize
virtual StatusCode initialize() override final
Definition: IsolationCorrectionTool.cxx:46
CP::IsolationCorrectionTool::m_apply_ddDefault
bool m_apply_ddDefault
Definition: IsolationCorrectionTool.h:112
CP::IsolationCorrectionTool::~IsolationCorrectionTool
virtual ASG_TOOL_CLASS3(IsolationCorrectionTool, IIsolationCorrectionTool, CP::ISystematicsTool, CP::IReentrantSystematicsTool) public ~IsolationCorrectionTool()
Definition: IsolationCorrectionTool.cxx:390