4 // Author: I. Hrivnacova
6 // Class TG4ParticlesManager
7 // -------------------------
8 // See the class description in the header file.
10 // Id: ExN02MagneticField.cc,v 1.1 1999/01/07 16:05:49 gunter Exp
11 // GEANT4 tag Name: geant4-00-01
13 #include "AliMagneticField.h"
15 #include <G4FieldManager.hh>
16 #include <G4TransportationManager.hh>
20 //_____________________________________________________________________________
21 AliMagneticField::AliMagneticField()
22 : G4UniformMagField(G4ThreeVector())
25 GetGlobalFieldManager()->SetDetectorField(this);
26 GetGlobalFieldManager()->CreateChordFinder(this);
29 //_____________________________________________________________________________
30 AliMagneticField::AliMagneticField(G4ThreeVector fieldVector)
31 : G4UniformMagField(fieldVector)
34 GetGlobalFieldManager()->SetDetectorField(this);
35 GetGlobalFieldManager()->CreateChordFinder(this);
38 //_____________________________________________________________________________
39 AliMagneticField::AliMagneticField(const AliMagneticField& right)
40 : G4UniformMagField(right)
43 GetGlobalFieldManager()->SetDetectorField(this);
44 GetGlobalFieldManager()->CreateChordFinder(this);
47 //_____________________________________________________________________________
48 AliMagneticField::~AliMagneticField() {
54 //_____________________________________________________________________________
56 AliMagneticField::operator=(const AliMagneticField& right)
58 // check assignement to self
59 if (this == &right) return *this;
61 // base class assignement
62 G4UniformMagField::operator=(right);
69 //_____________________________________________________________________________
70 void AliMagneticField::SetFieldValue(G4double fieldValue)
72 // Sets the value of the Global Field to fieldValue along Z.
75 G4UniformMagField::SetFieldValue(G4ThreeVector(0,0,fieldValue));
78 //_____________________________________________________________________________
79 void AliMagneticField::SetFieldValue(G4ThreeVector fieldVector)
81 // Sets the value of the Global Field.
84 // Find the Field Manager for the global field
85 G4FieldManager* fieldMgr= GetGlobalFieldManager();
87 if(fieldVector!=G4ThreeVector(0.,0.,0.)) {
88 G4UniformMagField::SetFieldValue(fieldVector);
89 fieldMgr->SetDetectorField(this);
92 // If the new field's value is Zero, then it is best to
93 // insure that it is not used for propagation.
94 G4MagneticField* magField = 0;
95 fieldMgr->SetDetectorField(magField);
99 //_____________________________________________________________________________
100 G4FieldManager* AliMagneticField::GetGlobalFieldManager() const
105 return G4TransportationManager::GetTransportationManager()