]>
Commit | Line | Data |
---|---|---|
e3b2b5e5 | 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 |