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.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// class for TOF Online calibration: defining channel status                 //
// New object created, to use an array instead of a TObjArray.               //
// Storing all the info coming from HW FEE map, pulser runs, and noise       //
// runs in a single object (char).                                           // 
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include <AliTOFChannelOnlineStatusArray.h>
#include <AliLog.h>

ClassImp(AliTOFChannelOnlineStatusArray)

//________________________________________________________________
AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray():
	TObject(),
	fSize(0),
	fArray(0x0),
	fLatencyWindow(0x0)
{
	//default constructor
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray::~AliTOFChannelOnlineStatusArray()
{
	//distructor
	delete [] fArray;
	delete [] fLatencyWindow;
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(Int_t size):
	TObject(),
	fSize(size),
	fArray(new UChar_t[size]),
	fLatencyWindow(new Int_t[size])
{
	// ctor with size
	for (Int_t ich = 0; ich<size; ich ++){
	  SetStatus(ich,kTOFOnlineUnknown);
	  SetLatencyWindow(ich, 0);
	}
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(const AliTOFChannelOnlineStatusArray & source):
      TObject(),
      fSize(source.fSize),
      fArray(0x0),
      fLatencyWindow(0x0)
{ 
	// copy constructor
	fArray = new UChar_t[fSize];
	fLatencyWindow = new Int_t[fSize];
	for (Int_t ich = 0; ich<fSize; ich ++){
		fArray[ich] = source.fArray[ich];
		fLatencyWindow[ich] = source.fLatencyWindow[ich];
	}
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray &AliTOFChannelOnlineStatusArray::operator=(const AliTOFChannelOnlineStatusArray & source) 
{ 
	// assignment operator

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

  TObject::operator=(source);
  fSize= source.fSize;
  delete [] fArray;
  fArray = new UChar_t[fSize];
  delete [] fLatencyWindow;
  fLatencyWindow = new Int_t[fSize];
  memcpy(fArray,source.fArray,sizeof(UChar_t)*fSize);
  memcpy(fLatencyWindow,source.fLatencyWindow,sizeof(Int_t)*fSize);

  return *this;
}
//________________________________________________________________
void AliTOFChannelOnlineStatusArray::SetStatus(Int_t pos, UChar_t parr)
{
	// setting status for channel at position = pos
	AliDebug(2,Form("status = %d",(UInt_t)parr));
	if (pos>-1 && pos < fSize)fArray[pos] = parr;
	AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
}
//________________________________________________________________
void AliTOFChannelOnlineStatusArray::SetHWStatus(Int_t pos, UChar_t parr)
{
	// setting status for channel at position = pos
	AliDebug(2,Form("HW status = %d",(UInt_t)parr));
	if (pos>-1 && pos < fSize) {
		fArray[pos] &= kTOFHWReset;
		fArray[pos] |= parr;
	}
	AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
}
//________________________________________________________________
void AliTOFChannelOnlineStatusArray::SetPulserStatus(Int_t pos, UChar_t parr)
{
	// setting status for channel at position = pos
	AliDebug(2,Form("Pulser status = %d",(UInt_t)parr));
	if (pos>-1 && pos < fSize){
		fArray[pos] &= kTOFPulserReset;
		fArray[pos] |= parr;
	}
	AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
}
//________________________________________________________________
void AliTOFChannelOnlineStatusArray::SetNoiseStatus(Int_t pos, UChar_t parr)
{
	// setting status for channel at position = pos
	AliDebug(2,Form("Noise status = %d",(UInt_t)parr));
	if (pos>-1 && pos < fSize){
		fArray[pos] &= kTOFNoiseReset;
		fArray[pos] |= parr;
	}
	AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
}
//________________________________________________________________
void AliTOFChannelOnlineStatusArray::SetLatencyWindow(Int_t pos, Int_t parr)
{
	// setting latency window for channel at position = pos
  if (!fLatencyWindow) {
    AliWarning("couldn't set latency window");
    return;
  }
	// setting latency window for channel at position = pos
	AliDebug(2,Form("Latency window = %d",parr));
	if (pos>-1 && pos < fSize){
	  fLatencyWindow[pos] = parr;
	}
	AliDebug(2,Form("fLatencyWindow[%d] = %d",pos,fLatencyWindow[pos]));
}
//________________________________________________________________
UChar_t AliTOFChannelOnlineStatusArray::GetStatus(Int_t pos) const 
{
	// getting the status for channel at position = pos 
	UChar_t parr = 0x0; 
	if  (pos>-1 && pos < fSize)parr = fArray[pos];
	return parr;
}
//________________________________________________________________
UChar_t AliTOFChannelOnlineStatusArray::GetHWStatus(Int_t pos) const 
{
	// getting the HW status for channel at position = pos 
	UChar_t parr = 0x0; 
	if  (pos>-1 && pos < fSize)parr = fArray[pos];
	AliDebug(2,Form("parr = %d ",(UInt_t)parr));
	UChar_t hwSt = parr & kTOFHW;
	//UChar_t hwSt = parr & 0x3;
	return hwSt;
}
//________________________________________________________________
UChar_t AliTOFChannelOnlineStatusArray::GetPulserStatus(Int_t pos) const 
{
	// getting the Pulser status for channel at position = pos 
	UChar_t parr = 0x0; 
	if  (pos>-1 && pos < fSize)parr = fArray[pos];
	AliDebug(2,Form("parr = %d ",(UInt_t)parr));
	UChar_t pulserSt = parr & kTOFPulser;
	//UChar_t pulserSt = parr & 0xc;
	return pulserSt;
    }
//________________________________________________________________
UChar_t AliTOFChannelOnlineStatusArray::GetNoiseStatus(Int_t pos) const 
{
	// getting the noise status for channel at position = pos 
	UChar_t parr = 0x0; 
	if  (pos>-1 && pos < fSize)parr = fArray[pos];
	AliDebug(2,Form("parr = %d ",(UInt_t)parr));
	UChar_t noiseSt = parr & kTOFNoise;
	//	UChar_t noiseSt = parr & 0x30;
	return noiseSt; 
}
//________________________________________________________________
Int_t AliTOFChannelOnlineStatusArray::GetLatencyWindow(Int_t pos) const 
{
	// getting the latency window for channel at position = pos 
  Int_t lw = 0; 
  if (!fLatencyWindow) {
    AliWarning("cannot get latency window");
    return lw;
  }
  if  (pos>-1 && pos < fSize)lw = fLatencyWindow[pos];
  AliDebug(2,Form("lw = %d ",lw));
  return lw;
}
 AliTOFChannelOnlineStatusArray.cxx:1
 AliTOFChannelOnlineStatusArray.cxx:2
 AliTOFChannelOnlineStatusArray.cxx:3
 AliTOFChannelOnlineStatusArray.cxx:4
 AliTOFChannelOnlineStatusArray.cxx:5
 AliTOFChannelOnlineStatusArray.cxx:6
 AliTOFChannelOnlineStatusArray.cxx:7
 AliTOFChannelOnlineStatusArray.cxx:8
 AliTOFChannelOnlineStatusArray.cxx:9
 AliTOFChannelOnlineStatusArray.cxx:10
 AliTOFChannelOnlineStatusArray.cxx:11
 AliTOFChannelOnlineStatusArray.cxx:12
 AliTOFChannelOnlineStatusArray.cxx:13
 AliTOFChannelOnlineStatusArray.cxx:14
 AliTOFChannelOnlineStatusArray.cxx:15
 AliTOFChannelOnlineStatusArray.cxx:16
 AliTOFChannelOnlineStatusArray.cxx:17
 AliTOFChannelOnlineStatusArray.cxx:18
 AliTOFChannelOnlineStatusArray.cxx:19
 AliTOFChannelOnlineStatusArray.cxx:20
 AliTOFChannelOnlineStatusArray.cxx:21
 AliTOFChannelOnlineStatusArray.cxx:22
 AliTOFChannelOnlineStatusArray.cxx:23
 AliTOFChannelOnlineStatusArray.cxx:24
 AliTOFChannelOnlineStatusArray.cxx:25
 AliTOFChannelOnlineStatusArray.cxx:26
 AliTOFChannelOnlineStatusArray.cxx:27
 AliTOFChannelOnlineStatusArray.cxx:28
 AliTOFChannelOnlineStatusArray.cxx:29
 AliTOFChannelOnlineStatusArray.cxx:30
 AliTOFChannelOnlineStatusArray.cxx:31
 AliTOFChannelOnlineStatusArray.cxx:32
 AliTOFChannelOnlineStatusArray.cxx:33
 AliTOFChannelOnlineStatusArray.cxx:34
 AliTOFChannelOnlineStatusArray.cxx:35
 AliTOFChannelOnlineStatusArray.cxx:36
 AliTOFChannelOnlineStatusArray.cxx:37
 AliTOFChannelOnlineStatusArray.cxx:38
 AliTOFChannelOnlineStatusArray.cxx:39
 AliTOFChannelOnlineStatusArray.cxx:40
 AliTOFChannelOnlineStatusArray.cxx:41
 AliTOFChannelOnlineStatusArray.cxx:42
 AliTOFChannelOnlineStatusArray.cxx:43
 AliTOFChannelOnlineStatusArray.cxx:44
 AliTOFChannelOnlineStatusArray.cxx:45
 AliTOFChannelOnlineStatusArray.cxx:46
 AliTOFChannelOnlineStatusArray.cxx:47
 AliTOFChannelOnlineStatusArray.cxx:48
 AliTOFChannelOnlineStatusArray.cxx:49
 AliTOFChannelOnlineStatusArray.cxx:50
 AliTOFChannelOnlineStatusArray.cxx:51
 AliTOFChannelOnlineStatusArray.cxx:52
 AliTOFChannelOnlineStatusArray.cxx:53
 AliTOFChannelOnlineStatusArray.cxx:54
 AliTOFChannelOnlineStatusArray.cxx:55
 AliTOFChannelOnlineStatusArray.cxx:56
 AliTOFChannelOnlineStatusArray.cxx:57
 AliTOFChannelOnlineStatusArray.cxx:58
 AliTOFChannelOnlineStatusArray.cxx:59
 AliTOFChannelOnlineStatusArray.cxx:60
 AliTOFChannelOnlineStatusArray.cxx:61
 AliTOFChannelOnlineStatusArray.cxx:62
 AliTOFChannelOnlineStatusArray.cxx:63
 AliTOFChannelOnlineStatusArray.cxx:64
 AliTOFChannelOnlineStatusArray.cxx:65
 AliTOFChannelOnlineStatusArray.cxx:66
 AliTOFChannelOnlineStatusArray.cxx:67
 AliTOFChannelOnlineStatusArray.cxx:68
 AliTOFChannelOnlineStatusArray.cxx:69
 AliTOFChannelOnlineStatusArray.cxx:70
 AliTOFChannelOnlineStatusArray.cxx:71
 AliTOFChannelOnlineStatusArray.cxx:72
 AliTOFChannelOnlineStatusArray.cxx:73
 AliTOFChannelOnlineStatusArray.cxx:74
 AliTOFChannelOnlineStatusArray.cxx:75
 AliTOFChannelOnlineStatusArray.cxx:76
 AliTOFChannelOnlineStatusArray.cxx:77
 AliTOFChannelOnlineStatusArray.cxx:78
 AliTOFChannelOnlineStatusArray.cxx:79
 AliTOFChannelOnlineStatusArray.cxx:80
 AliTOFChannelOnlineStatusArray.cxx:81
 AliTOFChannelOnlineStatusArray.cxx:82
 AliTOFChannelOnlineStatusArray.cxx:83
 AliTOFChannelOnlineStatusArray.cxx:84
 AliTOFChannelOnlineStatusArray.cxx:85
 AliTOFChannelOnlineStatusArray.cxx:86
 AliTOFChannelOnlineStatusArray.cxx:87
 AliTOFChannelOnlineStatusArray.cxx:88
 AliTOFChannelOnlineStatusArray.cxx:89
 AliTOFChannelOnlineStatusArray.cxx:90
 AliTOFChannelOnlineStatusArray.cxx:91
 AliTOFChannelOnlineStatusArray.cxx:92
 AliTOFChannelOnlineStatusArray.cxx:93
 AliTOFChannelOnlineStatusArray.cxx:94
 AliTOFChannelOnlineStatusArray.cxx:95
 AliTOFChannelOnlineStatusArray.cxx:96
 AliTOFChannelOnlineStatusArray.cxx:97
 AliTOFChannelOnlineStatusArray.cxx:98
 AliTOFChannelOnlineStatusArray.cxx:99
 AliTOFChannelOnlineStatusArray.cxx:100
 AliTOFChannelOnlineStatusArray.cxx:101
 AliTOFChannelOnlineStatusArray.cxx:102
 AliTOFChannelOnlineStatusArray.cxx:103
 AliTOFChannelOnlineStatusArray.cxx:104
 AliTOFChannelOnlineStatusArray.cxx:105
 AliTOFChannelOnlineStatusArray.cxx:106
 AliTOFChannelOnlineStatusArray.cxx:107
 AliTOFChannelOnlineStatusArray.cxx:108
 AliTOFChannelOnlineStatusArray.cxx:109
 AliTOFChannelOnlineStatusArray.cxx:110
 AliTOFChannelOnlineStatusArray.cxx:111
 AliTOFChannelOnlineStatusArray.cxx:112
 AliTOFChannelOnlineStatusArray.cxx:113
 AliTOFChannelOnlineStatusArray.cxx:114
 AliTOFChannelOnlineStatusArray.cxx:115
 AliTOFChannelOnlineStatusArray.cxx:116
 AliTOFChannelOnlineStatusArray.cxx:117
 AliTOFChannelOnlineStatusArray.cxx:118
 AliTOFChannelOnlineStatusArray.cxx:119
 AliTOFChannelOnlineStatusArray.cxx:120
 AliTOFChannelOnlineStatusArray.cxx:121
 AliTOFChannelOnlineStatusArray.cxx:122
 AliTOFChannelOnlineStatusArray.cxx:123
 AliTOFChannelOnlineStatusArray.cxx:124
 AliTOFChannelOnlineStatusArray.cxx:125
 AliTOFChannelOnlineStatusArray.cxx:126
 AliTOFChannelOnlineStatusArray.cxx:127
 AliTOFChannelOnlineStatusArray.cxx:128
 AliTOFChannelOnlineStatusArray.cxx:129
 AliTOFChannelOnlineStatusArray.cxx:130
 AliTOFChannelOnlineStatusArray.cxx:131
 AliTOFChannelOnlineStatusArray.cxx:132
 AliTOFChannelOnlineStatusArray.cxx:133
 AliTOFChannelOnlineStatusArray.cxx:134
 AliTOFChannelOnlineStatusArray.cxx:135
 AliTOFChannelOnlineStatusArray.cxx:136
 AliTOFChannelOnlineStatusArray.cxx:137
 AliTOFChannelOnlineStatusArray.cxx:138
 AliTOFChannelOnlineStatusArray.cxx:139
 AliTOFChannelOnlineStatusArray.cxx:140
 AliTOFChannelOnlineStatusArray.cxx:141
 AliTOFChannelOnlineStatusArray.cxx:142
 AliTOFChannelOnlineStatusArray.cxx:143
 AliTOFChannelOnlineStatusArray.cxx:144
 AliTOFChannelOnlineStatusArray.cxx:145
 AliTOFChannelOnlineStatusArray.cxx:146
 AliTOFChannelOnlineStatusArray.cxx:147
 AliTOFChannelOnlineStatusArray.cxx:148
 AliTOFChannelOnlineStatusArray.cxx:149
 AliTOFChannelOnlineStatusArray.cxx:150
 AliTOFChannelOnlineStatusArray.cxx:151
 AliTOFChannelOnlineStatusArray.cxx:152
 AliTOFChannelOnlineStatusArray.cxx:153
 AliTOFChannelOnlineStatusArray.cxx:154
 AliTOFChannelOnlineStatusArray.cxx:155
 AliTOFChannelOnlineStatusArray.cxx:156
 AliTOFChannelOnlineStatusArray.cxx:157
 AliTOFChannelOnlineStatusArray.cxx:158
 AliTOFChannelOnlineStatusArray.cxx:159
 AliTOFChannelOnlineStatusArray.cxx:160
 AliTOFChannelOnlineStatusArray.cxx:161
 AliTOFChannelOnlineStatusArray.cxx:162
 AliTOFChannelOnlineStatusArray.cxx:163
 AliTOFChannelOnlineStatusArray.cxx:164
 AliTOFChannelOnlineStatusArray.cxx:165
 AliTOFChannelOnlineStatusArray.cxx:166
 AliTOFChannelOnlineStatusArray.cxx:167
 AliTOFChannelOnlineStatusArray.cxx:168
 AliTOFChannelOnlineStatusArray.cxx:169
 AliTOFChannelOnlineStatusArray.cxx:170
 AliTOFChannelOnlineStatusArray.cxx:171
 AliTOFChannelOnlineStatusArray.cxx:172
 AliTOFChannelOnlineStatusArray.cxx:173
 AliTOFChannelOnlineStatusArray.cxx:174
 AliTOFChannelOnlineStatusArray.cxx:175
 AliTOFChannelOnlineStatusArray.cxx:176
 AliTOFChannelOnlineStatusArray.cxx:177
 AliTOFChannelOnlineStatusArray.cxx:178
 AliTOFChannelOnlineStatusArray.cxx:179
 AliTOFChannelOnlineStatusArray.cxx:180
 AliTOFChannelOnlineStatusArray.cxx:181
 AliTOFChannelOnlineStatusArray.cxx:182
 AliTOFChannelOnlineStatusArray.cxx:183
 AliTOFChannelOnlineStatusArray.cxx:184
 AliTOFChannelOnlineStatusArray.cxx:185
 AliTOFChannelOnlineStatusArray.cxx:186
 AliTOFChannelOnlineStatusArray.cxx:187
 AliTOFChannelOnlineStatusArray.cxx:188
 AliTOFChannelOnlineStatusArray.cxx:189
 AliTOFChannelOnlineStatusArray.cxx:190
 AliTOFChannelOnlineStatusArray.cxx:191
 AliTOFChannelOnlineStatusArray.cxx:192
 AliTOFChannelOnlineStatusArray.cxx:193
 AliTOFChannelOnlineStatusArray.cxx:194
 AliTOFChannelOnlineStatusArray.cxx:195
 AliTOFChannelOnlineStatusArray.cxx:196
 AliTOFChannelOnlineStatusArray.cxx:197
 AliTOFChannelOnlineStatusArray.cxx:198
 AliTOFChannelOnlineStatusArray.cxx:199
 AliTOFChannelOnlineStatusArray.cxx:200
 AliTOFChannelOnlineStatusArray.cxx:201
 AliTOFChannelOnlineStatusArray.cxx:202