ROOT logo

/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// class for T0 calibration                       TM-AC-AM_6-02-2006  
// equalize time shift for each time CFD channel
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "AliT0CalibTimeEq.h"
#include "AliLog.h"
#include <TFile.h>
#include <TMath.h>
#include <TF1.h>
#include <TSpectrum.h>
#include <TProfile.h>
#include <iostream>

ClassImp(AliT0CalibTimeEq)

//________________________________________________________________
  AliT0CalibTimeEq::AliT0CalibTimeEq():TNamed(),
				       fMeanVertex(0),        
				       fRmsVertex(0)      
{
  //
  for(Int_t i=0; i<24; i++) {
   fTimeEq[i] = 0;	      // Time Equalized for OCDB	 
   fTimeEqRms[i] = -1;	      // RMS of Time Equalized for OCDB	 
   for (Int_t ih=0; ih<5; ih++)   fCFDvalue[i][ih] = 0;
  }
}

//________________________________________________________________
AliT0CalibTimeEq::AliT0CalibTimeEq(const char* name):TNamed(),
				       fMeanVertex(0),        
				       fRmsVertex(0)      
{
  //constructor

  TString namst = "Calib_";
  namst += name;
  SetName(namst.Data());
  SetTitle(namst.Data());
  for(Int_t i=0; i<24; i++) {
   fTimeEq[i] = 0;	      // Time Equalized for OCDB	 
   fTimeEqRms[i] = -1;	      // RMS of Time Equalized for OCDB	 
   for (Int_t ih=0; ih<5; ih++)   fCFDvalue[i][ih] = 0;
  }
}

//________________________________________________________________
AliT0CalibTimeEq::AliT0CalibTimeEq(const AliT0CalibTimeEq& calibda):TNamed(calibda),		
				       fMeanVertex(0),        
				       fRmsVertex(0)      
{
// copy constructor
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  ((AliT0CalibTimeEq &) calibda).Copy(*this);

}

//________________________________________________________________
AliT0CalibTimeEq &AliT0CalibTimeEq::operator =(const AliT0CalibTimeEq& calibda)
{
// assignment operator
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
 
  if (this != &calibda) (( AliT0CalibTimeEq &) calibda).Copy(*this);
  return *this;
}

//________________________________________________________________
AliT0CalibTimeEq::~AliT0CalibTimeEq()
{
  //
  // destrictor
}
//________________________________________________________________
void AliT0CalibTimeEq::Reset()
{
  //reset values

  memset(fCFDvalue,0,120*sizeof(Float_t));
  memset(fTimeEq,1,24*sizeof(Float_t));
}


//________________________________________________________________
void  AliT0CalibTimeEq::Print(Option_t*) const
{
  // print time values

  printf("\n	----	PM Arrays	----\n\n");
  printf(" Time delay CFD \n");
  for (Int_t i=0; i<24; i++) 
    printf(" CFD  %f diff %f  \n",fCFDvalue[i][0],fTimeEq[i]);
} 


