CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
l1t::PFCluster Class Reference

#include <PFCluster.h>

Inheritance diagram for l1t::PFCluster:
l1t::L1Candidate reco::LeafCandidate reco::Candidate

Public Types

typedef std::pair< edm::Ptr< l1t::L1Candidate >, float > ConstituentAndFraction
 constituent information. note that this is not going to be available in the hardware! More...
 
typedef std::vector< ConstituentAndFractionConstituentsAndFractions
 
- Public Types inherited from reco::LeafCandidate
typedef int Charge
 electric charge type More...
 
typedef CandidateCollection daughters
 collection of daughter candidates More...
 
typedef unsigned int index
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef math::PtEtaPhiMLorentzVector PolarLorentzVector
 Lorentz vector. More...
 
typedef math::XYZVector Vector
 point in the space More...
 
- Public Types inherited from reco::Candidate
enum  { dimension = 3 }
 
enum  { size = dimension * (dimension + 1) / 2 }
 matix size More...
 
typedef int Charge
 electric charge type More...
 
typedef candidate::const_iterator const_iterator
 
typedef math::Error< dimension >::type CovarianceMatrix
 covariance error matrix (3x3) More...
 
typedef unsigned int index
 index type More...
 
typedef candidate::iterator iterator
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef math::PtEtaPhiMLorentzVector PolarLorentzVector
 Lorentz vector. More...
 
typedef size_t size_type
 
typedef math::XYZVector Vector
 point in the space More...
 

Public Member Functions

void addConstituent (const edm::Ptr< l1t::L1Candidate > &cand, float fraction=1.0)
 adds a candidate to this cluster; note that this only records the information, it's up to you to also set the 4-vector appropriately More...
 
void calibratePt (float newpt, float preserveEmEt=true)
 
const ConstituentsAndFractionsconstituentsAndFractions () const
 constituent information. note that this is not going to be available in the hardware! More...
 
float egVsPionMVAOut () const
 
float egVsPUMVAOut () const
 
float emEt () const
 
float hOverE () const
 
bool isEM () const
 
 PFCluster ()
 
 PFCluster (float pt, float eta, float phi, float hOverE=0, bool isEM=false, float ptError=0, int hwpt=0, int hweta=0, int hwphi=0)
 
 PFCluster (const LorentzVector &p4, float hOverE, bool isEM, float ptError=0, int hwpt=0, int hweta=0, int hwphi=0)
 
float ptError () const
 
void setEgVsPionMVAOut (float egVsPionMVAOut)
 
void setEgVsPUMVAOut (float egVsPUMVAOut)
 
void setHOverE (float hOverE)
 
void setIsEM (bool isEM)
 
void setPtError (float ptError)
 
- Public Member Functions inherited from l1t::L1Candidate
int hwEta () const
 
int hwIso () const
 
int hwPhi () const
 
int hwPt () const
 
int hwQual () const
 
 L1Candidate ()
 
 L1Candidate (const LorentzVector &p4, int pt=0, int eta=0, int phi=0, int qual=0, int iso=0)
 
 L1Candidate (const PolarLorentzVector &p4, int pt=0, int eta=0, int phi=0, int qual=0, int iso=0)
 
virtual bool operator!= (const l1t::L1Candidate &rhs) const
 
virtual bool operator== (const l1t::L1Candidate &rhs) const
 
void setHwEta (int eta)
 
void setHwIso (int iso)
 
void setHwPhi (int phi)
 
void setHwPt (int pt)
 
void setHwQual (int qual)
 
 ~L1Candidate () override
 
- Public Member Functions inherited from reco::LeafCandidate
Vector boostToCM () const final
 
int charge () const final
 electric charge More...
 
LeafCandidateclone () const override
 returns a clone of the Candidate object More...
 
void construct (int qx3, float pt, float eta, float phi, float mass, const Point &vtx, int pdgId, int status)
 
const Candidatedaughter (size_type) const override
 return daughter at a given position (throws an exception) More...
 
Candidatedaughter (size_type) override
 return daughter at a given position (throws an exception) More...
 
Candidatedaughter (const std::string &s) override
 return daughter with a specified role name More...
 
const Candidatedaughter (const std::string &s) const override
 return daughter with a specified role name More...
 
double energy () const final
 energy More...
 
double et () const final
 transverse energy More...
 
double et2 () const final
 transverse energy squared (use this for cut!) More...
 
double eta () const final
 momentum pseudorapidity More...
 
void fillVertexCovariance (CovarianceMatrix &v) const override
 fill SMatrix More...
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
bool hasMasterClone () const override
 
bool hasMasterClonePtr () const override
 
bool isCaloMuon () const override
 
bool isConvertedPhoton () const override
 
bool isElectron () const override
 
bool isGlobalMuon () const override
 
bool isJet () const override
 
