ATLAS Offline Software
Loading...
Searching...
No Matches
CaloSwPhimod_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*/
35
36
37#ifndef CALOCLUSTERCORRECTION_CALOSWPHIMOD_V2_H
38#define CALOCLUSTERCORRECTION_CALOSWPHIMOD_V2_H
39
40
43
44
90{
91public:
94
115 virtual void makeTheCorrection (const Context& myctx,
116 xAOD::CaloCluster* cluster,
117 const CaloDetDescrElement* elt,
118 float eta,
119 float adj_eta,
120 float phi,
121 float adj_phi,
122 CaloSampling::CaloSample samp) const override;
123
124
125private:
131 : public TableBuilder
132 {
133 public:
138 Builder (const CxxUtils::Array<3>& correction,
139 const CxxUtils::Array<1>& interp_barriers,
140 int degree,
141 float correction_coef,
142 float aeta, float phi, int nabs);
143
145 virtual float calculate (int energy_ndx, bool& good) const;
146
147 private:
150
153
156
159
162 float m_aeta;
163
165 float m_phi;
166
169 };
170
173 { this, "correction", "Tabulated arrays of function parameters." };
174
178 { this, "interp_barriers", "Allow breaking up the interpolation into independent regions." };
179
182 { this, "degree", "Degree of the polynomial interpolation." };
183
187 { this, "correction_coef", "Coefficient by which to scale the entire correction." };
188
189 // Calibration constant: Correction factors for crude containment
190 // correction used internally for the energy interpolation.
192 { this, "rfac", "Correction factors for crude containment correction used internally for the energy interpolation." };
193
194 // Calibration constant: Interpolation degree for crude containment
195 // correction used internally for the energy interpolation.
197 { this, "rfac_degree", "Interpolation degree for crude containment correction used internally for the energy interpolation." };
198
202 { this, "energies", "Table of energies at which the correction was tabulated." };
203
206 { this, "energy_degree", "Degree of the polynomial interpolation in energy." };
207
211 { this, "use_raw_eta", "If true, tabulated values are in terms of raw (local) eta." };
212};
213
214
215#endif // not CALOCLUSTERCORRECTION_CALOSWPHIMOD_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.
float m_aeta
The abs(eta) at which the correction is being evaluated (in cal-local coordinates).
Builder(const CxxUtils::Array< 3 > &correction, const CxxUtils::Array< 1 > &interp_barriers, int degree, float correction_coef, float aeta, float phi, int nabs)
Constructor.
const CxxUtils::Array< 1 > m_interp_barriers
Allow breaking up the interpolation into independent regions.
int m_nabs
Number of absorbers in .
int m_degree
Interpolation degree.
float m_correction_coef
Coefficient by which to scale the entire correction.
float m_phi
The cluster phi.
virtual float calculate(int energy_ndx, bool &good) const
Calculate the correction for tabulated energy ENERGY_NDX.
const CxxUtils::Array< 3 > m_correction
The correction table.
Constant< int > m_energy_degree
Calibration constant: degree of the polynomial interpolation in energy.
Constant< int > m_rfac_degree
Constant< CxxUtils::Array< 2 > > m_rfac
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< CxxUtils::Array< 1 > > m_energies
Calibration constant: table of energies at which the correction was tabulated.
CaloClusterCorrectionCommon(const std::string &type, const std::string &name, const IInterface *parent)
Inherit constructor.
Constant< CxxUtils::Array< 3 > > m_correction
Calibration constant: tabulated arrays of function parameters.
Constant< int > m_degree
Calibration constant: degree of the polynomial interpolation.
Constant< bool > m_use_raw_eta
Calibration constant: If true, tabulated values are in terms of raw (local) eta.
Constant< float > m_correction_coef
Calibration constant: coefficient by which to scale the entire correction.
Constant< CxxUtils::Array< 1 > > m_interp_barriers
Calibration constant: allow breaking up the interpolation into independent regions.
Read-only multidimensional array.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.