File indexing completed on 2024-04-06 11:58:40
0001 #include "Calibration/EcalCalibAlgos/interface/EcalPhiSymRecHit.h"
0002
0003
0004 EcalPhiSymRecHit::EcalPhiSymRecHit()
0005 : id_(0), eeRing_(0), chStatus_(0), nHits_(0), etSum_(1, 0.), et2Sum_(0), lcSum_(0), lc2Sum_(0) {}
0006
0007 EcalPhiSymRecHit::EcalPhiSymRecHit(uint32_t id, unsigned int nMisCalibV, unsigned int status)
0008 : id_(id), eeRing_(0), chStatus_(status), nHits_(0), etSum_(nMisCalibV, 0.), et2Sum_(0), lcSum_(0), lc2Sum_(0) {}
0009
0010 EcalPhiSymRecHit::EcalPhiSymRecHit(uint32_t id, std::vector<float>& etValues, unsigned int status)
0011 : id_(id),
0012 eeRing_(0),
0013 chStatus_(status),
0014 nHits_(0),
0015 etSum_(etValues.begin(), etValues.end()),
0016 et2Sum_(0),
0017 lcSum_(0),
0018 lc2Sum_(0) {}
0019
0020
0021 void EcalPhiSymRecHit::addHit(const std::vector<float>& etValues, const float laserCorr) {
0022 if (etValues[0] > 0.) {
0023 ++nHits_;
0024 et2Sum_ += etValues[0] * etValues[0];
0025 lcSum_ += laserCorr;
0026 lc2Sum_ += laserCorr * laserCorr;
0027 }
0028 for (unsigned int i = 0; i < std::min(etSum_.size(), etValues.size()); ++i)
0029 etSum_[i] += etValues[i];
0030 }
0031
0032 void EcalPhiSymRecHit::reset() {
0033 nHits_ = 0.;
0034 et2Sum_ = 0.;
0035 lcSum_ = 0.;
0036 lc2Sum_ = 0.;
0037 etSum_ = std::vector<float>(etSum_.size(), 0.);
0038 }
0039
0040
0041
0042 EcalPhiSymRecHit& EcalPhiSymRecHit::operator+=(const EcalPhiSymRecHit& rhs) {
0043
0044 assert("EcalPhiSymRecHit operator+= : attempting to sum RecHits belonging to different channels" &&
0045 (id_ == rhs.rawId()));
0046 nHits_ += rhs.nHits();
0047 et2Sum_ += rhs.sumEt2();
0048 lcSum_ += rhs.lcSum();
0049 lc2Sum_ += rhs.lc2Sum();
0050 for (unsigned int i = 0; i < etSum_.size(); ++i)
0051 etSum_[i] += rhs.sumEt(i);
0052
0053 return *this;
0054 }