bool isMuon () const override
 
bool isPhoton () const override
 
bool isStandAloneMuon () const override
 
bool isTrackerMuon () const override
 
 LeafCandidate ()
 
 LeafCandidate (const Candidate &c)
 
template<typename... Args>
 LeafCandidate (Args &&... args)
 
 LeafCandidate (LeafCandidate &rh)
 
 LeafCandidate (LeafCandidate &&)=default
 
 LeafCandidate (LeafCandidate const &)=default
 
bool longLived () const final
 is long lived? More...
 
double mass () const final
 mass More...
 
bool massConstraint () const final
 do mass constraint? More...
 
double massSqr () const final
 mass squared More...
 
const CandidateBaseRefmasterClone () const override
 
const CandidatePtrmasterClonePtr () const override
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
Vector momentum () const final
 spatial momentum vector More...
 
const Candidatemother (size_type) const override
 return mother at a given position (throws an exception) More...
 
double mt () const final
 transverse mass More...
 
double mtSqr () const final
 transverse mass squared More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
size_t numberOfDaughters () const override
 number of daughters More...
 
size_t numberOfMothers () const override
 number of mothers More...
 
size_t numberOfSourceCandidatePtrs () const override
 
LeafCandidateoperator= (LeafCandidate &&)=default
 
LeafCandidateoperator= (LeafCandidate const &)=default
 
double p () const final
 magnitude of momentum vector More...
 
const LorentzVectorp4 () const final
 four-momentum Lorentz vector More...
 
int pdgId () const final
 PDG identifier. More...
 
double phi () const final
 momentum azimuthal angle More...
 
const PolarLorentzVectorpolarP4 () const final
 four-momentum Lorentz vector More...
 
double pt () const final
 transverse momentum More...
 
double px () const final
 x coordinate of momentum vector More...
 
double py () const final
 y coordinate of momentum vector More...
 
double pz () const final
 z coordinate of momentum vector More...
 
double rapidity () const final
 rapidity More...
 
void setCharge (Charge q) final
 set electric charge More...
 
void setLongLived () final
 
void setMass (double m) final
 set particle mass More...
 
void setMassConstraint () final
 
void setP4 (const LorentzVector &p4) final
 set 4-momentum More...
 
void setP4 (const PolarLorentzVector &p4) final
 set 4-momentum More...
 
void setPdgId (int pdgId) final
 
void setPz (double pz) final
 
void setStatus (int status) final
 set status word More...
 
void setThreeCharge (Charge qx3) final
 set electric charge More...
 
void setVertex (const Point &vertex) override
 set vertex More...
 
CandidatePtr sourceCandidatePtr (size_type i) const override
 
int status () const final
 status word More...
 
double theta () const final
 momentum polar angle More...
 
int threeCharge () const final
 electric charge More...
 
const Pointvertex () const override
 vertex position (overwritten by PF...) More...
 
double vertexChi2 () const override
 chi-squares More...
 
double vertexCovariance (int i, int j) const override
 (i, j)-th element of error matrix, i, j = 0, ... 2 More...
 
CovarianceMatrix vertexCovariance () const final
 return SMatrix More...
 
double vertexNdof () const override
 
double vertexNormalizedChi2 () const override
 chi-squared divided by n.d.o.f. More...
 
double vx () const override
 x coordinate of vertex position More...
 
double vy () const override
 y coordinate of vertex position More...
 
double vz () const override
 z coordinate of vertex position More...
 
double y () const final
 rapidity More...
 
 ~LeafCandidate () override
 destructor More...
 
- Public Member Functions inherited from reco::Candidate
const_iterator begin () const
 first daughter const_iterator More...
 
iterator begin ()
 first daughter iterator More...
 
virtual const TrackbestTrack () const
 
 Candidate ()
 default constructor More...
 
virtual float dxyError () const
 uncertainty on dxy More...
 
virtual float dzError () const
 uncertainty on dz More...
 
const_iterator end () const
 last daughter const_iterator More...
 
iterator end ()
 last daughter iterator More...
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
virtual void setSourceCandidatePtr (const CandidatePtr &ptr)
 Set the ptr to the source Candidate. More...
 
virtual ~Candidate ()
 destructor More...
 

Private Attributes

ConstituentsAndFractions constituents_
 
float egVsPionMVAOut_
 
float egVsPUMVAOut_
 
float hOverE_
 
float ptError_
 

Additional Inherited Members

Detailed Description

Definition at line 10 of file PFCluster.h.

Member Typedef Documentation

◆ ConstituentAndFraction

constituent information. note that this is not going to be available in the hardware!

Definition at line 13 of file PFCluster.h.

◆ ConstituentsAndFractions

Definition at line 14 of file PFCluster.h.

Constructor & Destructor Documentation

◆ PFCluster() [1/3]

