|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include <Inventor/C/errors/debugerror.h>
14 #include <Inventor/nodes/SoSeparator.h>
15 #include <Inventor/nodes/SoTransform.h>
16 #include <Inventor/nodes/SoTranslation.h>
35 const double halflength = ccbo->halflengthZ();
36 const double mintuberadius = 0.1;
39 VP1Msg::message(
"Warning: TRT has additional elements in rdoList: NOT IMPLEMENTED");
66 std::vector<Amg::Vector3D >
points;
111 if (npoints<1||npoints>2) {
112 collHandle()->
message(
"PRDHandle_TRT::buildShapes ERROR: Unexpected number of points in special endcap projections!!");
114 SoSeparator * sepsimple =
new SoSeparator;
118 sepsimple->addChild(transf1);
119 sepsimple->addChild(point);
120 SoTranslation * transf2(0);
122 transf2 =
new SoTranslation;
124 sepsimple->addChild(transf2);
125 sepsimple->addChild(point);
127 shape_simple = sepsimple;
129 if (
radius<mintuberadius) {
130 shape_detailed = shape_simple;
133 SoSeparator * sepdetailed =
new SoSeparator;
135 sepdetailed->addChild(transf1);
136 sepdetailed->addChild(disc);
138 sepdetailed->addChild(transf2);
139 sepdetailed->addChild(disc);
141 shape_detailed = sepdetailed;
144 inner =
false;outer =
false;
151 if (!inner&&!outer) {
152 collHandle()->
message(
"PRDHandle_TRT::buildShapes ERROR: Inconsistent projection settings! Won't project!");
157 shape_detailed = shape_simple;
170 shape_detailed = shape_simple;
196 for (
i = 26;
i >=0;
i--)
198 if (
i!=26&&(
i+1)%9==0)
200 s += (
data & (0x1<<
i) ?
"1" :
"0");
204 l <<
"Raw data bits: "+
s;
207 std::ostringstream
os;
209 l << QString(
os.str().c_str());
SoNode * getShapeNode_DriftDisc(double radius)
char data[hepevt_bytes_allocation_ATLAS]
static double trt_endcap_zasr_endcapz_begin()
Amg::Transform3D getTransform_CLHEP() const
PRDCollHandleBase * collHandle() const
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
return the detector element corresponding to this PRD
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
InDetProjFlags::InDetProjPartsFlags appropriateProjections() const
void buildShapes(SoNode *&shape_simple, SoNode *&shape_detailed)
PRDSysCommonData * common() const
virtual QStringList clicked() const
static double trt_barrel_posneg_z()
static double trt_endcap_zasr_squeezefact()
HitsSoNodeManager * nodeManager() const
static double surfacethickness()
static void transformECPointToZPlane_specialZtoR(Amg::Vector3D &p, const double &planeZ, const double &planeRBegin, const double &endcapZBegin, const double &squeezeFactor)
Eigen::Affine3d Transform3D
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
PRDHandle_TRT(PRDCollHandle_TRT *, const InDet::TRT_DriftCircle *)
int layer_or_wheel(const Identifier &id) const
Identifier identify() const
return the identifier
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
const Amg::Vector2D & localPosition() const
return the local position reference
virtual QStringList clicked() const
Eigen::Matrix< double, 3, 1 > Vector3D
int phi_module(const Identifier &id) const
static double trt_data_disttosurface_epsilon()
const InDet::TRT_DriftCircle * m_driftcircle
static const TRT_ID * trtIDHelper()
SoNode * getShapeNode_ProjectedDriftTube(double halfLength, double radius, bool inner, bool outer)
static void message(const QString &, IVP1System *sys=0)
SoNode * getShapeNode_Point()
Eigen::Translation< double, 3 > Translation3D
static double trt_endcap_zasr_innerradius()
void message(const QString &) const
SoNode * getShapeNode_DriftTube(double halfLength, double radius)
unsigned int getWord() const
returns the TRT dataword
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
virtual const Trk::Surface & surface() const override final
Element Surface: access to the Surface (straw layer)
virtual Amg::Vector3D center() const