ATLAS Offline Software
HitToSoNode.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 // Update: Riccardo Maria BIANCHI rbianchi@cern.ch Feb 2014 //
7 
8 #ifndef HITTOSONODE_H
9 #define HITTOSONODE_H
10 
11 // This class is to allow the PRD and track systems to share the same code for drawing DEs.
12 
14 
15 // Eigen Migration
19 // new files
22 
23 
24 class SoSeparator;
25 class SoTransform;
26 
27 namespace Trk {
28  class RIO_OnTrack;
29  class TrkDetElementBase;
30 }
31 class Identifier;
32 
34 public:
35 
36  HitToSoNode( IVP1System * sys = 0 );//sys for messages
37  ~HitToSoNode();
38 
39  SoTransform * createTransform(const Trk::RIO_OnTrack& rio, bool useSurfacePositionOnly) const;
40  SoTransform * createTGC_Transform(const Trk::RIO_OnTrack& rio, bool useSurfacePositionOnly) const;
41  void buildStripShapes(const Trk::RIO_OnTrack& rio, SoSeparator*&shape_simple, SoSeparator*&shape_detailed, bool blockGP);
42  void buildTubeShapes(const Trk::RIO_OnTrack& rio, SoSeparator*&shape_simple, SoSeparator*&shape_detailed, bool blockGP, double length, bool doProjection);
43  double getTGCAngle(Identifier id) const;
44 
45 private:
46 
49 
50  // Eigen migration
51 // void fillValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
52 // void fillRPCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
53 // void fillTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
54 // void fillCSCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
55 // void fillSTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
56 // void fillMMValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
57 // void fillSiValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
58 //
59  void fillValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
60  void fillRPCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
61  void fillTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
62  void fillCSCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
63  void fillSTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
64  void fillMMValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
65  void fillSiValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
66 
67  class Imp;
68  Imp * m_d;
69 };
70 
71 #endif
HitToSoNode::getTGCAngle
double getTGCAngle(Identifier id) const
returns the phi angle of the passed phi strip identifier.
Definition: HitToSodeNode.cxx:63
HitToSoNode::buildTubeShapes
void buildTubeShapes(const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP, double length, bool doProjection)
Definition: HitToSodeNode.cxx:180
HitToSoNode::fillMMValues
void fillMMValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:455
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
HitToSoNode::fillTGCValues
void fillTGCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:305
HitToSoNode::m_d
Imp * m_d
Definition: HitToSoNode.h:67
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
HitToSoNode::fillSTGCValues
void fillSTGCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:428
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
EulerAnglesHelpers.h
GeoPrimitives.h
IVP1System
Definition: IVP1System.h:36
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
HitToSoNode::fillRPCValues
void fillRPCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:354
HitToSoNode::Imp
Definition: HitToSodeNode.cxx:41
VP1HelperClassBase
Definition: VP1HelperClassBase.h:28
HitToSoNode::buildStripShapes
void buildStripShapes(const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP)
Definition: HitToSodeNode.cxx:225
CLHEPtoEigenConverter.h
HitToSoNode::fillSiValues
void fillSiValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:487
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
HitToSoNode::fillValues
void fillValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:286
HitToSoNode
Definition: HitToSoNode.h:33
VP1HelperClassBase.h
Trk::MeasurementBaseType::RIO_OnTrack
@ RIO_OnTrack
Definition: MeasurementBase.h:49
HitToSoNode::createTGC_Transform
SoTransform * createTGC_Transform(const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const
TGCs are rotated.
Definition: HitToSodeNode.cxx:126
HitToSoNode::HitToSoNode
HitToSoNode(const HitToSoNode &)
GeoPrimitivesHelpers.h
HitToSoNode::createTransform
SoTransform * createTransform(const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const
Definition: HitToSodeNode.cxx:107
CLHEPtoEigenEulerAnglesConverters.h
HitToSoNode::~HitToSoNode
~HitToSoNode()
Definition: HitToSodeNode.cxx:56
HitToSoNode::operator=
HitToSoNode & operator=(const HitToSoNode &)
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
HitToSoNode::HitToSoNode
HitToSoNode(IVP1System *sys=0)
Definition: HitToSodeNode.cxx:49
HitToSoNode::fillCSCValues
void fillCSCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Definition: HitToSodeNode.cxx:390