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 AliVZEROTriggerData
// -------------------------
// Retrieves and hold the FEE parameters
// The parameters are recieved from the shuttle 
// AliVZEROTriggerData is then used in the AliVZEROTriggerSimulator
//

#include <TObjString.h>
#include <TMap.h>

#include "AliLog.h"
#include "AliDCSValue.h"
#include "AliVZEROTriggerData.h"

ClassImp(AliVZEROTriggerData)
//________________________________________________________________

AliVZEROTriggerData::AliVZEROTriggerData() :
	TNamed(),
	fBBAThreshold(0),
	fBBCThreshold(0) ,  
	fBGAThreshold(0) ,  
	fBGCThreshold(0) ,  
	fBBAForBGThreshold(0) ,  
	fBBCForBGThreshold(0) ,  
	fCentralityVOAThrLow(0) ,  
	fCentralityVOAThrHigh(0) , 
	fCentralityVOCThrLow(0) ,  
	fCentralityVOCThrHigh(0) , 
	fMultV0AThrLow(0) ,  
	fMultV0AThrHigh(0) , 
	fMultV0CThrLow(0) ,  
	fMultV0CThrHigh(0),
	fRun(0),
	fStartTime(0),
	fEndTime(0),
	fIsProcessed(kFALSE)	

{
	// default constructor
	for(int i=0; i<kNCIUBoards ;i++) {
		fClk1Win1[i] = fClk1Win2[i] = 0;
		fDelayClk1Win1[i] = fDelayClk1Win2[i] = 0;
		fClk2Win1[i] = fClk2Win2[i] = 0;
		fDelayClk2Win1[i] = fDelayClk2Win2[i] = 0;
		fLatchWin1[i] = fLatchWin2[i] = 0;
		fResetWin1[i] = fResetWin2[i] = 0;
		fPedestalSubtraction[i] = kFALSE;
		for(Int_t j = 0; j < kNChannels; ++j) {
		  fEnableCharge[i][j] = fEnableTiming[i][j] = kFALSE;
		  fDiscriThr[i][j] = fDelayHit[i][j] = 0;
		  fPedestalOdd[i][j] = fPedestalEven[i][j] = 0;
		  fPedestalCutOdd[i][j] = fPedestalCutEven[i][j] = 0;
		}
	}
	for(Int_t i = 0; i < kNTriggerOutputs; ++i) fTriggerSelected[i] = 0;
}
//________________________________________________________________
AliVZEROTriggerData::AliVZEROTriggerData(Int_t nRun, UInt_t startTime, UInt_t endTime) :
	TNamed(),
	fBBAThreshold(0),
	fBBCThreshold(0) ,  
	fBGAThreshold(0) ,  
	fBGCThreshold(0) ,  
	fBBAForBGThreshold(0) ,  
	fBBCForBGThreshold(0) ,  
	fCentralityVOAThrLow(0) ,  
	fCentralityVOAThrHigh(0) , 
	fCentralityVOCThrLow(0) ,  
	fCentralityVOCThrHigh(0) , 
	fMultV0AThrLow(0) ,  
	fMultV0AThrHigh(0) , 
	fMultV0CThrLow(0) ,  
	fMultV0CThrHigh(0),
	fRun(nRun),
	fStartTime(startTime),
	fEndTime(endTime),
	fIsProcessed(kFALSE)
{
	// Constructor
	for(int i=0; i<kNCIUBoards ;i++) {
		fClk1Win1[i] = fClk1Win2[i] = 0;
		fDelayClk1Win1[i] = fDelayClk1Win2[i] = 0;
		fClk2Win1[i] = fClk2Win2[i] = 0;
		fDelayClk2Win1[i] = fDelayClk2Win2[i] = 0;
		fLatchWin1[i] = fLatchWin2[i] = 0;
		fResetWin1[i] = fResetWin2[i] = 0;
		fPedestalSubtraction[i] = kFALSE;
		for(Int_t j = 0; j < kNChannels; ++j) {
		  fEnableCharge[i][j] = fEnableTiming[i][j] = kFALSE;
		  fDiscriThr[i][j] = fDelayHit[i][j] = 0;
		  fPedestalOdd[i][j] = fPedestalEven[i][j] = 0;
		  fPedestalCutOdd[i][j] = fPedestalCutEven[i][j] = 0;
		}
	}
	for(Int_t i = 0; i < kNTriggerOutputs; ++i) fTriggerSelected[i] = 0;

	TString namst = "VZERO_Trigger_FEE";
	SetName(namst.Data());
	SetTitle(namst.Data());
	
}

//________________________________________________________________
AliVZEROTriggerData::~AliVZEROTriggerData(){
	// destructor
}
//_____________________________________________________________________________
void AliVZEROTriggerData::FillData(AliVZERODataFEE * data){
	// Set all parameters from the data get by the shuttle
	TMap * params = data->GetParameters();
	TIter iter(params);	
	TObjString* aliasName;
	
	while ((  aliasName = (TObjString*) iter.Next() ))  {
		AliDCSValue* aValue = (AliDCSValue*) params->GetValue(aliasName);
		Int_t val;
		if(aValue) {
			val = aValue->GetUInt();
			AliInfo(Form("%s : %d",aliasName->String().Data(), val));
			SetParameter(aliasName->String(),val);
		}
	}	
}

