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