9 if ( algorithm != 0 )
return energy;
11 float ieta = fabs(eta)*(5/0.087);
15 float correctedEnergy = energy;
16 if ( ieta < p0 ) correctedEnergy = energy;
17 else correctedEnergy = energy/(1.0 + p1*(ieta-p0)*(ieta-p0));
19 return correctedEnergy;
37 if ( algorithm == 0 ) offset = 0;
38 else if ( algorithm == 1 ) offset = 20;
45 if ( brem == 0 )
return e;
49 if ( brem < bremLowThr ) brem = bremLowThr;
50 if ( brem > bremHighThr ) brem = bremHighThr;
61 float y = p0*threshold*threshold + p1*threshold +
p2;
62 float yprime = 2*p0*threshold +
p1;
65 float c = y - a*threshold*threshold - b*
threshold;
68 if ( brem < threshold )
69 fCorr = p0*brem*brem + p1*brem +
p2;
71 fCorr = a*brem*brem + b*brem +
c;
90 if ( algorithm == 0 ) offset = 0;
91 else if ( algorithm == 1 ) offset = 20;
92 else if ( algorithm == 10 ) offset = 28;
93 else if ( algorithm == 11 ) offset = 39;
100 if ( algorithm == 0 || algorithm == 10 ) {
106 }
else if ( algorithm == 1 || algorithm == 11 ) {
112 fCorr = p0 + p1*fabs(eta) + p2*eta*eta + p3/fabs(eta);
116 if ( fCorr < 0.5 ) fCorr = 0.5;
117 if ( fCorr > 1.5 ) fCorr = 1.5;
138 float eta = fabs(superCluster.
eta());
142 if ( mode <= 3 || mode == 10 ) {
149 energy = superCluster.
energy();
151 float correctedEnergy =
fEta(energy, eta, algorithm);
154 return correctedEnergy - energy;
158 correctedEnergy =
fBrem(correctedEnergy, brem, algorithm);
160 return correctedEnergy - energy;
163 float correctedEt = correctedEnergy/cosh(eta);
164 correctedEt =
fEtEta(correctedEt, eta, algorithm);
165 correctedEnergy = correctedEt*cosh(eta);
166 return correctedEnergy - energy;
168 }
else if ( mode == 4 || mode == 5 || mode == 11 ) {
174 energy = superCluster.
energy();
177 float correctedEnergy =
fBrem(energy, brem, algorithm);
179 return correctedEnergy - energy;
182 float correctedEt = correctedEnergy/cosh(eta);
183 correctedEt =
fEtEta(correctedEt, eta, algorithm);
184 correctedEnergy = correctedEt*cosh(eta);
185 return correctedEnergy - energy;
float fEtEta(float et, float eta, int algorithm) const
double phiWidth() const
obtain phi and eta width of the Super Cluster
double eta() const
pseudorapidity of cluster centroid
EcalFunctionParameters & params()
double energy() const
cluster energy
double rawEnergy() const
raw uncorrected energy (sum of energies of component BasicClusters)
float getValue(const reco::SuperCluster &, const int mode) const override
et
define resolution functions of each parameter
float fBrem(float e, float eta, int algorithm) const
float fEta(float e, float eta, int algorithm) const
#define DEFINE_EDM_PLUGIN(factory, type, name)
double preshowerEnergy() const
energy deposited in preshower
const EcalClusterEnergyCorrectionParameters * params_