BOSS 7.1.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
41#ifndef BesMagneticField_H
42#define BesMagneticField_H
43
44#include "G4MagneticField.hh"
45#include "globals.hh"
47
48using namespace std;
49
50class G4FieldManager;
51class G4ChordFinder;
52class G4Mag_UsualEqRhs;
53class G4MagIntegratorStepper;
55
56class BesMagneticField:public G4MagneticField
57{
58public:
59
60 BesMagneticField() ; // A zero field
61
63 void GetFieldValue( const double Point[3],
64 double *Bfield ) const;
65
66
67 void SetStepperType( G4int i) { fStepperType = i ; }
68
69 void SetStepper();
70
71 void SetMinStep(G4double s) { fMinStep = s ; }
72
73 void InitialiseAll(); // Set parameters and call method below
75
76 void SetDeltaOneStep(double newvalue);
77 void SetDeltaIntersection(double newvalue);
78 void SetMinimumEpsilonStep(double newvalue);
79 void SetMaximumEpsilonStep(double newvalue);
80
81
82protected:
83
84 G4FieldManager* fFieldManager ;
85 G4ChordFinder* fChordFinder ;
86 G4Mag_UsualEqRhs* fEquation ;
87
88
89 G4MagIntegratorStepper* fStepper ;
91
92 G4double fMinStep ;
93
96};
97
98#endif
XmlRpcServer s
Definition: HelloServer.cpp:11
G4Mag_UsualEqRhs * fEquation
void SetMaximumEpsilonStep(double newvalue)
void CreateStepperAndChordFinder()
G4MagIntegratorStepper * fStepper
IMagneticFieldSvc * m_pIMF
G4FieldManager * fFieldManager
void SetDeltaIntersection(double newvalue)
G4ChordFinder * fChordFinder
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)