]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSubEventTracker.h
Updated comment line only (ingroup directive)
[u/mrichter/AliRoot.git] / MUON / AliMUONSubEventTracker.h
1 #ifndef ALIMUONSUBEVENTTRACKER_H
2 #define ALIMUONSUBEVENTTRACKER_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 /// \ingroup rec
9 /// \class AliMUONSubEventTracker
10 /// \brief MUON subevent tracker
11
12 #include <TObject.h>
13
14 class AliMUONSubEventTracker : public TObject {
15
16 public:
17    AliMUONSubEventTracker ();
18    virtual ~AliMUONSubEventTracker ();
19    AliMUONSubEventTracker(const AliMUONSubEventTracker& rhs);
20    AliMUONSubEventTracker& operator=(const AliMUONSubEventTracker& rhs);
21
22    Int_t   GetTotalLength() const {return fTotalLength;}
23    Int_t   GetLength()      const {return fLength;}
24    Int_t   GetBusPatchId()  const {return fBusPatchId;}
25    Int_t   GetTriggerWord() const {return fTriggerWord;}
26    UInt_t  GetData(Int_t n) const {return fData[n];}
27    UInt_t* GetData()        const {return fData;}
28
29    Char_t   GetParity(Int_t n)    {return (Char_t)(fData[n] >> 29) &  0x7;}
30    UShort_t GetManuId(Int_t n)    {return (UShort_t)(fData[n] >> 18) &  0x7FF;}
31    Char_t   GetChannelId(Int_t n) {return (Char_t)(fData[n] >> 12) & 0x3F;}
32    UShort_t GetCharge(Int_t n)    {return (UShort_t)(fData[n] & 0xFFF);}
33
34    void    SetTotalLength(Int_t l) {fTotalLength = l;}
35    void    SetLength(Int_t l)      {fLength = l;}
36    void    SetBusPatchId(Int_t b)  {fBusPatchId = b;}  
37    void    SetTriggerWord(Int_t w) {fTriggerWord = w;}
38    void    SetData(UInt_t d, Int_t n)  {fData[n] = d; fLength++;}
39
40    void    AddData(UInt_t d);
41    void    SetAlloc(Int_t size);
42
43    Bool_t  IsSortable() const {return kTRUE;}
44    Int_t   Compare(const TObject *obj) const;
45
46    Int_t GetHeaderLength() const {return fgkHeaderLength;}
47
48    Int_t* GetAddress() {return &fTotalLength;}
49
50  private:
51    Int_t     fTotalLength;   // total length of buspatch structure
52    Int_t     fLength;        // length of raw data
53    Int_t     fBusPatchId;    // bus patch id
54    Int_t     fTriggerWord ;  // counter trigger word
55
56    static const Int_t fgkHeaderLength;   // header length in word
57
58    UInt_t*   fData;          // data 
59
60    Int_t     fBufSize;      // initial size for data array
61
62    void ResizeData(Int_t size = 0);
63
64    ClassDef(AliMUONSubEventTracker,1)  // MUON DDL Tracker
65 };
66 #endif