ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
PRDHandle_TRT Class Reference

#include <PRDHandle_TRT.h>

Inheritance diagram for PRDHandle_TRT:
Collaboration diagram for PRDHandle_TRT:

Public Member Functions

 PRDHandle_TRT (PRDCollHandle_TRT *, const InDet::TRT_DriftCircle *)
 
virtual ~PRDHandle_TRT ()
 
void buildShapes (SoNode *&shape_simple, SoNode *&shape_detailed)
 
int regionIndex ()
 
bool highLight () const
 
bool transformUsesSurfacePositionOnly () const
 
const InDet::TRT_DriftCircledriftCircle () const
 
const Trk::PrepRawDatagetPRD () const
 
bool isBarrel () const
 
bool isPositiveZ () const
 
bool highLevel () const
 
virtual QStringList clicked () const
 
void setVisible (bool)
 
bool visible () const
 
SoSeparator * sepSimple () const
 
SoSeparator * sepDetailed () const
 
PRDSysCommonDatacommon () const
 
virtual Amg::Vector3D center () const
 
Amg::Vector3D positionPRD () const
 
Amg::Vector3D positionSecondPRD () const
 
Amg::Transform3D getTransform_CLHEP () const
 
virtual SoTransform * createTransform () const
 
void update3DObjects ()
 
void updateMaterial ()
 
virtual bool inMuonChamber () const
 
virtual GeoPVConstLink parentMuonChamberPV () const
 
PRDCollHandleBasecollHandle () const
 
virtual const Trk::PrepRawDatagetSecondPRD () const
 
virtual bool isSane () const
 Returns false if the PRD is not safe to draw. More...
 

Private Attributes

const InDet::TRT_DriftCirclem_driftcircle
 
Impm_d
 
PRDSysCommonDatam_common
 
bool m_visible
 

Detailed Description

Definition at line 12 of file PRDHandle_TRT.h.

Constructor & Destructor Documentation

◆ PRDHandle_TRT()

PRDHandle_TRT::PRDHandle_TRT ( PRDCollHandle_TRT collhandle,
const InDet::TRT_DriftCircle dc 
)

Definition at line 24 of file PRDHandle_TRT.cxx.

25  : PRDHandleBase(static_cast<PRDCollHandleBase*>(collhandle)), m_driftcircle(dc)
26 {
27 }

◆ ~PRDHandle_TRT()

virtual PRDHandle_TRT::~PRDHandle_TRT ( )
inlinevirtual

Definition at line 16 of file PRDHandle_TRT.h.

16 {};

Member Function Documentation

◆ buildShapes()

void PRDHandle_TRT::buildShapes ( SoNode *&  shape_simple,
SoNode *&  shape_detailed 
)
virtual

Implements PRDHandleBase.

Definition at line 30 of file PRDHandle_TRT.cxx.

