]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRegHeader.h
From Cvetan: new macro to load ITS clusters.
[u/mrichter/AliRoot.git] / MUON / AliMUONRegHeader.h
index 85f84c6f0503658fbd96b3e743838e549d0175b2..cd49c2322b230cfcabe873c05b84fa0f4c3134be 100644 (file)
@@ -9,11 +9,11 @@
 /// \class AliMUONRegHeader
 /// \brief MUON regional header for trigger
 ///
-/// \author Christian Finck
+//  Author Christian Finck
 
 #include <TObject.h>
-#include <TClonesArray.h>
 
+class TClonesArray;
 class AliMUONLocalStruct;
 
 class AliMUONRegHeader : public TObject{
@@ -25,32 +25,55 @@ public:
 
    virtual ~AliMUONRegHeader();
 
-
-   UInt_t  GetWord()          const {return fWord;}
-   UInt_t  GetInput(Int_t n)  const {return fInput[n];}
-
-   //MBZ:3,serialNb:5,Version:8,Id:4,MBZ:4,Out:8
-   Char_t   GetSerialNb()  const {return (Char_t)(fWord >> 24) &  0x1F;}
-   Char_t   GetVersion()   const {return (Char_t)(fWord >> 16) &  0xFF;}
-   Char_t   GetId()        const {return (Char_t)(fWord >> 12) &  0x0F;}
-   Char_t   GetOutput()    const {return (Char_t)(fWord)       &  0xFF;}
-
-   void    SetWord(UInt_t w) {fWord = w;}
+   UInt_t   GetDarcWord()      const {return fDarcWord;}
+   UInt_t   GetWord()          const {return fWord;}
+   UInt_t   GetInput(Int_t n)  const {return fInput[n];}
+   UShort_t GetL0()            const {return fL0   & 0xFFFF;}
+   UShort_t GetMask()          const {return fMask & 0xFFFF;}
+
+   //word: phys type:1, reset: 6, serialNb:5, Id:4, version: 8, regional output:8
+   //true for phys, false for soft
+   Bool_t    GetRegPhysFlag() const {return (fWord & 0x80000000);} 
+   UChar_t   GetResetNb()    const {return (UChar_t)(fWord >> 25) &  0x20;}
+   UChar_t   GetSerialNb()   const {return (UChar_t)(fWord >> 20) &  0x1F;}
+   UChar_t   GetId()         const {return (UChar_t)(fWord >> 16) &  0x0F;}
+   UChar_t   GetVersion()    const {return (UChar_t)(fWord >> 8)  &  0xFF;}
+   UChar_t   GetOutput()     const {return (UChar_t)(fWord       &  0xFF);}
+
+   //Darc Status: error:10, #fpag:3, MBZ:3, phys type:1, present:1, not_full:1
+   // not_empty:1, L2Rej:1, L2Acc:1, L1:1, L0:1, #evt:4, busy:4
+   UShort_t GetErrorBits()       const {return (UShort_t)(fDarcWord >> 21) &  0x3FF;}
+   UChar_t  GetFPGANumber()      const {return (UChar_t)  (fDarcWord >> 18) &  0x7;}
+   Bool_t   GetDarcPhysFlag()    const {return (fDarcWord  &  0x1000);}
+   Bool_t   GetPresentFlag()     const {return (fDarcWord  &  0x800);}
+   Bool_t   GetRamNotFullFlag()  const {return (fDarcWord  &  0x400);}
+   Bool_t   GetRamNotEmptyFlag() const {return (fDarcWord  &  0x200);}
+   Bool_t   GetL2RejStatus()     const {return (fDarcWord  &  0x100);}
+   Bool_t   GetL2AccStatus()     const {return (fDarcWord  &  0x80);}
+   Bool_t   GetL1Status()        const {return (fDarcWord  &  0x40);}
+   Bool_t   GetL0Status()        const {return (fDarcWord  &  0x20);}
+   UChar_t  GetEventInRam()      const {return (UChar_t)  (fDarcWord >> 4)  &  0x4;}
+   UChar_t  GetBusy()            const {return (UChar_t)  (fDarcWord)       &  0x4;}
+
+   void    SetDarcWord(UInt_t w) {fDarcWord = w;}
+   void    SetWord(UInt_t w)     {fWord = w;}
+   void    SetMask(UShort_t m)   {fMask = m;}
+   void    SetL0(UShort_t l)     {fL0   = (l & 0xFFFF);}
    void    SetInput(UInt_t in, Int_t n) {fInput[n] = in;}
-   
+
    Int_t   GetHeaderLength() const {return fgkHeaderLength;}
    UInt_t  GetEndOfReg()     const {return fgkEndOfReg;}
 
 
-   UInt_t* GetHeader() {return &fWord;}
+   UInt_t* GetHeader() {return &fDarcWord;}
 
   // scalar methods
-   UInt_t  GetL0()      const {return fL0;}
    UInt_t  GetClock()   const {return fClk;}
    const UInt_t* GetScaler()  const {return fScaler;}
    UInt_t  GetHold()    const {return fHold;}
 
-   UInt_t* GetScalers()    {return &fL0;}   
+   UInt_t* GetScalers()    {return &fClk;}   
 
    // get scaler length
    Int_t GetScalerLength()  const {return fgkScalerLength;} 
@@ -74,20 +97,22 @@ public:
  private:
    
    // regional header
-   UInt_t    fWord;          // first word
-   UInt_t    fInput[2];      // regional input
+   UInt_t    fDarcWord;      ///< darc word
+   UInt_t    fWord;          ///< first reg word
+   UInt_t    fInput[2];      ///< regional input
+   UShort_t  fMask;          ///< local mask ("poids faible" 16 bits)
+   UShort_t  fL0;            ///< L0 counter (16 bits)
 
    // regional card scalers   
-   UInt_t     fL0;         // regional L0
-   UInt_t     fClk;        // regional clock
-   UInt_t     fScaler[8];  // regional ouput
-   UInt_t     fHold;       // regional hold (dead time)
+   UInt_t     fClk;        ///< regional clock
+   UInt_t     fScaler[8];  ///< regional ouput
+   UInt_t     fHold;       ///< regional hold (dead time)
 
-   static const Int_t  fgkScalerLength;  // length of regional scaler in word
-   static const Int_t  fgkHeaderLength;  // header length in word
-   static const UInt_t fgkEndOfReg;      // end of regional info word
+   static const Int_t  fgkScalerLength;  ///< length of regional scaler in word
+   static const Int_t  fgkHeaderLength;  ///< header length in word
+   static const UInt_t fgkEndOfReg;      ///< end of regional info word
 
-   TClonesArray* fLocalArray;   // array of local structure
+   TClonesArray* fLocalArray;   ///< array of local structure
 
    ClassDef(AliMUONRegHeader,3)
 };