21 const std::vector<double>&
e1e9Cut,
23 const std::vector<double>&
eSeLCut,
43 double logel =
log(
shape.eLong3x3() / 100.0);
44 double lowC = 0.00911;
46 double logSlope = 0.0146;
47 double logIntercept = -0.00988;
51 else if ((logel > 1.25) && (logel <= 2))
52 corEta += (logIntercept + logSlope * logel) *
sgn;
74 double corEnergy =
original.energy();
77 double energyCorrect = 0.7397;
78 corEnergy = corEnergy / energyCorrect;
82 double etabounds[30] = {
83 2.846, 2.957, 3.132, 3.307, 3.482, 3.657, 3.833, 4.006, 4.184, 4.357, 4.532, 4.709, 4.882, 5.184};
84 for (
int kk = 0;
kk <= 12;
kk++) {
85 if ((fabs(corEta) < etabounds[
kk + 1]) && (fabs(corEta) > etabounds[
kk])) {
86 ieta = (corEta > 0) ? (
kk + 29) : (-
kk - 29);
95 double corPx = corEnergy *
cos(corPhi) / cosh(corEta);
96 double corPy = corEnergy *
sin(corPhi) / cosh(corEta);
97 double corPz = corEnergy *
tanh(corEta);
110 for (
unsigned int i = 0;
i < SuperClusters->size(); ++
i) {
131 bool isAcceptable =
true;
132 isAcceptable = isAcceptable && (e9e25 >
m_e9e25Cut);
134 isAcceptable = isAcceptable && ((e1e9 < m_e1e9Cuthi) && (e1e9 >
m_e1e9Cutlo));
139 theCand.setSuperCluster(theClusRef);
140 RecoECand.push_back(theCand);
const double m_intercept2DCut
const reco::HFValueStruct m_hfvv
void tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in])
const double m_eCOREe9Cuthi
void produce(const edm::Handle< reco::SuperClusterCollection > &SuperClusters, const reco::HFEMClusterShapeAssociationCollection &AssocShapes, reco::RecoEcalCandidateCollection &RecoECand, int nvtx) const
Sin< T >::type sin(const T &t)
reco::RecoEcalCandidate correctEPosition(const reco::SuperCluster &original, const reco::HFEMClusterShape &shape, int nvtx) const
double phi() const
azimuthal angle of cluster centroid
const_iterator find(const key_type &k) const
find element with specified reference key
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Cos< T >::type cos(const T &t)
double energy() const
cluster energy
double PUIntercept(int ieta) const
XYZPointD XYZPoint
point in space with cartesian internal representation
double PUSlope(int ieta) const
double EnCor(int ieta) const
double eSeLCorrected(double es, double el, double pc, double px, double py)
const double m_intercept2DSlope
std::vector< RecoEcalCandidate > RecoEcalCandidateCollection
collectin of RecoEcalCandidate objects
double eta() const
pseudorapidity of cluster centroid
const double m_eCOREe9Cutlo
HFRecoEcalCandidateAlgo(bool correct, double e9e25Cut, double intercept2DCut, double intercept2DSlope, const std::vector< double > &e1e9Cut, const std::vector< double > &eCOREe9Cut, const std::vector< double > &eSeLCut, const reco::HFValueStruct hfvv)