ATLAS Offline Software
IJetJvtEfficiency.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef JETANALYSISINTERFACES_IJETJVTEFFICIENCY_H_
6 #define JETANALYSISINTERFACES_IJETJVTEFFICIENCY_H_
7 
8 // EDM include(s):
9 #include "xAODJet/JetContainer.h"
10 
11 // Local include(s):
14 
15 // STL include(s):
16 #include <string>
17 #include <vector>
18 #include <map>
19 
20 namespace CP {
21 
22 enum JvtTagger {
23  Jvt,
26 };
27 
28 const static SystematicVariation NNJvtEfficiencyUp("JET_NNJvtEfficiency__1up");
29 const static SystematicVariation NNJvtEfficiencyDown("JET_NNJvtEfficiency__1down");
30 const static SystematicVariation fJvtEfficiencyUp("JET_fJvtEfficiency__1up");
31 const static SystematicVariation fJvtEfficiencyDown("JET_fJvtEfficiency__1down");
32 // for backwards compatibility
33 const static SystematicVariation JvtEfficiencyUp("JET_JvtEfficiency__1up");
34 const static SystematicVariation JvtEfficiencyDown("JET_JvtEfficiency__1down");
35 
36 
37 class IJetJvtEfficiency : public virtual CP::ISystematicsTool {
38 
39  //Declare the interface that the class provides
41 
42 public:
43 
44  virtual ~IJetJvtEfficiency() {}
45 
46  //Fills sf with the Jvt efficiency scale factor. If the jet is out of the defined jet pt
47  //range, or if the jet fails passesJvtCut, a value of 1 is returned.
49 
50  //Fills sf with the Jvt inefficiency scale factor. If the jet is out of the defined jet pt
51  //range, or if the jet fails passesJvtCut, a value of 1 is returned.
53 
54  //Returns the Jvt scale factor as a decoration on the jet.
56 
57  //Returns the Jvt scale factor as a decoration on the jet.
59 
60  //Returns the jvt scale factors as decorations on the input jets and fills in the combined scale factor into sf
62 
63  //Checks if the jet passes the conifgured WP.
64  //Uses maximum validity range by default, but there is a configurable parameter
65  virtual bool passesJvtCut(const xAOD::Jet& jet) const = 0;
66 
67  //Re-evaluates the classifier score (only required for NNJvt)
69 
70  //Checks if the jet lies in the pt and eta range where Jvt is valid.
71  virtual bool isInRange(const xAOD::Jet& jet) const = 0;
72 
73  //returns actual jvtthreshold
74  virtual float getJvtThresh() const = 0;
75 
76  //returns user-defined max pt if applicable (by default is the same as the max pt range of the histograms)
77  virtual float getUserPtMax() const = 0;
78 
79  //Applies truth matching decoration to determine appropriate scale factor type -- call before extracting SFs
81 
82 }; // class IJetJvtEfficiencyTool
83 
84 } // namespace CP
85 
86 #endif /* JETANALYSISINTERFACES_IJETJVTEFFICIENCY_H_ */
CP::Jvt
@ Jvt
Definition: IJetJvtEfficiency.h:23
CP::IJetJvtEfficiency::tagTruth
virtual StatusCode tagTruth(const xAOD::IParticleContainer *jets, const xAOD::IParticleContainer *truthJets)=0
CP::IJetJvtEfficiency::getInefficiencyScaleFactor
virtual CorrectionCode getInefficiencyScaleFactor(const xAOD::Jet &jet, float &sf)=0
CP::IJetJvtEfficiency::getEfficiencyScaleFactor
virtual CorrectionCode getEfficiencyScaleFactor(const xAOD::Jet &jet, float &sf)=0
CP::IJetJvtEfficiency::applyAllEfficiencyScaleFactor
virtual CorrectionCode applyAllEfficiencyScaleFactor(const xAOD::IParticleContainer *jets, float &sf)=0
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
ISystematicsTool.h
CP::NNJvt
@ NNJvt
Definition: IJetJvtEfficiency.h:24
CP::IJetJvtEfficiency::recalculateScores
virtual StatusCode recalculateScores(const xAOD::JetContainer &jets) const =0
CP::IJetJvtEfficiency::~IJetJvtEfficiency
virtual ~IJetJvtEfficiency()
Definition: IJetJvtEfficiency.h:44
CP::IJetJvtEfficiency::getJvtThresh
virtual float getJvtThresh() const =0
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
CP::IJetJvtEfficiency::passesJvtCut
virtual bool passesJvtCut(const xAOD::Jet &jet) const =0
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CP::IJetJvtEfficiency::applyInefficiencyScaleFactor
virtual CorrectionCode applyInefficiencyScaleFactor(const xAOD::Jet &jet)=0
CP::JvtTagger
JvtTagger
Definition: IJetJvtEfficiency.h:22
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
CP::fJvt
@ fJvt
Definition: IJetJvtEfficiency.h:25
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
CP::IJetJvtEfficiency::getUserPtMax
virtual float getUserPtMax() const =0
CP::IJetJvtEfficiency::isInRange
virtual bool isInRange(const xAOD::Jet &jet) const =0
CP::ISystematicsTool
Interface for all CP tools supporting systematic variations.
Definition: ISystematicsTool.h:32
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
JetContainer.h
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
CP::IJetJvtEfficiency
Definition: IJetJvtEfficiency.h:37
CP::IJetJvtEfficiency::applyEfficiencyScaleFactor
virtual CorrectionCode applyEfficiencyScaleFactor(const xAOD::Jet &jet)=0
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
CorrectionCode.h
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24