ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
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. More...
 

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. More...
 

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. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

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 }

◆ 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

Definition at line 20 of file CombinedMassUncertaintyComponent.cxx.

21  : UncertaintyComponent(ComponentHelper(name),0)
23  , m_setWeightMassDefs(false)
24  , m_caloMassComp(nullptr)
25  , m_TAMassComp(nullptr)
26  , m_caloMassWeight(nullptr)
27  , m_TAMassWeight(nullptr)
31  , m_truthLabelName("")
32  , m_truthLabels()
33 {
35 }

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 }

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

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

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

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

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

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

◆ getTopology()

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

Definition at line 38 of file UncertaintyComponent.h.

38 { return 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 }

◆ getUncertaintyCalo()

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

Definition at line 440 of file CombinedMassUncertaintyComponent.cxx.

441 {
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
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;
379  for (const LargeRJetTruthLabel::TypeEnum aLabel : m_truthLabels)
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;
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;
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 }

◆ getUncertaintyTA()

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

Definition at line 445 of file CombinedMassUncertaintyComponent.cxx.

446 {
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 }

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

◆ getValidityCalo()

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

Definition at line 430 of file CombinedMassUncertaintyComponent.cxx.

431 {
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 }

◆ getValidityTA()

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

Definition at line 435 of file CombinedMassUncertaintyComponent.cxx.

436 {
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 }

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

◆ 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
228  if (!m_setWeightMassDefs)
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  }
254  else if (m_combMassType == CombMassComp::TA)
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  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

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

