]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDmodule.h
Corrected call to the static method AliBitPacking::UnpackWord
[u/mrichter/AliRoot.git] / TRD / AliTRDmodule.h
1 #ifndef ALITRDMODULE_H
2 #define ALITRDMODULE_H
3
4 #include <TObjArray.h>
5
6 class AliTRDgtuTrack;
7 class AliTRDltuTracklet;
8 class AliTRDtrigParam;
9
10 class AliTRDmodule : public TObject {
11
12  public:
13
14   enum { kNplan = 6, kNmaxZchan = 100, kNsubZchan = 16, kNmaxTrk = 12 };
15
16   AliTRDmodule(AliTRDtrigParam *trigp);
17   virtual ~AliTRDmodule();
18   AliTRDmodule &operator=(const AliTRDmodule &m);
19   virtual void Copy(TObject &m) const;
20
21   void Reset();
22
23   void AddTracklet(Int_t det, 
24                    Int_t row, 
25                    Float_t rowz,
26                    Float_t slope, 
27                    Float_t offset, 
28                    Float_t time, 
29                    Int_t ncl,
30                    Int_t label,
31                    Float_t q);
32   
33   TObjArray *Tracklets() { 
34     if(!fTracklets) fTracklets = new TObjArray(400); return fTracklets; 
35   };
36
37   void ResetTracklets() { if(fTracklets) fTracklets->Delete(); };
38   void SortTracklets()  { if(fTracklets) fTracklets->Sort(); };
39   AliTRDltuTracklet *GetTracklet(Int_t pos) const;
40   void RemoveMultipleTracklets();
41   void RemoveTracklet(Int_t pos);
42   Int_t GetNtracklets() const {
43     if (fTracklets) return fTracklets->GetEntriesFast();
44     return 0;
45   };
46   void AddTrack();
47   TObjArray *Tracks() { 
48     if(!fTracks) fTracks = new TObjArray(400); return fTracks; 
49   };
50
51   void  ResetTracks();
52   void  SortTracks()  { if(fTracks) fTracks->Sort(); };
53   AliTRDgtuTrack *GetTrack(Int_t pos) const;
54   void  RemoveMultipleTracks();
55   void  RemoveTrack(Int_t pos);
56   Int_t GetNtracks() const {
57     if (fTracks) return fTracks->GetEntriesFast();
58     return 0;
59   };
60   void  SortZ(Int_t cha);
61   void  InitZLUT();
62   void  FindTracks();
63   void  FindTracksCombi(Int_t zchan);
64
65  protected:
66
67   Float_t             fXprojPlane;                  //! X (time) coordinate of the
68                                                     //  projection plane
69   Float_t             fField;                       //! Magnetic field
70   TObjArray          *fTracklets;                   //! Array of LTU tracklets
71   TObjArray          *fTracks;                      //! Array of GTU tracks
72
73   Int_t fZnchan[kNplan][kNsubZchan];                //! number of LTU tracklets in each 
74                                                     //  subchannel
75   Int_t fZtrkid[kNplan][kNmaxZchan][kNsubZchan];    //! list of LTU tracklet id's for 
76                                                     //  each subchannel
77
78   Float_t  fDeltaY;                                 // Y (offset) matching window in the GTU
79   Float_t  fDeltaS;                                 // Slope matching window in the GTU
80
81   AliTRDltuTracklet  *fLTUtrk;                      //! Current LTU tracklet
82   AliTRDgtuTrack     *fGTUtrk;                      //! Current GTU track
83
84   ClassDef(AliTRDmodule,2)
85
86 };
87
88 #endif