Some additional changes related to the previous changes. AliL3Transform
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTrack.cxx
index ff006c3f82a6b23db377863938f9a8fff919ee40..9baff670de76970785e76e7f1f06ef90eb2a8ebb 100644 (file)
@@ -1,3 +1,7 @@
+//$Id$
+
+// Author: Anders Vestbo <mailto:vestbo@fi.uib.no>
+//*-- Copyright &copy ASV 
 
 #include <math.h>
 
@@ -6,6 +10,11 @@
 #include "AliL3Defs.h"
 #include "AliL3HoughTrack.h"
 
+//_____________________________________________________________
+// AliL3HoughTrack
+//
+// Track class for Hough tracklets
+
 ClassImp(AliL3HoughTrack)
 
 
@@ -15,7 +24,6 @@ AliL3HoughTrack::AliL3HoughTrack()
   
   fWeight = 0;
   fMinDist=0;
-  fTransform = new AliL3Transform();
   fDLine = 0;
   fPsiLine = 0;
   fIsHelix = true;
@@ -25,9 +33,7 @@ AliL3HoughTrack::AliL3HoughTrack()
 
 AliL3HoughTrack::~AliL3HoughTrack()
 {
-  //Destructor
-  if(fTransform)
-    delete fTransform;
+  
 }
 
 void AliL3HoughTrack::Set(AliL3Track *track)
@@ -37,6 +43,7 @@ void AliL3HoughTrack::Set(AliL3Track *track)
   SetTrackParameters(tpt->GetKappa(),tpt->GetPhi0(),tpt->GetWeight());
   SetEtaIndex(tpt->GetEtaIndex());
   SetEta(tpt->GetEta());
+  SetTgl(tpt->GetTgl());
   SetPsi(tpt->GetPsi());
   SetCenterX(tpt->GetCenterX());
   SetCenterY(tpt->GetCenterY());
@@ -44,6 +51,8 @@ void AliL3HoughTrack::Set(AliL3Track *track)
   SetLastPoint(tpt->GetLastPointX(),tpt->GetLastPointY(),tpt->GetLastPointZ());
   SetCharge(tpt->GetCharge());
   SetRowRange(tpt->GetFirstRow(),tpt->GetLastRow());
+  SetSlice(tpt->GetSlice());
+  SetNHits(1);
   return;
 
   fWeight = tpt->GetWeight();
@@ -66,7 +75,8 @@ Int_t AliL3HoughTrack::Compare(const AliL3Track *tpt) const
 
 void AliL3HoughTrack::SetEta(Double_t f)
 {
-  
+  //Set eta, and calculate fTanl, which is the tan of dipangle
+
   fEta = f;
   Double_t theta = 2*atan(exp(-1.*fEta));
   Double_t dipangle = Pi/2 - theta;
@@ -97,17 +107,20 @@ void AliL3HoughTrack::UpdateToFirstRow()
   Double_t radius = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]);
 
   //Get the track parameters
+  
+  /*
+    Double_t x0    = GetR0() * cos(GetPhi0()) ;
+    Double_t y0    = GetR0() * sin(GetPhi0()) ;
+  */
+  Double_t rc    = GetRadius();//fabs(GetPt()) / ( BFACT * BField )  ;
   Double_t tPhi0 = GetPsi() + GetCharge() * 0.5 * pi / fabs(GetCharge()) ;
-  Double_t x0    = GetR0() * cos(GetPhi0()) ;
-  Double_t y0    = GetR0() * sin(GetPhi0()) ;
-  Double_t rc    = fabs(GetPt()) / ( BFACT * bField )  ;
-  Double_t xc    = x0 - rc * cos(tPhi0) ;
-  Double_t yc    = y0 - rc * sin(tPhi0) ;
+  Double_t xc    = GetCenterX();//x0 - rc * cos(tPhi0) ;
+  Double_t yc    = GetCenterY();//y0 - rc * sin(tPhi0) ;
   
   //Check helix and cylinder intersect
   Double_t fac1 = xc*xc + yc*yc ;
   Double_t sfac = sqrt( fac1 ) ;
-    
+  
   if ( fabs(sfac-rc) > radius || fabs(sfac+rc) < radius ) {
     LOG(AliL3Log::kError,"AliL3HoughTrack::UpdateToFirstRow","Tracks")<<AliL3Log::kDec<<
       "Track does not intersect"<<ENDLOG;
@@ -161,7 +174,7 @@ void AliL3HoughTrack::SetTrackParameters(Double_t kappa,Double_t phi,Int_t weigh
   fMinDist = 100000;
   SetKappa(kappa);
   SetPhi0(phi);
-  Double_t pt = fabs(BFACT*bField/kappa);
+  Double_t pt = fabs(BFACT*BField/kappa);
   SetPt(pt);
   Double_t radius = 1/fabs(kappa);
   SetRadius(radius);
@@ -176,8 +189,10 @@ void AliL3HoughTrack::SetTrackParameters(Double_t kappa,Double_t phi,Int_t weigh
   Double_t yc = GetFirstPointY() - GetRadius() * sin(trackPhi0) ;
   SetCenterX(xc);
   SetCenterY(yc);
+  SetNHits(1); //just for the trackarray IO
   fIsHelix = true;
   
+  
 }
 
 void AliL3HoughTrack::SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int_t *rowrange,Int_t ref_row)
@@ -187,6 +202,7 @@ void AliL3HoughTrack::SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int
 
   //Transform line parameters to coordinate system of slice:
   
+  /*
   D = D + fTransform->Row2X(ref_row)*cos(psi);
 
   fDLine = D;
@@ -195,7 +211,7 @@ void AliL3HoughTrack::SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int
   SetNHits(weight);
   SetRowRange(rowrange[0],rowrange[1]);
   fIsHelix = false;
-
+  */
 }
 
 void AliL3HoughTrack::SetBestMCid(Int_t mcid,Double_t min_dist)
@@ -212,7 +228,7 @@ void AliL3HoughTrack::SetBestMCid(Int_t mcid,Double_t min_dist)
 void AliL3HoughTrack::GetLineCrossingPoint(Int_t padrow,Double_t *xy)
 {
   
-
+  /*
   if(fIsHelix)
     {
       printf("AliL3HoughTrack::GetLineCrossingPoint : Track is not a line\n");
@@ -226,7 +242,7 @@ void AliL3HoughTrack::GetLineCrossingPoint(Int_t padrow,Double_t *xy)
   Double_t yhit = a*xhit + b;
   xy[0] = xhit;
   xy[1] = yhit;
-
+  */
 }
 
 /*