31 {
33  if (not ccbo) return;
34  const double radius = m_driftcircle->localPosition()[0];
35  const double halflength = ccbo->halflengthZ();
36  const double mintuberadius = 0.1;
37 
38  if ( m_driftcircle->rdoList().size() > 1)
39  VP1Msg::message("Warning: TRT has additional elements in rdoList: NOT IMPLEMENTED");
40 
41  const PRDCollHandle_TRT* trtcollhandle(static_cast<PRDCollHandle_TRT*>(collHandle()));
42 
43  if (trtcollhandle->project()) {
44 
46  // Projections: //
48 
49  const InDetProjFlags::InDetProjPartsFlags projparts(trtcollhandle->appropriateProjections());
50  bool inner,outer;
51  if (isBarrel()) {
52  inner = (projparts&InDetProjFlags::BarrelCentral);
54  } else {
55  const bool posz(isPositiveZ());
58  //Special TRT EndCap Z->R projections.
59 
60  //Find center of tube:
61  Amg::Transform3D prdtransform(getTransform_CLHEP());
62  Amg::Vector3D center(prdtransform*Amg::Vector3D(0,0,0));
63 
64  // --> Get points for special projections
66  std::vector<Amg::Vector3D > points;
67 
68  if (posz) {
69  if ( projparts & InDetProjFlags::TRT_EndCapZToRPositive ) {
76  points.push_back(p);
77  }
78  if ( projparts & InDetProjFlags::TRT_EndCapZToRCentral ) {
80  //Fixme: Use same parameters here as in InDetProjHelper!!
86  points.push_back(p);
87  }
88  } else {
89  if ( projparts & InDetProjFlags::TRT_EndCapZToRNegative ) {
96  points.push_back(p);
97  }
98  if ( projparts & InDetProjFlags::TRT_EndCapZToRCentral ) {
101  -0.5* InDetProjParams::surfacethickness() - eps,
105  points.push_back(p);
106  }
107  }
108  // --> Build scene objects for special projections
109 
110  const unsigned npoints = points.size();
111  if (npoints<1||npoints>2) {
112  collHandle()->message("PRDHandle_TRT::buildShapes ERROR: Unexpected number of points in special endcap projections!!");
113  } else {
114  SoSeparator * sepsimple = new SoSeparator;
115  SoTransform * transf1(VP1LinAlgUtils::toSoTransform((prdtransform.inverse())
116  * Amg::Translation3D(points.at(0).x(),points.at(0).y(),points.at(0).z())));
117  SoNode* point = common()->nodeManager()->getShapeNode_Point();
118  sepsimple->addChild(transf1);
119  sepsimple->addChild(point);
120  SoTranslation * transf2(0);
121  if (npoints==2) {
122  transf2 = new SoTranslation;
123  transf2->translation.setValue(points[1].x()-points[0].x(),points[1].y()-points[0].y(),points[1].z()-points[0].z());
124  sepsimple->addChild(transf2);
125  sepsimple->addChild(point);
126  }
127  shape_simple = sepsimple;
128 
129  if (radius<mintuberadius) {
130  shape_detailed = shape_simple;
131  return;
132  }
133  SoSeparator * sepdetailed = new SoSeparator;
134  SoNode* disc = common()->nodeManager()->getShapeNode_DriftDisc(radius);
135  sepdetailed->addChild(transf1);
136  sepdetailed->addChild(disc);
137  if (npoints==2) {
138  sepdetailed->addChild(transf2);
139  sepdetailed->addChild(disc);
140  }
141  shape_detailed = sepdetailed;
142  return;
143  }
144  inner = false;outer = false;
145  //end special projections
146  } else {
149  }
150  }//end endcap
151  if (!inner&&!outer) {
152  collHandle()->message("PRDHandle_TRT::buildShapes ERROR: Inconsistent projection settings! Won't project!");
153  } else {
154  //Perform projections
155  shape_simple = common()->nodeManager()->getShapeNode_ProjectedDriftTube( halflength, 0.0, inner, outer );
156  if (radius<mintuberadius)
157  shape_detailed = shape_simple;
158  else
159  shape_detailed = common()->nodeManager()->getShapeNode_ProjectedDriftTube( halflength, radius, inner, outer );
160  return;
161  }
162  }//endif projections
163 
165  // No projections: //
167 
168  shape_simple = common()->nodeManager()->getShapeNode_DriftTube( halflength, 0.0 );
169  if (radius<mintuberadius)
170  shape_detailed = shape_simple;
171  else
172  shape_detailed = common()->nodeManager()->getShapeNode_DriftTube( halflength, radius );
173 
174 }

◆ center()

Amg::Vector3D PRDHandleBase::center ( ) const
virtualinherited

Reimplemented in PRDHandle_SpacePoint.

Definition at line 316 of file PRDHandleBase.cxx.

317 {
318  return positionPRD();
319 }

◆ clicked()

QStringList PRDHandle_TRT::clicked ( ) const
virtual

Reimplemented from PRDHandleBase.

Definition at line 188 of file PRDHandle_TRT.cxx.

