#include <TMath.h>
#include <TObjString.h>
#include <TMap.h>
#include <TH1F.h>
#include <TH2F.h>
#include "AliDCSValue.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliVZEROCalibData.h"
#include "AliVZERODataDCS.h"
#include "AliVZEROConst.h"
#include "AliLog.h"
ClassImp(AliVZEROCalibData)
AliVZEROCalibData::AliVZEROCalibData():
fLightYields(NULL),
fPMGainsA(NULL),
fPMGainsB(NULL)
{
for(int t=0; t<64; t++) {
fMeanHV[t] = 100.0;
fWidthHV[t] = 0.0;
fTimeOffset[t] = 5.0;
fTimeGain[t] = 1.0;
fDeadChannel[t]= kFALSE;
fDiscriThr[t] = 2.5;
}
for(int t=0; t<128; t++) {
fPedestal[t] = 0.0;
fSigma[t] = 0.0;
fADCmean[t] = 0.0;
fADCsigma[t] = 0.0;
}
for(int i=0; i<kNCIUBoards ;i++) {
fTimeResolution[i] = 25./256.;
fWidthResolution[i] = 25./64.;
fMatchWindow[i] = 4;
fSearchWindow[i] = 16;
fTriggerCountOffset[i] = 3247;
fRollOver[i] = 3563;
}
}
void AliVZEROCalibData::Reset()
{
}
AliVZEROCalibData::AliVZEROCalibData(const char* name):
fLightYields(NULL),
fPMGainsA(NULL),
fPMGainsB(NULL)
{
TString namst = "Calib_";
namst += name;
SetName(namst.Data());
SetTitle(namst.Data());
for(int t=0; t<64; t++) {
fMeanHV[t] = 100.0;
fWidthHV[t] = 0.0;
fTimeOffset[t] = 5.0;
fTimeGain[t] = 1.0;
fDeadChannel[t]= kFALSE;
fDiscriThr[t] = 2.5;
}
for(int t=0; t<128; t++) {
fPedestal[t] = 0.0;
fSigma[t] = 0.0;
fADCmean[t] = 0.0;
fADCsigma[t] = 0.0;
}
for(int i=0; i<kNCIUBoards ;i++) {
fTimeResolution[i] = 25./256.;
fWidthResolution[i] = 25./64.;
fMatchWindow[i] = 4;
fSearchWindow[i] = 16;
fTriggerCountOffset[i] = 3247;
fRollOver[i] = 3563;
}
}
AliVZEROCalibData::AliVZEROCalibData(const AliVZEROCalibData& calibda) :
TNamed(calibda),
fLightYields(NULL),
fPMGainsA(NULL),
fPMGainsB(NULL)
{
SetName(calibda.GetName());
SetTitle(calibda.GetName());
for(int t=0; t<128; t++) {
fPedestal[t] = calibda.GetPedestal(t);
fSigma[t] = calibda.GetSigma(t);
fADCmean[t] = calibda.GetADCmean(t);
fADCsigma[t] = calibda.GetADCsigma(t); }
for(int t=0; t<64; t++) {
fMeanHV[t] = calibda.GetMeanHV(t);
fWidthHV[t] = calibda.GetWidthHV(t);
fTimeOffset[t] = calibda.GetTimeOffset(t);
fTimeGain[t] = calibda.GetTimeGain(t);
fDeadChannel[t] = calibda.IsChannelDead(t);
fDiscriThr[t] = calibda.GetDiscriThr(t);
}
for(int i=0; i<kNCIUBoards ;i++) {
fTimeResolution[i] = calibda.GetTimeResolution(i);
fWidthResolution[i] = calibda.GetWidthResolution(i);
fMatchWindow[i] = calibda.GetMatchWindow(i);
fSearchWindow[i] = calibda.GetSearchWindow(i);
fTriggerCountOffset[i] = calibda.GetTriggerCountOffset(i);
fRollOver[i] = calibda.GetRollOver(i);
}
}
AliVZEROCalibData &AliVZEROCalibData::operator =(const AliVZEROCalibData& calibda)
{
SetName(calibda.GetName());
SetTitle(calibda.GetName());
for(int t=0; t<128; t++) {
fPedestal[t] = calibda.GetPedestal(t);
fSigma[t] = calibda.GetSigma(t);
fADCmean[t] = calibda.GetADCmean(t);
fADCsigma[t] = calibda.GetADCsigma(t); }
for(int t=0; t<64; t++) {
fMeanHV[t] = calibda.GetMeanHV(t);
fWidthHV[t] = calibda.GetWidthHV(t);
fTimeOffset[t] = calibda.GetTimeOffset(t);
fTimeGain[t] = calibda.GetTimeGain(t);
fDeadChannel[t] = calibda.IsChannelDead(t);
fDiscriThr[t] = calibda.GetDiscriThr(t);
}
for(int i=0; i<kNCIUBoards ;i++) {
fTimeResolution[i] = calibda.GetTimeResolution(i);
fWidthResolution[i] = calibda.GetWidthResolution(i);
fMatchWindow[i] = calibda.GetMatchWindow(i);
fSearchWindow[i] = calibda.GetSearchWindow(i);
fTriggerCountOffset[i] = calibda.GetTriggerCountOffset(i);
fRollOver[i] = calibda.GetRollOver(i);
}
return *this;
}
AliVZEROCalibData::~AliVZEROCalibData()
{
if (fLightYields)
delete [] fLightYields;
if (fPMGainsA)
delete [] fPMGainsA;
if (fPMGainsB)
delete [] fPMGainsB;
}
void AliVZEROCalibData::FillDCSData(AliVZERODataDCS * data){
TMap * params = data->GetFEEParameters();
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);
}
}
SetMeanHV(data->GetMeanHV());
SetWidthHV(data->GetWidthHV());
SetDeadMap(data->GetDeadMap());
}
void AliVZEROCalibData::SetParameter(TString name, Int_t val){
Int_t iBoard = -1;
Int_t iChannel = -1;
TSeqCollection* nameSplit = name.Tokenize("/");
TObjString * boardName = (TObjString *)nameSplit->At(2);
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("TimeResolution")) SetTimeResolution((UShort_t) val,iBoard);
else if(name.Contains("WidthResolution")) SetWidthResolution((UShort_t) val,iBoard);
else if(name.Contains("MatchWindow")) SetMatchWindow((UInt_t) val,iBoard);
else if(name.Contains("SearchWindow")) SetSearchWindow((UInt_t) val,iBoard);
else if(name.Contains("TriggerCountOffset")) SetTriggerCountOffset((UInt_t) val,iBoard);
else if(name.Contains("RollOver")) SetRollOver((UInt_t) val,iBoard);
else if(name.Contains("DelayHit")) SetTimeOffset(0.01*(Float_t)val,iBoard,(iChannel-1));
else if(name.Contains("DiscriThr")) SetDiscriThr(((Float_t)val-2040.)/112.,iBoard,(iChannel-1));
else AliError(Form("No Setter found for FEE parameter : %s",name.Data()));
delete nameSplit;
}
void AliVZEROCalibData::SetPedestal(const Float_t* Pedestal)
{
if(Pedestal) for(int t=0; t<128; t++) fPedestal[t] = Pedestal[t];
else for(int t=0; t<128; t++) fPedestal[t] = 0.0;
}
void AliVZEROCalibData::SetSigma(const Float_t* Sigma)
{
if(Sigma) for(int t=0; t<128; t++) fSigma[t] = Sigma[t];
else for(int t=0; t<128; t++) fSigma[t] = 0.0;
}
void AliVZEROCalibData::SetADCmean(const Float_t* ADCmean)
{
if(ADCmean) for(int t=0; t<128; t++) fADCmean[t] = ADCmean[t];
else for(int t=0; t<128; t++) fADCmean[t] = 0.0;
}
void AliVZEROCalibData::SetADCsigma(const Float_t* ADCsigma)
{
if(ADCsigma) for(int t=0; t<128; t++) fADCsigma[t] = ADCsigma[t];
else for(int t=0; t<128; t++) fADCsigma[t] = 0.0;
}
void AliVZEROCalibData::SetMeanHV(const Float_t* MeanHV)
{
if(MeanHV) for(int t=0; t<64; t++) fMeanHV[t] = MeanHV[t];
else for(int t=0; t<64; t++) fMeanHV[t] = 0.0;
}
void AliVZEROCalibData::SetWidthHV(const Float_t* WidthHV)
{
if(WidthHV) for(int t=0; t<64; t++) fWidthHV[t] = WidthHV[t];
else for(int t=0; t<64; t++) fWidthHV[t] = 0.0;
}
void AliVZEROCalibData::SetDeadMap(const Bool_t* deadMap)
{
if(deadMap) for(int t=0; t<64; t++) fDeadChannel[t] = deadMap[t];
else for(int t=0; t<64; t++) fDeadChannel[t] = kFALSE;
}
void AliVZEROCalibData::SetTimeOffset(Float_t val, Int_t board, Int_t channel)
{
Int_t ch = AliVZEROCalibData::GetOfflineChannelNumber(board,channel);
if(ch >= 0){
fTimeOffset[ch]=val;
AliInfo(Form("Time offset for channel %d set to %f",ch,fTimeOffset[ch]));
}
else
AliError("Board/Channel numbers are not valid");
}
void AliVZEROCalibData::SetTimeOffset(const Float_t* TimeOffset)
{
if(TimeOffset) for(int t=0; t<64; t++) fTimeOffset[t] = TimeOffset[t];
else for(int t=0; t<64; t++) fTimeOffset[t] = 5.0;
}
void AliVZEROCalibData::SetTimeGain(const Float_t* TimeGain)
{
if(TimeGain) for(int t=0; t<64; t++) fTimeGain[t] = TimeGain[t];
else for(int t=0; t<64; t++) fTimeGain[t] = 0.0;
}
Float_t AliVZEROCalibData::GetMIPperADC(Int_t channel) {
Float_t nPhPerMIP = (channel < 32) ? 6950 : 33690;
return 1./(nPhPerMIP*GetLightYields(channel)*0.18*TMath::Qe()*GetGain(channel)/kChargePerADC);
}
Float_t AliVZEROCalibData::GetHV(Int_t channel, Float_t adcPerMip) {
if (!fPMGainsA) InitPMGains();
if (adcPerMip <= 0) return 0;
Float_t nPhPerMIP = (channel < 32) ? 6950 : 33690;
Float_t gain = adcPerMip/(nPhPerMIP*GetLightYields(channel)*0.18*TMath::Qe())*kChargePerADC;
return TMath::Exp((TMath::Log(gain)-fPMGainsA[channel])/fPMGainsB[channel]);
}
Float_t AliVZEROCalibData::GetGain(Int_t channel)
{
if (!fPMGainsA) InitPMGains();
Float_t hv = fMeanHV[channel];
Float_t gain = 0;
if (hv>0)
gain = TMath::Exp(fPMGainsA[channel]+fPMGainsB[channel]*TMath::Log(hv));
return gain;
}
void AliVZEROCalibData::SetTimeResolution(UShort_t *resols){
if(resols) for(int t=0; t<kNCIUBoards; t++) SetTimeResolution(resols[t],t);
else AliError("Time Resolution not defined.");
}
void AliVZEROCalibData::SetTimeResolution(UShort_t resol, Int_t board)
{
if((board>=0) && (board<kNCIUBoards)) {
switch(resol){
case 0:
fTimeResolution[board] = 25./256.;
break;
case 1:
fTimeResolution[board] = 25./128.;
break;
case 2:
fTimeResolution[board] = 25./64.;
break;
case 3:
fTimeResolution[board] = 25./32.;
break;
case 4:
fTimeResolution[board] = 25./16.;
break;
case 5:
fTimeResolution[board] = 25./8.;
break;
case 6:
fTimeResolution[board] = 6.25;
break;
case 7:
fTimeResolution[board] = 12.5;
break;
}
AliInfo(Form("Time Resolution of board %d set to %f",board,fTimeResolution[board]));
} else AliError(Form("Board %d is not valid",board));
}
void AliVZEROCalibData::SetWidthResolution(UShort_t *resols){
if(resols) for(int t=0; t<kNCIUBoards; t++) SetWidthResolution(resols[t],t);
else AliError("Width Resolution not defined.");
}
void AliVZEROCalibData::SetWidthResolution(UShort_t resol, Int_t board)
{
if((board>=0) && (board<kNCIUBoards)){
switch(resol){
case 0:
fWidthResolution[board] = 25./256.;
break;
case 1:
fWidthResolution[board] = 25./128.;
break;
case 2:
fWidthResolution[board] = 25./64.;
break;
case 3:
fWidthResolution[board] = 25./32.;
break;
case 4:
fWidthResolution[board] = 25./16.;
break;
case 5:
fWidthResolution[board] = 25./8.;
break;
case 6:
fWidthResolution[board] = 6.25;
break;
case 7:
fWidthResolution[board] = 12.5;
break;
case 8:
fWidthResolution[board] = 25.;
break;
case 9:
fWidthResolution[board] = 50.;
break;
case 10:
fWidthResolution[board] = 100.;
break;
case 11:
fWidthResolution[board] = 200.;
break;
case 12:
fWidthResolution[board] = 400.;
break;
case 13:
fWidthResolution[board] = 800.;
break;
}
AliInfo(Form("Width Resolution of board %d set to %f",board,fWidthResolution[board]));
}else AliError(Form("Board %d is not valid",board));
}
void AliVZEROCalibData::SetMatchWindow(UInt_t *windows)
{
if(windows) for(Int_t b=0; b<kNCIUBoards; b++) SetMatchWindow(windows[b],b);
else AliError("Match windows not defined.");
}
void AliVZEROCalibData::SetMatchWindow(UInt_t window, Int_t board)
{
if((board>=0) && (board<kNCIUBoards)){
fMatchWindow[board] = window;
AliInfo(Form("Match window of board %d set to %d",board,fMatchWindow[board]));
}
else
AliError(Form("Board %d is not valid",board));
}
void AliVZEROCalibData::SetSearchWindow(UInt_t *windows)
{
if(windows) for(Int_t b=0; b<kNCIUBoards; b++) SetSearchWindow(windows[b],b);
else AliError("Search windows not defined.");
}
void AliVZEROCalibData::SetSearchWindow(UInt_t window, Int_t board)
{
if((board>=0) && (board<kNCIUBoards)){
fSearchWindow[board] = window;
AliInfo(Form("Search window of board %d set to %d",board,fSearchWindow[board]));
}
else
AliError(Form("Board %d is not valid",board));
}
void AliVZEROCalibData::SetTriggerCountOffset(UInt_t *offsets)
{
if(offsets) for(Int_t b=0; b<kNCIUBoards; b++) SetTriggerCountOffset(offsets[b],b);
else AliError("Trigger count offsets not defined.");
}
void AliVZEROCalibData::SetTriggerCountOffset(UInt_t offset, Int_t board)
{
if((board>=0) && (board<kNCIUBoards)){
fTriggerCountOffset[board] = offset;
AliInfo(Form("Trigger-count offset of board %d set to %d",board,fTriggerCountOffset[board]));
}
else
AliError(Form("Board %d is not valid",board));
}
void AliVZEROCalibData::SetRollOver(UInt_t *offsets)
{
if(offsets) for(Int_t b=0; b<kNCIUBoards; b++) SetRollOver(offsets[b],b);
else AliError("Roll-over offsets not defined.");
}
void AliVZEROCalibData::SetRollOver(UInt_t offset, Int_t board)
{
if((board>=0) && (board<kNCIUBoards)){
fRollOver[board] = offset;
AliInfo(Form("Roll-over offset of board %d set to %d",board,fRollOver[board]));
}
else
AliError(Form("Board %d is not valid",board));
}
void AliVZEROCalibData::SetDiscriThr(Float_t thr, Int_t board, Int_t channel)
{
Int_t ch = AliVZEROCalibData::GetOfflineChannelNumber(board,channel);
if(ch >= 0){
if (thr > 0) {
fDiscriThr[ch]=thr;
AliInfo(Form("Discriminator threshold for channel %d set to %f",ch,fDiscriThr[ch]));
}
else {
AliWarning(Form("Ignore wrong threshold value (%f) for channel %d !",thr,ch));
}
}
else
AliError("Board/Channel numbers are not valid");
}
void AliVZEROCalibData::SetDiscriThr(const Float_t* thresholds)
{
if(thresholds) for(int t=0; t<64; t++) fDiscriThr[t] = thresholds[t];
else for(int t=0; t<64; t++) fDiscriThr[t] = 2.5;
}
Int_t AliVZEROCalibData::GetOfflineChannelNumber(Int_t board, Int_t channel)
{
if (board < 0 || board >= 8) {
AliErrorClass(Form("Wrong FEE board number: %d",board));
return -1;
}
if (channel < 0 || channel >= 8) {
AliErrorClass(Form("Wrong FEE channel number: %d",channel));
return -1;
}
Int_t offCh = (board < 4) ? (8 * board + 32) : (8 * board -32);
offCh += (7 - channel);
return offCh;
}
Int_t AliVZEROCalibData::GetBoardNumber(Int_t channel)
{
if (channel >= 0 && channel < 32) return (channel / 8 + 4);
if (channel >=32 && channel < 64) return (channel / 8 - 4);
AliErrorClass(Form("Wrong channel index: %d",channel));
return -1;
}
Int_t AliVZEROCalibData::GetFEEChannelNumber(Int_t channel)
{
if (channel >= 0 && channel < 64) return (7 - (channel % 8));
AliErrorClass(Form("Wrong channel index: %d",channel));
return -1;
}
Float_t AliVZEROCalibData::GetLightYields(Int_t channel)
{
if (!fLightYields) InitLightYields();
if (channel >= 0 && channel < 64) {
return fLightYields[channel];
}
AliError(Form("Wrong channel index: %d",channel));
return 0;
}
void AliVZEROCalibData::InitLightYields()
{
if (fLightYields) return;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("VZERO/Calib/LightYields");
if (!entry) AliFatal("VZERO light yields are not found in OCDB !");
TH1F *yields = (TH1F*)entry->GetObject();
fLightYields = new Float_t[64];
for(Int_t i = 0 ; i < 64; ++i) {
fLightYields[i] = yields->GetBinContent(i+1);
}
}
void AliVZEROCalibData::InitPMGains()
{
if (fPMGainsA) return;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("VZERO/Calib/PMGains");
if (!entry) AliFatal("VZERO PM gains are not found in OCDB !");
TH2F *gains = (TH2F*)entry->GetObject();
fPMGainsA = new Float_t[64];
fPMGainsB = new Float_t[64];
for(Int_t i = 0 ; i < 64; ++i) {
fPMGainsA[i] = gains->GetBinContent(i+1,1);
fPMGainsB[i] = gains->GetBinContent(i+1,2);
}
}
Float_t AliVZEROCalibData::GetCalibDiscriThr(Int_t channel, Bool_t scaled)
{
Float_t thr = GetDiscriThr(channel);
Float_t calThr = 0;
if (thr <= 1.)
calThr = 3.1;
else if (thr >= 2.)
calThr = (3.1+1.15*thr-1.7);
else
calThr = (3.1-0.3*thr+0.3*thr*thr);
if (scaled) calThr *= 4./(3.1+1.15*4.-1.7);
return calThr;
}
AliVZEROCalibData.cxx:100 AliVZEROCalibData.cxx:101 AliVZEROCalibData.cxx:102 AliVZEROCalibData.cxx:103 AliVZEROCalibData.cxx:104 AliVZEROCalibData.cxx:105 AliVZEROCalibData.cxx:106 AliVZEROCalibData.cxx:107 AliVZEROCalibData.cxx:108 AliVZEROCalibData.cxx:109 AliVZEROCalibData.cxx:110 AliVZEROCalibData.cxx:111 AliVZEROCalibData.cxx:112 AliVZEROCalibData.cxx:113 AliVZEROCalibData.cxx:114 AliVZEROCalibData.cxx:115 AliVZEROCalibData.cxx:116 AliVZEROCalibData.cxx:117 AliVZEROCalibData.cxx:118 AliVZEROCalibData.cxx:119 AliVZEROCalibData.cxx:120 AliVZEROCalibData.cxx:121 AliVZEROCalibData.cxx:122 AliVZEROCalibData.cxx:123 AliVZEROCalibData.cxx:124 AliVZEROCalibData.cxx:125 AliVZEROCalibData.cxx:126 AliVZEROCalibData.cxx:127 AliVZEROCalibData.cxx:128 AliVZEROCalibData.cxx:129 AliVZEROCalibData.cxx:130 AliVZEROCalibData.cxx:131 AliVZEROCalibData.cxx:132 AliVZEROCalibData.cxx:133 AliVZEROCalibData.cxx:134 AliVZEROCalibData.cxx:135 AliVZEROCalibData.cxx:136 AliVZEROCalibData.cxx:137 AliVZEROCalibData.cxx:138 AliVZEROCalibData.cxx:139 AliVZEROCalibData.cxx:140 AliVZEROCalibData.cxx:141 AliVZEROCalibData.cxx:142 AliVZEROCalibData.cxx:143 AliVZEROCalibData.cxx:144 AliVZEROCalibData.cxx:145 AliVZEROCalibData.cxx:146 AliVZEROCalibData.cxx:147 AliVZEROCalibData.cxx:148 AliVZEROCalibData.cxx:149 AliVZEROCalibData.cxx:150 AliVZEROCalibData.cxx:151 AliVZEROCalibData.cxx:152 AliVZEROCalibData.cxx:153 AliVZEROCalibData.cxx:154 AliVZEROCalibData.cxx:155 AliVZEROCalibData.cxx:156 AliVZEROCalibData.cxx:157 AliVZEROCalibData.cxx:158 AliVZEROCalibData.cxx:159 AliVZEROCalibData.cxx:160 AliVZEROCalibData.cxx:161 AliVZEROCalibData.cxx:162 AliVZEROCalibData.cxx:163 AliVZEROCalibData.cxx:164 AliVZEROCalibData.cxx:165 AliVZEROCalibData.cxx:166 AliVZEROCalibData.cxx:167 AliVZEROCalibData.cxx:168 AliVZEROCalibData.cxx:169 AliVZEROCalibData.cxx:170 AliVZEROCalibData.cxx:171 AliVZEROCalibData.cxx:172 AliVZEROCalibData.cxx:173 AliVZEROCalibData.cxx:174 AliVZEROCalibData.cxx:175 AliVZEROCalibData.cxx:176 AliVZEROCalibData.cxx:177 AliVZEROCalibData.cxx:178 AliVZEROCalibData.cxx:179 AliVZEROCalibData.cxx:180 AliVZEROCalibData.cxx:181 AliVZEROCalibData.cxx:182 AliVZEROCalibData.cxx:183 AliVZEROCalibData.cxx:184 AliVZEROCalibData.cxx:185 AliVZEROCalibData.cxx:186 AliVZEROCalibData.cxx:187 AliVZEROCalibData.cxx:188 AliVZEROCalibData.cxx:189 AliVZEROCalibData.cxx:190 AliVZEROCalibData.cxx:191 AliVZEROCalibData.cxx:192 AliVZEROCalibData.cxx:193 AliVZEROCalibData.cxx:194 AliVZEROCalibData.cxx:195 AliVZEROCalibData.cxx:196 AliVZEROCalibData.cxx:197 AliVZEROCalibData.cxx:198 AliVZEROCalibData.cxx:199 AliVZEROCalibData.cxx:200 AliVZEROCalibData.cxx:201 AliVZEROCalibData.cxx:202 AliVZEROCalibData.cxx:203 AliVZEROCalibData.cxx:204 AliVZEROCalibData.cxx:205 AliVZEROCalibData.cxx:206 AliVZEROCalibData.cxx:207 AliVZEROCalibData.cxx:208 AliVZEROCalibData.cxx:209 AliVZEROCalibData.cxx:210 AliVZEROCalibData.cxx:211 AliVZEROCalibData.cxx:212 AliVZEROCalibData.cxx:213 AliVZEROCalibData.cxx:214 AliVZEROCalibData.cxx:215 AliVZEROCalibData.cxx:216 AliVZEROCalibData.cxx:217 AliVZEROCalibData.cxx:218 AliVZEROCalibData.cxx:219 AliVZEROCalibData.cxx:220 AliVZEROCalibData.cxx:221 AliVZEROCalibData.cxx:222 AliVZEROCalibData.cxx:223 AliVZEROCalibData.cxx:224 AliVZEROCalibData.cxx:225 AliVZEROCalibData.cxx:226 AliVZEROCalibData.cxx:227 AliVZEROCalibData.cxx:228 AliVZEROCalibData.cxx:229 AliVZEROCalibData.cxx:230 AliVZEROCalibData.cxx:231 AliVZEROCalibData.cxx:232 AliVZEROCalibData.cxx:233 AliVZEROCalibData.cxx:234 AliVZEROCalibData.cxx:235 AliVZEROCalibData.cxx:236 AliVZEROCalibData.cxx:237 AliVZEROCalibData.cxx:238 AliVZEROCalibData.cxx:239 AliVZEROCalibData.cxx:240 AliVZEROCalibData.cxx:241 AliVZEROCalibData.cxx:242 AliVZEROCalibData.cxx:243 AliVZEROCalibData.cxx:244 AliVZEROCalibData.cxx:245 AliVZEROCalibData.cxx:246 AliVZEROCalibData.cxx:247 AliVZEROCalibData.cxx:248 AliVZEROCalibData.cxx:249 AliVZEROCalibData.cxx:250 AliVZEROCalibData.cxx:251 AliVZEROCalibData.cxx:252 AliVZEROCalibData.cxx:253 AliVZEROCalibData.cxx:254 AliVZEROCalibData.cxx:255 AliVZEROCalibData.cxx:256 AliVZEROCalibData.cxx:257 AliVZEROCalibData.cxx:258 AliVZEROCalibData.cxx:259 AliVZEROCalibData.cxx:260 AliVZEROCalibData.cxx:261 AliVZEROCalibData.cxx:262 AliVZEROCalibData.cxx:263 AliVZEROCalibData.cxx:264 AliVZEROCalibData.cxx:265 AliVZEROCalibData.cxx:266 AliVZEROCalibData.cxx:267 AliVZEROCalibData.cxx:268 AliVZEROCalibData.cxx:269 AliVZEROCalibData.cxx:270 AliVZEROCalibData.cxx:271 AliVZEROCalibData.cxx:272 AliVZEROCalibData.cxx:273 AliVZEROCalibData.cxx:274 AliVZEROCalibData.cxx:275 AliVZEROCalibData.cxx:276 AliVZEROCalibData.cxx:277 AliVZEROCalibData.cxx:278 AliVZEROCalibData.cxx:279 AliVZEROCalibData.cxx:280 AliVZEROCalibData.cxx:281 AliVZEROCalibData.cxx:282 AliVZEROCalibData.cxx:283 AliVZEROCalibData.cxx:284 AliVZEROCalibData.cxx:285 AliVZEROCalibData.cxx:286 AliVZEROCalibData.cxx:287 AliVZEROCalibData.cxx:288 AliVZEROCalibData.cxx:289 AliVZEROCalibData.cxx:290 AliVZEROCalibData.cxx:291 AliVZEROCalibData.cxx:292 AliVZEROCalibData.cxx:293 AliVZEROCalibData.cxx:294 AliVZEROCalibData.cxx:295 AliVZEROCalibData.cxx:296 AliVZEROCalibData.cxx:297 AliVZEROCalibData.cxx:298 AliVZEROCalibData.cxx:299 AliVZEROCalibData.cxx:300 AliVZEROCalibData.cxx:301 AliVZEROCalibData.cxx:302 AliVZEROCalibData.cxx:303 AliVZEROCalibData.cxx:304 AliVZEROCalibData.cxx:305 AliVZEROCalibData.cxx:306 AliVZEROCalibData.cxx:307 AliVZEROCalibData.cxx:308 AliVZEROCalibData.cxx:309 AliVZEROCalibData.cxx:310 AliVZEROCalibData.cxx:311 AliVZEROCalibData.cxx:312 AliVZEROCalibData.cxx:313 AliVZEROCalibData.cxx:314 AliVZEROCalibData.cxx:315 AliVZEROCalibData.cxx:316 AliVZEROCalibData.cxx:317 AliVZEROCalibData.cxx:318 AliVZEROCalibData.cxx:319 AliVZEROCalibData.cxx:320 AliVZEROCalibData.cxx:321 AliVZEROCalibData.cxx:322 AliVZEROCalibData.cxx:323 AliVZEROCalibData.cxx:324 AliVZEROCalibData.cxx:325 AliVZEROCalibData.cxx:326 AliVZEROCalibData.cxx:327 AliVZEROCalibData.cxx:328 AliVZEROCalibData.cxx:329 AliVZEROCalibData.cxx:330 AliVZEROCalibData.cxx:331 AliVZEROCalibData.cxx:332 AliVZEROCalibData.cxx:333 AliVZEROCalibData.cxx:334 AliVZEROCalibData.cxx:335 AliVZEROCalibData.cxx:336 AliVZEROCalibData.cxx:337 AliVZEROCalibData.cxx:338 AliVZEROCalibData.cxx:339 AliVZEROCalibData.cxx:340 AliVZEROCalibData.cxx:341 AliVZEROCalibData.cxx:342 AliVZEROCalibData.cxx:343 AliVZEROCalibData.cxx:344 AliVZEROCalibData.cxx:345 AliVZEROCalibData.cxx:346 AliVZEROCalibData.cxx:347 AliVZEROCalibData.cxx:348 AliVZEROCalibData.cxx:349 AliVZEROCalibData.cxx:350 AliVZEROCalibData.cxx:351 AliVZEROCalibData.cxx:352 AliVZEROCalibData.cxx:353 AliVZEROCalibData.cxx:354 AliVZEROCalibData.cxx:355 AliVZEROCalibData.cxx:356 AliVZEROCalibData.cxx:357 AliVZEROCalibData.cxx:358 AliVZEROCalibData.cxx:359 AliVZEROCalibData.cxx:360 AliVZEROCalibData.cxx:361 AliVZEROCalibData.cxx:362 AliVZEROCalibData.cxx:363 AliVZEROCalibData.cxx:364 AliVZEROCalibData.cxx:365 AliVZEROCalibData.cxx:366 AliVZEROCalibData.cxx:367 AliVZEROCalibData.cxx:368 AliVZEROCalibData.cxx:369 AliVZEROCalibData.cxx:370 AliVZEROCalibData.cxx:371 AliVZEROCalibData.cxx:372 AliVZEROCalibData.cxx:373 AliVZEROCalibData.cxx:374 AliVZEROCalibData.cxx:375 AliVZEROCalibData.cxx:376 AliVZEROCalibData.cxx:377 AliVZEROCalibData.cxx:378 AliVZEROCalibData.cxx:379 AliVZEROCalibData.cxx:380 AliVZEROCalibData.cxx:381 AliVZEROCalibData.cxx:382 AliVZEROCalibData.cxx:383 AliVZEROCalibData.cxx:384 AliVZEROCalibData.cxx:385 AliVZEROCalibData.cxx:386 AliVZEROCalibData.cxx:387 AliVZEROCalibData.cxx:388 AliVZEROCalibData.cxx:389 AliVZEROCalibData.cxx:390 AliVZEROCalibData.cxx:391 AliVZEROCalibData.cxx:392 AliVZEROCalibData.cxx:393 AliVZEROCalibData.cxx:394 AliVZEROCalibData.cxx:395 AliVZEROCalibData.cxx:396 AliVZEROCalibData.cxx:397 AliVZEROCalibData.cxx:398 AliVZEROCalibData.cxx:399 AliVZEROCalibData.cxx:400 AliVZEROCalibData.cxx:401 AliVZEROCalibData.cxx:402 AliVZEROCalibData.cxx:403 AliVZEROCalibData.cxx:404 AliVZEROCalibData.cxx:405 AliVZEROCalibData.cxx:406 AliVZEROCalibData.cxx:407 AliVZEROCalibData.cxx:408 AliVZEROCalibData.cxx:409 AliVZEROCalibData.cxx:410 AliVZEROCalibData.cxx:411 AliVZEROCalibData.cxx:412 AliVZEROCalibData.cxx:413 AliVZEROCalibData.cxx:414 AliVZEROCalibData.cxx:415 AliVZEROCalibData.cxx:416 AliVZEROCalibData.cxx:417 AliVZEROCalibData.cxx:418 AliVZEROCalibData.cxx:419 AliVZEROCalibData.cxx:420 AliVZEROCalibData.cxx:421 AliVZEROCalibData.cxx:422 AliVZEROCalibData.cxx:423 AliVZEROCalibData.cxx:424 AliVZEROCalibData.cxx:425 AliVZEROCalibData.cxx:426 AliVZEROCalibData.cxx:427 AliVZEROCalibData.cxx:428 AliVZEROCalibData.cxx:429 AliVZEROCalibData.cxx:430 AliVZEROCalibData.cxx:431 AliVZEROCalibData.cxx:432 AliVZEROCalibData.cxx:433 AliVZEROCalibData.cxx:434 AliVZEROCalibData.cxx:435 AliVZEROCalibData.cxx:436 AliVZEROCalibData.cxx:437 AliVZEROCalibData.cxx:438 AliVZEROCalibData.cxx:439 AliVZEROCalibData.cxx:440 AliVZEROCalibData.cxx:441 AliVZEROCalibData.cxx:442 AliVZEROCalibData.cxx:443 AliVZEROCalibData.cxx:444 AliVZEROCalibData.cxx:445 AliVZEROCalibData.cxx:446 AliVZEROCalibData.cxx:447 AliVZEROCalibData.cxx:448 AliVZEROCalibData.cxx:449 AliVZEROCalibData.cxx:450 AliVZEROCalibData.cxx:451 AliVZEROCalibData.cxx:452 AliVZEROCalibData.cxx:453 AliVZEROCalibData.cxx:454 AliVZEROCalibData.cxx:455 AliVZEROCalibData.cxx:456 AliVZEROCalibData.cxx:457 AliVZEROCalibData.cxx:458 AliVZEROCalibData.cxx:459 AliVZEROCalibData.cxx:460 AliVZEROCalibData.cxx:461 AliVZEROCalibData.cxx:462 AliVZEROCalibData.cxx:463 AliVZEROCalibData.cxx:464 AliVZEROCalibData.cxx:465 AliVZEROCalibData.cxx:466 AliVZEROCalibData.cxx:467 AliVZEROCalibData.cxx:468 AliVZEROCalibData.cxx:469 AliVZEROCalibData.cxx:470 AliVZEROCalibData.cxx:471 AliVZEROCalibData.cxx:472 AliVZEROCalibData.cxx:473 AliVZEROCalibData.cxx:474 AliVZEROCalibData.cxx:475 AliVZEROCalibData.cxx:476 AliVZEROCalibData.cxx:477 AliVZEROCalibData.cxx:478 AliVZEROCalibData.cxx:479 AliVZEROCalibData.cxx:480 AliVZEROCalibData.cxx:481 AliVZEROCalibData.cxx:482 AliVZEROCalibData.cxx:483 AliVZEROCalibData.cxx:484 AliVZEROCalibData.cxx:485 AliVZEROCalibData.cxx:486 AliVZEROCalibData.cxx:487 AliVZEROCalibData.cxx:488 AliVZEROCalibData.cxx:489 AliVZEROCalibData.cxx:490 AliVZEROCalibData.cxx:491 AliVZEROCalibData.cxx:492 AliVZEROCalibData.cxx:493 AliVZEROCalibData.cxx:494 AliVZEROCalibData.cxx:495 AliVZEROCalibData.cxx:496 AliVZEROCalibData.cxx:497 AliVZEROCalibData.cxx:498 AliVZEROCalibData.cxx:499 AliVZEROCalibData.cxx:500 AliVZEROCalibData.cxx:501 AliVZEROCalibData.cxx:502 AliVZEROCalibData.cxx:503 AliVZEROCalibData.cxx:504 AliVZEROCalibData.cxx:505 AliVZEROCalibData.cxx:506 AliVZEROCalibData.cxx:507 AliVZEROCalibData.cxx:508 AliVZEROCalibData.cxx:509 AliVZEROCalibData.cxx:510 AliVZEROCalibData.cxx:511 AliVZEROCalibData.cxx:512 AliVZEROCalibData.cxx:513 AliVZEROCalibData.cxx:514 AliVZEROCalibData.cxx:515 AliVZEROCalibData.cxx:516 AliVZEROCalibData.cxx:517 AliVZEROCalibData.cxx:518 AliVZEROCalibData.cxx:519 AliVZEROCalibData.cxx:520 AliVZEROCalibData.cxx:521 AliVZEROCalibData.cxx:522 AliVZEROCalibData.cxx:523 AliVZEROCalibData.cxx:524 AliVZEROCalibData.cxx:525 AliVZEROCalibData.cxx:526 AliVZEROCalibData.cxx:527 AliVZEROCalibData.cxx:528 AliVZEROCalibData.cxx:529 AliVZEROCalibData.cxx:530 AliVZEROCalibData.cxx:531 AliVZEROCalibData.cxx:532 AliVZEROCalibData.cxx:533 AliVZEROCalibData.cxx:534 AliVZEROCalibData.cxx:535 AliVZEROCalibData.cxx:536 AliVZEROCalibData.cxx:537 AliVZEROCalibData.cxx:538 AliVZEROCalibData.cxx:539 AliVZEROCalibData.cxx:540 AliVZEROCalibData.cxx:541 AliVZEROCalibData.cxx:542 AliVZEROCalibData.cxx:543 AliVZEROCalibData.cxx:544 AliVZEROCalibData.cxx:545 AliVZEROCalibData.cxx:546 AliVZEROCalibData.cxx:547 AliVZEROCalibData.cxx:548 AliVZEROCalibData.cxx:549 AliVZEROCalibData.cxx:550 AliVZEROCalibData.cxx:551 AliVZEROCalibData.cxx:552 AliVZEROCalibData.cxx:553 AliVZEROCalibData.cxx:554 AliVZEROCalibData.cxx:555 AliVZEROCalibData.cxx:556 AliVZEROCalibData.cxx:557 AliVZEROCalibData.cxx:558 AliVZEROCalibData.cxx:559 AliVZEROCalibData.cxx:560 AliVZEROCalibData.cxx:561 AliVZEROCalibData.cxx:562 AliVZEROCalibData.cxx:563 AliVZEROCalibData.cxx:564 AliVZEROCalibData.cxx:565 AliVZEROCalibData.cxx:566 AliVZEROCalibData.cxx:567 AliVZEROCalibData.cxx:568 AliVZEROCalibData.cxx:569 AliVZEROCalibData.cxx:570 AliVZEROCalibData.cxx:571 AliVZEROCalibData.cxx:572 AliVZEROCalibData.cxx:573 AliVZEROCalibData.cxx:574 AliVZEROCalibData.cxx:575 AliVZEROCalibData.cxx:576 AliVZEROCalibData.cxx:577 AliVZEROCalibData.cxx:578 AliVZEROCalibData.cxx:579 AliVZEROCalibData.cxx:580 AliVZEROCalibData.cxx:581 AliVZEROCalibData.cxx:582 AliVZEROCalibData.cxx:583 AliVZEROCalibData.cxx:584 AliVZEROCalibData.cxx:585 AliVZEROCalibData.cxx:586 AliVZEROCalibData.cxx:587 AliVZEROCalibData.cxx:588 AliVZEROCalibData.cxx:589 AliVZEROCalibData.cxx:590 AliVZEROCalibData.cxx:591 AliVZEROCalibData.cxx:592 AliVZEROCalibData.cxx:593 AliVZEROCalibData.cxx:594 AliVZEROCalibData.cxx:595 AliVZEROCalibData.cxx:596 AliVZEROCalibData.cxx:597 AliVZEROCalibData.cxx:598 AliVZEROCalibData.cxx:599 AliVZEROCalibData.cxx:600 AliVZEROCalibData.cxx:601 AliVZEROCalibData.cxx:602 AliVZEROCalibData.cxx:603 AliVZEROCalibData.cxx:604 AliVZEROCalibData.cxx:605 AliVZEROCalibData.cxx:606 AliVZEROCalibData.cxx:607 AliVZEROCalibData.cxx:608 AliVZEROCalibData.cxx:609 AliVZEROCalibData.cxx:610 AliVZEROCalibData.cxx:611 AliVZEROCalibData.cxx:612 AliVZEROCalibData.cxx:613 AliVZEROCalibData.cxx:614 AliVZEROCalibData.cxx:615 AliVZEROCalibData.cxx:616 AliVZEROCalibData.cxx:617 AliVZEROCalibData.cxx:618 AliVZEROCalibData.cxx:619 AliVZEROCalibData.cxx:620 AliVZEROCalibData.cxx:621 AliVZEROCalibData.cxx:622 AliVZEROCalibData.cxx:623 AliVZEROCalibData.cxx:624 AliVZEROCalibData.cxx:625 AliVZEROCalibData.cxx:626 AliVZEROCalibData.cxx:627 AliVZEROCalibData.cxx:628 AliVZEROCalibData.cxx:629 AliVZEROCalibData.cxx:630 AliVZEROCalibData.cxx:631 AliVZEROCalibData.cxx:632 AliVZEROCalibData.cxx:633 AliVZEROCalibData.cxx:634 AliVZEROCalibData.cxx:635 AliVZEROCalibData.cxx:636 AliVZEROCalibData.cxx:637 AliVZEROCalibData.cxx:638 AliVZEROCalibData.cxx:639 AliVZEROCalibData.cxx:640 AliVZEROCalibData.cxx:641 AliVZEROCalibData.cxx:642 AliVZEROCalibData.cxx:643 AliVZEROCalibData.cxx:644 AliVZEROCalibData.cxx:645 AliVZEROCalibData.cxx:646 AliVZEROCalibData.cxx:647 AliVZEROCalibData.cxx:648 AliVZEROCalibData.cxx:649 AliVZEROCalibData.cxx:650 AliVZEROCalibData.cxx:651 AliVZEROCalibData.cxx:652 AliVZEROCalibData.cxx:653 AliVZEROCalibData.cxx:654 AliVZEROCalibData.cxx:655 AliVZEROCalibData.cxx:656 AliVZEROCalibData.cxx:657 AliVZEROCalibData.cxx:658 AliVZEROCalibData.cxx:659 AliVZEROCalibData.cxx:660 AliVZEROCalibData.cxx:661 AliVZEROCalibData.cxx:662 AliVZEROCalibData.cxx:663 AliVZEROCalibData.cxx:664 AliVZEROCalibData.cxx:665 AliVZEROCalibData.cxx:666 AliVZEROCalibData.cxx:667 AliVZEROCalibData.cxx:668 AliVZEROCalibData.cxx:669 AliVZEROCalibData.cxx:670 AliVZEROCalibData.cxx:671 AliVZEROCalibData.cxx:672 AliVZEROCalibData.cxx:673 AliVZEROCalibData.cxx:674 AliVZEROCalibData.cxx:675 AliVZEROCalibData.cxx:676 AliVZEROCalibData.cxx:677 AliVZEROCalibData.cxx:678 AliVZEROCalibData.cxx:679 AliVZEROCalibData.cxx:680 AliVZEROCalibData.cxx:681 AliVZEROCalibData.cxx:682 AliVZEROCalibData.cxx:683 AliVZEROCalibData.cxx:684 AliVZEROCalibData.cxx:685 AliVZEROCalibData.cxx:686 AliVZEROCalibData.cxx:687 AliVZEROCalibData.cxx:688 AliVZEROCalibData.cxx:689 AliVZEROCalibData.cxx:690 AliVZEROCalibData.cxx:691 AliVZEROCalibData.cxx:692 AliVZEROCalibData.cxx:693 AliVZEROCalibData.cxx:694 AliVZEROCalibData.cxx:695 AliVZEROCalibData.cxx:696 AliVZEROCalibData.cxx:697