ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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$ */

#include <TClonesArray.h>

#include "AliMUONRegHeader.h"
#include "AliMUONLocalStruct.h"

//-----------------------------------------------------------------------------
/// \class AliMUONRegHeader
/// Regional structure for trigger raw data.
/// Each Reg structure contains 16 (at most) local card structure.
/// The structure includes the information of the Reg. boards and
/// regional inputs
/// 
/// \author Christian Finck
//-----------------------------------------------------------------------------

/// \cond CLASSIMP
ClassImp(AliMUONRegHeader)
/// \endcond
 
 const Int_t  AliMUONRegHeader::fgkHeaderLength = 5;
 const Int_t  AliMUONRegHeader::fgkScalerLength = 10;
 const UInt_t AliMUONRegHeader::fgkEndOfReg     = 0xBEEFFACE;
 const UInt_t AliMUONRegHeader::fgkErrorWord    = 0xCAFEDEAD;

//___________________________________________
AliMUONRegHeader::AliMUONRegHeader(TRootIOCtor* /*dummy*/)
:  TObject(),
fDarcWord(0),
fWord(0),
fMask(0),
fL0(0),
fClk(0),
fHold(0),
fLocalArray(0x0)
{
  /// ctor
  fInput[0] = fInput[1] = 0;
  
  for (Int_t i = 0; i < 8; i++)
    fScaler[i] = 0;  
}

//___________________________________________
AliMUONRegHeader::AliMUONRegHeader()
  :  TObject(),
     fDarcWord(0),
     fWord(0),
     fMask(0),
     fL0(0),
     fClk(0),
     fHold(0),
     fLocalArray(new TClonesArray("AliMUONLocalStruct",16))
{
  /// ctor
 
  fInput[0] = fInput[1] = 0;

  for (Int_t i = 0; i < 8; i++)
    fScaler[i] = 0;

}

//___________________________________________
AliMUONRegHeader::~AliMUONRegHeader()
{
  /// dtor
 
  fLocalArray->Delete();
  delete fLocalArray;
}

//___________________________________________
AliMUONRegHeader::AliMUONRegHeader(const AliMUONRegHeader& event)
  :  TObject(event),
     fDarcWord(event.fDarcWord),
     fWord(event.fWord),
     fMask(event.fMask),
     fL0(event.fL0),
     fClk(event.fClk),
     fHold(event.fHold),
     fLocalArray(new TClonesArray("AliMUONLocalStruct", 16))
{
  ///
  /// copy ctor
  ///

  fInput[0] = event.fInput[0];
  fInput[1] = event.fInput[1];

  for (Int_t i = 0; i < 8; i++)
    fScaler[i] = event.fScaler[i];

  for (Int_t index = 0; index < (event.fLocalArray)->GetEntriesFast(); index++) {
    {new ((*fLocalArray)[fLocalArray->GetEntriesFast()]) 
        AliMUONLocalStruct(*(AliMUONLocalStruct*)(event.fLocalArray)->At(index));}
  }
}

//___________________________________________
AliMUONRegHeader& AliMUONRegHeader::operator=(const AliMUONRegHeader& event)
{
  /// 
  /// assignment operator
  ///

  if (this == &event) return *this;

  fDarcWord = event.fDarcWord;
  fWord     = event.fWord;
  fClk      = event.fClk;
  fHold     = event.fHold;
  fL0       = event.fL0;
  fMask     = event.fMask;

  fInput[0] = event.fInput[0];
  fInput[1] = event.fInput[1];

  for (Int_t i = 0; i < 8; i++)
    fScaler[i] = event.fScaler[i];

  fLocalArray = new TClonesArray("AliMUONLocalStruct", 16);
  for (Int_t index = 0; index < (event.fLocalArray)->GetEntriesFast(); index++) {
    {new ((*fLocalArray)[fLocalArray->GetEntriesFast()]) 
        AliMUONLocalStruct(*(AliMUONLocalStruct*)(event.fLocalArray)->At(index));}
  }

  return *this;
}

