14 #include "TEveGeoNode.h"
15 #include "TEveGeoShape.h"
32 TEveElement& oItemHolder) {
35 TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
37 std::vector<std::pair<DetId, float> > detids = iCluster->hitsAndFractions();
40 std::vector<double> phis;
41 for (
std::vector<std::pair<DetId, float> >::const_iterator
id = detids.begin(),
end = detids.end();
id !=
end;
44 if (corners !=
nullptr) {
45 std::vector<float> centre(3, 0);
47 for (
unsigned int i = 0;
i < 24;
i += 3) {
48 centre[0] += corners[
i];
49 centre[1] += corners[
i + 1];
50 centre[2] += corners[
i + 2];
53 phis.push_back(TEveVector(centre[0], centre[1], centre[2]).
Phi());
58 TGeoBBox* sc_box =
new TGeoTubeSeg(r - 2,
61 phiRange.first * 180 /
M_PI - 0.5,
62 phiRange.second * 180 /
M_PI + 0.5);
64 sc->SetPickable(kTRUE);
72 TEveElement& oItemHolder) {
75 TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
77 double theta_min = 10;
78 std::vector<std::pair<DetId, float> > detids = iCluster->hitsAndFractions();
81 for (
std::vector<std::pair<DetId, float> >::const_iterator
id = detids.begin(),
end = detids.end();
id !=
end;
84 if (corners !=
nullptr) {
85 std::vector<float> centre(3, 0);
87 for (
unsigned int i = 0;
i < 24;
i += 3) {
88 centre[0] += corners[
i];
89 centre[1] += corners[
i + 1];
90 centre[2] += corners[
i + 2];
93 double theta = TEveVector(centre[0], centre[1], centre[2]).Theta();
94 if (theta > theta_max)
96 if (theta < theta_min)
102 if ((theta_max > 0 && theta_max < pb->
context().caloTransAngle()) ||
111 pb, &oItemHolder, r_ecal - 1, z_ecal - 1, theta_min - 0.003, theta_max + 0.003, iPhi);
const fireworks::Context & context() const
const FWDisplayProperties & defaultDisplayProperties() const
std::pair< double, double > getPhiRange(const std::vector< double > &phis, double phi)
uint16_t *__restrict__ id
static float caloTransAngle()
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Geom::Theta< T > theta() const
static float caloZ2(bool offset=true)
const FWEventItem * item() const
static float caloR2(bool offset=true)
static float caloR1(bool offset=true)
bool makeRhoZSuperCluster(FWProxyBuilderBase *, const reco::SuperClusterRef &iCluster, float iPhi, TEveElement &oItemHolder)
void addRhoZEnergyProjection(FWProxyBuilderBase *, TEveElement *, double r_ecal, double z_ecal, double theta_min, double theta_max, double phi)
const float * getCorners(unsigned int id) const
bool makeRhoPhiSuperCluster(FWProxyBuilderBase *, const reco::SuperClusterRef &iCluster, float iPhi, TEveElement &oItemHolder)
static float caloZ1(bool offset=true)
TEveGeoShape * getShape(const char *name, TGeoBBox *shape, Color_t color)
FWGeometry * getGeom() const