ATLAS Offline Software
MCJESInputBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef JETTOOLHELPERS_MCJESINPUTBASE_H
6 #define JETTOOLHELPERS_MCJESINPUTBASE_H
7 
8 #include <memory>
9 #include "TH1.h"
10 #include "TH2.h"
11 #include "TString.h"
12 #include "TEnv.h"
13 #include "TObjString.h"
14 #include "TAxis.h"
15 
17 #include "AsgTools/AsgTool.h"
19 
20 namespace JetHelper {
21 
24 
25 class MCJESInputBase :public asg::AsgTool, virtual public IVarTool
26 {
28 
29  public:
31  MCJESInputBase(const std::string& myname);
33  virtual ~MCJESInputBase() {};
35  std::string getFileName() const { return m_fileName; };
37  Gaudi::Property< std::string > m_corrName { this, "corrName", "JES", "MCJES input" };
38 
39  private:
40  // support functions to extract information from text files
41  double getLogPolN(const double *factors, double x) const;
42  std::vector<double> VectorizeD(const TString& str, TString sep=" ") const;
43  int getEtaBin(double eta_det) const;
45  Gaudi::Property< std::string > m_fileName { this, "inputfile", "/afs/cern.ch/work/s/stapiaar/JetDev4/athena/JetToolHelpers/data/file_JES.config", "File containing histograms" };
47  Gaudi::Property< std::string > m_jetAlgo { this, "jetAlgo", "AntiKt4EMPFlow", "jet collection" };
48 
49  protected:
50  std::unique_ptr<TEnv> m_config;
51  unsigned int m_nPar; // number of parameters in config file
52  const static unsigned int s_nEtaBins = 90;
53  const static unsigned int s_nParMax = 9;
57  TAxis * m_etaBinAxis;
58 
62  double getJES(const double X, const double Y=0) const;
64  double getEtaCorr(const double X, const double Y=0) const;
66  double getEmaxJES(const double Y) const;
67 };
68 } // namespace JetHelper
69 #endif
JetHelper::MCJESInputBase::m_etaCorrFactors
double m_etaCorrFactors[s_nEtaBins][s_nParMax]
Definition: MCJESInputBase.h:55
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
PropertyWrapper.h
JetHelper::MCJESInputBase::m_config
std::unique_ptr< TEnv > m_config
Definition: MCJESInputBase.h:50
JetHelper::MCJESInputBase::s_nParMax
static const unsigned int s_nParMax
Definition: MCJESInputBase.h:53
JetHelper::MCJESInputBase::m_fileName
Gaudi::Property< std::string > m_fileName
name of the text file
Definition: MCJESInputBase.h:45
JetHelper::MCJESInputBase::getJES
double getJES(const double X, const double Y=0) const
return MCJES calibration factor
JetHelper
A tool interface class for tools implementing the IInputVariable interface.
Definition: IInputVariable.h:18
JetHelper::MCJESInputBase::getEtaCorr
double getEtaCorr(const double X, const double Y=0) const
return Eta correction
IVarTool.h
x
#define x
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
JetHelper::MCJESInputBase::getEtaBin
int getEtaBin(double eta_det) const
JetHelper::MCJESInputBase::m_jetAlgo
Gaudi::Property< std::string > m_jetAlgo
jet collection to be calibrated
Definition: MCJESInputBase.h:47
JetHelper::MCJESInputBase::VectorizeD
std::vector< double > VectorizeD(const TString &str, TString sep=" ") const
JetHelper::MCJESInputBase::m_corrName
Gaudi::Property< std::string > m_corrName
This property allow the user to choose the type of correction.
Definition: MCJESInputBase.h:37
JetHelper::IVarTool
Definition: IVarTool.h:23
Monitored::Y
@ Y
Definition: HistogramFillerUtils.h:24
grepfile.sep
sep
Definition: grepfile.py:38
JetHelper::MCJESInputBase::readMCJESFromText
bool readMCJESFromText()
This function fill the ntuples with calibration factors.
JetHelper::MCJESInputBase::m_energyFreezeJES
double m_energyFreezeJES[s_nEtaBins]
Definition: MCJESInputBase.h:56
JetHelper::MCJESInputBase::m_JESFactors
double m_JESFactors[s_nEtaBins][s_nParMax]
Definition: MCJESInputBase.h:54
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
JetHelper::MCJESInputBase::m_nPar
unsigned int m_nPar
Definition: MCJESInputBase.h:51
JetHelper::MCJESInputBase::s_nEtaBins
static const unsigned int s_nEtaBins
Definition: MCJESInputBase.h:52
JetHelper::MCJESInputBase
Class MCJESInputBase This class implement common function used by Text file input
Definition: MCJESInputBase.h:26
str
Definition: BTagTrackIpAccessor.cxx:11
JetHelper::MCJESInputBase::~MCJESInputBase
virtual ~MCJESInputBase()
Destructor.
Definition: MCJESInputBase.h:33
JetHelper::MCJESInputBase::getLogPolN
double getLogPolN(const double *factors, double x) const
JetHelper::MCJESInputBase::getEmaxJES
double getEmaxJES(const double Y) const
return Emax
AsgTool.h
JetHelper::MCJESInputBase::getFileName
std::string getFileName() const
This function return the name of the file with the MCJES factors.
Definition: MCJESInputBase.h:35
JetHelper::MCJESInputBase::MCJESInputBase
MCJESInputBase(const std::string &myname)
Constructor for standalone usage.
JetHelper::MCJESInputBase::m_etaBinAxis
TAxis * m_etaBinAxis
Definition: MCJESInputBase.h:57