ATLAS Offline Software
Loading...
Searching...
No Matches
jet::CombinedMassUncertaintyComponent Class Reference

#include <CombinedMassUncertaintyComponent.h>

Inheritance diagram for jet::CombinedMassUncertaintyComponent:
Collaboration diagram for jet::CombinedMassUncertaintyComponent:

Public Member Functions

 CombinedMassUncertaintyComponent (const ComponentHelper &component)
 CombinedMassUncertaintyComponent (const CombinedMassUncertaintyComponent &toCopy)
virtual CombinedMassUncertaintyComponentclone () const
virtual ~CombinedMassUncertaintyComponent ()
virtual StatusCode setCaloTerm (UncertaintyGroup *caloComp)
virtual StatusCode setTATerm (UncertaintyGroup *TAComp)
virtual StatusCode setCaloWeights (const UncertaintyHistogram *caloWeights)
virtual StatusCode setTAWeights (const UncertaintyHistogram *TAWeights)
virtual StatusCode setCombWeightMassDefs (const CompMassDef::TypeEnum caloMassDef, const CompMassDef::TypeEnum TAMassDef)
virtual StatusCode setCombWeightParam (const CompParametrization::TypeEnum param)
virtual StatusCode initialize (TFile *histFile)
virtual CombMassComp::TypeEnum getCombMassType () const
virtual bool getValidityCalo (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidityTA (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual double getUncertaintyCalo (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual double getUncertaintyTA (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidUncertaintyCalo (double &unc, const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidUncertaintyTA (double &unc, const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool isAlwaysZero () const
virtual TString getName () const
virtual TString getValidName () const
virtual CompScaleVar::TypeEnum getScaleVar () const
virtual JetTopology::TypeEnum getTopology () const
virtual bool getValidity (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual double getUncertainty (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidUncertainty (double &unc, const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) 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 bool getValidityImpl (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual double getUncertaintyImpl (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidBool (const double validity) const
virtual double getSplitFactor (const xAOD::Jet &jet) const
virtual double getAbsMass (const xAOD::Jet &jet, const CompMassDef::TypeEnum massDef) const
virtual double getMassOverPt (const xAOD::Jet &jet, const CompMassDef::TypeEnum massDef) const
virtual double getMassOverE (const xAOD::Jet &jet, const CompMassDef::TypeEnum massDef) const

Protected Attributes

bool m_isInit {}
const TString m_uncHistName
const TString m_validHistName
const CompScaleVar::TypeEnum m_scaleVar
const JetTopology::TypeEnum m_topology
const float m_energyScale {}
const Interpolate::TypeEnum m_interpolate
const int m_splitNumber {}
int m_numExpectedHist {}
UncertaintyHistogramm_uncHist {}
UncertaintyHistogramm_validHist {}

Private Member Functions

 CombinedMassUncertaintyComponent (const std::string &name="")
double readHistoFromParam (const xAOD::JetFourMom_t &jet4vec, const UncertaintyHistogram &histo, const CompParametrization::TypeEnum param, const double massShiftFactor) const
virtual double getWeightFactorCalo (const xAOD::Jet &jet, const double shiftFactor) const
virtual double getWeightFactorTA (const xAOD::Jet &jet, const double shiftFactor) const
StatusCode calculateCombinedMass (const xAOD::Jet &jet, const double shiftFactorCalo, const double shiftFactorTA, double &combMass) const
void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

const CombMassComp::TypeEnum m_combMassType
bool m_setWeightMassDefs
UncertaintyGroupm_caloMassComp
UncertaintyGroupm_TAMassComp
const UncertaintyHistogramm_caloMassWeight
const UncertaintyHistogramm_TAMassWeight
JetFourMomAccessor m_caloMassScale_weights
JetFourMomAccessor m_TAMassScale_weights
CompParametrization::TypeEnum m_weightParam
std::string m_truthLabelName
std::vector< LargeRJetTruthLabel::TypeEnumm_truthLabels
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 17 of file CombinedMassUncertaintyComponent.h.

Constructor & Destructor Documentation

◆ CombinedMassUncertaintyComponent() [1/3]

jet::CombinedMassUncertaintyComponent::CombinedMassUncertaintyComponent ( const ComponentHelper & component)

Definition at line 37 of file CombinedMassUncertaintyComponent.cxx.

38 : UncertaintyComponent(component,0)
39 , m_combMassType(component.combMassType)
40 , m_setWeightMassDefs(false)
41 , m_caloMassComp(nullptr)
42 , m_TAMassComp(nullptr)
43 , m_caloMassWeight(nullptr)
44 , m_TAMassWeight(nullptr)
48 , m_truthLabelName(component.LargeRJetTruthLabelName)
49 , m_truthLabels(component.LargeRJetTruthLabels)
50{
51 ATH_MSG_DEBUG("Created CombinedMassUncertaintyComponent named " << getName().Data());
52}
#define ATH_MSG_DEBUG(x)
@ Data
Definition BaseObject.h:11
std::vector< LargeRJetTruthLabel::TypeEnum > m_truthLabels
UncertaintyComponent(const ComponentHelper &component, const size_t numHist=1)
virtual TString getName() const

◆ CombinedMassUncertaintyComponent() [2/3]

jet::CombinedMassUncertaintyComponent::CombinedMassUncertaintyComponent ( const CombinedMassUncertaintyComponent & toCopy)

Definition at line 54 of file CombinedMassUncertaintyComponent.cxx.

55 : UncertaintyComponent(toCopy)
56 , m_combMassType(toCopy.m_combMassType)
57 , m_setWeightMassDefs(toCopy.m_setWeightMassDefs)
58 , m_caloMassComp(nullptr)
59 , m_TAMassComp(nullptr)
60 , m_caloMassWeight(toCopy.m_caloMassWeight)
61 , m_TAMassWeight(toCopy.m_TAMassWeight)
62 , m_caloMassScale_weights(toCopy.m_caloMassScale_weights)
63 , m_TAMassScale_weights(toCopy.m_TAMassScale_weights)
64 , m_weightParam(toCopy.m_weightParam)
65 , m_truthLabelName(toCopy.m_truthLabelName)
66 , m_truthLabels(toCopy.m_truthLabels)
67{
68 ATH_MSG_DEBUG("Creating copy of CombinedMassUncertaintyComponent named " << getName().Data());
69 if (toCopy.m_caloMassComp)
70 m_caloMassComp = new UncertaintyGroup(*toCopy.m_caloMassComp);
71 if (toCopy.m_TAMassComp)
72 m_TAMassComp = new UncertaintyGroup(*toCopy.m_TAMassComp);
73}

◆ ~CombinedMassUncertaintyComponent()

jet::CombinedMassUncertaintyComponent::~CombinedMassUncertaintyComponent ( )
virtual

◆ CombinedMassUncertaintyComponent() [3/3]

jet::CombinedMassUncertaintyComponent::CombinedMassUncertaintyComponent ( const std::string & name = "")
private

Member Function Documentation

◆ calculateCombinedMass()

StatusCode jet::CombinedMassUncertaintyComponent::calculateCombinedMass ( const xAOD::Jet & jet,
const double shiftFactorCalo,
const double shiftFactorTA,
double & combMass ) const
private

Definition at line 313 of file CombinedMassUncertaintyComponent.cxx.

314{
315 // Accessors for the scales we need
316 static const JetFourMomAccessor caloMassScale(CompMassDef::getJetScaleString(CompMassDef::CaloMass).Data());
317 static const JetFourMomAccessor TAMassScale(CompMassDef::getJetScaleString(CompMassDef::TAMass).Data());
318 static const JetFourMomAccessor combMassScale(CompMassDef::getJetScaleString(CompMassDef::CombMassQCD).Data());
319
320 // Get the weight factors
321 const double factorCalo = getWeightFactorCalo(jet,shiftFactorCalo);
322 const double factorTA = getWeightFactorTA(jet,shiftFactorTA);
323
324 // Watch for division by zero
325 if (factorCalo+factorTA == 0)
326 {
327 if (combMassScale.m(jet) == 0)
328 {
329 // JetCalibTools sets the mass to zero when this situation occurs
330 // This is therefore not an error state, rather we want to be consistent
331 combMass = 0;
332 return StatusCode::SUCCESS;
333 }
334 else
335 {
336 // We somehow have invalid calo and TA masses, but a "valid" combined mass
337 // This is an error state that should result in a message to the user
338 // If this occurs, most likely there is something wrong in the inputs
339 ATH_MSG_ERROR("Encountered division by zero when calculating weights: mCalo = " << caloMassScale.m(jet) << ", mTA = " << TAMassScale.m(jet) << ", mComb = " << combMassScale.m(jet));
340 return StatusCode::FAILURE;
341 }
342 }
343
344 // Calculate the weights
345 const double caloWeight = factorCalo/(factorCalo+factorTA);
346 const double TAWeight = factorTA/(factorCalo+factorTA);
347
348 // Watch for zero masses
349 // If one mass is zero, use the other without a weight
350 // If both are zero, it doesn't matter, the combined mass is zero
351 if (caloMassScale.m(jet) == 0)
352 combMass = TAMassScale.m(jet)*shiftFactorTA;
353 else if (TAMassScale.m(jet) == 0)
354 combMass = caloMassScale.m(jet)*shiftFactorCalo;
355 else
356 combMass = (caloMassScale.m(jet)*shiftFactorCalo*caloWeight) + (TAMassScale.m(jet)*shiftFactorTA*TAWeight);
357
358 return StatusCode::SUCCESS;
359}
#define ATH_MSG_ERROR(x)
virtual double getWeightFactorCalo(const xAOD::Jet &jet, const double shiftFactor) const
virtual double getWeightFactorTA(const xAOD::Jet &jet, const double shiftFactor) const
TString getJetScaleString(const TypeEnum type)

◆ clone()

CombinedMassUncertaintyComponent * jet::CombinedMassUncertaintyComponent::clone ( ) const
virtual

Implements jet::UncertaintyComponent.

Definition at line 75 of file CombinedMassUncertaintyComponent.cxx.

76{
77 return new CombinedMassUncertaintyComponent(*this);
78}
CombinedMassUncertaintyComponent(const ComponentHelper &component)

◆ getAbsMass()

double jet::UncertaintyComponent::getAbsMass ( const xAOD::Jet & jet,
const CompMassDef::TypeEnum massDef ) const
protectedvirtualinherited

Definition at line 309 of file UncertaintyComponent.cxx.

310{
311 // Check for the simple case (where we want the default four-vector itself)
312 if (massDef == CompMassDef::UNKNOWN || massDef == CompMassDef::FourVecMass)
313 return jet.m();
314
315 // Not the simple case, check for the specified four-vector instead and return it if it is available
316 JetFourMomAccessor scale(CompMassDef::getJetScaleString(massDef).Data());
317 if (scale.isAvailable(jet))
318 return scale(jet).M();
319
320 // Fall-back on the TA moment as a float if applicable (legacy support)
321 SG::AuxElement::ConstAccessor<float> scaleTAMoment("JetTrackAssistedMassCalibrated");
322 if (massDef == CompMassDef::TAMass && scaleTAMoment.isAvailable(jet))
323 return scaleTAMoment(jet);
324
325 // Fall-back on the calo mass as the 4-vec if applicable (legacy support)
326 if (massDef == CompMassDef::CaloMass)
327 return jet.m();
328
329 // Specified scale is not available, error
330 ATH_MSG_ERROR("Failed to retrieve the " << CompMassDef::enumToString(massDef).Data() << " mass from the jet");
331 return JESUNC_ERROR_CODE;
332}
virtual double m() const
The invariant mass of the particle.
Definition Jet_v1.cxx:59
TString enumToString(const TypeEnum type)

◆ getCombMassType()

virtual CombMassComp::TypeEnum jet::CombinedMassUncertaintyComponent::getCombMassType ( ) const
inlinevirtual

Definition at line 34 of file CombinedMassUncertaintyComponent.h.

34{ return m_combMassType; }

◆ getMassOverE()

double jet::UncertaintyComponent::getMassOverE ( const xAOD::Jet & jet,
const CompMassDef::TypeEnum massDef ) const
protectedvirtualinherited

Definition at line 360 of file UncertaintyComponent.cxx.

361{
362 // Check for the simple case (where we want the default four-vector itself)
363 if (massDef == CompMassDef::UNKNOWN || massDef == CompMassDef::FourVecMass)
364 return jet.m()/jet.e();
365
366 // Not the simple case, check for the specified four-vector instead and return it if it is available
367 JetFourMomAccessor scale(CompMassDef::getJetScaleString(massDef).Data());
368 if (scale.isAvailable(jet))
369 return scale(jet).M()/scale(jet).E();
370
371 // Fall-back on the TA moment as a float if applicable (legacy support)
372 SG::AuxElement::ConstAccessor<float> scaleTAMoment("JetTrackAssistedMassCalibrated");
373 if (massDef == CompMassDef::TAMass && scaleTAMoment.isAvailable(jet))
374 return scaleTAMoment(jet)/jet.e();
375
376 // Fall-back on the calo mass as the 4-vec if applicable (legacy support)
377 if (massDef == CompMassDef::CaloMass)
378 return jet.m()/jet.e();
379
380 // Specified scale is not available, error
381 ATH_MSG_ERROR("Failed to retrieve the " << CompMassDef::enumToString(massDef).Data() << " mass from the jet");
382 return JESUNC_ERROR_CODE;
383
384}
virtual double e() const
The total energy of the particle.
Definition Jet_v1.cxx:63

◆ getMassOverPt()

double jet::UncertaintyComponent::getMassOverPt ( const xAOD::Jet & jet,
const CompMassDef::TypeEnum massDef ) const
protectedvirtualinherited

Definition at line 334 of file UncertaintyComponent.cxx.

335{
336 // Check for the simple case (where we want the default four-vector itself)
337 if (massDef == CompMassDef::UNKNOWN || massDef == CompMassDef::FourVecMass)
338 return jet.m()/jet.pt();
339
340 // Not the simple case, check for the specified four-vector instead and return it if it is available
341 JetFourMomAccessor scale(CompMassDef::getJetScaleString(massDef).Data());
342 if (scale.isAvailable(jet))
343 return scale(jet).M()/scale(jet).Pt();
344
345 // Fall-back on the TA moment as a float if applicable (legacy support)
346 SG::AuxElement::ConstAccessor<float> scaleTAMoment("JetTrackAssistedMassCalibrated");
347 if (massDef == CompMassDef::TAMass && scaleTAMoment.isAvailable(jet))
348 return scaleTAMoment(jet)/jet.pt();
349
350 // Fall-back on the calo mass as the 4-vec if applicable (legacy support)
351 if (massDef == CompMassDef::CaloMass)
352 return jet.m()/jet.pt();
353
354 // Specified scale is not available, error
355 ATH_MSG_ERROR("Failed to retrieve the " << CompMassDef::enumToString(massDef).Data() << " mass from the jet");
356 return JESUNC_ERROR_CODE;
357
358}
virtual double pt() const
The transverse momentum ( ) of the particle.
Definition Jet_v1.cxx:44

◆ getName()

virtual TString jet::UncertaintyComponent::getName ( ) const
inlinevirtualinherited

Definition at line 35 of file UncertaintyComponent.h.

35{ return m_uncHistName; }

◆ getScaleVar()

virtual CompScaleVar::TypeEnum jet::UncertaintyComponent::getScaleVar ( ) const
inlinevirtualinherited

Definition at line 37 of file UncertaintyComponent.h.

37{ return m_scaleVar; }
const CompScaleVar::TypeEnum m_scaleVar

◆ getSplitFactor()

double jet::UncertaintyComponent::getSplitFactor ( const xAOD::Jet & jet) const
protectedvirtualinherited

Definition at line 196 of file UncertaintyComponent.cxx.

197{
198 // Immediate return for the most common case
199 if (!m_splitNumber)
200 return 1;
201
202 // SplitNumber was specified, we have to calculate the factor
203 double splitFactor = 1;
204 const TH1* histo = m_uncHist->getHisto();
205
206 if (m_splitNumber == 1 || m_splitNumber == -1)
207 {
208 // Straight line in log(pT) from 0 to 1
209 // y = mx+b
210 // m = 1/[log(max)-log(min)]
211 // x = log(min) --> b = -m*log(min)
212
213 const double minPt = histo->GetXaxis()->GetBinLowEdge(1);
214 const double maxPt = histo->GetXaxis()->GetBinLowEdge(histo->GetNbinsX()+1);
215 const double valPt = jet.pt()*m_energyScale;
216
217 const double slope = 1./(log(maxPt)-log(minPt));
218 const double intercept = -slope*log(minPt);
219
220 splitFactor = slope*log(valPt <= minPt ? minPt+1.e-3 : valPt >= maxPt ? maxPt-1.e-3 : valPt)+intercept;
221 }
222 else if (m_splitNumber == 2 || m_splitNumber == -2)
223 {
224 // Straight line in |eta| from 0 to 1
225 // y = mx + b
226 // m = 1/(max - min)
227 // x = min --> b = -m*min
228 const double minEta = 0;
229 const double maxEta = 4.5;
230 const double absEta = fabs(jet.eta());
231
232 const double slope = 1./(maxEta - minEta);
233 const double intercept = -slope*minEta;
234
235 splitFactor = slope*(absEta <= minEta ? minEta+1.e-3 : absEta >= maxEta ? maxEta-1.e-3 : absEta)+intercept;
236 }
237 else if (m_splitNumber == 3 || m_splitNumber == -3)
238 {
239 // Increasing with log(pT) and increasing with |eta|
240 // z = mx + ny + c
241 // z(min,min) = 0
242 // z(max,max) = 1
243 // Linear in both dimensions means need factor of 1/2 in a single dimension
244 // m = 0.5/[log(maxPt)-log(minPt)]
245 // n = 0.5/(maxEta - minEta)
246 // c = -minPt*m - minEta*n
247 // 2*z = (logx-logxmin)/(logxmax-logxmin) + (y-ymin)/(ymax-ymin)
248 const double minPt = histo->GetXaxis()->GetBinLowEdge(1);
249 const double maxPt = histo->GetXaxis()->GetBinLowEdge(histo->GetNbinsX()+1);
250 const double valPt = jet.pt()*m_energyScale;
251
252 const double minEta = 0;
253 const double maxEta = 4.5;
254 const double absEta = fabs(jet.eta());
255
256 const double slopePt = 1./(log(maxPt)-log(minPt));
257 const double slopeEta = 1./(maxEta-minEta);
258
259 const double fixedPt = valPt <= minPt ? minPt+1.e-3 : valPt >= maxPt ? maxPt - 1.e-3 : valPt;
260 const double fixedEta = absEta <= minEta ? minEta+1.e-3 : absEta >= maxEta ? maxEta-1.e-3 : absEta;
261
262 splitFactor = (slopePt*(log(fixedPt)-log(minPt)) + slopeEta*(fixedEta-minEta))/2.;
263 }
264 else if (m_splitNumber == 4 || m_splitNumber == -4)
265 {
266 // Increasing with log(pT) and decreasing with |eta|
267 // See description above, follows similarly
268 // 2*z = (logx-logxmin)/(logxmax-logxmin) + (ymax-y)/(ymax-ymin)
269 const double minPt = histo->GetXaxis()->GetBinLowEdge(1);
270 const double maxPt = histo->GetXaxis()->GetBinLowEdge(histo->GetNbinsX()+1);
271 const double valPt = jet.pt()*m_energyScale;
272
273 const double minEta = 0;
274 const double maxEta = 4.5;
275 const double absEta = fabs(jet.eta());
276
277 const double slopePt = 1./(log(maxPt)-log(minPt));
278 const double slopeEta = 1./(maxEta-minEta);
279
280 const double fixedPt = valPt <= minPt ? minPt+1.e-3 : valPt >= maxPt ? maxPt - 1.e-3 : valPt;
281 const double fixedEta = absEta <= minEta ? minEta+1.e-3 : absEta >= maxEta ? maxEta-1.e-3 : absEta;
282
283 splitFactor = (slopePt*(log(fixedPt)-log(minPt)) + slopeEta*(maxEta-fixedEta))/2.;
284 }
285
286
287 // Now check if this is the functional part or the complementary part
288 if (m_splitNumber < 0)
289 splitFactor = sqrt(1-splitFactor*splitFactor);
290
291 return splitFactor;
292}
UncertaintyHistogram * m_uncHist
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition Jet_v1.cxx:49
constexpr float maxEta
bool absEta(const xAOD::TauJet &tau, float &out)

◆ getTopology()

virtual JetTopology::TypeEnum jet::UncertaintyComponent::getTopology ( ) const
inlinevirtualinherited

Definition at line 38 of file UncertaintyComponent.h.

38{ return m_topology; }
const JetTopology::TypeEnum m_topology

◆ getUncertainty()

double jet::UncertaintyComponent::getUncertainty ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtualinherited

Definition at line 169 of file UncertaintyComponent.cxx.

170{
171 if (!m_isInit)
172 {
173 ATH_MSG_ERROR("Component hasn't been initialized: " << getName().Data());
174 return JESUNC_ERROR_CODE;
175 }
176 return getUncertaintyImpl(jet,eInfo)*getSplitFactor(jet);
177}
virtual double getUncertaintyImpl(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const =0
virtual double getSplitFactor(const xAOD::Jet &jet) const

◆ getUncertaintyCalo()

double jet::CombinedMassUncertaintyComponent::getUncertaintyCalo ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtual

Definition at line 440 of file CombinedMassUncertaintyComponent.cxx.

441{
442 return !m_caloMassComp ? 0 : m_caloMassComp->getUncertainty(jet,eInfo,CompScaleVar::Mass);
443}

◆ getUncertaintyImpl()

double jet::CombinedMassUncertaintyComponent::getUncertaintyImpl ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
protectedvirtual

Implements jet::UncertaintyComponent.

Definition at line 361 of file CombinedMassUncertaintyComponent.cxx.

362{
363 // Check if we need to do anything at all - this uncertainty may be zero based on the jet truth label
364 // Truth labels are usually not expected for this component, so check if we need to do this
365 if (!m_truthLabels.empty())
366 {
367 // Truth labels are specified, so we need to check if this jet is labelled appropriately or not
368 const SG::AuxElement::ConstAccessor<int> accTruthLabel(m_truthLabelName);
369 if (!accTruthLabel.isAvailable(jet) || accTruthLabel(jet) == LargeRJetTruthLabel::UNKNOWN)
370 {
371 ATH_MSG_ERROR("Unable to retrieve the LargeRJetTruthLabel: " << m_truthLabelName << " from the jet. Please use JetTruthLabelingTool before calling this function.");
372 return JESUNC_ERROR_CODE;
373 }
374 const LargeRJetTruthLabel::TypeEnum jetTruthLabel = LargeRJetTruthLabel::intToEnum(accTruthLabel(jet));
375
376 // We now have the truth jet label, check if it matches one of the label(s) assigned to this component
377 // The uncertainty is only applied to same-labelled jets (zero otherwise)
378 bool labelApplies = false;
380 {
381 if (aLabel == jetTruthLabel)
382 {
383 labelApplies = true;
384 break;
385 }
386 }
387 // If the jet is not of the relevant label, then there is no uncertainty for this jet
388 if (!labelApplies)
389 return 0;
390 }
391
392 // Get the per-part uncertainties
393 double uncCalo = 0;
394 if (m_caloMassComp && !m_caloMassComp->getValidUncertainty(uncCalo,jet,eInfo,CompScaleVar::Mass))
395 {
396 // Not valid
397 ATH_MSG_ERROR("Combined mass is outside of the validity range (calo part)");
398 return JESUNC_ERROR_CODE;
399 }
400 double uncTA = 0;
401 if (m_TAMassComp && !m_TAMassComp->getValidUncertainty(uncTA,jet,eInfo,CompScaleVar::Mass))
402 {
403 // Not valid
404 ATH_MSG_ERROR("Combined mass is outside of the validity range (TA part)");
405 return JESUNC_ERROR_CODE;
406 }
407
408 // Get the mass values (both up and down shifts)
409 // The resolution functions evaluated for masses shifted up and down may not be symmetric
410 // For now, take the average of the up and down shifts
411 // Note that we also only consider correlated shifts here
412 // Uncorrelated shifts can be handled as two separate components
413 // Anticorelated shifts are currently not supported (no need so far)
414 double massDefault = 0;
415 if (!calculateCombinedMass(jet,1,1,massDefault)) return JESUNC_ERROR_CODE;
416 if (massDefault == 0) return 0; // This is a relative uncertainty
417 double massUp = 0;
418 if (!calculateCombinedMass(jet,1+uncCalo,1+uncTA,massUp)) return JESUNC_ERROR_CODE;
419 double massDown = 0;
420 if (!calculateCombinedMass(jet,1-uncCalo,1-uncTA,massDown)) return JESUNC_ERROR_CODE;
421
422 const double massUncUp = fabs((massUp-massDefault)/massDefault);
423 const double massUncDown = fabs((massDown-massDefault)/massDefault);
424
425 return (massUncUp+massUncDown)/2.;
426}
StatusCode calculateCombinedMass(const xAOD::Jet &jet, const double shiftFactorCalo, const double shiftFactorTA, double &combMass) const
TypeEnum intToEnum(const int type)

◆ getUncertaintyTA()

double jet::CombinedMassUncertaintyComponent::getUncertaintyTA ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtual

Definition at line 445 of file CombinedMassUncertaintyComponent.cxx.

446{
447 return !m_TAMassComp ? 0 : m_TAMassComp->getUncertainty(jet,eInfo,CompScaleVar::Mass);
448}

◆ getValidBool()

bool jet::UncertaintyComponent::getValidBool ( const double validity) const
protectedvirtualinherited

Definition at line 301 of file UncertaintyComponent.cxx.

302{
303 if (validity < 1.e-5 && validity > -1.e-5) return false;
304 if (validity < 1+1.e-5 && validity > 1-1.e-5) return true;
305 ATH_MSG_ERROR(Form("Validity value not in expected range: %lf for histogram %s",validity,getValidName().Data()));
306 return false;
307}
virtual TString getValidName() const

◆ getValidity()

bool jet::UncertaintyComponent::getValidity ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtualinherited

Definition at line 159 of file UncertaintyComponent.cxx.

160{
161 if (!m_isInit)
162 {
163 ATH_MSG_ERROR("Component hasn't been initialized: " << getName().Data());
164 return false;
165 }
166 return getValidityImpl(jet,eInfo);
167}
virtual bool getValidityImpl(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const =0

◆ getValidityCalo()

bool jet::CombinedMassUncertaintyComponent::getValidityCalo ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtual

Definition at line 430 of file CombinedMassUncertaintyComponent.cxx.

431{
432 return !m_caloMassComp ? true : m_caloMassComp->getValidity(jet,eInfo,CompScaleVar::Mass);
433}

◆ getValidityImpl()

bool jet::CombinedMassUncertaintyComponent::getValidityImpl ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
protectedvirtual

Implements jet::UncertaintyComponent.

Definition at line 308 of file CombinedMassUncertaintyComponent.cxx.

309{
310 return getValidityCalo(jet,eInfo) && getValidityTA(jet,eInfo);
311}
virtual bool getValidityTA(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidityCalo(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const

◆ getValidityTA()

bool jet::CombinedMassUncertaintyComponent::getValidityTA ( const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtual

Definition at line 435 of file CombinedMassUncertaintyComponent.cxx.

436{
437 return !m_TAMassComp ? true : m_TAMassComp->getValidity(jet,eInfo,CompScaleVar::Mass);
438}

◆ getValidName()

virtual TString jet::UncertaintyComponent::getValidName ( ) const
inlinevirtualinherited

Definition at line 36 of file UncertaintyComponent.h.

36{ return m_validHistName; }

◆ getValidUncertainty()

bool jet::UncertaintyComponent::getValidUncertainty ( double & unc,
const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtualinherited

Definition at line 179 of file UncertaintyComponent.cxx.

180{
181 if (getValidity(jet,eInfo))
182 {
183 unc = getUncertainty(jet,eInfo);
184 return true;
185 }
186 return false;
187}
virtual double getUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual bool getValidity(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const

◆ getValidUncertaintyCalo()

bool jet::CombinedMassUncertaintyComponent::getValidUncertaintyCalo ( double & unc,
const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtual

Definition at line 450 of file CombinedMassUncertaintyComponent.cxx.

451{
452 return !m_caloMassComp ? true : m_caloMassComp->getValidUncertainty(unc,jet,eInfo,CompScaleVar::Mass);
453}

◆ getValidUncertaintyTA()

bool jet::CombinedMassUncertaintyComponent::getValidUncertaintyTA ( double & unc,
const xAOD::Jet & jet,
const xAOD::EventInfo & eInfo ) const
virtual

Definition at line 455 of file CombinedMassUncertaintyComponent.cxx.

456{
457 return !m_TAMassComp ? true : m_TAMassComp->getValidUncertainty(unc,jet,eInfo,CompScaleVar::Mass);
458}

◆ getWeightFactorCalo()

double jet::CombinedMassUncertaintyComponent::getWeightFactorCalo ( const xAOD::Jet & jet,
const double shiftFactor ) const
privatevirtual

Definition at line 508 of file CombinedMassUncertaintyComponent.cxx.

509{
510 if(m_caloMassScale_weights(jet).M() < 0.0) return 0;
511 if(!m_caloMassWeight) return 0;
513}
double readHistoFromParam(const xAOD::JetFourMom_t &jet4vec, const UncertaintyHistogram &histo, const CompParametrization::TypeEnum param, const double massShiftFactor) const

◆ getWeightFactorTA()

double jet::CombinedMassUncertaintyComponent::getWeightFactorTA ( const xAOD::Jet & jet,
const double shiftFactor ) const
privatevirtual

Definition at line 515 of file CombinedMassUncertaintyComponent.cxx.

516{
517 if(m_TAMassScale_weights(jet).M() < 0.0) return 0;
518 if(!m_TAMassWeight) return 0;
520}

◆ initialize()

StatusCode jet::CombinedMassUncertaintyComponent::initialize ( TFile * histFile)
virtual

Reimplemented from jet::UncertaintyComponent.

Definition at line 203 of file CombinedMassUncertaintyComponent.cxx.

204{
205 // We are completely different here than the normal case
206 // Ignore the base component initialization procedure
207
208 // Prevent double-initialization
209 if (m_isInit)
210 {
211 ATH_MSG_ERROR("Component is already initialized: " << getName().Data());
212 return StatusCode::FAILURE;
213 }
214
215 // Ensure that the combination weights exist
216 if (!m_caloMassWeight)
217 {
218 ATH_MSG_ERROR("Calorimeter mass weights were not defined: " << getName().Data());
219 return StatusCode::FAILURE;
220 }
221 if (!m_TAMassWeight)
222 {
223 ATH_MSG_ERROR("Track-assisted mass weights were not defined: " << getName().Data());
224 return StatusCode::FAILURE;
225 }
226
227 // Ensure that the weight mass definitions were set
229 {
230 ATH_MSG_ERROR("The mass definitions for the combination weight factors were not set: " << getName().Data());
231 return StatusCode::FAILURE;
232 }
233
234 // Understand what situation we are in
236 {
237 ATH_MSG_ERROR("Unknown combined mass uncertainty type: " << getName().Data());
238 return StatusCode::FAILURE;
239 }
241 {
242 // Only the calo mass component should be specified
243 if (!m_caloMassComp)
244 {
245 ATH_MSG_ERROR("Calo mass term was not specified for a CombMass_calo component: " << getName().Data());
246 return StatusCode::FAILURE;
247 }
248 if (m_TAMassComp)
249 {
250 ATH_MSG_ERROR("TA mass term was specified for a CombMass_calo component: " << getName().Data());
251 return StatusCode::FAILURE;
252 }
253 }
255 {
256 // Only the TA mass component should be specified
257 if (m_caloMassComp)
258 {
259 ATH_MSG_ERROR("Calo mass term was specified for a CombMass_TA component: " << getName().Data());
260 return StatusCode::FAILURE;
261 }
262 if (!m_TAMassComp)
263 {
264 ATH_MSG_ERROR("TA mass term was not specified for a CombMass_TA component: " << getName().Data());
265 return StatusCode::FAILURE;
266 }
267 }
269 {
270 // Both components should be specified
271 if (!m_caloMassComp)
272 {
273 ATH_MSG_ERROR("Calo mass term was not specified for a CombMass_both component: " << getName().Data());
274 return StatusCode::FAILURE;
275 }
276 if (!m_TAMassComp)
277 {
278 ATH_MSG_ERROR("TA mass term was not specified for a CombMass_both component: " << getName().Data());
279 return StatusCode::FAILURE;
280 }
281 }
282
283 // Initialize the component(s)
284 if (m_caloMassComp && m_caloMassComp->initialize(histFile).isFailure())
285 {
286 ATH_MSG_ERROR("Failed to initialize calo mass portion of a comb mass uncertainty: " << getName().Data());
287 return StatusCode::FAILURE;
288 }
289 if (m_TAMassComp && m_TAMassComp->initialize(histFile).isFailure())
290 {
291 ATH_MSG_ERROR("Failed to initialize TA mass portion of a comb mass uncertainty: " << getName().Data());
292 return StatusCode::FAILURE;
293 }
294
295
296 // Done!
297 m_isInit = true;
298 return StatusCode::SUCCESS;
299}

◆ 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)

◆ isAlwaysZero()

bool jet::CombinedMassUncertaintyComponent::isAlwaysZero ( ) const
virtual

Reimplemented from jet::UncertaintyComponent.

Definition at line 530 of file CombinedMassUncertaintyComponent.cxx.

531{
532 if (!m_isInit)
533 {
534 ATH_MSG_ERROR("Cannot call method before initialization, component: " << getName().Data());
535 return false;
536 }
537
538 return (!m_caloMassComp || m_caloMassComp->isAlwaysZero()) && (!m_TAMassComp || m_TAMassComp->isAlwaysZero());
539}

◆ 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 }

◆ readHistoFromParam()

double jet::CombinedMassUncertaintyComponent::readHistoFromParam ( const xAOD::JetFourMom_t & jet4vec,
const UncertaintyHistogram & histo,
const CompParametrization::TypeEnum param,
const double massShiftFactor ) const
private

Definition at line 460 of file CombinedMassUncertaintyComponent.cxx.

461{
462 double resolution = 0;
463 switch (param)
464 {
466 resolution = histo.getValue(jet4vec.Pt()*m_energyScale);
467 break;
469 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.Eta());
470 break;
472 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.M()*m_energyScale*massShiftFactor);
473 break;
475 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,fabs(jet4vec.Eta()));
476 break;
478 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.M()*massShiftFactor/jet4vec.Pt());
479 break;
481 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.M()*massShiftFactor/jet4vec.Pt(),jet4vec.Eta());
482 break;
484 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.M()*massShiftFactor/jet4vec.Pt(),fabs(jet4vec.Eta()));
485 break;
487 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.M()*m_energyScale*massShiftFactor,jet4vec.Eta());
488 break;
490 resolution = histo.getValue(jet4vec.Pt()*m_energyScale,jet4vec.M()*m_energyScale*massShiftFactor,fabs(jet4vec.Eta()));
491 break;
493 resolution = histo.getValue(jet4vec.E()*m_energyScale,log(jet4vec.M()*massShiftFactor/jet4vec.E()));
494 break;
496 resolution = histo.getValue(jet4vec.E()*m_energyScale,log(jet4vec.M()*massShiftFactor/jet4vec.E()),jet4vec.Eta());
497 break;
499 resolution = histo.getValue(jet4vec.E()*m_energyScale,log(jet4vec.M()*massShiftFactor/jet4vec.E()),fabs(jet4vec.Eta()));
500 break;
501 default:
502 ATH_MSG_ERROR("Failed to read histogram due to unknown parametrization type in " << getName());
503 break;
504 }
505 return resolution == 0 ? 0 : 1./(resolution*resolution);
506}
double resolution[nGasTypes][nParametersResolution]

◆ setCaloTerm()

StatusCode jet::CombinedMassUncertaintyComponent::setCaloTerm ( UncertaintyGroup * caloComp)
virtual

Definition at line 86 of file CombinedMassUncertaintyComponent.cxx.

87{
88 if (m_isInit)
89 {
90 ATH_MSG_ERROR("Can only set the calo mass term before initialization: " << getName().Data());
91 return StatusCode::FAILURE;
92 }
93 if (m_caloMassComp != nullptr)
94 {
95 ATH_MSG_ERROR("Calo mass term has already been set, blocking double-init: " << getName().Data());
96 return StatusCode::FAILURE;
97 }
98 m_caloMassComp = caloComp;
99
100 return StatusCode::SUCCESS;
101}

◆ setCaloWeights()

StatusCode jet::CombinedMassUncertaintyComponent::setCaloWeights ( const UncertaintyHistogram * caloWeights)
virtual

Definition at line 120 of file CombinedMassUncertaintyComponent.cxx.

121{
122 if (m_isInit)
123 {
124 ATH_MSG_ERROR("Can only set the calo mass weights before initialization: " << getName().Data());
125 return StatusCode::FAILURE;
126 }
127 if (m_caloMassWeight != nullptr)
128 {
129 ATH_MSG_ERROR("Calo mass weights has already been set, blocking double-init: " << getName().Data());
130 return StatusCode::FAILURE;
131 }
132 m_caloMassWeight = caloWeights;
133
134 return StatusCode::SUCCESS;
135}

◆ setCombWeightMassDefs()

StatusCode jet::CombinedMassUncertaintyComponent::setCombWeightMassDefs ( const CompMassDef::TypeEnum caloMassDef,
const CompMassDef::TypeEnum TAMassDef )
virtual

Definition at line 154 of file CombinedMassUncertaintyComponent.cxx.

155{
156 if (m_isInit)
157 {
158 ATH_MSG_ERROR("Can only set the weight mass definitions before initialization: " << getName().Data());
159 return StatusCode::FAILURE;
160 }
162 {
163 ATH_MSG_ERROR("Already set the weights, blocking double-setting: " << getName().Data());
164 return StatusCode::FAILURE;
165 }
166 switch (caloMassDef)
167 {
170 m_caloMassScale_weights = JetFourMomAccessor(CompMassDef::getJetScaleString(caloMassDef).Data());
171 break;
172 default:
173 ATH_MSG_ERROR("Unsupported mass parametrization for the combined mass calo weights: " << getName().Data());
174 return StatusCode::FAILURE;
175 }
176 switch (TAMassDef)
177 {
180 m_TAMassScale_weights = JetFourMomAccessor(CompMassDef::getJetScaleString(TAMassDef).Data());
181 break;
182 default:
183 ATH_MSG_ERROR("Unsupported mass parametrization for the combined mass TA weights: " << getName().Data());
184 return StatusCode::FAILURE;
185 }
186
187 m_setWeightMassDefs = true;
188 return StatusCode::SUCCESS;
189}

◆ setCombWeightParam()

StatusCode jet::CombinedMassUncertaintyComponent::setCombWeightParam ( const CompParametrization::TypeEnum param)
virtual

Definition at line 191 of file CombinedMassUncertaintyComponent.cxx.

192{
193 if (m_isInit)
194 {
195 ATH_MSG_ERROR("Can only set the weight parametrization before initialization: " << getName().Data());
196 return StatusCode::FAILURE;
197 }
198 m_weightParam = param;
199
200 return StatusCode::SUCCESS;
201}

◆ 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}

◆ setTATerm()

StatusCode jet::CombinedMassUncertaintyComponent::setTATerm ( UncertaintyGroup * TAComp)
virtual

Definition at line 103 of file CombinedMassUncertaintyComponent.cxx.

104{
105 if (m_isInit)
106 {
107 ATH_MSG_ERROR("Can only set the TA mass term before initialization: " << getName().Data());
108 return StatusCode::FAILURE;
109 }
110 if (m_TAMassComp != nullptr)
111 {
112 ATH_MSG_ERROR("TA mass term has already been set, blocking double-init: " << getName().Data());
113 return StatusCode::FAILURE;
114 }
115 m_TAMassComp = TAComp;
116
117 return StatusCode::SUCCESS;
118}

◆ setTAWeights()

StatusCode jet::CombinedMassUncertaintyComponent::setTAWeights ( const UncertaintyHistogram * TAWeights)
virtual

Definition at line 137 of file CombinedMassUncertaintyComponent.cxx.

138{
139 if (m_isInit)
140 {
141 ATH_MSG_ERROR("Can only set the TA mass weights before initialization: " << getName().Data());
142 return StatusCode::FAILURE;
143 }
144 if (m_TAMassWeight != nullptr)
145 {
146 ATH_MSG_ERROR("TA mass weights has already been set, blocking double-init: " << getName().Data());
147 return StatusCode::FAILURE;
148 }
149 m_TAMassWeight = TAWeights;
150
151 return StatusCode::SUCCESS;
152}

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_caloMassComp

UncertaintyGroup* jet::CombinedMassUncertaintyComponent::m_caloMassComp
private

Definition at line 61 of file CombinedMassUncertaintyComponent.h.

◆ m_caloMassScale_weights

JetFourMomAccessor jet::CombinedMassUncertaintyComponent::m_caloMassScale_weights
private

Definition at line 67 of file CombinedMassUncertaintyComponent.h.

◆ m_caloMassWeight

const UncertaintyHistogram* jet::CombinedMassUncertaintyComponent::m_caloMassWeight
private

Definition at line 64 of file CombinedMassUncertaintyComponent.h.

◆ m_combMassType

const CombMassComp::TypeEnum jet::CombinedMassUncertaintyComponent::m_combMassType
private

Definition at line 57 of file CombinedMassUncertaintyComponent.h.

◆ m_energyScale

const float jet::UncertaintyComponent::m_energyScale {}
protectedinherited

Definition at line 55 of file UncertaintyComponent.h.

55{};

◆ m_imsg

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

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_interpolate

const Interpolate::TypeEnum jet::UncertaintyComponent::m_interpolate
protectedinherited

Definition at line 56 of file UncertaintyComponent.h.

◆ m_isInit

bool jet::UncertaintyComponent::m_isInit {}
protectedinherited

Definition at line 50 of file UncertaintyComponent.h.

50{};

◆ 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_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_numExpectedHist

int jet::UncertaintyComponent::m_numExpectedHist {}
protectedinherited

Definition at line 59 of file UncertaintyComponent.h.

59{};

◆ m_scaleVar

const CompScaleVar::TypeEnum jet::UncertaintyComponent::m_scaleVar
protectedinherited

Definition at line 53 of file UncertaintyComponent.h.

◆ m_setWeightMassDefs

bool jet::CombinedMassUncertaintyComponent::m_setWeightMassDefs
private

Definition at line 58 of file CombinedMassUncertaintyComponent.h.

◆ m_splitNumber

const int jet::UncertaintyComponent::m_splitNumber {}
protectedinherited

Definition at line 57 of file UncertaintyComponent.h.

57{};

◆ m_TAMassComp

UncertaintyGroup* jet::CombinedMassUncertaintyComponent::m_TAMassComp
private

Definition at line 62 of file CombinedMassUncertaintyComponent.h.

◆ m_TAMassScale_weights

JetFourMomAccessor jet::CombinedMassUncertaintyComponent::m_TAMassScale_weights
private

Definition at line 68 of file CombinedMassUncertaintyComponent.h.

◆ m_TAMassWeight

const UncertaintyHistogram* jet::CombinedMassUncertaintyComponent::m_TAMassWeight
private

Definition at line 65 of file CombinedMassUncertaintyComponent.h.

◆ m_topology

const JetTopology::TypeEnum jet::UncertaintyComponent::m_topology
protectedinherited

Definition at line 54 of file UncertaintyComponent.h.

◆ m_truthLabelName

std::string jet::CombinedMassUncertaintyComponent::m_truthLabelName
private

Definition at line 73 of file CombinedMassUncertaintyComponent.h.

◆ m_truthLabels

std::vector<LargeRJetTruthLabel::TypeEnum> jet::CombinedMassUncertaintyComponent::m_truthLabels
private

Definition at line 74 of file CombinedMassUncertaintyComponent.h.

◆ m_uncHist

UncertaintyHistogram* jet::UncertaintyComponent::m_uncHist {}
protectedinherited

Definition at line 60 of file UncertaintyComponent.h.

60{};

◆ m_uncHistName

const TString jet::UncertaintyComponent::m_uncHistName
protectedinherited

Definition at line 51 of file UncertaintyComponent.h.

◆ m_validHist

UncertaintyHistogram* jet::UncertaintyComponent::m_validHist {}
protectedinherited

Definition at line 61 of file UncertaintyComponent.h.

61{};

◆ m_validHistName

const TString jet::UncertaintyComponent::m_validHistName
protectedinherited

Definition at line 52 of file UncertaintyComponent.h.

◆ m_weightParam

CompParametrization::TypeEnum jet::CombinedMassUncertaintyComponent::m_weightParam
private

Definition at line 70 of file CombinedMassUncertaintyComponent.h.


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