00001 #ifndef STAR_StiGeomMake
00002 #define STAR_StiGeomMake
00003
00004
00005
00006 #include "TVolume.h"
00007 #include "StMessMgr.h"
00008
00009 class TVolumePosition;
00010 class TShape;
00011 class TRotMatrix;
00012
00013 class StiPlacement;
00014 class StiPlanarShape;
00015 class StiCylindricalShape;
00016 class StiDetectorBuilder;
00017 class StiShape;
00018 class StiDetector;
00019 class StiToolkit;
00020
00021 class StiDetectorVolume : public TVolume {
00022
00023 private:
00024 StiDetector *fDetector;
00025
00026
00027 StiDetectorVolume(TNode& node);
00028 StiDetectorVolume(const TVolume&);
00029 protected:
00030
00031
00032 StiDetectorVolume(StiDetector *detector);
00033 StiDetectorVolume(StiDetector *detector,const Text_t* name, const Text_t* title, const Text_t* shapename, Option_t* option = "");
00034 StiDetectorVolume(StiDetector *detector,const Text_t* name, const Text_t* title, TShape* shape, Option_t* option = "");
00035 void MakeDetector(StiToolkit &tool, const TString &detectorName="", unsigned int select=kAll);
00036 static TShape *MakeShape(const StiShape *shape,const char*material);
00037 static TShape *MakeShape(const StiPlanarShape &shape,const char*material);
00038 static TShape *MakeShape(const StiCylindricalShape &shape,const char*material);
00039 void MakeVolume(const StiDetectorBuilder &builder, unsigned int select=kAll);
00040 public:
00041 enum { kAll, kActive, kPassivie };
00042
00043 StiDetectorVolume(){;}
00044 StiDetectorVolume(StiToolkit &tool, const TString &detectorName="", unsigned int select=kAll);
00045 StiDetectorVolume(const StiDetectorBuilder &builder, unsigned int select=kAll);
00046
00047 virtual ~StiDetectorVolume(){;}
00048 virtual void Browse(TBrowser *b);
00049 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
00050
00051 ClassDef(StiDetectorVolume,0);
00052 };
00053 #endif