]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCtrackerMI.h
Added switch in recoparam for HLTPreSeeding
[u/mrichter/AliRoot.git] / TPC / AliTPCtrackerMI.h
index 51fb0eb79a48750e1085e2bbc81806c46320d29c..358b10f8170e91e2e68ebc1ec563d3caf4685d56 100644 (file)
@@ -30,11 +30,11 @@ class TTree;
 class AliESDkink;
 class TTreeSRedirector;
 class AliTrackPoint;
-class AliClonesPool;
 class AliDCSSensorArray;
 class AliDCSSensor;
 
 
+
 class AliTPCtrackerMI : public AliTracker {
 public:
   AliTPCtrackerMI();
@@ -42,6 +42,7 @@ public:
   virtual ~AliTPCtrackerMI();
   //
   void SetIteration(Int_t iteration){fIteration = iteration;}
+  virtual Int_t Clusters2TracksHLT(AliESDEvent *const esd, const AliESDEvent *hltEvent);
   virtual Int_t Clusters2Tracks (AliESDEvent *const esd);
   virtual Int_t RefitInward (AliESDEvent *esd);
   virtual Int_t LoadClusters (TTree * const tree);
@@ -54,6 +55,7 @@ public:
   Int_t LoadOuterSectors();
   virtual void FillClusterArray(TObjArray* array) const;
   void   Transform(AliTPCclusterMI * cluster);
+  void ApllyTailCancellation();
   //
   void FillESD(const TObjArray* arr);
   void DeleteSeeds();
@@ -108,6 +110,10 @@ public:
                 Double_t c) const; 
    Bool_t GetProlongation(Double_t x1, Double_t x2, Double_t x[5], Double_t &y, Double_t &z) const;
    //
+   void ResetSeedsPool();
+   void MarkSeedFree( TObject* seed );
+   TObject *&NextFreeSeed();
+   //
  public:
    void SetUseHLTClusters(Int_t useHLTClusters) {fUseHLTClusters = useHLTClusters;} // set usage from HLT clusters from rec.C options
 
@@ -173,6 +179,10 @@ private:
 
    void MakeESDBitmaps(AliTPCseed *t, AliESDtrack *esd);
 
+   Int_t PropagateToRowHLT(AliTPCseed *pt, int nrow);
+   void TrackFollowingHLT(TObjArray *const arr);
+   TObjArray * MakeSeedsHLT(const AliESDEvent *hltEvent);
+
    const Int_t fkNIS;        //number of inner sectors
    AliTPCtrackerSector *fInnerSec;  //array of inner sectors;
    const Int_t fkNOS;        //number of outer sectors
@@ -186,6 +196,7 @@ private:
    TTree * fSeedTree;    // output tree with seeds - filled in debug mode 1
    TTree * fTreeDebug;   // output with a debug information about track
    AliESDEvent * fEvent;      // output with esd tracks
+   const AliESDEvent * fEventHLT;      // input with HLT tracks
    Int_t    fDebug;      // debug option        
    Bool_t   fNewIO;      // indicated if we have data using New IO 
    Int_t fNtracks;                     //current number of tracks
@@ -199,9 +210,10 @@ private:
    TTreeSRedirector *fDebugStreamer;     //!debug streamer
    Int_t  fUseHLTClusters;              // use HLT clusters instead of offline clusters
    //
-   AliClonesPool* fSeedsPool;            //! pool of seeds. Note: Owned by reconstruction pools (if exist)
-   AliClonesPool* fKinksPool;            //! pool of kinks. Note: Owned by reconstruction pools (if exist)
-
+   TClonesArray* fSeedsPool;            //! pool of seeds
+   TArrayI fFreeSeedsID;                //! array of ID's of freed seeds
+   Int_t fNFreeSeeds;                   //! number of seeds freed in the pool
+   Int_t fLastSeedID;                   //! id of the pool seed on which is returned by the NextFreeSeed method
    //
    ClassDef(AliTPCtrackerMI,3) 
 };