BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DetectorDescription/ROOTGeo/include/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 <TGeoNode.h>
15#include <TGeoPhysicalNode.h>
16#include <TGeoVolume.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:youzy@hep.pku.cn}
24 *
25 */
26
28public:
29 /// Constructor.
30 MucROOTGeo();
31
32 /// Destructor.
34
35 /// Initialize the instance of ROOTGeo.
36 void InitFromGdml( const char* gdmlFile, const char* setupName );
37
38 /// Set the pointers to theirs nodes;
39 void SetNode();
40
41 /// Set default visual attributes;
42 void SetDefaultVis();
43
44 /// Set all visible;
45 void SetAllVisible();
46
47 /// Set quater visible;
48 void SetQuarterVisible();
49
50 /// Set the pointers to the physical nodes;
51 void SetPhysicalNode();
52
53 /// Get number of part;
54 int GetPartNum();
55
56 /// Get number of segment on part;
57 int GetSegNum( int part );
58
59 /// Get number of gap on part;
60 int GetGapNum( int part );
61
62 /// Get number of strip on gap;
63 int GetStripNum( int part, int seg, int gap );
64
65 /// Get Muc volume;
66 TGeoVolume* GetVolumeMuc() { return m_Muc; }
67
68 /// Get absorber volume;
69 TGeoVolume* GetVolumeAbsorber( int part, int seg, int absorber );
70
71 /// Get thickness of an absorber;
72 float GetAbsorberThickness( int part, int seg, int absorber );
73
74 /// Get absorber panel volume;
75 TGeoVolume* GetVolumeAbsorberPanel( int part, int seg, int absorber, int panel );
76
77 /// Get gap volume;
78 TGeoVolume* GetVolumeGap( int part, int seg, int gap );
79
80 /// Get box volume;
81 TGeoVolume* GetVolumeAluminumBox( int part, int seg, int gap );
82
83 /// Get strip plane volume;
84 TGeoVolume* GetVolumeStripPlane( int part, int seg, int gap );
85
86 /// Get strip volume;
87 TGeoVolume* GetVolumeStrip( int part, int seg, int gap, int strip );
88
89 /// Get rpc gas chamber volume;
90 TGeoVolume* GetVolumeGasChamber( int part, int seg, int gap, int panel, int gasChamber );
91
92 /// Get rpc bakelite volume;
93 TGeoVolume* GetVolumeBakelite( int part, int seg, int gap, int panel, int bakelite );
94
95 /// Get absorber node;
96 // TGeoNode *GetAbsorber( int part, int seg, int absorber );
97
98 /// Get absorber panel node;
99 // TGeoNode *GetAbsorberPanel( int part, int seg, int absorber, int panel );
100
101 /// Get gap node;
102 TGeoNode* GetGap( int part, int seg, int gap );
103
104 /// Get box node;
105 // TGeoNode *GetAluminumBox( int part, int seg, int gap );
106
107 /// Get strip plane node;
108 TGeoNode* GetStripPlane( int part, int seg, int gap );
109
110 /// Get strip node;
111 TGeoNode* GetStrip( int part, int seg, int gap, int strip );
112
113 /// Get rpc gas chamber node;
114 // TGeoNode *GetGasChamber( int part, int seg, int gap, int gasChamber );
115
116 /// Get rpc bakelite node;
117 // TGeoNode *GetBakelite( int part, int seg, int gap, int bakelite );
118
119 /// Get gap physical node;
120 TGeoPhysicalNode* GetPhysicalGap( int part, int seg, int gap );
121
122 /// Get box physical node;
123 TGeoPhysicalNode* GetPhysicalAluminumBox( int part, int seg, int gap );
124
125 /// Get strip physical node;
126 TGeoPhysicalNode* GetPhysicalStrip( int part, int seg, int gap, int strip );
127
128private:
129 static const int m_kPart = 3;
130 static const int m_kSegMax = 8;
131 static const int m_kAbsorberMax = 9;
132 static const int m_kGapMax = 9;
133 static const int m_kPanelMax = 4;
134 static const int m_kStripMax = 112;
135 static const int m_kBakelite = 4;
136 static const int m_kGasChamber = 2;
137
138 static const int m_kSeg[m_kPart];
139 static const int m_kAbsorber[m_kPart];
140 static const int m_kGap[m_kPart];
141 static const int m_kPanel[m_kPart];
142
143 int m_StripNum[m_kPart][m_kSegMax][m_kGapMax];
144
145 TGeoVolume* m_Muc;
146 TGeoNode* m_NodeGap[m_kPart][m_kSegMax][m_kGapMax];
147 // TGeoNode *m_NodeAluminumBox[m_kPart][m_kSegMax][m_kGapMax];
148 TGeoNode* m_NodeStripPlane[m_kPart][m_kSegMax][m_kGapMax];
149 TGeoNode* m_NodeStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
150
151 TGeoPhysicalNode* m_PhysicalGap[m_kPart][m_kSegMax][m_kGapMax];
152 // TGeoPhysicalNode *m_PhysicalBox[m_kPart][m_kSegMax][m_kGapMax];
153 TGeoPhysicalNode* m_PhysicalStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
154};
155
156#endif /* MUC_ROOT_GEO_H */
void SetQuarterVisible()
Set quater visible;.
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;.