ATLAS Offline Software
InSituCalibStep.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // InSituCalibStep.h
8 // Header file for class InSituCalibStep
9 // Author: Fabrice Balli <fabrice.balli@cern.ch>
11 #ifndef JETCALIBTOOLS_INSITUCALIBSTEP_H
12 #define JETCALIBTOOLS_INSITUCALIBSTEP_H 1
13 
14 #include <string.h>
15 
16 #include <TString.h>
17 #include <TEnv.h>
18 
19 #include "AsgTools/AsgTool.h"
20 #include "AsgTools/AsgToolMacros.h"
21 #include "AsgTools/ToolHandle.h"
24 
26 
32 
34  : public asg::AsgTool,
35  virtual public IJetCalibStep {
37 
38 public:
40  InSituCalibStep(const std::string& name = "InSituCalibStep");
41 
42  virtual StatusCode initialize() override;
43  virtual StatusCode calibrate(xAOD::JetContainer&) const override;
44 
45 
46 private:
47 
48  Gaudi::Property<bool> m_CalibrateMC {this, "CalibrateMC", false, "force Insitu step for MC sample"};
49  Gaudi::Property<bool> m_isMC {this, "isMC", false, "isMC"};
50 
51  Gaudi::Property<std::string> m_jetInScale {this, "InScale", "JetGSCScaleMomentum", "Starting jet scale"};
52  Gaudi::Property<std::string> m_jetOutScale {this, "OutScale", "JetInsituScaleMomentum", "Ending jet scale"};
53  // retrieves in situ correction
54  StatusCode getInsituCorr(const xAOD::Jet& jet, JetHelper::JetContext& jc, unsigned int periodIndex, double &scale) const;
55  // Relative calibration (derived with eta intercalibration)
56  //ToolHandle<JetHelper::IVarTool> m_histTool_EtaInter{this, "HistoReaderEtaInter", "HistoInput2D", "Instance of HistoInput2D for reading histogram"};
57  ToolHandleArray<JetHelper::IVarTool> m_histTool_EtaInter{this, "HistoReaderEtaInter", {}, "Instance of HistoInput2D for reading histogram"};
58  // Absolute calibration (derived with |eta| < 0.8)
59  //ToolHandle<JetHelper::IVarTool> m_histTool_Abs{this, "HistoReaderAbs", "HistoInput1D", "Instance of HistoInput1D for reading histogram"};
60  ToolHandleArray<JetHelper::IVarTool> m_histTool_Abs{this, "HistoReaderAbs", {}, "Instance of HistoInput1D for reading histogram"};
61  // needed for the combined histogram: pT
62  ToolHandle<JetHelper::IVarTool> m_vartool1 {this, "vartool1", "VarTool", "InputVariable instance" };
63  // needed for the combined histogram: eta
64  ToolHandle<JetHelper::IVarTool> m_vartool2 {this, "vartool2", "VarTool", "InputVariable instance" };
65  // vector of run numbers
66  Gaudi::Property<std::vector<unsigned int> > m_RunNumBoundaries{this, "RunNumbers", {} ,""};
67  // combine Relative and Absolute calibrations
68  std::unique_ptr<const TH2> combineCalibration(const TH2* h2d, const TH1* h);
69  // combined in situ correction histogram
70  std::vector< std::unique_ptr<const TH2> > m_insituCorr_vec;
71  // maximum eta of combined histogram
72  std::vector<double> m_etaMax_vec;
73  // minimum eta of combined histogram
74  std::vector<double> m_etaMin_vec;
75  // maximum pt of combined histogram
76  std::vector<double> m_ptMax_vec;
77  // minimum pt of combined histogram
78  std::vector<double> m_ptMin_vec;
79  //ReadHandleKey for event info
80  SG::ReadHandleKey<xAOD::EventInfo> m_evtInfoKey{this, "EventInfoKey", "EventInfo"};
81  // Method to get runNumber
82  StatusCode retrieveEventInfo(unsigned int &r) const;
83 
84 
85 };
86 #endif
beamspotman.r
def r
Definition: beamspotman.py:674
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
PropertyWrapper.h
InputVariable.h
InSituCalibStep
Definition: InSituCalibStep.h:35
InSituCalibStep::m_RunNumBoundaries
Gaudi::Property< std::vector< unsigned int > > m_RunNumBoundaries
Definition: InSituCalibStep.h:66
JetHelper::JetContext
Class JetContext Designed to read AOD information related to the event, N vertices,...
Definition: JetContext.h:24
InSituCalibStep::m_isMC
Gaudi::Property< bool > m_isMC
Definition: InSituCalibStep.h:49
InSituCalibStep::m_jetInScale
Gaudi::Property< std::string > m_jetInScale
Definition: InSituCalibStep.h:51
InSituCalibStep::retrieveEventInfo
StatusCode retrieveEventInfo(unsigned int &r) const
Definition: InSituCalibStep.cxx:101
HistoInputBase.h
SG::ReadHandleKey< xAOD::EventInfo >
IVarTool.h
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
InSituCalibStep::m_insituCorr_vec
std::vector< std::unique_ptr< const TH2 > > m_insituCorr_vec
Definition: InSituCalibStep.h:70
IJetCalibStep.h
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
InSituCalibStep::m_etaMax_vec
std::vector< double > m_etaMax_vec
Definition: InSituCalibStep.h:72
InSituCalibStep::m_vartool1
ToolHandle< JetHelper::IVarTool > m_vartool1
Definition: InSituCalibStep.h:62
InSituCalibStep::InSituCalibStep
InSituCalibStep(const std::string &name="InSituCalibStep")
Constructor with parameters:
Definition: InSituCalibStep.cxx:15
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InSituCalibStep::m_vartool2
ToolHandle< JetHelper::IVarTool > m_vartool2
Definition: InSituCalibStep.h:64
InSituCalibStep::calibrate
virtual StatusCode calibrate(xAOD::JetContainer &) const override
Apply calibration to a jet container.
Definition: InSituCalibStep.cxx:62
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
IJetCalibTool.h
InSituCalibStep::m_CalibrateMC
Gaudi::Property< bool > m_CalibrateMC
Definition: InSituCalibStep.h:48
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
InSituCalibStep::m_jetOutScale
Gaudi::Property< std::string > m_jetOutScale
Definition: InSituCalibStep.h:52
EventInfo.h
IJetCalibStep
Definition: IJetCalibStep.h:27
InSituCalibStep::m_histTool_Abs
ToolHandleArray< JetHelper::IVarTool > m_histTool_Abs
Definition: InSituCalibStep.h:60
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
InSituCalibStep::m_etaMin_vec
std::vector< double > m_etaMin_vec
Definition: InSituCalibStep.h:74
h
InSituCalibStep::m_ptMin_vec
std::vector< double > m_ptMin_vec
Definition: InSituCalibStep.h:78
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
AsgToolMacros.h
InSituCalibStep::getInsituCorr
StatusCode getInsituCorr(const xAOD::Jet &jet, JetHelper::JetContext &jc, unsigned int periodIndex, double &scale) const
Definition: InSituCalibStep.cxx:118
InSituCalibStep::m_evtInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_evtInfoKey
Definition: InSituCalibStep.h:80
ToolHandle.h
InSituCalibStep::combineCalibration
std::unique_ptr< const TH2 > combineCalibration(const TH2 *h2d, const TH1 *h)
Definition: InSituCalibStep.cxx:133
AsgTool.h
InSituCalibStep::m_histTool_EtaInter
ToolHandleArray< JetHelper::IVarTool > m_histTool_EtaInter
Definition: InSituCalibStep.h:57
InSituCalibStep::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: InSituCalibStep.cxx:24
InSituCalibStep::m_ptMax_vec
std::vector< double > m_ptMax_vec
Definition: InSituCalibStep.h:76