BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MucROOTGeo Class Reference

#include <MucROOTGeo.h>

Inheritance diagram for MucROOTGeo:

Public Member Functions

 MucROOTGeo ()
 Constructor.
 ~MucROOTGeo ()
 Destructor.
void InitFromGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetDefaultVis ()
 Set default visual attributes;.
void SetAllVisible ()
 Set all visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
int GetPartNum ()
 Get number of part;.
int GetSegNum (int part)
 Get number of segment on part;.
int GetGapNum (int part)
 Get number of gap on part;.
int GetStripNum (int part, int seg, int gap)
 Get number of strip on gap;.
TGeoVolume * GetVolumeMuc ()
 Get Muc volume;.
TGeoVolume * GetVolumeAbsorber (int part, int seg, int absorber)
 Get absorber volume;.
float GetAbsorberThickness (int part, int seg, int absorber)
 Get thickness of an absorber;.
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;.
TGeoVolume * GetVolumeAluminumBox (int part, int seg, int gap)
 Get box volume;.
TGeoVolume * GetVolumeStripPlane (int part, int seg, int gap)
 Get strip plane volume;.
TGeoVolume * GetVolumeStrip (int part, int seg, int gap, int strip)
 Get strip volume;.
TGeoVolume * GetVolumeGasChamber (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas chamber volume;.
TGeoVolume * GetVolumeBakelite (int part, int seg, int gap, int panel, int bakelite)
 Get rpc bakelite volume;.
TGeoNode * GetGap (int part, int seg, int gap)
 Get absorber node;.
TGeoNode * GetStripPlane (int part, int seg, int gap)
 Get box node;.
TGeoNode * GetStrip (int part, int seg, int gap, int strip)
 Get strip node;.
TGeoPhysicalNode * GetPhysicalGap (int part, int seg, int gap)
 Get rpc gas chamber node;.
TGeoPhysicalNode * GetPhysicalAluminumBox (int part, int seg, int gap)
 Get box physical node;.
TGeoPhysicalNode * GetPhysicalStrip (int part, int seg, int gap, int strip)
 Get strip physical node;.
 MucROOTGeo ()
 Constructor.
 ~MucROOTGeo ()
 Destructor.
void InitFromGDML (const char *gdmlFile, const char *setupName)
 Initialize ROOTGeo from GDML.
void InitFromROOT (TGeoVolume *vol)
 Initialize ROOTGeo from TGeoVolume logicalMuc.
void Init2DGeometry ()
 Initialize 2D Geometry.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetVolumeDefaultVis ()
 Set default visual attributes;.
void SetPhysicalDefaultVis ()
void SetAllVisible ()
 Set all visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetHalfVisible ()
 Set half visible;.
void SetNoEndVisible ()
 Set noend visible;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetDetector ()
 Set Detecor (what is detector depends on you).
void SetHits ()
 Set all physicalNodes corresponding to digiCol;.
void SetVisMucDetector ()
 Set Muc detector visibility;.
void SetVisMucHits ()
 Set Muc hits visibility;.
int GetPartNb ()
 Get number of part;.
int GetSegNb (int part)
 Get number of segment on part;.
int GetGapNb (int part)
 Get number of gap on part;.
int GetStripNb (int part, int seg, int gap)
 Get number of strip on gap;.
int GetAbsorberNb (int part)
 Get number of absorber on part;.
void SetVolumeMuc (TGeoVolume *vol)
 Set Muc volume, while initializing from ROOT;.
TGeoVolume * GetVolumeMuc ()
 Get Muc volume;.
TGeoVolume * GetVolumeAbsorber (int part, int seg, int absorber)
 Get absorber volume;.
TGeoVolume * GetVolumeAbsorberSmallBlock (int gap, int sb)
 Get absorber small block;.
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;.
TGeoVolume * GetVolumeBox (int part, int seg, int gap)
 Get box volume;.
TGeoVolume * GetVolumeBoxSurface (int part, int seg, int gap, int up)
 Get box surface volume;.
TGeoVolume * GetVolumeStripPlane (int part, int seg, int gap)
 Get strip plane volume;.
TGeoVolume * GetVolumeStrip (int part, int seg, int gap, int strip)
 Get strip volume;.
TGeoVolume * GetVolumeGasChamber (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas chamber volume;.
TGeoVolume * GetVolumeGasBorder (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas border volume;.
TGeoVolume * GetVolumeBakelite (int part, int seg, int gap, int RpcUpDown, int panel, int bakelite)
 Get rpc bakelite volume;.
TGeoNode * GetAbsorber (int part, int seg, int absorber)
 Get absorber node;.
TGeoNode * GetAbsorberPanel (int part, int seg, int absorber, int panel)
 Get absorber panel node;.
TGeoNode * GetGap (int part, int seg, int gap)
 Get gap node;.
TGeoNode * GetStripPlane (int part, int seg, int gap)
 Get strip plane 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;.
TGeoPhysicalNode * GetPhysicalGap (int part, int seg, int gap)
 Get gap physical node;.
TGeoPhysicalNode * GetPhysicalStrip (int part, int seg, int gap, int strip)
 Get strip physical node;.
Muc2DStripGet2DStrip (int part, int seg, int gap, int strip)
 Get Muc2DStrip;.
Int_t GetPart (TGeoPhysicalNode *phyNode)
 Get part no of a physcial node.
Bool_t IsZRVisible (int part, int seg)
 Is a segment visible in ZR view.
Double_t Range360 (Double_t input)
 Get input value 0~360.
void Draw (Option_t *option)
 Draw function.
void DrawHits (Option_t *option)
 Draw 2D hits.
 MucROOTGeo ()
 Constructor.
 ~MucROOTGeo ()
 Destructor.
void InitFromGDML (const char *gdmlFile, const char *setupName)
 Initialize ROOTGeo from GDML.
void InitFromROOT (TGeoVolume *vol)
 Initialize ROOTGeo from TGeoVolume logicalMuc.
void Init2DGeometry ()
 Initialize 2D Geometry.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetVolumeDefaultVis ()
 Set default visual attributes;.
void SetPhysicalDefaultVis ()
void SetAllVisible ()
 Set all visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetHalfVisible ()
 Set half visible;.
void SetNoEndVisible ()
 Set noend visible;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetDetector ()
 Set Detecor (what is detector depends on you).
void SetHits ()
 Set all physicalNodes corresponding to digiCol;.
void SetVisMucDetector ()
 Set Muc detector visibility;.
void SetVisMucHits ()
 Set Muc hits visibility;.
int GetPartNb ()
 Get number of part;.
int GetSegNb (int part)
 Get number of segment on part;.
int GetGapNb (int part)
 Get number of gap on part;.
int GetStripNb (int part, int seg, int gap)
 Get number of strip on gap;.
int GetAbsorberNb (int part)
 Get number of absorber on part;.
void SetVolumeMuc (TGeoVolume *vol)
 Set Muc volume, while initializing from ROOT;.
TGeoVolume * GetVolumeMuc ()
 Get Muc volume;.
TGeoVolume * GetVolumeAbsorber (int part, int seg, int absorber)
 Get absorber volume;.
TGeoVolume * GetVolumeAbsorberSmallBlock (int gap, int sb)
 Get absorber small block;.
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;.
TGeoVolume * GetVolumeBox (int part, int seg, int gap)
 Get box volume;.
TGeoVolume * GetVolumeBoxSurface (int part, int seg, int gap, int up)
 Get box surface volume;.
TGeoVolume * GetVolumeStripPlane (int part, int seg, int gap)
 Get strip plane volume;.
TGeoVolume * GetVolumeStrip (int part, int seg, int gap, int strip)
 Get strip volume;.
TGeoVolume * GetVolumeGasChamber (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas chamber volume;.
TGeoVolume * GetVolumeGasBorder (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas border volume;.
TGeoVolume * GetVolumeBakelite (int part, int seg, int gap, int RpcUpDown, int panel, int bakelite)
 Get rpc bakelite volume;.
TGeoNode * GetAbsorber (int part, int seg, int absorber)
 Get absorber node;.
TGeoNode * GetAbsorberPanel (int part, int seg, int absorber, int panel)
 Get absorber panel node;.
TGeoNode * GetGap (int part, int seg, int gap)
 Get gap node;.
TGeoNode * GetStripPlane (int part, int seg, int gap)
 Get strip plane 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;.
TGeoPhysicalNode * GetPhysicalGap (int part, int seg, int gap)
 Get gap physical node;.
TGeoPhysicalNode * GetPhysicalStrip (int part, int seg, int gap, int strip)
 Get strip physical node;.
Muc2DStripGet2DStrip (int part, int seg, int gap, int strip)
 Get Muc2DStrip;.
Int_t GetPart (TGeoPhysicalNode *phyNode)
 Get part no of a physcial node.
Bool_t IsZRVisible (int part, int seg)
 Is a segment visible in ZR view.
Double_t Range360 (Double_t input)
 Get input value 0~360.
void Draw (Option_t *option)
 Draw function.
void DrawHits (Option_t *option)
 Draw 2D hits.
 MucROOTGeo ()
 Constructor.
 ~MucROOTGeo ()
 Destructor.
void InitFromGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetDefaultVis ()
 Set default visual attributes;.
void SetAllVisible ()
 Set all visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
int GetPartNum ()
 Get number of part;.
int GetSegNum (int part)
 Get number of segment on part;.
int GetGapNum (int part)
 Get number of gap on part;.
int GetStripNum (int part, int seg, int gap)
 Get number of strip on gap;.
TGeoVolume * GetVolumeMuc ()
 Get Muc volume;.
TGeoVolume * GetVolumeAbsorber (int part, int seg, int absorber)
 Get absorber volume;.
float GetAbsorberThickness (int part, int seg, int absorber)
 Get thickness of an absorber;.
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;.
TGeoVolume * GetVolumeAluminumBox (int part, int seg, int gap)
 Get box volume;.
TGeoVolume * GetVolumeStripPlane (int part, int seg, int gap)
 Get strip plane volume;.
TGeoVolume * GetVolumeStrip (int part, int seg, int gap, int strip)
 Get strip volume;.
TGeoVolume * GetVolumeGasChamber (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas chamber volume;.
TGeoVolume * GetVolumeBakelite (int part, int seg, int gap, int panel, int bakelite)
 Get rpc bakelite volume;.
TGeoNode * GetGap (int part, int seg, int gap)
 Get absorber node;.
TGeoNode * GetStripPlane (int part, int seg, int gap)
 Get box node;.
TGeoNode * GetStrip (int part, int seg, int gap, int strip)
 Get strip node;.
TGeoPhysicalNode * GetPhysicalGap (int part, int seg, int gap)
 Get rpc gas chamber node;.
TGeoPhysicalNode * GetPhysicalAluminumBox (int part, int seg, int gap)
 Get box physical node;.
TGeoPhysicalNode * GetPhysicalStrip (int part, int seg, int gap, int strip)
 Get strip physical node;.
 MucROOTGeo ()
 Constructor.
 ~MucROOTGeo ()
 Destructor.
void InitFromGDML (const char *gdmlFile, const char *setupName)
 Initialize ROOTGeo from GDML.
void InitFromROOT (TGeoVolume *vol)
 Initialize ROOTGeo from TGeoVolume logicalMuc.
void Init2DGeometry ()
 Initialize 2D Geometry.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetVolumeDefaultVis ()
 Set default visual attributes;.
void SetPhysicalDefaultVis ()
void SetAllVisible ()
 Set all visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetHalfVisible ()
 Set half visible;.
void SetNoEndVisible ()
 Set noend visible;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetDetector ()
 Set Detecor (what is detector depends on you).
void SetHits ()
 Set all physicalNodes corresponding to digiCol;.
void SetVisMucDetector ()
 Set Muc detector visibility;.
void SetVisMucHits ()
 Set Muc hits visibility;.
int GetPartNb ()
 Get number of part;.
int GetSegNb (int part)
 Get number of segment on part;.
int GetGapNb (int part)
 Get number of gap on part;.
int GetStripNb (int part, int seg, int gap)
 Get number of strip on gap;.
int GetAbsorberNb (int part)
 Get number of absorber on part;.
void SetVolumeMuc (TGeoVolume *vol)
 Set Muc volume, while initializing from ROOT;.
TGeoVolume * GetVolumeMuc ()
 Get Muc volume;.
TGeoVolume * GetVolumeAbsorber (int part, int seg, int absorber)
 Get absorber volume;.
TGeoVolume * GetVolumeAbsorberSmallBlock (int gap, int sb)
 Get absorber small block;.
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;.
TGeoVolume * GetVolumeBox (int part, int seg, int gap)
 Get box volume;.
TGeoVolume * GetVolumeBoxSurface (int part, int seg, int gap, int up)
 Get box surface volume;.
TGeoVolume * GetVolumeStripPlane (int part, int seg, int gap)
 Get strip plane volume;.
TGeoVolume * GetVolumeStrip (int part, int seg, int gap, int strip)
 Get strip volume;.
TGeoVolume * GetVolumeGasChamber (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas chamber volume;.
TGeoVolume * GetVolumeGasBorder (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas border volume;.
TGeoVolume * GetVolumeBakelite (int part, int seg, int gap, int RpcUpDown, int panel, int bakelite)
 Get rpc bakelite volume;.
TGeoNode * GetAbsorber (int part, int seg, int absorber)
 Get absorber node;.
TGeoNode * GetAbsorberPanel (int part, int seg, int absorber, int panel)
 Get absorber panel node;.
TGeoNode * GetGap (int part, int seg, int gap)
 Get gap node;.
TGeoNode * GetStripPlane (int part, int seg, int gap)
 Get strip plane 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;.
TGeoPhysicalNode * GetPhysicalGap (int part, int seg, int gap)
 Get gap physical node;.
TGeoPhysicalNode * GetPhysicalStrip (int part, int seg, int gap, int strip)
 Get strip physical node;.
Muc2DStripGet2DStrip (int part, int seg, int gap, int strip)
 Get Muc2DStrip;.
Int_t GetPart (TGeoPhysicalNode *phyNode)
 Get part no of a physcial node.
Bool_t IsZRVisible (int part, int seg)
 Is a segment visible in ZR view.
Double_t Range360 (Double_t input)
 Get input value 0~360.
void Draw (Option_t *option)
 Draw function.
void DrawHits (Option_t *option)
 Draw 2D hits.
 MucROOTGeo ()
 Constructor.
 ~MucROOTGeo ()
 Destructor.
void InitFromGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetDefaultVis ()
 Set default visual attributes;.
void SetAllVisible ()
 Set all visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
int GetPartNum ()
 Get number of part;.
int GetSegNum (int part)
 Get number of segment on part;.
int GetGapNum (int part)
 Get number of gap on part;.
int GetStripNum (int part, int seg, int gap)
 Get number of strip on gap;.
TGeoVolume * GetVolumeMuc ()
 Get Muc volume;.
TGeoVolume * GetVolumeAbsorber (int part, int seg, int absorber)
 Get absorber volume;.
float GetAbsorberThickness (int part, int seg, int absorber)
 Get thickness of an absorber;.
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;.
TGeoVolume * GetVolumeAluminumBox (int part, int seg, int gap)
 Get box volume;.
TGeoVolume * GetVolumeStripPlane (int part, int seg, int gap)
 Get strip plane volume;.
TGeoVolume * GetVolumeStrip (int part, int seg, int gap, int strip)
 Get strip volume;.
TGeoVolume * GetVolumeGasChamber (int part, int seg, int gap, int panel, int gasChamber)
 Get rpc gas chamber volume;.
TGeoVolume * GetVolumeBakelite (int part, int seg, int gap, int panel, int bakelite)
 Get rpc bakelite volume;.
TGeoNode * GetGap (int part, int seg, int gap)
 Get absorber node;.
TGeoNode * GetStripPlane (int part, int seg, int gap)
 Get box node;.
TGeoNode * GetStrip (int part, int seg, int gap, int strip)
 Get strip node;.
TGeoPhysicalNode * GetPhysicalGap (int part, int seg, int gap)
 Get rpc gas chamber node;.
TGeoPhysicalNode * GetPhysicalAluminumBox (int part, int seg, int gap)
 Get box physical node;.
TGeoPhysicalNode * GetPhysicalStrip (int part, int seg, int gap, int strip)
 Get strip physical node;.
Public Member Functions inherited from SubDetectorROOTGeo
 SubDetectorROOTGeo ()
 Constructor.
virtual ~SubDetectorROOTGeo ()
 Destructor.
void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
void SetChildNo (int childNo)
TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
 SubDetectorROOTGeo ()
 Constructor.
virtual ~SubDetectorROOTGeo ()
 Destructor.
virtual void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
virtual int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
virtual void SetChildNo (int childNo)
virtual TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
virtual TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
virtual TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
virtual TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
virtual int GetHitsNum ()
 Get number of hits in HitsArray;.
virtual TGeoPhysicalNode * GetHit (int i)
 Get ith hit in HitsArray;.
virtual void SetDetectorOn ()
 Set all physicalNodes in m_DeteorsArray visible;.
 SubDetectorROOTGeo ()
 Constructor.
virtual ~SubDetectorROOTGeo ()
 Destructor.
virtual void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
virtual int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
virtual void SetChildNo (int childNo)
virtual TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
virtual TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
virtual TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
virtual TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
virtual int GetHitsNum ()
 Get number of hits in HitsArray;.
virtual TGeoPhysicalNode * GetHit (int i)
 Get ith hit in HitsArray;.
virtual void SetDetectorOn ()
 Set all physicalNodes in m_DeteorsArray visible;.
 SubDetectorROOTGeo ()
 Constructor.
virtual ~SubDetectorROOTGeo ()
 Destructor.
void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
void SetChildNo (int childNo)
TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
 SubDetectorROOTGeo ()
 Constructor.
virtual ~SubDetectorROOTGeo ()
 Destructor.
virtual void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
virtual int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
virtual void SetChildNo (int childNo)
virtual TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
virtual TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
virtual TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
virtual TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
virtual int GetHitsNum ()
 Get number of hits in HitsArray;.
virtual TGeoPhysicalNode * GetHit (int i)
 Get ith hit in HitsArray;.
virtual void SetDetectorOn ()
 Set all physicalNodes in m_DeteorsArray visible;.
 SubDetectorROOTGeo ()
 Constructor.
virtual ~SubDetectorROOTGeo ()
 Destructor.
void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
void SetChildNo (int childNo)
TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.

Additional Inherited Members

Protected Attributes inherited from SubDetectorROOTGeo
int m_ROOTGeoInit
int m_childNo
TGeoVolume * m_TopVolume
int m_2DGeoInit
TObjArray * m_DetectorsArray
TObjArray * m_HitsArray
TObjArray * m_2DHitsArray

Detailed Description

Class MucGeo contains all of the objects necessary to describe the muc geometry.

Author
Zhengyun You \URL{youzy.nosp@m.@hep.nosp@m..pku..nosp@m.cn}

Definition at line 27 of file DetectorDescription/ROOTGeo/include/ROOTGeo/MucROOTGeo.h.

Constructor & Destructor Documentation

◆ MucROOTGeo() [1/6]

MucROOTGeo::MucROOTGeo ( )

Constructor.

Definition at line 29 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

29 {
30 // Default constructor.
31 for ( int part = 0; part < m_kPart; part++ )
32 {
33 for ( int seg = 0; seg < m_kSegMax; seg++ )
34 {
35 for ( int gap = 0; gap < m_kGapMax; gap++ )
36 {
37 m_NodeGap[part][seg][gap] = 0;
38 m_PhysicalGap[part][seg][gap] = 0;
39 // m_NodeBox[part][seg][gap] = 0;
40 // m_PhysicalBox[part][seg][gap] = 0;
41 for ( int strip = 0; strip < m_kStripMax; strip++ )
42 {
43 m_NodeStrip[part][seg][gap][strip] = 0;
44 m_PhysicalStrip[part][seg][gap][strip] = 0;
45 }
46 }
47 }
48 }
49
50 string GdmlManagementPath = getenv( "GDMLMANAGEMENTDATAROOT" );
51 // cout << "MucGeoGeneral::InitFromXML(), GdmlManagementPath not found" << endl;
52 string GdmlFile = GdmlManagementPath + string( "/dat/Muc.gdml" );
53 // string GdmlFile = string("Muc.gdml");
54 cout << "GdmlFile " << GdmlFile << endl;
55 InitFromGdml( GdmlFile.c_str(), "Muc" );
56}
void InitFromGdml(const char *gdmlFile, const char *setupName)
Initialize the instance of ROOTGeo.

◆ ~MucROOTGeo() [1/6]

MucROOTGeo::~MucROOTGeo ( )

Destructor.

Definition at line 58 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

58{}

◆ MucROOTGeo() [2/6]

MucROOTGeo::MucROOTGeo ( )

Constructor.

◆ ~MucROOTGeo() [2/6]

MucROOTGeo::~MucROOTGeo ( )

Destructor.

◆ MucROOTGeo() [3/6]

MucROOTGeo::MucROOTGeo ( )

Constructor.

◆ ~MucROOTGeo() [3/6]

MucROOTGeo::~MucROOTGeo ( )

Destructor.

◆ MucROOTGeo() [4/6]

MucROOTGeo::MucROOTGeo ( )

Constructor.

◆ ~MucROOTGeo() [4/6]

MucROOTGeo::~MucROOTGeo ( )

Destructor.

◆ MucROOTGeo() [5/6]

MucROOTGeo::MucROOTGeo ( )

Constructor.

◆ ~MucROOTGeo() [5/6]

MucROOTGeo::~MucROOTGeo ( )

Destructor.

◆ MucROOTGeo() [6/6]

MucROOTGeo::MucROOTGeo ( )

Constructor.

◆ ~MucROOTGeo() [6/6]

MucROOTGeo::~MucROOTGeo ( )

Destructor.

Member Function Documentation

◆ Draw() [1/3]

void MucROOTGeo::Draw ( Option_t * option)

Draw function.

Definition at line 1577 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1577 {
1578 TString opt = option;
1579 opt.ToUpper();
1580
1581 if ( !m_2DGeoInit ) cout << "MucROOTGeo::Draw2D(), 2D Geometry not initialized!" << endl;
1582 BesView* view = dynamic_cast<BesView*>( gPad->GetView() );
1583 if ( !view ) cout << "MucROOTGeo::Draw(), BesView not found" << endl;
1584
1585 if ( view->GetVisMucGlobal() )
1586 { // MucVisGlobal
1587 // seg and gap
1588 for ( Int_t part = GetPartNb() - 1; part >= 0; part-- )
1589 { // draw west first
1590 if ( ( part == 0 && view->GetVisMucEast() ) ||
1591 ( part == 1 && view->GetVisMucBarrel() ) || ( part == 2 && view->GetVisMucWest() ) )
1592 {
1593 for ( Int_t seg = 0; seg < GetSegNb( part ); seg++ )
1594 {
1595 if ( opt.Contains( "XY" ) )
1596 {
1597 if ( m_MucXY[part][seg] ) m_MucXY[part][seg]->Draw( "" );
1598 for ( Int_t gap = 0; gap < GetGapNb( part ); gap++ )
1599 {
1600 if ( m_MucXYGap[part][seg][gap] ) m_MucXYGap[part][seg][gap]->Draw( "" );
1601 }
1602 }
1603 if ( opt.Contains( "ZR" ) )
1604 {
1605 if ( m_MucZR[part][seg] )
1606 { // && IsZRVisible(part, seg) ) {
1607 if ( part == 1 ) m_MucZR[part][seg]->SetRotatable( true );
1608 m_MucZR[part][seg]->Draw( "" );
1609 }
1610 for ( Int_t gap = 0; gap < GetGapNb( part ); gap++ )
1611 {
1612 if ( m_MucZRGap[part][seg][gap] )
1613 {
1614 if ( part == 1 ) m_MucZRGap[part][seg][gap]->SetRotatable( true );
1615 m_MucZRGap[part][seg][gap]->Draw( "" );
1616 }
1617 }
1618 }
1619 }
1620 }
1621 }
1622
1623 // strips, should be drawn after all segs and gaps have been drawn
1624 for ( Int_t part = GetPartNb() - 1; part >= 0; part-- )
1625 { // draw west first
1626 for ( Int_t seg = 0; seg < GetSegNb( part ); seg++ )
1627 {
1628 for ( Int_t gap = 0; gap < GetGapNb( part ); gap++ )
1629 {
1630 for ( Int_t strip = 0; strip < GetStripNb( part, seg, gap ); strip++ )
1631 {
1632 if ( m_Muc2DStrip[part][seg][gap][strip] )
1633 {
1634 m_Muc2DStrip[part][seg][gap][strip]->SetFired( false );
1635 if ( ( part == 0 && view->GetVisMucEast() ) ||
1636 ( part == 1 && view->GetVisMucBarrel() ) ||
1637 ( part == 2 && view->GetVisMucWest() ) )
1638 { m_Muc2DStrip[part][seg][gap][strip]->Draw( "" ); }
1639 }
1640 }
1641 }
1642 }
1643 }
1644 }
1645}
int GetGapNb(int part)
Get number of gap on part;.
int GetSegNb(int part)
Get number of segment on part;.
int GetPartNb()
Get number of part;.
int GetStripNb(int part, int seg, int gap)
Get number of strip on gap;.

◆ Draw() [2/3]

void MucROOTGeo::Draw ( Option_t * option)

Draw function.

◆ Draw() [3/3]

void MucROOTGeo::Draw ( Option_t * option)

Draw function.

◆ DrawHits() [1/3]

void MucROOTGeo::DrawHits ( Option_t * option)

Draw 2D hits.

Definition at line 1647 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1647 {
1648 BesView* view = dynamic_cast<BesView*>( gPad->GetView() );
1649 if ( !view ) cout << "MucROOTGeo::DrawHits(), BesView not found" << endl;
1650
1651 if ( view->GetVisMucHitsGlobal() )
1652 {
1653
1654 /*
1655 for (Int_t part = GetPartNb()-1; part >= 0; part--) { // draw west first
1656 for (Int_t seg = 0; seg < GetSegNb(part); seg++) {
1657 for (Int_t gap = 0; gap < GetGapNb(part); gap++) {
1658 for (Int_t strip = 0; strip < GetStripNb(part, seg, gap); strip++) {
1659 if (m_Muc2DStrip[part][seg][gap][strip])
1660 m_Muc2DStrip[part][seg][gap][strip]->ClearInfo();
1661 }
1662 }
1663 }
1664 }*/
1665
1666 // Long Peixun's update: Use m_2DHitsArray which contains ready hits rather than rebuild
1667 // hits
1668 for ( int i = 0; i < m_2DHitsArray->GetEntries(); ++i )
1669 {
1670 Muc2DStrip* aStrip = (Muc2DStrip*)m_2DHitsArray->At( i );
1671 if ( aStrip )
1672 {
1673 if ( ( aStrip->GetPart() == 0 && view->GetVisMucHitsEast() ) ||
1674 ( aStrip->GetPart() == 1 && view->GetVisMucHitsBarrel() ) ||
1675 ( aStrip->GetPart() == 2 && view->GetVisMucHitsWest() ) )
1676 {
1677 aStrip->SetFired( true );
1678 aStrip->Draw();
1679 }
1680 }
1681 }
1682
1683 /* if (m_MucDigiCol) {
1684 for (int i = 0; i < m_MucDigiCol->GetEntries(); i++) {
1685 TMucDigi *aMucDigi = (TMucDigi*)m_MucDigiCol->At(i);
1686
1687 //cout << aMucDigi->getIntId() << endl;
1688 Identifier aMucID( aMucDigi->getIntId() );
1689 int part = MucID::part( aMucID );
1690 int seg = MucID::seg( aMucID );
1691 int gap = MucID::gap( aMucID );
1692 int strip = MucID::strip( aMucID );
1693
1694 Muc2DStrip *aStrip = 0;
1695 aStrip = m_Muc2DStrip[part][seg][gap][strip];
1696 if (aStrip) {
1697 if ( (part == 0 && view->GetVisMucHitsEast()) ||
1698 (part == 1 && view->GetVisMucHitsBarrel()) ||
1699 (part == 2 && view->GetVisMucHitsWest()) ) {
1700 aStrip->SetFired(true);
1701 aStrip->Draw();
1702 }
1703 }
1704 }
1705 } */
1706 }
1707}
virtual void Draw(Option_t *option="")

◆ DrawHits() [2/3]

void MucROOTGeo::DrawHits ( Option_t * option)

Draw 2D hits.

◆ DrawHits() [3/3]

void MucROOTGeo::DrawHits ( Option_t * option)

Draw 2D hits.

◆ Get2DStrip() [1/3]

Muc2DStrip * MucROOTGeo::Get2DStrip ( int part,
int seg,
int gap,
int strip )

Get Muc2DStrip;.

Definition at line 1510 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1510 {
1511 if ( m_Muc2DStrip[part][seg][gap][strip] ) return m_Muc2DStrip[part][seg][gap][strip];
1512 else return 0;
1513}

◆ Get2DStrip() [2/3]

Muc2DStrip * MucROOTGeo::Get2DStrip ( int part,
int seg,
int gap,
int strip )

Get Muc2DStrip;.

◆ Get2DStrip() [3/3]

Muc2DStrip * MucROOTGeo::Get2DStrip ( int part,
int seg,
int gap,
int strip )

Get Muc2DStrip;.

◆ GetAbsorber() [1/3]

TGeoNode * MucROOTGeo::GetAbsorber ( int part,
int seg,
int absorber )

Get absorber node;.

Definition at line 1467 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1467 {
1468 if ( m_NodeAbsorber[part][seg][absorber] != 0 )
1469 { return m_NodeAbsorber[part][seg][absorber]; }
1470 else { return 0; }
1471}

Referenced by Init2DGeometry().

◆ GetAbsorber() [2/3]

TGeoNode * MucROOTGeo::GetAbsorber ( int part,
int seg,
int absorber )

Get absorber node;.

◆ GetAbsorber() [3/3]

TGeoNode * MucROOTGeo::GetAbsorber ( int part,
int seg,
int absorber )

Get absorber node;.

◆ GetAbsorberNb() [1/3]

int MucROOTGeo::GetAbsorberNb ( int part)

Get number of absorber on part;.

Definition at line 1330 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1330 {
1331 return m_kAbsorber[part]; // Long Peixun's update: code optimization
1332}

Referenced by GetPart(), SetDetector(), and SetVolumeDefaultVis().

◆ GetAbsorberNb() [2/3]

int MucROOTGeo::GetAbsorberNb ( int part)

Get number of absorber on part;.

◆ GetAbsorberNb() [3/3]

int MucROOTGeo::GetAbsorberNb ( int part)

Get number of absorber on part;.

◆ GetAbsorberPanel() [1/3]

TGeoNode * MucROOTGeo::GetAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel node;.

Definition at line 1473 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1473 {
1474 if ( m_NodeAbsorberPanel[part][seg][absorber][panel] != 0 )
1475 { return m_NodeAbsorberPanel[part][seg][absorber][panel]; }
1476 else { return 0; }
1477}

◆ GetAbsorberPanel() [2/3]

TGeoNode * MucROOTGeo::GetAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel node;.

◆ GetAbsorberPanel() [3/3]

TGeoNode * MucROOTGeo::GetAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel node;.

◆ GetAbsorberThickness() [1/3]

float MucROOTGeo::GetAbsorberThickness ( int part,
int seg,
int absorber )

Get thickness of an absorber;.

Definition at line 409 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

409 {
410 float thickness = 0.0;
411 TGeoVolume* vol = GetVolumeAbsorber( part, seg, absorber );
412 if ( vol ) { thickness = 2.0 * ( (TGeoBBox*)vol->GetShape() )->GetDZ(); }
413
414 return thickness;
415}
TGeoVolume * GetVolumeAbsorber(int part, int seg, int absorber)
Get absorber volume;.

Referenced by MucGeoGeneral::InitFromXML().

◆ GetAbsorberThickness() [2/3]

float MucROOTGeo::GetAbsorberThickness ( int part,
int seg,
int absorber )

Get thickness of an absorber;.

◆ GetAbsorberThickness() [3/3]

float MucROOTGeo::GetAbsorberThickness ( int part,
int seg,
int absorber )

Get thickness of an absorber;.

◆ GetGap() [1/6]

TGeoNode * MucROOTGeo::GetGap ( int part,
int seg,
int gap )

Get absorber node;.

Get absorber panel node; Get gap node;

Definition at line 511 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

511 {
512 if ( m_NodeGap[part][seg][gap] != 0 ) { return m_NodeGap[part][seg][gap]; }
513 else
514 {
515 std::cout << "Node: "
516 << "Part" << part << "Seg" << seg << "Gap" << gap << " not found" << std::endl;
517 return 0;
518 }
519}

Referenced by Init2DGeometry(), SetAllVisible(), SetDefaultVis(), SetHalfVisible(), SetNoEndVisible(), SetPhysicalNode(), SetQuarterVisible(), and SetVolumeDefaultVis().

◆ GetGap() [2/6]

TGeoNode * MucROOTGeo::GetGap ( int part,
int seg,
int gap )

Get gap node;.

◆ GetGap() [3/6]

TGeoNode * MucROOTGeo::GetGap ( int part,
int seg,
int gap )

Get gap node;.

◆ GetGap() [4/6]

TGeoNode * MucROOTGeo::GetGap ( int part,
int seg,
int gap )

Get absorber node;.

Get absorber panel node; Get gap node;

◆ GetGap() [5/6]

TGeoNode * MucROOTGeo::GetGap ( int part,
int seg,
int gap )

Get gap node;.

◆ GetGap() [6/6]

TGeoNode * MucROOTGeo::GetGap ( int part,
int seg,
int gap )

Get absorber node;.

Get absorber panel node; Get gap node;

◆ GetGapNb() [1/3]

int MucROOTGeo::GetGapNb ( int part)

Get number of gap on part;.

Definition at line 1322 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1322 {
1323 return m_kGap[part]; // Long Peixun's update: code optimization
1324}

Referenced by Draw(), GetPart(), Init2DGeometry(), SetDetector(), SetPhysicalDefaultVis(), and SetVolumeDefaultVis().

◆ GetGapNb() [2/3]

int MucROOTGeo::GetGapNb ( int part)

Get number of gap on part;.

◆ GetGapNb() [3/3]

int MucROOTGeo::GetGapNb ( int part)

Get number of gap on part;.

◆ GetGapNum() [1/3]

int MucROOTGeo::GetGapNum ( int part)

Get number of gap on part;.

Definition at line 390 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

390 {
391 int gap = m_kGap[part];
392 return gap;
393}

Referenced by MucGeoGeneral::InitFromXML().

◆ GetGapNum() [2/3]

int MucROOTGeo::GetGapNum ( int part)

Get number of gap on part;.

◆ GetGapNum() [3/3]

int MucROOTGeo::GetGapNum ( int part)

Get number of gap on part;.

◆ GetPart() [1/3]

int MucROOTGeo::GetPart ( TGeoPhysicalNode * phyNode)

Get part no of a physcial node.

Definition at line 1515 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1515 {
1516 for ( int part = 0; part < GetPartNb(); part++ )
1517 {
1518 for ( int seg = 0; seg < GetSegNb( part ); seg++ )
1519 {
1520 for ( int gap = 0; gap < GetGapNb( part ); gap++ )
1521 {
1522 if ( phyNode == GetPhysicalGap( part, seg, gap ) ) { return part; }
1523 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
1524 {
1525 if ( phyNode == GetPhysicalStrip( part, seg, gap, strip ) ) { return part; }
1526 }
1527 }
1528 for ( int absorber = 0; absorber < GetAbsorberNb( part ); absorber++ )
1529 {
1530 for ( int panel = 0; panel < m_kPanelMax; panel++ )
1531 {
1532 if ( phyNode == GetPhysicalAbsorber( part, seg, absorber, panel ) ) { return part; }
1533 }
1534 }
1535 }
1536 }
1537
1538 return -1;
1539}
int GetAbsorberNb(int part)
Get number of absorber on part;.
TGeoPhysicalNode * GetPhysicalStrip(int part, int seg, int gap, int strip)
Get strip physical node;.
TGeoPhysicalNode * GetPhysicalGap(int part, int seg, int gap)
Get rpc gas chamber node;.
TGeoPhysicalNode * GetPhysicalAbsorber(int part, int seg, int gap, int panel)
Get rpc gas chamber node;.

Referenced by SetVisMucDetector(), and SetVisMucHits().

◆ GetPart() [2/3]

Int_t MucROOTGeo::GetPart ( TGeoPhysicalNode * phyNode)

Get part no of a physcial node.

◆ GetPart() [3/3]

Int_t MucROOTGeo::GetPart ( TGeoPhysicalNode * phyNode)

Get part no of a physcial node.

◆ GetPartNb() [1/3]

int MucROOTGeo::GetPartNb ( )

Get number of part;.

Definition at line 1314 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1314 {
1315 return m_kPart; // Long Peixun's update: code optimization
1316}

Referenced by Draw(), GetPart(), Init2DGeometry(), SetDetector(), SetPhysicalDefaultVis(), and SetVolumeDefaultVis().

◆ GetPartNb() [2/3]

int MucROOTGeo::GetPartNb ( )

Get number of part;.

◆ GetPartNb() [3/3]

int MucROOTGeo::GetPartNb ( )

Get number of part;.

◆ GetPartNum() [1/3]

int MucROOTGeo::GetPartNum ( )

Get number of part;.

Definition at line 380 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

380 {
381 int part = m_kPart;
382 return part;
383}

Referenced by MucGeoGeneral::InitFromXML().

◆ GetPartNum() [2/3]

int MucROOTGeo::GetPartNum ( )

Get number of part;.

◆ GetPartNum() [3/3]

int MucROOTGeo::GetPartNum ( )

Get number of part;.

◆ GetPhysicalAbsorber() [1/3]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalAbsorber ( int part,
int seg,
int gap,
int panel )

Get rpc gas chamber node;.

Get rpc bakelite node; Get absorber physical node;

Definition at line 1494 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1495 {
1496 return m_PhysicalAbsorber[part][seg][absorber][panel];
1497}

Referenced by GetPart(), and SetDetector().

◆ GetPhysicalAbsorber() [2/3]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalAbsorber ( int part,
int seg,
int gap,
int panel )

Get rpc gas chamber node;.

Get rpc bakelite node; Get absorber physical node;

◆ GetPhysicalAbsorber() [3/3]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalAbsorber ( int part,
int seg,
int gap,
int panel )

Get rpc gas chamber node;.

Get rpc bakelite node; Get absorber physical node;

◆ GetPhysicalAluminumBox() [1/3]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalAluminumBox ( int part,
int seg,
int gap )

Get box physical node;.

◆ GetPhysicalAluminumBox() [2/3]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalAluminumBox ( int part,
int seg,
int gap )

Get box physical node;.

◆ GetPhysicalAluminumBox() [3/3]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalAluminumBox ( int part,
int seg,
int gap )

Get box physical node;.

◆ GetPhysicalGap() [1/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalGap ( int part,
int seg,
int gap )

Get rpc gas chamber node;.

Get rpc bakelite node; Get gap physical node;

Definition at line 556 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

556 {
557 if ( m_PhysicalGap[part][seg][gap] != 0 ) { return m_PhysicalGap[part][seg][gap]; }
558 else
559 {
560 std::cout << "PhysicalNode: "
561 << "Part" << part << "Seg" << seg << "Gap" << gap << " not found" << std::endl;
562 return 0;
563 }
564}

Referenced by GetPart(), Init2DGeometry(), MucGeoGeneral::InitFromXML(), and SetDetector().

◆ GetPhysicalGap() [2/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalGap ( int part,
int seg,
int gap )

Get gap physical node;.

◆ GetPhysicalGap() [3/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalGap ( int part,
int seg,
int gap )

Get gap physical node;.

◆ GetPhysicalGap() [4/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalGap ( int part,
int seg,
int gap )

Get rpc gas chamber node;.

Get rpc bakelite node; Get gap physical node;

◆ GetPhysicalGap() [5/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalGap ( int part,
int seg,
int gap )

Get gap physical node;.

◆ GetPhysicalGap() [6/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalGap ( int part,
int seg,
int gap )

Get rpc gas chamber node;.

Get rpc bakelite node; Get gap physical node;

◆ GetPhysicalStrip() [1/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalStrip ( int part,
int seg,
int gap,
int strip )

Get strip physical node;.

Definition at line 578 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

578 {
579 if ( m_PhysicalStrip[part][seg][gap][strip] != 0 )
580 { return m_PhysicalStrip[part][seg][gap][strip]; }
581 else
582 {
583 std::cout << "PhysicalNode: "
584 << "Part" << part << "Seg" << seg << "Gap" << gap << "Strip" << strip
585 << " not found" << std::endl;
586 return 0;
587 }
588}

Referenced by GetPart(), Init2DGeometry(), MucGeoGeneral::InitFromXML(), SetHits(), and SetPhysicalDefaultVis().

◆ GetPhysicalStrip() [2/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalStrip ( int part,
int seg,
int gap,
int strip )

Get strip physical node;.

◆ GetPhysicalStrip() [3/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalStrip ( int part,
int seg,
int gap,
int strip )

Get strip physical node;.

◆ GetPhysicalStrip() [4/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalStrip ( int part,
int seg,
int gap,
int strip )

Get strip physical node;.

◆ GetPhysicalStrip() [5/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalStrip ( int part,
int seg,
int gap,
int strip )

Get strip physical node;.

◆ GetPhysicalStrip() [6/6]

TGeoPhysicalNode * MucROOTGeo::GetPhysicalStrip ( int part,
int seg,
int gap,
int strip )

Get strip physical node;.

◆ GetSegNb() [1/3]

int MucROOTGeo::GetSegNb ( int part)

Get number of segment on part;.

Definition at line 1318 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1318 {
1319 return m_kSeg[part]; // Long Peixun's update: code optimization
1320}

Referenced by Draw(), GetPart(), Init2DGeometry(), SetDetector(), SetPhysicalDefaultVis(), and SetVolumeDefaultVis().

◆ GetSegNb() [2/3]

int MucROOTGeo::GetSegNb ( int part)

Get number of segment on part;.

◆ GetSegNb() [3/3]

int MucROOTGeo::GetSegNb ( int part)

Get number of segment on part;.

◆ GetSegNum() [1/3]

int MucROOTGeo::GetSegNum ( int part)

Get number of segment on part;.

Definition at line 385 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

385 {
386 int seg = m_kSeg[part];
387 return seg;
388}

Referenced by MucGeoGeneral::InitFromXML().

◆ GetSegNum() [2/3]

int MucROOTGeo::GetSegNum ( int part)

Get number of segment on part;.

◆ GetSegNum() [3/3]

int MucROOTGeo::GetSegNum ( int part)

Get number of segment on part;.

◆ GetStrip() [1/6]

TGeoNode * MucROOTGeo::GetStrip ( int part,
int seg,
int gap,
int strip )

Get strip node;.

Definition at line 544 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

544 {
545 if ( m_NodeStrip[part][seg][gap][strip] != 0 ) { return m_NodeStrip[part][seg][gap][strip]; }
546 else
547 {
548 std::cout << "Node: "
549 << "Part" << part << "Seg"
550 << "0"
551 << "Gap" << gap << "Strip" << strip << " not found" << std::endl;
552 return 0;
553 }
554}

Referenced by SetAllVisible(), SetDefaultVis(), SetPhysicalNode(), and SetVolumeDefaultVis().

◆ GetStrip() [2/6]

TGeoNode * MucROOTGeo::GetStrip ( int part,
int seg,
int gap,
int strip )

Get strip node;.

◆ GetStrip() [3/6]

TGeoNode * MucROOTGeo::GetStrip ( int part,
int seg,
int gap,
int strip )

Get strip node;.

◆ GetStrip() [4/6]

TGeoNode * MucROOTGeo::GetStrip ( int part,
int seg,
int gap,
int strip )

Get strip node;.

◆ GetStrip() [5/6]

TGeoNode * MucROOTGeo::GetStrip ( int part,
int seg,
int gap,
int strip )

Get strip node;.

◆ GetStrip() [6/6]

TGeoNode * MucROOTGeo::GetStrip ( int part,
int seg,
int gap,
int strip )

Get strip node;.

◆ GetStripNb() [1/3]

int MucROOTGeo::GetStripNb ( int part,
int seg,
int gap )

Get number of strip on gap;.

Definition at line 1326 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1326 {
1327 return m_StripNum[part][seg][gap]; // Long Peixun's update: code optimization
1328}

Referenced by Draw(), Init2DGeometry(), SetPhysicalDefaultVis(), and SetVolumeDefaultVis().

◆ GetStripNb() [2/3]

int MucROOTGeo::GetStripNb ( int part,
int seg,
int gap )

Get number of strip on gap;.

◆ GetStripNb() [3/3]

int MucROOTGeo::GetStripNb ( int part,
int seg,
int gap )

Get number of strip on gap;.

◆ GetStripNum() [1/3]

int MucROOTGeo::GetStripNum ( int part,
int seg,
int gap )

Get number of strip on gap;.

Definition at line 395 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

395 {
396 int strip = m_StripNum[part][seg][gap];
397 return strip;
398}

Referenced by MucGeoGeneral::InitFromXML().

◆ GetStripNum() [2/3]

int MucROOTGeo::GetStripNum ( int part,
int seg,
int gap )

Get number of strip on gap;.

◆ GetStripNum() [3/3]

int MucROOTGeo::GetStripNum ( int part,
int seg,
int gap )

Get number of strip on gap;.

◆ GetStripPlane() [1/6]

TGeoNode * MucROOTGeo::GetStripPlane ( int part,
int seg,
int gap )

Get box node;.

Get strip plane node;

Definition at line 533 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

533 {
534 if ( m_NodeStripPlane[part][seg][gap] != 0 ) { return m_NodeStripPlane[part][seg][gap]; }
535 else
536 {
537 std::cout << "Node: "
538 << "Part" << part << "Seg" << seg << "Gap" << gap << "StripPlane"
539 << " not found" << std::endl;
540 return 0;
541 }
542}

Referenced by SetPhysicalNode().

◆ GetStripPlane() [2/6]

TGeoNode * MucROOTGeo::GetStripPlane ( int part,
int seg,
int gap )

Get strip plane node;.

◆ GetStripPlane() [3/6]

TGeoNode * MucROOTGeo::GetStripPlane ( int part,
int seg,
int gap )

Get strip plane node;.

◆ GetStripPlane() [4/6]

TGeoNode * MucROOTGeo::GetStripPlane ( int part,
int seg,
int gap )

Get box node;.

Get strip plane node;

◆ GetStripPlane() [5/6]

TGeoNode * MucROOTGeo::GetStripPlane ( int part,
int seg,
int gap )

Get strip plane node;.

◆ GetStripPlane() [6/6]

TGeoNode * MucROOTGeo::GetStripPlane ( int part,
int seg,
int gap )

Get box node;.

Get strip plane node;

◆ GetVolumeAbsorber() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorber ( int part,
int seg,
int absorber )

Get absorber volume;.

Definition at line 400 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

400 {
401 std::stringstream osname;
402 osname << "l"
403 << "Muc"
404 << "P" << part << "S" << seg << "Ab" << absorber;
405
406 return GetLogicalVolume( osname.str() );
407}
TGeoVolume * GetLogicalVolume(const std::string &vn)
Get a logical volume by name;.

Referenced by GetAbsorberThickness(), SetAllVisible(), SetDefaultVis(), SetHalfVisible(), SetNoEndVisible(), SetQuarterVisible(), and SetVolumeDefaultVis().

◆ GetVolumeAbsorber() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorber ( int part,
int seg,
int absorber )

Get absorber volume;.

◆ GetVolumeAbsorber() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorber ( int part,
int seg,
int absorber )

Get absorber volume;.

◆ GetVolumeAbsorber() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorber ( int part,
int seg,
int absorber )

Get absorber volume;.

◆ GetVolumeAbsorber() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorber ( int part,
int seg,
int absorber )

Get absorber volume;.

◆ GetVolumeAbsorber() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorber ( int part,
int seg,
int absorber )

Get absorber volume;.

◆ GetVolumeAbsorberPanel() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel volume;.

Definition at line 417 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

417 {
418 std::stringstream osname;
419 osname << "l"
420 << "Muc"
421 << "P" << part << "S" << seg << "Ab" << absorber << "Pn" << panel;
422
423 return GetLogicalVolume( osname.str() );
424}

Referenced by SetAllVisible(), SetDefaultVis(), SetHalfVisible(), and SetQuarterVisible().

◆ GetVolumeAbsorberPanel() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel volume;.

◆ GetVolumeAbsorberPanel() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel volume;.

◆ GetVolumeAbsorberPanel() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel volume;.

◆ GetVolumeAbsorberPanel() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel volume;.

◆ GetVolumeAbsorberPanel() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberPanel ( int part,
int seg,
int absorber,
int panel )

Get absorber panel volume;.

◆ GetVolumeAbsorberSmallBlock() [1/3]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberSmallBlock ( int gap,
int sb )

Get absorber small block;.

Definition at line 1343 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1343 {
1344 std::stringstream osname;
1345 osname << "VolumeSmallBlock"
1346 << "Gap" << gap << "SB" << sb;
1347
1348 return GetLogicalVolume( osname.str() );
1349}

Referenced by SetVolumeDefaultVis().

◆ GetVolumeAbsorberSmallBlock() [2/3]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberSmallBlock ( int gap,
int sb )

Get absorber small block;.

◆ GetVolumeAbsorberSmallBlock() [3/3]

TGeoVolume * MucROOTGeo::GetVolumeAbsorberSmallBlock ( int gap,
int sb )

Get absorber small block;.

◆ GetVolumeAluminumBox() [1/3]

TGeoVolume * MucROOTGeo::GetVolumeAluminumBox ( int part,
int seg,
int gap )

Get box volume;.

Definition at line 435 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

435 {
436 std::stringstream osname;
437 osname << "l"
438 << "Muc"
439 << "P" << part << "S" << seg << "G" << gap << "Al";
440
441 return GetLogicalVolume( osname.str() );
442}

◆ GetVolumeAluminumBox() [2/3]

TGeoVolume * MucROOTGeo::GetVolumeAluminumBox ( int part,
int seg,
int gap )

Get box volume;.

◆ GetVolumeAluminumBox() [3/3]

TGeoVolume * MucROOTGeo::GetVolumeAluminumBox ( int part,
int seg,
int gap )

Get box volume;.

◆ GetVolumeBakelite() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeBakelite ( int part,
int seg,
int gap,
int panel,
int bakelite )

Get rpc bakelite volume;.

Definition at line 499 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

500 {
501 std::stringstream osname;
502 osname << "l"
503 << "Muc"
504 << "P" << part << "S"
505 << "0"
506 << "G" << gap << "R" << panel << "B" << bakelite;
507
508 return GetLogicalVolume( osname.str() );
509}

Referenced by SetAllVisible(), SetDefaultVis(), SetQuarterVisible(), and SetVolumeDefaultVis().

◆ GetVolumeBakelite() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeBakelite ( int part,
int seg,
int gap,
int panel,
int bakelite )

Get rpc bakelite volume;.

◆ GetVolumeBakelite() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeBakelite ( int part,
int seg,
int gap,
int panel,
int bakelite )

Get rpc bakelite volume;.

◆ GetVolumeBakelite() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeBakelite ( int part,
int seg,
int gap,
int RpcUpDown,
int panel,
int bakelite )

Get rpc bakelite volume;.

Definition at line 1454 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1455 {
1456 std::stringstream osname;
1457 int segment = 0;
1458 if ( part == 1 && seg == 2 ) segment = 2;
1459 osname << "l"
1460 << "Muc"
1461 << "P" << part << "S" << segment << "G" << gap << "R" << RpcUpDown << "Pn" << panel
1462 << "B" << bakelite;
1463
1464 return GetLogicalVolume( osname.str() );
1465}

◆ GetVolumeBakelite() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeBakelite ( int part,
int seg,
int gap,
int RpcUpDown,
int panel,
int bakelite )

Get rpc bakelite volume;.

◆ GetVolumeBakelite() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeBakelite ( int part,
int seg,
int gap,
int RpcUpDown,
int panel,
int bakelite )

Get rpc bakelite volume;.

◆ GetVolumeBox() [1/3]

TGeoVolume * MucROOTGeo::GetVolumeBox ( int part,
int seg,
int gap )

Get box volume;.

Definition at line 1369 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1369 {
1370 std::stringstream osname;
1371 osname << "l"
1372 << "Muc"
1373 << "P" << part << "S" << seg << "G" << gap << "Al";
1374
1375 return GetLogicalVolume( osname.str() );
1376}

Referenced by SetVolumeDefaultVis().

◆ GetVolumeBox() [2/3]

TGeoVolume * MucROOTGeo::GetVolumeBox ( int part,
int seg,
int gap )

Get box volume;.

◆ GetVolumeBox() [3/3]

TGeoVolume * MucROOTGeo::GetVolumeBox ( int part,
int seg,
int gap )

Get box volume;.

◆ GetVolumeBoxSurface() [1/3]

TGeoVolume * MucROOTGeo::GetVolumeBoxSurface ( int part,
int seg,
int gap,
int up )

Get box surface volume;.

Definition at line 1378 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1378 {
1379 std::stringstream osname;
1380 int segment = 0;
1381 if ( part == 1 && seg == 2 ) segment = 2;
1382 osname << "l"
1383 << "Muc"
1384 << "P" << part << "S" << segment << "G" << gap << "AlSf" << up;
1385
1386 return GetLogicalVolume( osname.str() );
1387}

Referenced by SetVolumeDefaultVis().

◆ GetVolumeBoxSurface() [2/3]

TGeoVolume * MucROOTGeo::GetVolumeBoxSurface ( int part,
int seg,
int gap,
int up )

Get box surface volume;.

◆ GetVolumeBoxSurface() [3/3]

TGeoVolume * MucROOTGeo::GetVolumeBoxSurface ( int part,
int seg,
int gap,
int up )

Get box surface volume;.

◆ GetVolumeGap() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeGap ( int part,
int seg,
int gap )

Get gap volume;.

Definition at line 426 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

426 {
427 std::stringstream osname;
428 osname << "l"
429 << "Muc"
430 << "P" << part << "S" << seg << "G" << gap;
431
432 return GetLogicalVolume( osname.str() );
433}

Referenced by SetAllVisible(), SetDefaultVis(), SetHalfVisible(), SetNoEndVisible(), SetQuarterVisible(), and SetVolumeDefaultVis().

◆ GetVolumeGap() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeGap ( int part,
int seg,
int gap )

Get gap volume;.

◆ GetVolumeGap() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeGap ( int part,
int seg,
int gap )

Get gap volume;.

◆ GetVolumeGap() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeGap ( int part,
int seg,
int gap )

Get gap volume;.

◆ GetVolumeGap() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeGap ( int part,
int seg,
int gap )

Get gap volume;.

◆ GetVolumeGap() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeGap ( int part,
int seg,
int gap )

Get gap volume;.

◆ GetVolumeGasBorder() [1/3]

TGeoVolume * MucROOTGeo::GetVolumeGasBorder ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas border volume;.

Definition at line 1441 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1442 {
1443 std::stringstream osname;
1444 int segment = 0;
1445 if ( part == 1 && seg == 2 ) segment = 2;
1446 osname << "l"
1447 << "Muc"
1448 << "P" << part % 2 << "S" << segment << "G" << gap << "R" << rpcUpDown << "Pn"
1449 << panel << "GB";
1450
1451 return GetLogicalVolume( osname.str() );
1452}

Referenced by SetVolumeDefaultVis().

◆ GetVolumeGasBorder() [2/3]

TGeoVolume * MucROOTGeo::GetVolumeGasBorder ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas border volume;.

◆ GetVolumeGasBorder() [3/3]

TGeoVolume * MucROOTGeo::GetVolumeGasBorder ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas border volume;.

◆ GetVolumeGasChamber() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeGasChamber ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas chamber volume;.

Definition at line 487 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

488 {
489 std::stringstream osname;
490 osname << "l"
491 << "Muc"
492 << "P" << part << "S"
493 << "0"
494 << "G" << gap << "R" << gasChamber << "Pn" << panel << "C";
495
496 return GetLogicalVolume( osname.str() );
497}

Referenced by SetAllVisible(), SetDefaultVis(), SetQuarterVisible(), and SetVolumeDefaultVis().

◆ GetVolumeGasChamber() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeGasChamber ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas chamber volume;.

◆ GetVolumeGasChamber() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeGasChamber ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas chamber volume;.

◆ GetVolumeGasChamber() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeGasChamber ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas chamber volume;.

◆ GetVolumeGasChamber() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeGasChamber ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas chamber volume;.

◆ GetVolumeGasChamber() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeGasChamber ( int part,
int seg,
int gap,
int panel,
int gasChamber )

Get rpc gas chamber volume;.

◆ GetVolumeMuc() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeMuc ( )
inline

Get Muc volume;.

Definition at line 66 of file DetectorDescription/ROOTGeo/include/ROOTGeo/MucROOTGeo.h.

66{ return m_Muc; }

Referenced by Init2DGeometry(), and MucGeoGeneral::InitFromXML().

◆ GetVolumeMuc() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeMuc ( )
inline

Get Muc volume;.

Definition at line 102 of file EventDisplay/BesVisLib/include/BesVisLib/MucROOTGeo.h.

102{ return m_Muc; }

◆ GetVolumeMuc() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeMuc ( )
inline

Get Muc volume;.

Definition at line 102 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesVisLib/MucROOTGeo.h.

102{ return m_Muc; }

◆ GetVolumeMuc() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeMuc ( )
inline

Get Muc volume;.

Definition at line 66 of file InstallArea/x86_64-el9-gcc13-dbg/include/ROOTGeo/MucROOTGeo.h.

66{ return m_Muc; }

◆ GetVolumeMuc() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeMuc ( )
inline

Get Muc volume;.

Definition at line 102 of file InstallArea/x86_64-el9-gcc13-opt/include/BesVisLib/MucROOTGeo.h.

102{ return m_Muc; }

◆ GetVolumeMuc() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeMuc ( )
inline

Get Muc volume;.

Definition at line 66 of file InstallArea/x86_64-el9-gcc13-opt/include/ROOTGeo/MucROOTGeo.h.

66{ return m_Muc; }

◆ GetVolumeStrip() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeStrip ( int part,
int seg,
int gap,
int strip )

Get strip volume;.

Definition at line 455 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

455 {
456 std::stringstream osname;
457 if ( strip < 10 )
458 {
459 osname << "l"
460 << "Muc"
461 << "P" << part << "S"
462 << "0"
463 << "G" << gap << "s"
464 << "00" << strip;
465 }
466 else if ( strip < 100 )
467 {
468 osname << "l"
469 << "Muc"
470 << "P" << part << "S"
471 << "0"
472 << "G" << gap << "s"
473 << "0" << strip;
474 }
475 else
476 {
477 osname << "l"
478 << "Muc"
479 << "P" << part << "S"
480 << "0"
481 << "G" << gap << "s" << strip;
482 }
483
484 return GetLogicalVolume( osname.str() );
485}

Referenced by SetAllVisible(), SetDefaultVis(), SetHalfVisible(), SetQuarterVisible(), and SetVolumeDefaultVis().

◆ GetVolumeStrip() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeStrip ( int part,
int seg,
int gap,
int strip )

Get strip volume;.

◆ GetVolumeStrip() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeStrip ( int part,
int seg,
int gap,
int strip )

Get strip volume;.

◆ GetVolumeStrip() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeStrip ( int part,
int seg,
int gap,
int strip )

Get strip volume;.

◆ GetVolumeStrip() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeStrip ( int part,
int seg,
int gap,
int strip )

Get strip volume;.

◆ GetVolumeStrip() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeStrip ( int part,
int seg,
int gap,
int strip )

Get strip volume;.

◆ GetVolumeStripPlane() [1/6]

TGeoVolume * MucROOTGeo::GetVolumeStripPlane ( int part,
int seg,
int gap )

Get strip plane volume;.

Definition at line 444 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

444 {
445 int segment = 0;
446 if ( part == 1 && seg == 2 ) segment = 2;
447 std::stringstream osname;
448 osname << "l"
449 << "Muc"
450 << "P" << part << "S" << segment << "G" << gap << "SP";
451
452 return GetLogicalVolume( osname.str() );
453}

Referenced by SetDefaultVis(), SetNode(), and SetVolumeDefaultVis().

◆ GetVolumeStripPlane() [2/6]

TGeoVolume * MucROOTGeo::GetVolumeStripPlane ( int part,
int seg,
int gap )

Get strip plane volume;.

◆ GetVolumeStripPlane() [3/6]

TGeoVolume * MucROOTGeo::GetVolumeStripPlane ( int part,
int seg,
int gap )

Get strip plane volume;.

◆ GetVolumeStripPlane() [4/6]

TGeoVolume * MucROOTGeo::GetVolumeStripPlane ( int part,
int seg,
int gap )

Get strip plane volume;.

◆ GetVolumeStripPlane() [5/6]

TGeoVolume * MucROOTGeo::GetVolumeStripPlane ( int part,
int seg,
int gap )

Get strip plane volume;.

◆ GetVolumeStripPlane() [6/6]

TGeoVolume * MucROOTGeo::GetVolumeStripPlane ( int part,
int seg,
int gap )

Get strip plane volume;.

◆ Init2DGeometry() [1/3]

void MucROOTGeo::Init2DGeometry ( )

Initialize 2D Geometry.

Definition at line 115 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

115 {
116 if ( m_ROOTGeoInit != 1 && m_ROOTGeoInit != 2 )
117 {
118 cout << "MucROOTGeo::Init2DGeometry, ROOT Geometry not Initialized yet!" << endl;
119 return;
120 }
121 m_2DGeoInit = 1;
122
123 Int_t mucColor = 9002;
124 Int_t mucLineColor = 15; // 15;
125 Int_t mucXYStyle = 1001; // 3001;
126 Int_t mucZRStyle = 1001; // 3007;
127
128 Int_t mucGapColor = 10; // 1002
129 Int_t mucGapStyle = 1001; // 1001;
130 Int_t mucGapXYECStyle = 4000; // 1001;
131 Int_t mucGapLineColor = 15;
132
133 Double_t x = 0.0, y = 0.0, z = 0.0;
134 Double_t r = 0.0, phi = 0.0;
135 Double_t local[3] = { 0.0, 0.0, 0.0 };
136 Double_t master[3] = { 0.0, 0.0, 0.0 };
137 // Int_t nPoints = 4;
138 Double_t P[300] = { 0.0 };
139 // Double_t center[3] = {0.0, 0.0, 0.0};
140 TString name;
141
142 Int_t part = 0, seg = 0, gap = 0, strip = 0;
143
144 //----------XY-----------
145 // Muc
146 TGeoCompositeShape* mucShape = (TGeoCompositeShape*)GetVolumeMuc()->GetShape();
147 // if (mucShape) ;
148
149 // Update by Huang Shuhui: Muc's geometry has changed.
150 TGeoBoolNode* mucBoolNode = mucShape->GetBoolNode();
151 TGeoCompositeShape* mucWithHoleShape = (TGeoCompositeShape*)mucBoolNode->GetLeftShape();
152 TGeoBoolNode* mucWithHoleBoolNode = mucWithHoleShape->GetBoolNode();
153
154 TGeoBBox* mucOuterShape = (TGeoBBox*)mucWithHoleBoolNode->GetLeftShape();
155 TGeoTube* mucInnerShape = (TGeoTube*)mucWithHoleBoolNode->GetRightShape();
156
157 // if (mucOuterShape) ;
158 // if (mucInnerShape) cout << "mucInnerShape name : " << mucInnerShape->GetName() << endl;
159 // else cout << "MucROOTGeo:Init2DGeoometry, mucInnerShape not found" << endl;
160
161 Double_t mucOuterR = mucOuterShape->GetDX();
162 Double_t mucInnerR = mucInnerShape->GetRmax() + 40.0; // 40.0 is the height of first gap
163
164 // Barrel
165 // barrel segment XY view
166
167 part = 1;
168 Int_t xySegPointSeq[4] = { 0, 1, 1, 0 }; // point 0,1,2,3 -> 0,1,1,0
169 for ( seg = 0; seg < GetSegNb( part ); seg++ )
170 {
171 name = TString( "MucBarrelSeg" );
172 name += seg;
173 for ( Int_t iPoint = 0; iPoint < 4; iPoint++ )
174 {
175 if ( iPoint < 2 ) r = mucInnerR / TMath::Cos( TMath::Pi() / 8.0 );
176 else r = mucOuterR / TMath::Cos( TMath::Pi() / 8.0 );
177 phi = TMath::Pi() / 8.0 * ( 2 * seg - 1 + 2 * xySegPointSeq[iPoint] );
178 x = r * TMath::Cos( phi );
179 y = r * TMath::Sin( phi );
180 z = 0.0;
181 P[3 * iPoint] = x;
182 P[3 * iPoint + 1] = y;
183 P[3 * iPoint + 2] = z;
184 }
185 m_MucXY[part][seg] = new BesPolygon2D( name, name, 4, &P[0] );
186 m_MucXY[part][seg]->SetFillColor( mucColor );
187 m_MucXY[part][seg]->SetFillStyle( mucXYStyle );
188 m_MucXY[part][seg]->SetLineColor( mucLineColor );
189 }
190
191 // barrel segment ZR view
192
193 part = 1;
194 for ( seg = 0; seg < GetSegNb( part ); seg++ )
195 {
196 for ( Int_t iPoint = 0; iPoint < 4; iPoint++ )
197 {
198 if ( iPoint == 0 || iPoint == 3 ) r = mucInnerR;
199 else r = mucOuterR;
200 phi = TMath::Pi() / 4.0 * seg;
201
202 x = r * TMath::Cos( phi );
203 y = r * TMath::Sin( phi );
204
205 TGeoVolume* volAbsorber = 0;
206 volAbsorber = GetAbsorber( part, seg, 0 )->GetVolume();
207 TGeoBBox* absorberShape = (TGeoBBox*)volAbsorber->GetShape();
208 if ( seg == 2 )
209 cout << "in MucROOTGeo::Init2DGeometry() x,y,z = " << absorberShape->GetDX() << " "
210 << absorberShape->GetDY() << " " << absorberShape->GetDZ() << endl;
211 Double_t dy = absorberShape->GetDY();
212 z = dy;
213 if ( iPoint < 2 ) z = -dy;
214
215 P[3 * iPoint] = x;
216 P[3 * iPoint + 1] = y;
217 P[3 * iPoint + 2] = z;
218 }
219
220 if ( seg == 2 || seg == 6 )
221 {
222 if ( seg == 2 ) name = TString( "MucBarrelUpSeg" );
223 if ( seg == 6 ) name = TString( "MucBarrelDownSeg" );
224
225 m_MucZR[part][seg] = new BesPolygon2D( name, name, 4, &P[0] );
226 m_MucZR[part][seg]->SetFillColor( mucColor );
227 m_MucZR[part][seg]->SetFillStyle( mucZRStyle );
228 m_MucZR[part][seg]->SetLineColor( mucLineColor );
229 }
230 }
231
232 // barrel gap
233
234 part = 1;
235 for ( seg = 0; seg < GetSegNb( part ); seg++ )
236 {
237 for ( gap = 0; gap < GetGapNb( part ); gap++ )
238 {
239
240 TGeoPhysicalNode* phyNode = 0;
241 phyNode = GetPhysicalGap( part, seg, gap );
242
243 TGeoBBox* gapShape = (TGeoBBox*)phyNode->GetShape();
244 Double_t dx = gapShape->GetDX();
245 Double_t dy = gapShape->GetDY();
246 Double_t dz = gapShape->GetDZ();
247
248 // barrel gap XY view
249 for ( Int_t i = 0; i < 4; i++ )
250 {
251 local[1] = 0.0; // y
252 switch ( i )
253 {
254 case 0:
255 local[0] = -dx;
256 local[2] = -dz;
257 break;
258 case 1:
259 local[0] = dx;
260 local[2] = -dz;
261 break;
262 case 2:
263 local[0] = dx;
264 local[2] = dz;
265 break;
266 case 3:
267 local[0] = -dx;
268 local[2] = dz;
269 break;
270 }
271 phyNode->GetMatrix( -1 * phyNode->GetLevel() )
272 ->LocalToMaster( local, &master[0] ); // transform to top
273 for ( Int_t j = 0; j < 3; j++ ) P[3 * i + j] = master[j];
274 }
275
276 name = TString( "MucBarrelSeg" );
277 name += seg;
278 name += TString( "Gap" );
279 name += gap;
280
281 m_MucXYGap[part][seg][gap] = new BesPolygon2D( name, name, 4, &P[0] );
282 m_MucXYGap[part][seg][gap]->SetFillColor( mucGapColor );
283 m_MucXYGap[part][seg][gap]->SetFillStyle( mucGapStyle );
284 m_MucXYGap[part][seg][gap]->SetLineColor( mucGapLineColor );
285
286 // barrel gap ZR view
287 for ( Int_t i = 0; i < 4; i++ )
288 {
289 local[0] = 0.0; // x
290 switch ( i )
291 {
292 case 0:
293 local[1] = -dy;
294 local[2] = -dz;
295 break;
296 case 1:
297 local[1] = -dy;
298 local[2] = dz;
299 break;
300 case 2:
301 local[1] = dy;
302 local[2] = dz;
303 break;
304 case 3:
305 local[1] = dy;
306 local[2] = -dz;
307 break;
308 }
309 phyNode->GetMatrix( -1 * phyNode->GetLevel() )
310 ->LocalToMaster( local, &master[0] ); // transform to top
311 for ( Int_t j = 0; j < 3; j++ ) P[3 * i + j] = master[j];
312 }
313
314 if ( seg == 2 || seg == 6 )
315 {
316 if ( seg == 2 )
317 {
318 name = TString( "MucBarrelUpSegGap" );
319 name += gap;
320 }
321 else if ( seg == 6 )
322 {
323 name = TString( "MucBarrelDownSegGap" );
324 name += gap;
325 }
326
327 m_MucZRGap[part][seg][gap] = new BesPolygon2D( name, name, 4, &P[0] );
328 m_MucZRGap[part][seg][gap]->SetFillColor( mucGapColor );
329 m_MucZRGap[part][seg][gap]->SetFillStyle( mucGapStyle );
330 m_MucZRGap[part][seg][gap]->SetLineColor( mucGapLineColor );
331 }
332 }
333 }
334 // End cap
335 for ( part = 0; part < GetPartNb(); part++ )
336 {
337 if ( part == 1 ) continue;
338 for ( seg = 0; seg < GetSegNb( part ); seg++ )
339 {
340 Double_t segP[100];
341 Int_t iSegPoint = 0;
342
343 for ( gap = 0; gap < GetGapNb( part ); gap++ )
344 {
345 TGeoPhysicalNode* phyNode = 0;
346 phyNode = GetPhysicalGap( part, seg, gap );
347
348 Int_t ixyPoint = 0, izrPoint = 0;
349 Int_t nPanel = 3; // 4
350 // TGeoCompositeShape *addPanelShape[nPanel];
351 // TGeoTrap *panelShape[nPanel];
352 TGeoCompositeShape* addPanelShape[4];
353 TGeoTrap* panelShape[4];
354
355 for ( Int_t panel = nPanel - 1; panel >= 0; panel-- )
356 {
357 if ( panel == nPanel - 1 )
358 addPanelShape[panel] =
359 (TGeoCompositeShape*)GetGap( part, seg, gap )->GetVolume()->GetShape();
360 else
361 addPanelShape[panel] =
362 (TGeoCompositeShape*)addPanelShape[panel + 1]->GetBoolNode()->GetLeftShape();
363
364 panelShape[panel] = (TGeoTrap*)addPanelShape[panel]->GetBoolNode()->GetRightShape();
365
366 Double_t *localArb8Point, masterArb8Point[3 * 8];
367 localArb8Point = panelShape[panel]->GetVertices();
368 for ( Int_t i = 0; i < 8; i++ )
369 {
370 local[0] = localArb8Point[2 * i];
371 local[1] = localArb8Point[2 * i + 1];
372 if ( i < 4 ) local[2] = panelShape[panel]->GetDz() * ( -1.0 );
373 else local[2] = panelShape[panel]->GetDz();
374
375 addPanelShape[panel]->GetBoolNode()->GetRightMatrix()->LocalToMaster(
376 local, &master[0] ); // transform to gap coordinate
377
378 for ( Int_t j = 0; j < 3; j++ ) local[j] = master[j];
379 phyNode->GetMatrix( -1 * phyNode->GetLevel() )
380 ->LocalToMaster( local, &master[0] ); // transform to top
381 for ( Int_t j = 0; j < 3; j++ ) { masterArb8Point[3 * i + j] = master[j]; }
382 }
383
384 // xy, add point on panel 3 and panel 0 //panel 3 -> panel 2(new geom)
385 if ( panel == 2 )
386 {
387 Int_t xyPanelPointSeq[4] = { 0, 3, 7, 4 };
388 for ( Int_t i = 0; i < 4; i++ )
389 {
390 for ( Int_t j = 0; j < 3; j++ )
391 { P[3 * ixyPoint + j] = masterArb8Point[3 * xyPanelPointSeq[i] + j]; }
392 ixyPoint++;
393 }
394 }
395 if ( panel == 0 )
396 {
397 Int_t xyPanelPointSeq[4] = { 7, 4, 0, 3 };
398 for ( Int_t i = 0; i < 4; i++ )
399 {
400 for ( Int_t j = 0; j < 3; j++ )
401 { P[3 * ixyPoint + j] = masterArb8Point[3 * xyPanelPointSeq[i] + j]; }
402 ixyPoint++;
403 }
404 }
405
406 // zr, add point on panel 3 and panel 0, use P from P[100] //panel 3 -> panel
407 // 2(new geom)
408 if ( panel == 2 )
409 {
410 Int_t zrPanelPointSeq[4] = { 4, 7, 6, 5 };
411 for ( Int_t i = 0; i < 4; i++ )
412 {
413 for ( Int_t j = 0; j < 3; j++ )
414 { P[100 + 3 * izrPoint + j] = masterArb8Point[3 * zrPanelPointSeq[i] + j]; }
415 izrPoint++;
416 }
417 }
418 if ( panel == 0 )
419 {
420 Int_t zrPanelPointSeq[4] = { 6, 5, 4, 7 };
421 for ( Int_t i = 0; i < 4; i++ )
422 {
423 for ( Int_t j = 0; j < 3; j++ )
424 { P[100 + 3 * izrPoint + j] = masterArb8Point[3 * zrPanelPointSeq[i] + j]; }
425 izrPoint++;
426 }
427 }
428 }
429
430 if ( part == 0 ) name = TString( "MucEastEc" );
431 else if ( part == 2 ) name = TString( "MucWestEc" );
432 name += TString( "Seg" );
433 name += seg;
434 name += TString( "Gap" );
435 name += gap;
436
437 // cout << name << endl;
438 m_MucXYGap[part][seg][gap] =
439 new BesPolygon2D( name, name, ixyPoint, &P[0] ); // ixyPoint = 8
440 m_MucXYGap[part][seg][gap]->SetFillColor( mucGapColor );
441 m_MucXYGap[part][seg][gap]->SetFillStyle( mucGapXYECStyle );
442 m_MucXYGap[part][seg][gap]->SetLineColor( mucGapLineColor );
443
444 m_MucZRGap[part][seg][gap] =
445 new BesPolygon2D( name, name, izrPoint, &P[100] ); // izrPoint = 8
446 m_MucZRGap[part][seg][gap]->SetFillColor( mucGapColor );
447 m_MucZRGap[part][seg][gap]->SetFillStyle( mucGapStyle );
448 m_MucZRGap[part][seg][gap]->SetLineColor( mucGapLineColor );
449
450 // end cap segment ZR view
451
452 if ( gap == 0 )
453 {
454 Double_t zrFirstAbsorberHeight =
455 ( (TGeoBBox*)GetAbsorber( part, seg, 0 )->GetVolume()->GetShape() )->GetDZ() *
456 2.0;
457 for ( Int_t i = 0; i < 4; i++ )
458 {
459 for ( Int_t j = 0; j < 3; j++ )
460 {
461 if ( ( part == 0 && ( seg == 0 || seg == 2 ) ) ||
462 ( part == 2 && ( seg == 1 || seg == 3 ) ) )
463 {
464 Int_t zrSegPointSeq[4] = { 6, 7, 0, 1 };
465 segP[3 * iSegPoint + j] = P[100 + 3 * zrSegPointSeq[i] + j];
466 }
467 else
468 {
469 Int_t zrSegPointSeq[4] = { 5, 4, 3, 2 };
470 segP[3 * iSegPoint + j] = P[100 + 3 * zrSegPointSeq[i] + j];
471 }
472
473 if ( j == 2 )
474 {
475 if ( part == 0 ) segP[3 * iSegPoint + j] -= zrFirstAbsorberHeight;
476 else if ( part == 2 ) segP[3 * iSegPoint + j] += zrFirstAbsorberHeight;
477 }
478 }
479 iSegPoint++;
480 }
481 }
482 else if ( gap == 7 )
483 {
484 Double_t zrLastAbsorberHeight =
485 ( (TGeoBBox*)GetAbsorber( part, seg, 8 )->GetVolume()->GetShape() )->GetDZ() *
486 2.0;
487 for ( Int_t i = 0; i < 4; i++ )
488 {
489 for ( Int_t j = 0; j < 3; j++ )
490 {
491 if ( ( part == 0 && ( seg == 0 || seg == 2 ) ) ||
492 ( part == 2 && ( seg == 1 || seg == 3 ) ) )
493 {
494 Int_t zrSegPointSeq[4] = { 2, 3, 4, 5 };
495 segP[3 * iSegPoint + j] = P[100 + 3 * zrSegPointSeq[i] + j];
496 }
497 else
498 {
499 Int_t zrSegPointSeq[4] = { 1, 0, 7, 6 };
500 segP[3 * iSegPoint + j] = P[100 + 3 * zrSegPointSeq[i] + j];
501 }
502
503 if ( j == 2 )
504 {
505 if ( part == 0 ) segP[3 * iSegPoint + j] += zrLastAbsorberHeight;
506 else if ( part == 2 ) segP[3 * iSegPoint + j] -= zrLastAbsorberHeight;
507 }
508 }
509 iSegPoint++;
510 }
511 }
512 }
513 if ( part == 0 ) name = TString( "MucEastEc" );
514 else if ( part == 2 ) name = TString( "MucWestEc" );
515 name += TString( "Seg" );
516 name += seg;
517 m_MucZR[part][seg] = new BesPolygon2D( name, name, iSegPoint, &segP[0] ); // izrPoint = 8
518 m_MucZR[part][seg]->SetFillColor( mucColor );
519 m_MucZR[part][seg]->SetFillStyle( mucZRStyle );
520 m_MucZR[part][seg]->SetLineColor( mucLineColor );
521 }
522 }
523
524 for ( part = 0; part < GetPartNb(); part++ )
525 {
526 for ( seg = 0; seg < GetSegNb( part ); seg++ )
527 {
528 for ( gap = 0; gap < GetGapNb( part ); gap++ )
529 {
530 for ( strip = 0; strip < GetStripNb( part, seg, gap ); strip++ )
531 {
532 TGeoPhysicalNode* phyNode = 0;
533 phyNode = GetPhysicalStrip( part, seg, gap, strip );
534 TGeoBBox* stripShape = (TGeoBBox*)phyNode->GetShape();
535 Double_t dx = stripShape->GetDX();
536 Double_t dy = stripShape->GetDY();
537 Double_t dz = stripShape->GetDZ();
538 dz *= m_kStripZMuliple;
539
540 for ( Int_t i = 0; i < 8; i++ )
541 {
542 switch ( i )
543 {
544 case 0:
545 local[0] = -dx;
546 local[1] = -dy;
547 local[2] = -dz;
548 break;
549 case 1:
550 local[0] = dx;
551 local[1] = -dy;
552 local[2] = -dz;
553 break;
554 case 2:
555 local[0] = dx;
556 local[1] = dy;
557 local[2] = -dz;
558 break;
559 case 3:
560 local[0] = -dx;
561 local[1] = dy;
562 local[2] = -dz;
563 break;
564 case 4:
565 local[0] = -dx;
566 local[1] = -dy;
567 local[2] = dz;
568 break;
569 case 5:
570 local[0] = dx;
571 local[1] = -dy;
572 local[2] = dz;
573 break;
574 case 6:
575 local[0] = dx;
576 local[1] = dy;
577 local[2] = dz;
578 break;
579 case 7:
580 local[0] = -dx;
581 local[1] = dy;
582 local[2] = dz;
583 break;
584 }
585
586 phyNode->GetMatrix( -1 * phyNode->GetLevel() )
587 ->LocalToMaster( local, &master[0] ); // transform to top
588 for ( Int_t j = 0; j < 3; j++ ) P[3 * i + j] = master[j];
589 }
590
591 name = TString( "Muc Part" );
592 name += part;
593 name += TString( " Seg" );
594 name += seg;
595 name += TString( " Gap" );
596 name += gap;
597 name += TString( " Strip" );
598 name += strip;
599
600 m_Muc2DStrip[part][seg][gap][strip] =
601 new Muc2DStrip( name, name, 8, &P[0], part, seg, gap, strip );
602 }
603 }
604 }
605 }
606}
double P(RecMdcKalTrack *trk)
Double_t x[10]
TGeoNode * GetAbsorber(int part, int seg, int absorber)
Get absorber node;.
TGeoNode * GetGap(int part, int seg, int gap)
Get absorber node;.

◆ Init2DGeometry() [2/3]

void MucROOTGeo::Init2DGeometry ( )

Initialize 2D Geometry.

◆ Init2DGeometry() [3/3]

void MucROOTGeo::Init2DGeometry ( )

Initialize 2D Geometry.

◆ InitFromGDML() [1/3]

void MucROOTGeo::InitFromGDML ( const char * gdmlFile,
const char * setupName )

Initialize ROOTGeo from GDML.

Definition at line 101 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

101 {
102 m_ROOTGeoInit = 2;
103
104 ReadGdml( gdmlFile, setupName );
105 SetNode();
106}
void SetNode()
Set the pointers to theirs nodes;.
void ReadGdml(const char *gdmlFile, const char *setupName)
Initialize the instance of ROOTGeo.

◆ InitFromGDML() [2/3]

void MucROOTGeo::InitFromGDML ( const char * gdmlFile,
const char * setupName )

Initialize ROOTGeo from GDML.

◆ InitFromGDML() [3/3]

void MucROOTGeo::InitFromGDML ( const char * gdmlFile,
const char * setupName )

Initialize ROOTGeo from GDML.

◆ InitFromGdml() [1/3]

void MucROOTGeo::InitFromGdml ( const char * gdmlFile,
const char * setupName )

Initialize the instance of ROOTGeo.

Definition at line 60 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

60 {
61 ReadGdml( gdmlFile, setupName );
62 SetNode();
63 // SetDefaultVis();
64
65 m_ROOTGeoInit = 1;
66}

Referenced by MucROOTGeo().

◆ InitFromGdml() [2/3]

void MucROOTGeo::InitFromGdml ( const char * gdmlFile,
const char * setupName )

Initialize the instance of ROOTGeo.

◆ InitFromGdml() [3/3]

void MucROOTGeo::InitFromGdml ( const char * gdmlFile,
const char * setupName )

Initialize the instance of ROOTGeo.

◆ InitFromROOT() [1/3]

void MucROOTGeo::InitFromROOT ( TGeoVolume * vol)

Initialize ROOTGeo from TGeoVolume logicalMuc.

Definition at line 108 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

108 {
109 m_ROOTGeoInit = 1;
110
111 SetVolumeMuc( vol );
112 SetNode();
113}
void SetVolumeMuc(TGeoVolume *vol)
Set Muc volume, while initializing from ROOT;.

◆ InitFromROOT() [2/3]

void MucROOTGeo::InitFromROOT ( TGeoVolume * vol)

Initialize ROOTGeo from TGeoVolume logicalMuc.

◆ InitFromROOT() [3/3]

void MucROOTGeo::InitFromROOT ( TGeoVolume * vol)

Initialize ROOTGeo from TGeoVolume logicalMuc.

◆ IsZRVisible() [1/3]

Bool_t MucROOTGeo::IsZRVisible ( int part,
int seg )

Is a segment visible in ZR view.

Definition at line 1541 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1541 {
1542 if ( part != 1 ) return true;
1543
1544 BesView* view = dynamic_cast<BesView*>( gPad->GetView() );
1545 Double_t viewPhi = view->GetLongitude();
1546 viewPhi = Range360( viewPhi );
1547
1548 Int_t viewSeg = Int_t( viewPhi / 45.0 + 0.5 );
1549 Int_t upSeg = viewSeg + 2;
1550 Int_t downSeg = viewSeg - 2;
1551 if ( upSeg < 0 ) upSeg += 8;
1552 else if ( upSeg >= 8 ) upSeg -= 8;
1553 if ( downSeg < 0 ) downSeg += 8;
1554 else if ( downSeg >= 8 ) downSeg -= 8;
1555
1556 if ( seg == upSeg || seg == downSeg ) return true;
1557 else return false;
1558}
Double_t Range360(Double_t input)
Get input value 0~360.

◆ IsZRVisible() [2/3]

Bool_t MucROOTGeo::IsZRVisible ( int part,
int seg )

Is a segment visible in ZR view.

◆ IsZRVisible() [3/3]

Bool_t MucROOTGeo::IsZRVisible ( int part,
int seg )

Is a segment visible in ZR view.

◆ Range360() [1/3]

Double_t MucROOTGeo::Range360 ( Double_t input)

Get input value 0~360.

Definition at line 1560 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1560 {
1561 if ( input >= 360.0 )
1562 {
1563 do {
1564 input -= 360.0;
1565 } while ( input >= 360.0 );
1566 }
1567 else if ( input < 0.0 )
1568 {
1569 do {
1570 input += 360.0;
1571 } while ( input < 0.0 );
1572 }
1573
1574 return input;
1575}

Referenced by IsZRVisible().

◆ Range360() [2/3]

Double_t MucROOTGeo::Range360 ( Double_t input)

Get input value 0~360.

◆ Range360() [3/3]

Double_t MucROOTGeo::Range360 ( Double_t input)

Get input value 0~360.

◆ SetAllVisible() [1/6]

void MucROOTGeo::SetAllVisible ( )

Set all visible;.

Definition at line 230 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

230 {
231 for ( int part = 0; part < m_kPart; part++ )
232 {
233 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
234 {
235 for ( int absorber = 0; absorber < m_kAbsorber[part]; absorber++ )
236 {
237 if ( part == 1 ) { GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 1 ); }
238 else
239 {
240 GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 0 );
241 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
242 { GetVolumeAbsorberPanel( part, seg, absorber, panel )->SetVisibility( 1 ); }
243 }
244 }
245
246 for ( int gap = 0; gap < m_kGap[part]; gap++ )
247 {
248 GetVolumeGap( part, seg, gap )->SetVisibility( 0 );
249 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
250 { GetVolumeStrip( part, seg, gap, strip )->SetVisibility( 0 ); }
251
252 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
253 {
254 for ( int bakelite = 0; bakelite < m_kBakelite; bakelite++ )
255 { GetVolumeBakelite( part, seg, gap, panel, bakelite )->SetVisibility( 1 ); }
256 for ( int gasChamber = 0; gasChamber < m_kGasChamber; gasChamber++ )
257 { GetVolumeGasChamber( part, seg, gap, panel, gasChamber )->SetVisibility( 1 ); }
258 }
259 }
260 }
261 }
262
263 for ( int part = 0; part < m_kPart; part++ )
264 {
265 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
266 {
267 for ( int gap = 0; gap < m_kGap[part]; gap++ )
268 {
269 GetGap( part, seg, gap )->SetVisibility( 1 );
270 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
271 { GetStrip( part, seg, gap, strip )->SetVisibility( 0 ); }
272 }
273 }
274 }
275}
TGeoVolume * GetVolumeGasChamber(int part, int seg, int gap, int panel, int gasChamber)
Get rpc gas chamber volume;.
TGeoVolume * GetVolumeBakelite(int part, int seg, int gap, int panel, int bakelite)
Get rpc bakelite volume;.
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;.
TGeoVolume * GetVolumeStrip(int part, int seg, int gap, int strip)
Get strip volume;.
TGeoNode * GetStrip(int part, int seg, int gap, int strip)
Get strip node;.

◆ SetAllVisible() [2/6]

void MucROOTGeo::SetAllVisible ( )

Set all visible;.

◆ SetAllVisible() [3/6]

void MucROOTGeo::SetAllVisible ( )

Set all visible;.

◆ SetAllVisible() [4/6]

void MucROOTGeo::SetAllVisible ( )

Set all visible;.

◆ SetAllVisible() [5/6]

void MucROOTGeo::SetAllVisible ( )

Set all visible;.

◆ SetAllVisible() [6/6]

void MucROOTGeo::SetAllVisible ( )

Set all visible;.

◆ SetDefaultVis() [1/3]

void MucROOTGeo::SetDefaultVis ( )

Set default visual attributes;.

Definition at line 151 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

151 {
152 // std::cout << "begin of set defaultvis" << std::endl;
153 int mucColor = 2;
154 int absorberColor = 2;
155 int gapColor = 8;
156 int gasChamberColor = 8;
157 int bakeliteColor = 8;
158 int stripColor = 6;
159
160 m_Muc->SetLineColor( mucColor );
161 m_Muc->SetVisibility( 0 );
162
163 for ( int part = 0; part < m_kPart; part++ )
164 {
165 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
166 {
167 for ( int absorber = 0; absorber < m_kAbsorber[part]; absorber++ )
168 {
169 GetVolumeAbsorber( part, seg, absorber )->SetLineColor( absorberColor );
170 GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 0 );
171 if ( part != 1 )
172 {
173 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
174 {
175 GetVolumeAbsorberPanel( part, seg, absorber, panel )
176 ->SetLineColor( absorberColor );
177 GetVolumeAbsorberPanel( part, seg, absorber, panel )->SetVisibility( 0 );
178 }
179 }
180 }
181
182 for ( int gap = 0; gap < m_kGap[part]; gap++ )
183 {
184 GetVolumeGap( part, seg, gap )->SetLineColor( gapColor );
185 GetVolumeGap( part, seg, gap )->SetVisibility( 0 );
186 GetVolumeStripPlane( part, seg, gap )->SetLineColor( gapColor );
187 GetVolumeStripPlane( part, seg, gap )->SetVisibility( 0 );
188
189 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
190 {
191 GetVolumeStrip( part, seg, gap, strip )->SetLineColor( stripColor );
192 GetVolumeStrip( part, seg, gap, strip )->SetVisibility( 1 );
193 }
194
195 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
196 {
197 for ( int bakelite = 0; bakelite < m_kBakelite; bakelite++ )
198 {
199 GetVolumeBakelite( part, seg, gap, panel, bakelite )
200 ->SetLineColor( bakeliteColor );
201 GetVolumeBakelite( part, seg, gap, panel, bakelite )->SetVisibility( 0 );
202 }
203 for ( int gasChamber = 0; gasChamber < m_kGasChamber; gasChamber++ )
204 {
205 GetVolumeGasChamber( part, seg, gap, panel, gasChamber )
206 ->SetLineColor( gasChamberColor );
207 GetVolumeGasChamber( part, seg, gap, panel, gasChamber )->SetVisibility( 0 );
208 }
209 }
210 }
211 }
212 }
213
214 for ( int part = 0; part < m_kPart; part++ )
215 {
216 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
217 {
218 for ( int gap = 0; gap < m_kGap[part]; gap++ )
219 {
220 GetGap( part, seg, gap )->SetVisibility( 0 );
221 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
222 { GetStrip( part, seg, gap, strip )->SetVisibility( 0 ); }
223 }
224 }
225 }
226
227 // std::cout << "end of set defaultvis" << std::endl;
228}
TGeoVolume * GetVolumeStripPlane(int part, int seg, int gap)
Get strip plane volume;.

◆ SetDefaultVis() [2/3]

void MucROOTGeo::SetDefaultVis ( )

Set default visual attributes;.

◆ SetDefaultVis() [3/3]

void MucROOTGeo::SetDefaultVis ( )

Set default visual attributes;.

◆ SetDetector() [1/3]

void MucROOTGeo::SetDetector ( )

Set Detecor (what is detector depends on you).

Definition at line 1171 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1171 {
1172 BesView* view = 0;
1173 if ( gPad ) view = dynamic_cast<BesView*>( gPad->GetView() );
1174
1175 m_DetectorsArray->Clear();
1176 for ( int part = 0; part < GetPartNb(); part++ )
1177 {
1178 for ( int seg = 0; seg < GetSegNb( part ); seg++ )
1179 {
1180 for ( int gap = 0; gap < GetGapNb( part ); gap++ )
1181 {
1182 TGeoPhysicalNode* phyNode = 0;
1183 phyNode = GetPhysicalGap( part, seg, gap );
1184 if ( phyNode )
1185 {
1186 phyNode->SetVisibility( 0 ); // set all invisible before set any visible
1187 if ( ( part == 1 && seg <= 8 ) || ( part == 0 && seg <= 3 ) ||
1188 ( part == 2 && seg <= 3 ) )
1189 { m_DetectorsArray->Add( phyNode ); }
1190 else if ( view && view->GetVisFull3DMuc() ) { m_DetectorsArray->Add( phyNode ); }
1191 }
1192 }
1193 for ( int absorber = 0; absorber < GetAbsorberNb( part ); absorber++ )
1194 {
1195 for ( int panel = 0; panel < m_kPanelMax; panel++ )
1196 {
1197 TGeoPhysicalNode* phyNode = 0;
1198 phyNode = GetPhysicalAbsorber( part, seg, absorber, panel );
1199 if ( phyNode )
1200 {
1201 phyNode->SetVisibility( 0 );
1202 if ( ( part == 1 && seg <= 8 ) || ( part == 0 && seg <= 3 ) ||
1203 ( part == 2 && seg <= 3 ) )
1204 { m_DetectorsArray->Add( phyNode ); }
1205 else if ( view && view->GetVisFull3DMuc() ) { m_DetectorsArray->Add( phyNode ); }
1206 }
1207 }
1208 }
1209 }
1210 }
1211}

◆ SetDetector() [2/3]

void MucROOTGeo::SetDetector ( )

Set Detecor (what is detector depends on you).

◆ SetDetector() [3/3]

void MucROOTGeo::SetDetector ( )

Set Detecor (what is detector depends on you).

◆ SetHalfVisible() [1/3]

void MucROOTGeo::SetHalfVisible ( )

Set half visible;.

Definition at line 1029 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1029 {
1030 for ( int part = 0; part < m_kPart; part++ )
1031 {
1032 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
1033 {
1034 for ( int absorber = 0; absorber < m_kAbsorber[part]; absorber++ )
1035 {
1036 if ( part == 1 )
1037 {
1038 if ( seg < 3 || seg > 5 )
1039 GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 1 );
1040 }
1041 else
1042 {
1043 GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 0 );
1044 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
1045 {
1046 if ( seg == 0 || seg == 3 )
1047 GetVolumeAbsorberPanel( part, seg, absorber, panel )->SetVisibility( 1 );
1048 }
1049 }
1050 }
1051
1052 for ( int gap = 0; gap < m_kGap[part]; gap++ )
1053 {
1054 if ( part == 1 && ( seg < 3 || seg > 5 ) )
1055 {
1056 GetVolumeGap( part, seg, gap )->SetVisibility( 1 );
1057 GetGap( part, seg, gap )->SetVisibility( 1 );
1058 }
1059 else
1060 {
1061 GetVolumeGap( part, seg, gap )->SetVisibility( 0 );
1062 GetGap( part, seg, gap )->SetVisibility( 0 );
1063 }
1064 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
1065 { GetVolumeStrip( part, seg, gap, strip )->SetVisibility( 0 ); }
1066
1067 // for (int panel = 0; panel < m_kPanel[part]; panel++) {
1068 // for (int bakelite = 0; bakelite < m_kBakelite; bakelite++) {
1069 // if (part != 1 && (seg == 0 || seg == 3)) GetVolumeBakelite(part, seg, gap,
1070 // panel, bakelite)->SetVisibility(1);
1071 // }
1072 // for (int gasChamber = 0; gasChamber < m_kGasChamber; gasChamber++) {
1073 // if (part != 1 && (seg == 0 || seg == 3)) GetVolumeGasChamber(part, seg,
1074 // gap, panel, gasChamber)->SetVisibility(1);
1075 // }
1076 // }
1077 }
1078 }
1079 }
1080}

◆ SetHalfVisible() [2/3]

void MucROOTGeo::SetHalfVisible ( )

Set half visible;.

◆ SetHalfVisible() [3/3]

void MucROOTGeo::SetHalfVisible ( )

Set half visible;.

◆ SetHits() [1/3]

void MucROOTGeo::SetHits ( )

Set all physicalNodes corresponding to digiCol;.

Definition at line 1213 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1213 {
1214 // set previous event hits to default vis
1215 for ( int i = 0; i < m_HitsArray->GetEntries(); i++ )
1216 {
1217 TGeoPhysicalNode* phyNode = (TGeoPhysicalNode*)m_HitsArray->At( i );
1218 phyNode->SetLineColor( m_stripColor );
1219 phyNode->SetVisibility( 0 );
1220 }
1221 m_HitsArray->Clear( "C" );
1222
1223 // set previous event 2D hits info to default
1224 for ( int i = 0; i < m_2DHitsArray->GetEntries(); i++ )
1225 {
1226 Muc2DStrip* aStrip = (Muc2DStrip*)m_2DHitsArray->At( i );
1227 aStrip->ClearInfo();
1228 aStrip->AddInfo( aStrip->GetTitle() );
1229 aStrip->CloseInfo();
1230 }
1231 m_2DHitsArray->Clear( "C" );
1232
1233 // Long Peixun's update: Consider gEvent == NULL
1234 int NDigiCol = 0;
1235 if ( gEvent )
1236 {
1237 m_MucDigiCol = gEvent->GetMucDigiCol();
1238 // Long Peixun's update: Consider m_MucDigiCol == NULL
1239 if ( m_MucDigiCol ) NDigiCol = m_MucDigiCol->GetEntries();
1240 else NDigiCol = 0;
1241 }
1242
1243 for ( int i = 0; i < NDigiCol; i++ )
1244 {
1245 Identifier aMucID( ( (TMucDigi*)m_MucDigiCol->At( i ) )->getIntId() );
1246 int part = MucID::part( aMucID );
1247 int seg = MucID::seg( aMucID );
1248 int gap = MucID::gap( aMucID );
1249 int strip = MucID::strip( aMucID );
1250
1251 TGeoPhysicalNode* phyNode =
1252 GetPhysicalStrip( part, seg, gap, strip ); // Long Peixun's update: code optimization
1253 if ( phyNode ) m_HitsArray->Add( phyNode );
1254
1255 Muc2DStrip* aStrip = 0;
1256 aStrip = m_Muc2DStrip[part][seg][gap][strip];
1257 if ( aStrip )
1258 {
1259 aStrip->ClearInfo();
1260 aStrip->AddInfo( aStrip->GetTitle() );
1261
1262 char data[100];
1263 sprintf( data, "Fired" );
1264 aStrip->AddInfo( TString( data ) );
1265
1266 aStrip->CloseInfo();
1267
1268 m_2DHitsArray->Add( aStrip );
1269 }
1270 }
1271}
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)
TTree * data
virtual void ClearInfo()
virtual void CloseInfo()
static int part(const Identifier &id)
Definition MucID.cxx:43
static int gap(const Identifier &id)
Definition MucID.cxx:63
static int seg(const Identifier &id)
Definition MucID.cxx:53
static int strip(const Identifier &id)
Definition MucID.cxx:73

◆ SetHits() [2/3]

void MucROOTGeo::SetHits ( )

Set all physicalNodes corresponding to digiCol;.

◆ SetHits() [3/3]

void MucROOTGeo::SetHits ( )

Set all physicalNodes corresponding to digiCol;.

◆ SetNode() [1/6]

void MucROOTGeo::SetNode ( )

Set the pointers to theirs nodes;.

Definition at line 68 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

68 {
69 m_Muc = GetTopVolume();
70 if ( !m_Muc ) { m_Muc = GetLogicalVolume( "logicalMuc" ); }
71 if ( !m_Muc ) std::cout << "m_Muc = 0" << std::endl;
72
73 int gapCount = 0;
74 for ( int part = 0; part < m_kPart; part++ )
75 {
76 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
77 {
78 for ( int gap = 0; gap < m_kGap[part]; gap++ )
79 {
80 m_StripNum[part][seg][gap] = GetVolumeStripPlane( part, seg, gap )->GetNdaughters();
81 // std::cout << part << " " << seg << " " << gap << " " << m_StripNum[part][seg][gap]
82 // <<" "<<GetVolumeStripPlane(part, seg, gap)->GetName()<< std::endl;
83
84 std::stringstream osnameGap;
85 osnameGap << "pv_"
86 << "l"
87 << "Muc"
88 << "P" << part << "S" << seg << "G" << gap << "_" << gapCount;
89 m_NodeGap[part][seg][gap] = GetNode( osnameGap.str() );
90 gapCount++;
91
92 // cout<<"in MucROOTGeo "<<m_NodeGap[part][seg][gap]->GetName()<<"
93 // "<<m_NodeGap[part][seg][gap]->GetDaughter(0)->GetName()<<endl;
94
95 std::stringstream osnameBox;
96 osnameBox << "pv_"
97 << "l"
98 << "Muc"
99 << "P" << part << "S" << seg << "G" << gap << "Al"
100 << "_"
101 << "0";
102 // m_NodeAluminumBox[part][seg][gap] = GetNode( osnameBox.str() );
103 TGeoNode* temp = GetNode( osnameBox.str() );
104
105 int segment = 0;
106 if ( part == 1 && seg == 2 ) segment = 2;
107 std::stringstream osnameStripPlane;
108 osnameStripPlane << "pv_"
109 << "l"
110 << "Muc"
111 << "P" << part << "S" << segment << "G" << gap << "SP"
112 << "_"
113 << "0";
114 m_NodeStripPlane[part][seg][gap] = GetNode( osnameStripPlane.str() );
115
116 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
117 {
118 std::stringstream osnameStrip;
119 if ( strip < 10 )
120 {
121 osnameStrip << "pv_"
122 << "l"
123 << "Muc"
124 << "P" << part << "S" << segment << "G" << gap << "s"
125 << "00" << strip << "_" << strip;
126 }
127 else if ( strip < 100 )
128 {
129 osnameStrip << "pv_"
130 << "l"
131 << "Muc"
132 << "P" << part << "S" << segment << "G" << gap << "s"
133 << "0" << strip << "_" << strip;
134 }
135 else
136 {
137 osnameStrip << "pv_"
138 << "l"
139 << "Muc"
140 << "P" << part << "S" << segment << "G" << gap << "s" << strip << "_"
141 << strip;
142 }
143
144 m_NodeStrip[part][seg][gap][strip] = GetNode( osnameStrip.str() );
145 }
146 }
147 }
148 }
149}
TGeoNode * GetNode(const std::string &nn)
Get a node(physical volume) by name;.

Referenced by InitFromGDML(), InitFromGdml(), and InitFromROOT().

◆ SetNode() [2/6]

void MucROOTGeo::SetNode ( )

Set the pointers to theirs nodes;.

◆ SetNode() [3/6]

void MucROOTGeo::SetNode ( )

Set the pointers to theirs nodes;.

◆ SetNode() [4/6]

void MucROOTGeo::SetNode ( )

Set the pointers to theirs nodes;.

◆ SetNode() [5/6]

void MucROOTGeo::SetNode ( )

Set the pointers to theirs nodes;.

◆ SetNode() [6/6]

void MucROOTGeo::SetNode ( )

Set the pointers to theirs nodes;.

◆ SetNoEndVisible() [1/3]

void MucROOTGeo::SetNoEndVisible ( )

Set noend visible;.

Definition at line 1082 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1082 {
1083 int part = 1;
1084 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
1085 {
1086 for ( int absorber = 0; absorber < m_kAbsorber[part]; absorber++ )
1087 { GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 1 ); }
1088
1089 for ( int gap = 0; gap < m_kGap[part]; gap++ )
1090 {
1091 GetVolumeGap( part, seg, gap )->SetVisibility( 1 );
1092 GetGap( part, seg, gap )->SetVisibility( 1 );
1093 }
1094 }
1095}

◆ SetNoEndVisible() [2/3]

void MucROOTGeo::SetNoEndVisible ( )

Set noend visible;.

◆ SetNoEndVisible() [3/3]

void MucROOTGeo::SetNoEndVisible ( )

Set noend visible;.

◆ SetPhysicalDefaultVis() [1/3]

void MucROOTGeo::SetPhysicalDefaultVis ( )

Definition at line 859 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

859 {
860 for ( int part = 0; part < GetPartNb(); part++ )
861 {
862 for ( int seg = 0; seg < GetSegNb( part ); seg++ )
863 {
864 for ( int gap = 0; gap < GetGapNb( part ); gap++ )
865 {
866 for ( int strip = 0; strip < GetStripNb( part, seg, gap ); strip++ )
867 // Long Peixun's update: gray -> more deep gray
868 GetPhysicalStrip( part, seg, gap, strip )->SetLineColor( 922 );
869 }
870 }
871 }
872}

◆ SetPhysicalDefaultVis() [2/3]

void MucROOTGeo::SetPhysicalDefaultVis ( )

◆ SetPhysicalDefaultVis() [3/3]

void MucROOTGeo::SetPhysicalDefaultVis ( )

◆ SetPhysicalNode() [1/6]

void MucROOTGeo::SetPhysicalNode ( )

Set the pointers to the physical nodes;.

Definition at line 332 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

332 {
333 int stripColor = 2;
334
335 if ( gGeoManager == 0 ) std::cout << "Create gGeoManager first" << std::endl;
336 TGeoNode* bes = gGeoManager->GetTopNode();
337 TGeoNode* muc = bes->GetDaughter( m_childNo );
338
339 for ( int part = 0; part < m_kPart; part++ )
340 {
341 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
342 {
343 for ( int gap = 0; gap < m_kGap[part]; gap++ )
344 {
345 TGeoNode* nodeGap = GetGap( part, seg, gap );
346 m_PhysicalGap[part][seg][gap] = gGeoManager->MakePhysicalNode(
347 TString( "/" ) + bes->GetName() + TString( "/" ) + muc->GetName() +
348 TString( "/" ) + nodeGap->GetName() + TString( "/" ) +
349 nodeGap->GetDaughter( 0 )->GetName() );
350 m_PhysicalGap[part][seg][gap]->SetVisibility( 0 );
351 m_PhysicalGap[part][seg][gap]->SetIsVolAtt( kFALSE );
352
353 TGeoNode* nodeStripPlane = GetStripPlane( part, seg, gap );
354 // std::cout << nodeGap->GetName() << " " << nodeStripPlane->GetName() << endl;
355
356 // TGeoNode *nodeBox = GetAluminumBox(part, seg, gap);
357 // m_PhysicalAluminumBox[part][seg][gap] = gGeoManager->MakePhysicalNode(
358 // TString("/") + bes->GetName() +
359 // TString("/") + muc->GetName() +
360 // TString("/") + nodeGap->GetName() +
361 // TString("/") + nodeGap->GetDaughter(0)->GetName() );
362
363 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
364 {
365 TGeoNode* nodeStrip = GetStrip( part, seg, gap, strip );
366 m_PhysicalStrip[part][seg][gap][strip] = gGeoManager->MakePhysicalNode(
367 TString( "/" ) + bes->GetName() + TString( "/" ) + muc->GetName() +
368 TString( "/" ) + nodeGap->GetName() + TString( "/" ) +
369 nodeGap->GetDaughter( 0 )->GetName() + TString( "/" ) +
370 nodeStripPlane->GetName() + TString( "/" ) + nodeStrip->GetName() );
371 m_PhysicalStrip[part][seg][gap][strip]->SetVisibility( 0 );
372 m_PhysicalStrip[part][seg][gap][strip]->SetIsVolAtt( kFALSE );
373 m_PhysicalStrip[part][seg][gap][strip]->SetLineColor( stripColor );
374 }
375 }
376 }
377 }
378}
TGeoNode * GetStripPlane(int part, int seg, int gap)
Get box node;.

Referenced by MucGeoGeneral::InitFromXML().

◆ SetPhysicalNode() [2/6]

void MucROOTGeo::SetPhysicalNode ( )

Set the pointers to the physical nodes;.

◆ SetPhysicalNode() [3/6]

void MucROOTGeo::SetPhysicalNode ( )

Set the pointers to the physical nodes;.

◆ SetPhysicalNode() [4/6]

void MucROOTGeo::SetPhysicalNode ( )

Set the pointers to the physical nodes;.

◆ SetPhysicalNode() [5/6]

void MucROOTGeo::SetPhysicalNode ( )

Set the pointers to the physical nodes;.

◆ SetPhysicalNode() [6/6]

void MucROOTGeo::SetPhysicalNode ( )

Set the pointers to the physical nodes;.

◆ SetQuarterVisible() [1/6]

void MucROOTGeo::SetQuarterVisible ( )

Set quater visible;.

Definition at line 277 of file DetectorDescription/ROOTGeo/src/MucROOTGeo.cxx.

277 {
278 for ( int part = 0; part < m_kPart; part++ )
279 {
280 for ( int seg = 0; seg < m_kSeg[part]; seg++ )
281 {
282 for ( int absorber = 0; absorber < m_kAbsorber[part]; absorber++ )
283 {
284 if ( part == 1 )
285 {
286 if ( seg > 2 ) GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 1 );
287 }
288 else
289 {
290 GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 0 );
291 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
292 {
293 if ( seg > 0 && seg < 3 )
294 GetVolumeAbsorberPanel( part, seg, absorber, panel )->SetVisibility( 1 );
295 }
296 }
297 }
298
299 for ( int gap = 0; gap < m_kGap[part]; gap++ )
300 {
301 if ( part == 1 && seg > 2 )
302 {
303 GetVolumeGap( part, seg, gap )->SetVisibility( 1 );
304 GetGap( part, seg, gap )->SetVisibility( 1 );
305 }
306 else
307 {
308 GetVolumeGap( part, seg, gap )->SetVisibility( 0 );
309 GetGap( part, seg, gap )->SetVisibility( 0 );
310 }
311 for ( int strip = 0; strip < m_StripNum[part][seg][gap]; strip++ )
312 { GetVolumeStrip( part, seg, gap, strip )->SetVisibility( 0 ); }
313
314 for ( int panel = 0; panel < m_kPanel[part]; panel++ )
315 {
316 for ( int bakelite = 0; bakelite < m_kBakelite; bakelite++ )
317 {
318 if ( ( part != 1 && seg > 0 && seg < 3 ) || ( part == 1 && seg > 2 ) )
319 GetVolumeBakelite( part, seg, gap, panel, bakelite )->SetVisibility( 1 );
320 }
321 for ( int gasChamber = 0; gasChamber < m_kGasChamber; gasChamber++ )
322 {
323 if ( ( part != 1 && seg > 0 && seg < 3 ) || ( part == 1 && seg > 2 ) )
324 GetVolumeGasChamber( part, seg, gap, panel, gasChamber )->SetVisibility( 1 );
325 }
326 }
327 }
328 }
329 }
330}

◆ SetQuarterVisible() [2/6]

void MucROOTGeo::SetQuarterVisible ( )

Set quater visible;.

◆ SetQuarterVisible() [3/6]

void MucROOTGeo::SetQuarterVisible ( )

Set quater visible;.

◆ SetQuarterVisible() [4/6]

void MucROOTGeo::SetQuarterVisible ( )

Set quater visible;.

◆ SetQuarterVisible() [5/6]

void MucROOTGeo::SetQuarterVisible ( )

Set quater visible;.

◆ SetQuarterVisible() [6/6]

void MucROOTGeo::SetQuarterVisible ( )

Set quater visible;.

◆ SetVisMucDetector() [1/3]

void MucROOTGeo::SetVisMucDetector ( )

Set Muc detector visibility;.

Definition at line 1273 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1273 {
1274 BesView* view = 0;
1275 if ( gPad ) view = dynamic_cast<BesView*>( gPad->GetView() );
1276
1277 for ( int i = 0; i < m_DetectorsArray->GetEntries(); i++ )
1278 {
1279 TGeoPhysicalNode* phyNode = (TGeoPhysicalNode*)m_DetectorsArray->At( i );
1280 phyNode->SetVisibility( 0 );
1281
1282 if ( view && view->GetVisMucGlobal() )
1283 {
1284 int part = GetPart( phyNode );
1285 if ( part == 0 && view->GetVisMucEast() || part == 1 && view->GetVisMucBarrel() ||
1286 part == 2 && view->GetVisMucWest() )
1287 phyNode->SetVisibility( 1 );
1288 }
1289 }
1290}
Int_t GetPart(TGeoPhysicalNode *phyNode)
Get part no of a physcial node.

◆ SetVisMucDetector() [2/3]

void MucROOTGeo::SetVisMucDetector ( )

Set Muc detector visibility;.

◆ SetVisMucDetector() [3/3]

void MucROOTGeo::SetVisMucDetector ( )

Set Muc detector visibility;.

◆ SetVisMucHits() [1/3]

void MucROOTGeo::SetVisMucHits ( )

Set Muc hits visibility;.

Definition at line 1292 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

1292 {
1293 BesView* view = 0;
1294 if ( gPad ) view = dynamic_cast<BesView*>( gPad->GetView() );
1295
1296 for ( int i = 0; i < m_HitsArray->GetEntries(); i++ )
1297 {
1298 TGeoPhysicalNode* phyNode = (TGeoPhysicalNode*)m_HitsArray->At( i );
1299 if ( view && view->GetVisMucHitsGlobal() )
1300 {
1301 int part = GetPart( phyNode );
1302 if ( part == 0 && view->GetVisMucHitsEast() ||
1303 part == 1 && view->GetVisMucHitsBarrel() || part == 2 && view->GetVisMucHitsWest() )
1304 {
1305 phyNode->SetVisibility( 1 );
1306 continue;
1307 }
1308 phyNode->SetLineColor( 922 ); // Long Peixun's update: Set color despite of visibility
1309 }
1310 phyNode->SetVisibility( 0 );
1311 }
1312}

◆ SetVisMucHits() [2/3]

void MucROOTGeo::SetVisMucHits ( )

Set Muc hits visibility;.

◆ SetVisMucHits() [3/3]

void MucROOTGeo::SetVisMucHits ( )

Set Muc hits visibility;.

◆ SetVolumeDefaultVis() [1/3]

void MucROOTGeo::SetVolumeDefaultVis ( )

Set default visual attributes;.

Definition at line 754 of file EventDisplay/BesVisLib/src/MucROOTGeo.cxx.

754 {
755 m_Muc->SetLineColor( m_MucColor );
756 m_Muc->SetVisibility( 0 );
757
758 for ( int part = 0; part < GetPartNb(); part++ )
759 {
760 for ( int seg = 0; seg < GetSegNb( part ); seg++ )
761 {
762 for ( int absorber = 0; absorber < GetAbsorberNb( part ); absorber++ )
763 {
764 GetVolumeAbsorber( part, seg, absorber )->SetLineColor( m_absorberColor );
765 GetVolumeAbsorber( part, seg, absorber )->SetVisibility( 0 );
766 // if (part != 1) {
767 // for (int panel = 0; panel < m_kPanel[part]; panel++) {
768 // GetVolumeAbsorberPanel(part, seg, absorber,
769 // panel)->SetLineColor(m_absorberColor); GetVolumeAbsorberPanel(part, seg, absorber,
770 // panel)->SetVisibility(0);
771 // }
772 // }
773 }
774
775 for ( int gap = 0; gap < GetGapNb( part ); gap++ )
776 {
777 GetVolumeGap( part, seg, gap )->SetLineColor( m_gapColor );
778 GetVolumeGap( part, seg, gap )->SetVisibility( 0 );
779
780 GetVolumeBox( part, seg, gap )->SetLineColor( m_gapColor );
781 GetVolumeBox( part, seg, gap )->SetVisibility( 0 );
782
783 if ( part == 1 )
784 {
785 for ( int sb = 0; sb < m_kSmallBlockMax; sb++ )
786 {
787 GetVolumeAbsorberSmallBlock( gap, sb )->SetLineColor( m_absorberColor );
788 GetVolumeAbsorberSmallBlock( gap, sb )->SetVisibility( 0 );
789 }
790 }
791
792 GetVolumeStripPlane( part, seg, gap )->SetLineColor( m_gapColor );
793 GetVolumeStripPlane( part, seg, gap )->SetVisibility( 0 );
794
795 for ( int strip = 0; strip < GetStripNb( part, seg, gap ); strip++ )
796 {
797 GetVolumeStrip( part, seg, gap, strip )->SetLineColor( m_stripColor );
798 GetVolumeStrip( part, seg, gap, strip )->SetVisibility( 0 );
799 }
800
801 for ( int up = 0; up < 2; up++ )
802 {
803 GetVolumeBoxSurface( part, seg, gap, up )->SetLineColor( m_bakeliteColor ); // need
804 // change
805 GetVolumeBoxSurface( part, seg, gap, up )->SetVisibility( 0 );
806 int seg_shift = 0;
807 if ( part == 1 && seg == 2 ) seg_shift = 1;
808 for ( int panel = 0; panel < m_kPanel[part] + seg_shift; panel++ )
809 {
810 GetVolumeGasChamber( part, seg, gap, up, panel )
811 ->SetLineColor( m_gasChamberColor );
812 GetVolumeGasChamber( part, seg, gap, up, panel )->SetVisibility( 0 );
813
814 GetVolumeGasBorder( part, seg, gap, up, panel )->SetLineColor( m_bakeliteColor );
815 GetVolumeGasBorder( part, seg, gap, up, panel )->SetVisibility( 0 );
816 }
817 for ( int panel = 0; panel < m_kBakelitePanel[part][up] + seg_shift; panel++ )
818 {
819 for ( int bakelite = 0; bakelite < m_kBakelite; bakelite++ )
820 {
821 GetVolumeBakelite( part, seg, gap, up, panel, bakelite )
822 ->SetLineColor( m_bakeliteColor );
823 GetVolumeBakelite( part, seg, gap, up, panel, bakelite )->SetVisibility( 0 );
824 }
825 }
826 }
827
828 // for (int panel = 0; panel < m_kPanel[part]; panel++) { //comment out
829 // 2007.1.2 for(int bakelite = 0; bakelite < m_kBakelite; bakelite++) {
830 // GetVolumeBakelite(part, seg, gap, panel,
831 // bakelite)->SetLineColor(m_bakeliteColor); GetVolumeBakelite(part, seg, gap, panel,
832 // bakelite)->SetVisibility(0);
833 // }
834 // for (int gasChamber = 0; gasChamber < m_kGasChamber; gasChamber++) {
835 // GetVolumeGasChamber(part, seg, gap, panel,
836 // gasChamber)->SetLineColor(m_gasChamberColor); GetVolumeGasChamber(part, seg, gap,
837 // panel, gasChamber)->SetVisibility(0);
838 // }
839 // }
840 }
841 }
842 }
843
844 for ( int part = 0; part < GetPartNb(); part++ )
845 {
846 for ( int seg = 0; seg < GetSegNb( part ); seg++ )
847 {
848 for ( int gap = 0; gap < GetGapNb( part ); gap++ )
849 {
850 GetGap( part, seg, gap )->SetVisibility( 0 );
851 for ( int strip = 0; strip < GetStripNb( part, seg, gap ); strip++ )
852 { GetStrip( part, seg, gap, strip )->SetVisibility( 0 ); }
853 }
854 }
855 }
856}
TGeoVolume * GetVolumeBox(int part, int seg, int gap)
Get box volume;.
TGeoVolume * GetVolumeGasBorder(int part, int seg, int gap, int panel, int gasChamber)
Get rpc gas border volume;.
TGeoVolume * GetVolumeBoxSurface(int part, int seg, int gap, int up)
Get box surface volume;.
TGeoVolume * GetVolumeAbsorberSmallBlock(int gap, int sb)
Get absorber small block;.

◆ SetVolumeDefaultVis() [2/3]

void MucROOTGeo::SetVolumeDefaultVis ( )

Set default visual attributes;.

◆ SetVolumeDefaultVis() [3/3]

void MucROOTGeo::SetVolumeDefaultVis ( )

Set default visual attributes;.

◆ SetVolumeMuc() [1/3]

void MucROOTGeo::SetVolumeMuc ( TGeoVolume * vol)
inline

Set Muc volume, while initializing from ROOT;.

Definition at line 99 of file EventDisplay/BesVisLib/include/BesVisLib/MucROOTGeo.h.

99{ m_Muc = vol; }

Referenced by InitFromROOT().

◆ SetVolumeMuc() [2/3]

void MucROOTGeo::SetVolumeMuc ( TGeoVolume * vol)
inline

Set Muc volume, while initializing from ROOT;.

Definition at line 99 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesVisLib/MucROOTGeo.h.

99{ m_Muc = vol; }

◆ SetVolumeMuc() [3/3]

void MucROOTGeo::SetVolumeMuc ( TGeoVolume * vol)
inline

Set Muc volume, while initializing from ROOT;.

Definition at line 99 of file InstallArea/x86_64-el9-gcc13-opt/include/BesVisLib/MucROOTGeo.h.

99{ m_Muc = vol; }

The documentation for this class was generated from the following files: