Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

GeoScintPlnVolume.h

Go to the documentation of this file.
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

Generated on Mon Feb 15 11:06:45 2010 for loon by  doxygen 1.3.9.1