]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- move tracklet index stored in track from UShort_t to Int_t - follow the
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Nov 2009 12:24:18 +0000 (12:24 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Nov 2009 12:24:18 +0000 (12:24 +0000)
same convention as for the other detectors
- remove TLinearFitters from tracklets as we have moved to private/fast
  linear fitter

TRD/AliTRDseedV1.cxx
TRD/AliTRDseedV1.h
TRD/AliTRDtrackV1.cxx
TRD/AliTRDtrackV1.h
TRD/AliTRDtrackerV1.cxx

index e9e8761d2f2d701b8101b2ca7730c6905b91b0d5..a1ab57695f78121fdf8832133c40eb397a865d01 100644 (file)
@@ -36,8 +36,6 @@
 ////////////////////////////////////////////////////////////////////////////
 
 #include "TMath.h"
-#include "TLinearFitter.h"
-#include "TClonesArray.h" // tmp
 #include <TTreeStream.h>
 
 #include "AliLog.h"
@@ -62,9 +60,6 @@
 
 ClassImp(AliTRDseedV1)
 
-TLinearFitter *AliTRDseedV1::fgFitterY = NULL;
-TLinearFitter *AliTRDseedV1::fgFitterZ = NULL;
-
 //____________________________________________________________________
 AliTRDseedV1::AliTRDseedV1(Int_t det) 
   :AliTRDtrackletBase()
@@ -771,21 +766,6 @@ UShort_t AliTRDseedV1::GetVolumeId() const
   return fClusters[ic] ? fClusters[ic]->GetVolumeId() : 0;
 }
 
-//____________________________________________________________________
-TLinearFitter* AliTRDseedV1::GetFitterY()
-{
-  if(!fgFitterY) fgFitterY = new TLinearFitter(1, "pol1");
-  fgFitterY->ClearPoints();
-  return fgFitterY;
-}
-
-//____________________________________________________________________
-TLinearFitter* AliTRDseedV1::GetFitterZ()
-{
-  if(!fgFitterZ) fgFitterZ = new TLinearFitter(1, "pol1");
-  fgFitterZ->ClearPoints();
-  return fgFitterZ;
-}
 
 //____________________________________________________________________
 void AliTRDseedV1::Calibrate()
index 59c702344b848f09dfa2f4aa4ae600118c55d73d..3e93580ac8569b3fae8293671f3a6bcff94b0d14 100644 (file)
@@ -124,8 +124,6 @@ public:
   void      GetCalibParam(Float_t &exb, Float_t &vd, Float_t &t0, Float_t &s2, Float_t &dl, Float_t &dt) const    { 
               exb = fExB; vd = fVD; t0 = fT0; s2 = fS2PRF; dl = fDiffL; dt = fDiffT;}
   AliTRDcluster*  GetClusters(Int_t i) const               { return i<0 || i>=kNclusters ? NULL: fClusters[i];}
-  static TLinearFitter*  GetFitterY();
-  static TLinearFitter*  GetFitterZ();
   Int_t     GetIndexes(Int_t i) const{ return i<0 || i>=kNclusters ? -1 : fIndexes[i];}
   Int_t     GetLabels(Int_t i) const { return fLabels[i];}  
   Float_t   GetMomentum(Float_t *err = NULL) const;
@@ -238,10 +236,8 @@ private:
   Int_t            fLabels[3];              // most frequent MC labels and total number of different labels
   Double_t         fRefCov[7];              // covariance matrix of the track in the yz plane + the rest of the diagonal elements
   Double_t         fCov[3];                 // covariance matrix of the tracklet in the xy plane
-  static TLinearFitter   *fgFitterY;        // Linear Fitter for tracklet fit in xy-plane
-  static TLinearFitter   *fgFitterZ;        // Linear Fitter for tracklet fit in xz-plane
 
-  ClassDef(AliTRDseedV1, 9)                 // The offline TRD tracklet 
+  ClassDef(AliTRDseedV1, 10)                 // The offline TRD tracklet 
 };
 
 //____________________________________________________________
index 214e75cd296856cca3da42371482725be5701c75..56e88610b668f6188090351c8ebec2bd41e676c2 100644 (file)
@@ -58,7 +58,7 @@ AliTRDtrackV1::AliTRDtrackV1() : AliKalmanTrack()
   for(int is =0; is<AliPID::kSPECIES; is++) fPID[is] = pid;
 
   for(int ip=0; ip<kNplane; ip++){
-    fTrackletIndex[ip] = 0xffff;
+    fTrackletIndex[ip] = -1;
     fTracklet[ip]      = NULL;
   }
 }
@@ -110,9 +110,9 @@ AliTRDtrackV1::AliTRDtrackV1(const AliESDtrack &t) : AliKalmanTrack()
 
   SetMass(t.GetMass()/*0.000510*/);
   AliKalmanTrack::SetNumberOfClusters(t.GetTRDncls()); 
