]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSUTrackerGlo.h
added cluster sharing histogramming
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUTrackerGlo.h
index 166428d138793c9b479e715e5e6c0bd5da365bed..a9e073df331713cdab59d4c1afa50b36de6f4d47 100644 (file)
@@ -8,7 +8,6 @@
 //-------------------------------------------------------------------------
 //                ITS upgrade tracker base class
 //-------------------------------------------------------------------------
-
 #include "AliTracker.h"
 #include "AliESDEvent.h"
 #include "AliITSUSeed.h"
@@ -68,7 +67,7 @@ class AliITSUTrackerGlo : public AliTracker {
   void                   Init(AliITSUReconstructor* rec);
   void                   FindTrack(AliESDtrack* esdTr, Int_t esdID);
   void                   CreateDefaultTrackCond();
-  Bool_t                 InitHypothesis(AliESDtrack *esdTr, Int_t esdID);
+  AliITSUTrackHyp*       InitHypothesis(AliESDtrack *esdTr, Int_t esdID);
   Bool_t                 TransportToLayer(AliITSUSeed* seed, Int_t lFrom, Int_t lTo);
   Bool_t                 TransportToLayer(AliExternalTrackParam* seed, Int_t lFrom, Int_t lTo);
   Bool_t                 TransportToLayerX(AliExternalTrackParam* seed, Int_t lFrom, Int_t lTo, Double_t xStop);  
@@ -90,6 +89,7 @@ class AliITSUTrackerGlo : public AliTracker {
   Bool_t                 AddSeedBranch(AliITSUSeed* seed);
   void                   ValidateAllowedBranches(Int_t accMax);
   void                   ValidateAllowedCandidates(Int_t ilr, Int_t accMax);
+  void                   FlagSeedClusters(const AliITSUSeed* seed, Bool_t flg);
   //
   AliITSUSeed*           NewSeedFromPool(const AliITSUSeed* src=0);
   void                   ResetSeedsPool();
@@ -98,7 +98,7 @@ class AliITSUTrackerGlo : public AliTracker {
   AliITSUTrackHyp*       GetTrackHyp(Int_t id)               const  {return (AliITSUTrackHyp*)fHypStore.UncheckedAt(id);}
   void                   SetTrackHyp(AliITSUTrackHyp* hyp,Int_t id) {fHypStore.AddAtAndExpand(hyp,id);}
   void                   DeleteLastSeedFromPool()                   {fSeedsPool.RemoveLast();}
-  void                   SaveCurrentTrackHypotheses();
+  void                   SaveReducedHypothesesTree(AliITSUTrackHyp* dest);
   void                   FinalizeHypotheses();
   void                   UpdateESDTrack(AliITSUTrackHyp* hyp,Int_t flag);
   void                   CookMCLabel(AliITSUTrackHyp* hyp);
@@ -127,18 +127,23 @@ class AliITSUTrackerGlo : public AliTracker {
   //
   // the seeds management to be optimized
   TObjArray                       fHypStore;       // storage for tracks hypotheses
-  AliITSUSeed*                    fLayerCandidates[AliITSUTrackCond::kMaxCandidates]; // array for branches of current track prolongation
+  Int_t                           fLayerMaxCandidates; //! size of tmp candidates array 
+  AliITSUSeed**                   fLayerCandidates;//! array for branches of current track prolongation
   Int_t                           fNBranchesAdded; // number of branches created for current seed in prolongation
   Int_t                           fNCandidatesAdded; // number of candidates added for current seed in prolongation
-  AliITSUTrackHyp*                fCurrHyp;        // hypotheses container for current track
+  AliITSUTrackHyp*                fCurrHyp;        //! hypotheses container for current track
+  AliITSUTrackHyp*                fWorkHyp;        //! temporary hypothesis for track finding
   TClonesArray                    fSeedsPool;      //! pool for 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
+  Int_t                           fNLrActive;      //! number of active layers
   //
   TObjArray                       fDefTrackConds;  //! default tracking conditions
-  AliITSUTrackCond*               fCurrTrackCond;  // current tracking condition
-  Int_t                           fTrackPhase;     // tracking phase
+  AliITSUTrackCond*               fCurrTrackCond;  //! current tracking condition
+  Int_t                           fCurrActLrID;    //! current active layer ID being processed (set only when needed, not guaranteed)
+  AliITSURecoLayer*               fCurrLayer;      //! current layer being processed  (set only when needed, not guaranteed)
+  Int_t                           fTrackPhase;     //! tracking phase
   Int_t*                          fClInfo;         //! auxiliary track cluster info
   //
   static const Double_t           fgkToler;        // tracking tolerance
@@ -147,11 +152,12 @@ class AliITSUTrackerGlo : public AliTracker {
   // this code is only for special histos needed to extract some control parameters
   void BookControlHistos();
   TObjArray* fCHistoArr;
-  enum {kHResY=0,kHResYP=10,kHResZ=20,kHResZP=30,kHChi2Cl=40};
+  enum {kHResY=0,kHResYP=10,kHResZ=20,kHResZP=30,kHChi2Cl=40,kHChi2Nrm=50,kHBestInBranch=60,kHBestInCand=70};
+  enum {kHClShare=0}; // custom histos 
   enum {kHistosPhase=100};
   //
 #endif
-
+  //
   ClassDef(AliITSUTrackerGlo,1)   //ITS upgrade tracker
     
 };