//___________________________________________
void AliMUONRegHeader::SetScalersNumbers()
{
  /// set numbers for scaler events for Regional header
  /// since this is provided by the experiment
  /// put dummy numbers to check the monitoring
  
  fClk  = 10000;
  fHold = 100; 
  
  for (Int_t i = 0; i < 8; i++)
    fScaler[i] = i;  
}

//___________________________________________
void AliMUONRegHeader::Clear(Option_t* )
{
  /// Clear TClones arrays
  /// instead of deleting
  ///
  fLocalArray->Clear("C");
 
}
 AliMUONRegHeader.cxx:1
 AliMUONRegHeader.cxx:2
 AliMUONRegHeader.cxx:3
 AliMUONRegHeader.cxx:4
 AliMUONRegHeader.cxx:5
 AliMUONRegHeader.cxx:6
 AliMUONRegHeader.cxx:7
 AliMUONRegHeader.cxx:8
 AliMUONRegHeader.cxx:9
 AliMUONRegHeader.cxx:10
 AliMUONRegHeader.cxx:11
 AliMUONRegHeader.cxx:12
 AliMUONRegHeader.cxx:13
 AliMUONRegHeader.cxx:14
 AliMUONRegHeader.cxx:15
 AliMUONRegHeader.cxx:16
 AliMUONRegHeader.cxx:17
 AliMUONRegHeader.cxx:18
 AliMUONRegHeader.cxx:19
 AliMUONRegHeader.cxx:20
 AliMUONRegHeader.cxx:21
 AliMUONRegHeader.cxx:22
 AliMUONRegHeader.cxx:23
 AliMUONRegHeader.cxx:24
 AliMUONRegHeader.cxx:25
 AliMUONRegHeader.cxx:26
 AliMUONRegHeader.cxx:27
 AliMUONRegHeader.cxx:28
 AliMUONRegHeader.cxx:29
 AliMUONRegHeader.cxx:30
 AliMUONRegHeader.cxx:31
 AliMUONRegHeader.cxx:32
 AliMUONRegHeader.cxx:33
 AliMUONRegHeader.cxx:34
 AliMUONRegHeader.cxx:35
 AliMUONRegHeader.cxx:36
 AliMUONRegHeader.cxx:37
 AliMUONRegHeader.cxx:38
 AliMUONRegHeader.cxx:39
 AliMUONRegHeader.cxx:40
 AliMUONRegHeader.cxx:41
 AliMUONRegHeader.cxx:42
 AliMUONRegHeader.cxx:43
 AliMUONRegHeader.cxx:44
 AliMUONRegHeader.cxx:45
 AliMUONRegHeader.cxx:46
 AliMUONRegHeader.cxx:47
 AliMUONRegHeader.cxx:48
 AliMUONRegHeader.cxx:49
 AliMUONRegHeader.cxx:50
 AliMUONRegHeader.cxx:51
 AliMUONRegHeader.cxx:52
 AliMUONRegHeader.cxx:53
 AliMUONRegHeader.cxx:54
 AliMUONRegHeader.cxx:55
 AliMUONRegHeader.cxx:56
 AliMUONRegHeader.cxx:57
 AliMUONRegHeader.cxx:58
 AliMUONRegHeader.cxx:59
 AliMUONRegHeader.cxx:60
 AliMUONRegHeader.cxx:61
 AliMUONRegHeader.cxx:62
 AliMUONRegHeader.cxx:63
 AliMUONRegHeader.cxx:64
 AliMUONRegHeader.cxx:65
 AliMUONRegHeader.cxx:66
 AliMUONRegHeader.cxx:67
 AliMUONRegHeader.cxx:68
 AliMUONRegHeader.cxx:69
 AliMUONRegHeader.cxx:70
 AliMUONRegHeader.cxx:71
 AliMUONRegHeader.cxx:72
 AliMUONRegHeader.cxx:73
 AliMUONRegHeader.cxx:74
 AliMUONRegHeader.cxx:75
 AliMUONRegHeader.cxx:76
 AliMUONRegHeader.cxx:77
 AliMUONRegHeader.cxx:78
 AliMUONRegHeader.cxx:79
 AliMUONRegHeader.cxx:80
 AliMUONRegHeader.cxx:81
 AliMUONRegHeader.cxx:82
 AliMUONRegHeader.cxx:83
 AliMUONRegHeader.cxx:84
 AliMUONRegHeader.cxx:85
 AliMUONRegHeader.cxx:86
 AliMUONRegHeader.cxx:87
 AliMUONRegHeader.cxx:88
 AliMUONRegHeader.cxx:89
 AliMUONRegHeader.cxx:90
 AliMUONRegHeader.cxx:91
 AliMUONRegHeader.cxx:92
 AliMUONRegHeader.cxx:93
 AliMUONRegHeader.cxx:94
 AliMUONRegHeader.cxx:95
 AliMUONRegHeader.cxx:96
 AliMUONRegHeader.cxx:97
 AliMUONRegHeader.cxx:98
 AliMUONRegHeader.cxx:99
 AliMUONRegHeader.cxx:100
 AliMUONRegHeader.cxx:101
 AliMUONRegHeader.cxx:102
 AliMUONRegHeader.cxx:103
 AliMUONRegHeader.cxx:104
 AliMUONRegHeader.cxx:105
 AliMUONRegHeader.cxx:106
 AliMUONRegHeader.cxx:107
 AliMUONRegHeader.cxx:108
 AliMUONRegHeader.cxx:109
 AliMUONRegHeader.cxx:110
 AliMUONRegHeader.cxx:111
 AliMUONRegHeader.cxx:112
 AliMUONRegHeader.cxx:113
 AliMUONRegHeader.cxx:114
 AliMUONRegHeader.cxx:115
 AliMUONRegHeader.cxx:116
 AliMUONRegHeader.cxx:117
 AliMUONRegHeader.cxx:118
 AliMUONRegHeader.cxx:119
 AliMUONRegHeader.cxx:120
 AliMUONRegHeader.cxx:121
 AliMUONRegHeader.cxx:122
 AliMUONRegHeader.cxx:123
 AliMUONRegHeader.cxx:124
 AliMUONRegHeader.cxx:125
 AliMUONRegHeader.cxx:126
 AliMUONRegHeader.cxx:127
 AliMUONRegHeader.cxx:128
 AliMUONRegHeader.cxx:129
 AliMUONRegHeader.cxx:130
 AliMUONRegHeader.cxx:131
 AliMUONRegHeader.cxx:132
 AliMUONRegHeader.cxx:133
 AliMUONRegHeader.cxx:134
 AliMUONRegHeader.cxx:135
 AliMUONRegHeader.cxx:136
 AliMUONRegHeader.cxx:137
 AliMUONRegHeader.cxx:138
 AliMUONRegHeader.cxx:139
 AliMUONRegHeader.cxx:140
 AliMUONRegHeader.cxx:141
 AliMUONRegHeader.cxx:142
 AliMUONRegHeader.cxx:143
 AliMUONRegHeader.cxx:144
 AliMUONRegHeader.cxx:145
 AliMUONRegHeader.cxx:146
 AliMUONRegHeader.cxx:147
 AliMUONRegHeader.cxx:148
 AliMUONRegHeader.cxx:149
 AliMUONRegHeader.cxx:150
 AliMUONRegHeader.cxx:151
 AliMUONRegHeader.cxx:152
 AliMUONRegHeader.cxx:153
 AliMUONRegHeader.cxx:154
 AliMUONRegHeader.cxx:155
 AliMUONRegHeader.cxx:156
 AliMUONRegHeader.cxx:157
 AliMUONRegHeader.cxx:158
 AliMUONRegHeader.cxx:159
 AliMUONRegHeader.cxx:160
 AliMUONRegHeader.cxx:161
 AliMUONRegHeader.cxx:162
 AliMUONRegHeader.cxx:163
 AliMUONRegHeader.cxx:164
 AliMUONRegHeader.cxx:165
 AliMUONRegHeader.cxx:166
 AliMUONRegHeader.cxx:167
 AliMUONRegHeader.cxx:168
 AliMUONRegHeader.cxx:169