CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
DetectorDescription/ROOTGeo/ROOTGeo-00-00-15/ROOTGeo/MucROOTGeo.h
Go to the documentation of this file.
1//$id$
2/*
3 * 2004/9/20 Zhengyun You Peking University
4 * Muc Geometry General for EventDisplay
5 *
6 * 2004/12/11 Zhengyun You Peking University
7 * named from MucGeo to MucROOTGeo
8 * inherit from class SubDetectorROOTGeo
9 */
10
11#ifndef MUC_ROOT_GEO_H
12#define MUC_ROOT_GEO_H
13
14#include <TGeoVolume.h>
15#include <TGeoNode.h>
16#include <TGeoPhysicalNode.h>
17
18#include "SubDetectorROOTGeo.h"
19/**
20 * Class MucGeo contains all of the objects necessary to describe the
21 * muc geometry.
22 *
23 * @author Zhengyun You \URL{mailto:[email protected]}
24 *
25 */
26
28{
29 public:
30
31 /// Constructor.
32 MucROOTGeo();
33
34 /// Destructor.
36
37 /// Initialize the instance of ROOTGeo.
38 void InitFromGdml( const char *gdmlFile, const char *setupName );
39
40 /// Set the pointers to theirs nodes;
41 void SetNode();
42
43 /// Set default visual attributes;
44 void SetDefaultVis();
45
46 /// Set all visible;
47 void SetAllVisible();
48
49 /// Set quater visible;
50 void SetQuarterVisible();
51
52 /// Set the pointers to the physical nodes;
53 void SetPhysicalNode();
54
55 /// Get number of part;
56 int GetPartNum();
57
58 /// Get number of segment on part;
59 int GetSegNum(int part);
60
61 /// Get number of gap on part;
62 int GetGapNum(int part);
63
64 /// Get number of strip on gap;
65 int GetStripNum(int part, int seg, int gap);
66
67 /// Get Muc volume;
68 TGeoVolume *GetVolumeMuc() { return m_Muc; }
69
70 /// Get absorber volume;
71 TGeoVolume *GetVolumeAbsorber( int part, int seg, int absorber );
72
73 /// Get thickness of an absorber;
74 float GetAbsorberThickness( int part, int seg, int absorber );
75
76 /// Get absorber panel volume;
77 TGeoVolume *GetVolumeAbsorberPanel( int part, int seg, int absorber, int panel );
78
79 /// Get gap volume;
80 TGeoVolume *GetVolumeGap( int part, int seg, int gap );
81
82 /// Get box volume;
83 TGeoVolume *GetVolumeAluminumBox( int part, int seg, int gap );
84
85 /// Get strip plane volume;
86 TGeoVolume *GetVolumeStripPlane( int part, int seg, int gap );
87
88 /// Get strip volume;
89 TGeoVolume *GetVolumeStrip( int part, int seg, int gap, int strip );
90
91 /// Get rpc gas chamber volume;
92 TGeoVolume *GetVolumeGasChamber( int part, int seg, int gap, int panel, int gasChamber );
93
94 /// Get rpc bakelite volume;
95 TGeoVolume *GetVolumeBakelite( int part, int seg, int gap, int panel, int bakelite );
96
97 /// Get absorber node;
98 //TGeoNode *GetAbsorber( int part, int seg, int absorber );
99
100 /// Get absorber panel node;
101 //TGeoNode *GetAbsorberPanel( int part, int seg, int absorber, int panel );
102
103 /// Get gap node;
104 TGeoNode *GetGap( int part, int seg, int gap );
105
106 /// Get box node;
107 //TGeoNode *GetAluminumBox( int part, int seg, int gap );
108
109 /// Get strip plane node;
110 TGeoNode *GetStripPlane( int part, int seg, int gap);
111
112 /// Get strip node;
113 TGeoNode *GetStrip( int part, int seg, int gap, int strip );
114
115 /// Get rpc gas chamber node;
116 //TGeoNode *GetGasChamber( int part, int seg, int gap, int gasChamber );
117
118 /// Get rpc bakelite node;
119 //TGeoNode *GetBakelite( int part, int seg, int gap, int bakelite );
120
121 /// Get gap physical node;
122 TGeoPhysicalNode *GetPhysicalGap( int part, int seg, int gap );
123
124 /// Get box physical node;
125 TGeoPhysicalNode *GetPhysicalAluminumBox( int part, int seg, int gap );
126
127
128 /// Get strip physical node;
129 TGeoPhysicalNode *GetPhysicalStrip( int part, int seg, int gap, int strip );
130
131 private:
132
133 static const int m_kPart = 3;
134 static const int m_kSegMax = 8;
135 static const int m_kAbsorberMax = 9;
136 static const int m_kGapMax = 9;
137 static const int m_kPanelMax = 4;
138 static const int m_kStripMax = 112;
139 static const int m_kBakelite = 4;
140 static const int m_kGasChamber = 2;
141
142 static const int m_kSeg[m_kPart];
143 static const int m_kAbsorber[m_kPart];
144 static const int m_kGap[m_kPart];
145 static const int m_kPanel[m_kPart];
146
147 int m_StripNum[m_kPart][m_kSegMax][m_kGapMax];
148
149 TGeoVolume *m_Muc;
150 TGeoNode *m_NodeGap[m_kPart][m_kSegMax][m_kGapMax];
151 //TGeoNode *m_NodeAluminumBox[m_kPart][m_kSegMax][m_kGapMax];
152 TGeoNode *m_NodeStripPlane[m_kPart][m_kSegMax][m_kGapMax];
153 TGeoNode *m_NodeStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
154
155 TGeoPhysicalNode *m_PhysicalGap[m_kPart][m_kSegMax][m_kGapMax];
156 // TGeoPhysicalNode *m_PhysicalBox[m_kPart][m_kSegMax][m_kGapMax];
157 TGeoPhysicalNode *m_PhysicalStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
158};
159
160#endif /* MUC_ROOT_GEO_H */
TGeoVolume * GetVolumeStripPlane(int part, int seg, int gap)
Get strip plane volume;.
void SetPhysicalNode()
Set the pointers to the physical nodes;.
float GetAbsorberThickness(int part, int seg, int absorber)
Get thickness of an absorber;.
TGeoVolume * GetVolumeAluminumBox(int part, int seg, int gap)
Get box volume;
TGeoVolume * GetVolumeGasChamber(int part, int seg, int gap, int panel, int gasChamber)
Get rpc gas chamber volume;
TGeoPhysicalNode * GetPhysicalStrip(int part, int seg, int gap, int strip)
Get strip physical node;.
TGeoVolume * GetVolumeBakelite(int part, int seg, int gap, int panel, int bakelite)
Get rpc bakelite volume;
void SetNode()
Set the pointers to theirs nodes;.
TGeoVolume * GetVolumeAbsorberPanel(int part, int seg, int absorber, int panel)
Get absorber panel volume;
TGeoVolume * GetVolumeGap(int part, int seg, int gap)
Get gap volume;
int GetSegNum(int part)
Get number of segment on part;.
TGeoPhysicalNode * GetPhysicalAluminumBox(int part, int seg, int gap)
Get box physical node;.
TGeoNode * GetGap(int part, int seg, int gap)
Get absorber node;
TGeoNode * GetStripPlane(int part, int seg, int gap)
Get box node;.
void SetDefaultVis()
Set default visual attributes;.
TGeoVolume * GetVolumeStrip(int part, int seg, int gap, int strip)
Get strip volume;
TGeoVolume * GetVolumeAbsorber(int part, int seg, int absorber)
Get absorber volume;
TGeoPhysicalNode * GetPhysicalGap(int part, int seg, int gap)
Get rpc gas chamber node;
TGeoNode * GetStrip(int part, int seg, int gap, int strip)
Get strip node;
int GetStripNum(int part, int seg, int gap)
Get number of strip on gap;.
void InitFromGdml(const char *gdmlFile, const char *setupName)
Initialize the instance of ROOTGeo.
int GetGapNum(int part)
Get number of gap on part;.