ATLAS Offline Software
Loading...
Searching...
No Matches
JetPileupCorrection Class Reference

#include <JetPileupCorrection.h>

Inheritance diagram for JetPileupCorrection:
Collaboration diagram for JetPileupCorrection:

Public Member Functions

 JetPileupCorrection ()
 JetPileupCorrection (const std::string &name, TEnv *config, TString jetAlgo, TString calibAreaTag, bool doResidual, bool doJetArea, bool doOrigin, const std::string &originScale, bool isData, bool dev)
virtual ~JetPileupCorrection ()
virtual StatusCode initialize () override
virtual StatusCode calibrate (xAOD::Jet &jet, JetEventInfo &jetEventInfo) const override
virtual void setUnitsGeV (bool useGeV)
virtual StatusCode getNominalResolutionData (const xAOD::Jet &, double &) const
virtual StatusCode getNominalResolutionMC (const xAOD::Jet &, double &) const
void setLevel (MSG::Level lvl)
 Change the current logging level.
Functions providing the same interface as AthMessaging
bool msgLvl (const MSG::Level lvl) const
 Test the output level of the object.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.

Protected Member Functions

virtual StatusCode setStartP4 (xAOD::Jet &jet) const

Protected Attributes

double m_GeV
std::string m_jetStartScale
std::string m_name

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

TEnv * m_config {}
TString m_jetAlgo
TString m_calibAreaTag
bool m_dev {}
bool m_doResidual {}
bool m_doJetArea {}
bool m_doOrigin {}
bool m_isData {}
bool m_doMuOnly {}
bool m_doNPVOnly {}
bool m_doNJetOnly {}
bool m_doSequentialResidual {}
bool m_do3Dcorrection {}
bool m_useFull4vectorArea {}
ResidualOffsetCorrectionm_residualOffsetCorr {}
std::unique_ptr< PUCorrection::PU3DCorrectionHelperm_residual3DCorr
bool m_doOnlyResidual {}
std::string m_originScale
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

Detailed Description

Definition at line 27 of file JetPileupCorrection.h.

Constructor & Destructor Documentation

◆ JetPileupCorrection() [1/2]

JetPileupCorrection::JetPileupCorrection ( )

Definition at line 17 of file JetPileupCorrection.cxx.

◆ JetPileupCorrection() [2/2]

JetPileupCorrection::JetPileupCorrection ( const std::string & name,
TEnv * config,
TString jetAlgo,
TString calibAreaTag,
bool doResidual,
bool doJetArea,
bool doOrigin,
const std::string & originScale,
bool isData,
bool dev )

Definition at line 24 of file JetPileupCorrection.cxx.

28 m_config(config), m_jetAlgo(std::move(jetAlgo)), m_calibAreaTag(std::move(calibAreaTag)), m_dev(dev),
29 m_doResidual(doResidual), m_doJetArea(doJetArea), m_doOrigin(doOrigin), m_isData(isData),
30 m_useFull4vectorArea(false), m_residualOffsetCorr(nullptr), m_originScale(originScale)
31{}

◆ ~JetPileupCorrection()

JetPileupCorrection::~JetPileupCorrection ( )
virtual

Definition at line 33 of file JetPileupCorrection.cxx.

33 {
34
36
37}

Member Function Documentation

◆ calibrate()

StatusCode JetPileupCorrection::calibrate ( xAOD::Jet & jet,
JetEventInfo & jetEventInfo ) const
overridevirtual

Implements JetCalibrationStep.

Definition at line 160 of file JetPileupCorrection.cxx.

