correct for omission
[u/mrichter/AliRoot.git] / STEER / AliRieman.cxx
index 632e441..b2dafe9 100755 (executable)
@@ -75,7 +75,7 @@ AliRieman::AliRieman() :
   for (Int_t i=0;i<6;i++) fParams[i] = 0;
   for (Int_t i=0;i<9;i++) fSumXY[i] = 0;
   for (Int_t i=0;i<9;i++) fSumXZ[i] = 0;
-  for (Int_t i=0;i<6;i++) {
+  for (Int_t i=0;i<5;i++) {
     fSumPolY[i]=0;
     fSumPolZ[i]=0;
   }
@@ -106,7 +106,7 @@ AliRieman::AliRieman(Int_t capacity) :
   for (Int_t i=0;i<6;i++) fParams[i] = 0;
   for (Int_t i=0;i<9;i++) fSumXY[i] = 0;
   for (Int_t i=0;i<9;i++) fSumXZ[i] = 0;
-  for (Int_t i=0;i<6;i++) {
+  for (Int_t i=0;i<5;i++) {
     fSumPolY[i]=0;
     fSumPolZ[i]=0;
   }
@@ -137,7 +137,7 @@ AliRieman::AliRieman(const AliRieman &rieman):
   for (Int_t i=0;i<6;i++) fParams[i] = rieman.fParams[i];
   for (Int_t i=0;i<9;i++) fSumXY[i]  = rieman.fSumXY[i];
   for (Int_t i=0;i<9;i++) fSumXZ[i]  = rieman.fSumXZ[i];
-  for (Int_t i=0;i<6;i++) {
+  for (Int_t i=0;i<5;i++) {
     fSumPolY[i]=rieman.fSumPolY[i];
     fSumPolZ[i]=rieman.fSumPolZ[i];
   }
@@ -174,7 +174,7 @@ void AliRieman::Reset()
   for (Int_t i=0;i<6;i++) fParams[i] = 0;
   for (Int_t i=0;i<9;i++) fSumXY[i] = 0;
   for (Int_t i=0;i<9;i++) fSumXZ[i] = 0; 
-  for (Int_t i=0;i<6;i++) {
+  for (Int_t i=0;i<5;i++) {
     fSumPolY[i]=0;
     fSumPolZ[i]=0;
   }
@@ -577,8 +577,9 @@ Double_t AliRieman::GetDYat(Double_t x) const {
   Double_t x0 = -fParams[1]/fParams[0];
   if (-fParams[2]*fParams[0]+fParams[1]*fParams[1]+1<0) return 0;
   Double_t rm1  = fParams[0]/TMath::Sqrt(-fParams[2]*fParams[0]+fParams[1]*fParams[1]+1); 
-  if ( 1./(rm1*rm1)-(x-x0)*(x-x0)<=0) return 0;
-  Double_t res = (x-x0)/TMath::Sqrt(1./(rm1*rm1)-(x-x0)*(x-x0));
+  Double_t arg = (1./rm1-(x-x0))*(1./rm1+(x-x0));
+  if ( arg <= 0) return 0;
+  Double_t res = (x-x0)/TMath::Sqrt(arg);
   if (fParams[0]<0) res*=-1.;
   return res;
 }