189 {
190  QStringList l;
192  const unsigned int data = m_driftcircle->getWord();
193 
194  QString s;
195  int i;
196  for (i = 26; i >=0; i--)
197  {
198  if (i!=26&&(i+1)%9==0)
199  s+=" ";
200  s += ( data & (0x1<<i) ? "1" : "0");
201  if ((i+1)%9==0)
202  s+=" ";
203  }
204  l << "Raw data bits: "+s;
205 
206 
207  std::ostringstream os;
208  os << std::hex<<data;
209  l << QString(os.str().c_str());
210 
211 
212 // l << "Drift radius: "+QString::number(m_driftcircle->localPosition()[0]/CLHEP::mm)+" CLHEP::mm";
213 // const Trk::CylinderBounds* ccbo = dynamic_cast<const Trk::CylinderBounds*>(&(m_driftcircle->detectorElement()->surface(m_driftcircle->identify()).bounds()));
214 // if (ccbo)
215 // l << "Straw length: "+QString::number(ccbo->halflengthZ()*2/CLHEP::cm)+" CLHEP::cm";
216 
217  return l;
218 }

◆ collHandle()

PRDCollHandleBase * PRDHandleBase::collHandle ( ) const
inherited

Definition at line 228 of file PRDHandleBase.cxx.

229 {
230  return m_d->colhandle;
231 }

◆ common()

PRDSysCommonData* PRDHandleBase::common ( ) const
inlineinherited

Definition at line 53 of file PRDHandleBase.h.

53 { return m_common; }

◆ createTransform()

SoTransform * PRDHandleBase::createTransform ( ) const
virtualinherited

Reimplemented in PRDHandle_sTGC, and PRDHandle_TGC.

Definition at line 371 of file PRDHandleBase.cxx.

372 {
373  //NB: Some code duplicated here and in the getTransform_CLHEP() method.
374  const Trk::PrepRawData * prd = getPRD();
375  if (!prd) {
376  std::cerr<<"PRDHandleBase::createTransform() No prd!"<<std::endl;
377  return new SoTransform;
378  }
379  const Trk::Surface& theSurface = prd->detectorElement()->surface(prd->identify());
380  SoTransform * theHitTransform = VP1LinAlgUtils::toSoTransform(theSurface.transform());
381 
382  Amg::Vector3D theHitGPos;
384  // for tubes, should use position of center of tube (if drawing full tube)
385  theHitGPos= Amg::Vector3D (theSurface.center());
386  } else {
387  // for strips, clusters or short tubes, use position of hit.
388  theHitGPos = theSurface.localToGlobal(prd->localPosition());
389  }
390  if ((theHitGPos)[0]!=(theHitGPos)[0] || (theHitGPos)[1]!=(theHitGPos)[1] || (theHitGPos)[2]!=(theHitGPos)[2]){
391  std::cerr<<"PRDHandleBase::createTransform() NaN in globalposition"<<std::endl;
392  }
393  theHitTransform->translation.setValue((theHitGPos)[0], (theHitGPos)[1], (theHitGPos)[2]);
394  return theHitTransform;
395 }

◆ driftCircle()

const InDet::TRT_DriftCircle* PRDHandle_TRT::driftCircle ( ) const
inline

Definition at line 24 of file PRDHandle_TRT.h.

24 { return m_driftcircle; }

◆ getPRD()

const Trk::PrepRawData* PRDHandle_TRT::getPRD ( ) const
inlinevirtual

Implements PRDHandleBase.

Definition at line 25 of file PRDHandle_TRT.h.

25 { return m_driftcircle; }

◆ getSecondPRD()

virtual const Trk::PrepRawData* PRDHandleBase::getSecondPRD ( ) const
inlinevirtualinherited

Reimplemented in PRDHandle_SpacePoint.

Definition at line 73 of file PRDHandleBase.h.

73 { return 0; }//For SCT spacepoints

◆ getTransform_CLHEP()

Amg::Transform3D PRDHandleBase::getTransform_CLHEP ( ) const
inherited

Definition at line 322 of file PRDHandleBase.cxx.

