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

#include <PRDHandle_SpacePoint.h>

Inheritance diagram for PRDHandle_SpacePoint:
Collaboration diagram for PRDHandle_SpacePoint:

Classes

class  Imp
 

Public Member Functions

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

Private Attributes

const Trk::SpacePointm_sp
 
Impm_d
 
PRDSysCommonDatam_common
 
bool m_visible
 

Detailed Description

Definition at line 33 of file PRDHandle_SpacePoint.h.

Constructor & Destructor Documentation

◆ PRDHandle_SpacePoint()

PRDHandle_SpacePoint::PRDHandle_SpacePoint ( PRDCollHandle_SpacePoints ch,
const Trk::SpacePoint sp 
)

Definition at line 32 of file PRDHandle_SpacePoint.cxx.

33  : PRDHandleBase(ch), m_sp(sp), m_d(new Imp)
34 {
35 }

◆ ~PRDHandle_SpacePoint()

PRDHandle_SpacePoint::~PRDHandle_SpacePoint ( )
virtual

Definition at line 38 of file PRDHandle_SpacePoint.cxx.

39 {
40  delete m_d;
41 }

Member Function Documentation

◆ buildShapes()

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

Implements PRDHandleBase.

Definition at line 54 of file PRDHandle_SpacePoint.cxx.

55 {
56  if (getSecondPRD()) {
57  Amg::Transform3D prdtransform(getTransform_CLHEP());
58  Amg::Vector3D p((prdtransform.inverse())*(m_sp->globalPosition()));
59  SoPointSet * points = new SoPointSet;
60  SoVertexProperty * vertices = new SoVertexProperty;
61  vertices->vertex.set1Value(0,p.x(),p.y(),p.z());
62  points->numPoints=1;
63  points->vertexProperty.setValue(vertices);
64  shape_simple = points;
65  } else {
66  shape_simple = common()->nodeManager()->getShapeNode_Point();
67  }
68  shape_detailed = shape_simple;
69 }

◆ center()

Amg::Vector3D PRDHandle_SpacePoint::center ( ) const
inlinevirtual

Reimplemented from PRDHandleBase.

Definition at line 42 of file PRDHandle_SpacePoint.h.

42 { return m_sp->globalPosition(); }

◆ clicked()

QStringList PRDHandleBase::clicked ( ) const
virtualinherited

Reimplemented in PRDHandle_TRT, PRDHandle_CSC, PRDHandle_CSC_Strip, PRDHandle_MDT, PRDHandle_MM, and PRDHandle_RPC.

Definition at line 276 of file PRDHandleBase.cxx.

277 {
278  const Trk::PrepRawData * prd = getPRD();
279  if (!prd)
280  return QStringList("Null PRD");
281  std::ostringstream os;
282  os << *(prd);
283  return QString(os.str().c_str()).split("\n");
284 }

◆ 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 }

◆ getPRD()

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

Implements PRDHandleBase.

Definition at line 49 of file PRDHandle_SpacePoint.h.

49 { return m_sp->clusterList().first; }

◆ getSecondPRD()

const Trk::PrepRawData* PRDHandle_SpacePoint::getSecondPRD ( ) const
inlinevirtual

Reimplemented from PRDHandleBase.

Definition at line 50 of file PRDHandle_SpacePoint.h.

50 { return m_sp->clusterList().second; }

◆ 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 }

◆ highLight()

virtual bool PRDHandleBase::highLight ( ) const
inlinevirtualinherited

Reimplemented in PRDHandle_MDT, and PRDHandle_TRT.

Definition at line 45 of file PRDHandleBase.h.

45 { return false; }//Return true to get hit highlighted (for e.g. a TRT hits with HT).

◆ 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_SpacePoint::isBarrel ( ) const
inline

Definition at line 51 of file PRDHandle_SpacePoint.h.

52  { return static_cast<const InDetDD::SiDetectorElement*>(getPRD()->detectorElement())->isBarrel(); }

◆ isPixel()

bool PRDHandle_SpacePoint::isPixel ( )
inline

Definition at line 46 of file PRDHandle_SpacePoint.h.

46 { return !getSecondPRD(); }

◆ isPositiveZ()

bool PRDHandle_SpacePoint::isPositiveZ ( ) const
inline

Definition at line 53 of file PRDHandle_SpacePoint.h.

53 { return m_sp->globalPosition().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.

◆ isSCT()

bool PRDHandle_SpacePoint::isSCT ( )
inline

Definition at line 45 of file PRDHandle_SpacePoint.h.

45 { return getSecondPRD(); }

◆ 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_SpacePoint::regionIndex ( )
virtual

Reimplemented from PRDHandleBase.

Definition at line 44 of file PRDHandle_SpacePoint.cxx.

44  {
45  static const double l=isSCT() ? 100.0 : 200.0;//CLHEP::mm
47  return static_cast<int>(c.z()/l)
48  +1000*static_cast<int>(c.y()/l)
49  +1000000*static_cast<int>(c.x()/l);
50  //Fixme: Use identifiers instead for more intuitive regions.
51 }

◆ 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 }

