ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

// @(#) $Id$
// Author: Fons Rademakers  26/11/99

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// AliRawEquipmentHeader                                                //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <Bytes.h>

#include "AliRawEquipmentHeader.h"
#include "AliDAQ.h"

#include <Riostream.h>

using std::cout;
using std::endl;
ClassImp(AliRawEquipmentHeader)

//______________________________________________________________________________
AliRawEquipmentHeader::AliRawEquipmentHeader():
  fSize(0),
  fEquipmentType(0),
  fEquipmentID(0xffffffff),
  fBasicElementSizeType(0)
{
  // Default constructor
  for(Int_t i = 0; i < kAttributeWords; i++)
    fTypeAttribute[i] = 0;
}

//______________________________________________________________________________
UInt_t AliRawEquipmentHeader::SwapWord(UInt_t x) const
{
   // Swap the endianess of the integer value 'x'

   return (((x & 0x000000ffU) << 24) | ((x & 0x0000ff00U) <<  8) |
           ((x & 0x00ff0000U) >>  8) | ((x & 0xff000000U) >> 24));
}

//______________________________________________________________________________
void AliRawEquipmentHeader::Swap()
{
   // Swap equipment header data. There is no way to see if the data
   // has already been swapped. This method is only called when the
   // header is read from the DATE event builder (GDC).

   fSize                 = SwapWord(fSize);
   fEquipmentType        = SwapWord(fEquipmentType);
   fEquipmentID          = SwapWord(fEquipmentID);
   fBasicElementSizeType = SwapWord(fBasicElementSizeType);
   for (int i = 0; i < kAttributeWords; i++)
      fTypeAttribute[i] = SwapWord(fTypeAttribute[i]);
}

//______________________________________________________________________________
void AliRawEquipmentHeader::Reset()
{
  // Reset the contents of the equipment
  // header data
  fSize = fEquipmentType = fBasicElementSizeType = 0;
  fEquipmentID = 0xffffffff;

  for(Int_t i = 0; i < kAttributeWords; i++)
    fTypeAttribute[i] = 0;
}

//_____________________________________________________________________________
void AliRawEquipmentHeader::Print( const Option_t* opt ) const
{
  // Dumps the equipment header
  // fields

  cout << opt << "  Equipment size: " << fSize << endl;
  cout << opt << "  Equipment type: " << fEquipmentType << endl;
  Int_t ddlIndex;
  cout << opt << "  Equipment ID: " << fEquipmentID << " ( " << AliDAQ::DetectorNameFromDdlID(fEquipmentID,ddlIndex) << " )" << endl;
  cout << opt << "  Type attribute: " << fTypeAttribute[0] << "-" << fTypeAttribute[1] << "-" << fTypeAttribute[2] << endl;
  cout << opt << "  Basic element size type: " << fBasicElementSizeType << endl;
}
 AliRawEquipmentHeader.cxx:1
 AliRawEquipmentHeader.cxx:2
 AliRawEquipmentHeader.cxx:3
 AliRawEquipmentHeader.cxx:4
 AliRawEquipmentHeader.cxx:5
 AliRawEquipmentHeader.cxx:6
 AliRawEquipmentHeader.cxx:7
 AliRawEquipmentHeader.cxx:8
 AliRawEquipmentHeader.cxx:9
 AliRawEquipmentHeader.cxx:10
 AliRawEquipmentHeader.cxx:11
 AliRawEquipmentHeader.cxx:12
 AliRawEquipmentHeader.cxx:13
 AliRawEquipmentHeader.cxx:14
 AliRawEquipmentHeader.cxx:15
 AliRawEquipmentHeader.cxx:16
 AliRawEquipmentHeader.cxx:17
 AliRawEquipmentHeader.cxx:18
 AliRawEquipmentHeader.cxx:19
 AliRawEquipmentHeader.cxx:20
 AliRawEquipmentHeader.cxx:21
 AliRawEquipmentHeader.cxx:22
 AliRawEquipmentHeader.cxx:23
 AliRawEquipmentHeader.cxx:24
 AliRawEquipmentHeader.cxx:25
 AliRawEquipmentHeader.cxx:26
 AliRawEquipmentHeader.cxx:27
 AliRawEquipmentHeader.cxx:28
 AliRawEquipmentHeader.cxx:29
 AliRawEquipmentHeader.cxx:30
 AliRawEquipmentHeader.cxx:31
 AliRawEquipmentHeader.cxx:32
 AliRawEquipmentHeader.cxx:33
 AliRawEquipmentHeader.cxx:34
 AliRawEquipmentHeader.cxx:35
 AliRawEquipmentHeader.cxx:36
 AliRawEquipmentHeader.cxx:37
 AliRawEquipmentHeader.cxx:38
 AliRawEquipmentHeader.cxx:39
 AliRawEquipmentHeader.cxx:40
 AliRawEquipmentHeader.cxx:41
 AliRawEquipmentHeader.cxx:42
 AliRawEquipmentHeader.cxx:43
 AliRawEquipmentHeader.cxx:44
 AliRawEquipmentHeader.cxx:45
 AliRawEquipmentHeader.cxx:46
 AliRawEquipmentHeader.cxx:47
 AliRawEquipmentHeader.cxx:48
 AliRawEquipmentHeader.cxx:49
 AliRawEquipmentHeader.cxx:50
 AliRawEquipmentHeader.cxx:51
 AliRawEquipmentHeader.cxx:52
 AliRawEquipmentHeader.cxx:53
 AliRawEquipmentHeader.cxx:54
 AliRawEquipmentHeader.cxx:55
 AliRawEquipmentHeader.cxx:56
 AliRawEquipmentHeader.cxx:57
 AliRawEquipmentHeader.cxx:58
 AliRawEquipmentHeader.cxx:59
 AliRawEquipmentHeader.cxx:60
 AliRawEquipmentHeader.cxx:61
 AliRawEquipmentHeader.cxx:62
 AliRawEquipmentHeader.cxx:63
 AliRawEquipmentHeader.cxx:64
 AliRawEquipmentHeader.cxx:65
 AliRawEquipmentHeader.cxx:66
 AliRawEquipmentHeader.cxx:67
 AliRawEquipmentHeader.cxx:68
 AliRawEquipmentHeader.cxx:69
 AliRawEquipmentHeader.cxx:70
 AliRawEquipmentHeader.cxx:71
 AliRawEquipmentHeader.cxx:72
 AliRawEquipmentHeader.cxx:73
 AliRawEquipmentHeader.cxx:74
 AliRawEquipmentHeader.cxx:75
 AliRawEquipmentHeader.cxx:76
 AliRawEquipmentHeader.cxx:77
 AliRawEquipmentHeader.cxx:78
 AliRawEquipmentHeader.cxx:79
 AliRawEquipmentHeader.cxx:80
 AliRawEquipmentHeader.cxx:81
 AliRawEquipmentHeader.cxx:82
 AliRawEquipmentHeader.cxx:83
 AliRawEquipmentHeader.cxx:84
 AliRawEquipmentHeader.cxx:85
 AliRawEquipmentHeader.cxx:86
 AliRawEquipmentHeader.cxx:87
 AliRawEquipmentHeader.cxx:88
 AliRawEquipmentHeader.cxx:89
 AliRawEquipmentHeader.cxx:90
 AliRawEquipmentHeader.cxx:91
 AliRawEquipmentHeader.cxx:92
 AliRawEquipmentHeader.cxx:93
 AliRawEquipmentHeader.cxx:94
 AliRawEquipmentHeader.cxx:95
 AliRawEquipmentHeader.cxx:96