]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/ESD/AliESDRun.cxx
Made InitMagneticField a virtual method of the AliVEvent
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDRun.cxx
index ddf7cc3ba5fbae9f16b0a96cc18c2de3912e0540..d4e658e12e645a604503b36d423d549cece57a09 100644 (file)
@@ -348,20 +348,21 @@ Bool_t AliESDRun::InitMagneticField() const
     return kFALSE;
   }
   //
-  if ( TGeoGlobalMagField::Instance()->IsLocked() ) {
-    if (TGeoGlobalMagField::Instance()->GetField()->TestBit(AliMagF::kOverrideGRP)) {
-      AliInfo("ExpertMode!!! Information on magnet currents will be ignored !");
-      AliInfo("ExpertMode!!! Running with the externally locked B field !");
-      return kTRUE;
-    }
-    else {
-      AliInfo("Destroying existing B field instance!");
-      delete TGeoGlobalMagField::Instance();
+  AliMagF* fld = (AliMagF*) TGeoGlobalMagField::Instance()->GetField();
+  if (fld) {
+    if (TGeoGlobalMagField::Instance()->IsLocked()) {
+      if (fld->TestBit(AliMagF::kOverrideGRP)) {
+       AliInfo("ExpertMode!!! Information on magnet currents will be ignored !");
+       AliInfo("ExpertMode!!! Running with the externally locked B field !");
+       return kTRUE;
+      }
     }
+    AliInfo("Destroying existing B field instance!");
+    delete TGeoGlobalMagField::Instance();
   }
   //
-  AliMagF* fld = AliMagF::CreateFieldMap(fCurrentL3,fCurrentDip,AliMagF::kConvLHC,
-                                        TestBit(kUniformBMap), GetBeamEnergy(), GetBeamType());
+  fld = AliMagF::CreateFieldMap(fCurrentL3,fCurrentDip,AliMagF::kConvLHC,
+                               TestBit(kUniformBMap), GetBeamEnergy(), GetBeamType());
   if (fld) {
     TGeoGlobalMagField::Instance()->SetField( fld );
     TGeoGlobalMagField::Instance()->Lock();