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

/*
$Log: AliTOFDataDCS.cxx,v $
Revision 1.9  2007/05/04 14:02:45  decaro
AliTOFDataDCS::Draw(Option_t *) method declared const: compiling warning suppression

Revision 1.8  2007/05/03 09:45:09  decaro
Coding convention: RN11 violation -> suppression

Revision 1.7  2007/05/02 14:09:39  arcelli
Retrieval of Env. Temperature removed (will get it from the GRP)

Revision 1.6  2007/04/04 17:19:19  arcelli
Moved some printout to debug level

Revision 1.5  2007/02/20 15:57:00  decaro
Raw data update: to read the TOF raw data defined in UNPACKED mode

Revision 1.4  2007/02/19 15:41:55  decaro
Coding convention: few corrections

Revision 1.3  2007/01/24 11:19:58  arcelli
Modify ProcessData to return a logical (CZ)

Revision 1.2  2006/12/18 18:17:38  arcelli
Updated Aliases for DCS TOF datapoints (C.Zampolli)

Revision 1.1  2006/10/26 09:10:52  arcelli
Class for handling the TOF DCS data in the Shuttle (C.Zampolli)

*/  

// AliTOFDataDCS class
// main aim to introduce the aliases for the TOF DCS
// data points to be then
// stored in the OCDB, and to process them. 
// Process() method called by TOFPrepr

#include "TString.h"
#include "TTimeStamp.h"
#include "TMap.h"
#include "TCanvas.h"

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

#include "AliTOFDataDCS.h"
#include "AliTOFFormatDCS.h"

class TH2;
class AliCDBMetaData;
class TDatime;

ClassImp(AliTOFDataDCS)

//---------------------------------------------------------------
AliTOFDataDCS::AliTOFDataDCS():
	TObject(),
	fRun(0),
	fStartTime(0),
	fEndTime(0),
	fStartTimeDCSQuery(0),
	fEndTimeDCSQuery(0),
	fIsProcessed(kFALSE),
	fFDR(kFALSE)
{

  // main constructor 

  for(int i=0;i<kNHV;i++) {
    fHVvp[i]=0x0;
    fHVvn[i]=0x0;
    fHVip[i]=0x0;
    fHVin[i]=0x0;
  }
    
  
}

//---------------------------------------------------------------
AliTOFDataDCS::AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime, UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery):
	TObject(),
	fRun(nRun),
	fStartTime(startTime),
	fEndTime(endTime),
	fStartTimeDCSQuery(startTimeDCSQuery),
	fEndTimeDCSQuery(endTimeDCSQuery),
	fIsProcessed(kFALSE),
	fFDR(kFALSE)
{

  // constructor with arguments

	AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", nRun,
	TTimeStamp(startTime).AsString(),
	TTimeStamp(endTime).AsString(), 
	TTimeStamp(startTimeDCSQuery).AsString(), 
        TTimeStamp(endTimeDCSQuery).AsString()));

	Init();

}

//---------------------------------------------------------------

AliTOFDataDCS::AliTOFDataDCS(const AliTOFDataDCS & data):
  TObject(data), 
  fRun(data.fRun),
  fStartTime(data.fStartTime),
  fEndTime(data.fEndTime),
  fStartTimeDCSQuery(data.fStartTimeDCSQuery),
  fEndTimeDCSQuery(data.fEndTimeDCSQuery),
  fIsProcessed(data.fIsProcessed),
  fFDR(data.fFDR)

{

  // copy constructor

  for(int i=0;i<kNAliases;i++) {
    fAliasNames[i]=data.fAliasNames[i];
  }
 
  for(int i=0;i<kNHV;i++) {
    fHVvp[i]=data.fHVvp[i];
    fHVvn[i]=data.fHVvn[i];
    fHVip[i]=data.fHVip[i];
    fHVin[i]=data.fHVin[i];
  }
  
    
}
//---------------------------------------------------------------

