impoved num precision
authorfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Nov 2009 05:02:28 +0000 (05:02 +0000)
committerfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Nov 2009 05:02:28 +0000 (05:02 +0000)
17 files changed:
EVGEN/AliGenCorrHF.cxx
HLT/ITS/tracking/AliHLTITSTrack.cxx
HLT/TPCLib/tracking-ca/AliHLT3DTrackParam.cxx
HLT/TPCLib/tracking-ca/AliHLTTPCCATrackParam.cxx
HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.cxx
HMPID/AliHMPIDParam.cxx
ITS/AliITStrackV2.cxx
PHOS/AliPHOSRecCpvManager.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoPair.cxx
STEER/AliExternalTrackParam.cxx
STEER/AliKFParticleBase.cxx
STEER/AliMC.cxx
TPC/AliTPCtrackerMI.cxx
TRD/AliTRDpidESD.cxx
TRD/AliTRDseedV1.cxx
TUHKMgen/UHKM/InitialStateHydjet.cxx
TUHKMgen/UHKM/UKUtility.cxx

index 34c63de..cba94a1 100644 (file)
@@ -741,7 +741,7 @@ void AliGenCorrHF::GetHadronPair(TFile* fG, Int_t idq, Double_t y1, Double_t y2,
       y3 = 0.5 * TMath::Log((e1 + pz3 + 1.e-13)/(e1 - pz3 + 1.e-13));
       y4 = 0.5 * TMath::Log((e2 + pz4 + 1.e-13)/(e2 - pz4 + 1.e-13));
       if(TMath::Abs(y3)<ycorr && TMath::Abs(y4)<ycorr && rand[0]>0.5) {
-       ptemp = TMath::Sqrt(e1*e1 - pz3*pz3);
+       ptemp = TMath::Sqrt((e1-pz3)*(e1+pz3));
        y3  = 4*(1 - 2*rand[1]);
        pz3 = ptemp*TMath::SinH(y3);
        pz4 = pz3;
index cdda71d..c7e06ba 100644 (file)
@@ -379,7 +379,7 @@ GetLocalXPhiZat(Double_t r,Double_t &xloc, double &phi, double &z ) const
   Double_t f1=s, f2= s + k*dx;
   if (TMath::Abs(f2) >= kAlmost1) return kFALSE;
 
-  Double_t c2=TMath::Sqrt(1.- f2*f2);
+  Double_t c2=TMath::Sqrt((1.-f2)*(1.+f2));
   
   double yloc = GetY() + dx*(f1+f2)/(c+c2);
   double zloc = GetZ() + dx*(c2 + f2*(f1+f2)/(c+c2))*GetTgl();
@@ -404,7 +404,7 @@ Bool_t AliHLTITSTrack::GetYZAtPhiX( double phi, double x,
   {
     double da = phi - GetAlpha();
     Double_t ca=TMath::Cos(da), sa=TMath::Sin(da);
-    Double_t sf=GetSnp(), cf=TMath::Sqrt(1.- sf*sf);
+    Double_t sf=GetSnp(), cf=TMath::Sqrt((1.-sf)*(1.+sf));
     Double_t tmp=sf*ca - cf*sa;
     if (TMath::Abs(tmp) >= kAlmost1) return 0;
   }
index 71879af..2bb6acc 100644 (file)
@@ -69,7 +69,8 @@ void AliHLT3DTrackParam::TransportToDS( double Bz, double DS, double *T0 )
     sB = s / Bz;
     cB = ( 1 - c ) / Bz;
   } else {
-    sB = ( 1. - bs * bs / 6. ) * DS;
+    const Double_t kOvSqr6=1./TMath::Sqrt(6.);
+    sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6) * DS;
     cB = .5 * sB * bs;
   }
 
index 93694dc..a92e609 100644 (file)
@@ -506,7 +506,7 @@ GPUd() bool AliHLTTPCCATrackParam::CorrectForMeanMaterial( float xOverX0,  float
   //Multiple scattering******************
 
   float theta2 = par.fTheta2 * CAMath::Abs( xOverX0 );
-  fC22 += theta2 * par.fK22 * ( 1. - GetPar(2) * GetPar(2) );
+  fC22 += theta2 * par.fK22 * (1.-GetPar(2))*(1.+GetPar(2));
   fC33 += theta2 * par.fK33;
   fC43 += theta2 * par.fK43;
   fC44 += theta2 * par.fK44;
index 13427c4..1a2e03a 100644 (file)
@@ -792,7 +792,7 @@ int AliHLTTPCCATrackerComponent::DoEvent
                          currOutTracklet->fZ0err = tp.GetSigmaZ2();
                          float h = -currOutTracklet->fPt * currOutTracklet->fPt;
                          currOutTracklet->fPterr = h * h * tp.GetSigma1Pt2();
-                         h = 1. / TMath::Sqrt( 1 - snp * snp );
+                         h = 1. / TMath::Sqrt((1.-snp)*(1.+snp));
                          currOutTracklet->fPsierr = h * h * tp.GetSigmaSnp2();
                          currOutTracklet->fTglerr = tp.GetSigmaTgl2();
 
index 60f0468..ae7045f 100644 (file)
@@ -342,7 +342,7 @@ Double_t AliHMPIDParam::SigGeom(Double_t trkTheta,Double_t trkPhi,Double_t theta
   if (k<0) return 1e10;
 
   Double_t eTr = 0.5*RadThick()*betaM*TMath::Sqrt(k)/(GapThick()*alpha);     // formula (14)
-  Double_t lambda = 1.-sint*sint*sinf*sinf;                                                  // formula (15)
+  Double_t lambda = (1.-sint*sinf)*(1.+sint*sinf);                                                  // formula (15)
 
   Double_t c1 = 1./(1.+ eTr*k/(alpha*alpha*costheta*costheta));                              // formula (13.a)
   Double_t c2 = betaM*TMath::Power(k,1.5)*tantheta*lambda/(GapThick()*alpha*alpha);  // formula (13.b)
index 569e6f9..e273da6 100644 (file)
@@ -407,8 +407,10 @@ Bool_t AliITStrackV2::Improve(Double_t x0,Double_t xyz[3],Double_t ers[3]) {
     Double_t dummy = 4/r2 - GetC()*GetC();
     if (dummy < 0) return kFALSE;
     Double_t parp = 0.5*(GetC()*GetX() + dy*TMath::Sqrt(dummy));
-    Double_t sigma2p = theta2*(1.- GetSnp()*GetSnp())*(1. + GetTgl()*GetTgl());
-    sigma2p += Cov(0)/r2*(1.- dy*dy/r2)*(1.- dy*dy/r2);
+    Double_t sigma2p = theta2*(1.-GetSnp())*(1.+GetSnp())*(1. + GetTgl()*GetTgl());
+    Double_t ovSqr2 = 1./TMath::Sqrt(r2);
+    Double_t tfact = ovSqr2*(1.-dy*ovSqr2)*(1.+dy*ovSqr2);
+    sigma2p += Cov(0)*tfact*tfact;
     sigma2p += ers[1]*ers[1]/r2;
     sigma2p += 0.25*Cov(14)*cnv*cnv*GetX()*GetX();
     Double_t eps2p=sigma2p/(Cov(5) + sigma2p);
index f393c18..7aea360 100644 (file)
@@ -171,11 +171,15 @@ Float_t AliPHOSRecCpvManager::GradX(Float_t x, Float_t y)
 
   Float_t skv      = kb*kb + x*x + y*y;
 
-  Float_t gradient = y*(1.-x*x/skv)*  kb*TMath::Sqrt(skv)/( kb*kb*skv+x*x*y*y)
-    - y*(1.-x*x/skv)*3*kb*TMath::Sqrt(skv)/((3*kb)*(3*kb)*skv+x*x*y*y)
-    + y*(1.-x*x/skv)*5*kb*TMath::Sqrt(skv)/((5*kb)*(5*kb)*skv+x*x*y*y)
-    - y*(1.-x*x/skv)*7*kb*TMath::Sqrt(skv)/((7*kb)*(7*kb)*skv+x*x*y*y)
-    + y*(1.-x*x/skv)*9*kb*TMath::Sqrt(skv)/((9*kb)*(9*kb)*skv+x*x*y*y);
+  Float_t sqskv=TMath::Sqrt(skv);
+  Float_t yxskv=y*(1.-x/sqskv)*(1.+x/sqskv);
+  
+  Float_t gradient = 
+      yxskv*  kb*sqskv/( kb*kb*skv+x*x*y*y)
+    - yxskv*3*kb*sqskv/((3*kb)*(3*kb)*skv+x*x*y*y)
+    + yxskv*5*kb*sqskv/((5*kb)*(5*kb)*skv+x*x*y*y)
+    - yxskv*7*kb*sqskv/((7*kb)*(7*kb)*skv+x*x*y*y)
+    + yxskv*9*kb*sqskv/((9*kb)*(9*kb)*skv+x*x*y*y);
       
   Float_t grad    = ka*gradient/TMath::TwoPi();
   return grad;
@@ -190,11 +194,16 @@ Float_t AliPHOSRecCpvManager::GradY(Float_t x, Float_t y)
   const Float_t kb = 0.70;
  
   Float_t skv      = kb*kb + x*x + y*y;
-  Float_t gradient = x*(1.-y*y/skv)*  kb*TMath::Sqrt(skv)/( kb*kb*skv+x*x*y*y)
-    - x*(1.-y*y/skv)*3*kb*TMath::Sqrt(skv)/((3*kb)*(3*kb)*skv+x*x*y*y)
-    + x*(1.-y*y/skv)*5*kb*TMath::Sqrt(skv)/((5*kb)*(5*kb)*skv+x*x*y*y)
-    - x*(1.-y*y/skv)*7*kb*TMath::Sqrt(skv)/((7*kb)*(7*kb)*skv+x*x*y*y)
-    + x*(1.-y*y/skv)*9*kb*TMath::Sqrt(skv)/((9*kb)*(9*kb)*skv+x*x*y*y);
+
+  Float_t sqskv=TMath::Sqrt(skv);
+  Float_t xyskv=x*(1.-y/sqskv)*(1.+y/sqskv);
+
+  Float_t gradient = 
+      xyskv*  kb*sqskv/( kb*kb*skv+x*x*y*y)
+    - xyskv*3*kb*sqskv/((3*kb)*(3*kb)*skv+x*x*y*y)
+    + xyskv*5*kb*sqskv/((5*kb)*(5*kb)*skv+x*x*y*y)
+    - xyskv*7*kb*sqskv/((7*kb)*(7*kb)*skv+x*x*y*y)
+    + xyskv*9*kb*sqskv/((9*kb)*(9*kb)*skv+x*x*y*y);
   
   Float_t grad    = ka*gradient/TMath::TwoPi();
   return grad;
index 8e8e4fd..3434ea7 100644 (file)
@@ -7,6 +7,7 @@
 // the pair.                                                             //
 //                                                                       //
 ///////////////////////////////////////////////////////////////////////////
+#include <TMath.h>
 #include "AliFemtoPair.h"
 
 double AliFemtoPair::fgMaxDuInner = .8;
@@ -423,7 +424,7 @@ double AliFemtoPair::QLongCMS() const
     double tt = tmp1.t() + tmp2.t();
 
     double beta = zz/tt;
-    double gamma = 1.0/::sqrt(1.0 - beta*beta);
+    double gamma = 1.0/TMath::Sqrt((1.-beta)*(1.+beta));
 
     double temp = gamma*(dz - beta*dt);
     return (temp);
@@ -444,9 +445,9 @@ double AliFemtoPair::QOutPf() const
   
   double k1 = ::sqrt(xt*xt + yt*yt);
   double bOut = k1/tt;
-  double gOut = 1.0/::sqrt(1.0 - bOut*bOut);
+  double gOut = 1.0/TMath::Sqrt((1.-bOut)*(1.+bOut));
   
-  double temp = gOut*(this->QOutCMS() - bOut*dt);
+  double temp = gOut*(QOutCMS() - bOut*dt);
   return (temp);
 }
 
@@ -492,7 +493,7 @@ double AliFemtoPair::QLongBf(double beta) const
     double dz = tmp1.z() - tmp2.z();
     double dt = tmp1.t() + tmp2.t();
 
-    double gamma = 1.0/::sqrt(1.0 - beta*beta);
+    double gamma = 1.0/::sqrt((1.-beta)*(1.+beta));
 
     double temp = gamma*(dz - beta*dt);
     return (temp);
index 62a2d70..adc4e0f 100644 (file)
@@ -294,8 +294,8 @@ Double_t AliExternalTrackParam::GetD(Double_t x,Double_t y,Double_t b) const {
   y = -x*sn + y*cs; x=a;
   xt-=x; yt-=y;
 
-  sn=rp4*xt - fP[2]; cs=rp4*yt + TMath::Sqrt(1.- fP[2]*fP[2]);
-  a=2*(xt*fP[2] - yt*TMath::Sqrt(1.- fP[2]*fP[2]))-rp4*(xt*xt + yt*yt);
+  sn=rp4*xt - fP[2]; cs=rp4*yt + TMath::Sqrt((1.- fP[2])*(1.+fP[2]));
+  a=2*(xt*fP[2] - yt*TMath::Sqrt((1.-fP[2])*(1.+fP[2])))-rp4*(xt*xt + yt*yt);
   return  -a/(1 + TMath::Sqrt(sn*sn + cs*cs));
 }
 
@@ -307,7 +307,7 @@ GetDZ(Double_t x, Double_t y, Double_t z, Double_t b, Float_t dz[2]) const {
   // with respect to a point with global coordinates (x,y)
   // in the magnetic field "b" (kG)
   //------------------------------------------------------------------
-  Double_t f1 = fP[2], r1 = TMath::Sqrt(1. - f1*f1);
+  Double_t f1 = fP[2], r1 = TMath::Sqrt((1.-f1)*(1.+f1));
   Double_t xt=fX, yt=fP[0];
   Double_t sn=TMath::Sin(fAlpha), cs=TMath::Cos(fAlpha);
   Double_t a = x*cs + y*sn;
@@ -325,7 +325,7 @@ GetDZ(Double_t x, Double_t y, Double_t z, Double_t b, Float_t dz[2]) const {
   a=2*(xt*f1 - yt*r1)-rp4*(xt*xt + yt*yt);
   Double_t rr=TMath::Sqrt(sn*sn + cs*cs);
   dz[0] = -a/(1 + rr);
-  Double_t f2 = -sn/rr, r2 = TMath::Sqrt(1. - f2*f2);
+  Double_t f2 = -sn/rr, r2 = TMath::Sqrt((1.-f2)*(1.+f2));
   dz[1] = fP[1] + fP[3]/rp4*TMath::ASin(f2*r1 - f1*r2) - z;
 }
 
@@ -340,7 +340,7 @@ Double_t AliExternalTrackParam::GetLinearD(Double_t xv,Double_t yv) const {
   Double_t x= xv*cs + yv*sn;
   Double_t y=-xv*sn + yv*cs;
 
-  Double_t d = (fX-x)*fP[2] - (fP[0]-y)*TMath::Sqrt(1.- fP[2]*fP[2]);
+  Double_t d = (fX-x)*fP[2] - (fP[0]-y)*TMath::Sqrt((1.-fP[2])*(1.+fP[2]));
 
   return -d;
 }
@@ -365,7 +365,7 @@ Bool_t AliExternalTrackParam::CorrectForMeanMaterial
 
   //Apply angle correction, if requested
   if(anglecorr) {
-    Double_t angle=TMath::Sqrt((1.+ fP3*fP3)/(1.- fP2*fP2));
+    Double_t angle=TMath::Sqrt((1.+ fP3*fP3)/((1-fP2)*(1.+fP2)));
     xOverX0 *=angle;
     xTimesRho *=angle;
   } 
@@ -383,7 +383,7 @@ Bool_t AliExternalTrackParam::CorrectForMeanMaterial
      Double_t theta2=14.1*14.1/(beta2*p2*1e6)*TMath::Abs(xOverX0);
      //Double_t theta2=1.0259e-6*14*14/28/(beta2*p2)*TMath::Abs(d)*9.36*2.33;
      if(theta2>TMath::Pi()*TMath::Pi()) return kFALSE;
-     cC22 = theta2*(1.- fP2*fP2)*(1. + fP3*fP3);
+     cC22 = theta2*((1.-fP2)*(1.+fP2))*(1. + fP3*fP3);
      cC33 = theta2*(1. + fP3*fP3)*(1. + fP3*fP3);
      cC43 = theta2*fP3*fP4*(1. + fP3*fP3);
      cC44 = theta2*fP3*fP4*fP3*fP4;
@@ -440,7 +440,7 @@ Bool_t AliExternalTrackParam::CorrectForMaterial
   Double_t p=GetP();
   Double_t p2=p*p;
   Double_t beta2=p2/(p2 + mass*mass);
-  d*=TMath::Sqrt((1.+ fP3*fP3)/(1.- fP2*fP2));
+  d*=TMath::Sqrt((1.+ fP3*fP3)/((1.-fP2)*(1.+fP2)));
 
   //Multiple scattering******************
   Double_t cC22 = 0.;
@@ -451,7 +451,7 @@ Bool_t AliExternalTrackParam::CorrectForMaterial
      Double_t theta2=14.1*14.1/(beta2*p2*1e6)*TMath::Abs(d);
      //Double_t theta2=1.0259e-6*14*14/28/(beta2*p2)*TMath::Abs(d)*9.36*2.33;
      if(theta2>TMath::Pi()*TMath::Pi()) return kFALSE;
-     cC22 = theta2*(1.- fP2*fP2)*(1. + fP3*fP3);
+     cC22 = theta2*(1.-fP2)*(1.+fP2)*(1. + fP3*fP3);
      cC33 = theta2*(1. + fP3*fP3)*(1. + fP3*fP3);
      cC43 = theta2*fP3*fP4*(1. + fP3*fP3);
      cC44 = theta2*fP3*fP4*fP3*fP4;
@@ -608,10 +608,10 @@ Bool_t AliExternalTrackParam::Rotate(Double_t alpha) {
 
   Double_t x=fX;
   Double_t ca=TMath::Cos(alpha-fAlpha), sa=TMath::Sin(alpha-fAlpha);
-  Double_t sf=fP2, cf=TMath::Sqrt(1.- fP2*fP2);
+  Double_t sf=fP2, cf=TMath::Sqrt((1.- fP2)*(1.+fP2)); // Improve precision
 
   Double_t tmp=sf*ca - cf*sa;
-  if (TMath::Abs(tmp) >= kAlmost1) {
+  if (TMath::Abs(tmp) > 1.) {   // 1 is a quite acceptable value for tmp
      if (TMath::Abs(tmp) > 1.+ Double_t(FLT_EPSILON))
         AliWarning(Form("Rotation failed ! %.10e",tmp)); 
      return kFALSE;
@@ -664,7 +664,7 @@ Bool_t AliExternalTrackParam::PropagateTo(Double_t xk, Double_t b) {
   &fC30=fC[6],   &fC31=fC[7],   &fC32=fC[8],   &fC33=fC[9],  
   &fC40=fC[10],  &fC41=fC[11],  &fC42=fC[12],  &fC43=fC[13], &fC44=fC[14];
 
-  Double_t r1=TMath::Sqrt(1.- f1*f1), r2=TMath::Sqrt(1.- f2*f2);
+  Double_t r1=TMath::Sqrt((1.-f1)*(1.+f1)), r2=TMath::Sqrt((1.-f2)*(1.+f2));
 
   fX=xk;
   fP0 += dx*(f1+f2)/(r1+r2);
@@ -875,7 +875,7 @@ GetPredictedChi2(Double_t p[3],Double_t covyz[3],Double_t covxyz[3]) const {
 
   Double_t f=GetSnp();
   if (TMath::Abs(f) >= kAlmost1) return kVeryBig;
-  Double_t r=TMath::Sqrt(1.- f*f);
+  Double_t r=TMath::Sqrt((1.-f)*(1.+f));
   Double_t a=f/r, b=GetTgl()/r;
 
   Double_t s2=333.*333.;  //something reasonably big (cm^2)
@@ -968,7 +968,7 @@ PropagateTo(Double_t p[3],Double_t covyz[3],Double_t covxyz[3],Double_t bz) {
 
   Double_t f=GetSnp();
   if (TMath::Abs(f) >= kAlmost1) return kFALSE;
-  Double_t r=TMath::Sqrt(1.- f*f);
+  Double_t r=TMath::Sqrt((1.-f)*(1.+f));
   Double_t a=f/r, b=GetTgl()/r;
 
   Double_t s2=333.*333.;  //something reasonably big (cm^2)
@@ -1294,15 +1294,15 @@ Double_t b, Double_t maxd, Double_t dz[2], Double_t covar[3]) {
   x-=xv; y-=yv;
 
   //Estimate the impact parameter neglecting the track curvature
-  Double_t d=TMath::Abs(x*snp - y*TMath::Sqrt(1.- snp*snp));
+  Double_t d=TMath::Abs(x*snp - y*TMath::Sqrt((1.-snp)*(1.+snp)));
   if (d > maxd) return kFALSE; 
 
   //Propagate to the DCA
   Double_t crv=GetC(b);
   if (TMath::Abs(b) < kAlmost0Field) crv=0.;
 
-  Double_t tgfv=-(crv*x - snp)/(crv*y + TMath::Sqrt(1.-snp*snp));
-  sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv); cs=TMath::Sqrt(1.- sn*sn);
+  Double_t tgfv=-(crv*x - snp)/(crv*y + TMath::Sqrt((1.-snp)*(1.+snp)));
+  sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv); cs=TMath::Sqrt((1.-sn)*(1.+sn));
   if (TMath::Abs(tgfv)>0.) cs = sn/tgfv;
   else cs=1.;
 
@@ -1352,15 +1352,15 @@ Double_t b[3], Double_t maxd, Double_t dz[2], Double_t covar[3]) {
   x-=xv; y-=yv;
 
   //Estimate the impact parameter neglecting the track curvature
-  Double_t d=TMath::Abs(x*snp - y*TMath::Sqrt(1.- snp*snp));
+  Double_t d=TMath::Abs(x*snp - y*TMath::Sqrt((1.-snp)*(1.+snp)));
   if (d > maxd) return kFALSE; 
 
   //Propagate to the DCA
   Double_t crv=GetC(b[2]);
   if (TMath::Abs(b[2]) < kAlmost0Field) crv=0.;
 
-  Double_t tgfv=-(crv*x - snp)/(crv*y + TMath::Sqrt(1.-snp*snp));
-  sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv); cs=TMath::Sqrt(1.- sn*sn);
+  Double_t tgfv=-(crv*x - snp)/(crv*y + TMath::Sqrt((1.-snp)*(1.+snp)));
+  sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv); cs=TMath::Sqrt((1.-sn)*(1.+sn));
   if (TMath::Abs(tgfv)>0.) cs = sn/tgfv;
   else cs=1.;
 
@@ -1395,7 +1395,7 @@ void AliExternalTrackParam::GetDirection(Double_t d[3]) const {
   //----------------------------------------------------------------
   Double_t cs=TMath::Cos(fAlpha), sn=TMath::Sin(fAlpha);
   Double_t snp=fP[2];
-  Double_t csp =TMath::Sqrt((1.- snp)*(1.+snp));
+  Double_t csp =TMath::Sqrt((1.-snp)*(1.+snp));
   Double_t norm=TMath::Sqrt(1.+ fP[3]*fP[3]);
   d[0]=(csp*cs - snp*sn)/norm; 
   d[1]=(snp*cs + csp*sn)/norm; 
@@ -1806,6 +1806,7 @@ void AliExternalTrackParam::g3helx3(Double_t qfield,
  *                                                                *
  ******************************************************************/
   const Int_t ix=0, iy=1, iz=2, ipx=3, ipy=4, ipz=5, ipp=6;
+  const Double_t kOvSqSix=TMath::Sqrt(1./6.);
 
   Double_t cosx=vect[ipx], cosy=vect[ipy], cosz=vect[ipz];
 
@@ -1821,7 +1822,7 @@ void AliExternalTrackParam::g3helx3(Double_t qfield,
      cos1t = 2*t*t/tet;
   } else {
      tsint = tet*tet/6.;
-     sintt = 1.- tsint;
+     sintt = (1.-tet*kOvSqSix)*(1.+tet*kOvSqSix); // 1.- tsint;
      sint  = tet*sintt;
      cos1t = 0.5*tet; 
   }
@@ -1869,7 +1870,7 @@ Bool_t AliExternalTrackParam::PropagateToBxByBz(Double_t xk, const Double_t b[3]
   &fC30=fC[6],   &fC31=fC[7],   &fC32=fC[8],   &fC33=fC[9],  
   &fC40=fC[10],  &fC41=fC[11],  &fC42=fC[12],  &fC43=fC[13], &fC44=fC[14];
 
-  Double_t r1=TMath::Sqrt(1.- f1*f1), r2=TMath::Sqrt(1.- f2*f2);
+  Double_t r1=TMath::Sqrt((1.-f1)*(1.+f1)), r2=TMath::Sqrt((1.-f2)*(1.+f2));
 
   //f = F - 1
   Double_t f02=    dx/(r1*r1*r1);            Double_t cc=crv/fP4;
index 2648dfb..eaf1a06 100644 (file)
@@ -960,7 +960,8 @@ Double_t AliKFParticleBase::GetDStoPointBz( Double_t B, const Double_t xyz[] )
        cB= (1-c)/bq;     
        sB= s/bq;  
       }else{
-       sB = (1. - bs*bs/6.)*ss[i];
+       const Double_t kOvSqr6 = 1./TMath::Sqrt(6.);
+       sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss[i];
        cB = .5*sB*bs;
       }
       g[i][0] = fP[0] + sB*px + cB*py;
@@ -1082,7 +1083,8 @@ void AliKFParticleBase::GetDStoParticleBz( Double_t B, const AliKFParticleBase &
       cB= (1-c)/bq;     
       sB= sss/bq;  
     }else{
-      sB = (1. - bs*bs/6.)*ss[i];
+      const Double_t kOvSqr6 = 1./TMath::Sqrt(6.);
+      sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss[i];
       cB = .5*sB*bs;
     }
     g[i][0] = fP[0] + sB*px + cB*py;
@@ -1097,7 +1099,8 @@ void AliKFParticleBase::GetDStoParticleBz( Double_t B, const AliKFParticleBase &
       cB= (1-c)/bq1;   
       sB= sss/bq1;  
     }else{
-      sB = (1. - bs*bs/6.)*ss1[i];
+      const Double_t kOvSqr6 = 1./TMath::Sqrt(6.);
+      sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss1[i];
       cB = .5*sB*bs;
     }
       
@@ -1289,7 +1292,8 @@ void AliKFParticleBase::TransportBz( Double_t b, Double_t ss,
     sB= s/b;
     cB= (1-c)/b;
   }else{
-    sB = (1. - bs*bs/6.)*ss;
+    const Double_t kOvSqr6 = 1./TMath::Sqrt(6.);
+    sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss;
     cB = .5*sB*bs;
   }
   
index 956e133..57f26fa 100644 (file)
@@ -1142,12 +1142,13 @@ void AliMC::FixParticleDecaytime()
        // Maximum and minimum decay time
        //
        // Check for curlers first
-       if (fRDecayMax * fRDecayMax / rho / rho / 2. > 1.) return;
+       const Double_t kOvRhoSqr2 = 1./(rho*TMath::Sqrt(2.));
+       if (fRDecayMax * kOvRhoSqr2 > 1.) return;
        
        //
  
-       tmax  = TMath::ACos(1. - fRDecayMax * fRDecayMax / rho / rho / 2.) / omega;   // [ct]
-       tmin  = TMath::ACos(1. - fRDecayMin * fRDecayMin / rho / rho / 2.) / omega;   // [ct]
+       tmax  = TMath::ACos((1.-fRDecayMax*kOvRhoSqr2)*(1.+fRDecayMax*kOvRhoSqr2)) / omega;   // [ct]
+       tmax  = TMath::ACos((1.-fRDecayMin*kOvRhoSqr2)*(1.+fRDecayMin*kOvRhoSqr2)) / omega;   // [ct]
     } else {
        tmax =  fRDecayMax / vt;                                                      // [ct] 
        tmin =  fRDecayMin / vt;                                                      // [ct]
index c065226..f672288 100644 (file)
@@ -1061,8 +1061,8 @@ Bool_t   AliTPCtrackerMI::GetProlongation(Double_t x1, Double_t x2, Double_t x[5
     return kFALSE;
   }
 
-  Double_t c1=x[4]*x1 - x[2], r1=sqrt((1.-c1)*(1.+c1));
-  Double_t c2=x[4]*x2 - x[2], r2=sqrt((1.-c2)*(1.+c2));  
+  Double_t c1=x[4]*x1 - x[2], r1=TMath::Sqrt((1.-c1)*(1.+c1));
+  Double_t c2=x[4]*x2 - x[2], r2=TMath::Sqrt((1.-c2)*(1.+c2));  
   y = x[0];
   z = x[1];
   
@@ -6738,7 +6738,7 @@ void  AliTPCtrackerMI::GetShape(AliTPCseed * seed, Int_t row)
   Float_t zdrift = TMath::Abs((fkParam->GetZLength(0)-TMath::Abs(seed->GetZ())));
   Int_t type = (seed->GetSector() < fkParam->GetNSector()/2) ? 0: (row>126) ? 1:2;
   Double_t angulary  = seed->GetSnp();
-  angulary = angulary*angulary/(1.-angulary*angulary);
+  angulary = angulary*angulary/((1.-angulary)*(1.+angulary));
   Double_t angularz  = seed->GetTgl()*seed->GetTgl()*(1.+angulary);
   
   Double_t sigmay =  clparam->GetRMS0(0,type,zdrift,TMath::Sqrt(TMath::Abs(angulary)));
index 1087b0e..7713a16 100644 (file)
@@ -281,13 +281,13 @@ Bool_t AliTRDpidESD::RecalculateTrackSegmentKine(AliESDtrack * const esd
     mom    = op->GetP();
     s      = op->GetSnp();
     t      = op->GetTgl();
-          if (s < 1.) length /= TMath::Sqrt((1. - s*s) / (1. + t*t));
+    if (s < 1.) length /= TMath::Sqrt((1.-s)*(1.+s) / (1. + t*t));
     return kFALSE;
   }
   mom        = param->GetP();
   s = param->GetSnp();
   t = param->GetTgl();
-  if (s < 1.) length    /= TMath::Sqrt((1. - s*s) / (1. + t*t));
+  if (s < 1.) length    /= TMath::Sqrt((1.-s)*(1.+s) / (1. + t*t));
 
   // check if track is crossing tracking sector by propagating to chamber exit- maybe is too much :)
   Double_t alpha = param->GetAlpha();
index f84e9b9..c7f0eef 100644 (file)
@@ -301,7 +301,7 @@ void AliTRDseedV1::Update(const AliTRDtrackV1 *trk)
   Double_t fSnp = trk->GetSnp();
   Double_t fTgl = trk->GetTgl();
   fPt = trk->Pt();
-  Double_t norm =1./TMath::Sqrt(1. - fSnp*fSnp); 
+  Double_t norm =1./TMath::Sqrt((1.-fSnp)*(1.+fSnp)); 
   fYref[1] = fSnp*norm;
   fZref[1] = fTgl*norm;
   SetCovRef(trk->GetCovariance());
index c2c50d3..64e9106 100644 (file)
@@ -239,9 +239,9 @@ void InitialStateHydjet::Initialize(List_t &source, ParticleAllocator & allocato
                
            Double_t php0 = TMath::TwoPi() * gRandom->Rndm();
            Double_t ctp0 = 2. * gRandom->Rndm() - 1.;
-           Double_t stp0 = TMath::Sqrt(1. - ctp0 * ctp0); 
+           Double_t stp0 = TMath::Sqrt((1.-ctp0)*(1.+ctp0)); 
            e = mass + (eMax - mass) * arrayFunctDistE(); 
-           Double_t pp0 = TMath::Sqrt(e * e - mass * mass);
+           Double_t pp0 = TMath::Sqrt((e-mass)*(e+mass));
            px0 = pp0 * stp0 * TMath::Sin(php0); 
            py0 = pp0 * stp0 * TMath::Cos(php0);
            pz0 = pp0 * ctp0;
index 994abd6..3b2c3f4 100644 (file)
@@ -25,7 +25,7 @@ const Double_t hbarc_squared = hbarc * hbarc;
 
 void IsotropicR3(Double_t r, Double_t *x, Double_t *y, Double_t *z) {
   Double_t pZ  = 1. - 2.*(gRandom->Rndm());
-  Double_t st  = TMath::Sqrt(1. - pZ * pZ) * r;
+  Double_t st  = TMath::Sqrt((1.-pZ)*(1.+pZ)) * r;
   Double_t phi = 2. * TMath::Pi() * (gRandom->Rndm());
 
   *x = st * cos(phi);
@@ -35,7 +35,7 @@ void IsotropicR3(Double_t r, Double_t *x, Double_t *y, Double_t *z) {
 
 void IsotropicR3(Double_t r, TVector3 &pos) {
   Double_t pZ  = 1. - 2.* (gRandom->Rndm());  
-  Double_t st  = TMath::Sqrt(1. - pZ * pZ) * r;
+  Double_t st  = TMath::Sqrt((1.-pZ)*(1.+pZ)) * r;
   Double_t phi = 2. * TMath::Pi() * (gRandom->Rndm());
 
   pos.SetX(st * TMath::Cos(phi));