//________________________________________________________________
Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
{
  // compute online equalized time
  Float_t meandiff, sigmadiff, meanver, meancfdtime, sigmacfdtime;
  meandiff = sigmadiff =  meanver = meancfdtime = sigmacfdtime =0;
  Double_t rmsver=0;
  Int_t nent=0;
  Int_t okdiff=0;
  Int_t oktime=0;
  Bool_t ok=false;
  //
  gFile = TFile::Open(filePhys);
  if(!gFile) {
    AliError("No input PHYS data found ");
  }
  else
    {
      ok=true;
      for (Int_t i=0; i<24; i++)
	{
	  meandiff = sigmadiff =  meanver = meancfdtime = sigmacfdtime =0;
	  TH1F *cfd     = (TH1F*) gFile->Get(Form("CFD1minCFD%d",i+1));
	  TH1F *cfdtime = (TH1F*) gFile->Get(Form("CFD%d",i+1));
	  if(!cfd) {
	    AliWarning(Form("no Diff histograms collected by PHYS DA for channel %i", i));
	    okdiff++;
	    if(okdiff<4) {
	      meandiff = 0;
	      sigmadiff = 0;
	    }
	    else
	      ok = false; 
	  }
	  if(!cfdtime) {
	    AliWarning(Form("no CFD histograms collected by PHYS DA for channel %i", i));
	    oktime++;
	    if(oktime<4) {
	      meancfdtime = 0;
	    }
	    else
	      ok = false; 
	  }
	  if(cfd) {
	    nent = Int_t(cfd->GetEntries());
	    if( nent<=50) {
	      okdiff++;
	      //	      printf(" pmt %i nent %i cfd->GetRMS() %f cfd->GetMean() %f \n",
	      //     i, nent, cfd->GetRMS(), cfd->GetMean() );
	      if(okdiff<4) {
		meandiff = 0;
		sigmadiff = 0;
	      }
	      else
		{
		  // printf(" OK fsle:: pmt %i nent %i cfd->GetRMS() %f cfd->GetMean() %f \n",
		  // i, nent, cfd->GetRMS(), cfd->GetMean() );
		  AliWarning(Form(" Not  enouph data in PMT %i- PMT1:  %i ", i, nent));
		  ok = false; 
		}
	    }
	    if(nent>50)  { 
	      if(cfd->GetRMS()>1.5 )
		GetMeanAndSigma(cfd, meandiff, sigmadiff);
	      if(cfd->GetRMS()<=1.5) 
		{
		  meandiff = cfd->GetMean();
		  sigmadiff=cfd->GetRMS();
		}
	      Int_t   maxBin = cfd->GetMaximumBin(); 
	      Double_t  meanEstimate = cfd->GetBinCenter( maxBin); 
	      if(TMath::Abs(meanEstimate - meandiff) > 20 ) meandiff = meanEstimate; 
	    }
	  }
	  
	  if(cfdtime) {
	    nent = Int_t(cfdtime->GetEntries());
	    if( nent<=50  ) {
	      oktime++;
	      if(oktime<4) {
		meancfdtime = 0;
	      }
	      else
		{
		  AliWarning(Form(" Not  enouph data in PMT %i:  %i ", i, nent));
		  ok = false; 
		}
	    }
	    if(nent > 50  )  { //!!!!!!!!!!
	      if(cfdtime->GetRMS()>1.5 )
		GetMeanAndSigma(cfdtime,meancfdtime, sigmacfdtime);
	      if(cfdtime->GetRMS()<=1.5) 
		{
		  if(cfdtime->GetRMS()==0 ||cfdtime->GetMean()==0 ) {
		    ok = false;
		  }
		  meancfdtime = cfdtime->GetMean();
		  sigmacfdtime = cfdtime->GetRMS();
		}
	      Int_t   maxBin = cfdtime->GetMaximumBin(); 
	      Double_t  meanEstimate = cfdtime->GetBinCenter( maxBin); 
	      if(TMath::Abs(meanEstimate - meancfdtime) > 20 ) meancfdtime = meanEstimate; 
	    }
	  }
	  SetTimeEq(i,meandiff);
	  SetTimeEqRms(i,sigmadiff);
	  SetCFDvalue(i,0,meancfdtime);
	  if (cfd) delete cfd;
	  if (cfdtime) delete cfdtime;
	}
      TH1F *ver = (TH1F*) gFile->Get("hVertex") ;
      if(ver) {
	meanver = ver->GetMean();
	rmsver = ver->GetRMS();
      }
      SetMeanVertex(meanver);
      SetRmsVertex(rmsver);
      gFile->Close();
      delete gFile;
    }
    return ok; 
}

