Replacing string comparison by coparison of enums
[u/mrichter/AliRoot.git] / RAW / AliRawEquipmentHeader.cxx
CommitLineData
a197a4ce 1/**************************************************************************
2 * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
d04aea32 16// @(#) $Id$
9edefa04 17// Author: Fons Rademakers 26/11/99
18
a197a4ce 19//////////////////////////////////////////////////////////////////////////
20// //
21// AliRawEquipmentHeader //
22// //
23//////////////////////////////////////////////////////////////////////////
24
9edefa04 25#include <Bytes.h>
a197a4ce 26
9edefa04 27#include "AliRawEquipmentHeader.h"
12e921cc 28#include "AliDAQ.h"
29
30#include <Riostream.h>
a197a4ce 31
714281ef 32using std::cout;
33using std::endl;
a197a4ce 34ClassImp(AliRawEquipmentHeader)
35
c53ff744 36//______________________________________________________________________________
37AliRawEquipmentHeader::AliRawEquipmentHeader():
38 fSize(0),
39 fEquipmentType(0),
58d3c7c2 40 fEquipmentID(0xffffffff),
c53ff744 41 fBasicElementSizeType(0)
42{
43 // Default constructor
44 for(Int_t i = 0; i < kAttributeWords; i++)
45 fTypeAttribute[i] = 0;
46}
a197a4ce 47
48//______________________________________________________________________________
e653e3e1 49UInt_t AliRawEquipmentHeader::SwapWord(UInt_t x) const
50{
51 // Swap the endianess of the integer value 'x'
52
53 return (((x & 0x000000ffU) << 24) | ((x & 0x0000ff00U) << 8) |
54 ((x & 0x00ff0000U) >> 8) | ((x & 0xff000000U) >> 24));
55}
56
57//______________________________________________________________________________
a197a4ce 58void AliRawEquipmentHeader::Swap()
59{
60 // Swap equipment header data. There is no way to see if the data
61 // has already been swapped. This method is only called when the
62 // header is read from the DATE event builder (GDC).
63
e653e3e1 64 fSize = SwapWord(fSize);
65 fEquipmentType = SwapWord(fEquipmentType);
66 fEquipmentID = SwapWord(fEquipmentID);
67 fBasicElementSizeType = SwapWord(fBasicElementSizeType);
a197a4ce 68 for (int i = 0; i < kAttributeWords; i++)
e653e3e1 69 fTypeAttribute[i] = SwapWord(fTypeAttribute[i]);
a197a4ce 70}
6bc85955 71
72//______________________________________________________________________________
73void AliRawEquipmentHeader::Reset()
74{
75 // Reset the contents of the equipment
76 // header data
58d3c7c2 77 fSize = fEquipmentType = fBasicElementSizeType = 0;
78 fEquipmentID = 0xffffffff;
6bc85955 79
80 for(Int_t i = 0; i < kAttributeWords; i++)
81 fTypeAttribute[i] = 0;
82}
12e921cc 83
84//_____________________________________________________________________________
85void AliRawEquipmentHeader::Print( const Option_t* opt ) const
86{
87 // Dumps the equipment header
88 // fields
89
90 cout << opt << " Equipment size: " << fSize << endl;
91 cout << opt << " Equipment type: " << fEquipmentType << endl;
92 Int_t ddlIndex;
93 cout << opt << " Equipment ID: " << fEquipmentID << " ( " << AliDAQ::DetectorNameFromDdlID(fEquipmentID,ddlIndex) << " )" << endl;
94 cout << opt << " Type attribute: " << fTypeAttribute[0] << "-" << fTypeAttribute[1] << "-" << fTypeAttribute[2] << endl;
95 cout << opt << " Basic element size type: " << fBasicElementSizeType << endl;
96}