l1t::PFCluster::PFCluster ( )
inline

Definition at line 16 of file PFCluster.h.

16 {}

◆ PFCluster() [2/3]

l1t::PFCluster::PFCluster ( float  pt,
float  eta,
float  phi,
float  hOverE = 0,
bool  isEM = false,
float  ptError = 0,
int  hwpt = 0,
int  hweta = 0,
int  hwphi = 0 
)
inline

Definition at line 17 of file PFCluster.h.

References isEM(), and reco::LeafCandidate::setPdgId().

26  : L1Candidate(PolarLorentzVector(pt, eta, phi, 0), hwpt, hweta, hwphi, /*hwQuality=*/isEM ? 1 : 0),
27  hOverE_(hOverE),
28  ptError_(ptError) {
29  setPdgId(isEM ? 22 : 130); // photon : non-photon(K0)
30  }
float hOverE() const
Definition: PFCluster.h:37
double pt() const final
transverse momentum
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: LeafCandidate.h:25
float ptError_
Definition: PFCluster.h:69
float ptError() const
Definition: PFCluster.h:56
bool isEM() const
Definition: PFCluster.h:59
double phi() const final
momentum azimuthal angle
void setPdgId(int pdgId) final
float hOverE_
Definition: PFCluster.h:69
double eta() const final
momentum pseudorapidity

◆ PFCluster() [3/3]

l1t::PFCluster::PFCluster ( const LorentzVector p4,
float  hOverE,
bool  isEM,
float  ptError = 0,
int  hwpt = 0,
int  hweta = 0,
int  hwphi = 0 
)
inline

Definition at line 31 of file PFCluster.h.

References isEM(), and reco::LeafCandidate::setPdgId().

33  : L1Candidate(p4, hwpt, hweta, hwphi, /*hwQuality=*/isEM ? 1 : 0), hOverE_(hOverE), ptError_(ptError) {
34  setPdgId(isEM ? 22 : 130); // photon : non-photon(K0)
35  }
float hOverE() const
Definition: PFCluster.h:37
float ptError_
Definition: PFCluster.h:69
const LorentzVector & p4() const final
four-momentum Lorentz vector
float ptError() const
Definition: PFCluster.h:56
bool isEM() const
Definition: PFCluster.h:59
void setPdgId(int pdgId) final
float hOverE_
Definition: PFCluster.h:69

Member Function Documentation

◆ addConstituent()

void l1t::PFCluster::addConstituent ( const edm::Ptr< l1t::L1Candidate > &  cand,
float  fraction = 1.0 
)
inline

adds a candidate to this cluster; note that this only records the information, it's up to you to also set the 4-vector appropriately

Definition at line 52 of file PFCluster.h.

References constituents_, and HLT_2022v11_cff::fraction.

52  {
53  constituents_.emplace_back(cand, fraction);
54  }
ConstituentsAndFractions constituents_
Definition: PFCluster.h:70

◆ calibratePt()

void l1t::PFCluster::calibratePt ( float  newpt,
float  preserveEmEt = true 
)

Definition at line 3 of file PFCluster.cc.

References emEt(), reco::LeafCandidate::eta(), hOverE_, reco::LeafCandidate::mass(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), ptError_, and reco::LeafCandidate::setP4().

Referenced by l1tpf::corrector::correctPt().

3  {
4  float currEmEt = emEt();
5  ptError_ *= newpt / pt();
6  setP4(PolarLorentzVector(newpt, eta(), phi(), mass()));
7  if (preserveEmEt) {
8  float hNew = std::max<float>(pt() - currEmEt, 0);
9  hOverE_ = (currEmEt > 0 ? hNew / currEmEt : -1);
10  }
11 }
double pt() const final
transverse momentum
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: LeafCandidate.h:25
float ptError_
Definition: PFCluster.h:69
double mass() const final
mass
double phi() const final
momentum azimuthal angle
void setP4(const LorentzVector &p4) final
set 4-momentum
float emEt() const
Definition: PFCluster.h:40
float hOverE_
Definition: PFCluster.h:69
double eta() const final
momentum pseudorapidity

◆ constituentsAndFractions()

const ConstituentsAndFractions& l1t::PFCluster::constituentsAndFractions ( ) const
inline

constituent information. note that this is not going to be available in the hardware!

Definition at line 50 of file PFCluster.h.

References constituents_.

50 { return constituents_; }
ConstituentsAndFractions constituents_
Definition: PFCluster.h:70

◆ egVsPionMVAOut()

float l1t::PFCluster::egVsPionMVAOut ( ) const
inline

Definition at line 62 of file PFCluster.h.

References egVsPionMVAOut_.

Referenced by setEgVsPionMVAOut().

62 { return egVsPionMVAOut_; }
float egVsPionMVAOut_
Definition: PFCluster.h:69

