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