]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/UPGRADE/AliITSUTrackerGlo.h
Added global tracker and seed prototype classes.
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUTrackerGlo.h
1 #ifndef ALIITSTRACKERU_H
2 #define ALIITSTRACKERU_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //-------------------------------------------------------------------------
7 //                ITS upgrade tracker base class
8 //-------------------------------------------------------------------------
9
10 #include "AliTracker.h"
11 #include "AliESDEvent.h"
12
13 class AliITSUReconstructor;
14 class AliITSURecoDet;
15 class AliITSUSeed;
16 class TTree;
17
18 //-------------------------------------------------------------------------
19 class AliITSUTrackerGlo : public AliTracker {
20
21   public:
22   enum { // info from track extrapolation to layer for cluster check
23     kTrXIn ,kTrYIn ,kTrZIn ,kTrPhiIn , // entrance (outer) point on the layer from above 
24     kTrXOut,kTrYOut,kTrZOut,kTrPhiOut, // exit (inner) point on the layer
25     kTrPhi0, kTrDPhi, kTrZ0, kTrDZ,     // mean phi,dPhi, mean z, dZ (don't change this order)
26     kNTrData};
27   //
28   enum {kTransportFailed=1  // seed did not reach target layer
29         ,kRWCheckFailed =2  // failed to rotate the seed to frame of the layer impact point
30   };
31
32   AliITSUTrackerGlo(AliITSUReconstructor* rec);
33   virtual ~AliITSUTrackerGlo();
34
35   virtual Int_t          Clusters2Tracks(AliESDEvent *event);
36   virtual Int_t          PropagateBack(AliESDEvent *event);
37   virtual Int_t          RefitInward(AliESDEvent *event);
38   virtual Int_t          LoadClusters(TTree * treeRP=0);
39   virtual void           UnloadClusters();
40   virtual AliCluster*    GetCluster(Int_t index) const;
41
42
43   //------------------------------------
44   Bool_t                 NeedToProlong(AliESDtrack* estTr);
45   void                   Init(AliITSUReconstructor* rec);
46   void                   FindTrack(AliESDtrack* esdTr);
47   Bool_t                 InitSeed(AliESDtrack *esdTr);
48   Int_t                  GetNSeeds(Int_t lr)              const {return 0;} //todo
49   AliITSUSeed*           GetSeed(Int_t lr, Int_t sID)     const {return 0;} //todo
50   Bool_t                 TransportToLayer(AliITSUSeed* seed, Int_t lFrom, Int_t lTo);
51   Bool_t                 NeedToKill(AliITSUSeed* seed, Int_t flag) {return kFALSE;} // todo
52   void                   KillSeed(Int_t ilr, Int_t id) {} // todo
53   Bool_t                 GetRoadWidth(AliITSUSeed* seed, int ilrA, double* rwData);
54   //
55   AliITSUSeed*           NewSeed(const AliITSUSeed* src=0);
56
57  private:
58   
59   AliITSUTrackerGlo(const AliITSUTrackerGlo&);
60   AliITSUTrackerGlo &operator=(const AliITSUTrackerGlo &tr);
61   //
62  protected:
63   AliITSUReconstructor*           fReconstructor;  // ITS global reconstructor 
64   AliITSURecoDet*                 fITS;            // interface to ITS
65   Double_t                        fCurrMass;       // current track mass
66   //
67
68   TClonesArray                    fSeedsPool;      // pool for seeds
69
70   ClassDef(AliITSUTrackerGlo,1)   //ITS upgrade tracker
71     
72 };
73 #endif
74