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

GeoScintMdlVolume.h

Go to the documentation of this file.
00001 
00002 // $Id: GeoScintMdlVolume.h,v 1.4 2007/11/25 03:54:44 schubert Exp $
00003 //
00004 // GeoScintMdlVolume
00005 //
00006 // GeoScintMdlVolume is a scint module volume.    
00007 //
00008 // Author:  S. Kasahara  05/05
00010 
00011 #ifndef GEOSCINTMDLVOLUME_H
00012 #define GEOSCINTMDLVOLUME_H
00013 
00014 #include "GeoGeometry/GeoVolume.h"
00015 #include "Plex/PlexScintMdlId.h"
00016 
00017 class GeoScintMdlVolume;
00018 class GeoGeometry;
00019 class TGeoShape;
00020 
00021 class GeoScintMdlVolume : public GeoVolume {
00022 
00023   friend class GeoGeometry;
00024   
00025  public:
00026   // Constructors & Destructors
00027    GeoScintMdlVolume();
00028    virtual ~GeoScintMdlVolume() {}
00029 
00030    // State testing methods
00031    const TGeoNode* GetAirNode() const { return GetNode(0); }
00032    GeoStripNode* GetStripNode(const PlexStripEndId& seid) const;
00033    std::vector<GeoStripNode*> GetStripNodePtrVector() const;
00034    virtual Int_t NumberOfStrips() const;
00035    virtual void Print(Option_t *option="") const;
00036    
00037  protected:
00038    // Normal constructor
00039    GeoScintMdlVolume(GeoGeometry* geo, const PlexScintMdlId& mdlid,
00040                      const UgliDbiTables& ugliTables);
00041  
00042  private:
00043    // Helper methods for constructing scint mdl shape
00044    virtual void AddAirNode(const UgliDbiTables& ugliTables);
00045    TGeoShape* BuildModuleShape(const UgliDbiTables& ugliTables,
00046                                std::string shpName,bool isInner = false);
00047    TGeoShape* BuildCalDet(const UgliDbiTables& ugliTables,
00048                           std::string shpName,bool isInner = false);
00049    TGeoShape* BuildFar(const UgliDbiTables& ugliTables,
00050                        std::string shpName,bool isInner = false);
00051    TGeoShape* BuildNear(const UgliDbiTables& ugliTables,
00052                         std::string shpName,bool isInner = false);
00053    TGeoShape* BuildSimpleTrap(const UgliDbiTables& ugliTables, 
00054                               std::string shpName,bool isInner = false);
00055    TGeoShape* BuildBBox(const UgliDbiTables& ugliTables, 
00056                         std::string shpName,bool isInner = false);
00057    TGeoShape* BuildFardfXtru(const UgliDbiTables& ugliTables,
00058                              std::string shpName,bool isInner = false);
00059    TGeoShape* BuildFarDFXtru(const UgliDbiTables& ugliTables,
00060                              std::string shpName,bool isInner = false);
00061    TGeoShape* BuildNearXtru(const UgliDbiTables& ugliTables,
00062                             std::string shpName,bool isInner = false);
00063    TGeoShape* BuildNeariXtru(const UgliDbiTables& ugliTables,
00064                              std::string shpName,bool isInner = false);
00065    TGeoShape* BuildNearIXtru(const UgliDbiTables& ugliTables,
00066                              std::string shpName,bool isInner = false);
00067    TGeoShape* BuildNearLmXtru(const UgliDbiTables& ugliTables,
00068                               std::string shpName,bool isInner = false);
00069    TGeoShape* BuildNearlMXtru(const UgliDbiTables& ugliTables,
00070                               std::string shpName,bool isInner = false);
00071    void Build4Corners(const UgliDbiTables& ugliTables, Float_t& m01, 
00072                       Float_t& m23);
00073    void BuildHalfY(const UgliDbiTables& ugliTables);
00074    
00075    // Data members
00076    PlexScintMdlId fScintMdlId;     // Detector type, module type
00077    Float_t        fThick;     // Thickness of module
00078    Float_t        fSkinThick; // Aluminum shell thickness
00079    Float_t        fXY[4][2];  // Four corners of module outer dimension
00080    TGeoShape*     fBaseShp;     
00081    TGeoShape*     fBaseShpAir;  
00082    
00083 ClassDef(GeoScintMdlVolume,1)
00084 };
00085 #endif // GEOSCINTMDLVOLUME_H

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