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 "AliMUONLocalStruct.h"

//-----------------------------------------------------------------------------
/// \class AliMUONLocalStruct
/// Local structure for trigger raw data.
/// The structure includes the information
///  about the x,y position of the 4 detection planes,
/// the trigger word (address, local decision, y trigger, y position, x deviation,
/// x position)
///
/// \author Christian Finck
//-----------------------------------------------------------------------------

/// \cond CLASSIMP
ClassImp(AliMUONLocalStruct)
/// \endcond

 const Int_t  AliMUONLocalStruct::fgkLength = 5;
 const Int_t  AliMUONLocalStruct::fgkScalerLength = 45;
 const UInt_t AliMUONLocalStruct::fgkEndOfLocal   = 0xCAFEFADE;
 const UInt_t AliMUONLocalStruct::fgkDisableWord  = 0x10CADEAD;
//___________________________________________
AliMUONLocalStruct::AliMUONLocalStruct()
  :  TObject(),
     fL0(0),   
     fHold(0), 
     fClk(0),   
     fLPtNTrig(0), 
     fHPtNTrig(0), 
     fLPtRTrig(0), 
     fHPtRTrig(0), 
     fLPtLTrig(0), 
     fHPtLTrig(0), 
     fLPtSTrig(0), 
     fHPtSTrig(0), 
     fEOS(0),         
     fReset(0)       
{
  ///
  /// ctor
  ///
  for (Int_t i = 0; i < 5; i++)
    fData[i] = 0;

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


}

//___________________________________________
AliMUONLocalStruct::AliMUONLocalStruct(const AliMUONLocalStruct& event)
  :  TObject(event),
     fL0(event.fL0),
     fHold(event.fHold),
     fClk(event.fClk),
     fLPtNTrig(event.fLPtNTrig),
     fHPtNTrig(event.fHPtNTrig),
     fLPtRTrig(event.fLPtRTrig),
     fHPtRTrig(event.fHPtRTrig),
     fLPtLTrig(event.fLPtLTrig),
     fHPtLTrig(event.fHPtLTrig),
     fLPtSTrig(event.fLPtSTrig),
     fHPtSTrig(event.fHPtSTrig),
     fEOS(event.fEOS),
     fReset(event.fReset)
{
  ///
  /// copy ctor
  ///
  for (Int_t i = 0; i < 5; i++)
    fData[i] = event.fData[i];

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


}

//___________________________________________
AliMUONLocalStruct::~AliMUONLocalStruct()
{
/// Destructor
}

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

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

  fL0       = event.fL0;
  fHold     = event.fHold;
  fClk      = event.fClk;
  fLPtNTrig = event.fLPtNTrig;
  fHPtNTrig = event.fHPtNTrig;
  fLPtRTrig = event.fLPtRTrig;
  fHPtRTrig = event.fHPtRTrig;
  fLPtLTrig = event.fLPtLTrig;
  fHPtLTrig = event.fHPtLTrig;
  fLPtSTrig = event.fLPtSTrig;
  fHPtSTrig = event.fHPtSTrig;
  fEOS      = event.fEOS;
  fReset    = event.fReset;

  for (Int_t i = 0; i < 5; i++)
    fData[i] = event.fData[i];

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

  return *this;
}

//___________________________________________
void AliMUONLocalStruct::GetXPattern(TArrayS& array) const
{
    /// return array of X pattern
  Short_t vec[4] = {static_cast<Short_t>(GetX1()), static_cast<Short_t>(GetX2()), static_cast<Short_t>(GetX3()), static_cast<Short_t>(GetX4())};
    array.Set(4, vec);
}

//___________________________________________
void AliMUONLocalStruct::GetYPattern(TArrayS& array) const
{
    /// return array of Y pattern
  Short_t vec[4] = {static_cast<Short_t>(GetY1()), static_cast<Short_t>(GetY2()), static_cast<Short_t>(GetY3()), static_cast<Short_t>(GetY4())};
    array.Set(4, vec);
}

//___________________________________________
void AliMUONLocalStruct::SetScalersNumbers()
{
  /// set numbers for scaler events for local structure
  /// crasy numbers for scaler words, while no beam is coming
  ///

  fL0       = 1000;   
  fHold     = 100; 
  fClk      = 10000;  
  fLPtNTrig = 1; 
  fHPtNTrig = 1; 
  fLPtRTrig = 2; 
  fHPtRTrig = 2; 
  fLPtLTrig = 3; 
  fHPtLTrig = 3; 
  fLPtSTrig = 4; 
  fHPtSTrig = 4; 
  fEOS      = 0x2AA;         
  fReset    = 10;     

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

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