/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/DetectorDescription/ROOTGeo/ROOTGeo-00-00-15/ROOTGeo/MdcROOTGeo.h

Go to the documentation of this file.
00001 //$id$
00002 /*
00003  *    2004/11/29   Zhengyun You      Peking University
00004  *                 Tof Geometry General for EventDisplay
00005  *
00006  *    2004/12/9    Zhengyun You      Peking University
00007  *                 named from TofGeo to MdcROOTGeo
00008  *                 inherit from class SubDetectorROOTGeo
00009  */
00010 
00011 #ifndef MDC_ROOT_GEO_H
00012 #define MDC_ROOT_GEO_H
00013 
00014 #include <map>
00015 
00016 #include <TGeoVolume.h>
00017 #include <TGeoNode.h>
00018 #include <TGeoPhysicalNode.h>
00019 
00020 #include "SubDetectorROOTGeo.h"
00029 class MdcROOTGeo : public SubDetectorROOTGeo
00030 {
00031  public:
00032   
00034   MdcROOTGeo();
00035 
00037   ~MdcROOTGeo();
00038 
00040   void InitFromGdml( const char *gdmlFile, const char *setupName );
00041 
00043   void SetNode();
00044   
00046   int CorrectReplica(int layer, int replica);
00047 
00049   void SetDefaultVis();
00050 
00052   void SetAllVisible();
00053 
00055   void SetQuarterVisible();
00056 
00058   void SetPhysicalNode();
00059   
00061   int GetSegmentNb();
00062 
00064   int GetLayerNb();
00065 
00067   int GetReplicaNb(int layer) { return m_kReplica[layer]; }
00068 
00070   TGeoVolume *GetVolumeMdc() { return m_Mdc; }
00071   
00073   TGeoVolume *GetVolumeSegment( int segment );
00074 
00076   TGeoVolume *GetVolumeLayer( int layer );
00077   
00079   TGeoVolume *GetVolumeReplica( int layer );
00080 
00082   TGeoNode *GetSegment( int segment, int no );
00083   
00085   TGeoNode *GetLayer( int layer );
00086   
00088   TGeoNode *GetReplica( int layer, int replica );
00089 
00091   TGeoPhysicalNode *GetPhysicalReplica( int layer, int replica );
00092 
00093  private:
00094 
00095   static const int m_kSegment        = 66;
00096   static const int m_kStereoLayerIn  = 8;
00097   static const int m_kAxialLayerIn   = 12;
00098   static const int m_kStereoLayerOut = 16;
00099   static const int m_kAxialLayerOut  = 7;
00100   static const int m_kLayer          = 50;
00101   static const int m_kReplicaMax     = 288;
00102   static const int m_kReplica[m_kLayer];
00103   static const int m_kCorrectLayer   = 10;
00104   static const int m_kiCorrectLayer[m_kCorrectLayer];
00105   static const int m_kiCorrectReplica[m_kCorrectLayer];
00106 
00107   std::map<int ,int> m_CorrectMap;
00108   typedef std::map<int, int> intMap;
00109 
00110   TGeoVolume       *m_Mdc;
00111   TGeoNode         *m_NodeReplica[m_kLayer][m_kReplicaMax];
00112   TGeoPhysicalNode *m_PhysicalReplica[m_kLayer][m_kReplicaMax];
00113 };
00114 
00115 #endif   /* MDC_ROOT_GEO_H */

Generated on Tue Nov 29 22:58:01 2016 for BOSS_7.0.2 by  doxygen 1.4.7