00001 #ifndef __BDSREGIONS_H 00002 #define __BDSREGIONS_H 00003 00004 #include "BDSShowerModel.hh" 00005 #include "BDSGlobalConstants.hh" 00006 #include "G4Region.hh" 00007 #include "G4ProductionCuts.hh" 00008 #include "GFlashHitMaker.hh" 00009 #include "GFlashParticleBounds.hh" 00010 #include "GFlashHomoShowerParameterisation.hh" 00011 #include <vector> 00012 #include "BDSAcceleratorComponent.hh" 00013 00014 class BDSRegions{ 00015 public: 00016 BDSRegions(); 00017 ~BDSRegions(); 00018 G4Region* precisionRegion(); 00019 G4Region* worldRegion(); 00020 00021 private: 00022 void buildRegions(); 00023 void buildNormalRegion(); 00024 void buildPrecisionRegion(); 00025 void buildGasRegion(); 00026 void buildGFlashRegion(BDSAcceleratorComponent* var); 00027 void buildGFlashRegion(); 00028 00029 G4Region* _precisionRegion; 00030 G4Region* _gasRegion; 00031 G4Region* _worldRegion; 00032 std::vector<G4Region*> _gFlashRegion; 00033 00034 G4ProductionCuts* _precisionProductionCuts; 00035 G4ProductionCuts* _gasProductionCuts; 00036 G4ProductionCuts* _gFlashProductionCuts; 00037 00038 std::vector<GFlashHomoShowerParameterisation*> _gFlashParameterisation; 00039 GFlashHitMaker *_gFlashHitMaker; 00040 GFlashParticleBounds *_gFlashParticleBounds; 00041 GFlashParticleBounds *_gFlashParticleBoundsVac; 00042 std::vector<BDSShowerModel*> _gFlashFastShowerModel; 00043 }; 00044 00045 #endif