/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSCollimatorBase.hh

00001 #ifndef BDSCollimator_h
00002 #define BDSCollimator_h 
00003 
00004 #include "BDSAcceleratorComponent.hh"
00005 #include "BDSMaterials.hh"
00006 #include "BDSTiltOffset.hh"
00007 
00008 #include "globals.hh" // geant4 types / globals
00009 #include "G4LogicalVolume.hh"
00010 #include "G4Mag_UsualEqRhs.hh"
00011 #include "G4UserLimits.hh"
00012 #include "G4VSolid.hh"
00013 #include "G4SubtractionSolid.hh"
00014 
00015 class G4VSolid;
00016 
00017 class BDSCollimatorBase :public BDSAcceleratorComponent
00018 {
00019 public:
00020   BDSCollimatorBase(G4String name,
00021                     G4double length,
00022                     G4double outerDiameter,
00023                     G4String type,
00024                     G4double xApertureIn = 0,
00025                     G4double yApertureIn = 0,
00026                     G4String collimatorMaterial = "copper",
00027                     G4String vacuumMaterial     = "vacuum",
00028                     BDSTiltOffset tiltOffset = BDSTiltOffset());
00029   ~BDSCollimatorBase();
00030 
00031 protected:
00032   virtual void Build();
00033   
00034   virtual void BuildContainerLogicalVolume();
00035 
00039   virtual void BuildInnerCollimator() = 0;
00040 
00041   // Geometrical objects:
00042   G4VSolid* collimatorSolid;
00043 
00044   G4VSolid* innerSolid;
00045   G4VSolid* vacuumSolid;
00046 
00047   G4double outerDiameter;
00048   G4double xAperture;
00049   G4double yAperture;
00050   G4String collimatorMaterial;
00051   G4String vacuumMaterial;
00052 
00053 };
00054 
00055 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7