00001 #include "BDSTunnelCavitySection.hh" 00002 #include "BDSMaterials.hh" 00003 00004 BDSTunnelCavitySection::BDSTunnelCavitySection(){ 00005 G4Exception("Error - BDSTunnelCavitySection must be initialized with an accelerator component as argument!", "-1", FatalErrorInArgument, ""); 00006 } 00007 00008 BDSTunnelCavitySection::BDSTunnelCavitySection(BDSAcceleratorComponent* var){ 00009 _acceleratorComponent=var; 00010 _name=_acceleratorComponent->GetName()+"_tunnel_cavity"; 00011 _radius=_acceleratorComponent->GetTunnelRadius(); 00012 _length=_acceleratorComponent->GetLength(); 00013 _angle=_acceleratorComponent->GetAngle(); 00014 G4double posX(_acceleratorComponent->GetTunnelOffsetX()); 00015 G4double posY(BDSGlobalConstants::Instance()->GetTunnelOffsetY()); 00016 _positionOffset=new G4ThreeVector(posX, posY, 0); 00017 _material=BDSMaterials::Instance()->GetMaterial(_acceleratorComponent->GetTunnelCavityMaterial()); 00018 _nullRotationMatrix=new G4RotationMatrix(0,0,0); 00019 } 00020 00021 BDSTunnelCavitySection::~BDSTunnelCavitySection(){ 00022 delete _positionOffset; 00023 delete _logicalVolume; 00024 delete _solid; 00025 delete _physi; 00026 delete _nullRotationMatrix; 00027 } 00028 00029 //Setting functions 00030 void BDSTunnelCavitySection::rotation(G4RotationMatrix* var){ _rotation = var; } 00031 void BDSTunnelCavitySection::logicalVolume(G4LogicalVolume* var){ _logicalVolume = var; } 00032 void BDSTunnelCavitySection::solid(G4VSolid* var){ _solid = var; } 00033 void BDSTunnelCavitySection::physi(G4VPhysicalVolume* var){ _physi = var; } 00034 00035 //Getting functions 00036 G4ThreeVector* BDSTunnelCavitySection::positionOffset(){return _positionOffset;} 00037 G4RotationMatrix* BDSTunnelCavitySection::rotation(){return _rotation;} 00038 G4double BDSTunnelCavitySection::length(){return _length;} 00039 G4double BDSTunnelCavitySection::angle(){return _angle;} 00040 G4double BDSTunnelCavitySection::radius(){return _radius;} 00041 G4String BDSTunnelCavitySection::name(){return _name;} 00042 G4Material* BDSTunnelCavitySection::material(){return _material;} 00043 G4LogicalVolume* BDSTunnelCavitySection::logicalVolume() {return _logicalVolume;} 00044 G4VSolid* BDSTunnelCavitySection::solid() {return _solid;} 00045 BDSAcceleratorComponent* BDSTunnelCavitySection::acceleratorComponent(){ return _acceleratorComponent; } 00046 00047