ATLAS Offline Software
CommonSmearingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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"
17 
18 // EDM include(s):
19 #include "xAODTau/TauJet.h"
22 
24 
25 // Local include(s):
26 #include "TauAnalysisTools/Enums.h"
29 
30 // ROOT include(s):
31 #include "TFile.h"
32 #include "TH1.h"
33 
34 // tauRecTools include(s)
36 
37 namespace TauAnalysisTools
38 {
39 
41  : public virtual ITauSmearingTool
42  , public asg::AsgMetadataTool
43 {
46 
47 public:
48 
49  CommonSmearingTool(const std::string& sName);
50 
52 
53  virtual StatusCode initialize();
54 
55  // CommonSmearingTool pure virtual public functionality
56  //__________________________________________________________________________
57 
59  virtual CP::CorrectionCode applyCorrection( xAOD::TauJet& xTau ) const;
60 
62  virtual CP::CorrectionCode correctedCopy( const xAOD::TauJet& xTau,
63  xAOD::TauJet*& xTauCopy) const;
64 
66  virtual bool isAffectedBySystematic( const CP::SystematicVariation& systematic ) const;
67 
70 
73 
76  virtual StatusCode applySystematicVariation ( const CP::SystematicSet& sSystematicSet);
77 
78 protected:
79 
80  std::string ConvertProngToString(const int iProngness) const;
81 
82  std::map<std::string, TH1*> m_mSF;
83  std::unordered_map < CP::SystematicSet, std::string > m_mSystematicSets;
85  std::map<std::string, int> m_mSystematics;
86  std::map<std::string, std::string> m_mSystematicsHistNames;
87 
88  // std::function<double> m_fX;
89  double (*m_fX)(const xAOD::TauJet& xTau);
90  double (*m_fY)(const xAOD::TauJet& xTau);
91 
92  template<class T>
93  void ReadInputs(TFile* fFile, std::map<std::string, T>& mMap);
94 
95  virtual CP::CorrectionCode getValue(const std::string& sHistName,
96  const xAOD::TauJet& xTau,
97  double& dEfficiencyScaleFactor) const;
98 
100 
101  std::string m_sInputFilePath;
102  bool m_bIsData;
108 
110 
114 
115 private:
116 
117  // Execute at each event
118  virtual StatusCode beginEvent();
119 
120 };
121 } // namespace TauAnalysisTools
122 
123 #endif // TAUANALYSISTOOLS_COMMONSMEARINGTOOL_H
TauAnalysisTools::CommonSmearingTool::ReadInputs
void ReadInputs(TFile *fFile, std::map< std::string, T > &mMap)
Definition: CommonSmearingTool.cxx:388
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:296
TauAnalysisTools::ITauSmearingTool
Definition: ITauSmearingTool.h:30
asg::AnaToolHandle< ITauToolBase >
Enums.h
TauAnalysisTools::CommonSmearingTool::m_sSystematicSet
const CP::SystematicSet * m_sSystematicSet
Definition: CommonSmearingTool.h:84
TauAnalysisTools::CommonSmearingTool::m_mSystematics
std::map< std::string, int > m_mSystematics
Definition: CommonSmearingTool.h:85
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
TauAnalysisTools::CommonSmearingTool::m_sRecommendedSystematics
CP::SystematicSet m_sRecommendedSystematics
Definition: CommonSmearingTool.h:113
TauAnalysisTools::CommonSmearingTool
Definition: CommonSmearingTool.h:43
CP::SystematicVariation
Definition: SystematicVariation.h:47
TauAnalysisTools::CommonSmearingTool::m_sInputFilePath
std::string m_sInputFilePath
Definition: CommonSmearingTool.h:101
TauAnalysisTools::CommonSmearingTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::TauJet &xTau) const
Apply the correction on a modifyable object.
Definition: CommonSmearingTool.cxx:148
TauAnalysisTools::CommonSmearingTool::~CommonSmearingTool
~CommonSmearingTool()
Definition: CommonSmearingTool.cxx:94
TauAnalysisTools::CommonSmearingTool::m_eCheckTruth
TruthMatchedParticleType m_eCheckTruth
Definition: CommonSmearingTool.h:111
TauAnalysisTools::CommonSmearingTool::m_bApplyFading
bool m_bApplyFading
Definition: CommonSmearingTool.h:105
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:312
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauAnalysisTools::CommonSmearingTool::m_sAffectingSystematics
CP::SystematicSet m_sAffectingSystematics
Definition: CommonSmearingTool.h:112
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
TauAnalysisTools::CommonSmearingTool::m_tTauCombinedTES
asg::AnaToolHandle< ITauToolBase > m_tTauCombinedTES
Definition: CommonSmearingTool.h:109
TauAnalysisTools::CommonSmearingTool::getValue
virtual CP::CorrectionCode getValue(const std::string &sHistName, const xAOD::TauJet &xTau, double &dEfficiencyScaleFactor) const
Definition: CommonSmearingTool.cxx:507
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:276
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:253
TauAnalysisTools::CommonSmearingTool::m_bApplyMVATESQualityCheck
bool m_bApplyMVATESQualityCheck
Definition: CommonSmearingTool.h:106
TauAnalysisTools::CommonSmearingTool::m_bIsData
bool m_bIsData
Definition: CommonSmearingTool.h:102
TauAnalysisTools::TruthMatchedParticleType
TruthMatchedParticleType
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:95
TauAnalysisTools::CommonSmearingTool::m_bIsConfigured
bool m_bIsConfigured
Definition: CommonSmearingTool.h:103
TauAnalysisTools::CommonSmearingTool::m_fX
double(* m_fX)(const xAOD::TauJet &xTau)
Definition: CommonSmearingTool.h:89
TauAnalysisTools::CommonSmearingTool::m_fY
double(* m_fY)(const xAOD::TauJet &xTau)
Definition: CommonSmearingTool.h:90
TauAnalysisTools::CommonSmearingTool::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: CommonSmearingTool.cxx:107
ITauToolBase.h
TauAnalysisTools::CommonSmearingTool::m_mSF
std::map< std::string, TH1 * > m_mSF
Definition: CommonSmearingTool.h:82
TauAnalysisTools::CommonSmearingTool::m_mSystematicSets
std::unordered_map< CP::SystematicSet, std::string > m_mSystematicSets
Definition: CommonSmearingTool.h:83
TauAnalysisTools::CommonSmearingTool::m_bSkipTruthMatchCheck
bool m_bSkipTruthMatchCheck
Definition: CommonSmearingTool.h:104
TauAnalysisTools::CommonSmearingTool::beginEvent
virtual StatusCode beginEvent()
Function called when a new events is loaded.
Definition: CommonSmearingTool.cxx:367
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
TauAnalysisTools::CommonSmearingTool::m_bApplyInsituCorrection
bool m_bApplyInsituCorrection
Definition: CommonSmearingTool.h:107
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:440
TauAnalysisTools::CommonSmearingTool::m_mSystematicsHistNames
std::map< std::string, std::string > m_mSystematicsHistNames
Definition: CommonSmearingTool.h:86
TauAnalysisTools::CommonSmearingTool::ConvertProngToString
std::string ConvertProngToString(const int iProngness) const
Definition: CommonSmearingTool.cxx:381
TauAnalysisTools::CommonSmearingTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const
returns: the list of all systematics this tool can be affected by
Definition: CommonSmearingTool.cxx:287
CorrectionCode.h
TruthParticle.h
HelperFunctions.h
ITauSmearingTool.h