/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/src/BDSSolenoid.cc

00001 #include "BDSBeamPipeInfo.hh"
00002 #include "BDSDebug.hh"
00003 #include "BDSGlobalConstants.hh"
00004 #include "BDSMagnet.hh"
00005 #include "BDSMagnetOuterInfo.hh"
00006 #include "BDSSolenoid.hh"
00007 #include "BDSSolenoidMagField.hh"
00008 #include "BDSSolenoidStepper.hh"
00009 
00010 #include "G4LogicalVolume.hh"
00011 #include "G4Mag_UsualEqRhs.hh"
00012 #include "G4MagneticField.hh"
00013 #include "G4Tubs.hh"
00014 #include "G4UniformMagField.hh"
00015 #include "G4UserLimits.hh"
00016 #include "G4VisAttributes.hh"
00017 #include "G4VPhysicalVolume.hh"
00018 
00019 class BDSTiltOffset;
00020 
00021 BDSSolenoid::BDSSolenoid(G4String           name,
00022                          G4double           length,
00023                          G4double           bField,
00024                          BDSBeamPipeInfo*   beamPipeInfo,
00025                          BDSMagnetOuterInfo magnetOuterInfo,
00026                          BDSTiltOffset      tiltOffset):
00027   BDSMagnet(BDSMagnetType::solenoid, name, length,
00028             beamPipeInfo, magnetOuterInfo, tiltOffset),
00029   itsBField(bField)
00030 {;}
00031 
00032 void BDSSolenoid::Build()
00033 {
00034   BDSMagnet::Build();
00035   if(BDSGlobalConstants::Instance()->GetIncludeIronMagFields())
00036     {
00037       G4cout << __METHOD_NAME__ << "IncludeIronMagFields option not implemented for solenoid class"<<G4endl;
00038     }
00039 }
00040 
00041 void BDSSolenoid::BuildBPFieldAndStepper()
00042 {
00043 #ifdef BDSDEBUG
00044   G4cout << __METHOD_NAME__ << G4endl;
00045 #endif
00046   
00047   G4ThreeVector Bfield(0.,0.,itsBField);
00048   itsMagField = new G4UniformMagField(Bfield);
00049   itsEqRhs    = new G4Mag_UsualEqRhs(itsMagField);
00050   BDSSolenoidStepper* solenoidStepper = new BDSSolenoidStepper(itsEqRhs);
00051   solenoidStepper->SetBField(itsBField);
00052   itsStepper = solenoidStepper;
00053 }

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7