◆ egVsPUMVAOut()

float l1t::PFCluster::egVsPUMVAOut ( ) const
inline

Definition at line 65 of file PFCluster.h.

References egVsPUMVAOut_.

Referenced by setEgVsPUMVAOut().

65 { return egVsPUMVAOut_; }
float egVsPUMVAOut_
Definition: PFCluster.h:69

◆ emEt()

float l1t::PFCluster::emEt ( ) const
inline

Definition at line 40 of file PFCluster.h.

References hOverE_, and reco::LeafCandidate::pt().

Referenced by calibratePt(), and l1tpf::corrector::correctPt().

40  {
41  if (hOverE_ == -1)
42  return 0;
43  return pt() / (1 + hOverE_);
44  }
double pt() const final
transverse momentum
float hOverE_
Definition: PFCluster.h:69

◆ hOverE()

float l1t::PFCluster::hOverE ( ) const
inline

Definition at line 37 of file PFCluster.h.

References hOverE_.

Referenced by setHOverE().

37 { return hOverE_; }
float hOverE_
Definition: PFCluster.h:69

◆ isEM()

bool l1t::PFCluster::isEM ( ) const
inline

Definition at line 59 of file PFCluster.h.

References l1t::L1Candidate::hwQual().

Referenced by PFCluster(), and setIsEM().

59 { return hwQual(); }
int hwQual() const
Definition: L1Candidate.h:38

◆ ptError()

float l1t::PFCluster::ptError ( ) const
inline

Definition at line 56 of file PFCluster.h.

References ptError_.

Referenced by setPtError().

56 { return ptError_; }
float ptError_
Definition: PFCluster.h:69

◆ setEgVsPionMVAOut()

void l1t::PFCluster::setEgVsPionMVAOut ( float  egVsPionMVAOut)
inline

Definition at line 63 of file PFCluster.h.

References egVsPionMVAOut(), and egVsPionMVAOut_.

Referenced by l1tpf::HGC3DClusterEgID::passID().

float egVsPionMVAOut_
Definition: PFCluster.h:69
float egVsPionMVAOut() const
Definition: PFCluster.h:62

◆ setEgVsPUMVAOut()

void l1t::PFCluster::setEgVsPUMVAOut ( float  egVsPUMVAOut)
inline

Definition at line 66 of file PFCluster.h.

References egVsPUMVAOut(), and egVsPUMVAOut_.

Referenced by l1tpf::HGC3DClusterEgID::passID().

float egVsPUMVAOut() const
Definition: PFCluster.h:65
float egVsPUMVAOut_
Definition: PFCluster.h:69

◆ setHOverE()

void l1t::PFCluster::setHOverE ( float  hOverE)
inline

Definition at line 38 of file PFCluster.h.

References hOverE(), and hOverE_.

38 { hOverE_ = hOverE; }
float hOverE() const
Definition: PFCluster.h:37
float hOverE_
Definition: PFCluster.h:69

◆ setIsEM()

void l1t::PFCluster::setIsEM ( bool  isEM)
inline

Definition at line 60 of file PFCluster.h.

References isEM(), and l1t::L1Candidate::setHwQual().

Referenced by l1tpf::PFClusterProducerFromHGC3DClusters::produce().

60 { setHwQual(isEM); }
void setHwQual(int qual)
Definition: L1Candidate.h:31
bool isEM() const
Definition: PFCluster.h:59

◆ setPtError()

void l1t::PFCluster::setPtError ( float  ptError)
inline

Definition at line 57 of file PFCluster.h.

References ptError(), and ptError_.

Referenced by l1tpf::PFClusterProducerFromL1EGClusters::produce().

57 { ptError_ = ptError; }
float ptError_
Definition: PFCluster.h:69
float ptError() const
Definition: PFCluster.h:56

Member Data Documentation

◆ constituents_

ConstituentsAndFractions l1t::PFCluster::constituents_
private

Definition at line 70 of file PFCluster.h.

Referenced by addConstituent(), and constituentsAndFractions().

◆ egVsPionMVAOut_

float l1t::PFCluster::egVsPionMVAOut_
private

Definition at line 69 of file PFCluster.h.

Referenced by egVsPionMVAOut(), and setEgVsPionMVAOut().

◆ egVsPUMVAOut_

float l1t::PFCluster::egVsPUMVAOut_
private

Definition at line 69 of file PFCluster.h.

Referenced by egVsPUMVAOut(), and setEgVsPUMVAOut().

◆ hOverE_

float l1t::PFCluster::hOverE_
private

Definition at line 69 of file PFCluster.h.

Referenced by calibratePt(), emEt(), hOverE(), and setHOverE().

◆ ptError_

float l1t::PFCluster::ptError_
private

Definition at line 69 of file PFCluster.h.

Referenced by calibratePt(), ptError(), and setPtError().