First V0 MC Analysis from H.Ricaud
[u/mrichter/AliRoot.git] / TRD / AliTRDmodule.h
1 #ifndef ALITRDMODULE_H
2 #define ALITRDMODULE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  TRD module class                                                         //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include <TObject.h>
15
16 class AliTRDgtuTrack;
17 class AliTRDltuTracklet;
18
19 class AliTRDmodule : public TObject {
20
21  public:
22
23   enum { kNplan = 6, kNmaxZchan = 100, kNsubZchan = 16, kNmaxTrk = 12 };
24
25   AliTRDmodule();
26   AliTRDmodule(const AliTRDmodule &m);
27   virtual         ~AliTRDmodule();
28   AliTRDmodule    &operator=(const AliTRDmodule &m);
29
30   virtual void     Copy(TObject &m) const;
31
32           Int_t    GetNtracklets() const;
33           Int_t    GetNtracks() const;
34
35           void     Reset();
36           void     AddTracklet(Int_t det, Int_t row, Float_t rowz, Float_t slope, Float_t offset 
37                              , Float_t time, Int_t ncl, Int_t label, Float_t q);
38           void     AddTrack();
39  
40           void     ResetTracklets();
41           void     ResetTracks();
42           void     SortTracklets();
43           void     SortTracks();
44           void     RemoveMultipleTracklets();
45           void     RemoveMultipleTracks();
46           void     RemoveTracklet(Int_t pos);
47           void     RemoveTrack(Int_t pos);
48           void     SortZ(Int_t cha);
49           void     InitZLUT();
50           void     FindTracks();
51           void     FindTracksCombi(Int_t zchan);
52
53           TObjArray         *Tracklets(); 
54           TObjArray         *Tracks();
55           AliTRDltuTracklet *GetTracklet(Int_t pos) const;
56           AliTRDgtuTrack    *GetTrack(Int_t pos) const;
57
58  protected:
59
60           Float_t            fXprojPlane;                              //! X (time) coordinate of the projection plane
61           Float_t            fField;                                   //! Magnetic field
62           TObjArray         *fTracklets;                               //! Array of LTU tracklets
63           TObjArray         *fTracks;                                  //! Array of GTU tracks
64
65           Int_t              fZnchan[kNplan][kNsubZchan];              //! Number of LTU tracklets in each subchannel
66           Int_t              fZtrkid[kNplan][kNmaxZchan][kNsubZchan];  //! List of LTU tracklet id's for each subchannel
67
68           Float_t            fDeltaY;                                  //  Y (offset) matching window in the GTU
69           Float_t            fDeltaS;                                  //  Slope matching window in the GTU
70
71           AliTRDltuTracklet *fLTUtrk;                                  //! Current LTU tracklet
72           AliTRDgtuTrack    *fGTUtrk;                                  //! Current GTU track
73
74   ClassDef(AliTRDmodule,2)                                             //  TRD module class
75
76 };
77
78 #endif