Geant4 VMC
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
source
physics_monopole
include
G4MonopoleFieldSetup.hh
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
28
//
29
// $Id: G4MonopoleFieldSetup.hh 104872 2017-06-23 14:19:16Z gcosmo $
30
//
31
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
32
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33
34
//
35
// ------------------------------------------------------------
36
// GEANT 4 include file implementation
37
// ------------------------------------------------------------
38
//
39
// G4MonopoleFieldSetup is responsible for setting up a magnetic field
40
// and the ability to use it with two different equation of motions,
41
// one for monopoles and another for the rest of the particles.
42
//
43
//
44
45
// =======================================================================
46
// Created: 13 May 2010, B. Bozsogi
47
// =======================================================================
48
49
// Modified for use in Geant4 VMC
50
// I. Hrivnacova, IPN Orsay; 12/09/2018
51
52
#ifndef G4MonopoleFieldSetup_H
53
#define G4MonopoleFieldSetup_H
54
55
#include "G4MagneticField.hh"
56
#include "G4UniformMagField.hh"
57
58
class
G4FieldManager;
59
class
G4ChordFinder;
60
class
G4EquationOfMotion
;
61
class
G4MagIntegratorStepper;
62
class
G4MonopoleEquation
;
63
class
G4EquationOfMotion
;
64
65
// class G4MonopoleFieldMessenger;
66
67
class
G4MonopoleFieldSetup
68
{
69
public
:
70
G4MonopoleFieldSetup
();
71
~G4MonopoleFieldSetup
();
72
73
static
G4MonopoleFieldSetup
*
GetMonopoleFieldSetup
();
74
75
void
InitialiseAll
();
// Set parameters and call method below
76
// void SetMagField(G4double fieldValue);
77
void
SetStepperAndChordFinder
(G4int val);
78
// void SetMagField (G4double v, bool checkIfAlreadyDefined=false);
79
80
// set defaults from outside
81
void
SetMagneticField
(G4MagneticField* magneticField);
82
void
SetDefaultEquation
(G4EquationOfMotion* equation);
83
void
SetDefaultStepper
(G4MagIntegratorStepper* stepper);
84
85
// static G4MonopoleFieldSetup* GetMonopoleFieldSetup();
86
double
GetZmagFieldValue
()
const
{
return
fZmagFieldValue
; }
87
88
private
:
90
static
G4ThreadLocal
G4MonopoleFieldSetup
*
fgInstance
;
91
92
G4FieldManager*
fFieldManager
;
93
G4MagneticField
*
fMagneticField
;
94
G4ChordFinder*
fChordFinder
;
95
G4ChordFinder*
fUsualChordFinder
;
96
G4EquationOfMotion
*
fDefaultEquation
;
97
G4MagIntegratorStepper*
fDefaultStepper
;
98
G4ChordFinder*
fMonopoleChordFinder
;
99
G4MonopoleEquation
*
fMonopoleEquation
;
100
G4MagIntegratorStepper*
fMonopoleStepper
;
101
G4double
fMinStep
;
102
G4double
fZmagFieldValue
;
103
// G4MonopoleFieldMessenger* fMonopoleFieldMessenger;
104
};
105
106
// inline functions
107
108
inline
void
G4MonopoleFieldSetup::SetDefaultEquation
(
G4EquationOfMotion
* equation) {
109
fDefaultEquation
= equation;
110
}
111
112
inline
void
G4MonopoleFieldSetup::SetDefaultStepper
(G4MagIntegratorStepper* stepper) {
113
fDefaultStepper
= stepper;
114
}
115
116
#endif
G4EquationOfMotion
G4MagneticField
G4MonopoleEquation
Definition
Doxymodules.h:49
G4MonopoleFieldSetup
Definition
Doxymodules.h:51
G4MonopoleFieldSetup::fMonopoleChordFinder
G4ChordFinder * fMonopoleChordFinder
Definition
G4MonopoleFieldSetup.hh:98
G4MonopoleFieldSetup::GetZmagFieldValue
double GetZmagFieldValue() const
Definition
G4MonopoleFieldSetup.hh:86
G4MonopoleFieldSetup::fChordFinder
G4ChordFinder * fChordFinder
Definition
G4MonopoleFieldSetup.hh:94
G4MonopoleFieldSetup::fDefaultStepper
G4MagIntegratorStepper * fDefaultStepper
Definition
G4MonopoleFieldSetup.hh:97
G4MonopoleFieldSetup::fZmagFieldValue
G4double fZmagFieldValue
Definition
G4MonopoleFieldSetup.hh:102
G4MonopoleFieldSetup::~G4MonopoleFieldSetup
~G4MonopoleFieldSetup()
Definition
G4MonopoleFieldSetup.cxx:110
G4MonopoleFieldSetup::SetStepperAndChordFinder
void SetStepperAndChordFinder(G4int val)
Definition
G4MonopoleFieldSetup.cxx:192
G4MonopoleFieldSetup::G4MonopoleFieldSetup
G4MonopoleFieldSetup()
Definition
G4MonopoleFieldSetup.cxx:77
G4MonopoleFieldSetup::fDefaultEquation
G4EquationOfMotion * fDefaultEquation
Definition
G4MonopoleFieldSetup.hh:96
G4MonopoleFieldSetup::fMonopoleEquation
G4MonopoleEquation * fMonopoleEquation
Definition
G4MonopoleFieldSetup.hh:99
G4MonopoleFieldSetup::fMinStep
G4double fMinStep
Definition
G4MonopoleFieldSetup.hh:101
G4MonopoleFieldSetup::fgInstance
static G4ThreadLocal G4MonopoleFieldSetup * fgInstance
thread local instance
Definition
G4MonopoleFieldSetup.hh:90
G4MonopoleFieldSetup::SetDefaultEquation
void SetDefaultEquation(G4EquationOfMotion *equation)
Definition
G4MonopoleFieldSetup.hh:108
G4MonopoleFieldSetup::fUsualChordFinder
G4ChordFinder * fUsualChordFinder
Definition
G4MonopoleFieldSetup.hh:95
G4MonopoleFieldSetup::GetMonopoleFieldSetup
static G4MonopoleFieldSetup * GetMonopoleFieldSetup()
Definition
G4MonopoleFieldSetup.cxx:98
G4MonopoleFieldSetup::SetMagneticField
void SetMagneticField(G4MagneticField *magneticField)
Definition
G4MonopoleFieldSetup.cxx:160
G4MonopoleFieldSetup::SetDefaultStepper
void SetDefaultStepper(G4MagIntegratorStepper *stepper)
Definition
G4MonopoleFieldSetup.hh:112
G4MonopoleFieldSetup::fMonopoleStepper
G4MagIntegratorStepper * fMonopoleStepper
Definition
G4MonopoleFieldSetup.hh:100
G4MonopoleFieldSetup::fMagneticField
G4MagneticField * fMagneticField
Definition
G4MonopoleFieldSetup.hh:93
G4MonopoleFieldSetup::InitialiseAll
void InitialiseAll()
Definition
G4MonopoleFieldSetup.cxx:169
G4MonopoleFieldSetup::fFieldManager
G4FieldManager * fFieldManager
Definition
G4MonopoleFieldSetup.hh:92
Generated on
for Geant4 VMC by
1.17.0