00001 00002 // $Id: GeoScintPlnVolume.h,v 1.9 2007/11/25 03:54:44 schubert Exp $ 00003 // 00004 // GeoScintPlnVolume 00005 // 00006 // GeoScintPlnVolume is a scint pln volume. 00007 // 00008 // Author: S. Kasahara 07/04 00010 00011 #ifndef GEOSCINTPLNVOLUME_H 00012 #define GEOSCINTPLNVOLUME_H 00013 00014 #include "GeoGeometry/GeoVolume.h" 00015 #include "Conventions/Detector.h" 00016 #include "Conventions/PlaneCoverage.h" 00017 #include "Conventions/PlaneView.h" 00018 00019 class GeoScintPlnVolume; 00020 class GeoGeometry; 00021 class TGeoShape; 00022 class PlexPlaneId; 00023 00024 class GeoScintPlnVolume : public GeoVolume { 00025 00026 friend class GeoGeometry; // constructs GeoScintPlnVolume 00027 00028 public: 00029 // Constructors & Destructors 00030 GeoScintPlnVolume(); 00031 virtual ~GeoScintPlnVolume() {} 00032 00033 // State testing methods 00034 virtual Int_t NumberOfStrips() const; 00035 virtual Int_t NumberOfModules() const { 00036 return GetScintMdlNodePtrVector().size(); } 00037 virtual std::vector<GeoStripNode*> GetStripNodePtrVector() const; 00038 virtual std::vector<GeoScintMdlNode*> GetScintMdlNodePtrVector() const; 00039 Float_t GetThick() const { return fThick; } 00040 virtual void Print(Option_t *option="") const; 00041 00042 00043 protected: 00044 00045 GeoScintPlnVolume(GeoGeometry* geo, const PlexPlaneId& plnid, 00046 Float_t plnthick); 00047 00048 private: 00049 // Helper methods for constructing scint pln shape 00050 TGeoShape* BuildPlaneShape() const; 00051 TGeoShape* BuildFar() const; 00052 TGeoShape* BuildFarActive() const; 00053 TGeoShape* BuildFarVetoActive() const; 00054 TGeoShape* BuildNear() const; 00055 TGeoShape* BuildNearFullActive() const; 00056 TGeoShape* BuildNearPartialActive() const; 00057 TGeoShape* BuildCalDet() const; 00058 void AddCoilNode(); 00059 TGeoVolume* BuildFarCoilVolume() const; 00060 TGeoVolume* BuildNearCoilVolume() const; 00061 00062 // Data members 00063 Detector::Detector_t fDetector; 00064 PlaneCoverage::PlaneCoverage_t fCoverage; 00065 PlaneView::PlaneView_t fView; 00066 Bool_t fVetoShield; 00067 Float_t fThick; 00068 00069 ClassDef(GeoScintPlnVolume,1) 00070 }; 00071 #endif // GEOSCINTPLNVOLUME_H
1.3.9.1