8 typedef std::vector<ScalableLines> Lines_t;
19 TEveProjected *
proj = *(*i).m_ls->BeginProjecteds();
20 proj->UpdateProjection();
26 for( TEveElement::List_i
i = parent->BeginChildren();
i != parent->EndChildren(); ++
i )
28 if( (*i)->HasChildren() )
30 for( TEveElement::List_i
j = (*i)->BeginChildren();
j != (*i)->EndChildren(); ++
j )
32 if( strcmp( (*j)->GetElementName(),
"BlockCluster" ) == 0 )
55 TEveStraightLineSet *legoTrack = trackUtils->
setupLegoTrack( track );
60 TEveTrack *trk = trackUtils->
setupTrack( track );
70 TEveTrack *trk = trackUtils->
setupTrack( track );
72 TEvePointSet *ps =
new TEvePointSet();
75 Float_t *trackPoints = trk->GetP();
76 unsigned int last = ( trk->GetN() - 1 ) * 3;
77 float y = trackPoints[last+1];
78 float z = trackPoints[last+2];
81 for(
signed int i = 0;
i < markers->GetN(); ++
i )
84 markers->GetPoint(
i, a, b, c );
88 else if( y > 0 && b < 0 )
93 else if( z > 0 && c < 0 )
96 ps->SetNextPoint( a, b, c );
117 TEveVector centre = TEveVector( cluster.
x(), cluster.
y(), cluster.
z() );
121 float eta = cluster.
eta();
122 float phi = cluster.
phi();
130 legoCluster->SetElementName(
"BlockCluster" );
138 rpCluster->SetLineColor( dp.
color() );
149 rzCluster->SetLineColor( dp.
color() );
163 for(
unsigned int i = 0;
i < elements.
size(); ++
i )
const fireworks::Context & context() const
Abstract base class for a PFBlock element (track, cluster...)
float getScaleFactor3D() const
BuilderType e_builderType
const FWDisplayProperties & defaultDisplayProperties() const
void setupTrackElement(const reco::PFBlockElement &, TEveElement &, const FWViewContext *, FWViewType::EType)
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
void setupClusterElement(const reco::PFBlockElement &, TEveElement &, const FWViewContext *, FWViewType::EType, float r)
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
TEvePointSet * getCollisionMarkers(const TEveTrack *)
TEveTrack * setupTrack(const reco::Track &)
void voteMaxEtAndEnergy(float Et, float energy) const
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
FWViewEnergyScale * getEnergyScale() const
const edm::OwnVector< reco::PFBlockElement > & elements() const
std::vector< ScalableLines > m_clusters
TEveScalableStraightLineSet * buildRhoPhiClusterLineSet(const reco::PFCluster &, const FWViewContext *, float r)
double z() const
z coordinate of cluster centroid
const FWEventItem * item() const
double eta() const
pseudorapidity of cluster centroid
virtual void buildViewType(const reco::PFBlock &, unsigned int, TEveElement &, FWViewType::EType, const FWViewContext *)
virtual reco::TrackRef trackRef() const
virtual PFClusterRef clusterRef() const
TEveScalableStraightLineSet * buildRhoZClusterLineSet(const reco::PFCluster &, const FWViewContext *, float caloTransAngle, float r, float z)
double x() const
x coordinate of cluster centroid
TEveStraightLineSet * setupLegoTrack(const reco::Track &)
float calculateEt(const TEveVector ¢re, float e)
double energy() const
cluster energy
virtual void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc)
void updateScale(const FWViewContext *vc, const fireworks::Context &)
virtual bool trackType(TrackType trType) const
double y() const
y coordinate of cluster centroid
double phi() const
azimuthal angle of cluster centroid