160 {
161 ATH_MSG_VERBOSE(" Applying pileup calibration to jet " << jet.index());
162 ATH_MSG_VERBOSE(" Initial jet pT = " << 0.001*jet.pt() << " GeV");
163
164 xAOD::JetFourMom_t jetStartP4;
165 ATH_CHECK( setStartP4(jet) );
166 jetStartP4 = jet.jetP4();
167
168 const double E_det = jetStartP4.e();
169 const double pT_det = jetStartP4.pt();
170 const double eta_det = jetStartP4.eta();
171 const double mass_det = jetStartP4.mass();
172
173 if ( E_det < mass_det ) {
174 ATH_MSG_WARNING( "JetPileupCorrection::calibrateImpl : Current jet has mass=" << mass_det/m_GeV << " GeV, which is greater than it's energy=" << E_det/m_GeV << " GeV?? Aborting." );
175 return StatusCode::FAILURE;
176 }
177
178 xAOD::JetFourMom_t jetareaP4 = jet.getAttribute<xAOD::JetFourMom_t>("ActiveArea4vec");
179 ATH_MSG_VERBOSE(" Area = " << jetareaP4);
180 const double rho = jetEventInfo.rho();
181 ATH_MSG_VERBOSE(" Rho = " << rho);
182
184 int NPV = jetEventInfo.NPV();
185 float mu = jetEventInfo.mu();
186
187 double pt_calib= m_residual3DCorr->correctedPt(pT_det, eta_det, jetareaP4.Pt(), rho, mu, NPV ) ;
188 double scaleF = pt_calib < 0 ? 0.01*m_GeV/pT_det : pt_calib/pT_det;
189 xAOD::JetFourMom_t calibP4 = jetStartP4 * scaleF;
190 jet.setAttribute<int>("PileupCorrected",true);
191 jet.setAttribute<xAOD::JetFourMom_t>("JetPileupScaleMomentum",calibP4);
192 jet.setJetP4( calibP4 );
193
194 } else if (m_useFull4vectorArea) {
195 ATH_MSG_VERBOSE(" Applying area-subtraction calibration to jet " << jet.index() << " with pT = " << 0.001*jet.pt() << " GeV");
196 //subtract rho * the jet area from the jet
197 xAOD::JetFourMom_t calibP4 = jetStartP4 - rho*jetareaP4;
198 //Attribute to track if a jet has received the pileup subtraction (always true if this code was run)
199 jet.setAttribute<int>("PileupCorrected",true);
200 //Transfer calibrated jet properties to the Jet object
201 jet.setAttribute<xAOD::JetFourMom_t>("JetPileupScaleMomentum",calibP4);
202 jet.setJetP4( calibP4 );
203
205 ATH_MSG_VERBOSE(" Applying residual pileup calibration to jet " << jet.index() << " with pT = " << 0.001*jet.pt() << " GeV");
206
207 const double NPV = jetEventInfo.NPV();
208 const double mu = jetEventInfo.mu();
209 const int nJet = jetEventInfo.nJet();
210
211 // Retrieve the offset correction from the residual correction class
212 double offsetET = 0; // pT residual subtraction
213 double pT_offset = pT_det; // pT difference before/after pileup corrections
214 double pileup_SF = 1; // final calibration factor applied to the four vector
215
216 xAOD::JetFourMom_t calibP4;
217 if(!m_doSequentialResidual){ // Default, both corrections are applied simultaneously
218 offsetET = m_residualOffsetCorr->GetResidualOffset(fabs(eta_det), mu, NPV, nJet, m_doMuOnly, m_doNPVOnly||m_doNJetOnly);
219
220 // Calculate the pT after jet areas and residual offset
221 pT_offset = m_doJetArea ? pT_det - rho*jetareaP4.pt() - offsetET : pT_det - offsetET;
222
223 // Set the jet pT to 10 MeV if the pT is negative after the jet area and residual offset corrections
224 pileup_SF = pT_offset >= 0 ? pT_offset / pT_det : 0.01*m_GeV/pT_det;
225
226 if ( m_doOrigin ) {
227 xAOD::JetFourMom_t jetOriginP4;
228 static std::atomic<unsigned int> originWarnings = 0;
229 if ( jet.getAttribute<xAOD::JetFourMom_t>(m_originScale.c_str(),jetOriginP4) )
230 calibP4 = jetOriginP4*pileup_SF;
231 else {
232 if ( originWarnings < 20 ) {
233 ATH_MSG_WARNING("Could not retrieve " << m_originScale << " jet attribute, origin correction will not be applied.");
234 ++originWarnings;
235 }
236 calibP4 = jetStartP4*pileup_SF;
237 }
238 } else {
239 calibP4 = jetStartP4*pileup_SF;
240 }
241 } else {
242
243 // Calculate mu-based correction factor
244 offsetET = m_residualOffsetCorr->GetResidualOffset(fabs(eta_det), mu, NPV, nJet, true, false);
245 pT_offset = m_doJetArea ? pT_det - rho*jetareaP4.pt() - offsetET : pT_det - offsetET;
246 double muSF = pT_offset >= 0 ? pT_offset / pT_det : 0.01*m_GeV/pT_det;
247
248 // Apply mu-based calibration
249 if ( m_doOrigin ) {
250 xAOD::JetFourMom_t jetOriginP4;
251 static std::atomic<unsigned int> originWarnings = 0;
252 if ( jet.getAttribute<xAOD::JetFourMom_t>(m_originScale.c_str(),jetOriginP4) )
253 calibP4 = jetOriginP4*muSF;
254 else {
255 if ( originWarnings < 20 ) {
256 ATH_MSG_WARNING("Could not retrieve " << m_originScale << " jet attribute, origin correction will not be applied.");
257 ++originWarnings;
258 }
259 calibP4 = jetStartP4*muSF;
260 }
261 } else {
262 calibP4 = jetStartP4*muSF;
263 }
264
265 // Calculate and apply NPV/Njet-based calibration
266 offsetET = m_residualOffsetCorr->GetResidualOffset(fabs(eta_det), mu, NPV, nJet, false, true);
267 double pT_afterMuCalib = calibP4.pt();
268 pT_offset = pT_afterMuCalib - offsetET;
269 double SF = pT_offset >= 0 ? pT_offset / pT_afterMuCalib : 0.01*m_GeV/pT_afterMuCalib;
270 calibP4 = calibP4*SF;
271
272 }
273
274 //Attribute to track if a jet has received the origin correction
275 jet.setAttribute<int>("OriginCorrected",m_doOrigin);
276 //Attribute to track if a jet has received the pileup subtraction (always true if this code was run)
277 jet.setAttribute<int>("PileupCorrected",true);
278
279 //Transfer calibrated jet properties to the Jet object
280 jet.setAttribute<xAOD::JetFourMom_t>("JetPileupScaleMomentum",calibP4);
281 jet.setJetP4( calibP4 );
282
283 } else {
284 ATH_MSG_VERBOSE(" Applying postive-only area-subtraction calibration to jet " << jet.index() << " with pT = " << 0.001*jet.pt() << " GeV");
285 //Set the jet pT to 10 MeV if the pT or energy is negative after the jet area correction
286 const double area_SF = (pT_det-rho*jetareaP4.pt()<=0 || E_det-rho*jetareaP4.e()<=0) ? 10/pT_det : (pT_det-rho*jetareaP4.pt())/pT_det;
287 xAOD::JetFourMom_t calibP4;
288 if ( m_doOrigin ) {
289 xAOD::JetFourMom_t jetOriginP4;
290 static std::atomic<unsigned int> originWarnings = 0;
291 if ( jet.getAttribute<xAOD::JetFourMom_t>(m_originScale.c_str(),jetOriginP4) )
292 calibP4 = jetOriginP4*area_SF;
293 else {
294 if ( originWarnings < 20 ) {
295 ATH_MSG_WARNING("Could not retrieve " << m_originScale << " jet attribute, origin correction will not be applied.");
296 ++originWarnings;
297 }
298 calibP4 = jetStartP4*area_SF;
299 }
300 } else calibP4 = jetStartP4*area_SF;
301
302 //Attribute to track if a jet has received the origin correction
303 jet.setAttribute<int>("OriginCorrected",m_doOrigin);
304 //Attribute to track if a jet has received the pileup subtraction (always true if this code was run)
305 jet.setAttribute<int>("PileupCorrected",true);
306
307 //Transfer calibrated jet properties to the Jet object
308 jet.setAttribute<xAOD::JetFourMom_t>("JetPileupScaleMomentum",calibP4);
309 jet.setJetP4( calibP4 );
310 }
311
312 ATH_MSG_VERBOSE(" Calibrated jet pT = " << 0.001*jet.pt() << " GeV");
313 return StatusCode::SUCCESS;
314}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
virtual StatusCode setStartP4(xAOD::Jet &jet) const
double rho()
double mu()
double NPV()
std::unique_ptr< PUCorrection::PU3DCorrectionHelper > m_residual3DCorr
size_t index() const
Return the index of this element within its container.
void setAttribute(const std::string &name, const T &v)
void setJetP4(const JetFourMom_t &p4)
Definition Jet_v1.cxx:171
virtual double pt() const
The transverse momentum ( ) of the particle.
Definition Jet_v1.cxx:44
bool getAttribute(AttributeID type, T &value) const
Retrieve attribute moment by enum.
JetFourMom_t jetP4() const
The full 4-momentum of the particle : internal jet type.
Definition Jet_v1.cxx:76
const float SF[NF]
Cross sections for Fluor.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
Definition JetTypes.h:17

