]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Use 3D distance as a criteria to choose the track mirror
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Sep 2008 07:24:44 +0000 (07:24 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Sep 2008 07:24:44 +0000 (07:24 +0000)
(Marian)

TPC/AliTPCLaserTrack.cxx

index 2fc47edfcc8adddbb9cddecce502ead3fb46c75a..92c426fc1ea8f3ff27651199941b89fb95dc8cb7 100644 (file)
@@ -115,47 +115,54 @@ Int_t AliTPCLaserTrack::IdentifyTrack(AliExternalTrackParam *track)
   //
   // 
   const  Float_t   kMaxdphi=0.1;
-  const  Float_t   kMaxdphiP=0.06;
-  const  Float_t   kMaxdz=50;
+  const  Float_t   kMaxdphiP=0.05;
+  const  Float_t   kMaxdz=40;
 
   if ( !fgArrLaserTracks ) LoadTracks();
   TObjArray *arrTracks = GetTracks();
-  
-
   Double_t lxyz0[3];
   Double_t lxyz1[3];
   Double_t pxyz0[3];
   Double_t pxyz1[3];
   track->GetXYZ(lxyz0);
   track->GetPxPyPz(pxyz0);
-  
+  //
+  Float_t mindist=40; // maxima minimal distance
   Int_t id = -1;
+  AliExternalTrackParam*  ltr0= (AliExternalTrackParam*)arrTracks->UncheckedAt(0);
   for (Int_t itrack=0; itrack<fgkNLaserTracks; itrack++){
     AliExternalTrackParam *ltr = (AliExternalTrackParam*)arrTracks->UncheckedAt(itrack);
     Double_t * kokot = (Double_t*)ltr->GetParameter();
     kokot[4]=-0.0000000001;
     //
     ltr->GetXYZ(lxyz1);
-    if ( (lxyz1[2]>0) && lxyz0[2]<0) continue;
-    if ( (lxyz1[2]<0) && lxyz0[2]>0) continue;
-    if (TMath::Abs(lxyz1[2]-lxyz0[2])>kMaxdz) continue;
+    //if (TMath::Abs(lxyz1[2]-lxyz0[2])>kMaxdz) continue;
     // phi position
     Double_t phi0 = TMath::ATan2(lxyz0[1],lxyz0[0]);
     Double_t phi1 = TMath::ATan2(lxyz1[1],lxyz1[0]);
-    if (TMath::Abs(phi0-phi1)>kMaxdphi) continue;
+    //if (TMath::Abs(phi0-phi1)>kMaxdphi) continue;
     // phi direction
     ltr->GetPxPyPz(pxyz1);
-    Double_t pphi0 = TMath::ATan2(pxyz0[1],pxyz0[0]);
-    Double_t pphi1 = TMath::ATan2(pxyz1[1],pxyz1[0]);
-    Bool_t phimatch = kFALSE;
+    Float_t distdir = (ltr->GetParameter()[2]-track->GetParameter()[2])*90; //distance at entrance
     if (TMath::Abs(ltr->GetParameter()[2]-track->GetParameter()[2])>kMaxdphiP)
       continue;
-  //   if (TMath::Abs(pphi0-pphi1)<kMaxdphiP) phimatch=kTRUE;
-//     if (TMath::Abs(pphi0-pphi1-TMath::Pi())<kMaxdphiP) phimatch=kTRUE;
-//     if (TMath::Abs(pphi0-pphi1+TMath::Pi())<kMaxdphiP) phimatch=kTRUE;
-//     if (!phimatch) continue;
     //
-    id =itrack;
+    Float_t dist=0;
+    dist+=TMath::Abs(lxyz1[0]-lxyz0[0]);
+    dist+=TMath::Abs(lxyz1[1]-lxyz0[1]);
+    dist+=TMath::Abs(lxyz1[2]-lxyz0[2]);
+    dist+=distdir;
+    //    
+    if (id<0)  {
+      id =itrack; 
+      mindist=dist; 
+      ltr0=ltr;
+      continue;
+    }
+    if (dist>mindist) continue;
+    id = itrack;
+    mindist=dist;
+    ltr0=ltr;
   }
   return id;
 }