//_____________________________________________________________________________
void AliVZEROTriggerData::SetParameter(TString name, Int_t val){
	// Set given parameter
	
	Int_t iBoard = -1;
	Int_t iChannel = -1;

	TSeqCollection* nameSplit = name.Tokenize("/");
	TObjString * boardName = (TObjString *)nameSplit->At(2);
	if(!boardName->String().Contains("CCIU")) sscanf(boardName->String().Data(),"CIU%d",&iBoard);
	
	TString paramName = ((TObjString *)nameSplit->At(3))->String();
	Char_t channel[2] ; channel[1] = '\0';
	channel[0] = paramName[paramName.Sizeof()-2];
	sscanf(channel,"%d",&iChannel);
	
	if(name.Contains("DelayClk1Win1")) SetDelayClk1Win1((UShort_t) val,iBoard);
	else if(name.Contains("Clk1Win1")) SetClk1Win1((UShort_t) val,iBoard);
	else if(name.Contains("DelayClk1Win2")) SetDelayClk1Win2((UShort_t) val,iBoard);
	else if(name.Contains("Clk1Win2")) SetClk1Win2((UShort_t) val,iBoard);
	else if(name.Contains("DelayClk2Win1")) SetDelayClk2Win1((UShort_t) val,iBoard);
	else if(name.Contains("Clk2Win1")) SetClk2Win1((UShort_t) val,iBoard);
	else if(name.Contains("DelayClk2Win2")) SetDelayClk2Win2((UShort_t) val,iBoard);
	else if(name.Contains("Clk2Win2")) SetClk2Win2((UShort_t) val,iBoard);
	else if(name.Contains("LatchWin1")) SetLatchWin1((UShort_t) val,iBoard);
	else if(name.Contains("LatchWin2")) SetLatchWin2((UShort_t) val,iBoard);
	else if(name.Contains("ResetWin1")) SetResetWin1((UShort_t) val,iBoard);
	else if(name.Contains("ResetWin2")) SetResetWin2((UShort_t) val,iBoard);
	else if(name.Contains("PedestalSubtraction")) SetPedestalSubtraction((Bool_t) val,iBoard);
	else if(name.Contains("BBAThreshold")) SetBBAThreshold((UShort_t) val);
	else if(name.Contains("BBCThreshold")) SetBBCThreshold((UShort_t) val);
	else if(name.Contains("BGAThreshold")) SetBGAThreshold((UShort_t) val);
	else if(name.Contains("BGCThreshold")) SetBGCThreshold((UShort_t) val);
	else if(name.Contains("BBAForBGThreshold")) SetBBAForBGThreshold((UShort_t) val);
	else if(name.Contains("BBCForBGThreshold")) SetBBCForBGThreshold((UShort_t) val);
	else if(name.Contains("CentralityV0AThrLow")) SetCentralityV0AThrLow((UShort_t) val);
	else if(name.Contains("CentralityV0AThrHigh")) SetCentralityV0AThrHigh((UShort_t) val);
	else if(name.Contains("CentralityV0CThrLow")) SetCentralityV0CThrLow((UShort_t) val);
	else if(name.Contains("CentralityV0CThrHigh")) SetCentralityV0CThrHigh((UShort_t) val);
	else if(name.Contains("MultV0AThrLow")) SetMultV0AThrLow((UShort_t) val);
	else if(name.Contains("MultV0AThrHigh")) SetMultV0AThrHigh((UShort_t) val);
	else if(name.Contains("MultV0CThrLow")) SetMultV0CThrLow((UShort_t) val);
	else if(name.Contains("MultV0CThrHigh")) SetMultV0CThrHigh((UShort_t) val);
	else if(name.Contains("TriggerSelect")) SetTriggerSelected((UShort_t) val, iChannel-1 );
	else if(name.Contains("EnableCharge")) SetEnableCharge((Bool_t) val, iBoard , iChannel-1);
	else if(name.Contains("EnableTiming")) SetEnableTiming((Bool_t) val, iBoard , iChannel-1);
	else if(name.Contains("DiscriThr")) SetDiscriThr((UShort_t) val, iBoard, iChannel-1);
	else if(name.Contains("DelayHit")) SetDelayHit((UShort_t) val, iBoard, iChannel-1);
	else if(name.Contains("PedOdd")) SetPedestal((UShort_t) val, 1, iBoard, iChannel-1);
	else if(name.Contains("PedEven")) SetPedestal((UShort_t) val, 0, iBoard, iChannel-1);
	else if(name.Contains("PedCutOdd")) SetPedestalCut((UShort_t) val, 1, iBoard, iChannel-1);
	else if(name.Contains("PedCutEven")) SetPedestalCut((UShort_t) val, 0, iBoard, iChannel-1);
	else AliError(Form("No Setter found for FEE parameter : %s",name.Data()));
	//
	delete nameSplit;
}
//________________________________________________________________
void AliVZEROTriggerData::SetPedestalCut(UShort_t val,Int_t integrator, Int_t board, Int_t channel)
{
	// Set Pedestal Cut of individual channel 
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) {
		if(integrator) fPedestalCutOdd[board][channel] = val;
		else fPedestalCutEven[board][channel] = val;
	} else AliError(Form("Impossible to write at : Board %d ; Channel %d",board,channel));
}
//________________________________________________________________
UShort_t AliVZEROTriggerData::GetPedestalCut(Int_t integrator, Int_t board, Int_t channel)
{
	// Get Pedestal Cut of individual channel 
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) {
		if(integrator) return(fPedestalCutOdd[board][channel]);
		else return(fPedestalCutEven[board][channel]);
	}else AliError(Form("Impossible to read at : Board %d ; Channel %d",board,channel));
	return 0;
}
//________________________________________________________________
void AliVZEROTriggerData::SetPedestal(UShort_t val, Int_t integrator, Int_t board, Int_t channel)
{
	// Set Pedestal of individual channel 
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) {
		if(integrator) fPedestalOdd[board][channel] = val;
		else fPedestalEven[board][channel] = val;
	} else AliError(Form("Impossible to write at : Board %d ; Channel %d ; Integrator %d ",board,channel,integrator));
}
//________________________________________________________________
UShort_t AliVZEROTriggerData::GetPedestal(Int_t integrator, Int_t board, Int_t channel)
{
	// Get Pedestal of individual channel 
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) {
		if(integrator) return(fPedestalOdd[board][channel]);
		else return(fPedestalEven[board][channel]);
	} else AliError(Form("Impossible to read at : Board %d ; Channel %d",board,channel));
	return 0;
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayHit(UShort_t val,Int_t board, Int_t channel)
{
	// Set Delay of individual channel 
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) fDelayHit[board][channel] = val;
	else AliError(Form("Impossible to write at : Board %d ; Channel %d",board,channel));
}
//________________________________________________________________
UShort_t AliVZEROTriggerData::GetDelayHit(Int_t board, Int_t channel)
{
	// Get Delay of individual channel 
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) return(fDelayHit[board][channel]);
	else AliError(Form("Impossible to read at : Board %d ; Channel %d",board,channel));
	return 0;
}
//________________________________________________________________
void AliVZEROTriggerData::SetDiscriThr(UShort_t val,Int_t board, Int_t channel)
{
	// Set discriminator threshold
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) fDiscriThr[board][channel] = val;
	else AliError(Form("Impossible to write at : Board %d ; Channel %d",board,channel));
}
//________________________________________________________________
UShort_t AliVZEROTriggerData::GetDiscriThr(Int_t board, Int_t channel)
{
	// Get discriminator threshold
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) return(fDiscriThr[board][channel]);
	else AliError(Form("Impossible to read at : Board %d ; Channel %d",board,channel));
	return 0;
}
//________________________________________________________________
void AliVZEROTriggerData::SetEnableCharge(Bool_t val,Int_t board, Int_t channel)
{
	// Set the channels enabled for Charge triggers
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) fEnableCharge[board][channel] = val;
	else AliError(Form("Impossible to write at : Board %d ; Channel %d",board,channel));
}
//________________________________________________________________
Bool_t AliVZEROTriggerData::GetEnableCharge(Int_t board, Int_t channel)
{
	// Get the channels enabled for Charge triggers
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) return(fEnableCharge[board][channel]);
	else AliError(Form("Impossible to read at : Board %d ; Channel %d",board,channel));
	return kFALSE;
}
//________________________________________________________________
void AliVZEROTriggerData::SetEnableTiming(Bool_t val,Int_t board, Int_t channel)
{
	// Set the channels enabled for Timing triggers
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) fEnableTiming[board][channel] = val;
	else AliError(Form("Impossible to write at : Board %d ; Channel %d",board,channel));
}
//________________________________________________________________
Bool_t AliVZEROTriggerData::GetEnableTiming(Int_t board, Int_t channel)
{
	// Get the channels enabled for Timing triggers
	if((board>=0 && board<kNCIUBoards) && (channel>=0 && channel<kNChannels)) return(fEnableTiming[board][channel]);
	else AliError(Form("Impossible to read at : Board %d ; Channel %d",board,channel));
	return kFALSE;
}
//________________________________________________________________
void AliVZEROTriggerData::SetTriggerSelected(UShort_t trigger, Int_t output)
{
	// Set the trigger selected on the outputs to CTP
	if(output>=0 && output<kNTriggerOutputs) fTriggerSelected[output] = trigger;
	else AliError(Form("Trigger output number %d not valid",output));
}

