14#include <TGeoVolume.h>
16#include <TGeoPhysicalNode.h>
41 void InitFromGDML(
const char *gdmlFile,
const char *setupName );
137 TGeoVolume *
GetVolumeGasBorder(
int part,
int seg,
int gap,
int panel,
int gasChamber );
140 TGeoVolume *
GetVolumeBakelite(
int part,
int seg,
int gap,
int RpcUpDown,
int panel,
int bakelite );
143 TGeoNode *
GetAbsorber(
int part,
int seg,
int absorber );
149 TGeoNode *
GetGap(
int part,
int seg,
int gap );
155 TGeoNode *
GetStrip(
int part,
int seg,
int gap,
int strip );
176 Int_t
GetPart(TGeoPhysicalNode* phyNode);
185 void Draw(Option_t *option);
192 static const int m_kPart = 3;
193 static const int m_kSegMax = 8;
194 static const int m_kAbsorberMax = 9;
195 static const int m_kGapMax = 9;
196 static const int m_kPanelMax = 4;
197 static const int m_kStripMax = 112;
198 static const int m_kBakelite = 2;
199 static const int m_kGasChamber = 1;
200 static const int m_kSmallBlockMax = 2;
201 static const int m_kUpDown = 2;
203 static const int m_kSeg[m_kPart];
204 static const int m_kAbsorber[m_kPart];
205 static const int m_kGap[m_kPart];
206 static const int m_kPanel[m_kPart];
207 static const int m_kBakelitePanel[m_kPart][m_kUpDown];
209 int m_StripNum[m_kPart][m_kSegMax][m_kGapMax];
214 int m_gasChamberColor;
218 static const Int_t m_kStripZMuliple = 12;
221 TGeoNode *m_NodeAbsorber[m_kPart][m_kSegMax][m_kAbsorberMax];
222 TGeoNode *m_NodeAbsorberPanel[m_kPart][m_kSegMax][m_kAbsorberMax][m_kPanelMax];
223 TGeoNode *m_NodeGap[m_kPart][m_kSegMax][m_kGapMax];
224 TGeoNode *m_NodeStripPlane[m_kPart][m_kSegMax][m_kGapMax];
225 TGeoNode *m_NodeStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
227 TGeoPhysicalNode *m_PhysicalAbsorber[m_kPart][m_kSegMax][m_kAbsorberMax][m_kPanelMax];
228 TGeoPhysicalNode *m_PhysicalGap[m_kPart][m_kSegMax][m_kGapMax];
229 TGeoPhysicalNode *m_PhysicalStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
231 const TObjArray *m_MucDigiCol;
236 BesPolygon2D *m_MucXYGap[m_kPart][m_kSegMax][m_kGapMax];
237 BesPolygon2D *m_MucZRGap[m_kPart][m_kSegMax][m_kGapMax];
239 Muc2DStrip *m_Muc2DStrip[m_kPart][m_kSegMax][m_kGapMax][m_kStripMax];
TGeoVolume * GetVolumeMuc()
Get Muc volume;.
void SetPhysicalDefaultVis()
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;.
int GetGapNb(int part)
Get number of gap on part;.
void SetDetector()
Set Detecor (what is detector depends on you)
void SetVolumeDefaultVis()
Set default visual attributes;.
TGeoVolume * GetVolumeGasChamber(int part, int seg, int gap, int panel, int gasChamber)
Get rpc gas chamber volume;
void SetHalfVisible()
Set half visible;.
int GetAbsorberNb(int part)
Get number of absorber on part;.
TGeoPhysicalNode * GetPhysicalStrip(int part, int seg, int gap, int strip)
Get strip physical node;.
TGeoVolume * GetVolumeBox(int part, int seg, int gap)
Get box volume;
TGeoVolume * GetVolumeBakelite(int part, int seg, int gap, int panel, int bakelite)
Get rpc bakelite volume;
TGeoVolume * GetVolumeGasBorder(int part, int seg, int gap, int panel, int gasChamber)
Get rpc gas border volume;
Double_t Range360(Double_t input)
Get input value 0~360.
void SetNode()
Set the pointers to theirs nodes;.
void SetVolumeMuc(TGeoVolume *vol)
Set Muc volume, while initializing from ROOT;.
TGeoVolume * GetVolumeAbsorberPanel(int part, int seg, int absorber, int panel)
Get absorber panel volume;
TGeoNode * GetAbsorber(int part, int seg, int absorber)
Get absorber node;
Bool_t IsZRVisible(int part, int seg)
Is a segment visible in ZR view.
void SetVisMucDetector()
Set Muc detector visibility;.
void SetAllVisible()
Set all visible;.
Int_t GetPart(TGeoPhysicalNode *phyNode)
Get part no of a physcial node.
int GetSegNb(int part)
Get number of segment on part;.
TGeoVolume * GetVolumeGap(int part, int seg, int gap)
Get gap volume;
int GetPartNb()
Get number of part;.
void SetHits()
Set all physicalNodes corresponding to digiCol;.
void SetNoEndVisible()
Set noend visible;.
TGeoVolume * GetVolumeBoxSurface(int part, int seg, int gap, int up)
Get box surface volume;
TGeoNode * GetGap(int part, int seg, int gap)
Get gap node;
TGeoNode * GetStripPlane(int part, int seg, int gap)
Get strip plane node;.
TGeoVolume * GetVolumeStrip(int part, int seg, int gap, int strip)
Get strip volume;
void SetVisMucHits()
Set Muc hits visibility;.
TGeoVolume * GetVolumeAbsorber(int part, int seg, int absorber)
Get absorber volume;
TGeoPhysicalNode * GetPhysicalGap(int part, int seg, int gap)
Get gap physical node;.
TGeoNode * GetStrip(int part, int seg, int gap, int strip)
Get strip node;
TGeoPhysicalNode * GetPhysicalAbsorber(int part, int seg, int gap, int panel)
Get rpc gas chamber node;
void Init2DGeometry()
Initialize 2D Geometry.
void DrawHits(Option_t *option)
Draw 2D hits.
int GetStripNb(int part, int seg, int gap)
Get number of strip on gap;.
Muc2DStrip * Get2DStrip(int part, int seg, int gap, int strip)
Get Muc2DStrip;.
TGeoVolume * GetVolumeAbsorberSmallBlock(int gap, int sb)
Get absorber small block;.
TGeoNode * GetAbsorberPanel(int part, int seg, int absorber, int panel)
Get absorber panel node;
void InitFromGDML(const char *gdmlFile, const char *setupName)
Initialize ROOTGeo from GDML.
void InitFromROOT(TGeoVolume *vol)
Initialize ROOTGeo from TGeoVolume logicalMuc.