5#ifndef MUONEFFICIENCYCORRECTION_SYSTHANDLER_H
6#define MUONEFFICIENCYCORRECTION_SYSTHANDLER_H
23#include <TDirectory.h>
82 PtKinematicSystHandler(std::unique_ptr<HistHandler> pt_flatnesss, std::unique_ptr<HistHandler> energy_loss);
134 void fillMap(TDirectory* InDir, std::map<
Ranges, std::unique_ptr<TF1>>& systPolynomials);
std::map< Ranges, std::unique_ptr< TF1 > > m_syst2Stations
void fillMap(TDirectory *InDir, std::map< Ranges, std::unique_ptr< TF1 > > &systPolynomials)
bool initialize() override
Initialize method to load the inputs and check that everything will work as expected.
CP::CorrectionCode findAppropiatePolynomial(const xAOD::Muon &mu, TF1 *&Poly) const
BadMuonVetoSystHandler(TDirectory *InDir_3Stations, TDirectory *InDir_2Stations=nullptr)
std::map< Ranges, std::unique_ptr< TF1 > > m_syst3Stations
std::pair< float, float > Ranges
void SetSystematicWeight(float SystWeight) override
Set's the absolute scaling of the systematic.
CorrectionCode GetKineDependent(columnar::MuonId mu, float &Eff) const override
Add an additional uncertainty to the muon depending on its kinematics.
virtual ~BadMuonVetoSystHandler()
std::string getNextProperty(std::string &sstr) const
Return value from object correction CP tools.
float(IKinematicSystHandler::* KinVariable)(columnar::MuonId mu) const
Typedef to prepare function pointers to the muon.
float PtGeV(columnar::MuonId mu) const
float Pt(columnar::MuonId mu) const
virtual void SetSystematicWeight(float SystWeight)=0
Set's the absolute scaling of the systematic.
columnar::MuonAccessor< float > ptAcc
virtual bool initialize()=0
Initialize method to load the inputs and check that everything will work as expected.
virtual ~IKinematicSystHandler()=default
columnar::MuonAccessor< float > etaAcc
columnar::MuonAccessor< columnar::ObjectColumn > muonsHandle
KinVariable GetMuonVariableToUse(const std::string &name)
float AbsEta(columnar::MuonId mu) const
virtual CorrectionCode GetKineDependent(columnar::MuonId mu, float &Eff) const =0
Add an additional uncertainty to the muon depending on its kinematics.
CorrectionCode GetKineDependent(columnar::MuonId mu, float &Eff) const override
Add an additional uncertainty to the muon depending on its kinematics.
std::unique_ptr< HistHandler > m_Handler
void SetSystematicWeight(float SystWeight) override
Set's the absolute scaling of the systematic.
PrimodialPtSystematic(std::unique_ptr< HistHandler > HistHandler)
bool initialize() override
Initialize method to load the inputs and check that everything will work as expected.
PtKinematicSystHandler(std::unique_ptr< HistHandler > pt_flatnesss, std::unique_ptr< HistHandler > energy_loss)
Constructor having two histhandler objects inside. The.
void SetSystematicWeight(float syst_weight) override
Set's the absolute scaling of the systematic.
std::unique_ptr< HistHandler > m_flatness
CorrectionCode GetKineDependent(columnar::MuonId mu, float &eff) const override
Add an additional uncertainty to the muon depending on its kinematics.
std::unique_ptr< HistHandler > m_loss
bool initialize() override
Initialize method to load the inputs and check that everything will work as expected.
TTVAClosureSysHandler(std::unique_ptr< HistHandler > HistHandler)
bool initialize() override
Initialize method to load the inputs and check that everything will work as expected.
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.
std::unique_ptr< HistHandler > m_Handler
Select isolated Photons, Electrons and Muons.
ObjectId< ContainerId::muon > MuonId
AccessorTemplate< ContainerId::muon, CT, ColumnAccessMode::input, CM > MuonAccessor
Muon_v1 Muon
Reference the current persistent version: