 |
ATLAS Offline Software
|
#include <JESCalibStep.h>
|
| EtaMassJESCalibStep (const std::string &name="EtaMassJESCalibStep") |
|
virtual StatusCode | initialize () override |
| Dummy implementation of the initialisation function. More...
|
|
virtual StatusCode | calibrate (xAOD::JetContainer &) const override |
| Apply calibration to a jet container. More...
|
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
virtual StatusCode | getNominalResolutionData (const xAOD::Jet &, const JetHelper::JetContext &, double &) const |
|
virtual StatusCode | getNominalResolutionMC (const xAOD::Jet &, const JetHelper::JetContext &, double &) const |
|
|
double | getLogPolN (const double *factors, double x) const |
|
double | getLogPolNSlope (const double *factors, double x) const |
|
int | getEtaBin (double eta_det) const |
|
bool | readMCJESFromText () |
|
bool | readMCJESFromHists () |
|
void | loadSplineHists (const std::string &fileName, const std::string &etajes_name) |
|
double | getJES (const double X, const double Y=0, const double Emax=-1) const |
| return MCJES calibration factor More...
|
|
double | getEtaCorr (double X, double Y=0) const |
| return Eta correction More...
|
|
double | getEmaxJES (const double Y) const |
| return Emax More...
|
|
double | getLowPtJES (double E_uncorr, double eta_det) const |
| deal with low pt jets More...
|
|
double | getSplineCorr (const int etaBin, double E) const |
|
double | getSplineSlope (const int ieta, const double minE) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
Gaudi::Property< std::string > | m_constantFileName { this, "CalibConstantFile", "/afs/cern.ch/work/s/stapiaar/JetDev4/athena/JetToolHelpers/data/file_JES.config", "text file containing constants" } |
| name of the text file More...
|
|
Gaudi::Property< std::string > | m_jetAlgo { this, "JetAlgo", "AntiKt4EMPFlow", "jet collection" } |
| jet collection to be calibrated More...
|
|
Gaudi::Property< float > | m_minPt_JES = {this, "MinPtForETAJES",15, "min pT"} |
|
Gaudi::Property< bool > | m_freezeJESatHighE = {this, "FreezeJEScorrectionatHighE",false, " freeze at high e"} |
|
Gaudi::Property< float > | m_lowPtExtrap = {this, "LowPtJESExtrapolationMethod", 0, " low pt etrap"} |
|
Gaudi::Property< float > | m_lowPtMinR = {this, "LowPtJESExtrapolationMinimumResponse", 0.25, " low pt etrap min"} |
|
Gaudi::Property< float > | m_minPt_EtaCorr = {this, "MinPtForEtaCorr" ,8. , ""} |
|
Gaudi::Property< float > | m_maxE_EtaCorr = {this, "MaxEForEtaCorr" ,2500. , ""} |
|
Gaudi::Property< std::string > | m_histoFileName { this, "HistoFile", "none", "root file containing histos for spline calib" } |
|
Gaudi::Property< bool > | m_useSpline = {this, "UseSpline",false, " use spline"} |
|
ToolHandle< JetHelper::IVarTool > | m_vartoolE {this, "VarToolE", "VarTool", "InputVariable instance E (or pT?)" } |
|
ToolHandle< JetHelper::IVarTool > | m_vartoolEta {this, "VarToolEta", "VarTool", "InputVariable instance eta (or rapididty?)" } |
| interface for xAOD::jet variable to be defined by user, this must correspond to jet Eta in currect version of jet calibration files More...
|
|
unsigned int | m_nPar {} |
|
double | m_JESFactors [s_nEtaBins][s_nParMax] {} |
|
double | m_etaCorrFactors [s_nEtaBins][s_nParMax] {} |
|
double | m_energyFreezeJES [s_nEtaBins] {} |
|
double | m_JES_MinPt_Slopes [s_nEtaBins] ={} |
|
double | m_JES_MinPt_E [s_nEtaBins] ={} |
|
double | m_JES_MinPt_R [s_nEtaBins] ={} |
|
TAxis * | m_etaBinAxis {} |
|
std::vector< std::unique_ptr< TH1 > > | m_etajesFactors |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 31 of file JESCalibStep.h.
◆ StoreGateSvc_t
◆ EtaMassJESCalibStep()
EtaMassJESCalibStep::EtaMassJESCalibStep |
( |
const std::string & |
name = "EtaMassJESCalibStep" | ) |
|
◆ calibrate()
Apply calibration to a jet container.
Implements IJetCalibStep.
Definition at line 44 of file JESCalibStep.cxx.
62 double jesCorrection =
getJES(varE, varEta,
Emax);
69 const float etaCorr = calibP4.eta() +
getEtaCorr(jesCorrection*varE, varEta) ;
73 TLorentzVector TLVjet;
74 TLVjet.SetPtEtaPhiM( calibP4.P()/cosh(etaCorr), etaCorr, calibP4.phi(), calibP4.M() );
75 calibP4.SetPxPyPzE( TLVjet.Px(), TLVjet.Py(), TLVjet.Pz(), TLVjet.E() );
76 ATH_MSG_DEBUG(
"JES = "<<jesCorrection <<
" e="<<varE <<
" eta="<<jetStartP4.Eta()<<
" ieta="<< ieta <<
" post_pt= ="<< calibP4.Pt() <<
" etaCorr="<< etaCorr);
79 jesScaleMomAcc.setAttribute(*
jet, calibP4);
80 jet->setJetP4(calibP4);
83 return StatusCode::SUCCESS;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ getEmaxJES()
double EtaMassJESCalibStep::getEmaxJES |
( |
const double |
Y | ) |
const |
|
private |
◆ getEtaBin()
int EtaMassJESCalibStep::getEtaBin |
( |
double |
eta_det | ) |
const |
|
private |
◆ getEtaCorr()
double EtaMassJESCalibStep::getEtaCorr |
( |
double |
X, |
|
|
double |
Y = 0 |
|
) |
| const |
|
private |
◆ getJES()
double EtaMassJESCalibStep::getJES |
( |
const double |
X, |
|
|
const double |
Y = 0 , |
|
|
const double |
Emax = -1 |
|
) |
| const |
|
private |
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getLogPolN()
double EtaMassJESCalibStep::getLogPolN |
( |
const double * |
factors, |
|
|
double |
x |
|
) |
| const |
|
private |
◆ getLogPolNSlope()
double EtaMassJESCalibStep::getLogPolNSlope |
( |
const double * |
factors, |
|
|
double |
x |
|
) |
| const |
|
private |
Definition at line 308 of file JESCalibStep.cxx.
310 const double inv_x = 1. /
x;
312 y +=
i*factors[
i]*TMath::Power(
log(
x),Int_t(
i-1))*inv_x;
◆ getLowPtJES()
double EtaMassJESCalibStep::getLowPtJES |
( |
double |
E_uncorr, |
|
|
double |
eta_det |
|
) |
| const |
|
private |
deal with low pt jets
Definition at line 248 of file JESCalibStep.cxx.
260 R = slope*(E_uncorr-Ecutoff)+Rcutoff;
262 else ATH_MSG_WARNING(
"Incorrect specification of low Pt JES extrapolation, please check the value of the LowPtJESExtrapolationMethod config flag.");
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getNominalResolutionData()
◆ getNominalResolutionMC()
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getSplineCorr()
double EtaMassJESCalibStep::getSplineCorr |
( |
const int |
etaBin, |
|
|
double |
E |
|
) |
| const |
|
private |
◆ getSplineSlope()
double EtaMassJESCalibStep::getSplineSlope |
( |
const int |
ieta, |
|
|
const double |
minE |
|
) |
| const |
|
private |
◆ initialize()
StatusCode EtaMassJESCalibStep::initialize |
( |
| ) |
|
|
overridevirtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented from asg::AsgTool.
Definition at line 23 of file JESCalibStep.cxx.
29 return StatusCode::FAILURE;
34 return StatusCode::FAILURE;
41 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ loadSplineHists()
void EtaMassJESCalibStep::loadSplineHists |
( |
const std::string & |
fileName, |
|
|
const std::string & |
etajes_name |
|
) |
| |
|
private |
Definition at line 317 of file JESCalibStep.cxx.
319 std::unique_ptr<TFile> tmpF(TFile::Open(
fileName.c_str() ));
320 TList *etajes_l =
static_cast<TList*
>( tmpF->Get(etajes_name.c_str()));
324 ATH_MSG_WARNING(
"Do not have the correct number of eta bins for " <<
fileName <<
"\t" << etajes_name <<
"\t" << etajes_l->GetSize() );
328 auto *pTH1 =
dynamic_cast<TH1*
>(etajes_l->At(
i));
329 if (not pTH1)
continue;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ readMCJESFromHists()
bool EtaMassJESCalibStep::readMCJESFromHists |
( |
| ) |
|
|
private |
Definition at line 155 of file JESCalibStep.cxx.
164 std::string jetAlgo=
static_cast<std::string
> (
m_jetAlgo);
168 for (
int i=0;
i<=90;
i++)
181 ATH_MSG_ERROR(
"Only linear extrapolations are supported for p-splines currently. Please change the config file to reflect this");
191 if(Slope > Rcutoff/Ecutoff)
ATH_MSG_WARNING(
"Slope of calibration curve at minimum ET is too steep for the JES factors of etabin " << ieta <<
", eta = " <<
etaBins[ieta] );
197 TString
key=Form(
"EmaxJES.%s_Bin%d",jetAlgo.c_str(),ieta);
202 key=Form(
"EtaCorr.%s_Bin%d",jetAlgo.c_str(),ieta);
◆ readMCJESFromText()
bool EtaMassJESCalibStep::readMCJESFromText |
( |
| ) |
|
|
private |
Definition at line 87 of file JESCalibStep.cxx.
96 std::string jetAlgo=
static_cast<std::string
> (
m_jetAlgo);
100 for (
int i=0;
i<=90;
i++)
110 TString
key=Form(
"JES.%s_Bin%d",jetAlgo.c_str(),ieta);
121 const double Rcutoff =
getLogPolN(factors,Ecutoff);
123 if(Slope > Rcutoff/Ecutoff)
ATH_MSG_FATAL(
"Slope of calibration curve at minimum ET is too steep for the JES factors of etabin " << ieta <<
", eta = " <<
etaBins[ieta] );
132 ATH_MSG_ERROR(
"LowPtJESExtrapolationMethod==2 not supported yet");
138 key=Form(
"EtaCorr.%s_Bin%d",jetAlgo.c_str(),ieta);
145 key=Form(
"EmaxJES.%s_Bin%d",jetAlgo.c_str(),ieta);
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_constantFileName
Gaudi::Property< std::string > EtaMassJESCalibStep::m_constantFileName { this, "CalibConstantFile", "/afs/cern.ch/work/s/stapiaar/JetDev4/athena/JetToolHelpers/data/file_JES.config", "text file containing constants" } |
|
private |
◆ m_detStore
◆ m_energyFreezeJES
double EtaMassJESCalibStep::m_energyFreezeJES[s_nEtaBins] {} |
|
private |
◆ m_etaBinAxis
TAxis* EtaMassJESCalibStep::m_etaBinAxis {} |
|
private |
◆ m_etaCorrFactors
◆ m_etajesFactors
std::vector<std::unique_ptr<TH1> > EtaMassJESCalibStep::m_etajesFactors |
|
private |
◆ m_evtStore
◆ m_freezeJESatHighE
Gaudi::Property< bool > EtaMassJESCalibStep::m_freezeJESatHighE = {this, "FreezeJEScorrectionatHighE",false, " freeze at high e"} |
|
private |
◆ m_histoFileName
Gaudi::Property< std::string > EtaMassJESCalibStep::m_histoFileName { this, "HistoFile", "none", "root file containing histos for spline calib" } |
|
private |
◆ m_JES_MinPt_E
double EtaMassJESCalibStep::m_JES_MinPt_E[s_nEtaBins] ={} |
|
private |
◆ m_JES_MinPt_R
double EtaMassJESCalibStep::m_JES_MinPt_R[s_nEtaBins] ={} |
|
private |
◆ m_JES_MinPt_Slopes
double EtaMassJESCalibStep::m_JES_MinPt_Slopes[s_nEtaBins] ={} |
|
private |
◆ m_JESFactors
◆ m_jetAlgo
Gaudi::Property< std::string > EtaMassJESCalibStep::m_jetAlgo { this, "JetAlgo", "AntiKt4EMPFlow", "jet collection" } |
|
private |
◆ m_lowPtExtrap
Gaudi::Property< float > EtaMassJESCalibStep::m_lowPtExtrap = {this, "LowPtJESExtrapolationMethod", 0, " low pt etrap"} |
|
private |
◆ m_lowPtMinR
Gaudi::Property< float > EtaMassJESCalibStep::m_lowPtMinR = {this, "LowPtJESExtrapolationMinimumResponse", 0.25, " low pt etrap min"} |
|
private |
◆ m_maxE_EtaCorr
Gaudi::Property< float > EtaMassJESCalibStep::m_maxE_EtaCorr = {this, "MaxEForEtaCorr" ,2500. , ""} |
|
private |
◆ m_minPt_EtaCorr
Gaudi::Property< float > EtaMassJESCalibStep::m_minPt_EtaCorr = {this, "MinPtForEtaCorr" ,8. , ""} |
|
private |
◆ m_minPt_JES
Gaudi::Property< float > EtaMassJESCalibStep::m_minPt_JES = {this, "MinPtForETAJES",15, "min pT"} |
|
private |
◆ m_nPar
unsigned int EtaMassJESCalibStep::m_nPar {} |
|
private |
◆ m_useSpline
Gaudi::Property< bool > EtaMassJESCalibStep::m_useSpline = {this, "UseSpline",false, " use spline"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vartoolE
◆ m_vartoolEta
interface for xAOD::jet variable to be defined by user, this must correspond to jet Eta in currect version of jet calibration files
Definition at line 82 of file JESCalibStep.h.
◆ m_vhka
◆ s_nEtaBins
const unsigned int EtaMassJESCalibStep::s_nEtaBins = 90 |
|
staticprivate |
◆ s_nParMax
const unsigned int EtaMassJESCalibStep::s_nParMax = 9 |
|
staticprivate |
The documentation for this class was generated from the following files:
int getEtaBin(double eta_det) const
double m_JES_MinPt_R[s_nEtaBins]
Class JetContext Designed to read AOD information related to the event, N vertices,...
double m_etaCorrFactors[s_nEtaBins][s_nParMax]
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
double m_energyFreezeJES[s_nEtaBins]
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
double getLowPtJES(double E_uncorr, double eta_det) const
deal with low pt jets
double getEtaCorr(double X, double Y=0) const
return Eta correction
#define ATH_MSG_VERBOSE(x)
Gaudi::Property< std::string > m_jetAlgo
jet collection to be calibrated
Gaudi::Property< float > m_lowPtExtrap
virtual void setOwner(IDataHandleHolder *o)=0
double m_JESFactors[s_nEtaBins][s_nParMax]
void loadSplineHists(const std::string &fileName, const std::string &etajes_name)
double getSplineCorr(const int etaBin, double E) const
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
double m_JES_MinPt_E[s_nEtaBins]
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap etaBin
double getJES(const double X, const double Y=0, const double Emax=-1) const
return MCJES calibration factor
double getLogPolNSlope(const double *factors, double x) const
double m_JES_MinPt_Slopes[s_nEtaBins]
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Gaudi::Property< float > m_minPt_JES
ToolHandle< JetHelper::IVarTool > m_vartoolEta
interface for xAOD::jet variable to be defined by user, this must correspond to jet Eta in currect ve...
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Gaudi::Property< float > m_maxE_EtaCorr
bool readMCJESFromHists()
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ToolHandle< JetHelper::IVarTool > m_vartoolE
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
double getLogPolN(const double *factors, double x) const
Gaudi::Property< float > m_minPt_EtaCorr
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Gaudi::Property< std::string > m_histoFileName
#define ATH_MSG_WARNING(x)
Gaudi::Property< bool > m_useSpline
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
double getEmaxJES(const double Y) const
return Emax
VecD VectorizeD(const TString &str, const TString &sep=" ")
double getSplineSlope(const int ieta, const double minE) const
Gaudi::Property< std::string > m_constantFileName
name of the text file
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::vector< std::unique_ptr< TH1 > > m_etajesFactors
Gaudi::Property< bool > m_freezeJESatHighE