Updated function GetD() (from Y. Belikov)
authorbarbera <barbera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Jul 2002 10:59:23 +0000 (10:59 +0000)
committerbarbera <barbera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Jul 2002 10:59:23 +0000 (10:59 +0000)
ITS/AliITStrackV2.cxx
ITS/AliITStrackV2.h

index 9a97462..33ee5c1 100644 (file)
@@ -597,12 +597,20 @@ Int_t AliITStrackV2::Propagate(Double_t alp,Double_t xk) {
   return 1;
 }
 
-Double_t AliITStrackV2::GetD() const {
+Double_t AliITStrackV2::GetD(Double_t x, Double_t y) const {
   //------------------------------------------------------------------
-  //This function calculates the transverse impact parameter
+  // This function calculates the transverse impact parameter
+  // with respect to a point with global coordinates (x,y)
   //------------------------------------------------------------------
-  Double_t sn=fP4*fX - fP2, cs=fP4*fP0 + TMath::Sqrt(1.- fP2*fP2);
-  Double_t a=2*(fX*fP2 - fP0*TMath::Sqrt(1.- fP2*fP2))-fP4*(fX*fX + fP0*fP0);
+  Double_t xt=fX, yt=fP0;
+
+  Double_t sn=TMath::Sin(fAlpha), cs=TMath::Cos(fAlpha);
+  Double_t a = x*cs + y*sn;
+  y = -x*sn + y*cs; x=a;
+  xt-=x; yt-=y;
+
+  sn=fP4*xt - fP2; cs=fP4*yt + TMath::Sqrt(1.- fP2*fP2);
+  a=2*(xt*fP2 - yt*TMath::Sqrt(1.- fP2*fP2))-fP4*(xt*xt + yt*yt);
   if (fP4<0) a=-a;
   return a/(1 + TMath::Sqrt(sn*sn + cs*cs));
 }
index 608b438..a625fa7 100644 (file)
@@ -62,7 +62,7 @@ public:
   Double_t GetSnp()  const {return fP2;}
   Double_t GetTgl()  const {return fP3;}
   Double_t Get1Pt()  const {return fP4*GetConvConst();}
-  Double_t GetD() const;
+  Double_t GetD(Double_t x=0, Double_t y=0) const;
   Double_t GetSigmaY2() const {return fC00;}
   Double_t GetSigmaZ2() const {return fC11;}
   Int_t Compare(const TObject *o) const;