323 {
324  if (m_d->sepDetailed&&m_d->sepDetailed->getNumChildren()>0) {
325  //For efficiency/consistency we simply copy the transform from the
326  //inventor transformation (only loose slight precision in the
327  //double->float->double conversions):
328  SoTransform * transform = static_cast<SoTransform*>(m_d->sepDetailed->getChild(0));
329  float tx, ty, tz;
330  transform->translation.getValue().getValue(tx,ty,tz);
331  SbVec3f so_rotaxis;
332  float so_rotangle;
333  transform->rotation.getValue().getValue(so_rotaxis, so_rotangle);
334  float rx, ry, rz;
335  so_rotaxis.getValue(rx,ry,rz);
336  Amg::Vector3D axis(rx,ry,rz);
337 // Amg::AngleAxis3D angleAxis = Amg::getRotation3DfromAngleAxis( so_rotangle, axis );
338 // Amg::Rotation3D rot;
339 // rot = angleAxis;
341  return Amg::Translation3D(tx,ty,tz) * rot;
342  }
343  std::cout<<"VP1 PRDHandleBase Warning: getTransform_CLHEP called at inopportune moment!!"<<std::endl;
344 
345  //NB: Some code duplicated here and in the createTransform() method.
346 
347  const Trk::PrepRawData * prd = getPRD();
348  if (!prd) {
349  return Amg::Transform3D::Identity();
350  }
351  const Trk::Surface& theSurface = prd->detectorElement()->surface(prd->identify());
352  Amg::Vector3D theHitGPos;
354  // for tubes, should use position of center of tube (if drawing full tube)
355  theHitGPos= Amg::Vector3D(theSurface.center());
356  } else {
357  // for clusters or short tubes, use position of hit.
358  theHitGPos = theSurface.localToGlobal(prd->localPosition()); //theSurface 'new s' a Vector3D and returns pointer
359  }
360 
361 // CLHEP::Hep3Vector t(theSurface.transform().getTranslation());
362 // return HepGeom::Transform3D( HepGeom::Translate3D(theHitGPos->x()-t.x(),theHitGPos->y()-t.y(),theHitGPos->z()-t.z()) * (theSurface.transform()) );
365  Amg::Translation3D transl = Amg::Translation3D(theHitGPos.x()-t.x(), theHitGPos.y()-t.y(), theHitGPos.z()-t.z());
366  Amg::Transform3D transf = transl * (theSurface.transform());
367  return transf;
368 }

◆ highLevel()

bool PRDHandle_TRT::highLevel ( ) const
inline

Definition at line 29 of file PRDHandle_TRT.h.

29 { return m_driftcircle->highLevel(); }

◆ highLight()

bool PRDHandle_TRT::highLight ( ) const
inlinevirtual

Reimplemented from PRDHandleBase.

Definition at line 43 of file PRDHandle_TRT.h.

44 {
45  return highLevel() && static_cast<PRDCollHandle_TRT*>(collHandle())->highLightHighThreshold();
46 }

◆ inMuonChamber()

virtual bool PRDHandleBase::inMuonChamber ( ) const
inlinevirtualinherited

Reimplemented in PRDHandle_MDT, PRDHandle_MM, PRDHandle_CSC, PRDHandle_CSC_Strip, PRDHandle_sTGC, PRDHandle_TGC, and PRDHandle_RPC.

Definition at line 67 of file PRDHandleBase.h.

67 { return false; }

◆ isBarrel()

bool PRDHandle_TRT::isBarrel ( ) const
inline

Definition at line 27 of file PRDHandle_TRT.h.

◆ isPositiveZ()

bool PRDHandle_TRT::isPositiveZ ( ) const
inline

Definition at line 28 of file PRDHandle_TRT.h.

28 { return m_driftcircle->detectorElement()->center().z() > 0.0; }

◆ isSane()

virtual bool PRDHandleBase::isSane ( ) const
inlinevirtualinherited

Returns false if the PRD is not safe to draw.

Reimplemented in PRDHandle_Pixel.

Definition at line 75 of file PRDHandleBase.h.

◆ parentMuonChamberPV()

