/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/BesSim/BesSim-00-01-24/BesSim/BesMagneticField.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * DISCLAIMER                                                       *
00004 // *                                                                  *
00005 // * The following disclaimer summarizes all the specific disclaimers *
00006 // * of contributors to this software. The specific disclaimers,which *
00007 // * govern, are listed with their locations in:                      *
00008 // *   http://cern.ch/geant4/license                                  *
00009 // *                                                                  *
00010 // * Neither the authors of this software system, nor their employing *
00011 // * institutes,nor the agencies providing financial support for this *
00012 // * work  make  any representation or  warranty, express or implied, *
00013 // * regarding  this  software system or assume any liability for its *
00014 // * use.                                                             *
00015 // *                                                                  *
00016 // * This  code  implementation is the  intellectual property  of the *
00017 // * GEANT4 collaboration.                                            *
00018 // * By copying,  distributing  or modifying the Program (or any work *
00019 // * based  on  the Program)  you indicate  your  acceptance of  this *
00020 // * statement, and all its terms.                                    *
00021 // ********************************************************************
00022 //
00023 //
00024 // $Id: BesMagneticField.hh,v 1.5 2015/03/17 05:50:57 sunss Exp $
00025 // GEANT4 tag $Name: BesSim-00-01-24 $
00026 //
00027 //
00028 //    A class for control of the Magnetic Field of the detector.
00029 //  The field is assumed to be uniform.
00030 // 
00031 //  $ Id:  $
00032 
00033 // Should this be a:
00034 //    i) messenger
00035 //   ii) user class that creates the field       ? 
00036 //  iii) simply a derived class of Uniform field ?  <== I have chosen this now.
00037 //   iv) a field manager that creates/updates field    (Prefered?)
00038 //
00039 
00040 
00041 #ifndef BesMagneticField_H
00042 #define BesMagneticField_H
00043 
00044 #include "G4MagneticField.hh"
00045 #include "globals.hh"
00046 #include "MagneticField/IMagneticFieldSvc.h"
00047 
00048 using namespace std;
00049 
00050 class G4FieldManager;
00051 class G4ChordFinder;
00052 class G4Mag_UsualEqRhs;
00053 class G4MagIntegratorStepper;
00054 class BesMagneticFieldMessenger;
00055 
00056 class BesMagneticField:public G4MagneticField
00057 {
00058 public:
00059     
00060    BesMagneticField() ;               //  A zero field
00061 
00062  ~BesMagneticField() ;  
00063   void  GetFieldValue( const  double Point[3],
00064                                      double *Bfield          ) const;
00065   
00066   
00067   void SetStepperType( G4int i) { fStepperType = i ; }
00068 
00069   void SetStepper();
00070 
00071   void SetMinStep(G4double s) { fMinStep = s ; }
00072 
00073   void InitialiseAll();    //  Set parameters and call method below
00074   void CreateStepperAndChordFinder();
00075   
00076   void SetDeltaOneStep(double newvalue);
00077   void SetDeltaIntersection(double newvalue);
00078   void SetMinimumEpsilonStep(double newvalue);
00079   void SetMaximumEpsilonStep(double newvalue);
00080 
00081   
00082 protected:
00083 
00084   G4FieldManager*         fFieldManager ;
00085   G4ChordFinder*          fChordFinder ;
00086   G4Mag_UsualEqRhs*       fEquation ; 
00087    
00088 
00089   G4MagIntegratorStepper* fStepper ;
00090   G4int                   fStepperType ;
00091 
00092   G4double                fMinStep ;
00093  
00094   BesMagneticFieldMessenger*      fFieldMessenger;
00095   IMagneticFieldSvc*               m_pIMF;
00096 };
00097 
00098 #endif

Generated on Tue Nov 29 23:14:23 2016 for BOSS_7.0.2 by  doxygen 1.4.7