ATLAS Offline Software
Loading...
Searching...
No Matches
CaloSwPhioff_v2.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it's really -*- C++ -*-.
2/*
3 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
4*/
31
32
33#ifndef CALOCLUSTERCORRECTION_CALOSWPHIOFF_V2_H
34#define CALOCLUSTERCORRECTION_CALOSWPHIOFF_V2_H
35
36
39
40
56{
57public:
60
61
82 virtual void makeTheCorrection (const Context& myctx,
83 xAOD::CaloCluster* cluster,
84 const CaloDetDescrElement* elt,
85 float eta,
86 float adj_eta,
87 float phi,
88 float adj_phi,
89 CaloSampling::CaloSample samp) const override;
90
91
92private:
97 class Builder
98 : public TableBuilder
99 {
100 public:
104 Builder (const CxxUtils::Array<3>& correction,
105 const CxxUtils::Array<1>& interp_barriers,
106 int degree,
107 float aeta);
108
110 virtual float calculate (int energy_ndx, bool& good) const;
111
112 private:
115
118
121
124 float m_aeta;
125 };
126
129 { this, "correction", "Tabulated arrays of function parameters." };
130
134 { this, "interp_barriers", "Allow breaking up the interpolation into independent regions." };
135
138 { this, "degree", "Degree of the polynomial interpolation." };
139
143 { this, "correction_coef", "Coefficient by which to scale the entire correction." };
144
148 { this, "flip_phi", "If true, the correction gets an opposite sign if eta < 0." };
149
153 { this, "energies", "Table of energies at which the correction was tabulated." };
154
157 { this, "energy_degree", "Degree of the polynomial interpolation in energy." };
158};
159
160
161#endif // not CALOCLUSTERCORRECTION_CALOSWPHIOFF_V2_H
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Simple multidimensional arrays.
CaloClusterCorrectionCommon(const std::string &type, const std::string &name, const IInterface *parent)
Inherit constructor.
This class groups all DetDescr information related to a CaloCell.
virtual float calculate(int energy_ndx, bool &good) const
Calculate the correction for tabulated energy ENERGY_NDX.
const CxxUtils::Array< 3 > m_correction
Tabulated arrays of function parameters.
Builder(const CxxUtils::Array< 3 > &correction, const CxxUtils::Array< 1 > &interp_barriers, int degree, float aeta)
Constructor.
const CxxUtils::Array< 1 > m_interp_barriers
Allow breaking up the interpolation into independent regions.
int m_degree
Degree of the polynomial interpolation.
float m_aeta
The abs(eta) at which the correction is being evaluated (in cal-local coordinates).
Constant< CaloRec::Array< 3 > > m_correction
Calibration constant: tabulated arrays of function parameters.
Constant< CxxUtils::Array< 1 > > m_interp_barriers
Calibration constant: allow breaking up the interpolation into independent regions.
CaloClusterCorrectionCommon(const std::string &type, const std::string &name, const IInterface *parent)
Inherit constructor.
Constant< bool > m_flip_phi
Calibration constant: if true, the correction gets an opposite sign if eta < 0.
Constant< CxxUtils::Array< 1 > > m_energies
Calibration constant: table of energies at which the correction was tabulated.
virtual void makeTheCorrection(const Context &myctx, xAOD::CaloCluster *cluster, const CaloDetDescrElement *elt, float eta, float adj_eta, float phi, float adj_phi, CaloSampling::CaloSample samp) const override
Virtual function for the correction-specific code.
Constant< int > m_energy_degree
Calibration constant: degree of the polynomial interpolation in energy.
Constant< int > m_degree
Calibration constant: degree of the polynomial interpolation.
Constant< float > m_correction_coef
Calibration constant: coefficient by which to scale the entire correction.
Read-only multidimensional array.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.