◆ getNominalResolutionData()

StatusCode JetCalibrationStep::getNominalResolutionData ( const xAOD::Jet & ,
double &  ) const
virtualinherited

Reimplemented in JetSmearingCorrection.

Definition at line 33 of file JetCalibrationStep.cxx.

33 {
34 ATH_MSG_ERROR("Nominal data resolution requested from a jet calibration step that doesn't define it.");
35 return StatusCode::FAILURE;
36}
#define ATH_MSG_ERROR(x)

◆ getNominalResolutionMC()

StatusCode JetCalibrationStep::getNominalResolutionMC ( const xAOD::Jet & ,
double &  ) const
virtualinherited

Reimplemented in JetSmearingCorrection.

Definition at line 38 of file JetCalibrationStep.cxx.

38 {
39 ATH_MSG_ERROR("Nominal MC resolution requested from a jet calibration step that doesn't define it.");
40 return StatusCode::FAILURE;
41}

◆ initialize()

StatusCode JetPileupCorrection::initialize ( )
overridevirtual

Implements JetCalibrationStep.

Definition at line 40 of file JetPileupCorrection.cxx.

40 {
41
42 ATH_MSG_INFO("Initializing pileup correction.");
43
44 if (m_doOrigin) ATH_MSG_INFO("OriginScale: " << m_originScale);
45
46 if(!m_config){
47 ATH_MSG_ERROR("Jet pileup correction tool received a null config pointer.");
48 return StatusCode::FAILURE;
49 }
50
51 m_doOnlyResidual = m_config->GetValue("ApplyOnlyResidual",false);
53 ATH_MSG_FATAL("If you're trying to apply only the Residual pile up correction, it needs to be specify in the Calibration Sequence. ApplyOnlyResidual should be true in the configuration file and the PileupStartScale should be specified.");
54 return StatusCode::FAILURE;
55 }
56
57 m_doMuOnly = m_config->GetValue("ApplyOnlyMuResidual",false);
58 m_doNPVOnly = m_config->GetValue("ApplyOnlyNPVResidual",false);
59 m_doNJetOnly = m_config->GetValue("ApplyOnlyNJetResidual",false);
60 m_doSequentialResidual = m_config->GetValue("DoSequentialResidual",false); // first mu and then NPV/NJet corrections
61 bool useNjet = m_config->GetValue("OffsetCorrection.UseNjet", false);
62
63 m_do3Dcorrection = m_config->GetValue("Do3DCorrection", false);
64
65 if(m_doSequentialResidual) ATH_MSG_DEBUG("The pileup residual calibrations will be applied sequentially.");
66 else ATH_MSG_DEBUG("The pileup residual calibrations will be applied simultaneously (default).");
67 if(m_doMuOnly) ATH_MSG_INFO("Only the pileup mu-based calibration will be applied.");
68 if(m_doNPVOnly) ATH_MSG_INFO("Only the pileup NPV-based calibration will be applied.");
69 if(m_doNJetOnly) ATH_MSG_INFO("Only the pileup NJet-based calibration will be applied.");
70 else if (useNjet) ATH_MSG_DEBUG("NJet will be used instead of NPV in the pileup corrections.");
71
72 // Protections
74 ATH_MSG_FATAL("Sequential residual calibration can not be applied in doMuOnly or doNPVOnly or doNJetOnly cases.");
75 return StatusCode::FAILURE;
76 }
77 if(useNjet && (m_doMuOnly || m_doNPVOnly)){
78 ATH_MSG_FATAL("Conflicting configuation, UseNjet true but doMuOnly or doNPVOnly also true.");
79 return StatusCode::FAILURE;
80 }
82 ATH_MSG_FATAL("It was requested to apply only the mu-based AND the NPV-based calibrations.");
83 return StatusCode::FAILURE;
84 }
86 ATH_MSG_FATAL("It was requested to apply only the mu-based AND the NJet-based calibrations.");
87 return StatusCode::FAILURE;
88 }
89 if(!useNjet && m_doNJetOnly){
90 ATH_MSG_FATAL("It was requested to apply only the NJet-based calibration but not to use Njet instead of NPV.");
91 return StatusCode::FAILURE;
92 }
94 ATH_MSG_FATAL("It was requested to apply NJet-based and NPV calibrations.");
95 return StatusCode::FAILURE;
96 }
97
99 ATH_MSG_FATAL("3D correction incompatible with any other PU correction. Please turn off any PU residual options.");
100 return StatusCode::FAILURE;
101
102 }
103
104 m_jetStartScale = m_config->GetValue("PileupStartingScale","JetConstitScaleMomentum");
105 ATH_MSG_INFO("JetPileupCorrection: Starting scale: " << m_jetStartScale);
106 if ( m_jetStartScale.compare("DO_NOT_USE") == 0 ) {
107 ATH_MSG_WARNING("Configuration file does not specify the jet starting scale!");
108 }
109
110 m_useFull4vectorArea = m_config->GetValue("ApplyFullJetArea4MomentumCorrection", false);
111 if(m_doJetArea) ATH_MSG_INFO("Jet area pile up correction will be applied.");
112 if ( m_useFull4vectorArea ) ATH_MSG_INFO(" Full 4-vector jet area correction is activated.");
113 //ATH_MSG_INFO(" \n");
114
116 m_residual3DCorr = std::make_unique<PUCorrection::PU3DCorrectionHelper>( ) ;
117
118 TString PUCalibFile3D = m_config->GetValue("PU3DCorrection.constants", "pu3DResidualsConstants.root");
119
120 if(m_dev){
121 //Currently hard coded that we remove "JetCalibTools/CalibrationFactors/" from the string in dev mode
122 //Same implementation as in other JetCalibTools classes for now, will be changed everywhere during major overhaul of package for r22
123 PUCalibFile3D.Remove(0,33);
124 PUCalibFile3D.Insert(0,"JetCalibTools/");
125 }
126 else{
127 PUCalibFile3D.Insert(14,m_calibAreaTag);
128 }
129
130 const std::string calibFilePU = PathResolverFindCalibFile(PUCalibFile3D.Data());
131
132 m_residual3DCorr->loadParameters(calibFilePU);
133 m_residual3DCorr->m_rhoEnergyScale = m_config->GetValue("PU3DCorrection.rhoEnergyScale", 0.001);
134 m_residual3DCorr->m_pTEnergyScale = m_config->GetValue("PU3DCorrection.pTEnergyScale", 0.001);
135 m_residual3DCorr->m_applyDeltaPtTerm = m_config->GetValue("PU3DCorrection.applyDeltaPtTerm", true);
136 ATH_MSG_INFO("Pile-up 3D correction. Configured with :");
137 ATH_MSG_INFO(" calib constants file="<< m_config->GetValue("PU3DCorrection.constants", "pu3DResidualsConstants.root") );
138 ATH_MSG_INFO(" rho scale ="<<m_residual3DCorr->m_rhoEnergyScale );
139 ATH_MSG_INFO(" pT scale ="<<m_residual3DCorr->m_pTEnergyScale);
140 ATH_MSG_INFO(" apply deltaPt term = " << m_residual3DCorr->m_applyDeltaPtTerm);
141 } else if ( m_doResidual ) {
142 std::string suffix = "_Residual";
143 m_residualOffsetCorr = new ResidualOffsetCorrection(m_name+suffix,m_config,m_jetAlgo,m_calibAreaTag,m_isData,m_dev);
144 m_residualOffsetCorr->msg().setLevel( this->msg().level() );
145 ATH_CHECK( m_residualOffsetCorr->initialize() );
146 }
147
149 ATH_MSG_WARNING("JetPileupCorrection::initializeTool : WARNING!! You have requested the 4 vector jet area correction and the residual offset correction. This configuration is not currently supported, the residual offset correction will be deactivated.");
150 return StatusCode::SUCCESS;
151 } else if ( !m_doResidual && !m_useFull4vectorArea ) {
152 ATH_MSG_VERBOSE("JetPileupCorrection::initializeTool : You have requested the transverse jet area correction without the residual offset correction. This configuration is not recommended.");
153 return StatusCode::SUCCESS;
154 } else {
155 return StatusCode::SUCCESS;
156 }
157 return StatusCode::FAILURE;
158}
#define ATH_MSG_FATAL(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
MsgStream & msg() const
The standard message stream.

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ msg() [1/2]

