1 #ifndef DataFormats_L1Trigger_HGCalClusterT_h 2 #define DataFormats_L1Trigger_HGCalClusterT_h 15 #include "Math/Vector3D.h" 17 #include <unordered_map> 56 double cMipt = c->mipPt() *
fraction;
80 fraction = fraction_itr->second;
113 DetId id(id_constituent.first);
119 pt_em += id_constituent.second->pt() *
fraction;
125 pt_had += id_constituent.second->pt() *
fraction;
129 hOe = pt_had / pt_em;
180 bool operator<(const HGCalClusterT<C>&
cl)
const {
return mipPt() <
cl.mipPt(); }
182 bool operator<=(const HGCalClusterT<C>&
cl)
const {
return !(
cl > *
this); }
224 double cMipt = c->mipPt() *
fraction;
231 clusterCentre = clusterCentre * mipPt_ + constituentCentre * cMipt;
232 if ((mipPt_ + cMipt) > 0) {
233 clusterCentre /= (mipPt_ + cMipt);
237 if (clusterCentre.
z() != 0) {
float layer10percent() const
void addConstituent(const edm::Ptr< C > &c, bool updateCentre=true, float fraction=1.)
double distance(const l1t::HGCalTriggerCell &tc) const
void layer90percent(float layer90percent)
void sigmaRRTot(float sigmaRRTot)
const_iterator constituents_end() const
void sigmaEtaEtaMax(float sigmaEtaEtaMax)
double eta() const final
momentum pseudorapidity
void showerLength(int showerLength)
HGCalTriggerSubdetector subdet() const
get the subdetector
void firstLayer(int firstLayer)
void setDetId(uint32_t id)
float sigmaPhiPhiTot() const
float triggerCells90percent() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
void zBarycenter(float zBarycenter)
HGCalClusterT(const LorentzVector p4, int pt=0, int eta=0, int phi=0)
float sigmaEtaEtaMax() const
Global3DPoint GlobalPoint
constexpr uint32_t rawId() const
get the raw id
uint32_t subdetId() const
double pt() const final
transverse momentum
std::unordered_map< uint32_t, edm::Ptr< C > > constituents_
const GlobalPoint & centreProj() const
const GlobalPoint & position() const
std::unordered_map< uint32_t, edm::Ptr< C > >::const_iterator const_iterator
float triggerCells90percent_
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
void triggerCells90percent(float triggerCells90percent)
void triggerCells67percent(float triggerCells67percent)
void sigmaRRMax(float sigmaRRMax)
const_iterator constituents_begin() const
void removeConstituent(const edm::Ptr< C > &c, bool updateCentre=true)
T z() const
Cartesian z coordinate.
~HGCalClusterT() override
void updateP4AndPosition(const edm::Ptr< C > &c, bool updateCentre=true, float fraction=1.)
bool operator>(const HGCalClusterT< C > &cl) const
void sigmaPhiPhiMax(float sigmaPhiPhiMax)
std::unordered_map< uint32_t, double > constituentsFraction_
const GlobalPoint & centre() const
float layer90percent() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
Abs< T >::type abs(const T &t)
void sigmaZZ(float sigmaZZ)
const LorentzVector & p4() const final
four-momentum Lorentz vector
void sigmaPhiPhiTot(float sigmaPhiPhiTot)
float sigmaEtaEtaTot() const
void layer10percent(float layer10percent)
HGCalClusterT(const edm::Ptr< C > &c, float fraction=1.)
int coreShowerLength() const
float layer50percent() const
float sigmaRRMean() const
float triggerCells67percent() const
math::XYZTLorentzVector LorentzVector
Lorentz vector.
void layer50percent(float layer50percent)
const GlobalPoint & position() const
void maxLayer(int maxLayer)
float triggerCells67percent_
bool operator>=(const HGCalClusterT< C > &cl) const
float zBarycenter() const
float sigmaPhiPhiMax() const
void sigmaEtaEtaTot(float sigmaEtaEtaTot)
void sigmaRRMean(float sigmaRRMean)
double phi() const final
momentum azimuthal angle
void setValid(bool valid)
void setP4(const LorentzVector &p4) final
set 4-momentum
void coreShowerLength(int coreShowerLength)
double mass() const final
mass
const std::unordered_map< uint32_t, edm::Ptr< C > > & constituents() const