00001
00002
00003
00004
00005 #ifndef BDSCollimator_h
00006 #define BDSCollimator_h
00007
00008 #include"globals.hh"
00009 #include"BDSAcceleratorComponent.hh"
00010 #include "BDSMaterials.hh"
00011 #include "G4LogicalVolume.hh"
00012
00013 #include "G4UserLimits.hh"
00014 #include "G4VisAttributes.hh"
00015 #include "G4Box.hh"
00016 #include "G4EllipticalTube.hh"
00017 #include "BDSEnergyCounterSD.hh"
00018
00019 #include "parser/gmad.h"
00020
00021
00022 class BDSCollimator :public BDSAcceleratorComponent
00023 {
00024 public:
00025 BDSCollimator(G4String aName, G4double aLength,G4double bpRad,
00026 G4double xAper, G4double yAper,G4int type,G4Material *collimatorMaterial, G4double outR);
00027 ~BDSCollimator();
00028
00029 protected:
00030
00031 private:
00032 void BuildInnerCollimator();
00033 G4VisAttributes* SetVisAttributes();
00034
00035
00036
00037 G4VPhysicalVolume* itsPhysiComp;
00038 G4VPhysicalVolume* itsPhysiComp2;
00039 G4LogicalVolume* itsSolidLogVol;
00040 G4LogicalVolume* itsInnerLogVol;
00041
00042 G4UserLimits* itsUserLimits;
00043 G4VisAttributes* itsVisAttributes;
00044 G4Mag_UsualEqRhs* itsEqRhs;
00045
00046 private:
00047 G4Material* itsCollimatorMaterial;
00048 BDSEnergyCounterSD* itsEnergyCounterSD;
00049 G4double itsOuterR;
00050 };
00051
00052 #endif