00001 // Dear emacs, this is -*- c++ -*- 00002 #ifndef TAUANALYSISTOOLS_TAUSMEARINGTOOL_H 00003 #define TAUANALYSISTOOLS_TAUSMEARINGTOOL_H 00004 00005 /* 00006 author: Dirk Duschinger 00007 mail: dirk.duschinger@cern.ch 00008 documentation in: ../README.rst 00009 or 00010 https://svnweb.cern.ch/trac/atlasoff/browser/PhysicsAnalysis/TauID/TauAnalysisTools/tags/TauAnalysisTools-<tag>/README.rst 00011 or 00012 https://svnweb.cern.ch/trac/atlasoff/browser/PhysicsAnalysis/TauID/TauAnalysisTools/trunk/README.rst 00013 */ 00014 00015 // Framework include(s): 00016 #include "AsgTools/AsgTool.h" 00017 #include "AsgTools/AnaToolHandle.h" 00018 00019 // Local include(s): 00020 #include "TauAnalysisTools/Enums.h" 00021 #include "TauAnalysisTools/ITauSmearingTool.h" 00022 #include "TauAnalysisTools/CommonSmearingTool.h" 00023 00024 namespace TauAnalysisTools 00025 { 00026 00027 class TauSmearingTool 00028 : public asg::AsgTool 00029 , public virtual ITauSmearingTool 00030 { 00032 ASG_TOOL_CLASS( TauSmearingTool, TauAnalysisTools::ITauSmearingTool ) 00033 00034 public: 00036 TauSmearingTool( const std::string& sName ); 00037 00038 ~TauSmearingTool(); 00039 00041 virtual StatusCode initialize(); 00042 00044 virtual CP::CorrectionCode applyCorrection( xAOD::TauJet& xTau ); 00046 virtual CP::CorrectionCode correctedCopy( const xAOD::TauJet& input, 00047 xAOD::TauJet*& output ); 00048 00050 virtual bool isAffectedBySystematic( const CP::SystematicVariation& systematic ) const; 00051 00053 virtual CP::SystematicSet affectingSystematics() const; 00054 00056 virtual CP::SystematicSet recommendedSystematics() const; 00057 00058 virtual CP::SystematicCode applySystematicVariation( const CP::SystematicSet& systConfig ); 00059 00060 private: 00061 asg::AnaToolHandle<ITauSmearingTool> m_tCommonSmearingTool; 00062 std::string m_sInputFilePath; 00063 std::string m_sRecommendationTag; 00064 bool m_bIsData; 00065 bool m_bSkipTruthMatchCheck; 00066 bool m_bApplyFading; 00067 00068 bool m_bApplyMVATES; 00069 bool m_bApplyMVATESQualityCheck; 00070 bool m_bApplyCombinedTES; 00071 00072 }; // class TauSmearingTool 00073 00074 } // namespace TauAnalysisTools 00075 00076 #endif // TAUANALYSISTOOLS_TAUSMEARINGTOOL_H