MsgStream & asg::AsgMessaging::msg ( ) const
inherited

The standard message stream.

Returns
A reference to the default message stream of this object.

Definition at line 49 of file AsgMessaging.cxx.

49 {
50#ifndef XAOD_STANDALONE
51 return ::AthMessaging::msg();
52#else // not XAOD_STANDALONE
53 return m_msg;
54#endif // not XAOD_STANDALONE
55 }

◆ msg() [2/2]

MsgStream & asg::AsgMessaging::msg ( const MSG::Level lvl) const
inherited

The standard message stream.

Parameters
lvlThe message level to set the stream to
Returns
A reference to the default message stream, set to level "lvl"

Definition at line 57 of file AsgMessaging.cxx.

57 {
58#ifndef XAOD_STANDALONE
59 return ::AthMessaging::msg( lvl );
60#else // not XAOD_STANDALONE
61 m_msg << lvl;
62 return m_msg;
63#endif // not XAOD_STANDALONE
64 }

◆ msgLvl()

bool asg::AsgMessaging::msgLvl ( const MSG::Level lvl) const
inherited

Test the output level of the object.

Parameters
lvlThe message level to test against
Returns
boolean Indicting if messages at given level will be printed
true If messages at level "lvl" will be printed

Definition at line 41 of file AsgMessaging.cxx.

