00001
00002 #ifndef TAUANALYSISTOOLS_TAUEFFICIENCYCONTJETIDTOOL_H
00003 #define TAUANALYSISTOOLS_TAUEFFICIENCYCONTJETIDTOOL_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "TauAnalysisTools/CommonEfficiencyTool.h"
00017
00018 namespace TauAnalysisTools
00019 {
00020
00021 class TauEfficiencyContJetIDTool : public CommonEfficiencyTool
00022 {
00023 ASG_TOOL_CLASS( TauEfficiencyContJetIDTool,
00024 TauAnalysisTools::ITauEfficiencyCorrectionsTool )
00025
00026 public:
00027
00028 TauEfficiencyContJetIDTool(std::string sName);
00029
00030 ~TauEfficiencyContJetIDTool();
00031
00032 StatusCode initialize();
00033
00034 CP::CorrectionCode getEfficiencyScaleFactor(const xAOD::TauJet& xTau,
00035 double& dEfficiencyScaleFactor);
00036 CP::CorrectionCode applyEfficiencyScaleFactor(const xAOD::TauJet& xTau);
00037
00038 bool isAffectedBySystematic( const CP::SystematicVariation& systematic ) const;
00039 CP::SystematicSet affectingSystematics() const;
00040 CP::SystematicSet recommendedSystematics() const;
00041 CP::SystematicCode applySystematicVariation ( const CP::SystematicSet& sSystematicSet);
00042
00043
00044 private:
00045 std::string ConvertEtaToString(const float& fEta);
00046
00047 CP::CorrectionCode getTotalSF(const xAOD::TauJet& xTau,
00048 double& dEfficiencyScaleFactor);
00049 CP::CorrectionCode getTotalSFInclusiveEta(const xAOD::TauJet& xTau,
00050 double& dEfficiencyScaleFactor);
00051
00052 CP::CorrectionCode getBDTbinnedSF(double& val,
00053 int prongness,
00054 const double& BDT);
00055 CP::CorrectionCode getBDTbinnedSF(double& val,
00056 int prongness,
00057 const double& eta,
00058 const double& BDT);
00059
00060 CP::CorrectionCode getBDTbinnedSFSysUnc(double& val,
00061 int prongness,
00062 const double& BDT);
00063 CP::CorrectionCode getBDTbinnedSFSysUnc(double& val,
00064 int prongness,
00065 const double& eta,
00066 const double& BDT);
00067 CP::CorrectionCode getBDTbinnedSFStatUnc(double& val,
00068 int prongness,
00069 const double& BDT);
00070 CP::CorrectionCode getBDTbinnedSFStatUnc(double& val,
00071 int prongness,
00072 const double& eta,
00073 const double& BDT);
00074
00075 CP::CorrectionCode GetIDValue(double& val,
00076 const std::string& sWorkingPoint,
00077 const float& fBDT);
00078
00079 std::string ConvertSystematicToString(int iContSysType);
00080 std::string ConvertDirectionToString(const int iSysDirection);
00081
00082
00083 int m_iSysDirection;
00084
00085 };
00086 }
00087
00088 #endif // TAUANALYSISTOOLS_TAUEFFICIENCYCONTJETIDTOOL_H