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 */
9 /// \class AliMUONSubEventTracker
10 /// \brief MUON subevent tracker
12 /// Bus patch structure for tracker raw data
13 /// each Dsp contains at most 5 bus patch structure
14 /// Beside the total length and length of the below data
15 /// the header of the block contains the bus patch id, trigger words
16 /// and data structure itself (11bits for manu id, 6 bits for channel id and
17 /// 12 bits for charge)
19 /// \author Christian Finck
23 class AliMUONSubEventTracker : public TObject {
26 AliMUONSubEventTracker ();
27 virtual ~AliMUONSubEventTracker ();
28 AliMUONSubEventTracker(const AliMUONSubEventTracker& rhs);
29 AliMUONSubEventTracker& operator=(const AliMUONSubEventTracker& rhs);
31 Int_t GetTotalLength() const {return fTotalLength;}
32 Int_t GetLength() const {return fLength;}
33 Int_t GetBufSize() const {return fBufSize;}
34 Int_t GetBusPatchId() const {return fBusPatchId;}
35 Int_t GetTriggerWord() const {return fTriggerWord;}
36 UInt_t GetData(Int_t n) const;
37 UInt_t* GetData() const {return fData;}
39 Char_t GetParity(Int_t n) const;
40 UShort_t GetManuId(Int_t n) const;
41 Char_t GetChannelId(Int_t n) const;
42 UShort_t GetCharge(Int_t n) const;
44 void SetBusPatchId(Int_t b) {fBusPatchId = b;}
45 void SetTriggerWord(Int_t w) {fTriggerWord = w;}
47 void AddData(UInt_t d);
48 void SetAlloc(Int_t size);
50 Bool_t IsSortable() const {return kTRUE;}
51 Int_t Compare(const TObject *obj) const;
53 Int_t GetHeaderLength() const {return fgkHeaderLength;}
55 Int_t* GetBusPatchHeader() {return &fTotalLength;}
58 Int_t fTotalLength; // total length of buspatch structure
59 Int_t fLength; // length of raw data
60 Int_t fBusPatchId; // bus patch id
61 Int_t fTriggerWord ; // counter trigger word
63 static const Int_t fgkHeaderLength; // header length in word
65 UInt_t* fData; // data
67 Int_t fBufSize; // initial size for data array
69 void ResizeData(Int_t size = 0);
71 ClassDef(AliMUONSubEventTracker,1) // MUON DDL Tracker