/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventDisplay/BesVisLib/BesVisLib-00-04-04/BesVisLib/TofROOTGeo.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 TofROOTGeo
00008  *                 inherit from class SubDetectorROOTGeo
00009  */
00010 
00011 #ifndef Tof_ROOT_GEO_H
00012 #define Tof_ROOT_GEO_H
00013 
00014 #include <TGeoVolume.h>
00015 #include <TGeoNode.h>
00016 #include <TGeoPhysicalNode.h>
00017 
00018 #include "SubDetectorROOTGeo.h"
00019 #include "Tof2DScin.h"
00020 
00029 class TofROOTGeo : public SubDetectorROOTGeo
00030 {
00031  public:
00032   
00034   TofROOTGeo();
00035 
00037   ~TofROOTGeo();
00038 
00040   void InitFromGDML( const char *gdmlFile, const char *setupName );
00041 
00043   void InitFromROOT( TGeoVolume *vol );
00044 
00046   void Init2DGeometry();
00047 
00049   void SetNode();
00050   
00052   void SetVolumeDefaultVis();
00053 
00055   void SetAllVisible();
00056   void SetTMatch(Bool_t input);
00057   void SetQMatch(Bool_t input);
00058 
00060   void SetQuarterVisible();
00061 
00063   void SetHalfVisible();
00064 
00066   void SetNoEndVisible();
00067 
00069   void SetPhysicalNode();
00070   
00072   void SetDetector();
00073 
00075   void SetHits();
00076   
00078   void SetVisTofDetector();
00079 
00081   void SetVisTofHits();
00082 
00084   int GetPartNb();
00085 
00087   int GetScinNb(int part);
00088 
00089   // Get number of layer on part;
00090   int GetLayerNb(int part);
00091 
00093   void SetVolumeTof(TGeoVolume *vol) { m_Tof = vol; }
00094   
00096   TGeoVolume *GetVolumeTof() { return m_Tof; }
00097   
00099   //TGeoVolumeAssembly *GetVolumeAssembly( int part );
00100   
00102   TGeoVolume *GetVolumePart( int part);
00103 
00105   TGeoVolume *GetVolumePVF( int part, int layer );
00106 
00108   TGeoVolume *GetVolumeAl( int part, int layer );
00109 
00111   TGeoVolume *GetVolumeScin( int part, int layer );
00112 
00114   TGeoVolume *GetVolumeBucket( int part, int layer );
00115 
00117   TGeoNode *GetPVF( int part, int layer, int scin );
00118 
00120   TGeoNode *GetAl( int part, int layer );
00121 
00123   TGeoNode *GetScin( int part, int layer );
00124 
00126   //TGeoNode *GetBucket( int part, int layer, int scin, int bucket );
00127 
00129   TGeoPhysicalNode *GetPhysicalScin( int part, int layer, int scin );
00130 
00132   Tof2DScin *Get2DScin( Int_t part, Int_t layer, Int_t scin ); 
00133 
00135   Int_t GetPart(TGeoPhysicalNode* phyNode);
00136 
00138   void Draw(Option_t *option);
00139 
00141   void DrawHits(Option_t *option);
00142 
00143  private:
00144   static const int m_kPart     = 3;
00145   static const int m_kLayerBr  = 2;
00146   static const int m_kLayerEc  = 1;
00147   static const int m_kScinBr   = 88;
00148   static const int m_kScinEc   = 48;
00149   static const int m_kBucketEc = 1;
00150   static const int m_kBucketBr = 2;
00151 
00152   static const int TOF_TIME_FACTOR   = 1000000;
00153   static const int TOF_CHARGE_FACTOR = 1000000; 
00154    
00155   Bool_t k_TMatch;
00156   Bool_t k_QMatch;
00157 
00158   int m_TofColor;
00159   int m_BucketColor;
00160   int m_ScinColor;
00161 
00162   TGeoVolume       *m_Tof;
00163   TGeoNode         *m_NodePVF[m_kPart][m_kLayerBr][m_kScinBr];
00164   TGeoNode         *m_NodeAl[m_kPart][m_kLayerBr];
00165   TGeoNode         *m_NodeScin[m_kPart][m_kLayerBr];
00166   TGeoPhysicalNode *m_PhysicalScin[m_kPart][m_kLayerBr][m_kScinBr];
00167 
00168   const TObjArray  *m_TofDigiCol;
00169 
00170   // 2D
00171   Tof2DScin        *m_Tof2DScin[m_kPart][m_kLayerBr][m_kScinBr];
00172 
00173 };
00174 
00175 #endif   /* Tof_ROOT_GEO_H */

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