Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#include "Calibration/EcalCalibAlgos/interface/EcalPhiSymRecHit.h"

//**********constructors******************************************************************
EcalPhiSymRecHit::EcalPhiSymRecHit()
    : id_(0), eeRing_(0), chStatus_(0), nHits_(0), etSum_(1, 0.), et2Sum_(0), lcSum_(0), lc2Sum_(0) {}

EcalPhiSymRecHit::EcalPhiSymRecHit(uint32_t id, unsigned int nMisCalibV, unsigned int status)
    : id_(id), eeRing_(0), chStatus_(status), nHits_(0), etSum_(nMisCalibV, 0.), et2Sum_(0), lcSum_(0), lc2Sum_(0) {}

EcalPhiSymRecHit::EcalPhiSymRecHit(uint32_t id, std::vector<float>& etValues, unsigned int status)
    : id_(id),
      eeRing_(0),
      chStatus_(status),
      nHits_(0),
      etSum_(etValues.begin(), etValues.end()),
      et2Sum_(0),
      lcSum_(0),
      lc2Sum_(0) {}

//**********utils*************************************************************************
void EcalPhiSymRecHit::addHit(const std::vector<float>& etValues, const float laserCorr) {
  if (etValues[0] > 0.) {
    ++nHits_;
    et2Sum_ += etValues[0] * etValues[0];
    lcSum_ += laserCorr;
    lc2Sum_ += laserCorr * laserCorr;
  }
  for (unsigned int i = 0; i < std::min(etSum_.size(), etValues.size()); ++i)
    etSum_[i] += etValues[i];
}

void EcalPhiSymRecHit::reset() {
  nHits_ = 0.;
  et2Sum_ = 0.;
  lcSum_ = 0.;
  lc2Sum_ = 0.;
  etSum_ = std::vector<float>(etSum_.size(), 0.);
}

//**********operators*********************************************************************

EcalPhiSymRecHit& EcalPhiSymRecHit::operator+=(const EcalPhiSymRecHit& rhs) {
  // assume same id, do not check channel status
  assert("EcalPhiSymRecHit operator+= : attempting to sum RecHits belonging to different channels" &&
         (id_ == rhs.rawId()));
  nHits_ += rhs.nHits();
  et2Sum_ += rhs.sumEt2();
  lcSum_ += rhs.lcSum();
  lc2Sum_ += rhs.lc2Sum();
  for (unsigned int i = 0; i < etSum_.size(); ++i)
    etSum_[i] += rhs.sumEt(i);

  return *this;
}