6 typedef std::vector<ScalableLines> Lines_t;
12 if (vc == (*i).m_vc) {
15 TEveProjected *proj = *(*i).m_ls->BeginProjecteds();
16 proj->UpdateProjection();
21 for (TEveElement::List_i
i = parent->BeginChildren();
i != parent->EndChildren(); ++
i) {
22 if ((*i)->HasChildren()) {
23 for (TEveElement::List_i
j = (*i)->BeginChildren();
j != (*i)->EndChildren(); ++
j) {
24 if (strcmp((*j)->GetElementName(),
"BlockCluster") == 0) {
36 TEveElement &oItemHolder,
45 TEveStraightLineSet *legoTrack = trackUtils->
setupLegoTrack(track);
49 TEveTrack *trk = trackUtils->
setupTrack(track);
58 TEveTrack *trk = trackUtils->
setupTrack(track);
60 TEvePointSet *ps =
new TEvePointSet();
63 Float_t *trackPoints = trk->GetP();
64 unsigned int last = (trk->GetN() - 1) * 3;
65 float y = trackPoints[last + 1];
66 float z = trackPoints[last + 2];
69 for (
signed int i = 0;
i < markers->GetN(); ++
i) {
71 markers->GetPoint(
i, a, b, c);
75 else if (y > 0 && b < 0)
80 else if (z > 0 && c < 0)
83 ps->SetNextPoint(a, b, c);
99 TEveElement &oItemHolder,
105 TEveVector centre = TEveVector(cluster.
x(), cluster.
y(), cluster.
z());
109 float eta = cluster.
eta();
110 float phi = cluster.
phi();
117 legoCluster->SetElementName(
"BlockCluster");
124 rpCluster->SetLineColor(dp.
color());
133 rzCluster->SetLineColor(dp.
color());
143 TEveElement &oItemHolder,
148 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)
const edm::EventSetup & c
#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 &)
virtual const PFClusterRef & clusterRef() const
void voteMaxEtAndEnergy(float Et, float energy) const
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
FWViewEnergyScale * getEnergyScale() 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
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
void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc) override
void updateScale(const FWViewContext *vc, const fireworks::Context &)
virtual bool trackType(TrackType trType) const
void buildViewType(const reco::PFBlock &, unsigned int, TEveElement &, FWViewType::EType, const FWViewContext *) override
double y() const
y coordinate of cluster centroid
double phi() const
azimuthal angle of cluster centroid
virtual const reco::TrackRef & trackRef() const
const edm::OwnVector< reco::PFBlockElement > & elements() const