◆ spacePoint()

const Trk::SpacePoint* PRDHandle_SpacePoint::spacePoint ( ) const
inline

Definition at line 48 of file PRDHandle_SpacePoint.h.

48 { return m_sp; }

◆ transformUsesSurfacePositionOnly()

virtual bool PRDHandleBase::transformUsesSurfacePositionOnly ( ) const
inlinevirtualinherited

Reimplemented in PRDHandle_MDT, and PRDHandle_TRT.

Definition at line 47 of file PRDHandleBase.h.

47 { return false; }//Override and return true if should use just the surface position.

◆ 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* PRDHandle_SpacePoint::m_d
private

Definition at line 63 of file PRDHandle_SpacePoint.h.

◆ m_sp

const Trk::SpacePoint* PRDHandle_SpacePoint::m_sp
private

Definition at line 61 of file PRDHandle_SpacePoint.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:
Trk::SpacePoint::clusterList
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:127
PRDHandleBase::Imp::rebuild3DObjects
void rebuild3DObjects(PRDHandleBase *)
Definition: PRDHandleBase.cxx:92
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
Amg::Rotation3D
Eigen::Quaternion< double > Rotation3D
Definition: GeoPrimitives.h:43
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
Trk::SpacePoint::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
Interface method to get the global Position.
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:146
PRDSysCommonData::touchedMuonChamberHelper
TouchedMuonChamberHelper * touchedMuonChamberHelper() const
Definition: PRDSysCommonData.h:86
PRDHandleBase::Imp::sepDetailed
SoSeparator * sepDetailed
Definition: PRDHandleBase.cxx:44
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
PRDHandle_SpacePoint::m_sp
const Trk::SpacePoint * m_sp
Definition: PRDHandle_SpacePoint.h:61
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
PRDHandle_SpacePoint::m_d
Imp * m_d
Definition: PRDHandle_SpacePoint.h:62
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::Imp::currentmaterial
SoMaterial * currentmaterial
Definition: PRDHandleBase.cxx:46
PRDCollHandleBase::decrementNShownHandles
void decrementNShownHandles()
Definition: PRDCollHandleBase.h:125
PRDSysCommonData::nodeManager
HitsSoNodeManager * nodeManager() const
Definition: PRDSysCommonData.h:79
PRDHandle_SpacePoint::isBarrel
bool isBarrel() const
Definition: PRDHandle_SpacePoint.h:51
Amg::getTranslationVectorFromTransform
Amg::Vector3D getTranslationVectorFromTransform(const Amg::Transform3D &tr)
Get the Translation vector out of a Transformation.
Definition: GeoPrimitivesHelpers.h:225
Amg::getRotation3DfromAngleAxis
Amg::Rotation3D getRotation3DfromAngleAxis(double angle, Amg::Vector3D &axis)
get a AngleAxis from an angle and an axis.
Definition: GeoPrimitivesHelpers.h:237
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
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
Trk::TrkDetElementBase::surface
virtual const Surface & surface() const =0
Return surface associated with this detector element.
PRDHandle_SpacePoint::isSCT
bool isSCT()
Definition: PRDHandle_SpacePoint.h:45
PRDHandle_SpacePoint::getPRD
const Trk::PrepRawData * getPRD() const
Definition: PRDHandle_SpacePoint.h:49
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
PRDHandleBase::transformUsesSurfacePositionOnly
virtual bool transformUsesSurfacePositionOnly() const
Definition: PRDHandleBase.h:47
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
PRDHandleBase::getPRD
virtual const Trk::PrepRawData * getPRD() const =0
PRDHandleBase::Imp::detach3DObjects
void detach3DObjects()
Definition: PRDHandleBase.cxx:209
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TouchedMuonChamberHelper::decrementNumberOfObjectsForPV
void decrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:73
HitsSoNodeManager::getShapeNode_Point
SoNode * getShapeNode_Point()
Definition: HitsSoNodeManager.cxx:412
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
PRDHandleBase::Imp::determineMaterial
SoMaterial * determineMaterial(PRDHandleBase *)
Definition: PRDHandleBase.cxx:398
PRDCollHandleBase::incrementNShownHandles
void incrementNShownHandles()
Definition: PRDCollHandleBase.h:124
PRDHandle_SpacePoint::center
Amg::Vector3D center() const
Definition: PRDHandle_SpacePoint.h:42
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.
python.compressB64.c
def c
Definition: compressB64.py:93
VP1LinAlgUtils::toSoTransform
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
Definition: VP1LinAlgUtils.cxx:40
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
PRDHandle_SpacePoint::getSecondPRD
const Trk::PrepRawData * getSecondPRD() const
Definition: PRDHandle_SpacePoint.h:50
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.
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...