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

#include <PRDHandle_Pixel.h>

Inheritance diagram for PRDHandle_Pixel:
Collaboration diagram for PRDHandle_Pixel:

Public Member Functions

 PRDHandle_Pixel (PRDCollHandle_Pixel *, const InDet::PixelCluster *)
 
virtual ~PRDHandle_Pixel ()
 
void buildShapes (SoNode *&shape_simple, SoNode *&shape_detailed)
 
int regionIndex ()
 
const InDet::PixelClustercluster () const
 
const Trk::PrepRawDatagetPRD () const
 
bool isBarrel () const
 
bool isPositiveZ () const
 
bool isSane () const
 returns false if anything seems weird about the Pixelcluster More...
 
void setVisible (bool)
 
bool visible () const
 
virtual bool highLight () const
 
virtual bool transformUsesSurfacePositionOnly () 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 QStringList clicked () const
 
virtual bool inMuonChamber () const
 
virtual GeoPVConstLink parentMuonChamberPV () const
 
PRDCollHandleBasecollHandle () const
 
virtual const Trk::PrepRawDatagetSecondPRD () const
 

Private Member Functions

SoGroup * createErrorAtPixelCluster (const double &sigmaScale, const int &numPoints) const
 

Private Attributes

const InDet::PixelClusterm_cluster
 
Impm_d
 
PRDSysCommonDatam_common
 
bool m_visible
 

Detailed Description

Definition at line 14 of file PRDHandle_Pixel.h.

Constructor & Destructor Documentation

◆ PRDHandle_Pixel()

PRDHandle_Pixel::PRDHandle_Pixel ( PRDCollHandle_Pixel collhandle,
const InDet::PixelCluster clus 
)

Definition at line 23 of file PRDHandle_Pixel.cxx.

24  : PRDHandleBase(static_cast<PRDCollHandleBase*>(collhandle)), m_cluster(clus)
25 {
27 }

◆ ~PRDHandle_Pixel()

virtual PRDHandle_Pixel::~PRDHandle_Pixel ( )
inlinevirtual

Definition at line 18 of file PRDHandle_Pixel.h.

18 {};

Member Function Documentation

◆ buildShapes()

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

Implements PRDHandleBase.

Definition at line 30 of file PRDHandle_Pixel.cxx.

