00001 #ifndef IJETJVTEFFICIENCY_H_
00002 #define IJETJVTEFFICIENCY_H_
00003
00004
00005 #include "xAODJet/Jet.h"
00006
00007
00008 #include "PATInterfaces/CorrectionCode.h"
00009 #include "PATInterfaces/ISystematicsTool.h"
00010
00011
00012 #include <string>
00013 #include <vector>
00014 #include <map>
00015
00016 namespace CP {
00017
00018 const static SystematicVariation JvtEfficiencyUp("JET_JvtEfficiency__1up");
00019 const static SystematicVariation JvtEfficiencyDown("JET_JvtEfficiency__1down");
00020
00021 class IJetJvtEfficiency : public virtual CP::ISystematicsTool {
00022
00023
00024 ASG_TOOL_INTERFACE( CP::IJetJvtEfficiency )
00025
00026 public:
00027
00028 virtual ~IJetJvtEfficiency() {}
00029
00030
00031
00032 virtual CorrectionCode getEfficiencyScaleFactor(const xAOD::Jet& jet,float& sf ) = 0;
00033
00034
00035
00036 virtual CorrectionCode getInefficiencyScaleFactor(const xAOD::Jet& jet,float& sf ) = 0;
00037
00038
00039 virtual CorrectionCode applyEfficiencyScaleFactor( const xAOD::Jet& jet ) = 0;
00040
00041
00042 virtual CorrectionCode applyInefficiencyScaleFactor( const xAOD::Jet& jet ) = 0;
00043
00044
00045 virtual CorrectionCode applyAllEfficiencyScaleFactor(const xAOD::IParticleContainer *jets,float& sf) = 0;
00046
00047
00048 virtual CorrectionCode applyRandomDropping( const xAOD::Jet& jet ) = 0;
00049
00050
00051 virtual CorrectionCode applyAllRandomDropping( const xAOD::IParticleContainer *jets) = 0;
00052
00053
00054
00055
00056 virtual bool passesJvtCut(const xAOD::Jet& jet) = 0;
00057
00058
00059
00060 virtual bool isInRange(const xAOD::Jet& jet) = 0;
00061
00062
00063 virtual float getJvtThresh() const = 0;
00064
00065
00066 virtual float getUserPtMax() const = 0;
00067
00068
00069 virtual void setRandomSeed(int seed) = 0;
00070
00071 };
00072
00073 }
00074
00075 #endif