5 // Id: ExN02MagneticField.cc,v 1.1 1999/01/07 16:05:49 gunter Exp
6 // GEANT4 tag Name: geant4-00-01
8 #include "AliMagneticField.h"
10 #include <G4FieldManager.hh>
11 #include <G4TransportationManager.hh>
15 AliMagneticField::AliMagneticField()
16 : G4UniformMagField(G4ThreeVector())
19 GetGlobalFieldManager()->CreateChordFinder(this);
22 AliMagneticField::AliMagneticField(G4ThreeVector fieldVector)
23 : G4UniformMagField(fieldVector)
26 GetGlobalFieldManager()->CreateChordFinder(this);
29 AliMagneticField::AliMagneticField(const AliMagneticField& right)
30 : G4UniformMagField(right)
33 GetGlobalFieldManager()->CreateChordFinder(this);
36 AliMagneticField::~AliMagneticField() {
43 AliMagneticField::operator=(const AliMagneticField& right)
45 // check assignement to self
46 if (this == &right) return *this;
48 // base class assignement
49 G4UniformMagField::operator=(right);
56 void AliMagneticField::SetFieldValue(G4double fieldValue)
58 // Sets the value of the Global Field to fieldValue along Z.
61 G4UniformMagField::SetFieldValue(G4ThreeVector(0,0,fieldValue));
64 void AliMagneticField::SetFieldValue(G4ThreeVector fieldVector)
66 // Sets the value of the Global Field.
69 // Find the Field Manager for the global field
70 G4FieldManager* fieldMgr= GetGlobalFieldManager();
72 if(fieldVector!=G4ThreeVector(0.,0.,0.)) {
73 G4UniformMagField::SetFieldValue(fieldVector);
74 fieldMgr->SetDetectorField(this);
77 // If the new field's value is Zero, then it is best to
78 // insure that it is not used for propagation.
79 G4MagneticField* magField = NULL;
80 fieldMgr->SetDetectorField(magField);
84 G4FieldManager* AliMagneticField::GetGlobalFieldManager()
89 return G4TransportationManager::GetTransportationManager()