00001 // $ID: REROOT_Geom.h,v 1.2 1997/01/13 16:25 gmieg Exp $ 00002 // 00003 // Define Class REROOT_Geom -- Interacts with REROOT_Geom Data Classes 00004 // Adapted from Matt Langston's STL based Event Class. G. Irwin 1/97 00005 00006 #ifndef REROOT_GEOM_H 00007 #define REROOT_GEOM_H 00008 00009 #include <iosfwd> 00010 00011 #include "TClonesArray.h" 00012 00013 #include "REROOT_Classes/REROOT_AvailNuclei.h" 00014 #include "REROOT_Classes/REROOT_BeamSystem.h" 00015 #include "REROOT_Classes/REROOT_CellPos.h" 00016 #include "REROOT_Classes/REROOT_CoilTube.h" 00017 #include "REROOT_Classes/REROOT_FLSParam.h" 00018 #include "REROOT_Classes/REROOT_GAFKey.h" 00019 #include "REROOT_Classes/REROOT_GeomMisc.h" 00020 #include "REROOT_Classes/REROOT_MassDistrib.h" 00021 #include "REROOT_Classes/REROOT_Material.h" 00022 #include "REROOT_Classes/REROOT_MdlOrg.h" 00023 #include "REROOT_Classes/REROOT_Mixture.h" 00024 #include "REROOT_Classes/REROOT_PlanePos.h" 00025 #include "REROOT_Classes/REROOT_PlaneSpec.h" 00026 #include "REROOT_Classes/REROOT_PlexusAdd.h" 00027 #include "REROOT_Classes/REROOT_Pln2MUX.h" 00028 #include "REROOT_Classes/REROOT_Rotm.h" 00029 #include "REROOT_Classes/REROOT_SubVolPos.h" 00030 #include "REROOT_Classes/REROOT_SubVolSpec.h" 00031 #include "REROOT_Classes/REROOT_SuperModule.h" 00032 #include "REROOT_Classes/REROOT_TMedium.h" 00033 #include "REROOT_Classes/REROOT_TPar.h" 00034 #include "REROOT_Classes/REROOT_TubePixelInfo.h" 00035 #include "REROOT_Classes/REROOT_TubePixelMap.h" 00036 00037 #include "REROOT_Classes/REROOT_Record.h" 00038 #include "REROOT_Classes/ADAMO_Shell.h" 00039 #include "REROOT_Classes/REROOT_Visitor.h" 00040 00041 class REROOT_Geom; 00042 extern REROOT_Geom *gREROOT_Geom; 00043 00044 class REROOT_Geom : public REROOT_Record 00045 { 00046 private: 00047 TClonesArray *m_availnucleis; //-> Ptr to static storage location 00048 TClonesArray *m_beamsystems; //-> Ptr to static storage location 00049 TClonesArray *m_cellposs; //-> Ptr to static storage location 00050 TClonesArray *m_coiltubes; //-> Ptr to static storage location 00051 TClonesArray *m_flsparams; //-> Ptr to static storage location 00052 TClonesArray *m_gafkeys; //-> Ptr to static storage location 00053 TClonesArray *m_geommiscs; //-> Ptr to static storage location 00054 TClonesArray *m_massdistribs; //-> Ptr to static storage location 00055 TClonesArray *m_materials; //-> Ptr to static storage location 00056 TClonesArray *m_mdlorgs; //-> Ptr to static storage location 00057 TClonesArray *m_mixtures; //-> Ptr to static storage location 00058 TClonesArray *m_planeposs; //-> Ptr to static storage location 00059 TClonesArray *m_planespecs; //-> Ptr to static storage location 00060 TClonesArray *m_plexusadds; //-> Ptr to static storage location 00061 TClonesArray *m_pln2muxs; //-> Ptr to static storage location 00062 TClonesArray *m_rotms; //-> Ptr to static storage location 00063 TClonesArray *m_subvolposs; //-> Ptr to static storage location 00064 TClonesArray *m_subvolspecs; //-> Ptr to static storage location 00065 TClonesArray *m_supermodules; //-> Ptr to static storage location 00066 TClonesArray *m_tmediums; //-> Ptr to static storage location 00067 TClonesArray *m_tpars; //-> Ptr to static storage location 00068 TClonesArray *m_tubepixelinfos; //-> Ptr to static storage location 00069 TClonesArray *m_tubepixelmaps; //-> Ptr to static storage location 00070 00071 static REROOT_Geom *s_curgeom; 00072 00073 static TClonesArray *s_availnucleis; 00074 static TClonesArray *s_beamsystems; 00075 static TClonesArray *s_cellposs; 00076 static TClonesArray *s_coiltubes; 00077 static TClonesArray *s_flsparams; 00078 static TClonesArray *s_gafkeys; 00079 static TClonesArray *s_geommiscs; 00080 static TClonesArray *s_massdistribs; 00081 static TClonesArray *s_materials; 00082 static TClonesArray *s_mdlorgs; 00083 static TClonesArray *s_mixtures; 00084 static TClonesArray *s_planeposs; 00085 static TClonesArray *s_planespecs; 00086 static TClonesArray *s_plexusadds; 00087 static TClonesArray *s_pln2muxs; 00088 static TClonesArray *s_rotms; 00089 static TClonesArray *s_subvolposs; 00090 static TClonesArray *s_subvolspecs; 00091 static TClonesArray *s_supermodules; 00092 static TClonesArray *s_tmediums; 00093 static TClonesArray *s_tpars; 00094 static TClonesArray *s_tubepixelinfos; 00095 static TClonesArray *s_tubepixelmaps; 00096 00097 static Bool_t AvailNuclei_isWanted; 00098 static Bool_t BeamSystem_isWanted; 00099 static Bool_t CellPos_isWanted; 00100 static Bool_t CoilTube_isWanted; 00101 static Bool_t FLSParam_isWanted; 00102 static Bool_t GAFKey_isWanted; 00103 static Bool_t GeomMisc_isWanted; 00104 static Bool_t MassDistrib_isWanted; 00105 static Bool_t Material_isWanted; 00106 static Bool_t MdlOrg_isWanted; 00107 static Bool_t Mixture_isWanted; 00108 static Bool_t PlanePos_isWanted; 00109 static Bool_t PlaneSpec_isWanted; 00110 static Bool_t PlexusAdd_isWanted; 00111 static Bool_t Pln2MUX_isWanted; 00112 static Bool_t Rotm_isWanted; 00113 static Bool_t SubVolPos_isWanted; 00114 static Bool_t SubVolSpec_isWanted; 00115 static Bool_t SuperModule_isWanted; 00116 static Bool_t TMedium_isWanted; 00117 static Bool_t TPar_isWanted; 00118 static Bool_t TubePixelInfo_isWanted; 00119 static Bool_t TubePixelMap_isWanted; 00120 00121 static Int_t fNumberOfGeomRead; // nth version read in 00122 static Float_t fGlobalZ0Shift; // shift all Reroot z's by this 00123 00124 public: 00125 REROOT_Geom(); 00126 ~REROOT_Geom(); 00127 00128 void init(); 00129 void Clear(Option_t *option=""); 00130 void fill_objects_from_GAF(ADAMO_Shell*); 00131 00132 void Print(Option_t *option="") const; 00133 00134 void FillGlobalZ0Shift(); 00135 Float_t GetGlobalZ0Shift() { return fGlobalZ0Shift; } 00136 void IncrementReads() { fNumberOfGeomRead++; } 00137 Int_t GetNumberRead() { return fNumberOfGeomRead; } 00138 00139 virtual void accept(REROOT_Visitor& v) { v.visit(this); } 00140 00141 static void Set_curgeom(REROOT_Geom *rgeo) {s_curgeom = rgeo;} 00142 static REROOT_Geom *curgeom() {return s_curgeom;} 00143 00144 static void set_AvailNuclei_isWanted(Bool_t lj) 00145 {AvailNuclei_isWanted=lj;} 00146 static void set_BeamSystem_isWanted(Bool_t lj) 00147 {BeamSystem_isWanted=lj;} 00148 static void set_CellPos_isWanted(Bool_t lj) {CellPos_isWanted = lj;} 00149 static void set_CoilTube_isWanted(Bool_t lj) {CoilTube_isWanted = lj;} 00150 static void set_FLSParam_isWanted(Bool_t lj) {FLSParam_isWanted = lj;} 00151 static void set_GAFKey_isWanted(Bool_t lj) {GAFKey_isWanted = lj;} 00152 static void set_GeomMisc_isWanted(Bool_t lj) {GeomMisc_isWanted = lj;} 00153 static void set_MassDistrib_isWanted(Bool_t lj) 00154 {MassDistrib_isWanted = lj;} 00155 static void set_Material_isWanted(Bool_t lj) {Material_isWanted = lj;} 00156 static void set_MdlOrg_isWanted(Bool_t lj) {MdlOrg_isWanted = lj;} 00157 static void set_Mixture_isWanted(Bool_t lj) {Mixture_isWanted = lj;} 00158 static void set_PlanePos_isWanted(Bool_t lj) {PlanePos_isWanted = lj;} 00159 static void set_PlaneSpec_isWanted(Bool_t lj) 00160 {PlaneSpec_isWanted = lj;} 00161 static void set_PlexusAdd_isWanted(Bool_t lj) 00162 {PlexusAdd_isWanted = lj;} 00163 static void set_Pln2MUX_isWanted(Bool_t lj) {Pln2MUX_isWanted = lj;} 00164 static void set_Rotm_isWanted(Bool_t lj) {Rotm_isWanted = lj;} 00165 static void set_SubVolPos_isWanted(Bool_t lj) 00166 {SubVolPos_isWanted = lj;} 00167 static void set_SubVolSpec_isWanted(Bool_t lj) 00168 {SubVolSpec_isWanted=lj;} 00169 static void set_SuperModule_isWanted(Bool_t lj) 00170 {SuperModule_isWanted=lj;} 00171 static void set_TMedium_isWanted(Bool_t lj) {TMedium_isWanted = lj;} 00172 static void set_TPar_isWanted(Bool_t lj) {TPar_isWanted = lj;} 00173 static void set_TubePixelInfo_isWanted(Bool_t lj) 00174 {TubePixelInfo_isWanted = lj;} 00175 static void set_TubePixelMap_isWanted(Bool_t lj) 00176 {TubePixelMap_isWanted = lj;} 00177 00178 static Bool_t get_AvailNuclei_isWanted(){return AvailNuclei_isWanted;} 00179 static Bool_t get_BeamSystem_isWanted() {return BeamSystem_isWanted;} 00180 static Bool_t get_CellPos_isWanted() {return CellPos_isWanted;} 00181 static Bool_t get_CoilTube_isWanted() {return CoilTube_isWanted;} 00182 static Bool_t get_FLSParam_isWanted() {return FLSParam_isWanted;} 00183 static Bool_t get_GAFKey_isWanted() {return GAFKey_isWanted;} 00184 static Bool_t get_GeomMisc_isWanted() {return GeomMisc_isWanted;} 00185 static Bool_t get_MassDistrib_isWanted(){return MassDistrib_isWanted;} 00186 static Bool_t get_Material_isWanted() {return Material_isWanted;} 00187 static Bool_t get_MdlOrg_isWanted() {return MdlOrg_isWanted;} 00188 static Bool_t get_Mixture_isWanted() {return Mixture_isWanted;} 00189 static Bool_t get_PlanePos_isWanted() {return PlanePos_isWanted;} 00190 static Bool_t get_PlaneSpec_isWanted() {return PlaneSpec_isWanted;} 00191 static Bool_t get_PlexusAdd_isWanted() {return PlexusAdd_isWanted;} 00192 static Bool_t get_Pln2MUX_isWanted() {return Pln2MUX_isWanted;} 00193 static Bool_t get_Rotm_isWanted() {return Rotm_isWanted;} 00194 static Bool_t get_SubVolPos_isWanted() {return SubVolPos_isWanted;} 00195 static Bool_t get_SubVolSpec_isWanted() {return SubVolSpec_isWanted;} 00196 static Bool_t get_SuperModule_isWanted(){return SuperModule_isWanted;} 00197 static Bool_t get_TMedium_isWanted() {return TMedium_isWanted;} 00198 static Bool_t get_TPar_isWanted() {return TPar_isWanted;} 00199 static Bool_t get_TubePixelInfo_isWanted() 00200 {return TubePixelInfo_isWanted;} 00201 static Bool_t get_TubePixelMap_isWanted() 00202 {return TubePixelMap_isWanted;} 00203 00204 typedef Int_t AvailNuclei_list_size_type; 00205 typedef Int_t BeamSystem_list_size_type; 00206 typedef Int_t CellPos_list_size_type; 00207 typedef Int_t CoilTube_list_size_type; 00208 typedef Int_t FLSParam_list_size_type; 00209 typedef Int_t GAFKey_list_size_type; 00210 typedef Int_t GeomMisc_list_size_type; 00211 typedef Int_t MassDistrib_list_size_type; 00212 typedef Int_t Material_list_size_type; 00213 typedef Int_t MdlOrg_list_size_type; 00214 typedef Int_t Mixture_list_size_type; 00215 typedef Int_t PlanePos_list_size_type; 00216 typedef Int_t PlaneSpec_list_size_type; 00217 typedef Int_t PlexusAdd_list_size_type; 00218 typedef Int_t Pln2MUX_list_size_type; 00219 typedef Int_t Rotm_list_size_type; 00220 typedef Int_t SubVolPos_list_size_type; 00221 typedef Int_t SubVolSpec_list_size_type; 00222 typedef Int_t SuperModule_list_size_type; 00223 typedef Int_t TMedium_list_size_type; 00224 typedef Int_t TPar_list_size_type; 00225 typedef Int_t TubePixelInfo_list_size_type; 00226 typedef Int_t TubePixelMap_list_size_type; 00227 00228 AvailNuclei_list_size_type n_availnucleis() const; 00229 BeamSystem_list_size_type n_beamsystems() const; 00230 CellPos_list_size_type n_cellposs() const; 00231 CoilTube_list_size_type n_coiltubes() const; 00232 FLSParam_list_size_type n_flsparams() const; 00233 GAFKey_list_size_type n_gafkeys() const; 00234 GeomMisc_list_size_type n_geommiscs() const; 00235 MassDistrib_list_size_type n_massdistribs() const; 00236 Material_list_size_type n_materials() const; 00237 MdlOrg_list_size_type n_mdlorgs() const; 00238 Mixture_list_size_type n_mixtures() const; 00239 PlanePos_list_size_type n_planeposs() const; 00240 PlaneSpec_list_size_type n_planespecs() const; 00241 PlexusAdd_list_size_type n_plexusadds() const; 00242 Pln2MUX_list_size_type n_pln2muxs() const; 00243 Rotm_list_size_type n_rotms() const; 00244 SubVolPos_list_size_type n_subvolposs() const; 00245 SubVolSpec_list_size_type n_subvolspecs() const; 00246 SuperModule_list_size_type n_supermodules() const; 00247 TMedium_list_size_type n_tmediums() const; 00248 TPar_list_size_type n_tpars() const; 00249 TubePixelInfo_list_size_type n_tubepixelinfos() const; 00250 TubePixelMap_list_size_type n_tubepixelmaps() const; 00251 00252 const TClonesArray *availnucleis() const {return m_availnucleis; } 00253 const TClonesArray *beamsystems() const {return m_beamsystems; } 00254 const TClonesArray *cellposs() const {return m_cellposs; } 00255 const TClonesArray *coiltubes() const {return m_coiltubes; } 00256 const TClonesArray *flsparams() const {return m_flsparams; } 00257 const TClonesArray *gafkeys() const {return m_gafkeys; } 00258 const TClonesArray *geommiscs() const {return m_geommiscs; } 00259 const TClonesArray *massdistribs() const {return m_massdistribs; } 00260 const TClonesArray *materials() const {return m_materials; } 00261 const TClonesArray *mdlorgs() const {return m_mdlorgs; } 00262 const TClonesArray *mixtures() const {return m_mixtures; } 00263 const TClonesArray *planeposs() const {return m_planeposs; } 00264 const TClonesArray *planespecs() const {return m_planespecs; } 00265 const TClonesArray *plexusadds() const {return m_plexusadds; } 00266 const TClonesArray *pln2muxs() const {return m_pln2muxs; } 00267 const TClonesArray *rotms() const {return m_rotms; } 00268 const TClonesArray *subvolposs() const {return m_subvolposs; } 00269 const TClonesArray *subvolspecs() const {return m_subvolspecs; } 00270 const TClonesArray *supermodules() const {return m_supermodules; } 00271 const TClonesArray *tmediums() const {return m_tmediums; } 00272 const TClonesArray *tpars() const {return m_tpars; } 00273 const TClonesArray *tubepixelinfos() const {return m_tubepixelinfos; } 00274 const TClonesArray *tubepixelmaps() const {return m_tubepixelmaps; } 00275 00276 ClassDef(REROOT_Geom,1) // REROOT_Geom Class 00277 00278 }; 00279 #endif // REROOT_GEOM_H
1.3.9.1