include/BDSTunnelCavity.hh

00001 #ifndef __BDSTUNNELCAVITY_H
00002 #define __BDSTUNNELCAVITY_H
00003 
00004 #include "BDSTunnelCavitySectionGenerator.hh"
00005 #include "BDSTunnelCavitySectionBuilder.hh"
00006 #include "BDSStraightTunnelCavitySectionBuilder.hh"
00007 #include "BDSAngleTunnelCavitySectionBuilder.hh"
00008 #include "BDSTunnelCavitySection.hh"
00009 #include "BDSAcceleratorComponent.hh"
00010 #include "G4LogicalVolume.hh"
00011 #include "G4VPhysicalVolume.hh"
00012 #include "G4ThreeVector.hh"
00013 
00014 class BDSTunnelCavity{
00015 public:
00016   static BDSTunnelCavity* Instance();
00017   ~BDSTunnelCavity();
00018 
00019   void build();
00020 
00021   G4ThreeVector* widthMax();
00022     
00023     
00024 private:
00025   BDSTunnelCavity();
00026   static BDSTunnelCavity* _instance;
00027 
00028   
00029   G4VSolid* _solidVolume;
00030   G4LogicalVolume* _logicalVolume;
00031   G4VPhysicalVolume* _physicalVolume;
00032 
00033   BDSTunnelCavitySectionGenerator _sectionGenerator;
00034   BDSTunnelCavitySectionBuilder* _straightSectionBuilder;
00035   BDSTunnelCavitySectionBuilder* _angleSectionBuilder;
00036   
00037   BDSAcceleratorComponent* _acceleratorComponent;
00038 
00039   void inspectBeamline();
00040   void constructSection();
00041   void calcWidthMax();
00042   void appendSection();
00043   void constructLogical();
00044 
00045   G4ThreeVector* _widthMax;
00046 
00047   G4bool _first;
00048 
00049 };
00050 
00051 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7