00001
00003
00005
00006 #ifndef CPIBTAGGINGEFFICIENCYTOOL_H
00007 #define CPIBTAGGINGEFFICIENCYTOOL_H
00008
00009 #include "AsgTools/IAsgTool.h"
00010 #include "PATInterfaces/CorrectionCode.h"
00011 #include "PATInterfaces/SystematicCode.h"
00012 #include "PATInterfaces/SystematicSet.h"
00013
00014 #include "xAODJet/Jet.h"
00015
00016 #include <string>
00017 #include <set>
00018
00019 #include "CalibrationDataInterface/CalibrationDataInterfaceROOT.h"
00020
00021 class IBTaggingEfficiencyTool : virtual public asg::IAsgTool {
00022
00024 ASG_TOOL_INTERFACE( IBTagEfficiencyTool )
00025
00026 public:
00027
00028
00029 virtual CP::CorrectionCode getScaleFactor( const xAOD::Jet & jet,
00030 float & sf) const =0 ;
00031
00032 virtual CP::CorrectionCode getEfficiency( const xAOD::Jet & jet,
00033 float & eff) const=0;
00034
00035 virtual CP::CorrectionCode getInefficiency( const xAOD::Jet & jet,
00036 float & eff) const=0;
00037
00038 virtual CP::CorrectionCode getInefficiencyScaleFactor( const xAOD::Jet & jet,
00039 float & sf) const=0;
00040
00041 virtual CP::CorrectionCode getMCEfficiency( const xAOD::Jet & jet,
00042 float & eff) const=0;
00043
00044
00045 virtual const std::map<CP::SystematicVariation, std::vector<std::string> > listSystematics() const = 0;
00046
00047 virtual std::string getTaggerName() const = 0;
00048
00049 virtual std::string getOperatingPoint() const = 0;
00050
00051 virtual std::string getJetAuthor() const = 0;
00052
00053 virtual CP::SystematicCode applySystematicVariation(const CP::SystematicSet & set) = 0;
00054
00055 virtual CP::SystematicSet affectingSystematics() const = 0;
00056
00057 virtual CP::SystematicSet recommendedSystematics() const = 0;
00058
00059 virtual bool isAffectedBySystematic(const CP::SystematicVariation & systematic) const = 0;
00060
00061 virtual bool setMapIndex(const std::string& flavour, unsigned int index) = 0;
00062
00063
00064 };
00065
00066 #endif // CPIBTAGGINGEFFICIENCYTOOL_H