File indexing completed on 2023-03-17 10:50:23
0001 #include "DataFormats/L1THGCal/interface/HGCalTower.h"
0002 #include "FWCore/Utilities/interface/EDMException.h"
0003
0004 using l1t::HGCalTower;
0005 using l1t::L1Candidate;
0006
0007 HGCalTower::HGCalTower(double etEm,
0008 double etHad,
0009 double eta,
0010 double phi,
0011 uint32_t id,
0012 int hwpt,
0013 int hweta,
0014 int hwphi,
0015 int qual,
0016 int hwEtEm,
0017 int hwEtHad,
0018 int hwEtRatio)
0019 : L1Candidate(PolarLorentzVector(etEm + etHad, eta, phi, 0.), hwpt, hweta, hwphi, qual),
0020 etEm_(etEm),
0021 etHad_(etHad),
0022 id_(id),
0023 hwEtEm_(hwEtEm),
0024 hwEtHad_(hwEtHad),
0025 hwEtRatio_(hwEtRatio) {}
0026
0027 HGCalTower::~HGCalTower() {}
0028
0029 void HGCalTower::addEtEm(double et) {
0030 etEm_ += et;
0031 addEt(et);
0032 }
0033
0034 void HGCalTower::addEtHad(double et) {
0035 etHad_ += et;
0036 addEt(et);
0037 }
0038
0039 void HGCalTower::addEt(double et) { this->setP4(PolarLorentzVector(this->pt() + et, this->eta(), this->phi(), 0.)); }
0040
0041 const HGCalTower& HGCalTower::operator+=(const HGCalTower& tower) {
0042
0043 if (id().rawId() != tower.id().rawId()) {
0044 throw edm::Exception(edm::errors::StdException, "StdException")
0045 << "HGCalTower: adding to this tower with ID: " << id().rawId()
0046 << " one with different ID: " << tower.id().rawId() << std::endl;
0047 }
0048 addEt(tower.pt());
0049 etEm_ += tower.etEm();
0050 etHad_ += tower.etHad();
0051
0052 return *this;
0053 }