13 #include "TEveGeoNode.h"
14 #include "TEveGeoShape.h"
15 #include "TEveStraightLineSet.h"
42 TEveElement& oItemHolder,
48 fwLog(
fwlog::kError) <<
"failed to get geometry of CSC chamber with rawid: " << rawid << std::endl;
52 TEveStraightLineSet* segmentSet =
new TEveStraightLineSet();
54 segmentSet->SetLineWidth(3);
58 if (TGeoTrap* trap = dynamic_cast<TGeoTrap*>(shape->GetShape()))
64 Double_t localPosition[3] = {pos.
x(), pos.
y(), pos.
z()};
65 Double_t localDirectionIn[3] = {dir.
x(), dir.
y(), dir.
z()};
66 Double_t localDirectionOut[3] = {-dir.
x(), -dir.
y(), -dir.
z()};
68 float distIn = trap->DistFromInside(localPosition, localDirectionIn);
69 float distOut = trap->DistFromInside(localPosition, localDirectionOut);
72 float localSegmentInnerPoint[3] = {
static_cast<float>(localPosition[0] + vIn.
x()),
73 static_cast<float>(localPosition[1] + vIn.
y()),
74 static_cast<float>(localPosition[2] + vIn.
z())};
76 float localSegmentOuterPoint[3] = {
static_cast<float>(localPosition[0] + vOut.
x()),
77 static_cast<float>(localPosition[1] + vOut.
y()),
78 static_cast<float>(localPosition[2] + vOut.
z())};
80 float globalSegmentInnerPoint[3];
81 float globalSegmentOuterPoint[3];
84 rawid, localSegmentInnerPoint, globalSegmentInnerPoint, localSegmentOuterPoint, globalSegmentOuterPoint);
86 segmentSet->AddLine(globalSegmentInnerPoint[0],
87 globalSegmentInnerPoint[1],
88 globalSegmentInnerPoint[2],
89 globalSegmentOuterPoint[0],
90 globalSegmentOuterPoint[1],
91 globalSegmentOuterPoint[2]);
#define REGISTER_PROXYBUILDER_METHODS()
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
LocalPoint localPosition() const override
CSCDetId cscDetId() const
static const int kAllRPZBits
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
constexpr uint32_t rawId() const
get the raw id
const FWEventItem * item() const
static const int kAll3DBits
LocalVector localDirection() const override
Local direction.
TEveGeoShape * getEveShape(unsigned int id) const
~FWCSCSegmentProxyBuilder(void) override
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
bool contains(unsigned int id) const
Vector3DBase unit() const
FWCSCSegmentProxyBuilder(void)
const FWCSCSegmentProxyBuilder & operator=(const FWCSCSegmentProxyBuilder &)=delete
const FWGeometry * getGeom() const
Basic3DVector unit() const