00001
00002
00003
00004
00005
00006
00007 #ifndef BDSMuSpoiler_h
00008 #define BDSMuSpoiler_h 1
00009
00010 #include"globals.hh"
00011 #include"BDSAcceleratorComponent.hh"
00012 #include "BDSMaterials.hh"
00013 #include "G4LogicalVolume.hh"
00014
00015 #include "G4UserLimits.hh"
00016 #include "G4VisAttributes.hh"
00017 #include "G4Box.hh"
00018 #include "BDSEnergyCounterSD.hh"
00019 #include "BDSMuSpoilerMagField.hh"
00020 #include "G4FieldManager.hh"
00021
00022 class BDSMuSpoiler :public BDSAcceleratorComponent
00023 {
00024 public:
00025 BDSMuSpoiler(G4String& aName, G4double aLength,G4double bpRad,
00026 G4double rOuter,G4double BField);
00027
00028
00029 ~BDSMuSpoiler();
00030
00031 protected:
00032
00033 private:
00034 G4VisAttributes* SetVisAttributes();
00035
00036
00037
00038 void BuildMuSpoiler();
00039
00040 G4VPhysicalVolume* itsPhysiComp;
00041 G4VPhysicalVolume* itsPhysiComp2;
00042 G4LogicalVolume* itsSolidLogVol;
00043 G4LogicalVolume* itsInnerLogVol;
00044
00045 G4UserLimits* itsUserLimits;
00046 G4VisAttributes* itsVisAttributes;
00047 G4Mag_UsualEqRhs* itsEqRhs;
00048
00049 private:
00050 BDSEnergyCounterSD* itsEnergyCounterSD;
00051 G4double itsInnerRadius;
00052 G4double itsOuterRadius;
00053 G4double itsBField;
00054
00055 BDSMuSpoilerMagField* itsMagField;
00056 G4FieldManager* itsFieldMgr;
00057 };
00058
00059 #endif