ATLAS Offline Software
IMETSystematicsTool.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // This is a copy from
8 // $Id: IMuonSmearingTool.h 299883 2014-03-28 17:34:16Z krasznaa $
9 
10 #ifndef METINTERFACE_IMETSYSTEMATICSTOOL_H
11 #define METINTERFACE_IMETSYSTEMATICSTOOL_H
12 
13 // Framework include(s):
14 #include "AsgTools/IAsgTool.h"
17 
18 // xAOD includes
23 #include "xAODJet/JetContainer.h"
24 
25 namespace met {
26 
27  namespace softCaloAffSyst {
28  const static CP::SystematicVariation MET_SoftCalo_ScaleUp ("MET_SoftCalo_Scale__1up" );
29  const static CP::SystematicVariation MET_SoftCalo_ScaleDown("MET_SoftCalo_Scale__1down");
30  const static CP::SystematicVariation MET_SoftCalo_Reso ("MET_SoftCalo_Reso");
31  }
32 
33  namespace softTrkAffSyst {
34  const static CP::SystematicVariation MET_SoftTrk_ScaleUp ("MET_SoftTrk_Scale__1up" );
35  const static CP::SystematicVariation MET_SoftTrk_ScaleDown("MET_SoftTrk_Scale__1down");
36  const static CP::SystematicVariation MET_SoftTrk_ResoPara ("MET_SoftTrk_ResoPara" );
37  const static CP::SystematicVariation MET_SoftTrk_ResoPerp ("MET_SoftTrk_ResoPerp" );
38  const static CP::SystematicVariation MET_SoftTrk_ResoCorr ("MET_SoftTrk_ResoCorr" );
39  }
40 
41  namespace jetTrkAffSyst {
42  const static CP::SystematicVariation MET_JetTrk_ScaleUp ("MET_JetTrk_Scale__1up" );
43  const static CP::SystematicVariation MET_JetTrk_ScaleDown ("MET_JetTrk_Scale__1down");
44  }
45 
46  enum SystType {
47  INVALID=-1,
50  JETTRK
51  };
52 
53  inline SystType getSystType(const CP::SystematicVariation & systematic)
54  {
55  if(systematic == met::softCaloAffSyst::MET_SoftCalo_ScaleUp ||
56  systematic == met::softCaloAffSyst::MET_SoftCalo_ScaleDown ||
57  systematic == met::softCaloAffSyst::MET_SoftCalo_Reso ) return SOFTCALO;
58  if(systematic == met::softTrkAffSyst::MET_SoftTrk_ScaleUp ||
59  systematic == met::softTrkAffSyst::MET_SoftTrk_ScaleDown ||
60  systematic == met::softTrkAffSyst::MET_SoftTrk_ResoPara ||
61  systematic == met::softTrkAffSyst::MET_SoftTrk_ResoPerp ) return SOFTTRK;
62  if(systematic == met::jetTrkAffSyst::MET_JetTrk_ScaleUp ||
63  systematic == met::jetTrkAffSyst::MET_JetTrk_ScaleDown ) return JETTRK;
64  return INVALID;
65  }
66 
67 }
68 
69 class IMETSystematicsTool : virtual public asg::IAsgTool,
70  virtual public CP::ISystematicsTool
71 {
72  // Declare the interface that the class provides
74 
75  public:
76  virtual ~IMETSystematicsTool() {}
77 
78  virtual void setRandomSeed(int seed) const = 0;
79 
80  //we don't inherit from CorrectionTool directly, but we are something close to that
83  ) const = 0;
86  ) const = 0;
87 
88  // virtual StatusCode applySystematicVariation(const CP::SystematicSet & set) = 0;
89  // virtual CP::SystematicSet affectingSystematics() const = 0;
90  // virtual CP::SystematicSet recommendedSystematics() const = 0;
91  // virtual bool isAffectedBySystematic(const CP::SystematicVariation & systematic) const = 0;
92 
93 }; // class IMETSystematicsTool
94 
95 #endif // METINTERFACE_IMETSYSTEMATICSTOOL_H
IMETSystematicsTool::correctedCopy
virtual CP::CorrectionCode correctedCopy(const xAOD::MissingET &met, xAOD::MissingET *&outputmet, const xAOD::MissingETAssociationHelper &helper) const =0
IMETSystematicsTool
Definition: IMETSystematicsTool.h:71
IMETSystematicsTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::MissingET &met, const xAOD::MissingETAssociationHelper &helper) const =0
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
met::JETTRK
@ JETTRK
Definition: IMETSystematicsTool.h:50
CP::SystematicVariation
Definition: SystematicVariation.h:47
ISystematicsTool.h
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
IMETSystematicsTool::~IMETSystematicsTool
virtual ~IMETSystematicsTool()
Definition: IMETSystematicsTool.h:76
met
Definition: IMETSignificance.h:24
met::getSystType
SystType getSystType(const CP::SystematicVariation &systematic)
Definition: IMETSystematicsTool.h:53
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
met::SOFTTRK
@ SOFTTRK
Definition: IMETSystematicsTool.h:49
MissingET.h
IMETSystematicsTool::setRandomSeed
virtual void setRandomSeed(int seed) const =0
xAOD::MissingETAssociationHelper
Definition: MissingETAssociationHelper.h:26
met::SOFTCALO
@ SOFTCALO
Definition: IMETSystematicsTool.h:48
EventInfo.h
met::SystType
SystType
Definition: IMETSystematicsTool.h:46
CP::ISystematicsTool
Interface for all CP tools supporting systematic variations.
Definition: ISystematicsTool.h:32
JetContainer.h
met::INVALID
@ INVALID
Definition: IMETSystematicsTool.h:47
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
CorrectionCode.h
MissingETAssociationMap.h
MissingETAssociationHelper.h