virtual GeoPVConstLink PRDHandleBase::parentMuonChamberPV ( ) const
inlinevirtualinherited

Reimplemented in PRDHandle_MDT, PRDHandle_MM, PRDHandle_CSC, PRDHandle_CSC_Strip, PRDHandle_sTGC, PRDHandle_TGC, and PRDHandle_RPC.

Definition at line 68 of file PRDHandleBase.h.

68 { return GeoPVConstLink(); }

◆ positionPRD()

Amg::Vector3D PRDHandleBase::positionPRD ( ) const
inherited

Definition at line 303 of file PRDHandleBase.cxx.

304 {
305  return Imp::positionPRD(getPRD());
306 }

◆ positionSecondPRD()

Amg::Vector3D PRDHandleBase::positionSecondPRD ( ) const
inherited

Definition at line 309 of file PRDHandleBase.cxx.

310 {
311  return Imp::positionPRD(getSecondPRD());
312 }

◆ regionIndex()

int PRDHandle_TRT::regionIndex ( )
virtual

Reimplemented from PRDHandleBase.

Definition at line 177 of file PRDHandle_TRT.cxx.

178 {
179  const TRT_ID * id_helper = VP1DetInfo::trtIDHelper();
180  if (!id_helper)
181  return 0;
183  return id_helper->barrel_ec(id)*10000+id_helper->layer_or_wheel(id)*100+(id_helper->phi_module(id)%4);
184 }

◆ sepDetailed()

SoSeparator * PRDHandleBase::sepDetailed ( ) const
inherited

Definition at line 60 of file PRDHandleBase.cxx.

61 {
62  return m_d->sepDetailed;
63 }

◆ sepSimple()

SoSeparator * PRDHandleBase::sepSimple ( ) const
inherited

Definition at line 54 of file PRDHandleBase.cxx.

55 {
56  return m_d->sepSimple;
57 }

◆ setVisible()

void PRDHandleBase::setVisible ( bool  vis)
inherited

Definition at line 234 of file PRDHandleBase.cxx.

235 {
236  if (vis==m_visible)
237  return;
238  //std::cout<<"Changing visible status from "<<m_visible<<" to "<<vis<<" for: "<<*getPRD()<<std::endl;
239  m_visible=vis;
240  if (vis) {
242  if (inMuonChamber())
244  if (!m_d->sepSimple||!m_d->sepDetailed)
245  m_d->rebuild3DObjects(this);//The call to rebuild also fixes attached state.
246  else
247  m_d->attach3DObjects(this);
248  } else {
250  if (inMuonChamber())
252  m_d->detach3DObjects();
253  }
254 }

◆ transformUsesSurfacePositionOnly()

bool PRDHandle_TRT::transformUsesSurfacePositionOnly ( ) const
inlinevirtual

Reimplemented from PRDHandleBase.

Definition at line 22 of file PRDHandle_TRT.h.

22 { return true; }

◆ update3DObjects()

void PRDHandleBase::update3DObjects ( )
inherited

Definition at line 257 of file PRDHandleBase.cxx.

257  {
258  //Fixme: If selected we really need to redo selection updates!!!
259  if (m_visible) {
260  m_d->rebuild3DObjects(this);
261  } else {
262  //Simply clear the present 3D objects. They will only be recreated if/when the prd becomes visible again.
263  if (m_d->sepDetailed) {
264  m_d->sepDetailed->unref();
265  m_d->sepDetailed = 0;
266  }
267  if (m_d->sepSimple) {
268  m_d->sepSimple->unref();
269  m_d->sepSimple = 0;
270  }
271  }
272 
273 }

◆ updateMaterial()

void PRDHandleBase::updateMaterial ( )
inherited

Definition at line 160 of file PRDHandleBase.cxx.

