|
ATLAS Offline Software
|
Go to the documentation of this file.
50 float u = (eta - elt->
eta()) / elt->
deta() * 2;
65 float adj_aeta = std::abs (adj_eta);
77 u = fmod (adj_aeta, cellsize) / cellsize * 2 - 1;
94 cluster->
setEta (samp, eta + offs);
109 unsigned int nreg = regions.
size();
110 for (
unsigned int i=0;
i < nreg;
i++) {
138 m_region_ndx (region_ndx),
141 m_form (regions[region_ndx][REG_FORM])
166 form =
m_forms[m_region_ndx][energy_ndx];
181 ret = calc0 (m_aeta, m_u,
coef);
184 ret = calc3 (m_aeta, m_u,
coef);
187 ret = calc4 (m_aeta, m_u,
coef);
190 ret = calc5 (m_aeta, m_u,
coef);
193 ret = calc10 (m_aeta, m_u,
coef);
196 ret = calc11 (m_aeta, m_u,
coef);
200 for (
unsigned int i=0;
i < reg_n;
i++) {
216 if (fabs(ret) > 0.025) {
235 void poly_eval (
float aeta,
240 assert (npar <=
coef.size(0));
246 for (
unsigned int i=0;
i < npar;
i++) {
251 double out = xcoef[0];
252 for (
unsigned int j = 1; j <
degree; j++)
253 out =
out * aeta + xcoef[j];
272 const unsigned int NPAR = 5;
290 const unsigned int NPAR = 4;
310 const unsigned int NPAR = 3;
315 double sq = std::sqrt (
b/atanb - 1);
318 pars[2]*(1-std::abs(
u)));
332 const unsigned int NPAR = 1;
349 const unsigned int NPAR = 7;
358 if (
u > 0.9 ||
u < -0.9) {
362 offs -= (
u-0.9)*(1./0.1) * xdiff/2;
364 offs += (-0.9-
u)*(1./0.1) * xdiff/2;
380 const unsigned int NPAR = 8;
401 const unsigned int NPAR = 1;
float deta() const
cell deta
static float calc4(float aeta, float u, const CaloRec::Array< 2 > &coef)
Evaluate the function Form 4.
static int find_region(const CxxUtils::Array< 2 > ®ions, float aeta)
Find the index of the region containing a given value.
Helper class for calculating the energy interpolation table.
Scalar eta() const
pseudorapidity method
unsigned int size(unsigned int dim=0) const
Return the size of the array along one dimension.
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Builder(const CxxUtils::Array< 4 > &correction, const CxxUtils::Array< 2 > ®ions, const CxxUtils::Array< 2 > &forms, float aeta, float u, int region_ndx)
Constructor.
static float calc13(float aeta, float u, const CaloRec::Array< 2 > &coef, float xlo, float xhi)
Evaluate the function Form 13.
static float calc11(float aeta, float u, const CaloRec::Array< 2 > &coef)
Evaluate the function Form 11.
static float calc0(float aeta, float u, const CaloRec::Array< 2 > &coef)
Evaluate the function Form 0.
@ u
Enums for curvilinear frames.
Definition of CaloDetDescrManager.
float eta_raw() const
cell eta_raw
static float calc3(float aeta, float u, const CaloRec::Array< 2 > &coef)
Evaluate the function Form 3.
Description of a calorimeter cluster.
virtual float calculate(int energy_ndx, bool &good) const
Calculate the correction for tabulated energy ENERGY_NDX.
static float calc5(float aeta, float u, const CaloRec::Array< 2 > &coef)
Evaluate the function Form 5.
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.
Constant< CxxUtils::Array< 2 > > m_forms
Calibration constant: Functional form to use per region per energy.
Constant< CxxUtils::Array< 2 > > m_regions
Calibration constant: table of regions.
EM calorimeter eta offset (S-shape) corrections, version 3.
static float energy_interpolation(float energy, const TableBuilder &builder, const CaloRec::Array< 1 > &energies, int energy_degree)
Many of the corrections use the same method for doing the final interpolation in energy.
Constant< int > m_energy_degree
Calibration constant: degree of the polynomial interpolation in energy.
static float calc10(float aeta, float u, const CaloRec::Array< 2 > &coef)
Evaluate the function Form 10.
Context object for retrieving ToolConstant values.
float eta() const
cell eta
bool setEta(const CaloSample sampling, const float eta)
Set in a given sampling. Returns false if the sample isn't part of the cluster.
virtual double e() const
The total energy of the particle.
Constant< CxxUtils::Array< 4 > > m_correction
Calibration constant: tabulated arrays of function parameters.