ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
Jet
JetCalibTools
JetCalibTools
CalibrationMethods
EtaJESCorrection.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 JETCALIBTOOLS_ETAJESCORRECTION_H
6
#define JETCALIBTOOLS_ETAJESCORRECTION_H 1
7
8
/* Implementation of EtaJESCorrection class
9
* This class will apply the absolute EtaJES correction
10
*
11
* Author: Joe Taenzer (joseph.taenzer@cern.ch)
12
* Date: August 19 2013
13
*/
14
15
#include "TH1.h"
16
#include "TString.h"
17
#include <string>
18
#include <vector>
19
#include <memory>
20
class
TEnv;
21
class
TAxis;
22
23
24
#include "
JetCalibTools/JetCalibrationStep.h
"
25
26
class
EtaJESCorrection
27
:
virtual
public
::JetCalibrationStep
28
{
29
30
public
:
31
EtaJESCorrection
();
32
EtaJESCorrection
(
const
std::string& name, TEnv * config, TString jetAlgo, TString calibAreaTag,
bool
mass,
bool
dev);
33
virtual
~EtaJESCorrection
();
34
35
virtual
StatusCode
initialize
()
override
;
36
virtual
StatusCode
calibrate
(
xAOD::Jet
&
jet
,
JetEventInfo
&)
const override
;
37
38
private
:
39
double
getJES
(
double
E_uncorr,
double
eta_det)
const
;
40
double
getLowPtJES
(
double
E_uncorr,
double
eta_det)
const
;
41
double
getEtaCorr
(
double
E_corr,
double
eta_det)
const
;
42
double
getMassCorr
(
double
E_corr,
double
eta_det)
const
;
43
double
getLogPolN
(
const
double
*factors,
double
x
)
const
;
44
double
getLogPolNSlope
(
const
double
*factors,
double
x
)
const
;
45
double
getSplineCorr
(
const
int
etaBin,
double
E)
const
;
46
double
getSplineSlope
(
const
int
ieta,
const
double
minE)
const
;
47
void
loadSplineHists
(
const
TString & fileName,
const
std::string &etajes_name =
"etaJes"
);
48
49
int
getEtaBin
(
double
eta_det)
const
;
50
51
private
:
52
TEnv *
m_config
{};
53
TString
m_jetAlgo
;
54
TString
m_calibAreaTag
;
55
bool
m_mass
{};
56
bool
m_dev
{};
57
bool
m_freezeJESatHighE
{};
58
bool
m_isSpline
{};
59
60
TString
m_jesDesc
;
61
double
m_minPt_JES
{},
m_minPt_EtaCorr
{},
m_maxE_EtaCorr
{};
62
unsigned
int
m_lowPtExtrap
{};
63
double
m_lowPtMinR
{};
64
bool
m_applyMassCorrection
{};
65
bool
m_useSecondaryminPt_JES
{};
66
double
m_etaSecondaryminPt_JES
{};
67
double
m_secondaryminPt_JES
{};
68
69
TAxis *
m_etaBinAxis
{};
70
71
// 90 eta bins, and up to 9 parameter for the pol-fit
72
const
static
int
s_nEtaBins
=90;
73
const
static
int
s_nParMin
=7;
74
const
static
int
s_nParMax
=9;
75
int
m_nPar
{};
// number of parameters in config file
76
double
m_JESFactors
[
s_nEtaBins
][
s_nParMax
]={};
77
double
m_JES_MinPt_Slopes
[
s_nEtaBins
]={};
78
double
m_JES_MinPt_E
[
s_nEtaBins
]={};
79
double
m_JES_MinPt_R
[
s_nEtaBins
]={};
80
double
m_JES_MinPt_Param1
[
s_nEtaBins
]={};
81
double
m_JES_MinPt_Param2
[
s_nEtaBins
]{};
82
double
m_etaCorrFactors
[
s_nEtaBins
][
s_nParMax
]={};
83
double
m_JMSFactors
[
s_nEtaBins
][
s_nParMax
]={};
84
double
m_energyFreezeJES
[
s_nEtaBins
]={};
85
86
// When using p-splines, the calibrations are stored as a finely binned TH1 for simplicity.
87
// This avoids importing new packages into Athena.
88
std::vector<std::unique_ptr<TH1> >
m_etajesFactors
;
89
90
91
};
92
93
#endif
JetCalibrationStep.h
x
#define x
EtaJESCorrection::m_jetAlgo
TString m_jetAlgo
Definition
EtaJESCorrection.h:53
EtaJESCorrection::m_JESFactors
double m_JESFactors[s_nEtaBins][s_nParMax]
Definition
EtaJESCorrection.h:76
EtaJESCorrection::calibrate
virtual StatusCode calibrate(xAOD::Jet &jet, JetEventInfo &) const override
Definition
EtaJESCorrection.cxx:224
EtaJESCorrection::s_nEtaBins
static const int s_nEtaBins
Definition
EtaJESCorrection.h:72
EtaJESCorrection::m_lowPtExtrap
unsigned int m_lowPtExtrap
Definition
EtaJESCorrection.h:62
EtaJESCorrection::m_minPt_EtaCorr
double m_minPt_EtaCorr
Definition
EtaJESCorrection.h:61
EtaJESCorrection::initialize
virtual StatusCode initialize() override
Definition
EtaJESCorrection.cxx:35
EtaJESCorrection::m_isSpline
bool m_isSpline
Definition
EtaJESCorrection.h:58
EtaJESCorrection::m_nPar
int m_nPar
Definition
EtaJESCorrection.h:75
EtaJESCorrection::getSplineSlope
double getSplineSlope(const int ieta, const double minE) const
Definition
EtaJESCorrection.cxx:324
EtaJESCorrection::m_applyMassCorrection
bool m_applyMassCorrection
Definition
EtaJESCorrection.h:64
EtaJESCorrection::m_config
TEnv * m_config
Definition
EtaJESCorrection.h:52
EtaJESCorrection::m_mass
bool m_mass
Definition
EtaJESCorrection.h:55
EtaJESCorrection::m_JES_MinPt_Slopes
double m_JES_MinPt_Slopes[s_nEtaBins]
Definition
EtaJESCorrection.h:77
EtaJESCorrection::m_JES_MinPt_R
double m_JES_MinPt_R[s_nEtaBins]
Definition
EtaJESCorrection.h:79
EtaJESCorrection::EtaJESCorrection
EtaJESCorrection()
Definition
EtaJESCorrection.cxx:13
EtaJESCorrection::m_JMSFactors
double m_JMSFactors[s_nEtaBins][s_nParMax]
Definition
EtaJESCorrection.h:83
EtaJESCorrection::getLogPolNSlope
double getLogPolNSlope(const double *factors, double x) const
Definition
EtaJESCorrection.cxx:383
EtaJESCorrection::getJES
double getJES(double E_uncorr, double eta_det) const
Definition
EtaJESCorrection.cxx:258
EtaJESCorrection::m_freezeJESatHighE
bool m_freezeJESatHighE
Definition
EtaJESCorrection.h:57
EtaJESCorrection::m_energyFreezeJES
double m_energyFreezeJES[s_nEtaBins]
Definition
EtaJESCorrection.h:84
EtaJESCorrection::m_dev
bool m_dev
Definition
EtaJESCorrection.h:56
EtaJESCorrection::getEtaCorr
double getEtaCorr(double E_corr, double eta_det) const
Definition
EtaJESCorrection.cxx:344
EtaJESCorrection::getLowPtJES
double getLowPtJES(double E_uncorr, double eta_det) const
Definition
EtaJESCorrection.cxx:300
EtaJESCorrection::m_JES_MinPt_Param1
double m_JES_MinPt_Param1[s_nEtaBins]
Definition
EtaJESCorrection.h:80
EtaJESCorrection::loadSplineHists
void loadSplineHists(const TString &fileName, const std::string &etajes_name="etaJes")
Loads the calib constants from histograms in TFile named fileName.
Definition
EtaJESCorrection.cxx:204
EtaJESCorrection::m_useSecondaryminPt_JES
bool m_useSecondaryminPt_JES
Definition
EtaJESCorrection.h:65
EtaJESCorrection::getSplineCorr
double getSplineCorr(const int etaBin, double E) const
Definition
EtaJESCorrection.cxx:337
EtaJESCorrection::m_etaBinAxis
TAxis * m_etaBinAxis
Definition
EtaJESCorrection.h:69
EtaJESCorrection::getMassCorr
double getMassCorr(double E_corr, double eta_det) const
Definition
EtaJESCorrection.cxx:360
EtaJESCorrection::m_etajesFactors
std::vector< std::unique_ptr< TH1 > > m_etajesFactors
Definition
EtaJESCorrection.h:88
EtaJESCorrection::s_nParMax
static const int s_nParMax
Definition
EtaJESCorrection.h:74
EtaJESCorrection::m_etaCorrFactors
double m_etaCorrFactors[s_nEtaBins][s_nParMax]
Definition
EtaJESCorrection.h:82
EtaJESCorrection::m_jesDesc
TString m_jesDesc
Definition
EtaJESCorrection.h:60
EtaJESCorrection::m_maxE_EtaCorr
double m_maxE_EtaCorr
Definition
EtaJESCorrection.h:61
EtaJESCorrection::~EtaJESCorrection
virtual ~EtaJESCorrection()
Definition
EtaJESCorrection.cxx:29
EtaJESCorrection::m_JES_MinPt_Param2
double m_JES_MinPt_Param2[s_nEtaBins]
Definition
EtaJESCorrection.h:81
EtaJESCorrection::m_etaSecondaryminPt_JES
double m_etaSecondaryminPt_JES
Definition
EtaJESCorrection.h:66
EtaJESCorrection::getEtaBin
int getEtaBin(double eta_det) const
Definition
EtaJESCorrection.cxx:391
EtaJESCorrection::m_secondaryminPt_JES
double m_secondaryminPt_JES
Definition
EtaJESCorrection.h:67
EtaJESCorrection::m_JES_MinPt_E
double m_JES_MinPt_E[s_nEtaBins]
Definition
EtaJESCorrection.h:78
EtaJESCorrection::s_nParMin
static const int s_nParMin
Definition
EtaJESCorrection.h:73
EtaJESCorrection::m_calibAreaTag
TString m_calibAreaTag
Definition
EtaJESCorrection.h:54
EtaJESCorrection::getLogPolN
double getLogPolN(const double *factors, double x) const
Definition
EtaJESCorrection.cxx:376
EtaJESCorrection::m_lowPtMinR
double m_lowPtMinR
Definition
EtaJESCorrection.h:63
EtaJESCorrection::m_minPt_JES
double m_minPt_JES
Definition
EtaJESCorrection.h:61
JetCalibrationStep::JetCalibrationStep
JetCalibrationStep(const char *name="JetCalibrationStep")
Definition
JetCalibrationStep.cxx:12
JetEventInfo
Definition
JetEventInfo.h:8
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
xAOD::Jet
Jet_v1 Jet
Definition of the current "jet version".
Definition
Event/xAOD/xAODJet/xAODJet/Jet.h:17
Generated on
for ATLAS Offline Software by
1.17.0