41 {
42#ifndef XAOD_STANDALONE
43 return ::AthMessaging::msgLvl( lvl );
44#else // not XAOD_STANDALONE
45 return m_msg.msgLevel( lvl );
46#endif // not XAOD_STANDALONE
47 }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

◆ setStartP4()

StatusCode JetCalibrationStep::setStartP4 ( xAOD::Jet & jet) const
protectedvirtualinherited

Definition at line 21 of file JetCalibrationStep.cxx.

21 {
23 if ( m_jetStartScale.compare("Default") == 0 ) {
24 return StatusCode::SUCCESS;
25 } else if ( jet.getAttribute<xAOD::JetFourMom_t>(m_jetStartScale.c_str(),tmp) ) {
26 jet.setJetP4(tmp);
27 return StatusCode::SUCCESS;
28 }
29 ATH_MSG_WARNING("Jet does not have the requested momentum state: " << m_jetStartScale);
30 return StatusCode::FAILURE;
31}

◆ setUnitsGeV()

virtual void JetCalibrationStep::setUnitsGeV ( bool useGeV)
inlinevirtualinherited

Definition at line 30 of file JetCalibrationStep.h.

30{ if (useGeV) m_GeV=1; else m_GeV=1000; }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_calibAreaTag

TString JetPileupCorrection::m_calibAreaTag
private

