00001 00002 // 00003 // GeoVolume 00004 // 00005 // GeoVolume is a specialized TGeoVolume to implement Minos specific methods 00006 // that are generic to all Minos volume types (plane,module,strip) 00007 // 00008 // Author: S. Kasahara 04/05 00010 00011 #ifndef GEOVOLUME_H 00012 #define GEOVOLUME_H 00013 00014 #include <TGeoVolume.h> // base class 00015 #include "GeoGeometry/GeoGeometry.h" 00016 00017 class TGeoShape; 00018 00019 class GeoVolume : public TGeoVolume { 00020 00021 public: 00022 00023 GeoVolume(): fGeoGeometry(0), fShpName("") {} // def, used by i/o 00024 virtual ~GeoVolume() {} 00025 virtual void UpdateGlobalManager() const 00026 { if ( fGeoGeometry ) fGeoGeometry->UpdateGlobalManager(); 00027 else gGeoManager = 0; } 00028 00029 // State testing methods 00030 00031 00032 protected: 00033 00034 GeoVolume(GeoGeometry* geo, const char* volname, const TGeoMedium* med); 00035 TGeoShape* GetExistingShape() const; 00036 virtual Float_t GetScale() const { 00037 return Geo::GetScale(fGeoGeometry->GetAppType()); } 00038 00039 private: 00040 00041 // Disable copy and assignment ctor by making them private and w/no imp 00042 GeoVolume(const GeoVolume& that); 00043 GeoVolume& operator=(const GeoVolume& that); 00044 00045 protected: 00046 00047 GeoGeometry* fGeoGeometry; 00048 std::string fShpName; // name of associated volume shape 00049 00050 ClassDef(GeoVolume,1) 00051 }; 00052 #endif // GEOVOLUME_H
1.3.9.1