]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtrigger.h
Adding possibility to use custom Gain map for dEdx calculation (Marian)
[u/mrichter/AliRoot.git] / TRD / AliTRDtrigger.h
1 #ifndef ALITRDTRIGGER_H
2 #define ALITRDTRIGGER_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 trigger class                                                        //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include <TNamed.h>
15
16 class TTree;
17 class TClonesArray;
18 class TObjArray;
19
20 class AliRunLoader;
21 class AliRawReader;
22
23 class AliTRDmcmTracklet;
24 class AliTRDgtuTrack;
25 class AliTRDmcm;
26 class AliTRDmodule;
27 class AliTRDdigitsManager;
28 class AliTRDdataArrayI;
29 class AliTRDdataArrayS;
30 class AliTRDgeometry;
31
32 class AliTRDtrigger : public TNamed {
33
34  public:  
35
36   enum { kNMCM = 16, kMaxTrackletsPerMCM = 4, kMcmCol = 21 };
37
38   AliTRDtrigger();
39   AliTRDtrigger(const Text_t* name, const Text_t* title);
40   AliTRDtrigger(const AliTRDtrigger &p);   
41   virtual         ~AliTRDtrigger();
42   AliTRDtrigger   &operator=(const AliTRDtrigger &p); 
43
44   virtual void     Copy(TObject &p) const;
45
46           void     Init();
47
48           Bool_t   Open(const Char_t *name, Int_t nEvent = 0);
49           Bool_t   ReadDigits();
50           Bool_t   ReadDigits(AliRawReader *rawReader);
51           Bool_t   ReadDigits(TTree *digitsTree);
52           Bool_t   MakeTracklets(Bool_t makeTracks = kFALSE);
53           void     MakeTracks(Int_t det);
54           Bool_t   WriteTracklets(Int_t det);
55           Bool_t   ReadTracklets(AliRunLoader *rl);
56
57           void     AddTracklet(Int_t det, Int_t row, Int_t seed, Int_t n);
58           void     AddTrack(const AliTRDgtuTrack *t, Int_t det);
59           Bool_t   TestTracklet(Int_t det, Int_t row, Int_t seed, Int_t n);
60           TObjArray *Tracklets();
61           void     ResetTracklets();
62
63           Int_t    GetNumberOfTracks() const;
64           Int_t    GetNPrimary() const                           { return fNPrimary;   };
65           AliTRDgtuTrack  *GetTrack(Int_t i) const;
66
67           void     SetRunLoader(AliRunLoader *rl)                { fRunLoader = rl;    };
68           void     SetMCMcoordinates(Int_t imcm);
69
70  protected:
71
72           Float_t                fField;                       //! Magnetic field
73           AliTRDgeometry        *fGeo;                         //! TRD geometry
74
75           AliRunLoader          *fRunLoader;                   //! Run Loader
76           AliTRDdigitsManager   *fDigitsManager;               //! TRD digits manager
77           TTree                 *fTrackletTree;                //! Tree with tracklets
78           TObjArray             *fTracklets;                   //! Array of tracklets
79
80           Int_t                  fNROB;                        //! Number of ROBs in the current chamber
81           AliTRDmcm             *fMCM;                         //! Current MCM
82           AliTRDmcmTracklet     *fTrk;                         //! Current tracklet
83           AliTRDmcmTracklet     *fTrkTest;                     //! Test tracklet
84           AliTRDmodule          *fModule;                      //! Current module
85           AliTRDgtuTrack        *fGTUtrk;                      //! Current GTU track
86
87           Int_t                  fNtracklets;                  //! Tracklets counter
88
89           AliTRDdataArrayS      *fDigits;                      //! Array with digits
90           AliTRDdataArrayI      *fTrack0;                      //! Track dictionary 0
91           AliTRDdataArrayI      *fTrack1;                      //! Track dictionary 1
92           AliTRDdataArrayI      *fTrack2;                      //! Track dictionary 2
93
94           Int_t fNPrimary;                                     //! Number of primary tracks
95
96           TClonesArray          *fTracks;                      //! Array of GTU tracks
97
98   ClassDef(AliTRDtrigger,6)                                    //  TRD trigger class
99
100 };
101
102 #endif