|
ATLAS Offline Software
|
Go to the documentation of this file.
32 float the_eta = std::abs (
eta);
33 if (the_eta >=
m_etamax (myctx))
return;
53 int etaIndex = (
int) (the_eta * (1./0.025));
56 unsigned int n_samples = energies.
size();
59 unsigned int shape[] = {n_samples, 6};
63 for(
unsigned int i=0;
i<n_samples;
i++)
65 vectParm[
i][0] = energies[
i];
66 for(
unsigned int j=0;j<5;j++)
72 for(
unsigned int k=0;
k<5;
k++)
75 coefs[
k] = vectParm[0][
k+1];
76 else if(
energy > energies[n_samples-1])
77 coefs[
k] = vectParm[n_samples-1][
k+1];
89 const Samplingmap& L =
inBarrel ? LBarrel : LEndcap;
95 Egap=coefs[3]*std::sqrt(cluster->
eSample(L[0])*cluster->
eSample(L[1]));
98 cluster->setEnergy ( L[0],cluster->
eSample(L[0])*coefs[0]);
100 float Eleak = cluster->
eSample(L[3])*coefs[1];
104 for (
int iSample=1; iSample < 4 ; ++iSample)
106 Erec += cluster->
eSample (L[iSample]);
110 cluster->
setE (coefs[4]*Erec + cluster->
eSample (L[0]) + Eleak + coefs[2]+ Egap);
double eSample(sampling_type sampling) const
Retrieve energy in a given sampling.
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...
bool inBarrel(const xAOD::CaloCluster &cluster, int is)
return boolean to know if we are in barrel/end-cap
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Constant< float > m_endcap_frontier
Principal data class for CaloCell clusters.
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< float > m_barrel_frontier
virtual void setE(double e)
Set energy.
Constant< float > m_etamax
float interpolate(const CaloRec::Array< 2 > &a, float x, unsigned int degree, unsigned int ycol=1, const CaloRec::Array< 1 > ®ions=CaloRec::Array< 1 >(), int n_points=-1, bool fixZero=false)
Polynomial interpolation in a table.
virtual double e() const
Retrieve energy independent of signal state.
Context object for retrieving ToolConstant values.
Constant< CxxUtils::Array< 1 > > m_energies
Polynomial interpolation in a table.
Constant< CxxUtils::Array< 3 > > m_correction