-//_____________________________________________________________________________
-Int_t AliTPCtrack::Rotate(Double_t alpha)
-{
- //-----------------------------------------------------------------
- // This function rotates this track.
- //-----------------------------------------------------------------
-
- if (alpha != 0) fNRotation++; // [SR, 01.04.2003]
-
- fAlpha += alpha;
- if (fAlpha<-TMath::Pi()) fAlpha += 2*TMath::Pi();
- if (fAlpha>=TMath::Pi()) fAlpha -= 2*TMath::Pi();
-
- Double_t x1=fX, y1=fP0;
- Double_t ca=cos(alpha), sa=sin(alpha);
- Double_t r1=fP4*fX - fP2;
-
- fX = x1*ca + y1*sa;
- fP0=-x1*sa + y1*ca;
- fP2=fP2*ca + (fP4*y1 + sqrt(1.- r1*r1))*sa;
-
- Double_t r2=fP4*fX - fP2;
- if (TMath::Abs(r2) >= 0.99999) {
- Int_t n=GetNumberOfClusters();
- if (n>4) cerr<<n<<" AliTPCtrack warning: Rotation failed !\n";
- return 0;
- }
-
- Double_t y0=fP0 + sqrt(1.- r2*r2)/fP4;
- if ((fP0-y0)*fP4 >= 0.) {
- Int_t n=GetNumberOfClusters();
- if (n>4) cerr<<n<<" AliTPCtrack warning: Rotation failed !!!\n";
- return 0;
- }
-
- //f = F - 1
- Double_t f00=ca-1, f24=(y1 - r1*x1/sqrt(1.- r1*r1))*sa,
- f20=fP4*sa, f22=(ca + sa*r1/sqrt(1.- r1*r1))-1;
-
- //b = C*ft
- Double_t b00=fC00*f00, b02=fC00*f20+fC40*f24+fC20*f22;
- Double_t b10=fC10*f00, b12=fC10*f20+fC41*f24+fC21*f22;
- Double_t b20=fC20*f00, b22=fC20*f20+fC42*f24+fC22*f22;
- Double_t b30=fC30*f00, b32=fC30*f20+fC43*f24+fC32*f22;
- Double_t b40=fC40*f00, b42=fC40*f20+fC44*f24+fC42*f22;
-
- //a = f*b = f*C*ft
- Double_t a00=f00*b00, a02=f00*b02, a22=f20*b02+f24*b42+f22*b22;
-
- // *** Double_t dy2=fCyy;
-
- //F*C*Ft = C + (a + b + bt)
- fC00 += a00 + 2*b00;
- fC10 += b10;
- fC20 += a02+b20+b02;
- fC30 += b30;
- fC40 += b40;
- fC21 += b12;
- fC32 += b32;
- fC22 += a22 + 2*b22;
- fC42 += b42;
-
- // *** fCyy+=dy2*sa*sa*r1*r1/(1.- r1*r1);
- // *** fCzz+=d2y*sa*sa*fT*fT/(1.- r1*r1);
-
- return 1;
-}
-
-void AliTPCtrack::ResetCovariance() {
- //------------------------------------------------------------------
- //This function makes a track forget its history :)
- //------------------------------------------------------------------
-
- fC00*=10.;
- fC10=0.; fC11*=10.;
- fC20=0.; fC21=0.; fC22*=10.;
- fC30=0.; fC31=0.; fC32=0.; fC33*=10.;
- fC40=0.; fC41=0.; fC42=0.; fC43=0.; fC44*=10.;
-
-}
-
-////////////////////////////////////////////////////////////////////////
-Double_t AliTPCtrack::Phi() const {
-//
-//
-//
- Double_t phi = TMath::ASin(GetSnp()) + fAlpha;
- if (phi<0) phi+=2*TMath::Pi();
- if (phi>=2*TMath::Pi()) phi-=2*TMath::Pi();
- return phi;
-}
-////////////////////////////////////////////////////////////////////////
-
-
-