-  Int_t ti[kNplane]; t.GetTRDtracklets(&ti[0]);
+  Int_t ti[]={-1, -1, -1, -1, -1, -1}; t.GetTRDtracklets(&ti[0]);
   for(int ip=0; ip<kNplane; ip++){ 
-    fTrackletIndex[ip] = ti[ip] < 0 ? 0xffff : ti[ip];
+    fTrackletIndex[ip] = ti[ip];
     fTracklet[ip]      = NULL;
   }
   for(int i =0; i<3; i++) fBudget[i] = 0.;
@@ -194,7 +194,7 @@ AliTRDtrackV1::AliTRDtrackV1(AliTRDseedV1 * const trklts, const Double_t p[5], c
   AliDebug(2, Form("Init @ x[%6.2f] pt[%5.3f]", x, 1./pp[4]));
   Int_t ncls = 0;
        for(int iplane=0; iplane<kNplane; iplane++){
-    fTrackletIndex[iplane] = 0xffff;
+    fTrackletIndex[iplane] = -1;
                if(!trklts[iplane].IsOK()) fTracklet[iplane] = NULL;
     else{ 
       fTracklet[iplane] = &trklts[iplane];
@@ -223,7 +223,7 @@ AliTRDtrackV1::~AliTRDtrackV1()
   for(Int_t ip=0; ip<kNplane; ip++){
     if(TestBit(kOwner) && fTracklet[ip]) delete fTracklet[ip];
     fTracklet[ip] = NULL;
-    fTrackletIndex[ip] = 0xffff;
+    fTrackletIndex[ip] = -1;
   }
 }
        
@@ -243,7 +243,7 @@ Bool_t AliTRDtrackV1::CookLabel(Float_t wrong)
   Int_t label;
   AliTRDcluster *c    = NULL;
   for (Int_t ip = 0; ip < kNplane; ip++) {
-    if(fTrackletIndex[ip] == 0xffff) continue;
+    if(fTrackletIndex[ip] == -1) continue;
     for (Int_t ic = 0; ic < AliTRDseedV1::kNclusters; ic++) {
       if(!(c = fTracklet[ip]->GetClusters(ic))) continue;
       for (Int_t k = 0; k < 3; k++) { 
@@ -328,7 +328,7 @@ UChar_t AliTRDtrackV1::GetNumberOfTrackletsPID() const
   UChar_t nPID = 0;
   Float_t *prob = NULL;
   for(int ip=0; ip<kNplane; ip++){
-    if(fTrackletIndex[ip] == 0xffff) continue;
+    if(fTrackletIndex[ip] == -1) continue;
     if(!fTracklet[ip]->IsOK()) continue;
     if(!(prob = fTracklet[ip]->GetProbability(kFALSE))) continue;
     
@@ -355,7 +355,7 @@ UChar_t AliTRDtrackV1::SetNumberOfTrackletsPID(Bool_t recalc)
   // steer PID calculation @ tracklet level
   Float_t *prob = NULL;
   for(int ip=0; ip<kNplane; ip++){
-    if(fTrackletIndex[ip] == 0xffff) continue;
+    if(fTrackletIndex[ip] == -1) continue;
     if(!fTracklet[ip]->IsOK()) continue;
     if(!(prob = fTracklet[ip]->GetProbability(recalc))) return 0;
     
@@ -725,7 +725,7 @@ void AliTRDtrackV1::SetNumberOfClusters()
        
   Int_t ncls = 0;
   for(int ip=0; ip<kNplane; ip++){
-    if(fTracklet[ip] && fTrackletIndex[ip] != 0xffff) ncls += fTracklet[ip]->GetN();
+    if(fTracklet[ip] && fTrackletIndex[ip] != -1) ncls += fTracklet[ip]->GetN();
   }
   AliKalmanTrack::SetNumberOfClusters(ncls);   
 }
@@ -740,7 +740,7 @@ void AliTRDtrackV1::SetOwner()
 
   if(TestBit(kOwner)) return;
   for (Int_t ip = 0; ip < kNplane; ip++) {
-    if(fTrackletIndex[ip] == 0xffff) continue;
+    if(fTrackletIndex[ip] == -1) continue;
     fTracklet[ip] = new AliTRDseedV1(*fTracklet[ip]);
     fTracklet[ip]->SetOwner();
   }
@@ -777,7 +777,7 @@ void AliTRDtrackV1::SetTrackHigh(const AliExternalTrackParam *op)
 void AliTRDtrackV1::UnsetTracklet(Int_t plane)
 {
   if(plane<0 && plane >= kNplane) return;
-  fTrackletIndex[plane] = 0xffff;
+  fTrackletIndex[plane] = -1;
   fTracklet[plane] = NULL;
 }
 
@@ -816,7 +816,7 @@ void AliTRDtrackV1::UpdateESDtrack(AliESDtrack *track)
   // store raw signals
   Float_t p, sp; Double_t spd;
   for (Int_t ip = 0; ip < kNplane; ip++) {
-    if(fTrackletIndex[ip] == 0xffff) continue;
+    if(fTrackletIndex[ip] == -1) continue;
     if(!fTracklet[ip]->HasPID()) continue;
     const Float_t *dedx = fTracklet[ip]->GetdEdx();
     for (Int_t js = 0; js < nslices; js++, dedx++) track->SetTRDslice(*dedx, ip, js);
index bc3e5a55b4f0ec521dcdc6bde59aef14a4572b23..08122877efa2f53fc745b52d40522fe064f3b5b3 100644 (file)
@@ -97,7 +97,7 @@ public:
                  GetTrackLow() const  { return fTrackLow;} 
   AliExternalTrackParam*
                  GetTrackHigh() const  { return fTrackHigh;} 
-  const UShort_t* GetTrackletIndexes() const { return &fTrackletIndex[0];}
+  const Int_t* GetTrackletIndexes() const { return &fTrackletIndex[0];}
   
   Bool_t         IsEqual(const TObject *inTrack) const;
   Bool_t         IsKink() const    { return TestBit(kKink);}
@@ -135,23 +135,23 @@ public:
 
 private:
   UInt_t       fStatus;                //  Bit map for the status of propagation
-  UShort_t     fTrackletIndex[kNplane];//  Tracklets index in the tracker list
+  Int_t        fTrackletIndex[kNplane];//  Tracklets index in the tracker list
   Double32_t   fPID[AliPID::kSPECIES]; //  PID probabilities
   Double32_t   fBudget[3];             //  Integrated material budget
   Double32_t   fDE;                    //  Integrated delta energy
   const AliTRDReconstructor *fkReconstructor;//! reconstructor link 
   AliTRDtrackV1 *fBackupTrack;         //! Backup track
-  AliTRDseedV1 *fTracklet[kNplane];    //  Tracklets array defining the track
+  AliTRDseedV1  *fTracklet[kNplane];   //  Tracklets array defining the track
   AliExternalTrackParam *fTrackLow;    // parameters of the track which enter TRD from below (TPC) 
-  AliExternalTrackParam *fTrackHigh;  // parameters of the track which enter TRD from above (HMPID, PHOS) 
+  AliExternalTrackParam *fTrackHigh;   // parameters of the track which enter TRD from above (HMPID, PHOS) 
 
-  ClassDef(AliTRDtrackV1, 5)          // TRD track - tracklet based
+  ClassDef(AliTRDtrackV1, 6)          // TRD track - tracklet based
 };
 
 //____________________________________________________
 inline Float_t AliTRDtrackV1::GetMomentum(Int_t plane) const
 {
-  return plane >=0 && plane < kNplane && fTrackletIndex[plane] != 0xff ? fTracklet[plane]->GetMomentum() : -1.;
+  return plane >=0 && plane < kNplane && fTrackletIndex[plane] != -1 ? fTracklet[plane]->GetMomentum() : -1.;
 }
 
 //____________________________________________________
index bead39a214a98a7b2c0deb8b140ae24a14487ec4..af61618f1e45e42974c871a2f41afb12e866da32 100644 (file)
@@ -549,8 +549,9 @@ Int_t AliTRDtrackerV1::FollowProlongation(AliTRDtrackV1 &t)
   Bool_t kStoreIn = kTRUE;
   Int_t    nClustersExpected = 0;
   for (Int_t iplane = kNPlanes; iplane--;) {
-    Int_t   index   = 0;
+    Int_t   index(-1);
     AliTRDseedV1 *tracklet = GetTracklet(&t, iplane, index);
+    AliDebug(2, Form("Tracklet[%p] ly[%d] idx[%d]", (void*)tracklet, iplane, index));
     if(!tracklet) continue;
     if(!tracklet->IsOK()){ 
       AliDebug(1, Form("Tracklet Det[%d] !OK", tracklet->GetDetector()));
@@ -946,8 +947,10 @@ Int_t AliTRDtrackerV1::FollowBackProlongation(AliTRDtrackV1 &t)
     // load tracklet to the tracker
     ptrTracklet->Update(&t);
     ptrTracklet = SetTracklet(ptrTracklet);
-    t.SetTracklet(ptrTracklet, fTracklets->GetEntriesFast()-1);
+    Int_t index(fTracklets->GetEntriesFast()-1);
+    t.SetTracklet(ptrTracklet, index);
     n += ptrTracklet->GetN();
+    AliDebug(2, Form("Setting Tracklet[%d] @ Idx[%d]", ily, index));
 
     // Reset material budget if 2 consecutive gold
 //     if(ilayer>0 && t.GetTracklet(ilayer-1) && ptrTracklet->GetN() + t.GetTracklet(ilayer-1)->GetN() > 20) t.SetBudget(2, 0.);
@@ -2043,7 +2046,7 @@ AliTRDseedV1* AliTRDtrackerV1::GetTracklet(AliTRDtrackV1 *const track, Int_t p,
   // Detailed description
   //
   idx = track->GetTrackletIndex(p);
-  AliTRDseedV1 *tracklet = (idx==0xffff) ? NULL : (AliTRDseedV1*)fTracklets->UncheckedAt(idx);
+  AliTRDseedV1 *tracklet = (idx<0) ? NULL : (AliTRDseedV1*)fTracklets->UncheckedAt(idx);
 
   return tracklet;
 }