161 {
162  //We need to change the current material. This means we need to
163  //clear the cache. Only if we are visible do we need to do a
164  //detach->clear material->attach cycle to trigger attachment under new material.
165 
166  if (!m_d->currentmaterial)
167  return;//We have no material cached and is thus not attached either.
168  if (m_visible) {
169  //See if the material changed. If it did, detach, update the material, attach again.
170  SoMaterial * newmat = m_d->determineMaterial(this);
171  newmat->ref();
172  if (newmat!=m_d->currentmaterial) {
173  m_d->detach3DObjects();
174  m_d->currentmaterial->unref();
175  m_d->currentmaterial = newmat;
176  m_d->attach3DObjects(this);
177  } else {
178  newmat->unref();
179  }
180  } else {
181  //Just clear material.
182  m_d->currentmaterial->unref();
183  m_d->currentmaterial = 0;
184  }
185 }

◆ visible()

bool PRDHandleBase::visible ( ) const
inlineinherited

Definition at line 42 of file PRDHandleBase.h.

42 { return m_visible; }

Member Data Documentation

◆ m_common

PRDSysCommonData* PRDHandleBase::m_common
privateinherited

Definition at line 84 of file PRDHandleBase.h.

◆ m_d

Imp* PRDHandleBase::m_d
privateinherited

Definition at line 83 of file PRDHandleBase.h.

◆ m_driftcircle

const InDet::TRT_DriftCircle* PRDHandle_TRT::m_driftcircle
private

Definition at line 35 of file PRDHandle_TRT.h.

◆ m_visible

bool PRDHandleBase::m_visible
privateinherited

Definition at line 86 of file PRDHandleBase.h.


