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

REROOT_Geom.h

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

Generated on Fri Mar 28 15:39:14 2008 for loon by  doxygen 1.3.9.1