AliTOFDataDCS& AliTOFDataDCS:: operator=(const AliTOFDataDCS & data) { 

  // assignment operator

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

  TObject::operator=(data);
  fRun=data.GetRun();
  fStartTime=data.GetStartTime();
  fEndTime=data.GetEndTime();
  fStartTimeDCSQuery=data.GetStartTimeDCSQuery();
  fEndTimeDCSQuery=data.GetEndTimeDCSQuery();

  for(int i=0;i<kNAliases;i++) {
    fAliasNames[i]=data.GetAliasName(i);
  }

  for(int i=0;i<kNHV;i++) {
    fHVvp[i]=data.GetHVvp(i);
    fHVvn[i]=data.GetHVvn(i);
    fHVip[i]=data.GetHVip(i);
    fHVin[i]=data.GetHVin(i);
  }


  return *this;
}
//---------------------------------------------------------------
AliTOFDataDCS::~AliTOFDataDCS() {

  // destructor

  for(int i=0;i<kNHV;i++) {
    delete fHVvp[i];
    fHVvp[i]=0;
    delete fHVvn[i];
    fHVvn[i]=0;
    delete fHVip[i];
    fHVip[i]=0;
    delete fHVin[i];
    fHVin[i]=0;
  }
  
}

//---------------------------------------------------------------
Bool_t AliTOFDataDCS::ProcessData(TMap& aliasMap){

  // method to process the data

  if(!(fAliasNames[0])) Init();

  Float_t val=0;
  Float_t val0=0;
  Float_t val1=0;
  Float_t time=0; 
  Float_t time0=0; 
  Float_t time1=0; 
  Float_t delta[2];
  Float_t timedelta[2];

  AliInfo(Form(" Start Time = %i",fStartTime));
  AliInfo(Form(" End Time = %i",fEndTime));
  AliInfo(Form(" Start Time DCS Query= %i",fStartTimeDCSQuery));
  AliInfo(Form(" End Time DCS Query= %i",fEndTimeDCSQuery));

  if (fEndTime==fStartTime){
    AliError(Form(" Run with null time length: start time = %i = end time = %i",fStartTime,fEndTime));
    return kFALSE;
  }

  TObjArray *aliasArr;
  AliDCSValue* aValue;
  AliDCSValue* aValue0;
  AliDCSValue* aValue1;

  // starting loop on aliases
  for(int j=0; j<kNAliases; j++){
    for (Int_t k=0;k<2;k++) {
      delta[k]=0;
      timedelta[k]=0;
    }
    //AliInfo(Form("j = %i, with alias = %s",j,fAliasNames[j].Data()));
    aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
    if(!aliasArr){
      AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
      if (!fFDR){
	return kFALSE;    // returning only in case we are not in a FDR run
      }
      else {
	continue;
      }
    }

    Introduce(j, aliasArr);
    
    if(aliasArr->GetEntries()==0){
      AliError(Form("Alias %s has no entries! Nothing will be stored",
		    fAliasNames[j].Data()));
      continue;
    }
    if(aliasArr->GetEntries() == 1){
      AliWarning(Form("Alias %s has just %d entries! Only first value will be stored",
		    fAliasNames[j].Data(),aliasArr->GetEntries()));
      aValue0 = (AliDCSValue*) aliasArr->At(0);
      val0 = aValue0->GetFloat();
      time0 = (Float_t) (aValue0->GetTimeStamp());
      if (j<kNHV){
	fHVvp[j]->SetFloat(0,val0);
	fHVvp[j]->SetTimeStampFloat(0,time0);
      }
      else if (j<kNHV*2){
	fHVvn[j-kNHV]->SetFloat(0,val0);
	fHVvn[j-kNHV]->SetTimeStampFloat(0,time0);
      }
      else if (j<kNHV*3){
	fHVip[j-2*kNHV]->SetFloat(0,val0);
	fHVip[j-2*kNHV]->SetTimeStampFloat(0,time0);
      }
      else if (j<kNHV*4){
	fHVin[j-3*kNHV]->SetFloat(0,val0);
	fHVin[j-3*kNHV]->SetTimeStampFloat(0,time0);
      }
      continue;
    }
    if(aliasArr->GetEntries()==2){
      AliWarning(Form("Alias %s has just %d entries! Storing first and second entry only and the delta between these two",
		    fAliasNames[j].Data(),aliasArr->GetEntries()));
      aValue0 = (AliDCSValue*) aliasArr->At(0);
      val0 = aValue0->GetFloat();
      time0 = (Float_t) (aValue0->GetTimeStamp());
      aValue1 = (AliDCSValue*) aliasArr->At(1);
      val1 = aValue1->GetFloat();
      time1 = (Float_t) (aValue1->GetTimeStamp());
      if (j<kNHV){
	fHVvp[j]->SetFloat(0,val0);
	fHVvp[j]->SetTimeStampFloat(0,time0);
	fHVvp[j]->SetFloat(1,val1);
	fHVvp[j]->SetTimeStampFloat(1,time1);
	fHVvp[j]->SetDelta(0,TMath::Abs(val1-val0));
	fHVvp[j]->SetTimeStampDelta(0,time1-time0);
      }
      else if (j<kNHV*2){
	fHVvn[j-kNHV]->SetFloat(0,val0);
	fHVvn[j-kNHV]->SetTimeStampFloat(0,time0);
	fHVvn[j-kNHV]->SetFloat(1,val1);
	fHVvn[j-kNHV]->SetTimeStampFloat(1,time1);
	fHVvn[j-kNHV]->SetDelta(0,TMath::Abs(val1-val0));
	fHVvn[j-kNHV]->SetTimeStampDelta(0,time1-time0);
      }
      else if (j<kNHV*3){
	fHVip[j-2*kNHV]->SetFloat(0,val0);
	fHVip[j-2*kNHV]->SetTimeStampFloat(0,time0);
	fHVip[j-2*kNHV]->SetFloat(1,val1);
	fHVip[j-2*kNHV]->SetTimeStampFloat(1,time1);
	fHVip[j-2*kNHV]->SetDelta(0,TMath::Abs(val1-val0));
	fHVip[j-2*kNHV]->SetTimeStampDelta(0,time1-time0);
      }
      else if (j<kNHV*4){
	fHVin[j-3*kNHV]->SetFloat(0,val0);
	fHVin[j-3*kNHV]->SetTimeStampFloat(0,time0);
	fHVin[j-3*kNHV]->SetFloat(1,val1);
	fHVin[j-3*kNHV]->SetTimeStampFloat(1,time1);
	fHVin[j-3*kNHV]->SetDelta(0,TMath::Abs(val1-val0));
	fHVin[j-3*kNHV]->SetTimeStampDelta(0,time1-time0);
      }
      continue;
    }
    
    TIter iterarray(aliasArr);
    
    Int_t nentries = aliasArr->GetEntries();
    Int_t deltaTimeStamp = (Int_t) nentries/3;
    Int_t deltaTimeStamp1 = (Int_t) nentries/2;

    // filling aliases with 10 floats+1 Usign
    Int_t index = 0;
    for (Int_t k=0;k<3;k++){
      index = deltaTimeStamp*k;
      if (k==0) {
	index=0;
      }
      else if (k==1) {
	index=deltaTimeStamp1;
      } 
      else if (k==2) {
	index=nentries-1; 
      }
      aValue = (AliDCSValue*) aliasArr->At(index);
      val = aValue->GetFloat();
      time = (Float_t) (aValue->GetTimeStamp());
      if (j<kNHV){
	fHVvp[j]->SetFloat(k,val);
	fHVvp[j]->SetTimeStampFloat(k,time);
      }
      else if (j<kNHV*2){
	fHVvn[j-kNHV]->SetFloat(k,val);
	fHVvn[j-kNHV]->SetTimeStampFloat(k,time);
      }
      else if (j<kNHV*3){
	fHVip[j-2*kNHV]->SetFloat(k,val);
	fHVip[j-2*kNHV]->SetTimeStampFloat(k,time);
      }
      else if (j<kNHV*4){
	fHVin[j-3*kNHV]->SetFloat(k,val);
	fHVin[j-3*kNHV]->SetTimeStampFloat(k,time);
      }
    }
  
    //computing the most significant variations

    //Float_t timeDiff = (Float_t)(fEndTime-fStartTime);
    Float_t timeDiff = (Float_t)(fEndTimeDCSQuery-fStartTimeDCSQuery);
    Int_t deltamin = (Int_t)(60/timeDiff*nentries); //sampling every minute
    Int_t klast = nentries-deltamin;
      
    for (Int_t k=0;k<klast;k++){
      aValue = (AliDCSValue*) aliasArr->At(k);
      aValue1 = (AliDCSValue*) aliasArr->At(k+deltamin);
      val = aValue->GetFloat();
      val1 = aValue1->GetFloat();
      if (delta[0]<=TMath::Abs(val1-val)) {
	delta[0]=TMath::Abs(val1-val);
	timedelta[0] = (Float_t)k;
      }
      if (delta[1]<=delta[0]) {
	Float_t temp = delta[1];
	Float_t timetemp = timedelta[1];
	delta[1]=delta[0];
	delta[0]=temp;
	timedelta[1]=timedelta[0];
	timedelta[0]=timetemp;
      }
    }
    
    for (Int_t kk=0;kk<2;kk++){
      if (j<kNHV){
	fHVvp[j]->SetDelta(kk,delta[kk]);
	fHVvp[j]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
      }
      else if (j<kNHV*2){
	fHVvn[j-kNHV]->SetDelta(kk,delta[kk]);
	fHVvn[j-kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
      }
      else if (j<kNHV*3){
	fHVip[j-2*kNHV]->SetDelta(kk,delta[kk]);
	fHVip[j-2*kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
      }
      else if (j<kNHV*4){
	fHVin[j-3*kNHV]->SetDelta(kk,delta[kk]);
	fHVin[j-3*kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
      }
    }
  }
  
  fIsProcessed=kTRUE;

  return kTRUE;
}

//---------------------------------------------------------------
void AliTOFDataDCS::Init(){

  // initialization of aliases and DCS data

  TString sindex;
  for(int i=0;i<kNAliases;i++){
    //HV, v
    if (i<kNHV){
	fAliasNames[i] = "tof_hv_vp_";
	sindex.Form("%02i",i);
	fAliasNames[i] += sindex;
	fHVvp[i] = new AliTOFFormatDCS();
    }
    else if (i<kNHV*2){
	fAliasNames[i] = "tof_hv_vn_";
	sindex.Form("%02i",i-kNHV);
	fAliasNames[i] += sindex;
	fHVvn[i-kNHV] = new AliTOFFormatDCS();
    }
    //HV, i
    else if (i<kNHV*3){
	fAliasNames[i] = "tof_hv_ip_";
	sindex.Form("%02i",i-2*kNHV);
	fAliasNames[i] += sindex;
	fHVip[i-2*kNHV] = new AliTOFFormatDCS();
    }
    else if (i<kNHV*4){
	fAliasNames[i] = "tof_hv_in_";
	sindex.Form("%02i",i-3*kNHV);
	fAliasNames[i] += sindex;
	fHVin[i-3*kNHV] = new AliTOFFormatDCS();
    }
  }
}


//---------------------------------------------------------------
void AliTOFDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr)const
{

  // method to introduce new aliases

  int entries=0;
  entries = aliasArr->GetEntries();
  int nal=0;
  nal=numAlias;
  AliDebug(2,Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
  AliDebug(2,Form("    	%d DP values collected",entries));

}

//---------------------------------------------------------------
void AliTOFDataDCS::Draw(const Option_t* /*option*/)
{
  // Draw all histos and graphs

  if(!fIsProcessed) return;

  TCanvas *ch;
  TString canvasHistoName="Histos";
  ch=new TCanvas(canvasHistoName,canvasHistoName,20,20,600,600);
  ch->cd();

  // to be implemented

}

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