1 #ifndef DataFormats_ParticleFlowReco_PFCluster_h
2 #define DataFormats_ParticleFlowReco_PFCluster_h
7 #include "Math/GenVector/PositionVector3D.h"
18 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
50 typedef std::vector<std::pair<CaloClusterPtr::key_type,edm::Ptr<PFCluster> > >
EEtoPSAssociation;
54 typedef ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >
REPPoint;
60 double x,
double y,
double z );
104 bool isHadron =
false);
121 double ap,
double bp ) {
155 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
156 template<
typename pruner>
189 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
PFLayer::Layer layer() const
cluster layer, see PFLayer.h in this directory
void setLayer(PFLayer::Layer layer)
set layer
math::XYZPoint position_
cluster centroid position
double energy_
cluster energy
static std::atomic< double > depthCorAp_
void setColor(int color)
set cluster color (for the PFRootEventManager display)
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
static void setDepthCorParameters(int mode, double a, double b, double ap, double bp)
std::vector< reco::PFRecHitFraction > rechits_
vector of rechit fractions (transient)
PFLayer::Layer layer_
transient layer
Sin< T >::type sin(const T &t)
void pruneUsing(pruner prune)
Fraction of a PFRecHit (rechits can be shared between several PFCluster's)
double pt() const
transverse momentum, massless approximation
PFCluster & operator=(const PFCluster &)
std::vector< std::pair< DetId, float > > hitsAndFractions_
static std::atomic< double > depthCorB_
double z() const
z coordinate of cluster centroid
void setTime(double time)
void calculatePositionREP()
computes posrep_ once and for all
const REPPoint & positionREP() const
cluster position: rho, eta, phi
std::vector< std::pair< CaloClusterPtr::key_type, edm::Ptr< PFCluster > > > EEtoPSAssociation
static const math::XYZPoint dummyVtx_
layer definition for PFRecHit and PFCluster
double x() const
x coordinate of cluster centroid
double time_
Michalis :Add timing and depth information.
void reset()
resets clusters parameters
double energy() const
cluster energy
void resetHitsAndFractions()
reset only hits and fractions
static double getDepthCorrection(double energy, bool isBelowPS=false, bool isHadron=false)
REPPoint posrep_
cluster position: rho, eta, phi (transient)
XYZPointD XYZPoint
point in space with cartesian internal representation
static std::atomic< int > depthCorMode_
double theta() const
angle
void addRecHitFraction(const reco::PFRecHitFraction &frac)
add a given fraction of the rechit
double time() const
cluster time
static std::atomic< double > depthCorBp_
math::XYZPoint const & vertex() const
dummy vertex access
int color_
color (transient)
void setDepth(double depth)
friend std::ostream & operator<<(std::ostream &out, const PFCluster &cluster)
static std::atomic< double > depthCorA_
double charge() const
dummy charge
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
const std::vector< reco::PFRecHitFraction > & recHitFractions() const
vector of rechit fractions
double y() const
y coordinate of cluster centroid
double depth() const
cluster depth