31 {
32  SoSeparator * errSimple = new SoSeparator;
33  SoSeparator * errDetailed = new SoSeparator;
34 
35  if (!isSane()) {
36  std::cerr<<"isSane check failed for PRD: "<<*m_cluster<<std::endl;
37  return;
38  }
39  errSimple->addChild(common()->nodeManager()->getShapeNode_Point());
40 
42  Amg::Vector2D localposHIT = m_cluster->detectorElement()->rawLocalPositionOfCell( m_cluster->identify() ); // Lorentz shift is not corrected because this class cannot use SiLorentzAngleTool
43  SoTranslation * localtrans0 = new SoTranslation;
44 
45  double xdiff = localposHIT[Trk::locX]-localpos[Trk::locX];
46  double ydiff = localposHIT[Trk::locY]-localpos[Trk::locY];
47 
48  if (xdiff!=xdiff || ydiff!=ydiff) {
49  std::cerr<<"NaN is in local pos calc"<<std::endl;
50  if (xdiff!=xdiff) std::cerr<<"X diff"<<std::endl;
51  if (ydiff!=ydiff) std::cerr<<"Y diff"<<std::endl;
52  std::cerr<<"localposHIT:"<<localposHIT<<std::endl;
53  std::cerr<<"localpos:"<<localpos<<std::endl;
54  std::cerr<<"localposHIT[Trk::locX]-localpos[Trk::locX]:"<<xdiff<<std::endl;
55  std::cerr<<"localposHIT[Trk::locY]-localpos[Trk::locY]:"<<ydiff<<std::endl;
56  localtrans0->unref();
57  return;
58  } else {
59  localtrans0->translation.setValue(localposHIT[Trk::locX]-localpos[Trk::locX],localposHIT[Trk::locY]-localpos[Trk::locY],0);
60  }
61 
62  const std::vector<Identifier> rdolist = m_cluster->rdoList();
63  if (rdolist.size() == 1 || !collHandle()->drawRDOs())
64  {
65  errDetailed->addChild(localtrans0);
66  //FIXME: dont hardcode thickness
67  errDetailed->addChild(common()->nodeManager()->getShapeNode_Strip(m_cluster->detectorElement()->etaPitch(),m_cluster->detectorElement()->etaPitch(),m_cluster->detectorElement()->thickness()/10.0));
68 
69  //Translate back so errDetailed is left sane (eg. when drawing errors later)
70  SoTranslation * localtransBack = new SoTranslation;
71  localtransBack->translation.setValue(-(localtrans0->translation.getValue()));
72  errDetailed->addChild(localtransBack);
73  } else {
74  SoSeparator * rdos = new SoSeparator;
75  rdos->addChild(localtrans0);
76 
77  rdos->addChild(common()->nodeManager()->getShapeNode_Strip(m_cluster->detectorElement()->etaPitch(),m_cluster->detectorElement()->phiPitch( m_cluster->localPosition() ),m_cluster->detectorElement()->thickness()/10.0));
78 
79  SoTransparency * transparent = new SoTransparency;
80  transparent->transparency.setValue(0.5);
81  rdos->addChild( transparent );
82  Amg::Vector2D localposOLD = localposHIT;
83  for (const Identifier& rdo_id : rdolist)
84  {
85  if (rdo_id == m_cluster->identify() )
86  continue;
87 
88  const Amg::Vector2D localposRDO = m_cluster->detectorElement()->rawLocalPositionOfCell(rdo_id); // Lorentz shift is not corrected because this class cannot use SiLorentzAngleTool
89 
90  SoTranslation * localtrans = new SoTranslation;
91  localtrans->translation.setValue(localposRDO[Trk::locX]-localposOLD[Trk::locX],
92  localposRDO[Trk::locY]-localposOLD[Trk::locY],
93  0);
94  rdos->addChild(localtrans);
95 
96  //FIXME: dont hardcode thickness
97  rdos->addChild(common()->nodeManager()->getShapeNode_Strip(m_cluster->detectorElement()->etaPitch(),
99  m_cluster->detectorElement()->thickness()/10.0));
100 
101  localposOLD = localposRDO;
102  }
103  errDetailed->addChild(rdos);
104  }
105 
106  const double settingsSIGMASCALE=3.0;
107  if (collHandle()->drawErrors())
108  {
109  SoGroup * gr = createErrorAtPixelCluster( settingsSIGMASCALE, 36);
110  if (gr->getNumChildren()==0) {
111  gr->unref();
112  std::cerr<<"Something seems to have gone wrong: no error added. Dumping PRD: "<<*m_cluster<<std::endl;
113  } else {
114  errSimple->addChild( gr );
115  errDetailed->addChild( gr );
116  }
117  }
118 
119  //FIXME: hardcoded colour
120  SoMaterial * mat = new SoMaterial;
121  mat->diffuseColor.setValue(1.0,0,0);
122  errDetailed->addChild(mat);
123  errDetailed->addChild(common()->nodeManager()->getShapeNode_Cross(0.1));
124 
125  shape_simple = errSimple;
126  shape_detailed = errDetailed;
127 }

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

◆ cluster()

const InDet::PixelCluster* PRDHandle_Pixel::cluster ( ) const
inline

Definition at line 23 of file PRDHandle_Pixel.h.

23 { return m_cluster; }

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

◆ createErrorAtPixelCluster()

SoGroup * PRDHandle_Pixel::createErrorAtPixelCluster ( const double &  sigmaScale,
const int &  numPoints 
) const
private

Definition at line 140 of file PRDHandle_Pixel.cxx.

142 {
143  SoGroup * ellipseGrp = new SoSeparator;
144 
145  //FIXME: Try to automatically use the pixel height as in PRDHandle_Pixel.cxx (this is just copy paste)
146  // change the last true to false above to get rid of one of the error ellipses
147 // VP1ErrorUtils::addRotatedErrorEllipse(ellipseGrp, m_cluster->localErrorMatrix().covariance(), sigmaScale, numPoints,m_cluster->detectorElement()->thickness()/20.0 + 0.001, true);
148  VP1ErrorUtils::addRotatedErrorEllipse(ellipseGrp, m_cluster->localCovariance(), sigmaScale, numPoints,m_cluster->detectorElement()->thickness()/20.0 + 0.001, true);
149 
150  return ellipseGrp;
151 }

◆ 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_Pixel::getPRD ( ) const
inlinevirtual

Implements PRDHandleBase.

Definition at line 24 of file PRDHandle_Pixel.h.

24 { return m_cluster; }

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

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

Definition at line 25 of file PRDHandle_Pixel.h.

25 { return m_cluster->detectorElement()->isBarrel(); }

◆ isPositiveZ()

bool PRDHandle_Pixel::isPositiveZ ( ) const
inline

Definition at line 26 of file PRDHandle_Pixel.h.

26 { return m_cluster->detectorElement()->center().z() > 0.0; }

◆ isSane()

bool PRDHandle_Pixel::isSane ( ) const
virtual

returns false if anything seems weird about the Pixelcluster

Reimplemented from PRDHandleBase.

Definition at line 153 of file PRDHandle_Pixel.cxx.

153  {
154  // check for NaNs
155  bool isSane=true;
156  const InDet::PixelCluster * prd =cluster();
157  if (!prd) return false;
158  if (prd->localPosition()[0]!=prd->localPosition()[0] || prd->localPosition()[1]!=prd->localPosition()[1]){
159  isSane=false;
160  std::cerr<<"For pixel cluster with Id="<<prd->identify()<<", localposition is not sane:"<<(prd->localPosition())<<std::endl;
161  }
162  bool etaNan = std::isnan(m_cluster->detectorElement()->etaPitch());
163  bool phiNan = std::isnan(m_cluster->detectorElement()->phiPitch( m_cluster->localPosition()));
164  bool thickNan = std::isnan(m_cluster->detectorElement()->thickness());
165 
166  if ( etaNan || phiNan || thickNan){
167  std::cerr<<"For pixel cluster with Id="<<prd->identify()<<", NaN is in detectorElement pitches "<<std::endl;
168  if (etaNan) std::cerr<<" - eta (which is returning "<<m_cluster->detectorElement()->etaPitch()<<")"<<std::endl;
169  if (phiNan) std::cerr<<" - phi (which is returning "<<m_cluster->detectorElement()->phiPitch(m_cluster->localPosition())<<")"<<std::endl;
170  if (thickNan) std::cerr<<" - thickness (which is returning "<<m_cluster->detectorElement()->thickness()<<")"<<std::endl;
171  }
172 
173  return isSane;
174 }

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

Reimplemented from PRDHandleBase.

Definition at line 130 of file PRDHandle_Pixel.cxx.

130  { //instead of identifier juggling, we simply discretize by center coordinate.
131  static const double l=200.0;//CLHEP::mm
132  return static_cast<int>(m_cluster->detectorElement()->center().z()/l)
133  +1000*static_cast<int>(m_cluster->detectorElement()->center().y()/l)
134  +1000000*static_cast<int>(m_cluster->detectorElement()->center().x()/l);
135  //Fixme: Use identifiers instead for more intuitive regions.
136 }

◆ 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()

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_cluster

const InDet::PixelCluster* PRDHandle_Pixel::m_cluster
private

Definition at line 30 of file PRDHandle_Pixel.h.

◆ 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_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:
PRDHandleBase::Imp::rebuild3DObjects
void rebuild3DObjects(PRDHandleBase *)
Definition: PRDHandleBase.cxx:92
Amg::Rotation3D
Eigen::Quaternion< double > Rotation3D
Definition: GeoPrimitives.h:43
PRDHandleBase::Imp::sepSimple
SoSeparator * sepSimple
Definition: PRDHandleBase.cxx:45
PRDHandleBase::Imp::positionPRD
static Amg::Vector3D positionPRD(const Trk::PrepRawData *prd)
Definition: PRDHandleBase.cxx:288
Trk::locX
@ locX
Definition: ParamDefs.h:37
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:38
TouchedMuonChamberHelper::incrementNumberOfObjectsForPV
void incrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:59
VP1ErrorUtils::addRotatedErrorEllipse
static void addRotatedErrorEllipse(SoGroup *gr, const AmgSymMatrix(5)&covmat, const double &sigmaScale, int numNodes=12, const double &translate=0.0, const bool &symmetric=false)
Definition: VP1ErrorUtils.cxx:53
SoTransparency
Definition: SoTransparency.h:20
PRDSysCommonData::touchedMuonChamberHelper
TouchedMuonChamberHelper * touchedMuonChamberHelper() const
Definition: PRDSysCommonData.h:86
PRDHandleBase::Imp::sepDetailed
SoSeparator * sepDetailed
Definition: PRDHandleBase.cxx:44
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
InDetDD::SolidStateDetectorElementBase::center
virtual const Amg::Vector3D & center() const override final
Center in global coordinates.
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
PRDHandleBase::collHandle
PRDCollHandleBase * collHandle() const
Definition: PRDHandleBase.cxx:228
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
Trk::PrepRawData::localCovariance
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
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)
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
gr
#define gr
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
PRDHandleBase::common
PRDSysCommonData * common() const
Definition: PRDHandleBase.h:53
InDetDD::SolidStateDetectorElementBase::etaPitch
double etaPitch() const
Pitch (inline methods)
PRDHandleBase::m_d
Imp * m_d
Definition: PRDHandleBase.h:82
PRDHandleBase::m_visible
bool m_visible
Definition: PRDHandleBase.h:86
SoTransparency::transparency
SoSFFloat transparency
Definition: SoTransparency.h:27
PRDHandleBase::Imp::currentmaterial
SoMaterial * currentmaterial
Definition: PRDHandleBase.cxx:46
PRDCollHandleBase::decrementNShownHandles
void decrementNShownHandles()
Definition: PRDCollHandleBase.h:125
PRDCollHandleBase
Definition: PRDCollHandleBase.h:25
InDetDD::SiDetectorElement::phiPitch
double phiPitch() const
Pitch (inline methods)
Amg::getTranslationVectorFromTransform
Amg::Vector3D getTranslationVectorFromTransform(const Amg::Transform3D &tr)
Get the Translation vector out of a Transformation.
Definition: GeoPrimitivesHelpers.h:225
SoTransparency::initClass
static void initClass()
Definition: SoTransparency.cxx:29
PRDHandle_Pixel::createErrorAtPixelCluster
SoGroup * createErrorAtPixelCluster(const double &sigmaScale, const int &numPoints) const
Definition: PRDHandle_Pixel.cxx:140
Amg::getRotation3DfromAngleAxis
Amg::Rotation3D getRotation3DfromAngleAxis(double angle, Amg::Vector3D &axis)
get a AngleAxis from an angle and an axis.
Definition: GeoPrimitivesHelpers.h:237
InDetDD::SolidStateDetectorElementBase::thickness
double thickness() const
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.
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
InDet::SiCluster::detectorElement
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
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::isBarrel
bool isBarrel() const
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
PRDHandle_Pixel::isSane
bool isSane() const
returns false if anything seems weird about the Pixelcluster
Definition: PRDHandle_Pixel.cxx:153
InDet::PixelCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h:49
TouchedMuonChamberHelper::decrementNumberOfObjectsForPV
void decrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:73
InDetDD::SolidStateDetectorElementBase::rawLocalPositionOfCell
Amg::Vector2D rawLocalPositionOfCell(const SiCellId &cellId) const
Returns position (center) of cell.
Definition: SolidStateDetectorElementBase.cxx:230
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
PRDHandle_Pixel::cluster
const InDet::PixelCluster * cluster() const
Definition: PRDHandle_Pixel.h:23
PRDHandleBase::Imp::determineMaterial
SoMaterial * determineMaterial(PRDHandleBase *)
Definition: PRDHandleBase.cxx:398
PRDCollHandleBase::incrementNShownHandles
void incrementNShownHandles()
Definition: PRDCollHandleBase.h:124
PRDHandle_Pixel::m_cluster
const InDet::PixelCluster * m_cluster
Definition: PRDHandle_Pixel.h:30
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.
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
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...
Identifier
Definition: IdentifierFieldParser.cxx:14