1 #include "TEveBoxSet.h" 27 std::vector<std::pair<DetId, float> > clusterDetIds = iData.
hitsAndFractions();
29 TEveBoxSet* boxset =
new TEveBoxSet();
30 boxset->Reset(TEveBoxSet::kBT_FreeBox,
true, 64);
31 boxset->UseSingleColor();
32 boxset->SetPickable(
true);
34 for( std::vector<std::pair<DetId, float> >::iterator it = clusterDetIds.begin(), itEnd = clusterDetIds.end();
39 if( corners ==
nullptr ) {
43 std::vector<float> pnts(24);
45 const uint type = ((it->first >> 28) & 0xF);
47 if(type >= 8 && type <= 10){
52 if(parameters ==
nullptr || shapes ==
nullptr ){
57 const int total_points = parameters[0];
58 const int total_vertices = 3*total_points;
59 #else // using broken boxes(half hexagon) until there's support for hexagons in TEveBoxSet 60 const int total_points = 4;
61 const int total_vertices = 3*total_points;
63 const float thickness = shapes[3];
65 for(
int i = 0;
i < total_points; ++
i){
66 pnts[
i*3+0] = corners[
i*3];
67 pnts[
i*3+1] = corners[
i*3+1];
68 pnts[
i*3+2] = corners[
i*3+2];
70 pnts[(
i*3+0)+total_vertices] = corners[
i*3];
71 pnts[(
i*3+1)+total_vertices] = corners[
i*3+1];
72 pnts[(
i*3+2)+total_vertices] = corners[
i*3+2]+thickness;
81 boxset->AddBox( &pnts[0]);
#define REGISTER_PROXYBUILDER_METHODS()
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
FWCaloClusterProxyBuilder(void)
~FWCaloClusterProxyBuilder(void) override
const float * getParameters(unsigned int id) const
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
const FWEventItem * item() const
const float * getShapePars(unsigned int id) const
void energyTower3DCorners(const float *corners, float scale, std::vector< float > &, bool reflect=false)
const float * getCorners(unsigned int id) const
const FWCaloClusterProxyBuilder & operator=(const FWCaloClusterProxyBuilder &)=delete
const FWGeometry * getGeom() const