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()->SetDetectorField(this);
20 GetGlobalFieldManager()->CreateChordFinder(this);
23 AliMagneticField::AliMagneticField(G4ThreeVector fieldVector)
24 : G4UniformMagField(fieldVector)
27 GetGlobalFieldManager()->SetDetectorField(this);
28 GetGlobalFieldManager()->CreateChordFinder(this);
31 AliMagneticField::AliMagneticField(const AliMagneticField& right)
32 : G4UniformMagField(right)
35 GetGlobalFieldManager()->SetDetectorField(this);
36 GetGlobalFieldManager()->CreateChordFinder(this);
39 AliMagneticField::~AliMagneticField() {
46 AliMagneticField::operator=(const AliMagneticField& right)
48 // check assignement to self
49 if (this == &right) return *this;
51 // base class assignement
52 G4UniformMagField::operator=(right);
59 void AliMagneticField::SetFieldValue(G4double fieldValue)
61 // Sets the value of the Global Field to fieldValue along Z.
64 G4UniformMagField::SetFieldValue(G4ThreeVector(0,0,fieldValue));
67 void AliMagneticField::SetFieldValue(G4ThreeVector fieldVector)
69 // Sets the value of the Global Field.
72 // Find the Field Manager for the global field
73 G4FieldManager* fieldMgr= GetGlobalFieldManager();
75 if(fieldVector!=G4ThreeVector(0.,0.,0.)) {
76 G4UniformMagField::SetFieldValue(fieldVector);
77 fieldMgr->SetDetectorField(this);
80 // If the new field's value is Zero, then it is best to
81 // insure that it is not used for propagation.
82 G4MagneticField* magField = 0;
83 fieldMgr->SetDetectorField(magField);
87 G4FieldManager* AliMagneticField::GetGlobalFieldManager()
92 return G4TransportationManager::GetTransportationManager()