]>
Commit | Line | Data |
---|---|---|
676fb573 | 1 | // $Id$ |
2 | // Category: geometry | |
3 | // | |
7005154f | 4 | // Author: I. Hrivnacova |
5 | // | |
6 | // Class TG4ParticlesManager | |
7 | // ------------------------- | |
8 | // See the class description in the header file. | |
676fb573 | 9 | // According to: |
10 | // Id: ExN02MagneticField.cc,v 1.1 1999/01/07 16:05:49 gunter Exp | |
11 | // GEANT4 tag Name: geant4-00-01 | |
12 | ||
13 | #include "AliMagneticField.h" | |
14 | ||
15 | #include <G4FieldManager.hh> | |
16 | #include <G4TransportationManager.hh> | |
17 | ||
18 | // Constructors | |
19 | ||
78ca1e9c | 20 | //_____________________________________________________________________________ |
676fb573 | 21 | AliMagneticField::AliMagneticField() |
22 | : G4UniformMagField(G4ThreeVector()) | |
23 | { | |
24 | // | |
6dd21a33 | 25 | GetGlobalFieldManager()->SetDetectorField(this); |
676fb573 | 26 | GetGlobalFieldManager()->CreateChordFinder(this); |
27 | } | |
28 | ||
78ca1e9c | 29 | //_____________________________________________________________________________ |
676fb573 | 30 | AliMagneticField::AliMagneticField(G4ThreeVector fieldVector) |
31 | : G4UniformMagField(fieldVector) | |
32 | { | |
33 | // | |
6dd21a33 | 34 | GetGlobalFieldManager()->SetDetectorField(this); |
676fb573 | 35 | GetGlobalFieldManager()->CreateChordFinder(this); |
36 | } | |
37 | ||
78ca1e9c | 38 | //_____________________________________________________________________________ |
676fb573 | 39 | AliMagneticField::AliMagneticField(const AliMagneticField& right) |
40 | : G4UniformMagField(right) | |
41 | { | |
42 | // | |
6dd21a33 | 43 | GetGlobalFieldManager()->SetDetectorField(this); |
676fb573 | 44 | GetGlobalFieldManager()->CreateChordFinder(this); |
45 | } | |
46 | ||
78ca1e9c | 47 | //_____________________________________________________________________________ |
676fb573 | 48 | AliMagneticField::~AliMagneticField() { |
49 | // | |
50 | } | |
51 | ||
52 | // operators | |
53 | ||
78ca1e9c | 54 | //_____________________________________________________________________________ |
676fb573 | 55 | AliMagneticField& |
56 | AliMagneticField::operator=(const AliMagneticField& right) | |
57 | { | |
58 | // check assignement to self | |
59 | if (this == &right) return *this; | |
60 | ||
61 | // base class assignement | |
62 | G4UniformMagField::operator=(right); | |
63 | ||
64 | return *this; | |
65 | } | |
66 | ||
67 | // public methods | |
68 | ||
78ca1e9c | 69 | //_____________________________________________________________________________ |
676fb573 | 70 | void AliMagneticField::SetFieldValue(G4double fieldValue) |
71 | { | |
72 | // Sets the value of the Global Field to fieldValue along Z. | |
73 | // --- | |
74 | ||
75 | G4UniformMagField::SetFieldValue(G4ThreeVector(0,0,fieldValue)); | |
76 | } | |
77 | ||
78ca1e9c | 78 | //_____________________________________________________________________________ |
676fb573 | 79 | void AliMagneticField::SetFieldValue(G4ThreeVector fieldVector) |
80 | { | |
81 | // Sets the value of the Global Field. | |
82 | // --- | |
83 | ||
84 | // Find the Field Manager for the global field | |
85 | G4FieldManager* fieldMgr= GetGlobalFieldManager(); | |
86 | ||
87 | if(fieldVector!=G4ThreeVector(0.,0.,0.)) { | |
88 | G4UniformMagField::SetFieldValue(fieldVector); | |
89 | fieldMgr->SetDetectorField(this); | |
90 | } | |
91 | else { | |
92 | // If the new field's value is Zero, then it is best to | |
93 | // insure that it is not used for propagation. | |
6dd21a33 | 94 | G4MagneticField* magField = 0; |
676fb573 | 95 | fieldMgr->SetDetectorField(magField); |
96 | } | |
97 | } | |
98 | ||
78ca1e9c | 99 | //_____________________________________________________________________________ |
cbac26a9 | 100 | G4FieldManager* AliMagneticField::GetGlobalFieldManager() const |
676fb573 | 101 | { |
78ca1e9c | 102 | // Utility method |
676fb573 | 103 | // --- |
104 | ||
105 | return G4TransportationManager::GetTransportationManager() | |
106 | ->GetFieldManager(); | |
107 | } | |
108 |