ATLAS Offline Software
Loading...
Searching...
No Matches
CP::PrimodialPtSystematic Class Reference

The PrimodialPtSystematic was the former PtKinematicSystHandler. More...

#include <KinematicSystHandler.h>

Inheritance diagram for CP::PrimodialPtSystematic:
Collaboration diagram for CP::PrimodialPtSystematic:

Public Types

typedef float(IKinematicSystHandler::* KinVariable) (columnar::MuonId mu) const
 Typedef to prepare function pointers to the muon.

Public Member Functions

CorrectionCode GetKineDependent (columnar::MuonId mu, float &Eff) const override
 Add an additional uncertainty to the muon depending on its kinematics.
void SetSystematicWeight (float SystWeight) override
 Set's the absolute scaling of the systematic.
bool initialize () override
 Initialize method to load the inputs and check that everything will work as expected.
 PrimodialPtSystematic (std::unique_ptr< HistHandler > HistHandler)
KinVariable GetMuonVariableToUse (const std::string &name)
float Eta (columnar::MuonId mu) const
float Pt (columnar::MuonId mu) const
float PtGeV (columnar::MuonId mu) const
float AbsEta (columnar::MuonId mu) const

Public Attributes

columnar::MuonAccessor< columnar::ObjectColumnmuonsHandle {*this, "Muons"}
columnar::MuonAccessor< floatptAcc {*this, "pt"}
columnar::MuonAccessor< floatetaAcc {*this, "eta"}

Private Attributes

std::unique_ptr< HistHandlerm_Handler
float m_SystWeight

Detailed Description

The PrimodialPtSystematic was the former PtKinematicSystHandler.

It's kept for backwards compability to run MuonEfficiencyScaleFactors on files before the Moriond_2019 release.

Definition at line 92 of file KinematicSystHandler.h.

Member Typedef Documentation

◆ KinVariable

typedef float(IKinematicSystHandler::* CP::IKinematicSystHandler::KinVariable) (columnar::MuonId mu) const
inherited

Typedef to prepare function pointers to the muon.

Definition at line 50 of file KinematicSystHandler.h.

Constructor & Destructor Documentation

◆ PrimodialPtSystematic()

CP::PrimodialPtSystematic::PrimodialPtSystematic ( std::unique_ptr< HistHandler > HistHandler)

Definition at line 98 of file KinematicSystHandler.cxx.

98 :
99 m_Handler(),
100 m_SystWeight(0) {
101 m_Handler.swap(Handler);
102 }
std::unique_ptr< HistHandler > m_Handler

Member Function Documentation

◆ AbsEta()

float CP::IKinematicSystHandler::AbsEta ( columnar::MuonId mu) const
inherited

Definition at line 17 of file KinematicSystHandler.cxx.

17 {
18 return std::abs(mu(etaAcc));
19 }
columnar::MuonAccessor< float > etaAcc

◆ Eta()

float CP::IKinematicSystHandler::Eta ( columnar::MuonId mu) const
inherited

Definition at line 8 of file KinematicSystHandler.cxx.

8 {
9 return mu(etaAcc);
10 }

◆ GetKineDependent()

CorrectionCode CP::PrimodialPtSystematic::GetKineDependent ( columnar::MuonId mu,
float & Eff ) const
overridevirtual

Add an additional uncertainty to the muon depending on its kinematics.

Implements CP::IKinematicSystHandler.

Definition at line 103 of file KinematicSystHandler.cxx.

103 {
104 // Account for catastrophic energy loss for very high
105 // pt's
106 if (mu(ptAcc) <= 200.e3) return CorrectionCode::Ok;
107
108 int binsys = -1;
109 CorrectionCode cc = m_Handler->FindBin(mu, binsys);
110 if (cc != CorrectionCode::Ok) {
111 return cc;
112 }
113 Eff *= (1. + m_SystWeight * std::abs(m_Handler->GetBinContent(binsys)) * mu(ptAcc) / 1.0e6);
114 return CorrectionCode::Ok;
115 }
@ Ok
The correction was done successfully.
columnar::MuonAccessor< float > ptAcc

◆ GetMuonVariableToUse()

IKinematicSystHandler::KinVariable CP::IKinematicSystHandler::GetMuonVariableToUse ( const std::string & name)
inherited

Definition at line 21 of file KinematicSystHandler.cxx.

21 {
22 if (name == "pt") return &IKinematicSystHandler::Pt;
23 if (name == "ptGeV") return &IKinematicSystHandler::PtGeV;
24 if (name == "eta") return &IKinematicSystHandler::Eta;
25 if (name == "AbsEta") return &IKinematicSystHandler::AbsEta;
26 return nullptr;
27 }
float PtGeV(columnar::MuonId mu) const
float Pt(columnar::MuonId mu) const
float AbsEta(columnar::MuonId mu) const
float Eta(columnar::MuonId mu) const

◆ initialize()

bool CP::PrimodialPtSystematic::initialize ( )
overridevirtual

Initialize method to load the inputs and check that everything will work as expected.

Implements CP::IKinematicSystHandler.

Definition at line 119 of file KinematicSystHandler.cxx.

119 {
120 return m_Handler.get() != nullptr;
121 }

◆ Pt()

float CP::IKinematicSystHandler::Pt ( columnar::MuonId mu) const
inherited

Definition at line 11 of file KinematicSystHandler.cxx.

11 {
12 return mu(ptAcc);
13 }

◆ PtGeV()

float CP::IKinematicSystHandler::PtGeV ( columnar::MuonId mu) const
inherited

Definition at line 14 of file KinematicSystHandler.cxx.

14 {
15 return mu(ptAcc) / 1.e3;
16 }

◆ SetSystematicWeight()

void CP::PrimodialPtSystematic::SetSystematicWeight ( float SystWeight)
overridevirtual

Set's the absolute scaling of the systematic.

For daily puposes it's usually either 1 or -1 indicating if the instance is an upwards or downwards variation.

Implements CP::IKinematicSystHandler.

Definition at line 116 of file KinematicSystHandler.cxx.

116 {
117 m_SystWeight = SystWeight;
118 }

Member Data Documentation

◆ etaAcc

columnar::MuonAccessor<float> CP::IKinematicSystHandler::etaAcc {*this, "eta"}
inherited

Definition at line 60 of file KinematicSystHandler.h.

60{*this, "eta"};

◆ m_Handler

std::unique_ptr<HistHandler> CP::PrimodialPtSystematic::m_Handler
private

Definition at line 101 of file KinematicSystHandler.h.

◆ m_SystWeight

float CP::PrimodialPtSystematic::m_SystWeight
private

Definition at line 102 of file KinematicSystHandler.h.

◆ muonsHandle

columnar::MuonAccessor<columnar::ObjectColumn> CP::IKinematicSystHandler::muonsHandle {*this, "Muons"}
inherited

Definition at line 58 of file KinematicSystHandler.h.

58{*this, "Muons"};

◆ ptAcc

columnar::MuonAccessor<float> CP::IKinematicSystHandler::ptAcc {*this, "pt"}
inherited

Definition at line 59 of file KinematicSystHandler.h.

59{*this, "pt"};

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