◆ 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  {
169  case CompMassDef::TAMass:
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  {
179  case CompMassDef::TAMass:
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.

◆ m_imsg

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

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

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

◆ m_lvl

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

Current logging level.

Definition at line 138 of file AthMessaging.h.

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

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

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

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

◆ 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:
LargeRJetTruthLabel::TypeEnum
TypeEnum
Definition: LargeRJetLabelEnum.h:14
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
jet::UncertaintyComponent::getValidityImpl
virtual bool getValidityImpl(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const =0
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
jet::CompParametrization::UNKNOWN
@ UNKNOWN
Definition: UncertaintyEnum.h:46
jet::CompMassDef::FourVecMass
@ FourVecMass
Definition: UncertaintyEnum.h:73
jet::CombinedMassUncertaintyComponent::m_weightParam
CompParametrization::TypeEnum m_weightParam
Definition: CombinedMassUncertaintyComponent.h:70
jet::UncertaintyComponent::m_energyScale
const float m_energyScale
Definition: UncertaintyComponent.h:55
jet::UncertaintyComponent::getSplitFactor
virtual double getSplitFactor(const xAOD::Jet &jet) const
Definition: UncertaintyComponent.cxx:196
jet::CombinedMassUncertaintyComponent::m_TAMassWeight
const UncertaintyHistogram * m_TAMassWeight
Definition: CombinedMassUncertaintyComponent.h:65
jet::CombinedMassUncertaintyComponent::calculateCombinedMass
StatusCode calculateCombinedMass(const xAOD::Jet &jet, const double shiftFactorCalo, const double shiftFactorTA, double &combMass) const
Definition: CombinedMassUncertaintyComponent.cxx:313
LargeRJetTruthLabel::UNKNOWN
@ UNKNOWN
Definition: LargeRJetLabelEnum.h:15
Data
@ Data
Definition: BaseObject.h:11
jet::CompMassDef::CaloMass
@ CaloMass
Definition: UncertaintyEnum.h:74
jet::UncertaintyHistogram::getHisto
const TH1 * getHisto() const
Definition: UncertaintyHistogram.h:37
jet::CompParametrization::Pt
@ Pt
Definition: UncertaintyEnum.h:47
jet::UncertaintyComponent::m_uncHistName
const TString m_uncHistName
Definition: UncertaintyComponent.h:51
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
jet::CombinedMassUncertaintyComponent::m_TAMassScale_weights
JetFourMomAccessor m_TAMassScale_weights
Definition: CombinedMassUncertaintyComponent.h:68
jet::CombinedMassUncertaintyComponent::m_caloMassComp
UncertaintyGroup * m_caloMassComp
Definition: CombinedMassUncertaintyComponent.h:61
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
jet::UncertaintyComponent::m_isInit
bool m_isInit
Definition: UncertaintyComponent.h:50
Dedxcorrection::resolution
double resolution[nGasTypes][nParametersResolution]
Definition: TRT_ToT_Corrections.h:46
jet::CombMassComp::UNKNOWN
@ UNKNOWN
Definition: UncertaintyEnum.h:196
jet::CompParametrization::PtAbsEta
@ PtAbsEta
Definition: UncertaintyEnum.h:49
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
PUfitVar::maxEta
constexpr float maxEta
Definition: GepMETPufitAlg.cxx:13
jet::CompParametrization::PtAbsMassAbsEta
@ PtAbsMassAbsEta
Definition: UncertaintyEnum.h:55
jet::CombinedMassUncertaintyComponent::getWeightFactorTA
virtual double getWeightFactorTA(const xAOD::Jet &jet, const double shiftFactor) const
Definition: CombinedMassUncertaintyComponent.cxx:515
JESUNC_ERROR_CODE
#define JESUNC_ERROR_CODE
Definition: Reconstruction/Jet/JetUncertainties/JetUncertainties/Helpers.h:23
jet::UncertaintyComponent::m_validHistName
const TString m_validHistName
Definition: UncertaintyComponent.h:52
jet::CombinedMassUncertaintyComponent::getValidityTA
virtual bool getValidityTA(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
Definition: CombinedMassUncertaintyComponent.cxx:435
jet::CombinedMassUncertaintyComponent::readHistoFromParam
double readHistoFromParam(const xAOD::JetFourMom_t &jet4vec, const UncertaintyHistogram &histo, const CompParametrization::TypeEnum param, const double massShiftFactor) const
Definition: CombinedMassUncertaintyComponent.cxx:460
jet::CombinedMassUncertaintyComponent::m_caloMassWeight
const UncertaintyHistogram * m_caloMassWeight
Definition: CombinedMassUncertaintyComponent.h:64
jet::CompParametrization::PtMassAbsEta
@ PtMassAbsEta
Definition: UncertaintyEnum.h:53
jet::UncertaintyGroup::getUncertainty
virtual double getUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo, const CompScaleVar::TypeEnum scaleVar) const
Definition: UncertaintyGroup.cxx:386
jet::CompParametrization::eLOGmOeEta
@ eLOGmOeEta
Definition: UncertaintyEnum.h:57
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
JESUNC_SAFE_DELETE
#define JESUNC_SAFE_DELETE(T)
Definition: Reconstruction/Jet/JetUncertainties/JetUncertainties/Helpers.h:25
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
jet::CompMassDef::getJetScaleString
TString getJetScaleString(const TypeEnum type)
Definition: UncertaintyEnum.cxx:225
jet::CompMassDef::TAMass
@ TAMass
Definition: UncertaintyEnum.h:75
jet::CombinedMassUncertaintyComponent::m_setWeightMassDefs
bool m_setWeightMassDefs
Definition: CombinedMassUncertaintyComponent.h:58
jet::CombinedMassUncertaintyComponent::m_combMassType
const CombMassComp::TypeEnum m_combMassType
Definition: CombinedMassUncertaintyComponent.h:57
jet::CombMassComp::Calo
@ Calo
Definition: UncertaintyEnum.h:197
jet::CompParametrization::eLOGmOe
@ eLOGmOe
Definition: UncertaintyEnum.h:56
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
jet::UncertaintyComponent::getName
virtual TString getName() const
Definition: UncertaintyComponent.h:35
jet::CombinedMassUncertaintyComponent::getValidityCalo
virtual bool getValidityCalo(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
Definition: CombinedMassUncertaintyComponent.cxx:430
jet::CombMassComp::Both
@ Both
Definition: UncertaintyEnum.h:199
jet::CombinedMassUncertaintyComponent::getWeightFactorCalo
virtual double getWeightFactorCalo(const xAOD::Jet &jet, const double shiftFactor) const
Definition: CombinedMassUncertaintyComponent.cxx:508
jet::CompScaleVar::Mass
@ Mass
Definition: UncertaintyEnum.h:98
jet::CompParametrization::PtAbsMassEta
@ PtAbsMassEta
Definition: UncertaintyEnum.h:54
jet::CombinedMassUncertaintyComponent::m_truthLabels
std::vector< LargeRJetTruthLabel::TypeEnum > m_truthLabels
Definition: CombinedMassUncertaintyComponent.h:74
jet::CompParametrization::PtAbsMass
@ PtAbsMass
Definition: UncertaintyEnum.h:50
jet::CompParametrization::PtEta
@ PtEta
Definition: UncertaintyEnum.h:48
jet::CombinedMassUncertaintyComponent::m_TAMassComp
UncertaintyGroup * m_TAMassComp
Definition: CombinedMassUncertaintyComponent.h:62
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
jet::UncertaintyComponent::m_splitNumber
const int m_splitNumber
Definition: UncertaintyComponent.h:57
jet::UncertaintyGroup::getValidUncertainty
virtual bool getValidUncertainty(double &unc, const xAOD::Jet &jet, const xAOD::EventInfo &eInfo, const CompScaleVar::TypeEnum scaleVar) const
Definition: UncertaintyGroup.cxx:439
jet::UncertaintyComponent::getUncertaintyImpl
virtual double getUncertaintyImpl(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const =0
jet::UncertaintyGroup::isAlwaysZero
virtual bool isAlwaysZero() const
Definition: UncertaintyGroup.cxx:329
JESUNC_NO_DEFAULT_CONSTRUCTOR
#define JESUNC_NO_DEFAULT_CONSTRUCTOR
Definition: Reconstruction/Jet/JetUncertainties/JetUncertainties/Helpers.h:24
jet::CompParametrization::PtMass
@ PtMass
Definition: UncertaintyEnum.h:51
jet::UncertaintyComponent::getValidName
virtual TString getValidName() const
Definition: UncertaintyComponent.h:36
jet::CompMassDef::UNKNOWN
@ UNKNOWN
Definition: UncertaintyEnum.h:72
jet::CombinedMassUncertaintyComponent::m_truthLabelName
std::string m_truthLabelName
Definition: CombinedMassUncertaintyComponent.h:73
jet::UncertaintyComponent::m_scaleVar
const CompScaleVar::TypeEnum m_scaleVar
Definition: UncertaintyComponent.h:53
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
jet::UncertaintyComponent::getUncertainty
virtual double getUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
Definition: UncertaintyComponent.cxx:169
LargeRJetTruthLabel::intToEnum
TypeEnum intToEnum(const int type)
Definition: LargeRJetLabelEnum.h:57
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TauGNNUtils::Variables::absEta
bool absEta(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:234
jet::CompMassDef::CombMassQCD
@ CombMassQCD
Definition: UncertaintyEnum.h:76
jet::CompParametrization::PtMassEta
@ PtMassEta
Definition: UncertaintyEnum.h:52
jet::UncertaintyComponent::UncertaintyComponent
UncertaintyComponent(const ComponentHelper &component, const size_t numHist=1)
Definition: UncertaintyComponent.cxx:47
jet::UncertaintyGroup::getValidity
virtual bool getValidity(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo, const CompScaleVar::TypeEnum scaleVar) const
Definition: UncertaintyGroup.cxx:359
jet::CombinedMassUncertaintyComponent::m_caloMassScale_weights
JetFourMomAccessor m_caloMassScale_weights
Definition: CombinedMassUncertaintyComponent.h:67
jet::CompParametrization::eLOGmOeAbsEta
@ eLOGmOeAbsEta
Definition: UncertaintyEnum.h:58
jet::UncertaintyComponent::m_uncHist
UncertaintyHistogram * m_uncHist
Definition: UncertaintyComponent.h:60
jet::CompMassDef::enumToString
TString enumToString(const TypeEnum type)
Definition: UncertaintyEnum.cxx:188
plotBeamSpotCompare.histo
histo
Definition: plotBeamSpotCompare.py:415
jet::UncertaintyGroup::initialize
virtual StatusCode initialize(TFile *histFile)
Definition: UncertaintyGroup.cxx:158
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
jet::UncertaintyComponent::getValidity
virtual bool getValidity(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
Definition: UncertaintyComponent.cxx:159
jet::CombMassComp::TA
@ TA
Definition: UncertaintyEnum.h:198
jet::CombinedMassUncertaintyComponent::CombinedMassUncertaintyComponent
CombinedMassUncertaintyComponent(const ComponentHelper &component)
Definition: CombinedMassUncertaintyComponent.cxx:37
jet::UncertaintyComponent::m_topology
const JetTopology::TypeEnum m_topology
Definition: UncertaintyComponent.h:54