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,
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) {
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) {
Abstract base class for a PFBlock element (track, cluster...)
BuilderType e_builderType
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)
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
static constexpr unsigned int kLegoPFECALBit
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
const edm::OwnVector< reco::PFBlockElement > & elements() const
TEvePointSet * getCollisionMarkers(const TEveTrack *)
TEveTrack * setupTrack(const reco::Track &)
virtual const reco::TrackRef & trackRef() const
std::vector< ScalableLines > m_clusters
double x() const
x coordinate of cluster centroid
TEveScalableStraightLineSet * buildRhoPhiClusterLineSet(const reco::PFCluster &, const FWViewContext *, float r)
double phi() const
azimuthal angle of cluster centroid
const fireworks::Context & context() const
FWViewEnergyScale * getEnergyScale() const
static constexpr unsigned int kRhoZBit
const FWDisplayProperties & defaultDisplayProperties() const
void voteMaxEtAndEnergy(float Et, float energy) const
double energy() const
cluster energy
TEveScalableStraightLineSet * buildRhoZClusterLineSet(const reco::PFCluster &, const FWViewContext *, float caloTransAngle, float r, float z)
double z() const
z coordinate of cluster centroid
double y() const
y coordinate of cluster centroid
virtual const PFClusterRef & clusterRef() const
TEveStraightLineSet * setupLegoTrack(const reco::Track &)
float calculateEt(const TEveVector ¢re, float e)
static constexpr unsigned int kRhoPhiPFBit
virtual bool trackType(TrackType trType) const
float getScaleFactor3D() const
void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc) override
void updateScale(const FWViewContext *vc, const fireworks::Context &)
static constexpr unsigned int kLegoBit
double eta() const
pseudorapidity of cluster centroid
void buildViewType(const reco::PFBlock &, unsigned int, TEveElement &, FWViewType::EType, const FWViewContext *) override
const FWEventItem * item() const