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