//________________________________________________________________
Int_t AliT0CalibTimeEq::ComputeOfflineParams(const char* filePhys, Float_t *timecdb, Float_t *cfdvalue, Int_t badpmt)
{
  // fStatus implementation:
  //ok means
  // 1000  - can not open file 
  // for timediff
  // 20 >3 histos are empty
  // -11  low statistics oe empty histos in few channels; for these channels OCDB value will be written back WARNING
  // for cfd
  // 20 >2 histos are empty or with low statistic 
  // -11 if less 3 channels are empty or low statistics in few channels ;for these channels OCDB value will be written back WARNING
   //
  // compute offline equalized time
  Float_t meandiff, sigmadiff, meanver, meancfdtime, sigmacfdtime;
  meandiff = sigmadiff =  meanver = meancfdtime = sigmacfdtime =0;
  Int_t nent=0;
  Int_t ok = 0;
  Int_t okcfd=0;
  TH1F *cfddiff = NULL; 
  TH1F *cfdtime = NULL;
  TObjArray * tzeroObj = NULL;

  gFile = TFile::Open(filePhys);
  if(!gFile) {
    AliError("No input PHYS data found ");
    ok = 1000;
    return ok;
  }
  else
    {
      meandiff = sigmadiff =  meanver = meancfdtime = sigmacfdtime =0;
      //      TDirectory *dr = (TDirectory*) gFile->Get("T0Calib");
      tzeroObj = dynamic_cast<TObjArray*>(gFile->Get("T0Calib"));
      for (Int_t i=0; i<24; i++)
	{
	  if (i != badpmt) {	    
	    if(tzeroObj) {
	      cfddiff = (TH1F*) tzeroObj->FindObject(Form("CFD1minCFD%d",i+1));
	      cfdtime = (TH1F*)tzeroObj->FindObject(Form("CFD%d",i+1));
	    }
	    else
	      {
		cfddiff = (TH1F*)gFile->Get(Form("CFD1minCFD%d",i+1));
		cfdtime = (TH1F*)gFile->Get(Form("CFD%d",i+1));
		
	      }
	    if(!cfddiff ) {
	      AliWarning(Form("no  histograms collected by pass0 for diff channel %i\n", i));    
		meandiff = timecdb[i];
		sigmadiff = 0;
	      }
	    if(cfddiff) {
	      nent = Int_t(cfddiff->GetEntries());
	      if ( nent == 0  ) {
		AliWarning(Form("no  entries in histogram for diff channel %i\n", i));
		meandiff = timecdb[i];
		sigmadiff = 0;
	      }
	      if(nent<=100 && nent>0) { //!!!!!
		AliWarning(Form(" Not  enouph data in PMT %i- PMT1:  %i \n", i, nent));
		meandiff = timecdb[i];
		sigmadiff = 0; 
	      }
	      if(nent>=100 )  { //!!!!!
		{
		  if(cfddiff->GetRMS()>1.5 )
		    GetMeanAndSigma(cfddiff, meandiff, sigmadiff);
		  if(cfddiff->GetRMS()<=1.5) 
		    {
		      meandiff = cfddiff->GetMean();
		      sigmadiff = cfddiff->GetRMS();
		    }
		  Int_t   maxBin = cfddiff->GetMaximumBin(); 
		  Double_t  meanEstimate = cfddiff->GetBinCenter( maxBin); 
		  if(TMath::Abs(meanEstimate - meandiff) > 20 ) meandiff = meanEstimate; 
		}
	      }	    
	    }
	    if(!cfdtime ) {
	      AliWarning(Form("no  histograms collected by pass0 for time channel %i", i));
	      meancfdtime = cfdvalue[i];
	      okcfd++;
	      if(okcfd<2) {
		meancfdtime = cfdvalue[i];
		//	ok = -11;
	      }
	      else {
		AliError(Form("no  histograms collected by pass0 for time %i channels ", okcfd));
		if (tzeroObj) delete tzeroObj;
		return 20; 
	      }
	    }
	    if(cfdtime) {
	      nent = Int_t(cfdtime->GetEntries());
	      if (nent == 0 || 
		  (cfdtime->GetRMS() == 0 || cfdtime->GetMean() ==0 ) ) 
		{
		  okcfd++;
		  if(okcfd<2) {
		    meancfdtime = cfdvalue[i];
		    //   ok = -11;
		    printf("!!!!bad data:: pmt %i nent%i RMS %f mean %f cdbtime %f \n",
			   i, nent, cfdtime->GetRMS(), cfdtime->GetMean(), cfdvalue[i] );
		  }
		  else
		    {
		    printf("!!!!fatal data:: pmt %i nent%i RMS %f mean %f cdbtime %f \n",
			   i, nent, cfdtime->GetRMS(), cfdtime->GetMean(), cfdvalue[i]);
		      AliError(Form(" histograms collected by pass0 for time %i channels are empty", okcfd));
		      if (tzeroObj) delete tzeroObj;
		      return 20; 
		    }
		}
	      
		  
	      if(nent<=100 && nent>0 ) 
		{
		  okcfd++;
		AliWarning(Form(" Not  enouph data in PMT in CFD peak %i - %i ", i, nent));
		  meancfdtime = cfdvalue[i];
		  //		  ok = -11;
		  printf("!!!!low statstics:: pmt %i nent%i RMS %f mean %f cdbtime %f \n",
			 i, nent, cfdtime->GetRMS(), cfdtime->GetMean(),  cfdvalue[i]);
		  if (okcfd>2) {
		  ok = -11;
		  if (tzeroObj) delete tzeroObj;
		  return ok;
		  }
		}
	      
	      if( nent>100 )    { //!!!!!
		if(cfdtime->GetRMS()>1.5 )
		  GetMeanAndSigma(cfdtime,meancfdtime, sigmacfdtime);
		if(cfdtime->GetRMS()<=1.5) 
		  {
		    meancfdtime = cfdtime->GetMean();
		    sigmacfdtime=cfdtime->GetRMS();
		  }
		Int_t   maxBin = cfdtime->GetMaximumBin(); 
		Double_t  meanEstimate = cfdtime->GetBinCenter( maxBin); 
		if(TMath::Abs(meanEstimate - meancfdtime) > 20 ) meancfdtime = meanEstimate; 
	    }
	  }
	  
	  SetTimeEq(i,meandiff);
	  SetTimeEqRms(i,sigmadiff);
	  SetCFDvalue(i,0, meancfdtime );
	  if (cfddiff) cfddiff->Reset();
	  if (cfdtime) cfdtime->Reset();
	  } //bad pmt
	}      
      gFile->Close();
      delete gFile;
    }
  if (tzeroObj) delete tzeroObj;
  return ok; 
}

//________________________________________________________________________
void AliT0CalibTimeEq::GetMeanAndSigma(TH1F* hist,  Float_t &mean, Float_t &sigma) {
  
  const double window = 5.;  //fit window 
  double meanEstimate, sigmaEstimate; 
  int maxBin;
  maxBin        =  hist->GetMaximumBin(); //position of maximum
  meanEstimate  =  hist->GetBinCenter( maxBin); // mean of gaussian sitting in maximum
  sigmaEstimate = hist->GetRMS();
  // sigmaEstimate = 10;
  TF1* fit= new TF1("fit","gaus", meanEstimate - window*sigmaEstimate, meanEstimate + window*sigmaEstimate);
  fit->SetParameters(hist->GetBinContent(maxBin), meanEstimate, sigmaEstimate);
  hist->Fit("fit","QR","");

  mean  = (Float_t) fit->GetParameter(1);
  sigma = (Float_t) fit->GetParameter(2);

  delete fit;
}


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