5#ifndef MUONEFFICIENCYCORRECTIONS_HISTOHANDLER_H
6#define MUONEFFICIENCYCORRECTIONS_HISTOHANDLER_H
21#include <TDirectory.h>
52 if (!
m_H)
return DBL_MAX;
53 return m_H->GetBinContent(
bin);
59 if (!
m_H)
return DBL_MAX;
60 return m_H->GetBinError(
bin);
86 std::unique_ptr<TH1>
m_H;
99 int nBins()
const override;
122 int nBins()
const override;
146 int nBins()
const override;
174 int nBins()
const override;
Define macros for attributes used to control the static checker.
AbsEtaAxisHandler(columnar::ColumnarTool<> *parent)
CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const override
virtual ~AbsEtaAxisHandler()=default
columnar::MuonAccessor< float > etaAcc
static std::unique_ptr< AxisHandler > GetAxisHandler(columnar::ColumnarTool<> *parent, const TAxis *axis)
AxisHandler(columnar::ColumnarTool<> *parent)
virtual CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const =0
virtual ~AxisHandler()=default
columnar::MuonAccessor< float > chargeAcc
CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const override
virtual ~ChargeAxisHandler()=default
ChargeAxisHandler(columnar::ColumnarTool<> *parent)
Return value from object correction CP tools.
columnar::MuonAccessor< float > etaAcc
CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const override
EtaAxisHandler(columnar::ColumnarTool<> *parent)
virtual ~EtaAxisHandler()=default
virtual ~HistHandler_TH1()
std::unique_ptr< AxisHandler > m_x_handler
bool isOverFlowBin(int b) const override
States whether a bin is overflow or not.
std::string GetBinName(unsigned int bin) const override
Translates the bin number into the borders and return them as name.
CorrectionCode FindBin(columnar::MuonId muon, int &bin) const override
Function that changes from Implementation to implementation.
int nBins() const override
Return the total number of bins in the histogram -> (GetNbins() +2)**n.
int nOverFlowBins() const override
Return the number of overflow bins.
HistHandler_TH1(columnar::ColumnarTool<> *parent, TH1 *hist)
virtual ~HistHandler_TH2Poly()
bool isOverFlowBin(int b) const override
States whether a bin is overflow or not.
int nOverFlowBins() const override
Return the number of overflow bins.
std::string GetBinName(unsigned int bin) const override
Translates the bin number into the borders and return them as name.
std::unique_ptr< AxisHandler > m_y_handler
int nBins() const override
Return the total number of bins in the histogram -> (GetNbins() +2)**n.
std::unique_ptr< AxisHandler > m_x_handler
HistHandler_TH2Poly(columnar::ColumnarTool<> *parent, TH2Poly *hist)
The HistHandler_TH2Poly handles the TH2Poly histograms of the scale-factor maps.
CorrectionCode FindBin(columnar::MuonId muon, int &bin) const override
Function that changes from Implementation to implementation.
virtual ~HistHandler_TH2()
std::string GetBinName(unsigned int bin) const override
Translates the bin number into the borders and return them as name.
CorrectionCode FindBin(columnar::MuonId muon, int &bin) const override
Function that changes from Implementation to implementation.
HistHandler_TH2(columnar::ColumnarTool<> *parent, TH1 *hist)
The HistHandler TH2 handles 2D histograms which are not TH2Poly, since TH2 inhertis from TH1,...
int nOverFlowBins() const override
Return the number of overflow bins.
int nBins() const override
Return the total number of bins in the histogram -> (GetNbins() +2)**n.
std::unique_ptr< AxisHandler > m_x_handler
std::unique_ptr< AxisHandler > m_y_handler
bool isOverFlowBin(int b) const override
States whether a bin is overflow or not.
bool isOverFlowBin(int b) const override
States whether a bin is overflow or not.
std::unique_ptr< AxisHandler > m_x_handler
CorrectionCode FindBin(columnar::MuonId muon, int &bin) const override
Function that changes from Implementation to implementation.
virtual ~HistHandler_TH3()
std::string GetBinName(unsigned int bin) const override
Translates the bin number into the borders and return them as name.
int nOverFlowBins() const override
Return the number of overflow bins.
HistHandler_TH3(columnar::ColumnarTool<> *parent, TH1 *hist)
The HistHandler TH3 handles 3D histograms, since TH3 inhertis from TH1,a TH1* object is parsed avoidi...
int nBins() const override
Return the total number of bins in the histogram -> (GetNbins() +2)**n.
std::unique_ptr< AxisHandler > m_y_handler
std::unique_ptr< AxisHandler > m_z_handler
HistHandler(const HistHandler &other)=delete
virtual bool isOverFlowBin(int b) const =0
States whether a bin is overflow or not.
virtual CorrectionCode FindBin(columnar::MuonId muon, int &bin) const =0
Function that changes from Implementation to implementation.
std::unique_ptr< TH1 > m_H
void SetBinError(int bin, float val)
virtual int nOverFlowBins() const =0
Return the number of overflow bins.
virtual std::string GetBinName(unsigned int bin) const =0
Translates the bin number into the borders and return them as name.
double GetBinContent(int bin) const
double GetBinError(int bin) const
HistHandler & operator=(const HistHandler &other)=delete
void SetBinContent(int bin, float val)
virtual int nBins() const =0
Return the total number of bins in the histogram -> (GetNbins() +2)**n.
HistHandler(columnar::ColumnarTool<> *parent, TH1 *Hist)
CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const override
PhiAxisHandler(columnar::ColumnarTool<> *parent)
columnar::MuonAccessor< float > phiAcc
virtual ~PhiAxisHandler()=default
virtual ~PtAxisHandler()=default
PtAxisHandler(columnar::ColumnarTool<> *parent)
CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const override
columnar::MuonAccessor< float > ptAcc
virtual ~UndefinedAxisHandler()=default
UndefinedAxisHandler(columnar::ColumnarTool<> *parent)
CorrectionCode GetBinningParameter(columnar::MuonId, float &) const override
CorrectionCode GetBinningParameter(columnar::MuonId mu, float &value) const override
columnar::MuonAccessor< float > acc_dR_deriv
virtual ~dRJetAxisHandler()=default
static std::string s_close_jet_decor ATLAS_THREAD_SAFE
static void set_use_2D_sf(const bool)
static void set_close_jet_decorator(const std::string &decor_name)
dRJetAxisHandler(columnar::ColumnarTool<> *parent)
columnar::MuonAccessor< float > m_acc
Select isolated Photons, Electrons and Muons.
ObjectId< ContainerId::muon > MuonId
AccessorTemplate< ContainerId::muon, CT, ColumnAccessMode::input, CM > MuonAccessor