Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CommonSmearingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TAUANALYSISTOOLS_COMMONSMEARINGTOOL_H
6 #define TAUANALYSISTOOLS_COMMONSMEARINGTOOL_H
7 
8 /*
9  author: Dirk Duschinger
10  mail: dirk.duschinger@cern.ch
11  documentation in: ../README.rst
12 */
13 
14 // Framework include(s):
16 #include "AsgTools/AnaToolHandle.h"
18 
19 // EDM include(s):
20 #include "xAODTau/TauJet.h"
23 
25 
26 // Local include(s):
27 #include "TauAnalysisTools/Enums.h"
30 
31 // ROOT include(s):
32 #include "TFile.h"
33 #include "TH1.h"
34 
35 // tauRecTools include(s)
37 
38 namespace TauAnalysisTools
39 {
40 
42  : public virtual ITauSmearingTool
43  , public asg::AsgMetadataTool
44 {
47 
48 public:
49 
50  CommonSmearingTool(const std::string& sName);
51 
53 
54  virtual StatusCode initialize();
55 
56  // CommonSmearingTool pure virtual public functionality
57  //__________________________________________________________________________
58 
60  virtual CP::CorrectionCode applyCorrection( xAOD::TauJet& xTau ) const;
61 
63  virtual CP::CorrectionCode correctedCopy( const xAOD::TauJet& xTau,
64  xAOD::TauJet*& xTauCopy) const;
65 
67  virtual bool isAffectedBySystematic( const CP::SystematicVariation& systematic ) const;
68 
71 
74 
77  virtual StatusCode applySystematicVariation ( const CP::SystematicSet& sSystematicSet);
78 
79 protected:
80 
81  std::string ConvertProngToString(const int iProngness) const;
82 
83  std::map<std::string, TH1*> m_mSF;
84  std::unordered_map < CP::SystematicSet, std::string > m_mSystematicSets;
86  std::map<std::string, int> m_mSystematics;
87  std::map<std::string, std::string> m_mSystematicsHistNames;
88 
89  // std::function<double> m_fX;
90  double (*m_fX)(const xAOD::TauJet& xTau);
91  double (*m_fY)(const xAOD::TauJet& xTau);
92 
93  template<class T>
94  void ReadInputs(TFile* fFile, std::map<std::string, T>& mMap);
95 
96  virtual CP::CorrectionCode getValue(const std::string& sHistName,
97  const xAOD::TauJet& xTau,
98  double& dEfficiencyScaleFactor) const;
99 
100  void generateSystematicSets();
101 
102  Gaudi::Property<std::string> m_sInputFilePath{this, "InputFilePath", ""};
103  Gaudi::Property<bool> m_bSkipTruthMatchCheck{this, "SkipTruthMatchCheck", false};
104  Gaudi::Property<bool> m_bApplyFading{this, "ApplyFading", true};
105  Gaudi::Property<bool> m_bMVATESQualityCheck{this, "MVATESQualityCheck", true};
106  Gaudi::Property<bool> m_bApplyInsituCorrection{this, "ApplyInsituCorrection", true};
107 
108  bool m_bIsData;
110 
112 
116 
117 private:
118 
119  // Execute at each event
120  virtual StatusCode beginEvent();
121 
122 };
123 } // namespace TauAnalysisTools
124 
125 #endif // TAUANALYSISTOOLS_COMMONSMEARINGTOOL_H
TauAnalysisTools::CommonSmearingTool::m_bApplyFading
Gaudi::Property< bool > m_bApplyFading
Definition: CommonSmearingTool.h:104
TauAnalysisTools::CommonSmearingTool::ReadInputs
void ReadInputs(TFile *fFile, std::map< std::string, T > &mMap)
Definition: CommonSmearingTool.cxx:376
TauAnalysisTools
Definition: TruthCollectionMakerTau.h:16
TauAnalysisTools::CommonSmearingTool::recommendedSystematics
virtual CP::SystematicSet recommendedSystematics() const
returns: the list of all systematics this tool recommends to use
Definition: CommonSmearingTool.cxx:284
TauAnalysisTools::ITauSmearingTool
Definition: ITauSmearingTool.h:30
PropertyWrapper.h
asg::AnaToolHandle< ITauToolBase >
TauAnalysisTools::CommonSmearingTool::m_bSkipTruthMatchCheck
Gaudi::Property< bool > m_bSkipTruthMatchCheck
Definition: CommonSmearingTool.h:103
Enums.h
TauAnalysisTools::CommonSmearingTool::m_sSystematicSet
const CP::SystematicSet * m_sSystematicSet
Definition: CommonSmearingTool.h:85
TauAnalysisTools::CommonSmearingTool::m_mSystematics
std::map< std::string, int > m_mSystematics
Definition: CommonSmearingTool.h:86
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
TauAnalysisTools::CommonSmearingTool::m_sRecommendedSystematics
CP::SystematicSet m_sRecommendedSystematics
Definition: CommonSmearingTool.h:115
TauAnalysisTools::CommonSmearingTool
Definition: CommonSmearingTool.h:44
TauAnalysisTools::CommonSmearingTool::m_bApplyInsituCorrection
Gaudi::Property< bool > m_bApplyInsituCorrection
Definition: CommonSmearingTool.h:106
CP::SystematicVariation
Definition: SystematicVariation.h:47
TauAnalysisTools::CommonSmearingTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::TauJet &xTau) const
Apply the correction on a modifyable object.
Definition: CommonSmearingTool.cxx:143
TauAnalysisTools::CommonSmearingTool::m_sInputFilePath
Gaudi::Property< std::string > m_sInputFilePath
Definition: CommonSmearingTool.h:102
TauAnalysisTools::CommonSmearingTool::~CommonSmearingTool
~CommonSmearingTool()
Definition: CommonSmearingTool.cxx:89
TauAnalysisTools::CommonSmearingTool::m_eCheckTruth
TruthMatchedParticleType m_eCheckTruth
Definition: CommonSmearingTool.h:113
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TauAnalysisTools::CommonSmearingTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &sSystematicSet)
configure this tool for the given list of systematic variations.
Definition: CommonSmearingTool.cxx:300
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauAnalysisTools::CommonSmearingTool::m_sAffectingSystematics
CP::SystematicSet m_sAffectingSystematics
Definition: CommonSmearingTool.h:114
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
TauAnalysisTools::CommonSmearingTool::m_tTauCombinedTES
asg::AnaToolHandle< ITauToolBase > m_tTauCombinedTES
Definition: CommonSmearingTool.h:111
TauAnalysisTools::CommonSmearingTool::getValue
virtual CP::CorrectionCode getValue(const std::string &sHistName, const xAOD::TauJet &xTau, double &dEfficiencyScaleFactor) const
Definition: CommonSmearingTool.cxx:495
TauCombinedTES.h
AnaToolHandle.h
TauAnalysisTools::CommonSmearingTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const CP::SystematicVariation &systematic) const
returns: whether this tool is affected by the given systematics
Definition: CommonSmearingTool.cxx:264
TauAnalysisTools::CommonSmearingTool::correctedCopy
virtual CP::CorrectionCode correctedCopy(const xAOD::TauJet &xTau, xAOD::TauJet *&xTauCopy) const
Create a corrected copy from a constant tau.
Definition: CommonSmearingTool.cxx:241
TauAnalysisTools::CommonSmearingTool::m_bIsData
bool m_bIsData
Definition: CommonSmearingTool.h:108
TauAnalysisTools::TruthMatchedParticleType
TruthMatchedParticleType
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:96
TauAnalysisTools::CommonSmearingTool::m_bIsConfigured
bool m_bIsConfigured
Definition: CommonSmearingTool.h:109
TauAnalysisTools::CommonSmearingTool::m_fX
double(* m_fX)(const xAOD::TauJet &xTau)
Definition: CommonSmearingTool.h:90
TauAnalysisTools::CommonSmearingTool::m_fY
double(* m_fY)(const xAOD::TauJet &xTau)
Definition: CommonSmearingTool.h:91
TauAnalysisTools::CommonSmearingTool::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: CommonSmearingTool.cxx:102
ITauToolBase.h
TauAnalysisTools::CommonSmearingTool::m_mSF
std::map< std::string, TH1 * > m_mSF
Definition: CommonSmearingTool.h:83
TauAnalysisTools::CommonSmearingTool::m_mSystematicSets
std::unordered_map< CP::SystematicSet, std::string > m_mSystematicSets
Definition: CommonSmearingTool.h:84
TauAnalysisTools::CommonSmearingTool::beginEvent
virtual StatusCode beginEvent()
Function called when a new events is loaded.
Definition: CommonSmearingTool.cxx:355
asg::AsgMetadataTool
Base class for dual-use tools that provide file metadata access.
Definition: AsgMetadataTool.h:48
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
TauJet.h
AsgMetadataTool.h
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
TauAnalysisTools::CommonSmearingTool::CommonSmearingTool
CommonSmearingTool(const std::string &sName)
Create a proper constructor for Athena.
Definition: CommonSmearingTool.cxx:74
TauAnalysisTools::CommonSmearingTool::generateSystematicSets
void generateSystematicSets()
Definition: CommonSmearingTool.cxx:428
TauAnalysisTools::CommonSmearingTool::m_mSystematicsHistNames
std::map< std::string, std::string > m_mSystematicsHistNames
Definition: CommonSmearingTool.h:87
TauAnalysisTools::CommonSmearingTool::ConvertProngToString
std::string ConvertProngToString(const int iProngness) const
Definition: CommonSmearingTool.cxx:369
TauAnalysisTools::CommonSmearingTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const
returns: the list of all systematics this tool can be affected by
Definition: CommonSmearingTool.cxx:275
CorrectionCode.h
TauAnalysisTools::CommonSmearingTool::m_bMVATESQualityCheck
Gaudi::Property< bool > m_bMVATESQualityCheck
Definition: CommonSmearingTool.h:105
TruthParticle.h
HelperFunctions.h
ITauSmearingTool.h