The documentation for this class was generated from the following files:
HitsSoNodeManager::getShapeNode_DriftDisc
SoNode * getShapeNode_DriftDisc(double radius)
Definition: HitsSoNodeManager.cxx:177
PRDHandleBase::Imp::rebuild3DObjects
void rebuild3DObjects(PRDHandleBase *)
Definition: PRDHandleBase.cxx:92
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
InDetProjFlags::EndCapOuterNegative
@ EndCapOuterNegative
Definition: InDetProjFlags.h:54
InDetProjParams::trt_endcap_zasr_endcapz_begin
static double trt_endcap_zasr_endcapz_begin()
Definition: InDetProjParams.h:81
Amg::Rotation3D
Eigen::Quaternion< double > Rotation3D
Definition: GeoPrimitives.h:43
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
PRDHandleBase::Imp::sepSimple
SoSeparator * sepSimple
Definition: PRDHandleBase.cxx:45
PRDHandleBase::getTransform_CLHEP
Amg::Transform3D getTransform_CLHEP() const
Definition: PRDHandleBase.cxx:322
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
PRDHandleBase::Imp::positionPRD
static Amg::Vector3D positionPRD(const Trk::PrepRawData *prd)
Definition: PRDHandleBase.cxx:288
TouchedMuonChamberHelper::incrementNumberOfObjectsForPV
void incrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:59
InDetProjFlags::BarrelPositive
@ BarrelPositive
Definition: InDetProjFlags.h:50
PRDSysCommonData::touchedMuonChamberHelper
TouchedMuonChamberHelper * touchedMuonChamberHelper() const
Definition: PRDSysCommonData.h:86
PRDHandleBase::Imp::sepDetailed
SoSeparator * sepDetailed
Definition: PRDHandleBase.cxx:44
PRDHandleBase::collHandle
PRDCollHandleBase * collHandle() const
Definition: PRDHandleBase.cxx:228
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
InDet::TRT_DriftCircle::detectorElement
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
return the detector element corresponding to this PRD
PRDHandleBase::positionPRD
Amg::Vector3D positionPRD() const
Definition: PRDHandleBase.cxx:303
Trk::PrepRawData::rdoList
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
yodamerge_tmp.npoints
npoints
Definition: yodamerge_tmp.py:250
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::Surface::center
const Amg::Vector3D & center() const
Returns the center position of the Surface.
PRDHandleBase::Imp::attach3DObjects
void attach3DObjects(PRDHandleBase *)
Definition: PRDHandleBase.cxx:188
x
#define x
PRDHandleBase::common
PRDSysCommonData * common() const
Definition: PRDHandleBase.h:53
PRDHandleBase::m_d
Imp * m_d
Definition: PRDHandleBase.h:82
PRDHandleBase::m_visible
bool m_visible
Definition: PRDHandleBase.h:86
PRDHandleBase::clicked
virtual QStringList clicked() const
Definition: PRDHandleBase.cxx:276
InDetProjFlags::TRT_EndCapZToRCentral
@ TRT_EndCapZToRCentral
Definition: InDetProjFlags.h:60
InDetProjParams::trt_barrel_posneg_z
static double trt_barrel_posneg_z()
Definition: InDetProjParams.h:55
PRDHandleBase::Imp::currentmaterial
SoMaterial * currentmaterial
Definition: PRDHandleBase.cxx:46
PRDCollHandleBase::decrementNShownHandles
void decrementNShownHandles()
Definition: PRDCollHandleBase.h:125
InDetProjParams::trt_endcap_zasr_squeezefact
static double trt_endcap_zasr_squeezefact()
Definition: InDetProjParams.h:61
PRDSysCommonData::nodeManager
HitsSoNodeManager * nodeManager() const
Definition: PRDSysCommonData.h:79
PRDHandle_TRT::isBarrel
bool isBarrel() const
Definition: PRDHandle_TRT.h:27
PRDCollHandleBase
Definition: PRDCollHandleBase.h:25
InDetProjParams::surfacethickness
static double surfacethickness()
Definition: InDetProjParams.h:26
Amg::getTranslationVectorFromTransform
Amg::Vector3D getTranslationVectorFromTransform(const Amg::Transform3D &tr)
Get the Translation vector out of a Transformation.
Definition: GeoPrimitivesHelpers.h:225
lumiFormat.i
int i
Definition: lumiFormat.py:92
Amg::getRotation3DfromAngleAxis
Amg::Rotation3D getRotation3DfromAngleAxis(double angle, Amg::Vector3D &axis)
get a AngleAxis from an angle and an axis.
Definition: GeoPrimitivesHelpers.h:237
z
#define z
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
PRDHandleBase::getSecondPRD
virtual const Trk::PrepRawData * getSecondPRD() const
Definition: PRDHandleBase.h:73
PRDHandleBase::Imp::colhandle
PRDCollHandleBase * colhandle
Definition: PRDHandleBase.cxx:36
PRDHandleBase::parentMuonChamberPV
virtual GeoPVConstLink parentMuonChamberPV() const
Definition: PRDHandleBase.h:68
Trk::CylinderBounds
Definition: CylinderBounds.h:46
InDetProjHelper::transformECPointToZPlane_specialZtoR
static void transformECPointToZPlane_specialZtoR(Amg::Vector3D &p, const double &planeZ, const double &planeRBegin, const double &endcapZBegin, const double &squeezeFactor)
Definition: InDetProjHelper.cxx:780
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
InDetProjFlags::EndCapInnerPositive
@ EndCapInnerPositive
Definition: InDetProjFlags.h:55
InDetDD::TRT_BaseElement::BARREL
@ BARREL
Definition: TRT_BaseElement.h:61
Trk::TrkDetElementBase::surface
virtual const Surface & surface() const =0
Return surface associated with this detector element.
InDetDD::TRT_BaseElement::type
virtual TRT_BaseElement::Type type() const =0
Type information: returns BARREL or ENDCAP.
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
InDetProjFlags::EndCapInnerNegative
@ EndCapInnerNegative
Definition: InDetProjFlags.h:56
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
InDetProjFlags::BarrelCentral
@ BarrelCentral
Definition: InDetProjFlags.h:52
PRDHandleBase::transformUsesSurfacePositionOnly
virtual bool transformUsesSurfacePositionOnly() const
Definition: PRDHandleBase.h:47
PRDHandle_TRT::isPositiveZ
bool isPositiveZ() const
Definition: PRDHandle_TRT.h:28
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
PRDHandleBase::getPRD
virtual const Trk::PrepRawData * getPRD() const =0
Trk::Surface::bounds
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
PRDHandleBase::Imp::detach3DObjects
void detach3DObjects()
Definition: PRDHandleBase.cxx:209
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
InDetProjParams::trt_data_disttosurface_epsilon
static double trt_data_disttosurface_epsilon()
Definition: InDetProjParams.h:62
TouchedMuonChamberHelper::decrementNumberOfObjectsForPV
void decrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:73
TRT_ID
Definition: TRT_ID.h:84
PRDHandle_TRT::m_driftcircle
const InDet::TRT_DriftCircle * m_driftcircle
Definition: PRDHandle_TRT.h:35
VP1DetInfo::trtIDHelper
static const TRT_ID * trtIDHelper()
Definition: VP1DetInfo.cxx:166
y
#define y
InDet::TRT_DriftCircle::highLevel
bool highLevel() const
returns true if the high level threshold was passed
HitsSoNodeManager::getShapeNode_ProjectedDriftTube
SoNode * getShapeNode_ProjectedDriftTube(double halfLength, double radius, bool inner, bool outer)
Definition: HitsSoNodeManager.cxx:203
VP1Msg::message
static void message(const QString &, IVP1System *sys=0)
Definition: VP1Msg.cxx:30
HitsSoNodeManager::getShapeNode_Point
SoNode * getShapeNode_Point()
Definition: HitsSoNodeManager.cxx:412
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
InDetDD::TRT_BaseElement::center
virtual const Amg::Vector3D & center() const override final
Element Surface: center of a straw layer.
InDetProjParams::trt_endcap_zasr_innerradius
static double trt_endcap_zasr_innerradius()
Definition: InDetProjParams.h:74
PRDHandleBase::Imp::determineMaterial
SoMaterial * determineMaterial(PRDHandleBase *)
Definition: PRDHandleBase.cxx:398
VP1HelperClassBase::message
void message(const QString &) const
Definition: VP1HelperClassBase.cxx:49
PRDHandle_TRT::highLevel
bool highLevel() const
Definition: PRDHandle_TRT.h:29
PRDCollHandleBase::incrementNShownHandles
void incrementNShownHandles()
Definition: PRDCollHandleBase.h:124
HitsSoNodeManager::getShapeNode_DriftTube
SoNode * getShapeNode_DriftTube(double halfLength, double radius)
Definition: HitsSoNodeManager.cxx:138
InDet::TRT_DriftCircle::getWord
unsigned int getWord() const
returns the TRT dataword
InDetProjFlags::TRT_EndCapZToRPositive
@ TRT_EndCapZToRPositive
Definition: InDetProjFlags.h:58
InDetProjFlags::BarrelNegative
@ BarrelNegative
Definition: InDetProjFlags.h:51
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
PRDHandleBase::inMuonChamber
virtual bool inMuonChamber() const
Definition: PRDHandleBase.h:67
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
InDetProjFlags::EndCapOuterPositive
@ EndCapOuterPositive
Definition: InDetProjFlags.h:53
VP1LinAlgUtils::toSoTransform
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
Definition: VP1LinAlgUtils.cxx:40
InDetDD::TRT_BaseElement::surface
virtual const Trk::Surface & surface() const override final
Element Surface: access to the Surface (straw layer)
TileDCSDataPlotter.tx
tx
Definition: TileDCSDataPlotter.py:878
PRDHandleBase::m_common
PRDSysCommonData * m_common
Definition: PRDHandleBase.h:84
PRDHandleBase::PRDHandleBase
PRDHandleBase(PRDCollHandleBase *)
Definition: PRDHandleBase.cxx:66
Trk::Surface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
PRDCollHandle_TRT
Definition: PRDCollHandle_TRT.h:12
PRDHandleBase::center
virtual Amg::Vector3D center() const
Definition: PRDHandleBase.cxx:316
Trk::PrepRawData::detectorElement
virtual const TrkDetElementBase * detectorElement() const =0
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
InDetProjFlags::TRT_EndCapZToRNegative
@ TRT_EndCapZToRNegative
Definition: InDetProjFlags.h:59