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

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 12.12.2004
00004    Copyright (c) 2004 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 
00007 #include "BDSGlobalConstants.hh" 
00008 
00009 #include "G4FieldManager.hh"
00010 #include "G4LogicalVolume.hh"
00011 #include "G4PVPlacement.hh"               
00012 #include "G4Tubs.hh"
00013 #include "G4UserLimits.hh"
00014 #include "G4VisAttributes.hh"
00015 #include "G4VPhysicalVolume.hh"
00016 
00017 #include "BDSBeamPipeFactory.hh"
00018 #include "BDSBeamPipeInfo.hh"
00019 #include "BDSMagnet.hh"
00020 #include "BDSMagnetOuterInfo.hh"
00021 #include "BDSMagnetType.hh"
00022 #include "BDSMagnet.hh"
00023 #include "BDSMuSpoiler.hh"
00024 #include "BDSMuSpoilerMagField.hh"
00025 
00026 class BDSTiltOffset;
00027 
00028 BDSMuSpoiler::BDSMuSpoiler(G4String           name,
00029                            G4double           length,
00030                            G4double           bField,
00031                            BDSBeamPipeInfo*   beamPipeInfo,
00032                            BDSMagnetOuterInfo magnetOuterInfo,
00033                            BDSTiltOffset      tiltOffset):
00034   BDSMagnet(BDSMagnetType::muspoiler, name, length,
00035             beamPipeInfo, magnetOuterInfo, tiltOffset),
00036   itsBField(bField)
00037 {;}
00038 
00039 void BDSMuSpoiler::BuildBPFieldAndStepper()
00040 {
00041   // don't do anything and leave as null pointers
00042   // don't worry, they won't be attached if null - whew
00043   return;
00044 }
00045 
00046 void BDSMuSpoiler::BuildOuterVolume()
00047 {
00048   BDSMagnet::BuildOuterVolume();
00049 
00050   // prepare and attach field
00051   delete itsOuterMagField;
00052   delete itsOuterFieldMgr;
00053   itsOuterMagField = new BDSMuSpoilerMagField(itsBField);
00054   itsOuterFieldMgr = new G4FieldManager(itsOuterMagField);
00055   if(BDSGlobalConstants::Instance()->GetDeltaIntersection()>0)
00056     {itsOuterFieldMgr->SetDeltaIntersection(BDSGlobalConstants::Instance()->GetDeltaIntersection());}
00057   if(BDSGlobalConstants::Instance()->GetMinimumEpsilonStep()>0)
00058     {itsOuterFieldMgr->SetMinimumEpsilonStep(BDSGlobalConstants::Instance()->GetMinimumEpsilonStep());}
00059   if(BDSGlobalConstants::Instance()->GetMaximumEpsilonStep()>0)
00060     {itsOuterFieldMgr->SetMaximumEpsilonStep(BDSGlobalConstants::Instance()->GetMaximumEpsilonStep());}
00061   //if(BDSGlobalConstants::Instance()->GetDeltaOneStep()>0)
00062   //  {itsOuterFieldMgr->SetDeltaOneStep(BDSGlobalConstants::Instance()->GetDeltaOneStep());}
00063   if(outer)
00064     {outer->GetContainerLogicalVolume()->SetFieldManager(itsOuterFieldMgr,false);}
00065 }
00066 
00067 BDSMuSpoiler::~BDSMuSpoiler()
00068 {
00069 }

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7