LCOV - code coverage report
Current view: top level - RAW/RAWDatabase - AliRawDataHeader.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 10 19 52.6 %
Date: 2016-06-14 17:26:59 Functions: 3 12 25.0 %

          Line data    Source code
       1             : #ifndef ALIRAWDATAHEADER_H
       2             : #define ALIRAWDATAHEADER_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : struct AliRawDataHeader {
       7             :   AliRawDataHeader() :
       8          10 :     fSize(0xFFFFFFFF), 
       9           5 :     fWord2(2<<24),
      10           5 :     fEventID2(0),
      11           5 :     fAttributesSubDetectors(0),
      12           5 :     fStatusMiniEventID(0x10000),  // status bit 4: no L1/L2 trigger information
      13           5 :     fTriggerClassLow(0),
      14           5 :     fROILowTriggerClassHigh(0),
      15           5 :     fROIHigh(0)
      16          15 :   {}
      17             : 
      18             :   // Adding virtual destructor breaks
      19             :   // C++ struct backward compatibility
      20             :   // Do not uncomment the line below!!!
      21             :   //  virtual ~AliRawDataHeader() {}
      22             : 
      23             :   UShort_t  GetEventID1() const
      24             :     {
      25           0 :       return (UShort_t)( fWord2 & 0xFFF );
      26             :     };
      27             : 
      28             :   UInt_t  GetEventID2() const
      29             :     {
      30           0 :       return fEventID2;
      31             :     };
      32             : 
      33             :   UChar_t   GetL1TriggerMessage() const
      34             :     {
      35           0 :       return (UChar_t)( (fWord2 >> 14) & 0xFF );
      36             :     };
      37             : 
      38             :   UChar_t   GetVersion() const
      39             :     {
      40        3882 :       return (UChar_t)( (fWord2 >> 24) & 0xFF );
      41             :     };
      42             : 
      43             :   UChar_t   GetAttributes() const 
      44           0 :     {return (fAttributesSubDetectors >> 24) & 0xFF;};
      45             :   Bool_t    TestAttribute(Int_t index) const
      46           0 :     {return (fAttributesSubDetectors >> (24 + index)) & 1;};
      47             :   void      SetAttribute(Int_t index)
      48             :     {fAttributesSubDetectors |= (1 << (24 + index));};
      49             :   void      ResetAttribute(Int_t index)
      50             :     {fAttributesSubDetectors &= (0xFFFFFFFF ^ (1 << (24 + index)));};
      51             :   UInt_t    GetSubDetectors() const
      52             :     {return fAttributesSubDetectors & 0xFFFFFF;};
      53             : 
      54             :   UInt_t    GetStatus() const
      55           0 :     {return (fStatusMiniEventID >> 12) & 0xFFFF;};
      56             :   UInt_t    GetMiniEventID() const
      57           0 :     {return fStatusMiniEventID & 0xFFF;};
      58             : 
      59             :   ULong64_t GetTriggerClasses() const
      60           0 :   {return (((ULong64_t) (fROILowTriggerClassHigh & 0x3FFFF)) << 32) | fTriggerClassLow;}
      61             :   ULong64_t GetTriggerClassesNext50() const
      62           0 :   {return 0;}
      63             :   ULong64_t GetROI() const
      64             :   {return (((ULong64_t) fROIHigh) << 4) | ((fROILowTriggerClassHigh >> 28) & 0xF);}
      65             : 
      66             :   void      SetTriggerClass(ULong64_t mask)
      67             :     {fTriggerClassLow = (UInt_t)(mask & 0xFFFFFFFF);  // low bits of trigger class
      68             :      fROILowTriggerClassHigh = (UInt_t)((mask >> 32) & 0x3FFFF); // low bits of ROI data (bits 28-31) and high bits of trigger class (bits 0-17)
      69             :     };
      70             : 
      71             :   UInt_t    fSize;              // size of the raw data in bytes
      72             :   UInt_t    fWord2;             // bunch crossing, L1 trigger message and fomrat version
      73             :   UInt_t    fEventID2;          // orbit number
      74             :   UInt_t    fAttributesSubDetectors; // block attributes (bits 24-31) and participating sub detectors
      75             :   UInt_t    fStatusMiniEventID; // status & error bits (bits 12-27) and mini event ID (bits 0-11)
      76             :   UInt_t    fTriggerClassLow;   // low bits of trigger class
      77             :   UInt_t    fROILowTriggerClassHigh; // low bits of ROI data (bits 28-31) and high bits of trigger class (bits 0-17)
      78             :   UInt_t    fROIHigh;           // high bits of ROI data
      79             : };
      80             : 
      81             : #endif

Generated by: LCOV version 1.11