ATLAS Offline Software
HitsSoNodeManager.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 #ifndef HITSSONODEMANAGER_H
6 #define HITSSONODEMANAGER_H
7 
8 //This class should as far as possible be used to create all shape
9 //nodes for hits. This allows for shared instancing and optimal memory
10 //and rendering performance.
11 //
12 //Author: Thomas Kittelmann.
14 class SoNode;
15 class SoTransform;
16 
18 public:
19 
20  HitsSoNodeManager( IVP1System * sys = 0 );//sys for messages
22 
23  SoNode* getShapeNode_Point();
24  SoNode* getShapeNode_Cross( double extent );
25  // SoNode* getShapeNode_Cross( double extent, double x, double y, double z );
26  SoNode* getShapeNode_DriftDisc( double radius );//Af flat drift tube. Returns point if radius is 0
27  SoNode* getShapeNode_DriftTube( double halfLength, double radius );//Will return an SoCylinder unless radius is 0 - in that case returns a line.
28  SoNode* getShapeNode_ProjectedDriftTube( double halfLength, double radius, bool inner, bool outer );//Will return SoCylinder(s) unless radius is 0 - in that case returns point(s).
29  SoNode* getShapeNode_Strip( double length, double width = 0, double depth=0 );//if width & depth are 0, will return a line. If all are 0, will return a point.
30  SoNode* getShapeNode_Wire( double length, double minWidth = 0, double maxWidth=0, double depth=0 );
31  SoNode* getShapeNode_Pad( double length, double minWidth = 0, double maxWidth=0, double depth=0 );
32 
33  SoTransform * getUnitTransform();
34 
35 private:
36 
39 
40  class Imp;
41  Imp * m_d;
42 
43 };
44 
45 #endif
HitsSoNodeManager::getShapeNode_DriftDisc
SoNode * getShapeNode_DriftDisc(double radius)
Definition: HitsSoNodeManager.cxx:177
egammaParameters::depth
@ depth
pointing depth of the shower as calculated in egammaqgcld
Definition: egammaParamDefs.h:276
HitsSoNodeManager::operator=
HitsSoNodeManager & operator=(const HitsSoNodeManager &)
HitsSoNodeManager::Imp
Definition: HitsSoNodeManager.cxx:27
HitsSoNodeManager::HitsSoNodeManager
HitsSoNodeManager(IVP1System *sys=0)
Definition: HitsSoNodeManager.cxx:91
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
HitsSoNodeManager::HitsSoNodeManager
HitsSoNodeManager(const HitsSoNodeManager &)
IVP1System
Definition: IVP1System.h:36
HitsSoNodeManager::getShapeNode_Strip
SoNode * getShapeNode_Strip(double length, double width=0, double depth=0)
Definition: HitsSoNodeManager.cxx:269
VP1HelperClassBase
Definition: VP1HelperClassBase.h:28
HitsSoNodeManager::getShapeNode_Pad
SoNode * getShapeNode_Pad(double length, double minWidth=0, double maxWidth=0, double depth=0)
Definition: HitsSoNodeManager.cxx:363
VP1HelperClassBase.h
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
HitsSoNodeManager::getShapeNode_ProjectedDriftTube
SoNode * getShapeNode_ProjectedDriftTube(double halfLength, double radius, bool inner, bool outer)
Definition: HitsSoNodeManager.cxx:203
HitsSoNodeManager::getShapeNode_Point
SoNode * getShapeNode_Point()
Definition: HitsSoNodeManager.cxx:412
HitsSoNodeManager
Definition: HitsSoNodeManager.h:17
HitsSoNodeManager::getShapeNode_Cross
SoNode * getShapeNode_Cross(double extent)
Definition: HitsSoNodeManager.cxx:427
HitsSoNodeManager::m_d
Imp * m_d
Definition: HitsSoNodeManager.h:40
HitsSoNodeManager::~HitsSoNodeManager
~HitsSoNodeManager()
Definition: HitsSoNodeManager.cxx:111
HitsSoNodeManager::getShapeNode_DriftTube
SoNode * getShapeNode_DriftTube(double halfLength, double radius)
Definition: HitsSoNodeManager.cxx:138
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
HitsSoNodeManager::getUnitTransform
SoTransform * getUnitTransform()
Definition: HitsSoNodeManager.cxx:456
HitsSoNodeManager::getShapeNode_Wire
SoNode * getShapeNode_Wire(double length, double minWidth=0, double maxWidth=0, double depth=0)
Definition: HitsSoNodeManager.cxx:317