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