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

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 
00007 #include <limits>
00008 #include "BDSGlobalConstants.hh"
00009 #include "G4UniformMagField.hh"
00010 #include "globals.hh"
00011 #include "BDSSbendMagField.hh"
00012 
00013 BDSSbendMagField::BDSSbendMagField(const G4ThreeVector& aField,
00014                                const G4double length,
00015                                const G4double angle) 
00016   :G4UniformMagField(aField)
00017 {
00018   if(angle!=0.)
00019     {    // original
00020       //    itsLocalRadius=length/angle;
00021       itsLocalRadius=-length/angle;// minus sign for correct machine convention
00022       // check for synchrotron radiation factors
00023 #ifdef BDSDEBUG
00024       G4double B_inferred= 
00025         (BDSGlobalConstants::Instance()->GetBeamMomentum()/CLHEP::GeV)/
00026         (0.299792458 * (CLHEP::GeV/CLHEP::tesla/CLHEP::m)*itsLocalRadius/CLHEP::m);
00027       G4cout<<"B_inferred="<<B_inferred/CLHEP::tesla<<
00028         " aField="<<aField/CLHEP::tesla<<G4endl;
00029 #endif
00030     } else {
00031     itsLocalRadius = std::numeric_limits<double>::max();
00032 #ifdef BDSDEBUG
00033     G4double B_inferred=0;
00034     G4cout<<"B_inferred="<<B_inferred/CLHEP::tesla<<
00035       " aField="<<aField/CLHEP::tesla<<G4endl;
00036 #endif
00037   }
00038 }
00039 
00040 BDSSbendMagField::~BDSSbendMagField()
00041 {}
00042 
00043 

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7