00001 #include "BDSDrift.hh" 00002 00003 #include "globals.hh" // geant4 globals / types 00004 #include "G4Material.hh" 00005 00006 #include <list> 00007 00008 #include "BDSAcceleratorComponent.hh" 00009 #include "BDSGlobalConstants.hh" 00010 #include "BDSBeamPipe.hh" 00011 #include "BDSBeamPipeFactory.hh" 00012 #include "BDSBeamPipeInfo.hh" 00013 00014 class BDSTiltOffset; 00015 00016 BDSDrift::BDSDrift (G4String name, 00017 G4double length, 00018 BDSBeamPipeInfo* beamPipeInfoIn, 00019 BDSTiltOffset tiltOffset): 00020 BDSAcceleratorComponent(name, length, 0, "drift", tiltOffset) 00021 { 00022 beamPipeInfo = beamPipeInfoIn; 00023 } 00024 00025 void BDSDrift::Build() 00026 { 00027 BDSBeamPipe* pipe = BDSBeamPipeFactory::Instance()->CreateBeamPipe(name, 00028 chordLength, 00029 beamPipeInfo); 00030 if(BDSGlobalConstants::Instance()->GetSensitiveBeamPipe()) 00031 {RegisterSensitiveVolumes(pipe->GetAllSensitiveVolumes());} 00032 00033 containerLogicalVolume = pipe->GetContainerLogicalVolume(); 00034 containerSolid = pipe->GetContainerSolid(); 00035 00036 // Set extents 00037 SetExtentX(pipe->GetExtentX()); 00038 SetExtentY(pipe->GetExtentY()); 00039 SetExtentZ(pipe->GetExtentZ()); 00040 }