Definition at line 42 of file JetPileupCorrection.h.

◆ m_config

TEnv* JetPileupCorrection::m_config {}
private

Definition at line 40 of file JetPileupCorrection.h.

40{};

◆ m_dev

bool JetPileupCorrection::m_dev {}
private

Definition at line 43 of file JetPileupCorrection.h.

43{};

◆ m_do3Dcorrection

bool JetPileupCorrection::m_do3Dcorrection {}
private

Definition at line 53 of file JetPileupCorrection.h.

53{};

◆ m_doJetArea

bool JetPileupCorrection::m_doJetArea {}
private

Definition at line 45 of file JetPileupCorrection.h.

45{};

◆ m_doMuOnly

bool JetPileupCorrection::m_doMuOnly {}
private

Definition at line 48 of file JetPileupCorrection.h.

48{};

◆ m_doNJetOnly

bool JetPileupCorrection::m_doNJetOnly {}
private

Definition at line 50 of file JetPileupCorrection.h.

50{};

◆ m_doNPVOnly

bool JetPileupCorrection::m_doNPVOnly {}
private

Definition at line 49 of file JetPileupCorrection.h.

49{};

◆ m_doOnlyResidual

bool JetPileupCorrection::m_doOnlyResidual {}
private

Definition at line 60 of file JetPileupCorrection.h.

