+ Int_t n=t.GetNumberOfClusters();
+ SetNumberOfClusters(n);
+ for (Int_t i=0; i<n; i++) {
+ fIndex[i]=t.fIndex[i];
+ fdQdl[i]=t.fdQdl[i];
+ }
+}
+
+//_____________________________________________________________________________
+AliTRDtrack::AliTRDtrack(const AliKalmanTrack& t, Double_t alpha) {
+ //
+ // Constructor from AliTPCtrack or AliITStrack .
+ //
+
+ SetLabel(t.GetLabel());
+ SetChi2(0.);
+ SetNumberOfClusters(0);
+
+ fdEdx=0;
+
+ fAlpha = alpha;
+ if (fAlpha < -TMath::Pi()) fAlpha += 2*TMath::Pi();
+ else if (fAlpha >= TMath::Pi()) fAlpha -= 2*TMath::Pi();
+
+ Double_t x, p[5]; t.GetExternalParameters(x,p);
+
+ fX=x;
+
+ x = GetConvConst();
+
+ fY=p[0]; fZ=p[1]; fC=p[4]/x;
+ fE=fX*fC-p[2]; fT=p[3];
+
+ //Conversion of the covariance matrix
+ Double_t c[15]; t.GetExternalCovariance(c);
+
+ c[10]/=x; c[11]/=x; c[12]/=x; c[13]/=x; c[14]/=x*x;
+
+ Double_t c22=fX*fX*c[14] - 2*fX*c[12] + c[5];
+ Double_t c32=fX*c[13] - c[8];
+ Double_t c20=fX*c[10] - c[3], c21=fX*c[11] - c[4], c42=fX*c[14] - c[12];
+
+ fCyy=c[0 ];
+ fCzy=c[1 ]; fCzz=c[2 ];
+ fCcy=c[10]; fCcz=c[11]; fCcc=c[14];
+ fCey=c20; fCez=c21; fCec=c42; fCee=c22;
+ fCty=c[6 ]; fCtz=c[7 ]; fCtc=c[13]; fCte=c32; fCtt=c[9 ];
+
+}
+
+//____________________________________________________________________________
+void AliTRDtrack::GetExternalParameters(Double_t& xr, Double_t x[5]) const {
+ //
+ // This function returns external TRD track representation
+ //
+ xr=fX;
+ x[0]=GetY();
+ x[1]=GetZ();
+ x[2]=GetSnp();
+ x[3]=GetTgl();
+ x[4]=fC*GetConvConst();
+}
+
+//_____________________________________________________________________________
+void AliTRDtrack::GetExternalCovariance(Double_t cc[15]) const {
+ //
+ // This function returns external representation of the covriance matrix.
+ //
+ Double_t a=GetConvConst();
+
+ Double_t c22=fX*fX*fCcc-2*fX*fCec+fCee;
+ Double_t c32=fX*fCtc-fCte;
+ Double_t c20=fX*fCcy-fCey, c21=fX*fCcz-fCez, c42=fX*fCcc-fCec;
+
+ cc[0 ]=fCyy;
+ cc[1 ]=fCzy; cc[2 ]=fCzz;
+ cc[3 ]=c20; cc[4 ]=c21; cc[5 ]=c22;
+ cc[6 ]=fCty; cc[7 ]=fCtz; cc[8 ]=c32; cc[9 ]=fCtt;
+ cc[10]=fCcy*a; cc[11]=fCcz*a; cc[12]=c42*a; cc[13]=fCtc*a; cc[14]=fCcc*a*a;
+}
+