File indexing completed on 2024-04-06 12:25:05
0001 #include "RecoEgamma/EgammaTools/interface/LongDeps.h"
0002
0003 using namespace hgcal;
0004
0005 LongDeps::LongDeps(float radius,
0006 const std::vector<float>& energyPerLayer,
0007 float energyEE,
0008 float energyFH,
0009 float energyBH,
0010 const std::set<int>& layers)
0011 : energyPerLayer_(energyPerLayer),
0012 radius_(radius),
0013 energyEE_(energyEE),
0014 energyFH_(energyFH),
0015 energyBH_(energyBH),
0016 layers_(layers) {
0017 lay_Efrac10_ = 0;
0018 lay_Efrac90_ = 0;
0019 float lay_energy = 0;
0020 float e4 = 0.;
0021
0022 for (unsigned lay = 1; lay < energyPerLayer_.size(); ++lay) {
0023 lay_energy += energyPerLayer_[lay];
0024 if (lay < 5)
0025 e4 += energyPerLayer_[lay];
0026 if (lay_Efrac10_ == 0 && lay_energy > 0.1 * energyEE_) {
0027 lay_Efrac10_ = lay;
0028 }
0029 if (lay_Efrac90_ == 0 && lay_energy > 0.9 * energyEE_) {
0030 lay_Efrac90_ = lay;
0031 }
0032 }
0033 float etot = energyEE_ + energyFH_ + energyBH_;
0034 e4oEtot_ = (etot > 0.) ? e4 / etot : -1.;
0035 }