]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Making the numerical protections against 0 magnetic field work correctly (thanks...
authorbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 9 Jun 2009 08:04:12 +0000 (08:04 +0000)
committerbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 9 Jun 2009 08:04:12 +0000 (08:04 +0000)
STEER/AliTracker.cxx
STEER/AliVTrack.cxx

index 216d7dd3b4ffe52ce515446b9c2d5a1dbf1f7d4b..f465f40b6acd17564447f14a7fd0bee28d6a7b00 100644 (file)
@@ -77,9 +77,9 @@ AliTracker::AliTracker(const AliTracker &atr):
 Double_t AliTracker::GetBz()
 {
   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
-  if (!fld) return kAlmost0Field;
+  if (!fld) return 0.5*kAlmost0Field;
   Double_t bz = fld->SolenoidField();
-  return TMath::Sign(kAlmost0Field,bz) + bz;
+  return TMath::Sign(0.5*kAlmost0Field,bz) + bz;
 }
 
 //__________________________________________________________________________
@@ -88,9 +88,9 @@ Double_t AliTracker::GetBz(const Double_t *r) {
   // Returns Bz (kG) at the point "r" .
   //------------------------------------------------------------------
   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
-  if (!fld) return  kAlmost0Field;
+  if (!fld) return  0.5*kAlmost0Field;
   Double_t bz = fld->GetBz(r);
-  return  TMath::Sign(kAlmost0Field,bz) + bz;
+  return  TMath::Sign(0.5*kAlmost0Field,bz) + bz;
 }
 
 //__________________________________________________________________________
index 1b80364a45437b31f0c960eae4215684a539e793..325e93e3e4cc5f96a6c319a66c418b67522dff99 100644 (file)
@@ -41,7 +41,7 @@ Double_t AliVTrack::GetBz() const
 {
   // returns Bz component of the magnetic field (kG)
   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
-  if (!fld) return kAlmost0Field;
+  if (!fld) return 0.5*kAlmost0Field;
   double bz;
   if (fld->IsUniform()) bz = fld->SolenoidField();
   else {
@@ -49,7 +49,7 @@ Double_t AliVTrack::GetBz() const
     GetXYZ(r); 
     bz = fld->GetBz(r);
   }
-  return TMath::Sign(kAlmost0Field,bz) + bz;
+  return TMath::Sign(0.5*kAlmost0Field,bz) + bz;
 }
 
 void AliVTrack::GetBxByBz(Double_t b[3]) const 
@@ -58,7 +58,7 @@ void AliVTrack::GetBxByBz(Double_t b[3]) const
   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
   if (!fld) {
      b[0] = b[1] = 0.;
-     b[2] = kAlmost0Field;
+     b[2] = 0.5*kAlmost0Field;
      return;
   }
 
@@ -68,8 +68,8 @@ void AliVTrack::GetBxByBz(Double_t b[3]) const
   }  else {
      Double_t r[3]; GetXYZ(r);
      fld->Field(r,b);
-     b[2] = (TMath::Sign(kAlmost0Field,b[2]) + b[2]);
   }
+  b[2] = (TMath::Sign(0.5*kAlmost0Field,b[2]) + b[2]);
   return;
 }