BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesMagneticField.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * DISCLAIMER *
4// * *
5// * The following disclaimer summarizes all the specific disclaimers *
6// * of contributors to this software. The specific disclaimers,which *
7// * govern, are listed with their locations in: *
8// * http://cern.ch/geant4/license *
9// * *
10// * Neither the authors of this software system, nor their employing *
11// * institutes,nor the agencies providing financial support for this *
12// * work make any representation or warranty, express or implied, *
13// * regarding this software system or assume any liability for its *
14// * use. *
15// * *
16// * This code implementation is the intellectual property of the *
17// * GEANT4 collaboration. *
18// * By copying, distributing or modifying the Program (or any work *
19// * based on the Program) you indicate your acceptance of this *
20// * statement, and all its terms. *
21// ********************************************************************
22//
23//
24// $Id: BesMagneticField.hh,v 1.5 2015/03/17 05:50:57 sunss Exp $
25// GEANT4 tag $Name: BesSim-00-01-30 $
26//
27//
28// A class for control of the Magnetic Field of the detector.
29// The field is assumed to be uniform.
30//
31// $ Id: $
32
33// Should this be a:
34// i) messenger
35// ii) user class that creates the field ?
36// iii) simply a derived class of Uniform field ? <== I have chosen this now.
37// iv) a field manager that creates/updates field (Prefered?)
38//
39
40#ifndef BesMagneticField_H
41#define BesMagneticField_H
42
43#include "G4MagneticField.hh"
44#include "MagneticFieldSvc/IBesMagFieldSvc.h"
45#include "globals.hh"
46
47using namespace std;
48
49class G4FieldManager;
50class G4ChordFinder;
51class G4Mag_UsualEqRhs;
52class G4MagIntegratorStepper;
54
55class BesMagneticField : public G4MagneticField {
56public:
57 BesMagneticField(); // A zero field
58
60 void GetFieldValue( const double Point[3], double* Bfield ) const;
61
62 void SetStepperType( G4int i ) { fStepperType = i; }
63
64 void SetStepper();
65
66 void SetMinStep( G4double s ) { fMinStep = s; }
67
68 void InitialiseAll(); // Set parameters and call method below
70
71 void SetDeltaOneStep( double newvalue );
72 void SetDeltaIntersection( double newvalue );
73 void SetMinimumEpsilonStep( double newvalue );
74 void SetMaximumEpsilonStep( double newvalue );
75
76protected:
77 G4FieldManager* fFieldManager;
78 G4ChordFinder* fChordFinder;
79 G4Mag_UsualEqRhs* fEquation;
80
81 G4MagIntegratorStepper* fStepper;
83
84 G4double fMinStep;
85
88};
89
90#endif
XmlRpcServer s
G4Mag_UsualEqRhs * fEquation
void SetMaximumEpsilonStep(double newvalue)
G4MagIntegratorStepper * fStepper
G4FieldManager * fFieldManager
void SetDeltaIntersection(double newvalue)
G4ChordFinder * fChordFinder
IBesMagFieldSvc * m_pIMF
BesMagneticFieldMessenger * fFieldMessenger
void SetStepperType(G4int i)
void GetFieldValue(const double Point[3], double *Bfield) const
void SetMinimumEpsilonStep(double newvalue)
void SetMinStep(G4double s)
void SetDeltaOneStep(double newvalue)