//________________________________________________________________
void AliVZEROTriggerData::SetClk1Win1(UShort_t* clks)
{
	// Set Win clock of BB
	if(clks) for(int t=0; t<kNCIUBoards; t++) SetClk1Win1(clks[t],t);
	else AliError("Profil Clock1 Win1 Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk2Win1(UShort_t* clks)
{
	// Set Win clock of BB
	if(clks) for(int t=0; t<kNCIUBoards; t++) SetClk2Win1(clks[t],t);
	else AliError("Profil Clock2 Win1 Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk1Win1(UShort_t clk, Int_t board)
{
	// Set Win clock of BB
	if((board>=0) && (board<kNCIUBoards)) {
		fClk1Win1[board] = clk;
		if(!IsClkValid(clk)) AliWarning(Form("Profil Clock1 Win1 of board %d is not valid : %d",board,clk));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk2Win1(UShort_t clk, Int_t board)
{
	// Set Win clock of BB
	if((board>=0) && (board<kNCIUBoards)) {
		fClk2Win1[board] = clk;
		if(!IsClkValid(clk)) AliWarning(Form("Profil Clock2 Win1 of board %d is not valid : %d",board,clk));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk1Win2(UShort_t* clks)
{
	// Set Win clock of BG
	if(clks) for(int t=0; t<kNCIUBoards; t++) SetClk1Win2(clks[t],t);
	else AliError("Profil Clock1 Win2 Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk2Win2(UShort_t* clks)
{
	// Set Win clock of BG
	if(clks) for(int t=0; t<kNCIUBoards; t++) SetClk2Win2(clks[t],t);
	else AliError("Profil Clock2 Win2 Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk1Win2(UShort_t clk, Int_t board)
{
	// Set Win clock of BG
	if((board>=0) && (board<kNCIUBoards)) {
		fClk1Win2[board] = clk;
		if(!IsClkValid(clk)) AliWarning(Form("Profil Clock1 Win2 of board %d is not valid : %d",board,clk));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetClk2Win2(UShort_t clk, Int_t board)
{
	// Set Win clock of BG
	if((board>=0) && (board<kNCIUBoards)) {
		fClk2Win2[board] = clk;
		if(!IsClkValid(clk)) AliWarning(Form("Profil Clock2 Win2 of board %d is not valid : %d",board,clk));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk1Win1(UShort_t* delays)
{
	// Set Delay for Win clock of BB
	if(delays) for(int t=0; t<kNCIUBoards; t++) SetDelayClk1Win1(delays[t],t);
	else AliError("Profil Clock1 Win1 Delays Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk1Win1(UShort_t delay, Int_t board)
{
	// Set Delay for Win clock of BB
	if(delay>1023){
		AliWarning(Form("Profil Clock1 Win1 Delay of board %d should be less 1023 is currently %d. Truncated to the first 10 bits",board, delay));
		delay = delay & 0x3FF;
	}
	if((board>=0) && (board<kNCIUBoards))	fDelayClk1Win1[board] = delay;
	else AliError(Form("Trying to write out of the array Board = %d",board));
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk2Win1(UShort_t* delays)
{
	// Set Delay for Win clock of BB
	if(delays) for(int t=0; t<kNCIUBoards; t++) SetDelayClk2Win1(delays[t],t);
	else AliError("Profil Clock2 Win1 Delays Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk2Win1(UShort_t delay, Int_t board)
{
	// Set Delay for Win clock of BB
	if(delay>1023){
		AliWarning(Form("Profil Clock2 Win1 Delay of board %d should be less 1023 is currently %d. Truncated to the first 10 bits",board, delay));
		delay = delay & 0x3FF;
	}
	if((board>=0) && (board<kNCIUBoards))	fDelayClk2Win1[board] = delay;
	else AliError(Form("Trying to write out of the array Board = %d",board));
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk1Win2(UShort_t* delays)
{
	// Set Delay for Win clock of BG
	if(delays) for(int t=0; t<kNCIUBoards; t++) SetDelayClk1Win2(delays[t],t);
	else AliError("Profil Clock1 Win2 Delays Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk1Win2(UShort_t delay, Int_t board)
{
	// Set Delay for Win clock of BG
	if(delay>1023){
		AliWarning(Form("Profil Clock1 Win2 Delay of board %d should be less 1023 is currently %d. Truncated to the first 10 bits",board, delay));
		delay = delay & 0x3FF;
	}
	if((board>=0) && (board<kNCIUBoards))	fDelayClk1Win2[board] = delay;
	else AliError(Form("Trying to write out of the array Board = %d",board));
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk2Win2(UShort_t* delays)
{
	// Set Delay for Win clock of BG
	if(delays) for(int t=0; t<kNCIUBoards; t++) SetDelayClk2Win2(delays[t],t);
	else AliError("Profil Clock2 Win2 Delays Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetDelayClk2Win2(UShort_t delay, Int_t board)
{
	// Set Delay for Win clock of BG
	if(delay>1023){
		AliWarning(Form("Profil Clock2 Win2 Delay of board %d should be less 1023 is currently %d. Truncated to the first 10 bits",board, delay));
		delay = delay & 0x3FF;
	}
	if((board>=0) && (board<kNCIUBoards))	fDelayClk2Win2[board] = delay;
	else AliError(Form("Trying to write out of the array Board = %d",board));
}
//________________________________________________________________
void AliVZEROTriggerData::SetLatchWin1(UShort_t *latchs){
	// Set Latch Win clock for BB
	if(latchs) for(int t=0; t<kNCIUBoards; t++) SetLatchWin1(latchs[t],t);
	else AliError("Latch Win1 profil Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetLatchWin1(UShort_t latch, Int_t board)
{
	// Set Latch Win clock for BB
	if((board>=0) && (board<kNCIUBoards)) {
		fLatchWin1[board] = latch;
		if(!IsClkValid(latch)) AliWarning(Form("Latch Win1 of board %d is not valid : %d",board,latch));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetLatchWin2(UShort_t *latchs){
	// Set Latch Win clock for BG
	if(latchs) for(int t=0; t<kNCIUBoards; t++) SetLatchWin2(latchs[t],t);
	else AliError("Latch Win2 profil Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetLatchWin2(UShort_t latch, Int_t board)
{
	// Set Latch Win clock for BG
	if((board>=0) && (board<kNCIUBoards)) {
		fLatchWin2[board] = latch;
		if(!IsClkValid(latch)) AliWarning(Form("Latch Win2 of board %d is not valid : %d",board,latch));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetResetWin1(UShort_t *resets){
	// Set Reset Win clock for BB
	if(resets) for(int t=0; t<kNCIUBoards; t++) SetResetWin1(resets[t],t);
	else AliError("Reset Win1 profil Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetResetWin1(UShort_t reset, Int_t board)
{
	// Set Reset Win clock for BB
	if((board>=0) && (board<kNCIUBoards)) {
		fResetWin1[board] = reset;
		if(!IsClkValid(reset)) AliWarning(Form("Reset Win1 of board %d is not valid : %d",board,reset));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetResetWin2(UShort_t *resets){
	// Set Reset Win clock for BG
	if(resets)  for(int t=0; t<kNCIUBoards; t++) SetResetWin2(resets[t],t);
	else AliError("Reset Win2 profil Not defined.");
}
//________________________________________________________________
void AliVZEROTriggerData::SetResetWin2(UShort_t reset, Int_t board)
{
	// Set Reset Win clock for BG
	if((board>=0) && (board<kNCIUBoards)) {
		fResetWin2[board] = reset;
		if(!IsClkValid(reset)) AliWarning(Form("Reset Win2 of board %d is not valid : %d",board,reset));
	}else {
		AliError(Form("Impossible to Write at Board %d",board));
	}
}
//________________________________________________________________
void AliVZEROTriggerData::SetPedestalSubtraction(Bool_t *peds){
	// Set Pedestal Subtraction Parameter
	if(peds)  for(int t=0; t<kNCIUBoards; t++) SetPedestalSubtraction(peds[t],t);
	else AliError("Pedestal Subtraction Not defined.");
	
}
//________________________________________________________________
void AliVZEROTriggerData::SetPedestalSubtraction(Bool_t ped, Int_t board)
{
	// Set Pedestal Subtraction Parameter
	if((board>=0) && (board<kNCIUBoards)) fPedestalSubtraction[board] = ped;
	else AliError(Form("Board %d is not valid",board));
}

//________________________________________________________________
Bool_t	AliVZEROTriggerData::IsClkValid(UShort_t clock) const {
	// Check if the given clock has a valid profil.
	Bool_t word[5];
	Bool_t isValid = kTRUE;
	Short_t risingEdge = 0;
	Short_t fallingEdge = 0;
	for(int i=0 ; i<5 ; i++) word[i] = (clock >> i) & 0x1;
	
	if(word[0] != word[4]){
		if(word[4]) fallingEdge++;
		else risingEdge++;
	}	
	for(int i=1 ; i<5 ; i++){
		if(word[i] != word[i-1]) {
			if(word[i-1]) fallingEdge++;
			else risingEdge++;
		}
	}
	if((fallingEdge>1)||(risingEdge>1)) isValid = kFALSE;
	if(((risingEdge==0)&&(fallingEdge==0)) &&(!word[0]))  isValid = kFALSE;
	return isValid;
}



 AliVZEROTriggerData.cxx:1
 AliVZEROTriggerData.cxx:2
 AliVZEROTriggerData.cxx:3
 AliVZEROTriggerData.cxx:4
 AliVZEROTriggerData.cxx:5
 AliVZEROTriggerData.cxx:6
 AliVZEROTriggerData.cxx:7
 AliVZEROTriggerData.cxx:8
 AliVZEROTriggerData.cxx:9
 AliVZEROTriggerData.cxx:10
 AliVZEROTriggerData.cxx:11
 AliVZEROTriggerData.cxx:12
 AliVZEROTriggerData.cxx:13
 AliVZEROTriggerData.cxx:14
 AliVZEROTriggerData.cxx:15
 AliVZEROTriggerData.cxx:16
 AliVZEROTriggerData.cxx:17
 AliVZEROTriggerData.cxx:18
 AliVZEROTriggerData.cxx:19
 AliVZEROTriggerData.cxx:20
 AliVZEROTriggerData.cxx:21
 AliVZEROTriggerData.cxx:22
 AliVZEROTriggerData.cxx:23
 AliVZEROTriggerData.cxx:24
 AliVZEROTriggerData.cxx:25
 AliVZEROTriggerData.cxx:26
 AliVZEROTriggerData.cxx:27
 AliVZEROTriggerData.cxx:28
 AliVZEROTriggerData.cxx:29
 AliVZEROTriggerData.cxx:30
 AliVZEROTriggerData.cxx:31
 AliVZEROTriggerData.cxx:32
 AliVZEROTriggerData.cxx:33
 AliVZEROTriggerData.cxx:34
 AliVZEROTriggerData.cxx:35
 AliVZEROTriggerData.cxx:36
 AliVZEROTriggerData.cxx:37
 AliVZEROTriggerData.cxx:38
 AliVZEROTriggerData.cxx:39
 AliVZEROTriggerData.cxx:40
 AliVZEROTriggerData.cxx:41
 AliVZEROTriggerData.cxx:42
 AliVZEROTriggerData.cxx:43
 AliVZEROTriggerData.cxx:44
 AliVZEROTriggerData.cxx:45
 AliVZEROTriggerData.cxx:46
 AliVZEROTriggerData.cxx:47
 AliVZEROTriggerData.cxx:48
 AliVZEROTriggerData.cxx:49
 AliVZEROTriggerData.cxx:50
 AliVZEROTriggerData.cxx:51
 AliVZEROTriggerData.cxx:52
 AliVZEROTriggerData.cxx:53
 AliVZEROTriggerData.cxx:54
 AliVZEROTriggerData.cxx:55
 AliVZEROTriggerData.cxx:56
 AliVZEROTriggerData.cxx:57
 AliVZEROTriggerData.cxx:58
 AliVZEROTriggerData.cxx:59
 AliVZEROTriggerData.cxx:60
 AliVZEROTriggerData.cxx:61
 AliVZEROTriggerData.cxx:62
 AliVZEROTriggerData.cxx:63
 AliVZEROTriggerData.cxx:64
 AliVZEROTriggerData.cxx:65
 AliVZEROTriggerData.cxx:66
 AliVZEROTriggerData.cxx:67
 AliVZEROTriggerData.cxx:68
 AliVZEROTriggerData.cxx:69
 AliVZEROTriggerData.cxx:70
 AliVZEROTriggerData.cxx:71
 AliVZEROTriggerData.cxx:72
 AliVZEROTriggerData.cxx:73
 AliVZEROTriggerData.cxx:74
 AliVZEROTriggerData.cxx:75
 AliVZEROTriggerData.cxx:76
 AliVZEROTriggerData.cxx:77
 AliVZEROTriggerData.cxx:78
 AliVZEROTriggerData.cxx:79
 AliVZEROTriggerData.cxx:80
 AliVZEROTriggerData.cxx:81
 AliVZEROTriggerData.cxx:82
 AliVZEROTriggerData.cxx:83
 AliVZEROTriggerData.cxx:84
 AliVZEROTriggerData.cxx:85
 AliVZEROTriggerData.cxx:86
 AliVZEROTriggerData.cxx:87
 AliVZEROTriggerData.cxx:88
 AliVZEROTriggerData.cxx:89
 AliVZEROTriggerData.cxx:90
 AliVZEROTriggerData.cxx:91
 AliVZEROTriggerData.cxx:92
 AliVZEROTriggerData.cxx:93
 AliVZEROTriggerData.cxx:94
 AliVZEROTriggerData.cxx:95
 AliVZEROTriggerData.cxx:96
 AliVZEROTriggerData.cxx:97
 AliVZEROTriggerData.cxx:98
 AliVZEROTriggerData.cxx:99
 AliVZEROTriggerData.cxx:100
 AliVZEROTriggerData.cxx:101
 AliVZEROTriggerData.cxx:102
 AliVZEROTriggerData.cxx:103
 AliVZEROTriggerData.cxx:104
 AliVZEROTriggerData.cxx:105
 AliVZEROTriggerData.cxx:106
 AliVZEROTriggerData.cxx:107
 AliVZEROTriggerData.cxx:108
 AliVZEROTriggerData.cxx:109
 AliVZEROTriggerData.cxx:110
 AliVZEROTriggerData.cxx:111
 AliVZEROTriggerData.cxx:112
 AliVZEROTriggerData.cxx:113
 AliVZEROTriggerData.cxx:114
 AliVZEROTriggerData.cxx:115
 AliVZEROTriggerData.cxx:116
 AliVZEROTriggerData.cxx:117
 AliVZEROTriggerData.cxx:118
 AliVZEROTriggerData.cxx:119
 AliVZEROTriggerData.cxx:120
 AliVZEROTriggerData.cxx:121
 AliVZEROTriggerData.cxx:122
 AliVZEROTriggerData.cxx:123
 AliVZEROTriggerData.cxx:124
 AliVZEROTriggerData.cxx:125
 AliVZEROTriggerData.cxx:126
 AliVZEROTriggerData.cxx:127
 AliVZEROTriggerData.cxx:128
 AliVZEROTriggerData.cxx:129
 AliVZEROTriggerData.cxx:130
 AliVZEROTriggerData.cxx:131
 AliVZEROTriggerData.cxx:132
 AliVZEROTriggerData.cxx:133
 AliVZEROTriggerData.cxx:134
 AliVZEROTriggerData.cxx:135
 AliVZEROTriggerData.cxx:136
 AliVZEROTriggerData.cxx:137
 AliVZEROTriggerData.cxx:138
 AliVZEROTriggerData.cxx:139
 AliVZEROTriggerData.cxx:140
 AliVZEROTriggerData.cxx:141
 AliVZEROTriggerData.cxx:142
 AliVZEROTriggerData.cxx:143
 AliVZEROTriggerData.cxx:144
 AliVZEROTriggerData.cxx:145
 AliVZEROTriggerData.cxx:146
 AliVZEROTriggerData.cxx:147
 AliVZEROTriggerData.cxx:148
 AliVZEROTriggerData.cxx:149
 AliVZEROTriggerData.cxx:150
 AliVZEROTriggerData.cxx:151
 AliVZEROTriggerData.cxx:152
 AliVZEROTriggerData.cxx:153
 AliVZEROTriggerData.cxx:154
 AliVZEROTriggerData.cxx:155
 AliVZEROTriggerData.cxx:156
 AliVZEROTriggerData.cxx:157
 AliVZEROTriggerData.cxx:158
 AliVZEROTriggerData.cxx:159
 AliVZEROTriggerData.cxx:160
 AliVZEROTriggerData.cxx:161
 AliVZEROTriggerData.cxx:162
 AliVZEROTriggerData.cxx:163
 AliVZEROTriggerData.cxx:164
 AliVZEROTriggerData.cxx:165
 AliVZEROTriggerData.cxx:166
 AliVZEROTriggerData.cxx:167
 AliVZEROTriggerData.cxx:168
 AliVZEROTriggerData.cxx:169
 AliVZEROTriggerData.cxx:170
 AliVZEROTriggerData.cxx:171
 AliVZEROTriggerData.cxx:172
 AliVZEROTriggerData.cxx:173
 AliVZEROTriggerData.cxx:174
 AliVZEROTriggerData.cxx:175
 AliVZEROTriggerData.cxx:176
 AliVZEROTriggerData.cxx:177
 AliVZEROTriggerData.cxx:178
 AliVZEROTriggerData.cxx:179
 AliVZEROTriggerData.cxx:180
 AliVZEROTriggerData.cxx:181
 AliVZEROTriggerData.cxx:182
 AliVZEROTriggerData.cxx:183
 AliVZEROTriggerData.cxx:184
 AliVZEROTriggerData.cxx:185
 AliVZEROTriggerData.cxx:186
 AliVZEROTriggerData.cxx:187
 AliVZEROTriggerData.cxx:188
 AliVZEROTriggerData.cxx:189
 AliVZEROTriggerData.cxx:190
 AliVZEROTriggerData.cxx:191
 AliVZEROTriggerData.cxx:192
 AliVZEROTriggerData.cxx:193
 AliVZEROTriggerData.cxx:194
 AliVZEROTriggerData.cxx:195
 AliVZEROTriggerData.cxx:196
 AliVZEROTriggerData.cxx:197
 AliVZEROTriggerData.cxx:198
 AliVZEROTriggerData.cxx:199
 AliVZEROTriggerData.cxx:200
 AliVZEROTriggerData.cxx:201
 AliVZEROTriggerData.cxx:202
 AliVZEROTriggerData.cxx:203
 AliVZEROTriggerData.cxx:204
 AliVZEROTriggerData.cxx:205
 AliVZEROTriggerData.cxx:206
 AliVZEROTriggerData.cxx:207
 AliVZEROTriggerData.cxx:208
 AliVZEROTriggerData.cxx:209
 AliVZEROTriggerData.cxx:210
 AliVZEROTriggerData.cxx:211
 AliVZEROTriggerData.cxx:212
 AliVZEROTriggerData.cxx:213
 AliVZEROTriggerData.cxx:214
 AliVZEROTriggerData.cxx:215
 AliVZEROTriggerData.cxx:216
 AliVZEROTriggerData.cxx:217
 AliVZEROTriggerData.cxx:218
 AliVZEROTriggerData.cxx:219
 AliVZEROTriggerData.cxx:220
 AliVZEROTriggerData.cxx:221
 AliVZEROTriggerData.cxx:222
 AliVZEROTriggerData.cxx:223
 AliVZEROTriggerData.cxx:224
 AliVZEROTriggerData.cxx:225
 AliVZEROTriggerData.cxx:226
 AliVZEROTriggerData.cxx:227
 AliVZEROTriggerData.cxx:228
 AliVZEROTriggerData.cxx:229
 AliVZEROTriggerData.cxx:230
 AliVZEROTriggerData.cxx:231
 AliVZEROTriggerData.cxx:232
 AliVZEROTriggerData.cxx:233
 AliVZEROTriggerData.cxx:234
 AliVZEROTriggerData.cxx:235
 AliVZEROTriggerData.cxx:236
 AliVZEROTriggerData.cxx:237
 AliVZEROTriggerData.cxx:238
 AliVZEROTriggerData.cxx:239
 AliVZEROTriggerData.cxx:240
 AliVZEROTriggerData.cxx:241
 AliVZEROTriggerData.cxx:242
 AliVZEROTriggerData.cxx:243
 AliVZEROTriggerData.cxx:244
 AliVZEROTriggerData.cxx:245
 AliVZEROTriggerData.cxx:246
 AliVZEROTriggerData.cxx:247
 AliVZEROTriggerData.cxx:248
 AliVZEROTriggerData.cxx:249
 AliVZEROTriggerData.cxx:250
 AliVZEROTriggerData.cxx:251
 AliVZEROTriggerData.cxx:252
 AliVZEROTriggerData.cxx:253
 AliVZEROTriggerData.cxx:254
 AliVZEROTriggerData.cxx:255
 AliVZEROTriggerData.cxx:256
 AliVZEROTriggerData.cxx:257
 AliVZEROTriggerData.cxx:258
 AliVZEROTriggerData.cxx:259
 AliVZEROTriggerData.cxx:260
 AliVZEROTriggerData.cxx:261
 AliVZEROTriggerData.cxx:262
 AliVZEROTriggerData.cxx:263
 AliVZEROTriggerData.cxx:264
 AliVZEROTriggerData.cxx:265
 AliVZEROTriggerData.cxx:266
 AliVZEROTriggerData.cxx:267
 AliVZEROTriggerData.cxx:268
 AliVZEROTriggerData.cxx:269
 AliVZEROTriggerData.cxx:270
 AliVZEROTriggerData.cxx:271
 AliVZEROTriggerData.cxx:272
 AliVZEROTriggerData.cxx:273
 AliVZEROTriggerData.cxx:274
 AliVZEROTriggerData.cxx:275
 AliVZEROTriggerData.cxx:276
 AliVZEROTriggerData.cxx:277
 AliVZEROTriggerData.cxx:278
 AliVZEROTriggerData.cxx:279
 AliVZEROTriggerData.cxx:280
 AliVZEROTriggerData.cxx:281
 AliVZEROTriggerData.cxx:282
 AliVZEROTriggerData.cxx:283
 AliVZEROTriggerData.cxx:284
 AliVZEROTriggerData.cxx:285
 AliVZEROTriggerData.cxx:286
 AliVZEROTriggerData.cxx:287
 AliVZEROTriggerData.cxx:288
 AliVZEROTriggerData.cxx:289
 AliVZEROTriggerData.cxx:290
 AliVZEROTriggerData.cxx:291
 AliVZEROTriggerData.cxx:292
 AliVZEROTriggerData.cxx:293
 AliVZEROTriggerData.cxx:294
 AliVZEROTriggerData.cxx:295
 AliVZEROTriggerData.cxx:296
 AliVZEROTriggerData.cxx:297
 AliVZEROTriggerData.cxx:298
 AliVZEROTriggerData.cxx:299
 AliVZEROTriggerData.cxx:300
 AliVZEROTriggerData.cxx:301
 AliVZEROTriggerData.cxx:302
 AliVZEROTriggerData.cxx:303
 AliVZEROTriggerData.cxx:304
 AliVZEROTriggerData.cxx:305
 AliVZEROTriggerData.cxx:306
 AliVZEROTriggerData.cxx:307
 AliVZEROTriggerData.cxx:308
 AliVZEROTriggerData.cxx:309
 AliVZEROTriggerData.cxx:310
 AliVZEROTriggerData.cxx:311
 AliVZEROTriggerData.cxx:312
 AliVZEROTriggerData.cxx:313
 AliVZEROTriggerData.cxx:314
 AliVZEROTriggerData.cxx:315
 AliVZEROTriggerData.cxx:316
 AliVZEROTriggerData.cxx:317
 AliVZEROTriggerData.cxx:318
 AliVZEROTriggerData.cxx:319
 AliVZEROTriggerData.cxx:320
 AliVZEROTriggerData.cxx:321
 AliVZEROTriggerData.cxx:322
 AliVZEROTriggerData.cxx:323
 AliVZEROTriggerData.cxx:324
 AliVZEROTriggerData.cxx:325
 AliVZEROTriggerData.cxx:326
 AliVZEROTriggerData.cxx:327
 AliVZEROTriggerData.cxx:328
 AliVZEROTriggerData.cxx:329
 AliVZEROTriggerData.cxx:330
 AliVZEROTriggerData.cxx:331
 AliVZEROTriggerData.cxx:332
 AliVZEROTriggerData.cxx:333
 AliVZEROTriggerData.cxx:334
 AliVZEROTriggerData.cxx:335
 AliVZEROTriggerData.cxx:336
 AliVZEROTriggerData.cxx:337
 AliVZEROTriggerData.cxx:338
 AliVZEROTriggerData.cxx:339
 AliVZEROTriggerData.cxx:340
 AliVZEROTriggerData.cxx:341
 AliVZEROTriggerData.cxx:342
 AliVZEROTriggerData.cxx:343
 AliVZEROTriggerData.cxx:344
 AliVZEROTriggerData.cxx:345
 AliVZEROTriggerData.cxx:346
 AliVZEROTriggerData.cxx:347
 AliVZEROTriggerData.cxx:348
 AliVZEROTriggerData.cxx:349
 AliVZEROTriggerData.cxx:350
 AliVZEROTriggerData.cxx:351
 AliVZEROTriggerData.cxx:352
 AliVZEROTriggerData.cxx:353
 AliVZEROTriggerData.cxx:354
 AliVZEROTriggerData.cxx:355
 AliVZEROTriggerData.cxx:356
 AliVZEROTriggerData.cxx:357
 AliVZEROTriggerData.cxx:358
 AliVZEROTriggerData.cxx:359
 AliVZEROTriggerData.cxx:360
 AliVZEROTriggerData.cxx:361
 AliVZEROTriggerData.cxx:362
 AliVZEROTriggerData.cxx:363
 AliVZEROTriggerData.cxx:364
 AliVZEROTriggerData.cxx:365
 AliVZEROTriggerData.cxx:366
 AliVZEROTriggerData.cxx:367
 AliVZEROTriggerData.cxx:368
 AliVZEROTriggerData.cxx:369
 AliVZEROTriggerData.cxx:370
 AliVZEROTriggerData.cxx:371
 AliVZEROTriggerData.cxx:372
 AliVZEROTriggerData.cxx:373
 AliVZEROTriggerData.cxx:374
 AliVZEROTriggerData.cxx:375
 AliVZEROTriggerData.cxx:376
 AliVZEROTriggerData.cxx:377
 AliVZEROTriggerData.cxx:378
 AliVZEROTriggerData.cxx:379
 AliVZEROTriggerData.cxx:380
 AliVZEROTriggerData.cxx:381
 AliVZEROTriggerData.cxx:382
 AliVZEROTriggerData.cxx:383
 AliVZEROTriggerData.cxx:384
 AliVZEROTriggerData.cxx:385
 AliVZEROTriggerData.cxx:386
 AliVZEROTriggerData.cxx:387
 AliVZEROTriggerData.cxx:388
 AliVZEROTriggerData.cxx:389
 AliVZEROTriggerData.cxx:390
 AliVZEROTriggerData.cxx:391
 AliVZEROTriggerData.cxx:392
 AliVZEROTriggerData.cxx:393
 AliVZEROTriggerData.cxx:394
 AliVZEROTriggerData.cxx:395
 AliVZEROTriggerData.cxx:396
 AliVZEROTriggerData.cxx:397
 AliVZEROTriggerData.cxx:398
 AliVZEROTriggerData.cxx:399
 AliVZEROTriggerData.cxx:400
 AliVZEROTriggerData.cxx:401
 AliVZEROTriggerData.cxx:402
 AliVZEROTriggerData.cxx:403
 AliVZEROTriggerData.cxx:404
 AliVZEROTriggerData.cxx:405
 AliVZEROTriggerData.cxx:406
 AliVZEROTriggerData.cxx:407
 AliVZEROTriggerData.cxx:408
 AliVZEROTriggerData.cxx:409
 AliVZEROTriggerData.cxx:410
 AliVZEROTriggerData.cxx:411
 AliVZEROTriggerData.cxx:412
 AliVZEROTriggerData.cxx:413
 AliVZEROTriggerData.cxx:414
 AliVZEROTriggerData.cxx:415
 AliVZEROTriggerData.cxx:416
 AliVZEROTriggerData.cxx:417
 AliVZEROTriggerData.cxx:418
 AliVZEROTriggerData.cxx:419
 AliVZEROTriggerData.cxx:420
 AliVZEROTriggerData.cxx:421
 AliVZEROTriggerData.cxx:422
 AliVZEROTriggerData.cxx:423
 AliVZEROTriggerData.cxx:424
 AliVZEROTriggerData.cxx:425
 AliVZEROTriggerData.cxx:426
 AliVZEROTriggerData.cxx:427
 AliVZEROTriggerData.cxx:428
 AliVZEROTriggerData.cxx:429
 AliVZEROTriggerData.cxx:430
 AliVZEROTriggerData.cxx:431
 AliVZEROTriggerData.cxx:432
 AliVZEROTriggerData.cxx:433
 AliVZEROTriggerData.cxx:434
 AliVZEROTriggerData.cxx:435
 AliVZEROTriggerData.cxx:436
 AliVZEROTriggerData.cxx:437
 AliVZEROTriggerData.cxx:438
 AliVZEROTriggerData.cxx:439
 AliVZEROTriggerData.cxx:440
 AliVZEROTriggerData.cxx:441
 AliVZEROTriggerData.cxx:442
 AliVZEROTriggerData.cxx:443
 AliVZEROTriggerData.cxx:444
 AliVZEROTriggerData.cxx:445
 AliVZEROTriggerData.cxx:446
 AliVZEROTriggerData.cxx:447
 AliVZEROTriggerData.cxx:448
 AliVZEROTriggerData.cxx:449
 AliVZEROTriggerData.cxx:450
 AliVZEROTriggerData.cxx:451
 AliVZEROTriggerData.cxx:452
 AliVZEROTriggerData.cxx:453
 AliVZEROTriggerData.cxx:454
 AliVZEROTriggerData.cxx:455
 AliVZEROTriggerData.cxx:456
 AliVZEROTriggerData.cxx:457
 AliVZEROTriggerData.cxx:458
 AliVZEROTriggerData.cxx:459
 AliVZEROTriggerData.cxx:460
 AliVZEROTriggerData.cxx:461
 AliVZEROTriggerData.cxx:462
 AliVZEROTriggerData.cxx:463
 AliVZEROTriggerData.cxx:464
 AliVZEROTriggerData.cxx:465
 AliVZEROTriggerData.cxx:466
 AliVZEROTriggerData.cxx:467
 AliVZEROTriggerData.cxx:468
 AliVZEROTriggerData.cxx:469
 AliVZEROTriggerData.cxx:470
 AliVZEROTriggerData.cxx:471
 AliVZEROTriggerData.cxx:472
 AliVZEROTriggerData.cxx:473
 AliVZEROTriggerData.cxx:474
 AliVZEROTriggerData.cxx:475
 AliVZEROTriggerData.cxx:476
 AliVZEROTriggerData.cxx:477
 AliVZEROTriggerData.cxx:478
 AliVZEROTriggerData.cxx:479
 AliVZEROTriggerData.cxx:480
 AliVZEROTriggerData.cxx:481
 AliVZEROTriggerData.cxx:482
 AliVZEROTriggerData.cxx:483
 AliVZEROTriggerData.cxx:484
 AliVZEROTriggerData.cxx:485
 AliVZEROTriggerData.cxx:486
 AliVZEROTriggerData.cxx:487
 AliVZEROTriggerData.cxx:488
 AliVZEROTriggerData.cxx:489
 AliVZEROTriggerData.cxx:490
 AliVZEROTriggerData.cxx:491
 AliVZEROTriggerData.cxx:492
 AliVZEROTriggerData.cxx:493
 AliVZEROTriggerData.cxx:494
 AliVZEROTriggerData.cxx:495
 AliVZEROTriggerData.cxx:496
 AliVZEROTriggerData.cxx:497
 AliVZEROTriggerData.cxx:498
 AliVZEROTriggerData.cxx:499
 AliVZEROTriggerData.cxx:500
 AliVZEROTriggerData.cxx:501
 AliVZEROTriggerData.cxx:502
 AliVZEROTriggerData.cxx:503
 AliVZEROTriggerData.cxx:504
 AliVZEROTriggerData.cxx:505
 AliVZEROTriggerData.cxx:506
 AliVZEROTriggerData.cxx:507
 AliVZEROTriggerData.cxx:508
 AliVZEROTriggerData.cxx:509
 AliVZEROTriggerData.cxx:510
 AliVZEROTriggerData.cxx:511
 AliVZEROTriggerData.cxx:512
 AliVZEROTriggerData.cxx:513
 AliVZEROTriggerData.cxx:514
 AliVZEROTriggerData.cxx:515
 AliVZEROTriggerData.cxx:516
 AliVZEROTriggerData.cxx:517
 AliVZEROTriggerData.cxx:518
 AliVZEROTriggerData.cxx:519
 AliVZEROTriggerData.cxx:520
 AliVZEROTriggerData.cxx:521
 AliVZEROTriggerData.cxx:522
 AliVZEROTriggerData.cxx:523
 AliVZEROTriggerData.cxx:524
 AliVZEROTriggerData.cxx:525
 AliVZEROTriggerData.cxx:526
 AliVZEROTriggerData.cxx:527
 AliVZEROTriggerData.cxx:528
 AliVZEROTriggerData.cxx:529
 AliVZEROTriggerData.cxx:530
 AliVZEROTriggerData.cxx:531
 AliVZEROTriggerData.cxx:532
 AliVZEROTriggerData.cxx:533
 AliVZEROTriggerData.cxx:534
 AliVZEROTriggerData.cxx:535
 AliVZEROTriggerData.cxx:536
 AliVZEROTriggerData.cxx:537
 AliVZEROTriggerData.cxx:538
 AliVZEROTriggerData.cxx:539
 AliVZEROTriggerData.cxx:540
 AliVZEROTriggerData.cxx:541
 AliVZEROTriggerData.cxx:542
 AliVZEROTriggerData.cxx:543
 AliVZEROTriggerData.cxx:544
 AliVZEROTriggerData.cxx:545
 AliVZEROTriggerData.cxx:546
 AliVZEROTriggerData.cxx:547
 AliVZEROTriggerData.cxx:548
 AliVZEROTriggerData.cxx:549
 AliVZEROTriggerData.cxx:550
 AliVZEROTriggerData.cxx:551
 AliVZEROTriggerData.cxx:552
 AliVZEROTriggerData.cxx:553
 AliVZEROTriggerData.cxx:554
 AliVZEROTriggerData.cxx:555
 AliVZEROTriggerData.cxx:556