60{};

◆ m_doOrigin

bool JetPileupCorrection::m_doOrigin {}
private

Definition at line 46 of file JetPileupCorrection.h.

46{};

◆ m_doResidual

bool JetPileupCorrection::m_doResidual {}
private

Definition at line 44 of file JetPileupCorrection.h.

44{};

◆ m_doSequentialResidual

bool JetPileupCorrection::m_doSequentialResidual {}
private

Definition at line 51 of file JetPileupCorrection.h.

51{};

◆ m_GeV

double JetCalibrationStep::m_GeV
protectedinherited

Definition at line 40 of file JetCalibrationStep.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_isData

bool JetPileupCorrection::m_isData {}
private

Definition at line 47 of file JetPileupCorrection.h.

47{};

◆ m_jetAlgo

TString JetPileupCorrection::m_jetAlgo
private

Definition at line 41 of file JetPileupCorrection.h.

◆ m_jetStartScale

std::string JetCalibrationStep::m_jetStartScale
protectedinherited

Definition at line 41 of file JetCalibrationStep.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_name

std::string JetCalibrationStep::m_name
protectedinherited

Definition at line 42 of file JetCalibrationStep.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_originScale

std::string JetPileupCorrection::m_originScale
private

Definition at line 62 of file JetPileupCorrection.h.

◆ m_residual3DCorr

std::unique_ptr<PUCorrection::PU3DCorrectionHelper> JetPileupCorrection::m_residual3DCorr
private

Definition at line 58 of file JetPileupCorrection.h.

◆ m_residualOffsetCorr

ResidualOffsetCorrection* JetPileupCorrection::m_residualOffsetCorr {}
private

Definition at line 56 of file JetPileupCorrection.h.

56{};

◆ m_useFull4vectorArea

bool JetPileupCorrection::m_useFull4vectorArea {}
private

Definition at line 55 of file JetPileupCorrection.h.

55{};

The documentation for this class was generated from the following files: