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

#include <PRDHandle_CSC.h>

Inheritance diagram for PRDHandle_CSC:
Collaboration diagram for PRDHandle_CSC:

Public Member Functions

 PRDHandle_CSC (PRDCollHandle_CSC *, const Muon::CscPrepData *)
 
virtual ~PRDHandle_CSC ()
 
void buildShapes (SoNode *&shape_simple, SoNode *&shape_detailed)
 
int regionIndex ()
 
const Muon::CscPrepDatacsc () const
 
const Trk::PrepRawDatagetPRD () const
 
bool inMuonChamber () const
 
GeoPVConstLink parentMuonChamberPV () const
 
virtual QStringList clicked () const
 
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 ()
 
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 Muon::CscPrepDatam_csc
 
Impm_d
 
PRDSysCommonDatam_common
 
bool m_visible
 

Detailed Description

Definition at line 13 of file PRDHandle_CSC.h.

Constructor & Destructor Documentation

◆ PRDHandle_CSC()

PRDHandle_CSC::PRDHandle_CSC ( PRDCollHandle_CSC collhandle,
const Muon::CscPrepData csc 
)

Definition at line 24 of file PRDHandle_CSC.cxx.

25  : PRDHandleBase(static_cast<PRDCollHandleBase*>(collhandle)), m_csc(csc)
26 {
28 }

◆ ~PRDHandle_CSC()

virtual PRDHandle_CSC::~PRDHandle_CSC ( )
inlinevirtual

Definition at line 17 of file PRDHandle_CSC.h.

17 {};

Member Function Documentation

◆ buildShapes()

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

Implements PRDHandleBase.

Definition at line 31 of file PRDHandle_CSC.cxx.

32 {
33  const CscIdHelper * idhelper = VP1DetInfo::cscIDHelper();
34  if (!idhelper)
35  return;
36 
37  Identifier id = m_csc->identify();
38 
39  SoSeparator * errDetailed = new SoSeparator;
40 
41  double striplength = m_csc->detectorElement()->stripLength( id );
42  if (static_cast<PRDCollHandle_CSC*>(collHandle())->project())
43  striplength += 300.0;//Fixme: Rough extension for now
44  shape_simple = common()->nodeManager()->getShapeNode_Strip(striplength);
45 
46  // Translation from objects local position to the strip position
47  const Amg::Vector2D& localpos = m_csc->localPosition();
48  const Amg::Vector3D& globalposHIT = m_csc->detectorElement()->stripPos( id );
49  // get local position on wire plane, here we have to use a tolarance as the wire plane is located 2.5 CLHEP::mm
50  // from the strip plane
51  double tolerance = 3.;
52  std::optional<Amg::Vector2D> localposHIT = m_csc->detectorElement()->surface( id ).Trk::Surface::globalToLocal(globalposHIT,tolerance);
53 
54  if( !localposHIT )
55  {
56  localposHIT.emplace();
57  localposHIT->setZero();
58  VP1Msg::message("Warning: Local wire position is NULL");
59  }
60  SoTranslation * localtrans0 = new SoTranslation;
61  localtrans0->translation.setValue((*localposHIT)[Trk::locX]-localpos[Trk::locX],(*localposHIT)[Trk::locY]-localpos[Trk::locY],0);
62 
63  const double maxCharge = 1e7;
64  //Thickness of highlighed strip
65  //FIXME: the maxCharge/3 is just a quick fix to get a nice presentation
66  // maybe this should go like sqrt(charge/maxCharge) so that it
67  // is clear for small charges.
68  //const double stripHeight = (1 + 4*sqrt(m_csc->charge()/maxCharge))*CLHEP::mm; // [1,5]
69  //
70  // The minimum is chosen equal to the neighbouring strips, such
71  // that a zero charge will give the same stirp height
72  const double stripHeight = (1 + 4*m_csc->charge()/(maxCharge/3))*CLHEP::mm; // [1,5]
73  //Thickness of additional strips (from rdoList())
74  const double stripHeightRDOs = 1*CLHEP::mm;
75 
76  const std::vector<Identifier> rdolist = m_csc->rdoList();
77  if (rdolist.size() == 1 || !collHandle()->drawRDOs())
78  {
79  errDetailed->addChild(localtrans0);
80  errDetailed->addChild(common()->nodeManager()->getShapeNode_Strip(striplength,
82  idhelper->measuresPhi( id )), stripHeight));
83 
84  //Translate back so errDetailed is left sane (eg. when drawing errors later)
85  SoTranslation * localtransBack = new SoTranslation;
86  localtransBack->translation.setValue(-(localtrans0->translation.getValue()));
87  errDetailed->addChild(localtransBack);
88  } else
89  {
90  SoSeparator * rdos = new SoSeparator;
91  rdos->addChild(localtrans0);
92 
93  rdos->addChild(common()->nodeManager()->getShapeNode_Strip(striplength,
95  idhelper->measuresPhi( id )), stripHeight));
96 
97  SoTransparency * transparent = new SoTransparency;
98  transparent->transparency.setValue(0.5);
99  rdos->addChild( transparent );
100  Amg::Vector2D localposOLD = *localposHIT;
101  for (const Identifier& rdo_id : rdolist)
102  {
103  if (rdo_id == id )
104  continue;
105  const Amg::Vector3D& globalposRDO = m_csc->detectorElement()->stripPos( rdo_id );
106 
107  // const Amg::Vector2D * localposRDO = m_csc->detectorElement()->surface( rdo_id ).globalToLocal(globalposRDO,tolerance);
108  std::optional<Amg::Vector2D> localposRDO = m_csc->detectorElement()->surface( rdo_id ).Trk::Surface::globalToLocal(globalposRDO,tolerance);
109 
110  if (!localposRDO)
111  {
112  VP1Msg::message("Warning: Local wire position is NULL");
113  continue;
114  }
115 
116  SoTranslation * localtrans = new SoTranslation;
117  localtrans->translation.setValue((*localposRDO)[Trk::locX]-localposOLD[Trk::locX],(*localposRDO)[Trk::locY]-localposOLD[Trk::locY],0);
118  rdos->addChild(localtrans);
119  double striplengthRDO = m_csc->detectorElement()->stripLength( rdo_id );
120 
121  rdos->addChild(common()->nodeManager()->getShapeNode_Strip(striplengthRDO,
122  m_csc->detectorElement()->cathodeReadoutPitch(idhelper->chamberLayer( rdo_id ),
123  idhelper->measuresPhi( rdo_id )), stripHeightRDOs));
124 
125  localposOLD = *localposRDO;
126  }
127  errDetailed->addChild(rdos);
128  }
129 
130  SoMaterial * mat = new SoMaterial;
131  mat->diffuseColor.setValue(1.0,0,0);
132  errDetailed->addChild(mat);
133  errDetailed->addChild(common()->nodeManager()->getShapeNode_Cross(10));
134 
135  shape_detailed = errDetailed;
136 }

◆ 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_CSC::clicked ( ) const
virtual

Reimplemented from PRDHandleBase.

Definition at line 147 of file PRDHandle_CSC.cxx.

148 {
149 
150  if (!m_csc)
151  return QStringList("Null PRD");
152  const CscIdHelper * idhelper = VP1DetInfo::cscIDHelper();
153  if (!idhelper)
154  return QStringList("Null PRD");
155 
156  Identifier id = m_csc->identify();
157  std::ostringstream os;
158  os << "CscPrepData with Identifier ["<<id.get_compact() ;
159  os << "] = [" << (idhelper->print_to_string(id)) ;
160  os << "]\n at global position = [" << m_csc->globalPosition()<<"], local position = ["<<m_csc->localPosition()<<"].";
161  os << ". Charge="<<m_csc->charge()<<", time="<< m_csc->time()<<", status="<<Muon::toString(m_csc->status());
162  os << ". RDO list= [";
163  for( unsigned int i=0;i<m_csc->rdoList().size();++i) os << m_csc->rdoList()[i] << " , ";
164  os << "].";
165  // os << *(m_csc);
166  return QString(os.str().c_str()).split("\n");
167 }

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

◆ csc()

const Muon::CscPrepData* PRDHandle_CSC::csc ( ) const
inline

Definition at line 22 of file PRDHandle_CSC.h.

22 { return m_csc; }

◆ getPRD()

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

Implements PRDHandleBase.

Definition at line 23 of file PRDHandle_CSC.h.

23 { return m_csc; }

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

bool PRDHandle_CSC::inMuonChamber ( ) const
inlinevirtual

Reimplemented from PRDHandleBase.

Definition at line 26 of file PRDHandle_CSC.h.

26 { return true; }

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

GeoPVConstLink PRDHandle_CSC::parentMuonChamberPV ( ) const
inlinevirtual

Reimplemented from PRDHandleBase.

Definition at line 27 of file PRDHandle_CSC.h.

27 { return m_csc->detectorElement()->parentStationPV(); }

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

Reimplemented from PRDHandleBase.

Definition at line 139 of file PRDHandle_CSC.cxx.

140 {
141  //Unique for each station.
143  return station->getPhiIndex()-99999*station->getEtaIndex();//hopefully unique.
144 }

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

PRDSysCommonData* PRDHandleBase::m_common
privateinherited

Definition at line 84 of file PRDHandleBase.h.

◆ m_csc

const Muon::CscPrepData* PRDHandle_CSC::m_csc
private

Definition at line 33 of file PRDHandle_CSC.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
PRDHandle_CSC::csc
const Muon::CscPrepData * csc() const
Definition: PRDHandle_CSC.h:22
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
Muon::CscPrepData::charge
int charge() const
Returns the charge.
Definition: CscPrepData.h:153
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
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
PRDHandleBase::collHandle
PRDCollHandleBase * collHandle() const
Definition: PRDHandleBase.cxx:228
PRDCollHandleBase::drawRDOs
bool drawRDOs() const
Definition: PRDCollHandleBase.cxx:631
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
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)
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
MuonGM::MuonClusterReadoutElement::surface
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Definition: MuonClusterReadoutElement.h:123
PRDHandleBase::m_d
Imp * m_d
Definition: PRDHandleBase.h:82
PRDHandleBase::m_visible
bool m_visible
Definition: PRDHandleBase.h:86
MuonGM::CscReadoutElement::stripLength
double stripLength(int chamberLayer, int measuresPhi, int stripNumber, double &epsilon) const
Definition: CscReadoutElement.cxx:292
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
PRDSysCommonData::nodeManager
HitsSoNodeManager * nodeManager() const
Definition: PRDSysCommonData.h:79
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
PRDCollHandleBase
Definition: PRDCollHandleBase.h:25
MuonGM::MuonStation::getPhiIndex
int getPhiIndex() const
a la AMDB
Definition: MuonStation.h:162
Muon::toString
std::string toString(CscStripStatus cstat)
Return a string description of a CSC cluster status flag.
Definition: CscStripStatus.h:48
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
lumiFormat.i
int i
Definition: lumiFormat.py:85
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
MuonGM::MuonReadoutElement::parentMuonStation
const MuonStation * parentMuonStation() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:135
Muon::CscPrepData::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
Returns the global position.
Definition: CscPrepData.h:174
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Muon::CscPrepData::status
CscClusterStatus status() const
Returns the Csc status (position measurement) flag.
Definition: CscPrepData.h:163
MuonGM::MuonStation
Definition: MuonStation.h:51
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
HitsSoNodeManager::getShapeNode_Strip
SoNode * getShapeNode_Strip(double length, double width=0, double depth=0)
Definition: HitsSoNodeManager.cxx:269
Trk::TrkDetElementBase::surface
virtual const Surface & surface() const =0
Return surface associated with this detector element.
Muon::CscPrepData::time
double time() const
Returns the time.
Definition: CscPrepData.h:158
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
PRDHandleBase::transformUsesSurfacePositionOnly
virtual bool transformUsesSurfacePositionOnly() const
Definition: PRDHandleBase.h:47
Muon::CscPrepData::detectorElement
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
Return the detector element corresponding to this PRD.
Definition: CscPrepData.h:148
Trk::PrepRawData
Definition: PrepRawData.h:62
tolerance
Definition: suep_shower.h:17
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
AtlasDetectorID::print_to_string
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:655
PRDHandleBase::getPRD
virtual const Trk::PrepRawData * getPRD() const =0
PRDHandle_CSC::m_csc
const Muon::CscPrepData * m_csc
Definition: PRDHandle_CSC.h:33
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
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
project
T_ResultType project(ParameterMapping::type< N > parameter_map, const T_Matrix &matrix)
Definition: MeasurementSelector.h:142
TouchedMuonChamberHelper::decrementNumberOfObjectsForPV
void decrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:73
CscIdHelper
Definition: CscIdHelper.h:52
VP1Msg::message
static void message(const QString &, IVP1System *sys=0)
Definition: VP1Msg.cxx:30
MuonGM::MuonStation::getEtaIndex
int getEtaIndex() const
a la AMDB
Definition: MuonStation.h:163
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
VP1DetInfo::cscIDHelper
static const CscIdHelper * cscIDHelper()
Definition: VP1DetInfo.cxx:158
CscIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
Definition: CscIdHelper.cxx:774
MuonGM::CscReadoutElement::stripPos
Amg::Vector3D stripPos(const Identifier &id) const
takes into account internal alignment parameters, hence gives accurate answer
Definition: CscReadoutElement.cxx:227
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
PRDCollHandle_CSC
Definition: PRDCollHandle_CSC.h:10
TileDCSDataPlotter.tx
tx
Definition: TileDCSDataPlotter.py:878
PRDHandleBase::m_common
PRDSysCommonData * m_common
Definition: PRDHandleBase.h:84
MuonGM::MuonReadoutElement::parentStationPV
PVConstLink parentStationPV() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:100
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.
CscIdHelper::chamberLayer
int chamberLayer(const Identifier &id) const
Definition: CscIdHelper.cxx:770
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
MuonGM::CscReadoutElement::cathodeReadoutPitch
double cathodeReadoutPitch(int chLayer, int measuresPhi) const
Definition: CscReadoutElement.cxx:147