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 providing the calculation of derived quantities (mean,rms,fits,...) //
//       of calibration entries                                              //
/*


*/
////////////////////////////////////////////////////////////////////////////////

#include <TMath.h>
#include <TVectorT.h>
#include <TObjArray.h>
#include <TGraph.h>
#include <TFile.h>
#include <TDirectory.h>
#include <TMap.h>
#include <TGraphErrors.h>
#include <AliCDBStorage.h>
#include <AliDCSSensorArray.h>
#include <AliTPCSensorTempArray.h>
#include <AliDCSSensor.h>
#include <AliLog.h>
#include <AliCDBEntry.h>
#include <AliCDBManager.h>
#include <AliCDBId.h>
#include <AliSplineFit.h>
#include "AliTPCcalibDB.h"
#include "AliTPCCalPad.h"
#include "AliTPCCalROC.h"
#include "AliTPCROC.h"
#include "AliTPCmapper.h"
#include "AliTPCParam.h"
#include "AliTPCCalibRaw.h"
#include "AliTPCPreprocessorOnline.h"
#include "AliTPCdataQA.h"
#include "AliLog.h"
#include "AliTPCcalibDButil.h"
#include "AliTPCCalibVdrift.h"
#include "AliMathBase.h"
#include "AliRelAlignerKalman.h"
#include "TTree.h"
#include "TROOT.h"
#include "TKey.h"

const Float_t kAlmost0=1.e-30;

ClassImp(AliTPCcalibDButil)
AliTPCcalibDButil::AliTPCcalibDButil() :
  TObject(),
  fCalibDB(0),
  fPadNoise(0x0),
  fPedestals(0x0),
  fPulserTmean(0x0),
  fPulserTrms(0x0),
  fPulserQmean(0x0),
  fPulserOutlier(new AliTPCCalPad("PulserOutliers","PulserOutliers")),
  fCETmean(0x0),
  fCETrms(0x0),
  fCEQmean(0x0),
  fALTROMasked(0x0),
  fCalibRaw(0x0),
  fDataQA(0x0),
  fRefMap(0x0),
  fCurrentRefMap(0x0),
  fRefValidity(""),
  fRefPadNoise(0x0),
  fRefPedestals(0x0),
  fRefPedestalMasked(0x0),
  fRefPulserTmean(0x0),
  fRefPulserTrms(0x0),
  fRefPulserQmean(0x0),
  fRefPulserOutlier(new AliTPCCalPad("RefPulserOutliers","RefPulserOutliers")),
  fRefPulserMasked(0x0),
  fRefCETmean(0x0),
  fRefCETrms(0x0),
  fRefCEQmean(0x0),
  fRefCEMasked(0x0),
  fRefALTROFPED(0x0),
  fRefALTROZsThr(0x0),
  fRefALTROAcqStart(0x0),
  fRefALTROAcqStop(0x0),
  fRefALTROMasked(0x0),
  fRefCalibRaw(0x0),
  fRefDataQA(0x0),
  fGoofieArray(0x0),
  fMapper(new AliTPCmapper(0x0)),
  fNpulserOutliers(-1),
  fIrocTimeOffset(0),
  fCETmaxLimitAbs(1.5),
  fPulTmaxLimitAbs(1.5),
  fPulQmaxLimitAbs(5),
  fPulQminLimit(11),
  fRuns(0),                         // run list with OCDB info
  fRunsStart(0),                    // start time for given run
  fRunsStop(0)                     // stop time for given run
{
  //
  // Default ctor
  //
}
//_____________________________________________________________________________________
AliTPCcalibDButil::~AliTPCcalibDButil()
{
  //
  // dtor
  //
  delete fPulserOutlier;
  delete fRefPulserOutlier;
  delete fMapper;
  if (fRefPadNoise) delete fRefPadNoise;
  if (fRefPedestals) delete fRefPedestals;
  if (fRefPedestalMasked) delete fRefPedestalMasked;
  if (fRefPulserTmean) delete fRefPulserTmean;
  if (fRefPulserTrms) delete fRefPulserTrms;
  if (fRefPulserQmean) delete fRefPulserQmean;
  if (fRefPulserMasked) delete fRefPulserMasked;
  if (fRefCETmean) delete fRefCETmean;
  if (fRefCETrms) delete fRefCETrms;
  if (fRefCEQmean) delete fRefCEQmean;
  if (fRefCEMasked) delete fRefCEMasked;
  if (fRefALTROFPED) delete fRefALTROFPED;
  if (fRefALTROZsThr) delete fRefALTROZsThr;
  if (fRefALTROAcqStart) delete fRefALTROAcqStart;
  if (fRefALTROAcqStop) delete fRefALTROAcqStop;
  if (fRefALTROMasked) delete fRefALTROMasked;
  if (fRefCalibRaw) delete fRefCalibRaw;
  if (fCurrentRefMap) delete fCurrentRefMap;    
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::UpdateFromCalibDB()
{
  //
  // Update pointers from calibDB
  //
  if (!fCalibDB) fCalibDB=AliTPCcalibDB::Instance();
  fCalibDB->UpdateNonRec();  // load all infromation now
  fPadNoise=fCalibDB->GetPadNoise();
  fPedestals=fCalibDB->GetPedestals();
  fPulserTmean=fCalibDB->GetPulserTmean();
  fPulserTrms=fCalibDB->GetPulserTrms();
  fPulserQmean=fCalibDB->GetPulserQmean();
  fCETmean=fCalibDB->GetCETmean();
  fCETrms=fCalibDB->GetCETrms();
  fCEQmean=fCalibDB->GetCEQmean();
  fALTROMasked=fCalibDB->GetALTROMasked();
  fGoofieArray=fCalibDB->GetGoofieSensors(fCalibDB->GetRun());
  fCalibRaw=fCalibDB->GetCalibRaw();
  fDataQA=fCalibDB->GetDataQA();
  UpdatePulserOutlierMap();
//   SetReferenceRun();
//   UpdateRefDataFromOCDB();
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessCEdata(const char* fitFormula, TVectorD &fitResultsA, TVectorD &fitResultsC,
                                      Int_t &noutliersCE, Double_t & chi2A, Double_t &chi2C, AliTPCCalPad * const outCE)
{
  //
  // Process the CE data for this run
  // the return TVectorD arrays contian the results of the fit
  // noutliersCE contains the number of pads marked as outliers,
  //   not including masked and edge pads
  //
  
  //retrieve CE and ALTRO data
  if (!fCETmean){
    TString fitString(fitFormula);
    fitString.ReplaceAll("++","#");
    Int_t ndim=fitString.CountChar('#')+2;
    fitResultsA.ResizeTo(ndim);
    fitResultsC.ResizeTo(ndim);
    fitResultsA.Zero();
    fitResultsC.Zero();
    noutliersCE=-1;
    return;
  }
  noutliersCE=0;
  //create outlier map
  AliTPCCalPad *out=0;
  if (outCE) out=outCE;
  else out=new AliTPCCalPad("outCE","outCE");
  AliTPCCalROC *rocMasked=0x0;
  //loop over all channels
  for (UInt_t iroc=0;iroc<fCETmean->kNsec;++iroc){
    AliTPCCalROC *rocData=fCETmean->GetCalROC(iroc);
    if (fALTROMasked) rocMasked=fALTROMasked->GetCalROC(iroc);
    AliTPCCalROC *rocOut=out->GetCalROC(iroc);
    if (!rocData) {
      noutliersCE+=AliTPCROC::Instance()->GetNChannels(iroc);
      rocOut->Add(1.);
      continue;
    }
    //add time offset to IROCs
    if (iroc<AliTPCROC::Instance()->GetNInnerSector())
      rocData->Add(fIrocTimeOffset);
    //select outliers
    UInt_t nrows=rocData->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=rocData->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        rocOut->SetValue(irow,ipad,0);
        //exclude masked pads
        if (rocMasked && rocMasked->GetValue(irow,ipad)) {
          rocOut->SetValue(irow,ipad,1);
          continue;
        }
        //exclude first two rows in IROC and last two rows in OROC
        if (iroc<36){
          if (irow<2) rocOut->SetValue(irow,ipad,1);
        } else {
          if (irow>nrows-3) rocOut->SetValue(irow,ipad,1);
        }
        //exclude edge pads
        if (ipad==0||ipad==npads-1) rocOut->SetValue(irow,ipad,1);
        Float_t valTmean=rocData->GetValue(irow,ipad);
        //exclude values that are exactly 0
        if ( !(TMath::Abs(valTmean)>kAlmost0) ) {
          rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
        }
        // exclude channels with too large variations
        if (TMath::Abs(valTmean)>fCETmaxLimitAbs) {
          rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
        }
      }
    }
  }
  //perform fit
  TMatrixD dummy;
  Float_t chi2Af,chi2Cf;
  fCETmean->GlobalSidesFit(out,fitFormula,fitResultsA,fitResultsC,dummy,dummy,chi2Af,chi2Cf);
  chi2A=chi2Af;
  chi2C=chi2Cf;
  if (!outCE) delete out;
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessCEgraphs(TVectorD &vecTEntries, TVectorD &vecTMean, TVectorD &vecTRMS, TVectorD &vecTMedian,
                     TVectorD &vecQEntries, TVectorD &vecQMean, TVectorD &vecQRMS, TVectorD &vecQMedian,
                     Float_t &driftTimeA, Float_t &driftTimeC )
{
  //
  // Calculate statistical information from the CE graphs for drift time and charge
  //
  
  //reset arrays
  vecTEntries.ResizeTo(72);
  vecTMean.ResizeTo(72);
  vecTRMS.ResizeTo(72);
  vecTMedian.ResizeTo(72);
  vecQEntries.ResizeTo(72);
  vecQMean.ResizeTo(72);
  vecQRMS.ResizeTo(72);
  vecQMedian.ResizeTo(72);
  vecTEntries.Zero();
  vecTMean.Zero();
  vecTRMS.Zero();
  vecTMedian.Zero();
  vecQEntries.Zero();
  vecQMean.Zero();
  vecQRMS.Zero();
  vecQMedian.Zero();
  driftTimeA=0;
  driftTimeC=0;
  TObjArray *arrT=fCalibDB->GetCErocTtime();
  TObjArray *arrQ=fCalibDB->GetCErocQtime();
  if (arrT){
    for (Int_t isec=0;isec<74;++isec){
      TGraph *gr=(TGraph*)arrT->At(isec);
      if (!gr) continue;
      TVectorD values;
      Int_t npoints = gr->GetN();
      values.ResizeTo(npoints);
      Int_t nused =0;
      //skip first points, theres always some problems with finding the CE position
      for (Int_t ipoint=4; ipoint<npoints; ipoint++){
        if (gr->GetY()[ipoint]>500 && gr->GetY()[ipoint]<1020 ){
          values[nused]=gr->GetY()[ipoint];
          nused++;
        }
      }
      //
      if (isec<72) vecTEntries[isec]= nused;
      if (nused>1){
        if (isec<72){
          vecTMedian[isec] = TMath::Median(nused,values.GetMatrixArray());
          vecTMean[isec]   = TMath::Mean(nused,values.GetMatrixArray());
          vecTRMS[isec]    = TMath::RMS(nused,values.GetMatrixArray());
        } else if (isec==72){
          driftTimeA=TMath::Median(nused,values.GetMatrixArray());
        } else if (isec==73){
          driftTimeC=TMath::Median(nused,values.GetMatrixArray());
        }
      }
    }
  }
  if (arrQ){
    for (Int_t isec=0;isec<arrQ->GetEntriesFast();++isec){
      TGraph *gr=(TGraph*)arrQ->At(isec);
      if (!gr) continue;
      TVectorD values;
      Int_t npoints = gr->GetN();
      values.ResizeTo(npoints);
      Int_t nused =0;
      for (Int_t ipoint=0; ipoint<npoints; ipoint++){
        if (gr->GetY()[ipoint]>10 && gr->GetY()[ipoint]<500 ){
          values[nused]=gr->GetY()[ipoint];
          nused++;
        }
      }
      //
      vecQEntries[isec]= nused;
      if (nused>1){
        vecQMedian[isec] = TMath::Median(nused,values.GetMatrixArray());
        vecQMean[isec]   = TMath::Mean(nused,values.GetMatrixArray());
        vecQRMS[isec]    = TMath::RMS(nused,values.GetMatrixArray());
      }
    }
  }
}

//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessNoiseData(TVectorD &vNoiseMean, TVectorD &vNoiseMeanSenRegions,
                      TVectorD &vNoiseRMS, TVectorD &vNoiseRMSSenRegions,
                      Int_t &nonMaskedZero, Int_t &nNaN)
{
  //
  // process noise data
  // vNoiseMean/RMS contains the Mean/RMS noise of the complete TPC [0], IROCs only [1],
  //    OROCs small pads [2] and OROCs large pads [3]
  // vNoiseMean/RMSsenRegions constains the same information, but only for the sensitive regions (edge pads, corners, IROC spot)
  // nonMaskedZero contains the number of pads which show zero noise and were not masked. This might indicate an error
  //
  
  //set proper size and reset
  const UInt_t infoSize=4;
  vNoiseMean.ResizeTo(infoSize);
  vNoiseMeanSenRegions.ResizeTo(infoSize);
  vNoiseRMS.ResizeTo(infoSize);
  vNoiseRMSSenRegions.ResizeTo(infoSize);
  vNoiseMean.Zero();
  vNoiseMeanSenRegions.Zero();
  vNoiseRMS.Zero();
  vNoiseRMSSenRegions.Zero();
  nonMaskedZero=0;
  nNaN=0;
  //counters
  TVectorD c(infoSize);
  TVectorD cs(infoSize);
  //tpc parameters
  AliTPCParam par;
  par.Update();
  //retrieve noise and ALTRO data
  if (!fPadNoise) return;
  AliTPCCalROC *rocMasked=0x0;
  //create IROC, OROC1, OROC2 and sensitive region masks
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    AliTPCCalROC *noiseROC=fPadNoise->GetCalROC(isec);
    if (fALTROMasked) rocMasked=fALTROMasked->GetCalROC(isec);
    UInt_t nrows=noiseROC->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=noiseROC->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        //don't use masked channels;
        if (rocMasked && rocMasked->GetValue(irow,ipad)) continue;
        Float_t noiseVal=noiseROC->GetValue(irow,ipad);
        //check if noise==0
        if (noiseVal<kAlmost0) {
          ++nonMaskedZero;
          continue;
        }
        //check for nan
        if ( !(noiseVal<10000000) ){
	  AliInfo(Form("Warning: nan detected in (sec,row,pad - val): %02d,%02d,%03d - %.1f\n",isec,irow,ipad,noiseVal));
          ++nNaN;
          continue;
        }
        Int_t cpad=(Int_t)ipad-(Int_t)npads/2;
        Int_t masksen=1; // sensitive pards are not masked (0)
        if (ipad<2||npads-ipad-1<2) masksen=0; //don't mask edge pads (sensitive)
        if (isec<AliTPCROC::Instance()->GetNInnerSector()){
          //IROCs
          if (irow>19&&irow<46){
            if (TMath::Abs(cpad)<7) masksen=0; //IROC spot
          }
          Int_t type=1;
          vNoiseMean[type]+=noiseVal;
          vNoiseRMS[type]+=noiseVal*noiseVal;
          ++c[type];
          if (!masksen){
            vNoiseMeanSenRegions[type]+=noiseVal;
            vNoiseRMSSenRegions[type]+=noiseVal*noiseVal;
            ++cs[type];
          }
        } else {
          //OROCs
          //define sensive regions
          if ((nrows-irow-1)<3) masksen=0; //last three rows in OROCs are sensitive
          if ( irow>75 ){
            Int_t padEdge=(Int_t)TMath::Min(ipad,npads-ipad);
            if (padEdge<((((Int_t)irow-76)/4+1))*2) masksen=0; //OROC outer corners are sensitive
          }
          if ((Int_t)irow<par.GetNRowUp1()){
            //OROC1
            Int_t type=2;
            vNoiseMean[type]+=noiseVal;
            vNoiseRMS[type]+=noiseVal*noiseVal;
            ++c[type];
            if (!masksen){
              vNoiseMeanSenRegions[type]+=noiseVal;
              vNoiseRMSSenRegions[type]+=noiseVal*noiseVal;
              ++cs[type];
            }
          }else{
            //OROC2
            Int_t type=3;
            vNoiseMean[type]+=noiseVal;
            vNoiseRMS[type]+=noiseVal*noiseVal;
            ++c[type];
            if (!masksen){
              vNoiseMeanSenRegions[type]+=noiseVal;
              vNoiseRMSSenRegions[type]+=noiseVal*noiseVal;
              ++cs[type];
            }
          }
        }
        //whole tpc
        Int_t type=0;
        vNoiseMean[type]+=noiseVal;
        vNoiseRMS[type]+=noiseVal*noiseVal;
        ++c[type];
        if (!masksen){
          vNoiseMeanSenRegions[type]+=noiseVal;
          vNoiseRMSSenRegions[type]+=noiseVal*noiseVal;
          ++cs[type];
        }
      }//end loop pads
    }//end loop rows
  }//end loop sectors (rocs)
  
  //calculate mean and RMS
  const Double_t verySmall=0.0000000001;
  for (UInt_t i=0;i<infoSize;++i){
    Double_t mean=0;
    Double_t rms=0;
    Double_t meanSen=0;
    Double_t rmsSen=0;
    
    if (c[i]>verySmall){
      AliInfo(Form("i: %d - m: %.3f, c: %.0f, r: %.3f\n",i,vNoiseMean[i],c[i],vNoiseRMS[i]));
      mean=vNoiseMean[i]/c[i];
      rms=vNoiseRMS[i];
      rms=TMath::Sqrt(TMath::Abs(rms/c[i]-mean*mean));
    }
    vNoiseMean[i]=mean;
    vNoiseRMS[i]=rms;
    
    if (cs[i]>verySmall){
      meanSen=vNoiseMeanSenRegions[i]/cs[i];
      rmsSen=vNoiseRMSSenRegions[i];
      rmsSen=TMath::Sqrt(TMath::Abs(rmsSen/cs[i]-meanSen*meanSen));
    }
    vNoiseMeanSenRegions[i]=meanSen;
    vNoiseRMSSenRegions[i]=rmsSen;
  }
}

//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessQAData(TVectorD &vQaOcc, TVectorD &vQaQtot, 
				      TVectorD &vQaQmax)
{
  //
  // process QA data
  //
  // vQaOcc/Qtot/Qmax contains the Mean occupancy/Qtot/Qmax for each sector
  //


  const UInt_t infoSize = 72;
  //reset counters to error number
  vQaOcc.ResizeTo(infoSize);
  vQaOcc.Zero();
  vQaQtot.ResizeTo(infoSize);
  vQaQtot.Zero();
  vQaQmax.ResizeTo(infoSize);
  vQaQmax.Zero();
  //counter
  //retrieve pulser and ALTRO data
  
  if (!fDataQA) {
    
    AliInfo("No QA data");
    return;
  }
  if (fDataQA->GetEventCounter()<=0) {

    AliInfo("No QA data");
    return; // no data processed
  }
  //
  fDataQA->Analyse();

  TVectorD normOcc(infoSize);
  TVectorD normQ(infoSize);

  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){

    AliInfo(Form("Sector %d\n", isec));
    AliTPCCalROC* occupancyROC = fDataQA->GetNoThreshold()->GetCalROC(isec); 
    AliTPCCalROC* nclusterROC = fDataQA->GetNLocalMaxima()->GetCalROC(isec); 
    AliTPCCalROC* qROC = fDataQA->GetMeanCharge()->GetCalROC(isec); 
    AliTPCCalROC* qmaxROC = fDataQA->GetMaxCharge()->GetCalROC(isec); 
    if (!occupancyROC) continue;
    if (!nclusterROC) continue;
    if (!qROC) continue;
    if (!qmaxROC) continue;
    
    const UInt_t nchannels=occupancyROC->GetNchannels();

    AliInfo(Form("Nchannels %d\n", nchannels));

    for (UInt_t ichannel=0;ichannel<nchannels;++ichannel){

      vQaOcc[isec] += occupancyROC->GetValue(ichannel);
      ++normOcc[isec];

      Float_t nClusters = nclusterROC->GetValue(ichannel);
      normQ[isec] += nClusters;
      vQaQtot[isec]+=nClusters*qROC->GetValue(ichannel);
      vQaQmax[isec]+=nClusters*qmaxROC->GetValue(ichannel);
    }
  }

  //calculate mean values
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    
    if (normOcc[isec]>0) vQaOcc[isec] /= normOcc[isec];
    else vQaOcc[isec] = 0;

    if (normQ[isec]>0) {
      vQaQtot[isec] /= normQ[isec];
      vQaQmax[isec] /= normQ[isec];
    }else {

      vQaQtot[isec] = 0;
      vQaQmax[isec] = 0;
    }
  }
}

//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessPulser(TVectorD &vMeanTime)
{
  //
  // Process the Pulser information
  // vMeanTime:     pulser mean time position in IROC-A, IROC-C, OROC-A, OROC-C
  //

  const UInt_t infoSize=4;
  //reset counters to error number
  vMeanTime.ResizeTo(infoSize);
  vMeanTime.Zero();
  //counter
  TVectorD c(infoSize);
  //retrieve pulser and ALTRO data
  if (!fPulserTmean) return;
  //
  //get Outliers
  AliTPCCalROC *rocOut=0x0;
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    AliTPCCalROC *tmeanROC=fPulserTmean->GetCalROC(isec);
    if (!tmeanROC) continue;
    rocOut=fPulserOutlier->GetCalROC(isec);
    UInt_t nchannels=tmeanROC->GetNchannels();
    for (UInt_t ichannel=0;ichannel<nchannels;++ichannel){
      if (rocOut && rocOut->GetValue(ichannel)) continue;
      Float_t val=tmeanROC->GetValue(ichannel);
      Int_t type=isec/18;
      vMeanTime[type]+=val;
      ++c[type];
    }
  }
  //calculate mean
  for (UInt_t itype=0; itype<infoSize; ++itype){
    if (c[itype]>0) vMeanTime[itype]/=c[itype];
    else vMeanTime[itype]=0;
  }
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessALTROConfig(Int_t &nMasked)
{
  //
  // Get Values from ALTRO configuration data
  //
  nMasked=-1;
  if (!fALTROMasked) return;
  nMasked=0;
  for (Int_t isec=0;isec<fALTROMasked->kNsec; ++isec){
    AliTPCCalROC *rocMasked=fALTROMasked->GetCalROC(isec);
    for (UInt_t ichannel=0; ichannel<rocMasked->GetNchannels();++ichannel){
      if (rocMasked->GetValue(ichannel)) ++nMasked;
    }
  }
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessGoofie(TVectorD & vecEntries, TVectorD & vecMedian, TVectorD &vecMean, TVectorD &vecRMS)
{
  //
  // Proces Goofie values, return statistical information of the currently set goofieArray
  // The meaning of the entries are given below
  /*
  1       TPC_ANODE_I_A00_STAT
  2       TPC_DVM_CO2
  3       TPC_DVM_DriftVelocity
  4       TPC_DVM_FCageHV
  5       TPC_DVM_GainFar
  6       TPC_DVM_GainNear
  7       TPC_DVM_N2
  8       TPC_DVM_NumberOfSparks
  9       TPC_DVM_PeakAreaFar
  10      TPC_DVM_PeakAreaNear
  11      TPC_DVM_PeakPosFar
  12      TPC_DVM_PeakPosNear
  13      TPC_DVM_PickupHV
  14      TPC_DVM_Pressure
  15      TPC_DVM_T1_Over_P
  16      TPC_DVM_T2_Over_P
  17      TPC_DVM_T_Over_P
  18      TPC_DVM_TemperatureS1
   */
  if (!fGoofieArray){
    Int_t nsensors=19;
    vecEntries.ResizeTo(nsensors);
    vecMedian.ResizeTo(nsensors);
    vecMean.ResizeTo(nsensors);
    vecRMS.ResizeTo(nsensors);
    vecEntries.Zero();
    vecMedian.Zero();
    vecMean.Zero();
    vecRMS.Zero();
    return;
  }
  Double_t kEpsilon=0.0000000001;
  Double_t kBig=100000000000.;
  Int_t nsensors = fGoofieArray->NumSensors();
  vecEntries.ResizeTo(nsensors);
  vecMedian.ResizeTo(nsensors);
  vecMean.ResizeTo(nsensors);
  vecRMS.ResizeTo(nsensors);
  TVectorF values;
  for (Int_t isensor=0; isensor<fGoofieArray->NumSensors();isensor++){
    AliDCSSensor *gsensor = fGoofieArray->GetSensor(isensor);
    if (gsensor &&  gsensor->GetGraph()){
      Int_t npoints = gsensor->GetGraph()->GetN();
      // filter zeroes
      values.ResizeTo(npoints);
      Int_t nused =0;
      for (Int_t ipoint=0; ipoint<npoints; ipoint++){
        if (TMath::Abs(gsensor->GetGraph()->GetY()[ipoint])>kEpsilon &&
            TMath::Abs(gsensor->GetGraph()->GetY()[ipoint])<kBig ){
              values[nused]=gsensor->GetGraph()->GetY()[ipoint];
              nused++;
            }
      }
      //
      vecEntries[isensor]= nused;
      if (nused>1){
        vecMedian[isensor] = TMath::Median(nused,values.GetMatrixArray());
        vecMean[isensor]   = TMath::Mean(nused,values.GetMatrixArray());
        vecRMS[isensor]    = TMath::RMS(nused,values.GetMatrixArray());
      }
    }
  }
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessPedestalVariations(TVectorF &pedestalDeviations)
{
  //
  // check the variations of the pedestal data to the reference pedestal data
  // thresholds are 0.5, 1.0, 1.5 and 2 timebins respectively.
  //
  const Int_t npar=4;
  TVectorF vThres(npar); //thresholds
  Int_t nActive=0;       //number of active channels
  
  //reset and set thresholds
  pedestalDeviations.ResizeTo(npar);
  for (Int_t i=0;i<npar;++i){
    pedestalDeviations.GetMatrixArray()[i]=0;
    vThres.GetMatrixArray()[i]=(i+1)*.5;
  }
  //check all needed data is available
  if (!fRefPedestals || !fPedestals || !fALTROMasked || !fRefALTROMasked) return;
  //loop over all channels
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    AliTPCCalROC *pROC=fPedestals->GetCalROC(isec);
    AliTPCCalROC *pRefROC=fRefPedestals->GetCalROC(isec);
    AliTPCCalROC *mROC=fALTROMasked->GetCalROC(isec);
    AliTPCCalROC *mRefROC=fRefALTROMasked->GetCalROC(isec);
    UInt_t nrows=mROC->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=mROC->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        //don't use masked channels;
        if (mROC   ->GetValue(irow,ipad)) continue;
        if (mRefROC->GetValue(irow,ipad)) continue;
        Float_t deviation=TMath::Abs(pROC->GetValue(irow,ipad)-pRefROC->GetValue(irow,ipad));
        for (Int_t i=0;i<npar;++i){
          if (deviation>vThres[i])
            ++pedestalDeviations.GetMatrixArray()[i];
        }
        ++nActive;
      }//end ipad
    }//ind irow
  }//end isec
  if (nActive>0){
    for (Int_t i=0;i<npar;++i){
      pedestalDeviations.GetMatrixArray()[i]/=nActive;
    }
  }
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessNoiseVariations(TVectorF &noiseDeviations)
{
  //
  // check the variations of the noise data to the reference noise data
  // thresholds are 5, 10, 15 and 20 percent respectively.
  //
  const Int_t npar=4;
  TVectorF vThres(npar); //thresholds
  Int_t nActive=0;       //number of active channels
  
  //reset and set thresholds
  noiseDeviations.ResizeTo(npar);
  for (Int_t i=0;i<npar;++i){
    noiseDeviations.GetMatrixArray()[i]=0;
    vThres.GetMatrixArray()[i]=(i+1)*.05;
  }
  //check all needed data is available
  if (!fRefPadNoise || !fPadNoise || !fALTROMasked || !fRefALTROMasked) return;
  //loop over all channels
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    AliTPCCalROC *nROC=fPadNoise->GetCalROC(isec);
    AliTPCCalROC *nRefROC=fRefPadNoise->GetCalROC(isec);
    AliTPCCalROC *mROC=fALTROMasked->GetCalROC(isec);
    AliTPCCalROC *mRefROC=fRefALTROMasked->GetCalROC(isec);
    UInt_t nrows=mROC->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=mROC->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        //don't use masked channels;
        if (mROC   ->GetValue(irow,ipad)) continue;
        if (mRefROC->GetValue(irow,ipad)) continue;
        if (nRefROC->GetValue(irow,ipad)==0) continue;
        Float_t deviation=(nROC->GetValue(irow,ipad)/nRefROC->GetValue(irow,ipad))-1;
        for (Int_t i=0;i<npar;++i){
          if (deviation>vThres[i])
            ++noiseDeviations.GetMatrixArray()[i];
        }
        ++nActive;
      }//end ipad
    }//ind irow
  }//end isec
  if (nActive>0){
    for (Int_t i=0;i<npar;++i){
      noiseDeviations.GetMatrixArray()[i]/=nActive;
    }
  }
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::ProcessPulserVariations(TVectorF &pulserQdeviations, Float_t &varQMean,
                                                Int_t &npadsOutOneTB, Int_t &npadsOffAdd)
{
  //
  // check the variations of the pulserQmean data to the reference pulserQmean data: pulserQdeviations
  // thresholds are .5, 1, 5 and 10 percent respectively.
  // 
  //
  const Int_t npar=4;
  TVectorF vThres(npar); //thresholds
  Int_t nActive=0;       //number of active channels
  
  //reset and set thresholds
  pulserQdeviations.ResizeTo(npar);
  for (Int_t i=0;i<npar;++i){
    pulserQdeviations.GetMatrixArray()[i]=0;
  }
  npadsOutOneTB=0;
  npadsOffAdd=0;
  varQMean=0;
  vThres.GetMatrixArray()[0]=.005;
  vThres.GetMatrixArray()[1]=.01;
  vThres.GetMatrixArray()[2]=.05;
  vThres.GetMatrixArray()[3]=.1;
  //check all needed data is available
  if (!fRefPulserTmean || !fPulserTmean || !fPulserQmean || !fRefPulserQmean || !fALTROMasked || !fRefALTROMasked) return;
  //
  UpdateRefPulserOutlierMap();
  //loop over all channels
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    AliTPCCalROC *pqROC=fPulserQmean->GetCalROC(isec);
    AliTPCCalROC *pqRefROC=fRefPulserQmean->GetCalROC(isec);
    AliTPCCalROC *ptROC=fPulserTmean->GetCalROC(isec);
//     AliTPCCalROC *ptRefROC=fRefPulserTmean->GetCalROC(isec);
    AliTPCCalROC *mROC=fALTROMasked->GetCalROC(isec);
    AliTPCCalROC *mRefROC=fRefALTROMasked->GetCalROC(isec);
    AliTPCCalROC *oROC=fPulserOutlier->GetCalROC(isec);
    Float_t ptmean=ptROC->GetMean(oROC);
    UInt_t nrows=mROC->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=mROC->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        //don't use masked channels;
        if (mROC   ->GetValue(irow,ipad)) continue;
        if (mRefROC->GetValue(irow,ipad)) continue;
        //don't user edge pads
        if (ipad==0||ipad==npads-1) continue;
        //data
        Float_t pq=pqROC->GetValue(irow,ipad);
        Float_t pqRef=pqRefROC->GetValue(irow,ipad);
        Float_t pt=ptROC->GetValue(irow,ipad);
//         Float_t ptRef=ptRefROC->GetValue(irow,ipad);
        //comparisons q
	Float_t deviation=TMath::Abs(pqRef)>1e-20?TMath::Abs(pq/pqRef-1):-999; 
        for (Int_t i=0;i<npar;++i){
          if (deviation>vThres[i])
            ++pulserQdeviations.GetMatrixArray()[i];
        }
        if (pqRef>11&&pq<11) ++npadsOffAdd;
        varQMean+=pq-pqRef;
        //comparisons t
        if (TMath::Abs(pt-ptmean)>1) ++npadsOutOneTB;
        ++nActive;
      }//end ipad
    }//ind irow
  }//end isec
  if (nActive>0){
    for (Int_t i=0;i<npar;++i){
      pulserQdeviations.GetMatrixArray()[i]/=nActive;
      varQMean/=nActive;
    }
  }
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::UpdatePulserOutlierMap()
{
  //
  // Update the outlier map of the pulser data
  //
  PulserOutlierMap(fPulserOutlier,fPulserTmean, fPulserQmean);
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::UpdateRefPulserOutlierMap()
{
  //
  // Update the outlier map of the pulser reference data
  //
  PulserOutlierMap(fRefPulserOutlier,fRefPulserTmean, fRefPulserQmean);
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::PulserOutlierMap(AliTPCCalPad *pulOut, const AliTPCCalPad *pulT, const AliTPCCalPad *pulQ)
{
  //
  // Create a map that contains outliers from the Pulser calibration data.
  // The outliers include masked channels, edge pads and pads with
  //   too large timing and charge variations.
  // fNpulserOutliers is the number of outliers in the Pulser calibration data.
  //   those do not contain masked and edge pads
  //
  if (!pulT||!pulQ) {
    //reset map
    pulOut->Multiply(0.);
    fNpulserOutliers=-1;
    return;
  }
  AliTPCCalROC *rocMasked=0x0;
  fNpulserOutliers=0;
  
  //Create Outlier Map
  for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
    AliTPCCalROC *tmeanROC=pulT->GetCalROC(isec);
    AliTPCCalROC *qmeanROC=pulQ->GetCalROC(isec);
    AliTPCCalROC *outROC=pulOut->GetCalROC(isec);
    if (!tmeanROC||!qmeanROC) {
      //reset outliers in this ROC
      outROC->Multiply(0.);
      continue;
    }
    if (fALTROMasked) rocMasked=fALTROMasked->GetCalROC(isec);
//     Double_t dummy=0;
//     Float_t qmedian=qmeanROC->GetLTM(&dummy,.5);
//     Float_t tmedian=tmeanROC->GetLTM(&dummy,.5);
    UInt_t nrows=tmeanROC->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=tmeanROC->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        Int_t outlier=0,masked=0;
        Float_t q=qmeanROC->GetValue(irow,ipad);
        Float_t t=tmeanROC->GetValue(irow,ipad);
        //masked channels are outliers
        if (rocMasked && rocMasked->GetValue(irow,ipad)) masked=1;
        //edge pads are outliers
        if (ipad==0||ipad==npads-1) masked=1;
        //channels with too large charge or timing deviation from the meadian are outliers
//         if (TMath::Abs(q-qmedian)>fPulQmaxLimitAbs || TMath::Abs(t-tmedian)>fPulTmaxLimitAbs) outlier=1;
        if (q<fPulQminLimit && !masked) outlier=1;
        //check for nan
        if ( !(q<10000000) || !(t<10000000)) outlier=1;
        outROC->SetValue(irow,ipad,outlier+masked);
        fNpulserOutliers+=outlier;
      }
    }
  }
}
//_____________________________________________________________________________________
AliTPCCalPad* AliTPCcalibDButil::CreatePadTime0(Int_t model, Double_t &gyA, Double_t &gyC, Double_t &chi2A, Double_t &chi2C )
{
  //
  // Create pad time0 object from pulser and/or CE data, depending on the selected model
  // Model 0: normalise each readout chamber to its mean, outlier cutted, only Pulser
  // Model 1: normalise IROCs/OROCs of each readout side to its mean, only Pulser
  // Model 2: use CE data and a combination CE fit + pulser in the outlier regions.
  //
  // In case model 2 is invoked - gy arival time gradient is also returned
  //
  gyA=0;
  gyC=0;
  AliTPCCalPad *padTime0=new AliTPCCalPad("PadTime0",Form("PadTime0-Model_%d",model));
  // decide between different models
  if (model==0||model==1){
    TVectorD vMean;
    if (model==1) ProcessPulser(vMean);
    for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
      AliTPCCalROC *rocPulTmean=fPulserTmean->GetCalROC(isec);
      if (!rocPulTmean) continue;
      AliTPCCalROC *rocTime0=padTime0->GetCalROC(isec);
      AliTPCCalROC *rocOut=fPulserOutlier->GetCalROC(isec);
      Float_t mean=rocPulTmean->GetMean(rocOut);
      //treat case where a whole partition is masked
      if ( TMath::Abs(mean)<kAlmost0 ) mean=rocPulTmean->GetMean();
      if (model==1) {
        Int_t type=isec/18;
        mean=vMean[type];
      }
      UInt_t nrows=rocTime0->GetNrows();
      for (UInt_t irow=0;irow<nrows;++irow){
        UInt_t npads=rocTime0->GetNPads(irow);
        for (UInt_t ipad=0;ipad<npads;++ipad){
          Float_t time=rocPulTmean->GetValue(irow,ipad);
          //in case of an outlier pad use the mean of the altro values.
          //This should be the most precise guess in that case.
          if (rocOut->GetValue(irow,ipad)) {
            time=GetMeanAltro(rocPulTmean,irow,ipad,rocOut);
            if ( TMath::Abs(time)<kAlmost0 ) time=mean;
          }
          Float_t val=time-mean;
          rocTime0->SetValue(irow,ipad,val);
        }
      }
    }
  } else if (model==2){  
    Double_t pgya,pgyc,pchi2a,pchi2c;
    AliTPCCalPad * padPulser = CreatePadTime0(1,pgya,pgyc,pchi2a,pchi2c);
    fCETmean->Add(padPulser,-1.);
    TVectorD vA,vC;
    AliTPCCalPad outCE("outCE","outCE");
    Int_t nOut;
    ProcessCEdata("(sector<36)++gy++gx++(lx-134)++(sector<36)*(lx-134)++(ly/lx)^2",vA,vC,nOut,chi2A, chi2C,&outCE);
    AliTPCCalPad *padFit=AliTPCCalPad::CreateCalPadFit("1++0++gy++0++(lx-134)++0++0",vA,vC);
//     AliTPCCalPad *padFit=AliTPCCalPad::CreateCalPadFit("1++(sector<36)++gy++gx++(lx-134)++(sector<36)*(lx-134)",vA,vC);
    if (!padFit) { delete padPulser; return 0;}
    gyA=vA[2];
    gyC=vC[2];
    fCETmean->Add(padPulser,1.);
    padTime0->Add(fCETmean);
    padTime0->Add(padFit,-1);  
    delete padPulser;
    TVectorD vFitROC;
    TMatrixD mFitROC;
    Float_t chi2;
    for (UInt_t isec=0;isec<AliTPCCalPad::kNsec;++isec){
      AliTPCCalROC *rocPulTmean=fPulserTmean->GetCalROC(isec);
      AliTPCCalROC *rocTime0=padTime0->GetCalROC(isec);
      AliTPCCalROC *rocOutPul=fPulserOutlier->GetCalROC(isec);
      AliTPCCalROC *rocOutCE=outCE.GetCalROC(isec);
      rocTime0->GlobalFit(rocOutCE,kFALSE,vFitROC,mFitROC,chi2);
      AliTPCCalROC *rocCEfit=AliTPCCalROC::CreateGlobalFitCalROC(vFitROC, isec);
      Float_t mean=rocPulTmean->GetMean(rocOutPul);
      if ( TMath::Abs(mean)<kAlmost0 ) mean=rocPulTmean->GetMean();
      UInt_t nrows=rocTime0->GetNrows();
      for (UInt_t irow=0;irow<nrows;++irow){
        UInt_t npads=rocTime0->GetNPads(irow);
        for (UInt_t ipad=0;ipad<npads;++ipad){
          Float_t timePulser=rocPulTmean->GetValue(irow,ipad)-mean;
          if (rocOutCE->GetValue(irow,ipad)){
            Float_t valOut=rocCEfit->GetValue(irow,ipad);
            if (!rocOutPul->GetValue(irow,ipad)) valOut+=timePulser;
            rocTime0->SetValue(irow,ipad,valOut);
          }
        }
      }
      delete rocCEfit;
    }
    delete padFit;
  }
  Double_t median = padTime0->GetMedian();
  padTime0->Add(-median);  // normalize to median
  return padTime0;
}
//_____________________________________________________________________________________
Float_t AliTPCcalibDButil::GetMeanAltro(const AliTPCCalROC *roc, const Int_t row, const Int_t pad, AliTPCCalROC *const rocOut)
{
  //
  // GetMeanAlto information
  //
  if (roc==0) return 0.;
  const Int_t sector=roc->GetSector();
  AliTPCROC *tpcRoc=AliTPCROC::Instance();
  const UInt_t altroRoc=fMapper->GetFEC(sector,row,pad)*8+fMapper->GetChip(sector,row,pad);
  Float_t mean=0;
  Int_t   n=0;
  
  //loop over a small range around the requested pad (+-10 rows/pads)
  for (Int_t irow=row-10;irow<row+10;++irow){
    if (irow<0||irow>(Int_t)tpcRoc->GetNRows(sector)-1) continue;
    for (Int_t ipad=pad-10; ipad<pad+10;++ipad){
      if (ipad<0||ipad>(Int_t)tpcRoc->GetNPads(sector,irow)-1) continue;
      const UInt_t altroCurr=fMapper->GetFEC(sector,irow,ipad)*8+fMapper->GetChip(sector,irow,ipad);
      if (altroRoc!=altroCurr) continue;
      if ( rocOut && rocOut->GetValue(irow,ipad) ) continue;
      Float_t val=roc->GetValue(irow,ipad);
      mean+=val;
      ++n;
    }
  }
  if (n>0) mean/=n;
  return mean;
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::SetRefFile(const char* filename)
{
  //
  // load cal pad objects form the reference file
  //
  TDirectory *currDir=gDirectory;
  TFile f(filename);
  fRefPedestals=(AliTPCCalPad*)f.Get("Pedestals");
  fRefPadNoise=(AliTPCCalPad*)f.Get("PadNoise");
  //pulser data
  fRefPulserTmean=(AliTPCCalPad*)f.Get("PulserTmean");
  fRefPulserTrms=(AliTPCCalPad*)f.Get("PulserTrms");
  fRefPulserQmean=(AliTPCCalPad*)f.Get("PulserQmean");
  //CE data
  fRefCETmean=(AliTPCCalPad*)f.Get("CETmean");
  fRefCETrms=(AliTPCCalPad*)f.Get("CETrms");
  fRefCEQmean=(AliTPCCalPad*)f.Get("CEQmean");
  //Altro data
//   fRefALTROAcqStart=(AliTPCCalPad*)f.Get("ALTROAcqStart");
//   fRefALTROZsThr=(AliTPCCalPad*)f.Get("ALTROZsThr");
//   fRefALTROFPED=(AliTPCCalPad*)f.Get("ALTROFPED");
//   fRefALTROAcqStop=(AliTPCCalPad*)f.Get("ALTROAcqStop");
  fRefALTROMasked=(AliTPCCalPad*)f.Get("ALTROMasked");
  f.Close();
  currDir->cd();
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::UpdateRefDataFromOCDB()
{
  //
  // set reference data from OCDB Reference map
  //
  if (!fRefMap) {
    AliWarning("Referenc map not set!");
    return;
  }
  
  TString cdbPath;
  AliCDBEntry* entry = 0x0;
  Bool_t hasAnyChanged=kFALSE;

  //pedestals
  cdbPath="TPC/Calib/Pedestals";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entries
    if (fRefPedestals) delete fRefPedestals;
    if (fRefPedestalMasked) delete fRefPedestalMasked;
    fRefPedestals=fRefPedestalMasked=0x0;
    //get new entries
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      fRefPedestals=GetRefCalPad(entry);
      delete entry;
      fRefPedestalMasked=GetAltroMasked(cdbPath, "MaskedPedestals");
    }
  }

  //noise
  cdbPath="TPC/Calib/PadNoise";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entry
    if (fRefPadNoise) delete fRefPadNoise;
    fRefPadNoise=0x0;
    //get new entry
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      fRefPadNoise=GetRefCalPad(entry);
      delete entry;
    }
  }
  
  //pulser
  cdbPath="TPC/Calib/Pulser";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entries
    if (fRefPulserTmean) delete fRefPulserTmean;
    if (fRefPulserTrms) delete fRefPulserTrms;
    if (fRefPulserQmean) delete fRefPulserQmean;
    if (fRefPulserMasked) delete fRefPulserMasked;
    fRefPulserTmean=fRefPulserTrms=fRefPulserQmean=fRefPulserMasked=0x0;
    //get new entries
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      fRefPulserTmean=GetRefCalPad(entry,"PulserTmean");
      fRefPulserTrms=GetRefCalPad(entry,"PulserTrms");
      fRefPulserQmean=GetRefCalPad(entry,"PulserQmean");
      delete entry;
      fRefPulserMasked=GetAltroMasked(cdbPath, "MaskedPulser");
    }
  }

  //ce
  cdbPath="TPC/Calib/CE";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entries
    if (fRefCETmean) delete fRefCETmean;
    if (fRefCETrms) delete fRefCETrms;
    if (fRefCEQmean) delete fRefCEQmean;
    if (fRefCEMasked) delete fRefCEMasked;
    fRefCETmean=fRefCETrms=fRefCEQmean=fRefCEMasked=0x0;
    //get new entries
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      fRefCETmean=GetRefCalPad(entry,"CETmean");
      fRefCETrms=GetRefCalPad(entry,"CETrms");
      fRefCEQmean=GetRefCalPad(entry,"CEQmean");
      delete entry;
      fRefCEMasked=GetAltroMasked(cdbPath, "MaskedCE");
    }
  }
  
  //altro data
  cdbPath="TPC/Calib/AltroConfig";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entries
    if (fRefALTROFPED) delete fRefALTROFPED;
    if (fRefALTROZsThr) delete fRefALTROZsThr;
    if (fRefALTROAcqStart) delete fRefALTROAcqStart;
    if (fRefALTROAcqStop) delete fRefALTROAcqStop;
    if (fRefALTROMasked) delete fRefALTROMasked;
    fRefALTROFPED=fRefALTROZsThr=fRefALTROAcqStart=fRefALTROAcqStop=fRefALTROMasked=0x0;
    //get new entries
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      fRefALTROFPED=GetRefCalPad(entry,"FPED");
      fRefALTROZsThr=GetRefCalPad(entry,"ZsThr");
      fRefALTROAcqStart=GetRefCalPad(entry,"AcqStart");
      fRefALTROAcqStop=GetRefCalPad(entry,"AcqStop");
      fRefALTROMasked=GetRefCalPad(entry,"Masked");
      delete entry;
    }
  }
  
  //raw data
  /*
  cdbPath="TPC/Calib/Raw";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entry
    if (fRefCalibRaw) delete fRefCalibRaw;
    //get new entry
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      TObjArray *arr=(TObjArray*)entry->GetObject();
      if (!arr){
        AliError(Form("Could not get object from entry '%s'\nPlease check!!!",entry->GetId().GetPath().Data()));
      } else {
        fRefCalibRaw=(AliTPCCalibRaw*)arr->At(0)->Clone();
      }
    }
  }
  */

  //data qa
  cdbPath="TPC/Calib/QA";
  if (HasRefChanged(cdbPath.Data())){
    hasAnyChanged=kTRUE;
    //delete old entry
    if (fRefDataQA) delete fRefDataQA;
    //get new entry
    entry=GetRefEntry(cdbPath.Data());
    if (entry){
      entry->SetOwner(kTRUE);
      fRefDataQA=dynamic_cast<AliTPCdataQA*>(entry->GetObject());
      if (!fRefDataQA){
        AliError(Form("Could not get object from entry '%s'\nPlease check!!!",entry->GetId().GetPath().Data()));
      } else {
        fRefDataQA=(AliTPCdataQA*)fRefDataQA->Clone();
      }
      delete entry;
    }
  }
  
  
//update current reference maps
  if (hasAnyChanged){
    if (fCurrentRefMap) delete fCurrentRefMap;
    fCurrentRefMap=(TMap*)fRefMap->Clone();
  }
}
//_____________________________________________________________________________________
AliTPCCalPad* AliTPCcalibDButil::GetRefCalPad(AliCDBEntry *entry, const char* objName)
{
  //
  // TObjArray object type case
  // find 'objName' in 'arr' cast is to a calPad and store it in 'pad'
  //
  AliTPCCalPad *pad=0x0;
  TObjArray *arr=(TObjArray*)entry->GetObject();
  if (!arr){
    AliError(Form("Could not get object from entry '%s'\nPlease check!!!",entry->GetId().GetPath().Data()));
    return pad;
  }
  pad=(AliTPCCalPad*)arr->FindObject(objName);
  if (!pad) {
    AliError(Form("Could not get '%s' from TObjArray in entry '%s'\nPlease check!!!",objName,entry->GetId().GetPath().Data()));
    return pad;
  }
  return (AliTPCCalPad*)pad->Clone();
}
//_____________________________________________________________________________________
AliTPCCalPad* AliTPCcalibDButil::GetRefCalPad(AliCDBEntry *entry)
{
  //
  // AliTPCCalPad object type case
  // cast object to a calPad and store it in 'pad'
  //
  AliTPCCalPad *pad=(AliTPCCalPad*)entry->GetObject();
  if (!pad) {
    AliError(Form("Could not get object from entry '%s'\nPlease check!!!",entry->GetId().GetPath().Data()));
    return 0x0;
  }
  pad=(AliTPCCalPad*)pad->Clone();
  return pad;
}
//_____________________________________________________________________________________
AliTPCCalPad* AliTPCcalibDButil::GetAltroMasked(const char* cdbPath, const char* name)
{
  //
  // set altro masked channel map for 'cdbPath'
  //
  AliTPCCalPad* pad=0x0;
  const Int_t run=GetReferenceRun(cdbPath);
  if (run<0) {
    AliError(Form("Could not get reference run number for object '%s'\nPlease check availability!!!",cdbPath));
    return pad;
  }
  AliCDBEntry *entry=AliCDBManager::Instance()->Get("TPC/Calib/AltroConfig", run);
  if (!entry) {
    AliError(Form("Could not get reference object '%s'\nPlease check availability!!!",cdbPath));
    return pad;
  }
  pad=GetRefCalPad(entry,"Masked");
  if (pad) pad->SetNameTitle(name,name);
  entry->SetOwner(kTRUE);
  delete entry;
  return pad;
}
//_____________________________________________________________________________________
void AliTPCcalibDButil::SetReferenceRun(Int_t run){
  //
  // Get Reference map
  //
  if (run<0) run=fCalibDB->GetRun();
  TString cdbPath="TPC/Calib/Ref";
  AliCDBEntry *entry=AliCDBManager::Instance()->Get(cdbPath.Data(), run);
  if (!entry) {
    AliError(Form("Could not get reference object '%s'\nPlease check availability!!!",cdbPath.Data()));
    fRefMap=0;
    return;
  }  
  entry->SetOwner(kTRUE);
  fRefMap=(TMap*)(entry->GetObject());
  AliCDBId &id=entry->GetId();
  fRefValidity.Form("%d_%d_v%d_s%d",id.GetFirstRun(),id.GetLastRun(),id.GetVersion(),id.GetSubVersion());
}
//_____________________________________________________________________________________
Bool_t AliTPCcalibDButil::HasRefChanged(const char *cdbPath)
{
  //
  // check whether a reference cdb entry has changed
  //
  if (!fCurrentRefMap) return kTRUE;
  if (GetReferenceRun(cdbPath)!=GetCurrentReferenceRun(cdbPath)) return kTRUE;
  return kFALSE;
}
//_____________________________________________________________________________________
AliCDBEntry* AliTPCcalibDButil::GetRefEntry(const char* cdbPath)
{
  //
  // get the reference AliCDBEntry for 'cdbPath'
  //
  const Int_t run=GetReferenceRun(cdbPath);
  if (run<0) {
    AliError(Form("Could not get reference run number for object '%s'\nPlease check availability!!!",cdbPath));
    return 0;
  }
  AliCDBEntry *entry=AliCDBManager::Instance()->Get(cdbPath, run);
  if (!entry) {
    AliError(Form("Could not get reference object '%s'\nPlease check availability!!!",cdbPath));
    return 0;
  }
  return entry;
}
//_____________________________________________________________________________________
Int_t AliTPCcalibDButil::GetCurrentReferenceRun(const char* type) const {
  //
  // Get reference run number for the specified OCDB path
  //
  if (!fCurrentRefMap) return -2;
  TObjString *str=dynamic_cast<TObjString*>(fCurrentRefMap->GetValue(type));
  if (!str) return -2;
  return (Int_t)str->GetString().Atoi();
}
//_____________________________________________________________________________________
Int_t AliTPCcalibDButil::GetReferenceRun(const char* type) const{
  //
  // Get reference run number for the specified OCDB path
  //
  if (!fRefMap) return -1;
  TObjString *str=dynamic_cast<TObjString*>(fRefMap->GetValue(type));
  if (!str) return -1;
  return (Int_t)str->GetString().Atoi();
}
//_____________________________________________________________________________________
AliTPCCalPad *AliTPCcalibDButil::CreateCEOutlyerMap( Int_t & noutliersCE, AliTPCCalPad * const ceOut, Float_t minSignal, Float_t cutTrmsMin,  Float_t cutTrmsMax, Float_t cutMaxDistT){
  //
  // Author:  marian.ivanov@cern.ch
  //
  // Create outlier map for CE study
  // Parameters:
  //  Return value - outlyer map
  //  noutlyersCE  - number of outlyers
  //  minSignal    - minimal total Q signal
  //  cutRMSMin    - minimal width of the signal in respect to the median 
  //  cutRMSMax    - maximal width of the signal in respect to the median 
  //  cutMaxDistT  - maximal deviation from time median per chamber
  //
  // Outlyers criteria:
  // 0. Exclude masked pads
  // 1. Exclude first two rows in IROC and last two rows in OROC
  // 2. Exclude edge pads
  // 3. Exclude channels with too large variations
  // 4. Exclude pads with too small signal
  // 5. Exclude signal with outlyers RMS
  // 6. Exclude channels to far from the chamber median	
  noutliersCE=0;
  //create outlier map
  AliTPCCalPad *out=ceOut;
  if (!out)     out= new AliTPCCalPad("outCE","outCE");
  AliTPCCalROC *rocMasked=0x0; 
  if (!fCETmean) return 0;
  if (!fCETrms) return 0;
  if (!fCEQmean) return 0;
  //
  //loop over all channels
  //
  Double_t rmsMedian         = fCETrms->GetMedian();
  for (UInt_t iroc=0;iroc<fCETmean->kNsec;++iroc){
    AliTPCCalROC *rocData=fCETmean->GetCalROC(iroc);
    if (!rocData) continue;
    if (fALTROMasked) rocMasked= fALTROMasked->GetCalROC(iroc);
    AliTPCCalROC *rocOut       = out->GetCalROC(iroc);
    AliTPCCalROC *rocCEQ       = fCEQmean->GetCalROC(iroc);
    AliTPCCalROC *rocCETrms    = fCETrms->GetCalROC(iroc);
    Double_t trocMedian        = rocData->GetMedian();
    //
    if (!rocData || !rocCEQ || !rocCETrms || !rocData) {
      noutliersCE+=AliTPCROC::Instance()->GetNChannels(iroc);
      rocOut->Add(1.);
      continue;
    }
    //
    //select outliers
    UInt_t nrows=rocData->GetNrows();
    for (UInt_t irow=0;irow<nrows;++irow){
      UInt_t npads=rocData->GetNPads(irow);
      for (UInt_t ipad=0;ipad<npads;++ipad){
        rocOut->SetValue(irow,ipad,0);
        Float_t valTmean=rocData->GetValue(irow,ipad);
        Float_t valQmean=rocCEQ->GetValue(irow,ipad);
        Float_t valTrms =rocCETrms->GetValue(irow,ipad);
        //0. exclude masked pads
        if (rocMasked && rocMasked->GetValue(irow,ipad)) {
          rocOut->SetValue(irow,ipad,1);
          continue;
        }
        //1. exclude first two rows in IROC and last two rows in OROC
        if (iroc<36){
          if (irow<2) rocOut->SetValue(irow,ipad,1);
        } else {
          if (irow>nrows-3) rocOut->SetValue(irow,ipad,1);
        }
        //2. exclude edge pads
        if (ipad==0||ipad==npads-1) rocOut->SetValue(irow,ipad,1);
        //exclude values that are exactly 0
        if ( TMath::Abs(valTmean)<kAlmost0) {
          rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
        }
        //3.  exclude channels with too large variations
        if (TMath::Abs(valTmean)>fCETmaxLimitAbs) {
          rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
        }
	//
        //4.  exclude channels with too small signal
        if (valQmean<minSignal) {
          rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
        }
        //
	//5. exclude channels with too small rms
	if (valTrms<cutTrmsMin*rmsMedian || valTrms>cutTrmsMax*rmsMedian){
	  rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
	}
        //
	//6. exclude channels to far from the chamber median	
	if (TMath::Abs(valTmean-trocMedian)>cutMaxDistT){
	  rocOut->SetValue(irow,ipad,1);
          ++noutliersCE;
	}
      }
    }
  }
  //
  return out;
}


AliTPCCalPad *AliTPCcalibDButil::CreatePulserOutlyerMap(Int_t &noutliersPulser, AliTPCCalPad * const pulserOut,Float_t cutTime, Float_t cutnRMSQ, Float_t cutnRMSrms){
  //
  // Author: marian.ivanov@cern.ch
  //
  // Create outlier map for Pulser
  // Parameters:
  //  Return value     - outlyer map
  //  noutlyersPulser  - number of outlyers
  //  cutTime          - absolute cut - distance to the median of chamber
  //  cutnRMSQ         - nsigma cut from median  q distribution per chamber
  //  cutnRMSrms       - nsigma cut from median  rms distribution 
  // Outlyers criteria:
  // 0. Exclude masked pads
  // 1. Exclude time outlyers (default 3 time bins)
  // 2. Exclude q outlyers    (default 5 sigma)
  // 3. Exclude rms outlyers  (default 5 sigma)
  noutliersPulser=0;
  AliTPCCalPad *out=pulserOut;
  if (!out)     out= new AliTPCCalPad("outPulser","outPulser");
  AliTPCCalROC *rocMasked=0x0; 
  if (!fPulserTmean) return 0;
  if (!fPulserTrms) return 0;
  if (!fPulserQmean) return 0;
  //
  //loop over all channels
  //
  for (UInt_t iroc=0;iroc<fCETmean->kNsec;++iroc){
    if (fALTROMasked)   rocMasked= fALTROMasked->GetCalROC(iroc);
    AliTPCCalROC *rocData       = fPulserTmean->GetCalROC(iroc);
    AliTPCCalROC *rocOut        = out->GetCalROC(iroc);
    AliTPCCalROC *rocPulserQ    = fPulserQmean->GetCalROC(iroc);
    AliTPCCalROC *rocPulserTrms = fPulserTrms->GetCalROC(iroc);
    //
    Double_t rocMedianT         = rocData->GetMedian();
    Double_t rocMedianQ         = rocPulserQ->GetMedian();
    Double_t rocRMSQ            = rocPulserQ->GetRMS();
    Double_t rocMedianTrms      = rocPulserTrms->GetMedian();
    Double_t rocRMSTrms         = rocPulserTrms->GetRMS();
    for (UInt_t ichannel=0;ichannel<rocData->GetNchannels();++ichannel){
      rocOut->SetValue(ichannel,0);
      Float_t valTmean=rocData->GetValue(ichannel);
      Float_t valQmean=rocPulserQ->GetValue(ichannel);
      Float_t valTrms =rocPulserTrms->GetValue(ichannel);
      Float_t valMasked =0;
      if (rocMasked) valMasked = rocMasked->GetValue(ichannel);
      Int_t isOut=0;
      if (valMasked>0.5) isOut=1;
      if (TMath::Abs(valTmean-rocMedianT)>cutTime) isOut=1;
      if (TMath::Abs(valQmean-rocMedianQ)>cutnRMSQ*rocRMSQ) isOut=1;
      if (TMath::Abs(valTrms-rocMedianTrms)>cutnRMSrms*rocRMSTrms) isOut=1;
      rocOut->SetValue(ichannel,isOut);
      if (isOut) noutliersPulser++;
    }
  }
  return out;
}


AliTPCCalPad *AliTPCcalibDButil::CreatePadTime0CE(TVectorD &fitResultsA, TVectorD&fitResultsC, Int_t &nOut, Double_t &chi2A, Double_t &chi2C, const char *dumpfile){
  //
  // Author : Marian Ivanov
  // Create pad time0 correction map using information from the CE and from pulser
  //
  //
  // Return PadTime0 to be used for time0 relative alignment
  // if dump file specified intermediat results are dumped to the fiel and can be visualized 
  // using $ALICE_ROOT/TPC/script/gui application
  //
  // fitResultsA - fitParameters A side
  // fitResultsC - fitParameters C side
  // chi2A       - chi2/ndf for A side (assuming error 1 time bin)
  // chi2C       - chi2/ndf for C side (assuming error 1 time bin)
  //
  //
  // Algorithm:
  // 1. Find outlier map for CE
  // 2. Find outlier map for Pulser
  // 3. Replace outlier by median at given sector  (median without outliers)
  // 4. Substract from the CE data pulser
  // 5. Fit the CE with formula
  //    5.1) (IROC-OROC) offset
  //    5.2) gx
  //    5.3) gy
  //    5.4) (lx-xmid)
  //    5.5) (IROC-OROC)*(lx-xmid)
  //    5.6) (ly/lx)^2
  // 6. Substract gy fit dependence from the CE data
  // 7. Add pulser back to CE data  
  // 8. Replace outliers by fit value - median of diff per given chamber -GY fit
  // 9. return CE data
  //
  // Time0 <= padCE = padCEin  -padCEfitGy  - if not outlier
  // Time0 <= padCE = padFitAll-padCEfitGy  - if outlier 

  // fit formula
  const char *formulaIn="(-1.+2.*(sector<36))*0.5++gx++gy++(lx-134.)++(-1.+2.*(sector<36))*0.5*(lx-134)++((ly/lx)^2/(0.1763)^2)";
  // output for fit formula
  const char *formulaAll="1++(-1.+2.*(sector<36))*0.5++gx++gy++(lx-134.)++(-1.+2.*(sector<36))*0.5*(lx-134)++((ly/lx)^2/(0.1763)^2)";
  // gy part of formula
  const char *formulaOut="0++0*(-1.+2.*(sector<36))*0.5++0*gx++gy++0*(lx-134.)++0*(-1.+2.*(sector<36))*0.5*(lx-134)++0*((ly/lx)^2/(0.1763)^2)";
  //
  //
  if (!fCETmean) return 0;
  Double_t pgya,pgyc,pchi2a,pchi2c;
  AliTPCCalPad * padPulserOut = CreatePulserOutlyerMap(nOut);
  AliTPCCalPad * padCEOut     = CreateCEOutlyerMap(nOut);

  AliTPCCalPad * padPulser    = CreatePadTime0(1,pgya,pgyc,pchi2a,pchi2c);
  AliTPCCalPad * padCE        = new AliTPCCalPad(*fCETmean);
  AliTPCCalPad * padCEIn      = new AliTPCCalPad(*fCETmean);
  AliTPCCalPad * padOut       = new AliTPCCalPad("padOut","padOut");   
  padPulser->SetName("padPulser");
  padPulserOut->SetName("padPulserOut");
  padCE->SetName("padCE");
  padCEIn->SetName("padCEIn");
  padCEOut->SetName("padCEOut");
  padOut->SetName("padOut");

  //
  // make combined outlyers map
  // and replace outlyers in maps with median for chamber
  //
  for (UInt_t iroc=0;iroc<fCETmean->kNsec;++iroc){  
    AliTPCCalROC * rocOut       = padOut->GetCalROC(iroc);
    AliTPCCalROC * rocPulser    = padPulser->GetCalROC(iroc);
    AliTPCCalROC * rocPulserOut = padPulserOut->GetCalROC(iroc);
    AliTPCCalROC * rocCEOut     = padCEOut->GetCalROC(iroc);
    AliTPCCalROC * rocCE        = padCE->GetCalROC(iroc);
    Double_t ceMedian           = rocCE->GetMedian(rocCEOut);
    Double_t pulserMedian       = rocPulser->GetMedian(rocCEOut);
    for (UInt_t ichannel=0;ichannel<rocOut->GetNchannels();++ichannel){
      if (rocPulserOut->GetValue(ichannel)>0) {
	rocPulser->SetValue(ichannel,pulserMedian);  
	rocOut->SetValue(ichannel,1);
      }
      if (rocCEOut->GetValue(ichannel)>0) {
	rocCE->SetValue(ichannel,ceMedian);
	rocOut->SetValue(ichannel,1);
      }
    }
  }
  //
  // remove pulser time 0
  //
  padCE->Add(padPulser,-1);
  //
  // Make fits
  //
  TMatrixD dummy;
  Float_t chi2Af,chi2Cf;  
  padCE->GlobalSidesFit(padOut,formulaIn,fitResultsA,fitResultsC,dummy,dummy,chi2Af,chi2Cf);
  chi2A=chi2Af;
  chi2C=chi2Cf;
  //
  AliTPCCalPad *padCEFitGY=AliTPCCalPad::CreateCalPadFit(formulaOut,fitResultsA,fitResultsC);
  padCEFitGY->SetName("padCEFitGy");
  //
  AliTPCCalPad *padCEFit  =AliTPCCalPad::CreateCalPadFit(formulaAll,fitResultsA,fitResultsC);
  padCEFit->SetName("padCEFit");
  //
  AliTPCCalPad* padCEDiff  = new AliTPCCalPad(*padCE);
  padCEDiff->SetName("padCEDiff");
  padCEDiff->Add(padCEFit,-1.);
  //
  // 
  padCE->Add(padCEFitGY,-1.);

  padCE->Add(padPulser,1.);  
  Double_t padmedian = padCE->GetMedian();
  padCE->Add(-padmedian);  // normalize to median
  //
  // Replace outliers by fit value - median of diff per given chamber -GY fit
  //
  for (UInt_t iroc=0;iroc<fCETmean->kNsec;++iroc){  
    AliTPCCalROC * rocOut       = padOut->GetCalROC(iroc);
    AliTPCCalROC * rocCE        = padCE->GetCalROC(iroc);
    AliTPCCalROC * rocCEFit     = padCEFit->GetCalROC(iroc);
    AliTPCCalROC * rocCEFitGY   = padCEFitGY->GetCalROC(iroc);
    AliTPCCalROC * rocCEDiff    = padCEDiff->GetCalROC(iroc);
    //
    Double_t diffMedian         = rocCEDiff->GetMedian(rocOut);
    for (UInt_t ichannel=0;ichannel<rocOut->GetNchannels();++ichannel){
      if (rocOut->GetValue(ichannel)==0) continue;
      Float_t value=rocCEFit->GetValue(ichannel)-rocCEFitGY->GetValue(ichannel)-diffMedian-padmedian;
      rocCE->SetValue(ichannel,value);
    }    
  }
  //
  //
  if (dumpfile){
    //dump to the file - result can be visualized
    AliTPCPreprocessorOnline preprocesor;
    preprocesor.AddComponent(new AliTPCCalPad(*padCE));
    preprocesor.AddComponent(new AliTPCCalPad(*padCEIn));
    preprocesor.AddComponent(new AliTPCCalPad(*padCEFit));
    preprocesor.AddComponent(new AliTPCCalPad(*padOut));
    //
    preprocesor.AddComponent(new AliTPCCalPad(*padCEFitGY));
    preprocesor.AddComponent(new AliTPCCalPad(*padCEDiff));
    //
    preprocesor.AddComponent(new AliTPCCalPad(*padCEOut));
    preprocesor.AddComponent(new AliTPCCalPad(*padPulser));
    preprocesor.AddComponent(new AliTPCCalPad(*padPulserOut));
    preprocesor.DumpToFile(dumpfile);
  } 
  delete padPulser;
  delete padPulserOut;
  delete padCEIn;
  delete padCEOut;
  delete padOut;
  delete padCEDiff;
  delete padCEFitGY;
  return padCE;
}





Int_t AliTPCcalibDButil::GetNearest(TGraph *graph, Double_t xref, Double_t &dx, Double_t &y){
  //
  // find the closest point to xref  in x  direction
  // return dx and value 
  dx = 0;
  y = 0;

  if(!graph) return 0;
  if(graph->GetN() < 1) return 0;

  Int_t index=0;
  index = TMath::BinarySearch(graph->GetN(), graph->GetX(),xref);
  if (index<0) index=0;
  if(graph->GetN()==1) {
    dx = xref-graph->GetX()[index];
  }
  else {
    if (index>=graph->GetN()-1) index=graph->GetN()-2;
    if (xref-graph->GetX()[index]>graph->GetX()[index]-xref) index++;
    dx = xref-graph->GetX()[index];
  }
  y  = graph->GetY()[index];
  return index;
}

Double_t  AliTPCcalibDButil::GetTriggerOffsetTPC(Int_t run, Int_t timeStamp, Double_t deltaT, Double_t deltaTLaser, Int_t valType){
  //
  // Get the correction of the trigger offset
  // combining information from the laser track calibration 
  // and from cosmic calibration
  //
  // run       - run number
  // timeStamp - tim stamp in seconds
  // deltaT    - integration period to calculate offset 
  // deltaTLaser -max validity of laser data
  // valType   - 0 - median, 1- mean
  // 
  // Integration vaues are just recomendation - if not possible to get points
  // automatically increase the validity by factor 2  
  // (recursive algorithm until one month of data taking)
  //
  //
  const Float_t kLaserCut=0.0005;
  const Int_t   kMaxPeriod=3600*24*30*12; // one year max
  const Int_t   kMinPoints=20;
  //
  TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  if (!array) {
    AliTPCcalibDB::Instance()->UpdateRunInformations(run,kFALSE); 
  }
  array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  if (!array) return 0;
  //
  TGraphErrors *laserA[3]={0,0,0};
  TGraphErrors *laserC[3]={0,0,0};
  TGraphErrors *cosmicAll=0;
  laserA[1]=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DRIFT_LASER_ALL_A");
  laserC[1]=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DRIFT_LASER_ALL_C");
  cosmicAll =(TGraphErrors*)array->FindObject("TGRAPHERRORS_MEAN_VDRIFT_COSMICS_ALL");
  //
  //
  if (!cosmicAll) return 0;
  Int_t nmeasC=cosmicAll->GetN();
  Float_t *tdelta = new Float_t[nmeasC];
  Int_t nused=0;
  for (Int_t i=0;i<nmeasC;i++){
    if (TMath::Abs(cosmicAll->GetX()[i]-timeStamp)>deltaT) continue;
    Float_t ccosmic=cosmicAll->GetY()[i];
    Double_t yA=0,yC=0,dA=0,dC=0;
    if (laserA[1]) GetNearest(laserA[1], cosmicAll->GetX()[i],dA,yA);
    if (laserC[1]) GetNearest(laserC[1], cosmicAll->GetX()[i],dC,yC);
    //yA=laserA[1]->Eval(cosmicAll->GetX()[i]);
    //yC=laserC[1]->Eval(cosmicAll->GetX()[i]);
    //
    if (TMath::Sqrt(dA*dA+dC*dC)>deltaTLaser) continue;
    Float_t claser=0;
    if (TMath::Abs(yA-yC)<kLaserCut) {
      claser=(yA-yC)*0.5;
    }else{
      if (i%2==0)  claser=yA;
      if (i%2==1)  claser=yC;
    }
    tdelta[nused]=ccosmic-claser;
    nused++;
  }
  if (nused<kMinPoints &&deltaT<kMaxPeriod) {
    delete [] tdelta;
    return  AliTPCcalibDButil::GetTriggerOffsetTPC(run, timeStamp, deltaT*2,deltaTLaser);
  }
  if (nused<kMinPoints) {
    delete [] tdelta;
    //AliWarning("AliFatal: No time offset calibration available\n");
    return 0;
  }
  Double_t median = TMath::Median(nused,tdelta);
  Double_t mean  = TMath::Mean(nused,tdelta);
  delete [] tdelta;
  return (valType==0) ? median:mean;
}

Double_t  AliTPCcalibDButil::GetVDriftTPC(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT, Double_t deltaTLaser, Int_t valType){
  //
  // Get the correction of the drift velocity
  // combining information from the laser track calibration 
  // and from cosmic calibration
  //
  // dist      - return value - distance to closest point in graph
  // run       - run number
  // timeStamp - tim stamp in seconds
  // deltaT    - integration period to calculate time0 offset 
  // deltaTLaser -max validity of laser data
  // valType   - 0 - median, 1- mean
  // 
  // Integration vaues are just recomendation - if not possible to get points
  // automatically increase the validity by factor 2  
  // (recursive algorithm until one month of data taking)
  //
  //
  //
  TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  if (!array) {
    AliTPCcalibDB::Instance()->UpdateRunInformations(run,kFALSE); 
  }
  array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  if (!array) return 0;
  TGraphErrors *cosmicAll=0;
  cosmicAll =(TGraphErrors*)array->FindObject("TGRAPHERRORS_MEAN_VDRIFT_COSMICS_ALL");
  if (!cosmicAll) return 0;
  Double_t grY=0;
  AliTPCcalibDButil::GetNearest(cosmicAll,timeStamp,dist,grY);

  Double_t t0= AliTPCcalibDButil::GetTriggerOffsetTPC(run,timeStamp, deltaT, deltaTLaser,valType);
  Double_t vcosmic =  AliTPCcalibDButil::EvalGraphConst(cosmicAll, timeStamp);
  if (timeStamp>cosmicAll->GetX()[cosmicAll->GetN()-1])  vcosmic=cosmicAll->GetY()[cosmicAll->GetN()-1];
  if (timeStamp<cosmicAll->GetX()[0])  vcosmic=cosmicAll->GetY()[0];
  return  vcosmic-t0;

  /*
    Example usage:
    
    Int_t run=89000
    TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
    cosmicAll =(TGraphErrors*)array->FindObject("TGRAPHERRORS_MEAN_VDRIFT_COSMICS_ALL"); 
    laserA=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DRIFT_LASER_ALL_A");
    //
    Double_t *yvd= new Double_t[cosmicAll->GetN()];
    Double_t *yt0= new Double_t[cosmicAll->GetN()];
    for (Int_t i=0; i<cosmicAll->GetN();i++) yvd[i]=AliTPCcalibDButil::GetVDriftTPC(run,cosmicAll->GetX()[i]);
    for (Int_t i=0; i<cosmicAll->GetN();i++) yt0[i]=AliTPCcalibDButil::GetTriggerOffsetTPC(run,cosmicAll->GetX()[i]);

    TGraph *pcosmicVd=new TGraph(cosmicAll->GetN(), cosmicAll->GetX(), yvd);
    TGraph *pcosmicT0=new TGraph(cosmicAll->GetN(), cosmicAll->GetX(), yt0);

  */
  
}

const char* AliTPCcalibDButil::GetGUIRefTreeDefaultName()
{
  //
  // Create a default name for the gui file
  //
  
  return Form("guiRefTreeRun%s.root",GetRefValidity());
}

Bool_t AliTPCcalibDButil::CreateGUIRefTree(const char* filename)
{
  //
  // Create a gui reference tree
  // if dirname and filename are empty default values will be used
  // this is the recommended way of using this function
  // it allows to check whether a file with the given run validity alredy exists
  //
  if (!AliCDBManager::Instance()->GetDefaultStorage()){
    AliError("Default Storage not set. Cannot create reference calibration Tree!");
    return kFALSE;
  }
  
  TString file=filename;
  if (file.IsNull()) file=GetGUIRefTreeDefaultName();
  
  AliTPCPreprocessorOnline prep;
  //noise and pedestals
  if (fRefPedestals) prep.AddComponent(new AliTPCCalPad(*(fRefPedestals)));
  if (fRefPadNoise ) prep.AddComponent(new AliTPCCalPad(*(fRefPadNoise)));
  if (fRefPedestalMasked) prep.AddComponent(new AliTPCCalPad(*fRefPedestalMasked));
  //pulser data
  if (fRefPulserTmean) prep.AddComponent(new AliTPCCalPad(*(fRefPulserTmean)));
  if (fRefPulserTrms ) prep.AddComponent(new AliTPCCalPad(*(fRefPulserTrms)));
  if (fRefPulserQmean) prep.AddComponent(new AliTPCCalPad(*(fRefPulserQmean)));
  if (fRefPulserMasked) prep.AddComponent(new AliTPCCalPad(*fRefPulserMasked));
  //CE data
  if (fRefCETmean) prep.AddComponent(new AliTPCCalPad(*(fRefCETmean)));
  if (fRefCETrms ) prep.AddComponent(new AliTPCCalPad(*(fRefCETrms)));
  if (fRefCEQmean) prep.AddComponent(new AliTPCCalPad(*(fRefCEQmean)));
  if (fRefCEMasked) prep.AddComponent(new AliTPCCalPad(*fRefCEMasked));
  //Altro data
  if (fRefALTROAcqStart ) prep.AddComponent(new AliTPCCalPad(*(fRefALTROAcqStart )));
  if (fRefALTROZsThr    ) prep.AddComponent(new AliTPCCalPad(*(fRefALTROZsThr    )));
  if (fRefALTROFPED     ) prep.AddComponent(new AliTPCCalPad(*(fRefALTROFPED     )));
  if (fRefALTROAcqStop  ) prep.AddComponent(new AliTPCCalPad(*(fRefALTROAcqStop  )));
  if (fRefALTROMasked   ) prep.AddComponent(new AliTPCCalPad(*(fRefALTROMasked   )));
  //QA
  AliTPCdataQA *dataQA=fRefDataQA;
  if (dataQA) {
    if (dataQA->GetNLocalMaxima())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetNLocalMaxima())));
    if (dataQA->GetMaxCharge())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetMaxCharge())));
    if (dataQA->GetMeanCharge())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetMeanCharge())));
    if (dataQA->GetNoThreshold())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetNoThreshold())));
    if (dataQA->GetNTimeBins())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetNTimeBins())));
    if (dataQA->GetNPads())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetNPads())));
    if (dataQA->GetTimePosition())
      prep.AddComponent(new AliTPCCalPad(*(dataQA->GetTimePosition())));
  }
  prep.DumpToFile(file.Data());
  return kTRUE;
}

Double_t  AliTPCcalibDButil::GetVDriftTPCLaserTracks(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT, Int_t side){
  //
  // Get the correction of the drift velocity using the offline laser tracks calbration
  //
  // run       - run number
  // timeStamp - tim stamp in seconds
  // deltaT    - integration period to calculate time0 offset 
  // side      - 0 - A side,  1 - C side, 2 - mean from both sides
  // Note in case no data form both A and C side - the value from active side used
  TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);

  return GetVDriftTPCLaserTracksCommon(dist, timeStamp, deltaT, side, array);
}

Double_t  AliTPCcalibDButil::GetVDriftTPCLaserTracksOnline(Double_t &dist, Int_t /*run*/, Int_t timeStamp, Double_t deltaT, Int_t side){
  //
  // Get the correction of the drift velocity using the online laser tracks calbration
  //
  // run       - run number
  // timeStamp - tim stamp in seconds
  // deltaT    - integration period to calculate time0 offset
  // side      - 0 - A side,  1 - C side, 2 - mean from both sides
  // Note in case no data form both A and C side - the value from active side used
  TObjArray *array =AliTPCcalibDB::Instance()->GetCEfitsDrift();

  Double_t dv = GetVDriftTPCLaserTracksCommon(dist, timeStamp, deltaT, side, array);
  AliTPCParam *param  =AliTPCcalibDB::Instance()->GetParameters();
  if (!param) return 0;

  //the drift velocity is hard wired in the AliTPCCalibCE class, since online there is no access to OCDB
  dv*=param->GetDriftV()/2.61301900000000000e+06;
  if (dv>1e-20) dv=1/dv-1;
  else return 0;
  // T/P correction
  TObjArray*  cearray =AliTPCcalibDB::Instance()->GetCEData();
  
  AliTPCSensorTempArray *temp = (AliTPCSensorTempArray*)cearray->FindObject("TempMap");
  AliDCSSensor *press         = (AliDCSSensor*)cearray->FindObject("CavernAtmosPressure");
  
  Double_t corrPTA=0;
  Double_t corrPTC=0;
  
  if (temp&&press) {
    AliTPCCalibVdrift corr(temp,press,0);
    corrPTA=corr.GetPTRelative(timeStamp,0);
    corrPTC=corr.GetPTRelative(timeStamp,1);
  }
  
  if (side==0) dv -=  corrPTA;
  if (side==1) dv -=  corrPTC;
  if (side==2) dv -=  (corrPTA+corrPTC)/2;
  
  return dv;
}

Double_t  AliTPCcalibDButil::GetVDriftTPCLaserTracksCommon(Double_t &dist, Int_t timeStamp, Double_t deltaT,
  Int_t side, TObjArray * const array){
  //
  // common drift velocity retrieval for online and offline method
  //
  TGraphErrors *grlaserA=0;
  TGraphErrors *grlaserC=0;
  Double_t vlaserA=0, vlaserC=0;
  if (!array) return 0;
  grlaserA=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DRIFT_LASER_ALL_A");
  grlaserC=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DRIFT_LASER_ALL_C");
  Double_t deltaY;
  if (grlaserA && grlaserA->GetN()>0) {
    AliTPCcalibDButil::GetNearest(grlaserA,timeStamp,dist,deltaY);
    if (TMath::Abs(dist)>deltaT)  vlaserA= deltaY;
    else  vlaserA = AliTPCcalibDButil::EvalGraphConst(grlaserA,timeStamp);
  }
  if (grlaserC && grlaserC->GetN()>0) {
    AliTPCcalibDButil::GetNearest(grlaserC,timeStamp,dist,deltaY);
    if (TMath::Abs(dist)>deltaT)  vlaserC= deltaY;
    else  vlaserC = AliTPCcalibDButil::EvalGraphConst(grlaserC,timeStamp);
  }
  if (side==0) return vlaserA;
  if (side==1) return vlaserC;
  Double_t mdrift=(vlaserA+vlaserC)*0.5;
  if (!grlaserA) return vlaserC;
  if (!grlaserC) return vlaserA;
  return mdrift;
}


Double_t  AliTPCcalibDButil::GetVDriftTPCCE(Double_t &dist,Int_t run, Int_t timeStamp, Double_t deltaT, Int_t side){
  //
  // Get the correction of the drift velocity using the CE laser data
  // combining information from the CE,  laser track calibration
  // and P/T calibration 
  //
  // run       - run number
  // timeStamp - tim stamp in seconds
  // deltaT    - integration period to calculate time0 offset 
  // side      - 0 - A side,  1 - C side, 2 - mean from both sides
  TObjArray *arrT     =AliTPCcalibDB::Instance()->GetCErocTtime();
  if (!arrT) return 0;
  AliTPCParam *param  =AliTPCcalibDB::Instance()->GetParameters();
  TObjArray*  cearray =AliTPCcalibDB::Instance()->GetCEData(); 
  AliTPCCalibVdrift * driftCalib = (AliTPCCalibVdrift *)cearray->FindObject("driftPTCE");
  //
  //
  Double_t corrPTA = 0, corrPTC=0;
  Double_t ltime0A = 0, ltime0C=0;
  Double_t gry=0;
  Double_t corrA=0, corrC=0;
  Double_t timeA=0, timeC=0;
  const Double_t kEpsilon = 0.00001;
  TGraph *graphA = (TGraph*)arrT->At(72);
  TGraph *graphC = (TGraph*)arrT->At(73);
  if (!graphA && !graphC) return 0.;
  if (graphA &&graphA->GetN()>0) {
    AliTPCcalibDButil::GetNearest(graphA,timeStamp,dist,gry);
    timeA   = AliTPCcalibDButil::EvalGraphConst(graphA,timeStamp);
    Int_t mtime   =TMath::Nint((graphA->GetX()[0]+graphA->GetX()[graphA->GetN()-1])*0.5);
    ltime0A       = GetLaserTime0(run,mtime,TMath::Nint(deltaT),0);
    if(ltime0A < kEpsilon) return 0;
    if (driftCalib) corrPTA =  driftCalib->GetPTRelative(timeStamp,0);
    corrA = (param->GetZLength(36)/(timeA*param->GetTSample()*(1.-ltime0A)-param->GetL1Delay()-0*param->GetZSigma()/param->GetDriftV()))/param->GetDriftV()-1;
    corrA-=corrPTA;
  }
  if (graphC&&graphC->GetN()>0){
    AliTPCcalibDButil::GetNearest(graphC,timeStamp,dist,gry);
    timeC=AliTPCcalibDButil::EvalGraphConst(graphC,timeStamp);
    Int_t mtime=TMath::Nint((graphC->GetX()[0]+graphC->GetX()[graphC->GetN()-1])*0.5);
    ltime0C       = GetLaserTime0(run,mtime,TMath::Nint(deltaT),0);
    if(ltime0C < kEpsilon) return 0;   
if (driftCalib) corrPTC =  driftCalib->GetPTRelative(timeStamp,0);
    corrC = (param->GetZLength(54)/(timeC*param->GetTSample()*(1.-ltime0C)-param->GetL1Delay()-0*param->GetZSigma()/param->GetDriftV()))/param->GetDriftV()-1;
    corrC-=corrPTC;
  }
  
  if (side ==0 ) return corrA;
  if (side ==1 ) return corrC;
  Double_t corrM= (corrA+corrC)*0.5;
  if (!graphA) corrM=corrC; 
  if (!graphC) corrM=corrA; 
  return corrM;
}

Double_t  AliTPCcalibDButil::GetVDriftTPCITS(Double_t &dist, Int_t run, Int_t timeStamp){
  //
  // return drift velocity using the TPC-ITS matchin method
  // return also distance to the closest point
  //
  TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  TGraphErrors *graph=0;
  dist=0;
  if (!array) return 0;
  //array->ls();
  graph = (TGraphErrors*)array->FindObject("ALIGN_ITSB_TPC_DRIFTVD");
  if (!graph) graph = (TGraphErrors*)array->FindObject("ALIGN_TOFB_TPC_DRIFTVD");
  if (!graph) return 0;
  Double_t deltaY;
  AliTPCcalibDButil::GetNearest(graph,timeStamp,dist,deltaY); 
  Double_t value = AliTPCcalibDButil::EvalGraphConst(graph,timeStamp);
  return value;
}

Double_t AliTPCcalibDButil::GetTime0TPCITS(Double_t &dist, Int_t run, Int_t timeStamp){
  //
  // Get time dependent time 0 (trigger delay in cm) correction
  // Arguments:
  // timestamp - timestamp
  // run       - run number
  //
  // Notice - Extrapolation outside of calibration range  - using constant function
  //
  TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  TGraphErrors *graph=0;
  dist=0;
  if (!array) return 0;
  graph = (TGraphErrors*)array->FindObject("ALIGN_ITSB_TPC_T0");
  if (!graph) graph = (TGraphErrors*)array->FindObject("ALIGN_ITSB_TPC_T0");
  if (!graph) return 0;
  Double_t deltaY;
  AliTPCcalibDButil::GetNearest(graph,timeStamp,dist,deltaY); 
  Double_t value = AliTPCcalibDButil::EvalGraphConst(graph,timeStamp);
  return value;
}





Int_t  AliTPCcalibDButil::MakeRunList(Int_t startRun, Int_t stopRun){
  //
  // VERY obscure method - we need something in framework
  // Find the TPC runs with temperature OCDB entry
  // cache the start and end of the run
  //
  AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("TPC/Calib/Temperature");
  if (!storage) storage = AliCDBManager::Instance()->GetDefaultStorage();
  if (!storage) return 0;
  TString path=storage->GetURI(); 
  TString runsT;
  {    
    TString command;
    if (path.Contains("local")){  // find the list if local system
      path.ReplaceAll("local://","");
      path+="TPC/Calib/Temperature";
      command=Form("ls %s  |  sed s/_/\\ /g | awk '{print \"r\"$2}'  ",path.Data());
    }
    runsT=gSystem->GetFromPipe(command);
  }
  TObjArray *arr= runsT.Tokenize("r");
  if (!arr) return 0;
  //
  TArrayI indexes(arr->GetEntries());
  TArrayI runs(arr->GetEntries());
  Int_t naccept=0;
  {for (Int_t irun=0;irun<arr->GetEntries();irun++){
      Int_t irunN = atoi(arr->At(irun)->GetName());
      if (irunN<startRun) continue;
      if (irunN>stopRun) continue;
      runs[naccept]=irunN;
      naccept++;
    }}
  delete arr;
  fRuns.Set(naccept);
  fRunsStart.Set(fRuns.fN);
  fRunsStop.Set(fRuns.fN);
  TMath::Sort(fRuns.fN, runs.fArray, indexes.fArray,kFALSE);
  for (Int_t irun=0; irun<fRuns.fN; irun++)  fRuns[irun]=runs[indexes[irun]];
  
  //
  AliCDBEntry * entry = 0;
  {for (Int_t irun=0;irun<fRuns.fN; irun++){
      entry = AliCDBManager::Instance()->Get("TPC/Calib/Temperature",fRuns[irun]);
      if (!entry) continue;
      AliTPCSensorTempArray *  tmpRun = dynamic_cast<AliTPCSensorTempArray*>(entry->GetObject());
      if (!tmpRun) continue;
      fRunsStart[irun]=tmpRun->GetStartTime().GetSec();
      fRunsStop[irun]=tmpRun->GetEndTime().GetSec();
      //AliInfo(Form("irun\t%d\tRun\t%d\t%d\t%d\n",irun,fRuns[irun],tmpRun->GetStartTime().GetSec(),tmpRun->GetEndTime().GetSec()));
    }}
  return fRuns.fN;
}


Int_t AliTPCcalibDButil::FindRunTPC(Int_t    itime, Bool_t debug){
  //
  // binary search - find the run for given time stamp
  //
  Int_t index0  = TMath::BinarySearch(fRuns.fN, fRunsStop.fArray,itime);
  Int_t index1  = TMath::BinarySearch(fRuns.fN, fRunsStart.fArray,itime);
  Int_t cindex  = -1;
  for (Int_t index=index0; index<=index1; index++){
    if (fRunsStart[index]<=itime && fRunsStop[index]>=itime) cindex=index;
    if (debug) {
      AliInfo(Form("%d\t%d\t%d\n",fRuns[index], fRunsStart[index]-itime, fRunsStop[index]-itime));
    }
  }
  if (cindex<0) cindex =(index0+index1)/2;
  if (cindex<0) {
    return 0; 
  }
  return fRuns[cindex];
}





TGraph* AliTPCcalibDButil::FilterGraphMedian(TGraph * graph, Float_t sigmaCut,Double_t &medianY){
  //
  // filter outlyer measurement
  // Only points around median +- sigmaCut filtered 
  if (!graph) return  0;
  Int_t kMinPoints=2;
  Int_t npoints0 = graph->GetN();
  Int_t npoints=0;
  Float_t  rmsY=0;
  //
  //
  if (npoints0<kMinPoints) return 0;

  Double_t *outx=new Double_t[npoints0];
  Double_t *outy=new Double_t[npoints0];
  for (Int_t iter=0; iter<3; iter++){
    npoints=0;
    for (Int_t ipoint=0; ipoint<npoints0; ipoint++){
      if (graph->GetY()[ipoint]==0) continue;
      if (iter>0 &&TMath::Abs(graph->GetY()[ipoint]-medianY)>sigmaCut*rmsY) continue;  
      outx[npoints]  = graph->GetX()[ipoint];
      outy[npoints]  = graph->GetY()[ipoint];
      npoints++;
    }
    if (npoints<=1) break;
    medianY  =TMath::Median(npoints,outy);
    rmsY   =TMath::RMS(npoints,outy);
  }
  TGraph *graphOut=0;
  if (npoints>1) graphOut= new TGraph(npoints,outx,outy); 
  delete [] outx;
  delete [] outy;
  return graphOut;
}


TGraph* AliTPCcalibDButil::FilterGraphMedianAbs(TGraph * graph, Float_t cut,Double_t &medianY){
  //
  // filter outlyer measurement
  // Only points around median +- cut filtered 
  if (!graph) return  0;
  Int_t kMinPoints=2;
  Int_t npoints0 = graph->GetN();
  Int_t npoints=0;
//   Float_t  rmsY=0;
  //
  //
  if (npoints0<kMinPoints) return 0;

  Double_t *outx=new Double_t[npoints0];
  Double_t *outy=new Double_t[npoints0];
  for (Int_t iter=0; iter<3; iter++){
    npoints=0;
    for (Int_t ipoint=0; ipoint<npoints0; ipoint++){
      if (graph->GetY()[ipoint]==0) continue;
      if (iter>0 &&TMath::Abs(graph->GetY()[ipoint]-medianY)>cut) continue;  
      outx[npoints]  = graph->GetX()[ipoint];
      outy[npoints]  = graph->GetY()[ipoint];
      npoints++;
    }
    if (npoints<=1) break;
    medianY  =TMath::Median(npoints,outy);
//     rmsY   =TMath::RMS(npoints,outy);
  }
  TGraph *graphOut=0;
  if (npoints>1) graphOut= new TGraph(npoints,outx,outy); 
  delete [] outx;
  delete [] outy;
  return graphOut;
}



TGraphErrors* AliTPCcalibDButil::FilterGraphMedianErr(TGraphErrors * const graph, Float_t sigmaCut,Double_t &medianY){
  //
  // filter outlyer measurement
  // Only points with normalized errors median +- sigmaCut filtered
  //
  Int_t kMinPoints=10;
  Int_t npoints0 = graph->GetN();
  Int_t npoints=0;
  Float_t  medianErr=0, rmsErr=0;
  //
  //
  if (npoints0<kMinPoints) return 0;

  Double_t *outx=new Double_t[npoints0];
  Double_t *outy=new Double_t[npoints0];
  Double_t *erry=new Double_t[npoints0];
  Double_t *nerry=new Double_t[npoints0];
  Double_t *errx=new Double_t[npoints0];

  for (Int_t iter=0; iter<3; iter++){
    npoints=0;
    for (Int_t ipoint=0; ipoint<npoints0; ipoint++){
      nerry[npoints]  = graph->GetErrorY(ipoint);
      if (iter>0 &&TMath::Abs(nerry[npoints]-medianErr)>sigmaCut*rmsErr) continue;  
      erry[npoints]  = graph->GetErrorY(ipoint);
      outx[npoints]  = graph->GetX()[ipoint];
      outy[npoints]  = graph->GetY()[ipoint];
      errx[npoints]  = graph->GetErrorY(ipoint);
      npoints++;
    }
    if (npoints==0) break;
    medianErr=TMath::Median(npoints,erry);
    medianY  =TMath::Median(npoints,outy);
    rmsErr   =TMath::RMS(npoints,erry);
  }
  TGraphErrors *graphOut=0;
  if (npoints>1) graphOut= new TGraphErrors(npoints,outx,outy,errx,erry); 
  delete []outx;
  delete []outy;
  delete []erry;
  delete []nerry;
  delete []errx;
  return graphOut;
}


void AliTPCcalibDButil::Sort(TGraph *graph){
  //
  // sort array - neccessay for approx
  //
  Int_t npoints = graph->GetN();
  Int_t *indexes=new Int_t[npoints];
  Double_t *outx=new Double_t[npoints];
  Double_t *outy=new Double_t[npoints];
  TMath::Sort(npoints, graph->GetX(),indexes,kFALSE);
  for (Int_t i=0;i<npoints;i++) outx[i]=graph->GetX()[indexes[i]];
  for (Int_t i=0;i<npoints;i++) outy[i]=graph->GetY()[indexes[i]];
  for (Int_t i=0;i<npoints;i++) graph->GetX()[i]=outx[i];
  for (Int_t i=0;i<npoints;i++) graph->GetY()[i]=outy[i];
 
  delete [] indexes;
  delete [] outx;
  delete [] outy;
}
void AliTPCcalibDButil::SmoothGraph(TGraph *graph, Double_t delta){
  //
  // smmoth graph - mean on the interval
  //
  Sort(graph);
  Int_t npoints = graph->GetN();
  Double_t *outy=new Double_t[npoints];
  
  for (Int_t ipoint=0; ipoint<npoints; ipoint++){
    Double_t lx=graph->GetX()[ipoint];
    Int_t index0=TMath::BinarySearch(npoints, graph->GetX(),lx-delta);
    Int_t index1=TMath::BinarySearch(npoints, graph->GetX(),lx+delta);
    if (index0<0) index0=0;
    if (index1>=npoints-1) index1=npoints-1;
    if ((index1-index0)>1){
      outy[ipoint]  = TMath::Mean(index1-index0, &(graph->GetY()[index0]));
    }else{
      outy[ipoint]=graph->GetY()[ipoint];
    }
  }
 //  TLinearFitter  fitter(3,"pol2");
//   for (Int_t ipoint=0; ipoint<npoints; ipoint++){
//     Double_t lx=graph->GetX()[ipoint];
//     Int_t index0=TMath::BinarySearch(npoints, graph->GetX(),lx-delta);
//     Int_t index1=TMath::BinarySearch(npoints, graph->GetX(),lx+delta);
//     if (index0<0) index0=0;
//     if (index1>=npoints-1) index1=npoints-1;
//     fitter.ClearPoints();
//     for (Int_t jpoint=0;jpoint<index1-index0; jpoint++)
//     if ((index1-index0)>1){
//       outy[ipoint]  = TMath::Mean(index1-index0, &(graph->GetY()[index0]));
//     }else{
//       outy[ipoint]=graph->GetY()[ipoint];
//     }
//   }



  for (Int_t ipoint=0; ipoint<npoints; ipoint++){
    graph->GetY()[ipoint] = outy[ipoint];
  }
  delete[] outy;
}

Double_t AliTPCcalibDButil::EvalGraphConst(TGraph * const graph, Double_t xref){
  //
  // Use constant interpolation outside of range 
  //
  if (!graph) {
    AliInfoGeneral("AliTPCcalibDButil","AliTPCcalibDButil::EvalGraphConst: 0 pointer\n");
    return 0;
  }

  if (graph->GetN()<1){
    AliInfoGeneral("AliTPCcalibDButil","AliTPCcalibDButil::EvalGraphConst: Empty graph \n");
    return 0;
  }
 

  if (xref<graph->GetX()[0]) return graph->GetY()[0];
  if (xref>graph->GetX()[graph->GetN()-1]) return graph->GetY()[graph->GetN()-1]; 

  //  AliInfo(Form("graph->Eval(graph->GetX()[0]) %f, graph->Eval(xref) %f \n",graph->Eval(graph->GetX()[0]), graph->Eval(xref)));

  if(graph->GetN()==1)
    return graph->Eval(graph->GetX()[0]);


  return graph->Eval(xref);
}

Double_t AliTPCcalibDButil::EvalGraphConst(AliSplineFit *graph, Double_t xref){
  //
  // Use constant interpolation outside of range also for spline fits
  //
  if (!graph) {
    AliInfoGeneral("AliTPCcalibDButil","AliTPCcalibDButil::EvalGraphConst: 0 pointer\n");
    return 0;
  }
  if (graph->GetKnots()<1){
    AliInfoGeneral("AliTPCcalibDButil","AliTPCcalibDButil::EvalGraphConst: Empty graph");
    return 0;
  }
  if (xref<graph->GetX()[0]) return graph->GetY0()[0];
  if (xref>graph->GetX()[graph->GetKnots()-1]) return graph->GetY0()[graph->GetKnots()-1]; 
  return graph->Eval( xref);
}

Float_t AliTPCcalibDButil::FilterSensor(AliDCSSensor * sensor, Double_t ymin, Double_t ymax, Double_t maxdy,  Double_t sigmaCut){
  //
  // Filter DCS sensor information
  //   ymin     - minimal value
  //   ymax     - max value
  //   maxdy    - maximal deirivative
  //   sigmaCut - cut on values and derivative in terms of RMS distribution
  // Return value - accepted fraction
  // 
  // Algorithm:
  //
  // 0. Calculate median and rms of values in specified range
  // 1. Filter out outliers - median+-sigmaCut*rms
  //    values replaced by median
  //
  AliSplineFit * fit    = sensor->GetFit();
  if (!fit) return 0.;
  Int_t          nknots = fit->GetKnots();
  if (nknots==0) {
    delete fit;
    sensor->SetFit(0);
    return 0;
  }
  //
  Double_t *yin0  = new Double_t[nknots];
  Double_t *yin1  = new Double_t[nknots];
  Int_t naccept=0;
  
  for (Int_t iknot=0; iknot< nknots; iknot++){
    if (fit->GetY0()[iknot]>ymin && fit->GetY0()[iknot]<ymax){
      yin0[naccept]  = fit->GetY0()[iknot];
      yin1[naccept]  = fit->GetY1()[iknot];
      if (TMath::Abs(fit->GetY1()[iknot])>maxdy) yin1[naccept]=0;
      naccept++;
    }
  }
  if (naccept<1) {
    delete fit;
    sensor->SetFit(0);
    delete [] yin0;
    delete [] yin1;
    return 0.;
  }

  Double_t medianY0=0, medianY1=0;
  Double_t rmsY0   =0, rmsY1=0;
  medianY0 = TMath::Median(naccept, yin0);
  medianY1 = TMath::Median(naccept, yin1);
  rmsY0    = TMath::RMS(naccept, yin0);
  rmsY1    = TMath::RMS(naccept, yin1);
  naccept=0;
  //
  // 1. Filter out outliers - median+-sigmaCut*rms
  //    values replaced by median
  //    if replaced the derivative set to 0
  //
  for (Int_t iknot=0; iknot< nknots; iknot++){
    Bool_t isOK=kTRUE;
    if (TMath::Abs(fit->GetY0()[iknot]-medianY0)>sigmaCut*rmsY0) isOK=kFALSE;
    if (TMath::Abs(fit->GetY1()[iknot]-medianY1)>sigmaCut*rmsY1) isOK=kFALSE;
    if (nknots<2) fit->GetY1()[iknot]=0;
    if (TMath::Abs(fit->GetY1()[iknot])>maxdy) fit->GetY1()[iknot]=0;
    if (!isOK){
      fit->GetY0()[iknot]=medianY0;
      fit->GetY1()[iknot]=0;
    }else{
      naccept++;
    }
  }
  delete [] yin0;
  delete [] yin1;
  return Float_t(naccept)/Float_t(nknots);
}

Float_t  AliTPCcalibDButil::FilterTemperature(AliTPCSensorTempArray *tempArray, Double_t ymin, Double_t ymax, Double_t sigmaCut){
  //
  // Filter temperature array
  // tempArray    - array of temperatures         -
  // ymin         - minimal accepted temperature  - default 15
  // ymax         - maximal accepted temperature  - default 22
  // sigmaCut     - values filtered on interval median+-sigmaCut*rms - defaut 5
  // return value - fraction of filtered sensors
  const Double_t kMaxDy=0.1;
  Int_t nsensors=tempArray->NumSensors();
  if (nsensors==0) return 0.;
  Int_t naccept=0;
  for (Int_t isensor=0; isensor<nsensors; isensor++){
    AliDCSSensor *sensor = tempArray->GetSensorNum(isensor);
    if (!sensor) continue;
    FilterSensor(sensor,ymin,ymax,kMaxDy, sigmaCut);
    if (sensor->GetFit()==0){
      //delete sensor;
      tempArray->RemoveSensorNum(isensor);
    }else{
      naccept++;
    }
  }
  return Float_t(naccept)/Float_t(nsensors);
}


void AliTPCcalibDButil::FilterCE(Double_t deltaT, Double_t cutAbs, Double_t cutSigma, TTreeSRedirector * const pcstream){
  //
  // Filter CE data
  // Input parameters:
  //    deltaT   - smoothing window (in seconds)
  //    cutAbs   - max distance of the time info to the median (in time bins)
  //    cutSigma - max distance (in the RMS)
  //    pcstream - optional debug streamer to store original and filtered info
  // Hardwired parameters:
  //    kMinPoints =10;       // minimal number of points to define the CE
  //    kMinSectors=12;       // minimal number of sectors to define sideCE
  // Algorithm:
  // 0. Filter almost emty graphs (kMinPoints=10)
  // 1. calculate median and RMS per side
  // 2. Filter graphs - in respect with side medians 
  //                  - cutAbs and cutDelta used
  // 3. Cut in respect wit the graph median - cutAbs and cutRMS used
  // 4. Calculate mean for A side and C side
  //
  const Int_t kMinPoints =10;       // minimal number of points to define the CE
  const Int_t kMinSectors=12;       // minimal number of sectors to define sideCE
  const Int_t kMinTime   =400;     // minimal arrival time of CE
  TObjArray *arrT=AliTPCcalibDB::Instance()->GetCErocTtime();
  Double_t medianY=0;
  TObjArray*  cearray =AliTPCcalibDB::Instance()->GetCEData(); 
  if (!cearray) return;
  Double_t tmin=-1;
  Double_t tmax=-1;
  //
  //
  AliTPCSensorTempArray *tempMapCE = (AliTPCSensorTempArray *)cearray->FindObject("TempMap");
  AliDCSSensor * cavernPressureCE  = (AliDCSSensor *) cearray->FindObject("CavernAtmosPressure");
  if ( tempMapCE && cavernPressureCE){
    //
    //     Bool_t isOK = FilterTemperature(tempMapCE)>0.1;
    //     FilterSensor(cavernPressureCE,960,1050,10, 5.);
    //     if (cavernPressureCE->GetFit()==0) isOK=kFALSE;
    Bool_t isOK=kTRUE;
    if (isOK)  {      
      // recalculate P/T correction map for time of the CE
      AliTPCCalibVdrift * driftCalib = new AliTPCCalibVdrift(tempMapCE,cavernPressureCE ,0);
      driftCalib->SetName("driftPTCE");
      driftCalib->SetTitle("driftPTCE");
      cearray->AddLast(driftCalib);
    }
  }
  //
  // 0. Filter almost emty graphs
  //

  for (Int_t i=0; i<72;i++){
    TGraph *graph= (TGraph*)arrT->At(i);
    if (!graph) continue; 
    graph->Sort();
    if (graph->GetN()<kMinPoints){
      arrT->AddAt(0,i);
      delete graph;  // delete empty graph
      continue;
    }
    if (tmin<0) tmin = graph->GetX()[0];
    if (tmax<0) tmax = graph->GetX()[graph->GetN()-1];
    //
    if (tmin>graph->GetX()[0]) tmin=graph->GetX()[0];
    if (tmax<graph->GetX()[graph->GetN()-1]) tmax=graph->GetX()[graph->GetN()-1];
  }
  //
  // 1. calculate median and RMS per side
  //
  TArrayF arrA(100000), arrC(100000);
  Int_t nA=0, nC=0;
  Double_t medianA=0, medianC=0;
  Double_t rmsA=0, rmsC=0;
  for (Int_t isec=0; isec<72;isec++){
    TGraph *graph= (TGraph*)arrT->At(isec);
    if (!graph) continue;
    for (Int_t ipoint=kMinPoints-1; ipoint<graph->GetN();ipoint++){
      if (graph->GetY()[ipoint]<kMinTime) continue;
      if (nA>=arrA.fN) arrA.Set(nA*2);
      if (nC>=arrC.fN) arrC.Set(nC*2);
      if (isec%36<18)  arrA[nA++]= graph->GetY()[ipoint];
      if (isec%36>=18) arrC[nC++]= graph->GetY()[ipoint];
    }
  }
  if (nA>0){
    medianA=TMath::Median(nA,arrA.fArray);
    rmsA   =TMath::RMS(nA,arrA.fArray);
  }
  if (nC>0){
    medianC=TMath::Median(nC,arrC.fArray);
    rmsC   =TMath::RMS(nC,arrC.fArray);
  }
  //
  // 2. Filter graphs - in respect with side medians
  //  
  TArrayD vecX(100000), vecY(100000);
  for (Int_t isec=0; isec<72;isec++){
    TGraph *graph= (TGraph*)arrT->At(isec);
    if (!graph) continue;
    Double_t median = (isec%36<18) ? medianA: medianC;
    Double_t rms    = (isec%36<18) ? rmsA:    rmsC;
    Int_t naccept=0;
    //    for (Int_t ipoint=kMinPoints-1; ipoint<graph->GetN();ipoint++){ //not neccessary to remove first points
    for (Int_t ipoint=0; ipoint<graph->GetN();ipoint++){
      if (TMath::Abs(graph->GetY()[ipoint]-median)>cutAbs) continue;
      if (TMath::Abs(graph->GetY()[ipoint]-median)>cutSigma*rms) continue;
      vecX[naccept]= graph->GetX()[ipoint];
      vecY[naccept]= graph->GetY()[ipoint];
      naccept++;
    }
    if (naccept<kMinPoints){
      arrT->AddAt(0,isec);
      delete graph;  // delete empty graph
      continue;
    }
    TGraph *graph2 = new TGraph(naccept, vecX.fArray, vecY.fArray);
    delete graph;
    arrT->AddAt(graph2,isec);
  }
  //
  // 3. Cut in respect wit the graph median
  //
  for (Int_t i=0; i<72;i++){
    TGraph *graph= (TGraph*)arrT->At(i);
    if (!graph) continue;
    //
    // filter in range
    //
    TGraph* graphTS0= FilterGraphMedianAbs(graph,cutAbs,medianY);
    if (!graphTS0) continue;
    if (graphTS0->GetN()<kMinPoints) {
      delete graphTS0;  
      delete graph;
      arrT->AddAt(0,i);
      continue;
    }
    TGraph* graphTS= FilterGraphMedian(graphTS0,cutSigma,medianY);    
    if (!graphTS) continue;
    graphTS->Sort();
    AliTPCcalibDButil::SmoothGraph(graphTS,deltaT);      
    if (pcstream){
      Int_t run = AliTPCcalibDB::Instance()->GetRun();
      (*pcstream)<<"filterCE"<<
	"run="<<run<<
	"isec="<<i<<
	"mY="<<medianY<<
	"graph.="<<graph<<
	"graphTS0.="<<graphTS0<<
	"graphTS.="<<graphTS<<
	"\n";
    }
    delete graphTS0;
    arrT->AddAt(graphTS,i);
    delete graph;
  }
  //
  // Recalculate the mean time A side C side
  //
  TArrayF xA(200), yA(200), eA(200), xC(200),yC(200), eC(200);
  Int_t meanPoints=(nA+nC)/72;  // mean number of points
  for (Int_t itime=0; itime<200; itime++){
    nA=0, nC=0;
    Double_t time=tmin+(tmax-tmin)*Float_t(itime)/200.;
    for (Int_t i=0; i<72;i++){
      TGraph *graph= (TGraph*)arrT->At(i);
      if (!graph) continue;
      if (graph->GetN()<(meanPoints/4)) continue;
      if ( (i%36)<18 )  arrA[nA++]=graph->Eval(time);
      if ( (i%36)>=18 ) arrC[nC++]=graph->Eval(time);
    }
    xA[itime]=time;
    xC[itime]=time;
    yA[itime]=(nA>0)? TMath::Mean(nA,arrA.fArray):0;
    yC[itime]=(nC>0)? TMath::Mean(nC,arrC.fArray):0;
    eA[itime]=(nA>0)? TMath::RMS(nA,arrA.fArray):0;
    eC[itime]=(nC>0)? TMath::RMS(nC,arrC.fArray):0;
  }
  //
  Double_t rmsTA = TMath::RMS(200,yA.fArray)+TMath::Mean(200,eA.fArray);
  Double_t rmsTC = TMath::RMS(200,yC.fArray)+TMath::Mean(200,eC.fArray);
  if (pcstream){
    Int_t run = AliTPCcalibDB::Instance()->GetRun();
    (*pcstream)<<"filterAC"<<
      "run="<<run<<
      "nA="<<nA<<
      "nC="<<nC<<
      "rmsTA="<<rmsTA<<
      "rmsTC="<<rmsTC<<
      "\n";
  }
  //
  TGraphErrors *grA = new TGraphErrors(200,xA.fArray,yA.fArray,0, eA.fArray);
  TGraphErrors *grC = new TGraphErrors(200,xC.fArray,yC.fArray,0, eC.fArray);
  TGraph* graphTSA= FilterGraphMedian(grA,cutSigma,medianY);
  if (graphTSA&&graphTSA->GetN()) SmoothGraph(graphTSA,deltaT);   
  TGraph* graphTSC= FilterGraphMedian(grC,cutSigma,medianY);
  if (graphTSC&&graphTSC->GetN()>0) SmoothGraph(graphTSC,deltaT);   
  delete grA; 
  delete grC;
  if (nA<kMinSectors) arrT->AddAt(0,72);
  else arrT->AddAt(graphTSA,72);
  if (nC<kMinSectors) arrT->AddAt(0,73);
  else arrT->AddAt(graphTSC,73);
}


void AliTPCcalibDButil::FilterTracks(Int_t run, Double_t cutSigma, TTreeSRedirector * const pcstream){
  //
  // Filter Drift velocity measurement using the tracks
  // 0.  remove outlyers - error based
  //     cutSigma      
  //
  //
  const Int_t kMinPoints=1;  // minimal number of points to define value
  TObjArray *arrT=AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  Double_t medianY=0;
  if (!arrT) return;
  for (Int_t i=0; i<arrT->GetEntries();i++){
    TGraphErrors *graph= dynamic_cast<TGraphErrors*>(arrT->At(i));
    if (!graph) continue;
    if (graph->GetN()<kMinPoints){
      delete graph;
      arrT->AddAt(0,i);
      continue;
    }
    TGraphErrors *graph2 = NULL;
    if(graph->GetN()<10) {
      graph2 = new TGraphErrors(graph->GetN(),graph->GetX(),graph->GetY(),graph->GetEX(),graph->GetEY()); 
      if (!graph2) {
        delete graph; arrT->AddAt(0,i); continue;
      }
    } 
    else {
      graph2= FilterGraphMedianErr(graph,cutSigma,medianY);
      if (!graph2) {
        delete graph; arrT->AddAt(0,i); continue;
      }
    }
    if (graph2->GetN()<1) {
      delete graph; arrT->AddAt(0,i); continue;
    }
    graph2->SetName(graph->GetName());
    graph2->SetTitle(graph->GetTitle());
    arrT->AddAt(graph2,i);
    if (pcstream){
      (*pcstream)<<"filterTracks"<<
	"run="<<run<<
	"isec="<<i<<
	"mY="<<medianY<<
	"graph.="<<graph<<
	"graph2.="<<graph2<<
	"\n";
    }
    delete graph;
  }
}





Double_t AliTPCcalibDButil::GetLaserTime0(Int_t run, Int_t timeStamp, Int_t deltaT, Int_t side){
  //
  //
  // get laser time offset 
  // median around timeStamp+-deltaT   
  // QA - chi2 needed for later usage - to be added
  //    - currently cut on error
  //
  Int_t kMinPoints=1;
  Double_t kMinDelay=0.01;
  Double_t kMinDelayErr=0.0001;

  TObjArray *array =AliTPCcalibDB::Instance()->GetTimeVdriftSplineRun(run);
  if (!array) return 0;
  TGraphErrors *tlaser=0;
  if (array){
    if (side==0) tlaser=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DELAY_LASER_ALL_A");
    if (side==1) tlaser=(TGraphErrors*)array->FindObject("GRAPH_MEAN_DELAY_LASER_ALL_C");
  }
  if (!tlaser) return 0;
  Int_t npoints0= tlaser->GetN();
  if (npoints0==0) return 0;
  Double_t *xlaser = new Double_t[npoints0];
  Double_t *ylaser = new Double_t[npoints0];
  Int_t npoints=0;
  for (Int_t i=0;i<npoints0;i++){
    //printf("%d\n",i);
    if (tlaser->GetY()[i]<=kMinDelay) continue; // filter zeros  
    if (tlaser->GetErrorY(i)>TMath::Abs(kMinDelayErr)) continue;
    xlaser[npoints]=tlaser->GetX()[npoints];
    ylaser[npoints]=tlaser->GetY()[npoints];
    npoints++;
  }
  //
  //
  Int_t index0=TMath::BinarySearch(npoints, xlaser, Double_t(timeStamp-deltaT))-1;
  Int_t index1=TMath::BinarySearch(npoints, xlaser, Double_t(timeStamp+deltaT))+1;
  //if (index1-index0 <kMinPoints) { index1+=kMinPoints; index0-=kMinPoints;}
  if (index0<0) index0=0;
  if (index1>=npoints-1) index1=npoints-1;
  if (index1-index0<kMinPoints) {
    delete [] ylaser;
    delete [] xlaser;
    return 0;
  }
  //
  //Double_t median = TMath::Median(index1-index0, &(ylaser[index0]));
    Double_t mean = TMath::Mean(index1-index0, &(ylaser[index0]));
  delete [] ylaser;
  delete [] xlaser;
  return mean;
}




void AliTPCcalibDButil::FilterGoofie(AliDCSSensorArray * goofieArray, Double_t deltaT, Double_t cutSigma, Double_t minVd, Double_t maxVd, TTreeSRedirector * const pcstream){
  //
  // Filter Goofie data
  // goofieArray - points will be filtered
  // deltaT      - smmothing time window 
  // cutSigma    - outler sigma cut in rms
  // minVn, maxVd- range absolute cut for variable vd/pt
  //             - to be tuned
  //
  // Ignore goofie if not enough points
  //
  const Int_t kMinPoints = 3;
  //

  TGraph *graphvd = goofieArray->GetSensorNum(2)->GetGraph();
  TGraph *graphan = goofieArray->GetSensorNum(8)->GetGraph();
  TGraph *graphaf = goofieArray->GetSensorNum(9)->GetGraph();
  TGraph *graphpt = goofieArray->GetSensorNum(15)->GetGraph();
  if (!graphvd) return;
  if (graphvd->GetN()<kMinPoints){
    delete graphvd;
    goofieArray->GetSensorNum(2)->SetGraph(0);
    return;
  }
  //
  // 1. Caluclate medians of critical variables
  //    drift velcocity
  //    P/T
  //    area near peak
  //    area far  peak
  //
  Double_t medianpt=0;
  Double_t medianvd=0, sigmavd=0;
  Double_t medianan=0;
  Double_t medianaf=0;
  Int_t    entries=graphvd->GetN();
  Double_t yvdn[10000];
  Int_t nvd=0;
  //
  for (Int_t ipoint=0; ipoint<entries; ipoint++){
    if (graphpt->GetY()[ipoint]<=0.0000001) continue;
    if (graphvd->GetY()[ipoint]/graphpt->GetY()[ipoint]<minVd) continue;
    if (graphvd->GetY()[ipoint]/graphpt->GetY()[ipoint]>maxVd) continue;
    yvdn[nvd++]=graphvd->GetY()[ipoint];
  }
  if (nvd<kMinPoints){
    delete graphvd;
    goofieArray->GetSensorNum(2)->SetGraph(0);
    return;
  }
  //
  Int_t nuni = TMath::Min(TMath::Nint(nvd*0.4+2), nvd-1);
  if (nuni>=kMinPoints){
    AliMathBase::EvaluateUni(nvd, yvdn, medianvd,sigmavd,nuni); 
  }else{
    medianvd = TMath::Median(nvd, yvdn);
  }
  
  TGraph * graphpt0 = AliTPCcalibDButil::FilterGraphMedianAbs(graphpt,10,medianpt);
  TGraph * graphpt1 = AliTPCcalibDButil::FilterGraphMedian(graphpt0,2,medianpt);
  TGraph * graphan0 = AliTPCcalibDButil::FilterGraphMedianAbs(graphan,10,medianan);
  TGraph * graphan1 = AliTPCcalibDButil::FilterGraphMedian(graphan0,2,medianan);
  TGraph * graphaf0 = AliTPCcalibDButil::FilterGraphMedianAbs(graphaf,10,medianaf);
  TGraph * graphaf1 = AliTPCcalibDButil::FilterGraphMedian(graphaf0,2,medianaf);
  delete graphpt0;
  delete graphpt1;
  delete graphan0;
  delete graphan1;
  delete graphaf0;
  delete graphaf1;
  //
  // 2. Make outlyer graph
  //
  Int_t nOK=0;
  TGraph graphOut(*graphvd);
  for (Int_t i=0; i<entries;i++){
    //
    Bool_t isOut=kFALSE;
    if (graphpt->GetY()[i]<=0.0000001) {  graphOut.GetY()[i]=1; continue;}
    if (graphvd->GetY()[i]/graphpt->GetY()[i]<minVd || graphvd->GetY()[i]/graphpt->GetY()[i]>maxVd) {  graphOut.GetY()[i]=1; continue;}
 
    if (TMath::Abs((graphvd->GetY()[i]/graphpt->GetY()[i])/medianvd-1.)<0.05) 
      isOut|=kTRUE;
    if (TMath::Abs(graphpt->GetY()[i]/medianpt-1.)>0.02) isOut|=kTRUE;
    if (TMath::Abs(graphan->GetY()[i]/medianan-1.)>0.2) isOut|=kTRUE;
    if (TMath::Abs(graphaf->GetY()[i]/medianaf-1.)>0.2) isOut|=kTRUE;
    graphOut.GetY()[i]= (isOut)?1:0;
    if (!isOut) nOK++;
  }
  if (nOK<kMinPoints) {
    delete graphvd;
    goofieArray->GetSensorNum(2)->SetGraph(0);
    return;
  } 
  //
  // 3. Filter out outlyers - and smooth 
  //
  TVectorF vmedianArray(goofieArray->NumSensors());
  TVectorF vrmsArray(goofieArray->NumSensors());
  Double_t xnew[10000];
  Double_t ynew[10000]; 
  TObjArray junk;
  junk.SetOwner(kTRUE);
  Bool_t isOK=kTRUE;
  //
  //
  for (Int_t isensor=0; isensor<goofieArray->NumSensors();isensor++){
    isOK=kTRUE;
    AliDCSSensor *sensor = goofieArray->GetSensorNum(isensor); 
    TGraph *graphOld=0, *graphNew=0, * graphNew0=0,*graphNew1=0,*graphNew2=0;
    //
    if (!sensor) continue;
    graphOld = sensor->GetGraph();
    if (graphOld) {
      sensor->SetGraph(0);
      Int_t nused=0;
      for (Int_t i=0;i<entries;i++){
	if (graphOut.GetY()[i]>0.5) continue;
	xnew[nused]=graphOld->GetX()[i];
	ynew[nused]=graphOld->GetY()[i];
	nused++;
      }
      graphNew = new TGraph(nused,xnew,ynew);
      junk.AddLast(graphNew);
      junk.AddLast(graphOld);      
      Double_t median=0;
      graphNew0  = AliTPCcalibDButil::FilterGraphMedian(graphNew,cutSigma,median);
      if (graphNew0!=0){
	junk.AddLast(graphNew0);
	graphNew1  = AliTPCcalibDButil::FilterGraphMedian(graphNew0,cutSigma,median);
	if (graphNew1!=0){
	  junk.AddLast(graphNew1);	  
	  graphNew2  = AliTPCcalibDButil::FilterGraphMedian(graphNew1,cutSigma,median);
	  if (graphNew2!=0) {
	    vrmsArray[isensor]   =TMath::RMS(graphNew2->GetN(),graphNew2->GetY());
	    AliTPCcalibDButil::SmoothGraph(graphNew2,deltaT);
	    AliTPCcalibDButil::SmoothGraph(graphNew2,deltaT);
	    AliTPCcalibDButil::SmoothGraph(graphNew2,deltaT);
	    //	    AliInfo(Form("%d\t%f\t%f\n",isensor, median,vrmsArray[isensor]));
	    vmedianArray[isensor]=median;
	    //
	  }
	}
      }
    }
    if (!graphOld) {  isOK=kFALSE; graphOld =&graphOut;}
    if (!graphNew0) { isOK=kFALSE; graphNew0=graphOld;}
    if (!graphNew1) { isOK=kFALSE; graphNew1=graphOld;}
    if (!graphNew2) { isOK=kFALSE; graphNew2=graphOld;}
    (*pcstream)<<"goofieA"<<
      Form("isOK_%d.=",isensor)<<isOK<<      
      Form("s_%d.=",isensor)<<sensor<<
      Form("gr_%d.=",isensor)<<graphOld<<
      Form("gr0_%d.=",isensor)<<graphNew0<<
      Form("gr1_%d.=",isensor)<<graphNew1<<
      Form("gr2_%d.=",isensor)<<graphNew2;
    if (isOK) sensor->SetGraph(graphNew2);
  }
  (*pcstream)<<"goofieA"<<
    "vmed.="<<&vmedianArray<<
    "vrms.="<<&vrmsArray<<
    "\n";
  junk.Delete();   // delete temoprary graphs
  
}





TMatrixD* AliTPCcalibDButil::MakeStatRelKalman(TObjArray * const array, Float_t minFraction, Int_t minStat, Float_t maxvd){
  //
  // Make a statistic matrix
  // Input parameters:
  //   array        - TObjArray of AliRelKalmanAlign 
  //   minFraction  - minimal ration of accepted tracks
  //   minStat      - minimal statistic (number of accepted tracks)
  //   maxvd        - maximal deviation for the 1
  // Output matrix:
  //    columns    - Mean, Median, RMS
  //    row        - parameter type (rotation[3], translation[3], drift[3])
  if (!array) return 0;
  if (array->GetEntries()<=0) return 0;
  //  Int_t entries = array->GetEntries();
  Int_t entriesFast = array->GetEntriesFast();
  TVectorD state(9);
  TVectorD *valArray[9];
  for (Int_t i=0; i<9; i++){
    valArray[i] = new TVectorD(entriesFast);
  }
  Int_t naccept=0;
  for (Int_t ikalman=0; ikalman<entriesFast; ikalman++){
    AliRelAlignerKalman * kalman = (AliRelAlignerKalman *) array->UncheckedAt(ikalman);
    if (!kalman) continue;
    if (TMath::Abs(kalman->GetTPCvdCorr()-1)>maxvd) continue;
    if (kalman->GetNUpdates()<minStat) continue;
    if (Float_t(kalman->GetNUpdates())/Float_t(kalman->GetNTracks())<minFraction) continue;
    kalman->GetState(state);
    for (Int_t ipar=0; ipar<9; ipar++)
      (*valArray[ipar])[naccept]=state[ipar];
    naccept++;
  }
  //if (naccept<2) return 0;
  if (naccept<1) return 0;
  TMatrixD *pstat=new TMatrixD(9,3);
  TMatrixD &stat=*pstat;
  for (Int_t ipar=0; ipar<9; ipar++){
    stat(ipar,0)=TMath::Mean(naccept, valArray[ipar]->GetMatrixArray());
    stat(ipar,1)=TMath::Median(naccept, valArray[ipar]->GetMatrixArray());
    stat(ipar,2)=TMath::RMS(naccept, valArray[ipar]->GetMatrixArray());
  }
  for (Int_t i=0; i<9; i++){
    delete valArray[i];
  }
  return pstat;
}


TObjArray *AliTPCcalibDButil::SmoothRelKalman(TObjArray * const array, const TMatrixD & stat, Bool_t direction, Float_t sigmaCut){
  //
  // Smooth the array of AliRelKalmanAlign - detector alignment and drift calibration)
  // Input:
  //   array     - input array
  //   stat      - mean parameters statistic
  //   direction - 
  //   sigmaCut  - maximal allowed deviation from mean in terms of RMS 
  if (!array) return 0;
  if (array->GetEntries()<=0) return 0;
  if (!(&stat)) return 0;
  // error increase in 1 hour
  const Double_t kerrsTime[9]={
    0.00001,  0.00001, 0.00001,
    0.001,    0.001,   0.001,
    0.002,  0.01,   0.001};
  //
  //
  Int_t entries = array->GetEntriesFast();
  TObjArray *sArray= new TObjArray(entries);
  AliRelAlignerKalman * sKalman =0;
  TVectorD state(9);
  for (Int_t i=0; i<entries; i++){
    Int_t index=(direction)? entries-i-1:i;
    AliRelAlignerKalman * kalman = (AliRelAlignerKalman *) array->UncheckedAt(index);
    if (!kalman) continue;
    Bool_t isOK=kTRUE;
    kalman->GetState(state);
    for (Int_t ipar=0; ipar<9; ipar++){
      if (TMath::Abs(state[ipar]-stat(ipar,1))>sigmaCut*stat(ipar,2)) isOK=kFALSE;
    }
    if (!sKalman &&isOK) {
      sKalman=new AliRelAlignerKalman(*kalman);
      sKalman->SetRejectOutliers(kFALSE);
      sKalman->SetRunNumber(kalman->GetRunNumber());
      sKalman->SetTimeStamp(kalman->GetTimeStamp());      
    }
    if (!sKalman) continue;
    Double_t deltaT=TMath::Abs(Int_t(kalman->GetTimeStamp())-Int_t(sKalman->GetTimeStamp()))/3600.;
    for (Int_t ipar=0; ipar<9; ipar++){
//       (*(sKalman->GetStateCov()))(6,6)+=deltaT*errvd*errvd;
//       (*(sKalman->GetStateCov()))(7,7)+=deltaT*errt0*errt0;
//       (*(sKalman->GetStateCov()))(8,8)+=deltaT*errvy*errvy; 
      (*(sKalman->GetStateCov()))(ipar,ipar)+=deltaT*kerrsTime[ipar]*kerrsTime[ipar];
    }
    sKalman->SetRunNumber(kalman->GetRunNumber());
    if (!isOK) sKalman->SetRunNumber(0);
    sArray->AddAt(new AliRelAlignerKalman(*sKalman),index);
    if (!isOK) continue;
    sKalman->SetRejectOutliers(kFALSE);
    sKalman->SetRunNumber(kalman->GetRunNumber());
    sKalman->SetTimeStamp(kalman->GetTimeStamp()); 
    sKalman->Merge(kalman);
    sArray->AddAt(new AliRelAlignerKalman(*sKalman),index);
    //sKalman->Print();
  }
  return sArray;
}

TObjArray *AliTPCcalibDButil::SmoothRelKalman(TObjArray * const arrayP, TObjArray * const arrayM){
  //
  // Merge 2 RelKalman arrays
  // Input:
  //   arrayP    - rel kalman in direction plus
  //   arrayM    - rel kalman in direction minus
  if (!arrayP) return 0;
  if (arrayP->GetEntries()<=0) return 0;
  if (!arrayM) return 0;
  if (arrayM->GetEntries()<=0) return 0;

  Int_t entries = arrayP->GetEntriesFast();
  TObjArray *array = new TObjArray(arrayP->GetEntriesFast()); 

  for (Int_t i=0; i<entries; i++){
     AliRelAlignerKalman * kalmanP = (AliRelAlignerKalman *) arrayP->UncheckedAt(i);
     AliRelAlignerKalman * kalmanM = (AliRelAlignerKalman *) arrayM->UncheckedAt(i);
     if (!kalmanP) continue;
     if (!kalmanM) continue;
  
     AliRelAlignerKalman *kalman = NULL;
     if(kalmanP->GetRunNumber() != 0 && kalmanM->GetRunNumber() != 0) {
       kalman = new AliRelAlignerKalman(*kalmanP);
       kalman->Merge(kalmanM);
     }
     else if (kalmanP->GetRunNumber() == 0) {
       kalman = new AliRelAlignerKalman(*kalmanM);
     }
     else if (kalmanM->GetRunNumber() == 0) {
       kalman = new AliRelAlignerKalman(*kalmanP);
     }
     else 
       continue;

     array->AddAt(kalman,i);
  }

  return array;
}

//_____________________________________________________________________________________
TTree* AliTPCcalibDButil::ConnectGainTrees(TString baseDir)
{
  //
  // baseDir:   Base directory with the raw Kr calibration trees
  //            and the trees from the calibQA
  //            it assumes to following structure below:
  //            KryptonCalib/<year>/calibKr/calibKr.<year>.<id>.root
  //            calibQAdEdx/<year>/calibQA.<year>.<perid>.tree.root
  //            map/treeMapping.root
  //
  
  
  // === add main tree, which will be a mapping file ================
  TFile *fin = TFile::Open(Form("%s/map/treeMapping.root",baseDir.Data()));
  gROOT->cd();
  TTree *tMain = (TTree*)fin->Get("calPads");
  tMain->SetAlias("Pad0","MapPadLength.fElements==7.5");   // pad types
  tMain->SetAlias("Pad1","MapPadLength.fElements==10.0");
  tMain->SetAlias("Pad2","MapPadLength.fElements==15.0");
  //
  tMain->SetAlias("dRowNorm0","(row.fElements/32-1)");      // normalized distance to the center of the chamber in lx (-1,1)
  tMain->SetAlias("dRowNorm1","(row.fElements/32-1)");      // 
  tMain->SetAlias("dRowNorm2","((row.fElements-63)/16-1)"); //
  tMain->SetAlias("dRowNorm","(row.fElements<63)*(row.fElements/32-1)+(row.fElements>63)*((row.fElements-63)/16-1)");
  tMain->SetAlias("dPhiNorm","(ly.fElements/lx.fElements)/(pi/18)"); // normalized distance to the center of the chamber in phi (-1,1)
  //
  tMain->SetAlias("fsector","(sector%36)+(0.5+9*atan2(ly.fElements,lx.fElements)/pi)"); // float sector number
  tMain->SetAlias("posEdge","((pi/18.)-abs(atan(ly.fElements/lx.fElements)))*lx.fElements"); //distance to the edge
  
  // === add the krypton calibration trees ==========================
  TString inputTreesKrCalib       = gSystem->GetFromPipe(Form("ls %s/KryptonCalib/20*/calibKr/*.tree.root",baseDir.Data()));
  TObjArray *arrInputTreesKrCalib = inputTreesKrCalib.Tokenize("\n");
  
  for (Int_t itree=0; itree<arrInputTreesKrCalib->GetEntriesFast(); ++itree) {
    TFile *fin2 = TFile::Open(arrInputTreesKrCalib->At(itree)->GetName());
    TTree *tin = (TTree*)fin2->Get("calPads");
    gROOT->cd();
    TString friendName=gSystem->BaseName(arrInputTreesKrCalib->At(itree)->GetName());
    friendName.ReplaceAll("calibKr.","");
    friendName.ReplaceAll(".tree.root","");
    friendName="Kr."+friendName;
    tMain->AddFriend(tin,friendName.Data());

    // set aliases

    // TODO: finish implementation of alias via lists
//     const Int_t nbranchAlias = 2;
//     const char* branchNames[nbranchAlias]={"spectrMean","fitMean"};
//     const Int_t nbranchStat = 2;
//     const char* statNames[nbranchStat] = {"Median","LTM"};
// 
//     for (Int_t iname=0; iname<nbranchAlias; ++iname) {
//       TString branchName = TString::Format("%s.%s", friendName.Data(), bNames[i]);
// 
//       for (Int_t istat=0; istat<nbranchStat; ++istat) {
//         
//       }
//     }
  
    tMain->SetAlias((friendName+".spectrMean_LTMRatio").Data(),
                    TString::Format("(%s.spectrMean.fElements/(%s.spectrMean_LTM+0))",
                                    friendName.Data(),friendName.Data()).Data());
    
    tMain->SetAlias((friendName+".spectrMean_MedianRatio").Data(),
                    TString::Format("(%s.spectrMean.fElements/(%s.spectrMean_Median+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".spectrMean_MeanRatio").Data(),
                    TString::Format("(%s.spectrMean.fElements/(%s.spectrMean_Mean+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".spectrMean_MeanRatio").Data(),
                    TString::Format("(%s.spectrMean.fElements/%s.spectrMean_Mean)",
                                    friendName.Data(),friendName.Data()).Data());

    tMain->SetAlias((friendName+".fitMean_LTMRatio").Data(),
                    TString::Format("(%s.fitMean.fElements/(%s.fitMean_LTM+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".fitRMS_LTMRatio").Data(),
                    TString::Format("(%s.fitRMS.fElements/(%s.fitRMS_LTM+0))",
                                    friendName.Data(),friendName.Data()).Data());
    
    tMain->SetAlias((friendName+".fitMean_MedianRatio").Data(),
                    TString::Format("(%s.fitMean.fElements/(%s.fitMean_Median+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".fitRMS_MedianRatio").Data(),
                    TString::Format("(%s.fitRMS.fElements/(%s.fitRMS_Median+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".fitMean_MeanRatio").Data(),
                    TString::Format("(%s.fitMean.fElements/(%s.fitMean_Mean+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".fitRMS_MeanRatio").Data(),
                    TString::Format("(%s.fitRMS.fElements/(%s.fitRMS_Mean+0))",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".fitMean_MeanRatio").Data(),
                    TString::Format("(%s.fitMean.fElements/%s.fitMean_Mean)",
                                    friendName.Data(),friendName.Data()).Data());
    
  }
  
  // === add the calibQA trees ======================================
  TString inputTreesQACalib       = gSystem->GetFromPipe(Form("ls %s/calibQAdEdx/20*/*.tree.root",baseDir.Data()));
  TObjArray *arrInputTreesQACalib = inputTreesQACalib.Tokenize("\n");
  
  for (Int_t itree=0; itree<arrInputTreesQACalib->GetEntriesFast(); ++itree) {
    TFile *fin2 = TFile::Open(arrInputTreesQACalib->At(itree)->GetName());
    TTree *tin = (TTree*)fin2->Get("calPads");
    gROOT->cd();
    TString friendName=gSystem->BaseName(arrInputTreesQACalib->At(itree)->GetName());
    friendName.ReplaceAll("calibQA.","");
    friendName.ReplaceAll(".tree.root","");
    friendName="QA."+friendName;
    tMain->AddFriend(tin,friendName.Data());

    // set aliases
    tMain->SetAlias((friendName+".MaxCharge_LTMRatio").Data(),
                    TString::Format("(%s.MaxCharge.fElements/%s.MaxCharge_LTM)",
                                    friendName.Data(),friendName.Data()).Data());
    
    tMain->SetAlias((friendName+".MaxCharge_MedianRatio").Data(),
                    TString::Format("(%s.MaxCharge.fElements/%s.MaxCharge_Median)",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".MaxCharge_MeanRatio").Data(),
                    TString::Format("(%s.MaxCharge.fElements/%s.MaxCharge_Mean)",
                                    friendName.Data(),friendName.Data()).Data());
    
    tMain->SetAlias((friendName+".MeanCharge_LTMRatio").Data(),
                    TString::Format("(%s.MeanCharge.fElements/%s.MeanCharge_LTM)",
                                    friendName.Data(),friendName.Data()).Data());
    
    tMain->SetAlias((friendName+".MeanCharge_MedianRatio").Data(),
                    TString::Format("(%s.MeanCharge.fElements/%s.MeanCharge_Median)",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".MeanCharge_MeanRatio").Data(),
                    TString::Format("(%s.MeanCharge.fElements/%s.MeanCharge_Mean)",
                                    friendName.Data(),friendName.Data()).Data());
    
  }

  return tMain;
}


//_____________________________________________________________________________________
TTree* AliTPCcalibDButil::ConnectPulserTrees(TString baseDir, TTree *tMain)
{
  //
  // baseDir:   Base directory with Pulser information
  // TTrees are added to the base tree as a friend tree
  //  
  // === add the calibPulser trees ======================================
  TString inputTreesPulserCalib       = gSystem->GetFromPipe(Form("ls %s/calibPulser/20*/*.tree.root",baseDir.Data()));
  TObjArray *arrInputTreesPulserCalib = inputTreesPulserCalib.Tokenize("\n");
  for (Int_t itree=0; itree<arrInputTreesPulserCalib->GetEntriesFast(); ++itree) {
    TFile *fin2 = TFile::Open(arrInputTreesPulserCalib->At(itree)->GetName());
    TTree *tin = (TTree*)fin2->Get("calPads");
    gROOT->cd();
    TString friendName=gSystem->BaseName(arrInputTreesPulserCalib->At(itree)->GetName());
    friendName.ReplaceAll("calibPulser.","");
    friendName.ReplaceAll(".tree.root","");
    friendName="Pulser."+friendName;
    tMain->AddFriend(tin,friendName.Data());    
    // set aliases

    tMain->SetAlias((friendName+".CEQmean_LTMRatio").Data(),
                    TString::Format("(%s.CEQmean.fElements/%s.CEQmean_LTM)",
                                    friendName.Data(),friendName.Data()).Data());    
    tMain->SetAlias((friendName+".CEQmean_MedianRatio").Data(),
                    TString::Format("(%s.CEQmean.fElements/%s.CEQmean_Median)",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".CEQmean_MeanRatio").Data(),
                    TString::Format("(%s.CEQmean.fElements/%s.CEQmean_Mean)",
                                    friendName.Data(),friendName.Data()).Data());        
    //
    tMain->SetAlias((friendName+".CETmean_LTMDelta").Data(),
                    TString::Format("(%s.CETmean.fElements-%s.CETmean_LTM)",
                                    friendName.Data(),friendName.Data()).Data());    
    tMain->SetAlias((friendName+".CETmean_MedianDelta").Data(),
                    TString::Format("(%s.CETmean.fElements-%s.CETmean_Median)",
                                    friendName.Data(),friendName.Data()).Data());
    tMain->SetAlias((friendName+".CETmean_MeanDelta").Data(),
                    TString::Format("(%s.CETmean.fElements-%s.CETmean_Mean)",
                                    friendName.Data(),friendName.Data()).Data());        
  }
  return tMain;
}  
  

TTree* AliTPCcalibDButil::ConnectDistortionTrees(TString baseDir, TString  selection,  TTree *tMain){
  //
  // baseDir:   Base directory with Distortion information
  // TTrees are added to the base tree as a friend tree
  // If base tree not provide - first tree from list is used as base
  //  
  // === add the calibDistortion trees ======================================
  //TString inputTreesDistortionCalib       = gSystem->GetFromPipe(Form("ls %s/calibDistortion/20*/*.tree.root",baseDir.Data()));
  // TString baseDir="$NOTES/reconstruction/distortionFit/"; TTree *tMain=0;
  // AliTPCcalibDButil::ConnectDistortionTrees("$NOTES/reconstruction/distortionFit/", "calibTimeResHisto.root", 0);

  TString inputTreesDistortionCalib       = "";
  if (selection.Contains(".list")){    
    inputTreesDistortionCalib=gSystem->GetFromPipe(Form("cat %s",selection.Data()));
  }else{
    inputTreesDistortionCalib=gSystem->GetFromPipe(Form("find  %s -iname \"%s\"",baseDir.Data(),selection.Data()));
  }
  TObjArray *arrInputTreesDistortionCalib = inputTreesDistortionCalib.Tokenize("\n");  
  //
  for (Int_t itree=0; itree<arrInputTreesDistortionCalib->GetEntriesFast(); ++itree) {
    TFile *finput= TFile::Open(arrInputTreesDistortionCalib->At(itree)->GetName());
    TString strFile=arrInputTreesDistortionCalib->At(itree)->GetName();
    TObjArray *path=strFile.Tokenize("/");
    Int_t plength=path->GetEntries();
    if (!finput) continue;
    TList* list = finput->GetListOfKeys();
    Int_t nkeys=list->GetEntries();
    for (Int_t ikey=0; ikey<nkeys; ikey++){
      TKey * key = (TKey*)list->At(ikey);
      if (strstr(key->GetClassName(),"TTree")==0) continue;
      TTree * tree  = dynamic_cast<TTree*>(finput->Get(list->At(ikey)->GetName()));
      if (!tree) continue;
      TString friendName=TString::Format("%s.%s.%s",path->At(plength-3)->GetName(),path->At(plength-2)->GetName(), tree->GetName()); 
      ::Info("AliTPCcalibDButil::ConnectDistortionTrees","%s",friendName.Data());  
      if (tMain==0) tMain=tree;
      tMain->AddFriend(tree,friendName.Data());  
    }
  }
  //  tMain->SetAlias("");
  return tMain;
}  
  

//_____________________________________________________________________________________
TTree* AliTPCcalibDButil::ConnectCalPadTrees(TString baseDir, TString pattern, TTree *tMain, Bool_t checkAliases)
{
  //
  // baseDir:   Base directory with per Pad information
  // TTrees are added to the base tree as a friend tree
  // Example usage
  //   TString baseDir="/hera/alice/fsozzi/summarymaps/calib2/";  // prefix directory with calibration with slash at the end
  //   TString pattern="QA/*/*root";  
  //   TTree * tree =  AliTPCcalibDButil::ConnectCalPadTrees(baseDir,pattern,0);   //create tree and attach calibration as friends

  //  
  // === add the calibPulser trees ======================================
  TString inputTreesCalPad       = gSystem->GetFromPipe(Form("ls %s/%s",baseDir.Data(), pattern.Data()));
  TObjArray *arrInputTreesCalPad = inputTreesCalPad.Tokenize("\n");
  //
  for (Int_t itree=0; itree<arrInputTreesCalPad->GetEntriesFast(); ++itree) {
    TFile *fin2 = TFile::Open(arrInputTreesCalPad->At(itree)->GetName());
    TTree *tin = (TTree*)fin2->Get("calPads");
    gROOT->cd();
    TString friendName=arrInputTreesCalPad->At(itree)->GetName();
    friendName.ReplaceAll("//","/");
    friendName.ReplaceAll(baseDir.Data(),"");
    friendName.ReplaceAll("^/","");
    friendName.ReplaceAll("/",".");
    friendName.ReplaceAll(".tree.",".");
    friendName.ReplaceAll(".root","");
    printf("%s\n", friendName.Data());
    ::Info("AliTPCcalibDButil::ConnectCalPadTrees","%s",friendName.Data());  
    if (tMain==0) tMain=tin;
    tMain->AddFriend(tin,friendName.Data());  
    TObjArray * branches=tin->GetListOfBranches();
    Int_t nBranches=branches->GetEntries();
    for (Int_t ibranch=0; ibranch<nBranches; ibranch++){
      TString bname=branches->At(ibranch)->GetName();
      if (bname.Contains(".")>0){
	bname.ReplaceAll(".","");
	// replace elements
	tin->SetAlias((bname).Data(), (bname+".fElements").Data());       
	tMain->SetAlias((friendName+"."+bname).Data(), (friendName+"."+bname+".fElements").Data());       
	//
	// make normalized values  per chamber
	//
	if (branches->FindObject(bname+"_LTM")!=0){	  
	  tMain->SetAlias((friendName+"."+bname+"_MeanRatio").Data(), (friendName+"."+bname+".fElements/"+friendName+"."+bname+"_Mean").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_MedianRatio").Data(), (friendName+"."+bname+".fElements/"+friendName+"."+bname+"_Median").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_LTMRatio").Data(), (friendName+"."+bname+".fElements/"+friendName+"."+bname+"_LTM").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_MeanDelta").Data(), (friendName+"."+bname+".fElements-"+friendName+"."+bname+"_Mean").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_MedianDelta").Data(), (friendName+"."+bname+".fElements-"+friendName+"."+bname+"_Median").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_LTMDelta").Data(), (friendName+"."+bname+".fElements-"+friendName+"."+bname+"_LTM").Data());       
	}	
	//	if (branches->FindObject(bname+"_Med3.")!=0){	  
	  tMain->SetAlias((friendName+"."+bname+"_Med3Ratio").Data(), (friendName+"."+bname+".fElements/"+friendName+"."+bname+"Med3.fElements").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_Med5Ratio").Data(), (friendName+"."+bname+".fElements/"+friendName+"."+bname+"Med5.fElements").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_Par6GRatio").Data(), (friendName+"."+bname+".fElements/"+friendName+"."+bname+"Par6G.fElements").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_Med3Delta").Data(), (friendName+"."+bname+".fElements-"+friendName+"."+bname+"Med3.fElements").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_Med5Delta").Data(), (friendName+"."+bname+".fElements-"+friendName+"."+bname+"Med5.fElements").Data());       
	  tMain->SetAlias((friendName+"."+bname+"_Par6GDelta").Data(), (friendName+"."+bname+".fElements-"+friendName+"."+bname+"Par6G.fElements").Data());       
	  //	}	
      }
    }
  }
  //
  //
  //
  if (checkAliases){
    // to be implemented
  }
  return tMain;
} 
  


 AliTPCcalibDButil.cxx:1
 AliTPCcalibDButil.cxx:2
 AliTPCcalibDButil.cxx:3
 AliTPCcalibDButil.cxx:4
 AliTPCcalibDButil.cxx:5
 AliTPCcalibDButil.cxx:6
 AliTPCcalibDButil.cxx:7
 AliTPCcalibDButil.cxx:8
 AliTPCcalibDButil.cxx:9
 AliTPCcalibDButil.cxx:10
 AliTPCcalibDButil.cxx:11
 AliTPCcalibDButil.cxx:12
 AliTPCcalibDButil.cxx:13
 AliTPCcalibDButil.cxx:14
 AliTPCcalibDButil.cxx:15
 AliTPCcalibDButil.cxx:16
 AliTPCcalibDButil.cxx:17
 AliTPCcalibDButil.cxx:18
 AliTPCcalibDButil.cxx:19
 AliTPCcalibDButil.cxx:20
 AliTPCcalibDButil.cxx:21
 AliTPCcalibDButil.cxx:22
 AliTPCcalibDButil.cxx:23
 AliTPCcalibDButil.cxx:24
 AliTPCcalibDButil.cxx:25
 AliTPCcalibDButil.cxx:26
 AliTPCcalibDButil.cxx:27
 AliTPCcalibDButil.cxx:28
 AliTPCcalibDButil.cxx:29
 AliTPCcalibDButil.cxx:30
 AliTPCcalibDButil.cxx:31
 AliTPCcalibDButil.cxx:32
 AliTPCcalibDButil.cxx:33
 AliTPCcalibDButil.cxx:34
 AliTPCcalibDButil.cxx:35
 AliTPCcalibDButil.cxx:36
 AliTPCcalibDButil.cxx:37
 AliTPCcalibDButil.cxx:38
 AliTPCcalibDButil.cxx:39
 AliTPCcalibDButil.cxx:40
 AliTPCcalibDButil.cxx:41
 AliTPCcalibDButil.cxx:42
 AliTPCcalibDButil.cxx:43
 AliTPCcalibDButil.cxx:44
 AliTPCcalibDButil.cxx:45
 AliTPCcalibDButil.cxx:46
 AliTPCcalibDButil.cxx:47
 AliTPCcalibDButil.cxx:48
 AliTPCcalibDButil.cxx:49
 AliTPCcalibDButil.cxx:50
 AliTPCcalibDButil.cxx:51
 AliTPCcalibDButil.cxx:52
 AliTPCcalibDButil.cxx:53
 AliTPCcalibDButil.cxx:54
 AliTPCcalibDButil.cxx:55
 AliTPCcalibDButil.cxx:56
 AliTPCcalibDButil.cxx:57
 AliTPCcalibDButil.cxx:58
 AliTPCcalibDButil.cxx:59
 AliTPCcalibDButil.cxx:60
 AliTPCcalibDButil.cxx:61
 AliTPCcalibDButil.cxx:62
 AliTPCcalibDButil.cxx:63
 AliTPCcalibDButil.cxx:64
 AliTPCcalibDButil.cxx:65
 AliTPCcalibDButil.cxx:66
 AliTPCcalibDButil.cxx:67
 AliTPCcalibDButil.cxx:68
 AliTPCcalibDButil.cxx:69
 AliTPCcalibDButil.cxx:70
 AliTPCcalibDButil.cxx:71
 AliTPCcalibDButil.cxx:72
 AliTPCcalibDButil.cxx:73
 AliTPCcalibDButil.cxx:74
 AliTPCcalibDButil.cxx:75
 AliTPCcalibDButil.cxx:76
 AliTPCcalibDButil.cxx:77
 AliTPCcalibDButil.cxx:78
 AliTPCcalibDButil.cxx:79
 AliTPCcalibDButil.cxx:80
 AliTPCcalibDButil.cxx:81
 AliTPCcalibDButil.cxx:82
 AliTPCcalibDButil.cxx:83
 AliTPCcalibDButil.cxx:84
 AliTPCcalibDButil.cxx:85
 AliTPCcalibDButil.cxx:86
 AliTPCcalibDButil.cxx:87
 AliTPCcalibDButil.cxx:88
 AliTPCcalibDButil.cxx:89
 AliTPCcalibDButil.cxx:90
 AliTPCcalibDButil.cxx:91
 AliTPCcalibDButil.cxx:92
 AliTPCcalibDButil.cxx:93
 AliTPCcalibDButil.cxx:94
 AliTPCcalibDButil.cxx:95
 AliTPCcalibDButil.cxx:96
 AliTPCcalibDButil.cxx:97
 AliTPCcalibDButil.cxx:98
 AliTPCcalibDButil.cxx:99
 AliTPCcalibDButil.cxx:100
 AliTPCcalibDButil.cxx:101
 AliTPCcalibDButil.cxx:102
 AliTPCcalibDButil.cxx:103
 AliTPCcalibDButil.cxx:104
 AliTPCcalibDButil.cxx:105
 AliTPCcalibDButil.cxx:106
 AliTPCcalibDButil.cxx:107
 AliTPCcalibDButil.cxx:108
 AliTPCcalibDButil.cxx:109
 AliTPCcalibDButil.cxx:110
 AliTPCcalibDButil.cxx:111
 AliTPCcalibDButil.cxx:112
 AliTPCcalibDButil.cxx:113
 AliTPCcalibDButil.cxx:114
 AliTPCcalibDButil.cxx:115
 AliTPCcalibDButil.cxx:116
 AliTPCcalibDButil.cxx:117
 AliTPCcalibDButil.cxx:118
 AliTPCcalibDButil.cxx:119
 AliTPCcalibDButil.cxx:120
 AliTPCcalibDButil.cxx:121
 AliTPCcalibDButil.cxx:122
 AliTPCcalibDButil.cxx:123
 AliTPCcalibDButil.cxx:124
 AliTPCcalibDButil.cxx:125
 AliTPCcalibDButil.cxx:126
 AliTPCcalibDButil.cxx:127
 AliTPCcalibDButil.cxx:128
 AliTPCcalibDButil.cxx:129
 AliTPCcalibDButil.cxx:130
 AliTPCcalibDButil.cxx:131
 AliTPCcalibDButil.cxx:132
 AliTPCcalibDButil.cxx:133
 AliTPCcalibDButil.cxx:134
 AliTPCcalibDButil.cxx:135
 AliTPCcalibDButil.cxx:136
 AliTPCcalibDButil.cxx:137
 AliTPCcalibDButil.cxx:138
 AliTPCcalibDButil.cxx:139
 AliTPCcalibDButil.cxx:140
 AliTPCcalibDButil.cxx:141
 AliTPCcalibDButil.cxx:142
 AliTPCcalibDButil.cxx:143
 AliTPCcalibDButil.cxx:144
 AliTPCcalibDButil.cxx:145
 AliTPCcalibDButil.cxx:146
 AliTPCcalibDButil.cxx:147
 AliTPCcalibDButil.cxx:148
 AliTPCcalibDButil.cxx:149
 AliTPCcalibDButil.cxx:150
 AliTPCcalibDButil.cxx:151
 AliTPCcalibDButil.cxx:152
 AliTPCcalibDButil.cxx:153
 AliTPCcalibDButil.cxx:154
 AliTPCcalibDButil.cxx:155
 AliTPCcalibDButil.cxx:156
 AliTPCcalibDButil.cxx:157
 AliTPCcalibDButil.cxx:158
 AliTPCcalibDButil.cxx:159
 AliTPCcalibDButil.cxx:160
 AliTPCcalibDButil.cxx:161
 AliTPCcalibDButil.cxx:162
 AliTPCcalibDButil.cxx:163
 AliTPCcalibDButil.cxx:164
 AliTPCcalibDButil.cxx:165
 AliTPCcalibDButil.cxx:166
 AliTPCcalibDButil.cxx:167
 AliTPCcalibDButil.cxx:168
 AliTPCcalibDButil.cxx:169
 AliTPCcalibDButil.cxx:170
 AliTPCcalibDButil.cxx:171
 AliTPCcalibDButil.cxx:172
 AliTPCcalibDButil.cxx:173
 AliTPCcalibDButil.cxx:174
 AliTPCcalibDButil.cxx:175
 AliTPCcalibDButil.cxx:176
 AliTPCcalibDButil.cxx:177
 AliTPCcalibDButil.cxx:178
 AliTPCcalibDButil.cxx:179
 AliTPCcalibDButil.cxx:180
 AliTPCcalibDButil.cxx:181
 AliTPCcalibDButil.cxx:182
 AliTPCcalibDButil.cxx:183
 AliTPCcalibDButil.cxx:184
 AliTPCcalibDButil.cxx:185
 AliTPCcalibDButil.cxx:186
 AliTPCcalibDButil.cxx:187
 AliTPCcalibDButil.cxx:188
 AliTPCcalibDButil.cxx:189
 AliTPCcalibDButil.cxx:190
 AliTPCcalibDButil.cxx:191
 AliTPCcalibDButil.cxx:192
 AliTPCcalibDButil.cxx:193
 AliTPCcalibDButil.cxx:194
 AliTPCcalibDButil.cxx:195
 AliTPCcalibDButil.cxx:196
 AliTPCcalibDButil.cxx:197
 AliTPCcalibDButil.cxx:198
 AliTPCcalibDButil.cxx:199
 AliTPCcalibDButil.cxx:200
 AliTPCcalibDButil.cxx:201
 AliTPCcalibDButil.cxx:202
 AliTPCcalibDButil.cxx:203
 AliTPCcalibDButil.cxx:204
 AliTPCcalibDButil.cxx:205
 AliTPCcalibDButil.cxx:206
 AliTPCcalibDButil.cxx:207
 AliTPCcalibDButil.cxx:208
 AliTPCcalibDButil.cxx:209
 AliTPCcalibDButil.cxx:210
 AliTPCcalibDButil.cxx:211
 AliTPCcalibDButil.cxx:212
 AliTPCcalibDButil.cxx:213
 AliTPCcalibDButil.cxx:214
 AliTPCcalibDButil.cxx:215
 AliTPCcalibDButil.cxx:216
 AliTPCcalibDButil.cxx:217
 AliTPCcalibDButil.cxx:218
 AliTPCcalibDButil.cxx:219
 AliTPCcalibDButil.cxx:220
 AliTPCcalibDButil.cxx:221
 AliTPCcalibDButil.cxx:222
 AliTPCcalibDButil.cxx:223
 AliTPCcalibDButil.cxx:224
 AliTPCcalibDButil.cxx:225
 AliTPCcalibDButil.cxx:226
 AliTPCcalibDButil.cxx:227
 AliTPCcalibDButil.cxx:228
 AliTPCcalibDButil.cxx:229
 AliTPCcalibDButil.cxx:230
 AliTPCcalibDButil.cxx:231
 AliTPCcalibDButil.cxx:232
 AliTPCcalibDButil.cxx:233
 AliTPCcalibDButil.cxx:234
 AliTPCcalibDButil.cxx:235
 AliTPCcalibDButil.cxx:236
 AliTPCcalibDButil.cxx:237
 AliTPCcalibDButil.cxx:238
 AliTPCcalibDButil.cxx:239
 AliTPCcalibDButil.cxx:240
 AliTPCcalibDButil.cxx:241
 AliTPCcalibDButil.cxx:242
 AliTPCcalibDButil.cxx:243
 AliTPCcalibDButil.cxx:244
 AliTPCcalibDButil.cxx:245
 AliTPCcalibDButil.cxx:246
 AliTPCcalibDButil.cxx:247
 AliTPCcalibDButil.cxx:248
 AliTPCcalibDButil.cxx:249
 AliTPCcalibDButil.cxx:250
 AliTPCcalibDButil.cxx:251
 AliTPCcalibDButil.cxx:252
 AliTPCcalibDButil.cxx:253
 AliTPCcalibDButil.cxx:254
 AliTPCcalibDButil.cxx:255
 AliTPCcalibDButil.cxx:256
 AliTPCcalibDButil.cxx:257
 AliTPCcalibDButil.cxx:258
 AliTPCcalibDButil.cxx:259
 AliTPCcalibDButil.cxx:260
 AliTPCcalibDButil.cxx:261
 AliTPCcalibDButil.cxx:262
 AliTPCcalibDButil.cxx:263
 AliTPCcalibDButil.cxx:264
 AliTPCcalibDButil.cxx:265
 AliTPCcalibDButil.cxx:266
 AliTPCcalibDButil.cxx:267
 AliTPCcalibDButil.cxx:268
 AliTPCcalibDButil.cxx:269
 AliTPCcalibDButil.cxx:270
 AliTPCcalibDButil.cxx:271
 AliTPCcalibDButil.cxx:272
 AliTPCcalibDButil.cxx:273
 AliTPCcalibDButil.cxx:274
 AliTPCcalibDButil.cxx:275
 AliTPCcalibDButil.cxx:276
 AliTPCcalibDButil.cxx:277
 AliTPCcalibDButil.cxx:278
 AliTPCcalibDButil.cxx:279
 AliTPCcalibDButil.cxx:280
 AliTPCcalibDButil.cxx:281
 AliTPCcalibDButil.cxx:282
 AliTPCcalibDButil.cxx:283
 AliTPCcalibDButil.cxx:284
 AliTPCcalibDButil.cxx:285
 AliTPCcalibDButil.cxx:286
 AliTPCcalibDButil.cxx:287
 AliTPCcalibDButil.cxx:288
 AliTPCcalibDButil.cxx:289
 AliTPCcalibDButil.cxx:290
 AliTPCcalibDButil.cxx:291
 AliTPCcalibDButil.cxx:292
 AliTPCcalibDButil.cxx:293
 AliTPCcalibDButil.cxx:294
 AliTPCcalibDButil.cxx:295
 AliTPCcalibDButil.cxx:296
 AliTPCcalibDButil.cxx:297
 AliTPCcalibDButil.cxx:298
 AliTPCcalibDButil.cxx:299
 AliTPCcalibDButil.cxx:300
 AliTPCcalibDButil.cxx:301
 AliTPCcalibDButil.cxx:302
 AliTPCcalibDButil.cxx:303
 AliTPCcalibDButil.cxx:304
 AliTPCcalibDButil.cxx:305
 AliTPCcalibDButil.cxx:306
 AliTPCcalibDButil.cxx:307
 AliTPCcalibDButil.cxx:308
 AliTPCcalibDButil.cxx:309
 AliTPCcalibDButil.cxx:310
 AliTPCcalibDButil.cxx:311
 AliTPCcalibDButil.cxx:312
 AliTPCcalibDButil.cxx:313
 AliTPCcalibDButil.cxx:314
 AliTPCcalibDButil.cxx:315
 AliTPCcalibDButil.cxx:316
 AliTPCcalibDButil.cxx:317
 AliTPCcalibDButil.cxx:318
 AliTPCcalibDButil.cxx:319
 AliTPCcalibDButil.cxx:320
 AliTPCcalibDButil.cxx:321
 AliTPCcalibDButil.cxx:322
 AliTPCcalibDButil.cxx:323
 AliTPCcalibDButil.cxx:324
 AliTPCcalibDButil.cxx:325
 AliTPCcalibDButil.cxx:326
 AliTPCcalibDButil.cxx:327
 AliTPCcalibDButil.cxx:328
 AliTPCcalibDButil.cxx:329
 AliTPCcalibDButil.cxx:330
 AliTPCcalibDButil.cxx:331
 AliTPCcalibDButil.cxx:332
 AliTPCcalibDButil.cxx:333
 AliTPCcalibDButil.cxx:334
 AliTPCcalibDButil.cxx:335
 AliTPCcalibDButil.cxx:336
 AliTPCcalibDButil.cxx:337
 AliTPCcalibDButil.cxx:338
 AliTPCcalibDButil.cxx:339
 AliTPCcalibDButil.cxx:340
 AliTPCcalibDButil.cxx:341
 AliTPCcalibDButil.cxx:342
 AliTPCcalibDButil.cxx:343
 AliTPCcalibDButil.cxx:344
 AliTPCcalibDButil.cxx:345
 AliTPCcalibDButil.cxx:346
 AliTPCcalibDButil.cxx:347
 AliTPCcalibDButil.cxx:348
 AliTPCcalibDButil.cxx:349
 AliTPCcalibDButil.cxx:350
 AliTPCcalibDButil.cxx:351
 AliTPCcalibDButil.cxx:352
 AliTPCcalibDButil.cxx:353
 AliTPCcalibDButil.cxx:354
 AliTPCcalibDButil.cxx:355
 AliTPCcalibDButil.cxx:356
 AliTPCcalibDButil.cxx:357
 AliTPCcalibDButil.cxx:358
 AliTPCcalibDButil.cxx:359
 AliTPCcalibDButil.cxx:360
 AliTPCcalibDButil.cxx:361
 AliTPCcalibDButil.cxx:362
 AliTPCcalibDButil.cxx:363
 AliTPCcalibDButil.cxx:364
 AliTPCcalibDButil.cxx:365
 AliTPCcalibDButil.cxx:366
 AliTPCcalibDButil.cxx:367
 AliTPCcalibDButil.cxx:368
 AliTPCcalibDButil.cxx:369
 AliTPCcalibDButil.cxx:370
 AliTPCcalibDButil.cxx:371
 AliTPCcalibDButil.cxx:372
 AliTPCcalibDButil.cxx:373
 AliTPCcalibDButil.cxx:374
 AliTPCcalibDButil.cxx:375
 AliTPCcalibDButil.cxx:376
 AliTPCcalibDButil.cxx:377
 AliTPCcalibDButil.cxx:378
 AliTPCcalibDButil.cxx:379
 AliTPCcalibDButil.cxx:380
 AliTPCcalibDButil.cxx:381
 AliTPCcalibDButil.cxx:382
 AliTPCcalibDButil.cxx:383
 AliTPCcalibDButil.cxx:384
 AliTPCcalibDButil.cxx:385
 AliTPCcalibDButil.cxx:386
 AliTPCcalibDButil.cxx:387
 AliTPCcalibDButil.cxx:388
 AliTPCcalibDButil.cxx:389
 AliTPCcalibDButil.cxx:390
 AliTPCcalibDButil.cxx:391
 AliTPCcalibDButil.cxx:392
 AliTPCcalibDButil.cxx:393
 AliTPCcalibDButil.cxx:394
 AliTPCcalibDButil.cxx:395
 AliTPCcalibDButil.cxx:396
 AliTPCcalibDButil.cxx:397
 AliTPCcalibDButil.cxx:398
 AliTPCcalibDButil.cxx:399
 AliTPCcalibDButil.cxx:400
 AliTPCcalibDButil.cxx:401
 AliTPCcalibDButil.cxx:402
 AliTPCcalibDButil.cxx:403
 AliTPCcalibDButil.cxx:404
 AliTPCcalibDButil.cxx:405
 AliTPCcalibDButil.cxx:406
 AliTPCcalibDButil.cxx:407
 AliTPCcalibDButil.cxx:408
 AliTPCcalibDButil.cxx:409
 AliTPCcalibDButil.cxx:410
 AliTPCcalibDButil.cxx:411
 AliTPCcalibDButil.cxx:412
 AliTPCcalibDButil.cxx:413
 AliTPCcalibDButil.cxx:414
 AliTPCcalibDButil.cxx:415
 AliTPCcalibDButil.cxx:416
 AliTPCcalibDButil.cxx:417
 AliTPCcalibDButil.cxx:418
 AliTPCcalibDButil.cxx:419
 AliTPCcalibDButil.cxx:420
 AliTPCcalibDButil.cxx:421
 AliTPCcalibDButil.cxx:422
 AliTPCcalibDButil.cxx:423
 AliTPCcalibDButil.cxx:424
 AliTPCcalibDButil.cxx:425
 AliTPCcalibDButil.cxx:426
 AliTPCcalibDButil.cxx:427
 AliTPCcalibDButil.cxx:428
 AliTPCcalibDButil.cxx:429
 AliTPCcalibDButil.cxx:430
 AliTPCcalibDButil.cxx:431
 AliTPCcalibDButil.cxx:432
 AliTPCcalibDButil.cxx:433
 AliTPCcalibDButil.cxx:434
 AliTPCcalibDButil.cxx:435
 AliTPCcalibDButil.cxx:436
 AliTPCcalibDButil.cxx:437
 AliTPCcalibDButil.cxx:438
 AliTPCcalibDButil.cxx:439
 AliTPCcalibDButil.cxx:440
 AliTPCcalibDButil.cxx:441
 AliTPCcalibDButil.cxx:442
 AliTPCcalibDButil.cxx:443
 AliTPCcalibDButil.cxx:444
 AliTPCcalibDButil.cxx:445
 AliTPCcalibDButil.cxx:446
 AliTPCcalibDButil.cxx:447
 AliTPCcalibDButil.cxx:448
 AliTPCcalibDButil.cxx:449
 AliTPCcalibDButil.cxx:450
 AliTPCcalibDButil.cxx:451
 AliTPCcalibDButil.cxx:452
 AliTPCcalibDButil.cxx:453
 AliTPCcalibDButil.cxx:454
 AliTPCcalibDButil.cxx:455
 AliTPCcalibDButil.cxx:456
 AliTPCcalibDButil.cxx:457
 AliTPCcalibDButil.cxx:458
 AliTPCcalibDButil.cxx:459
 AliTPCcalibDButil.cxx:460
 AliTPCcalibDButil.cxx:461
 AliTPCcalibDButil.cxx:462
 AliTPCcalibDButil.cxx:463
 AliTPCcalibDButil.cxx:464
 AliTPCcalibDButil.cxx:465
 AliTPCcalibDButil.cxx:466
 AliTPCcalibDButil.cxx:467
 AliTPCcalibDButil.cxx:468
 AliTPCcalibDButil.cxx:469
 AliTPCcalibDButil.cxx:470
 AliTPCcalibDButil.cxx:471
 AliTPCcalibDButil.cxx:472
 AliTPCcalibDButil.cxx:473
 AliTPCcalibDButil.cxx:474
 AliTPCcalibDButil.cxx:475
 AliTPCcalibDButil.cxx:476
 AliTPCcalibDButil.cxx:477
 AliTPCcalibDButil.cxx:478
 AliTPCcalibDButil.cxx:479
 AliTPCcalibDButil.cxx:480
 AliTPCcalibDButil.cxx:481
 AliTPCcalibDButil.cxx:482
 AliTPCcalibDButil.cxx:483
 AliTPCcalibDButil.cxx:484
 AliTPCcalibDButil.cxx:485
 AliTPCcalibDButil.cxx:486
 AliTPCcalibDButil.cxx:487
 AliTPCcalibDButil.cxx:488
 AliTPCcalibDButil.cxx:489
 AliTPCcalibDButil.cxx:490
 AliTPCcalibDButil.cxx:491
 AliTPCcalibDButil.cxx:492
 AliTPCcalibDButil.cxx:493
 AliTPCcalibDButil.cxx:494
 AliTPCcalibDButil.cxx:495
 AliTPCcalibDButil.cxx:496
 AliTPCcalibDButil.cxx:497
 AliTPCcalibDButil.cxx:498
 AliTPCcalibDButil.cxx:499
 AliTPCcalibDButil.cxx:500
 AliTPCcalibDButil.cxx:501
 AliTPCcalibDButil.cxx:502
 AliTPCcalibDButil.cxx:503
 AliTPCcalibDButil.cxx:504
 AliTPCcalibDButil.cxx:505
 AliTPCcalibDButil.cxx:506
 AliTPCcalibDButil.cxx:507
 AliTPCcalibDButil.cxx:508
 AliTPCcalibDButil.cxx:509
 AliTPCcalibDButil.cxx:510
 AliTPCcalibDButil.cxx:511
 AliTPCcalibDButil.cxx:512
 AliTPCcalibDButil.cxx:513
 AliTPCcalibDButil.cxx:514
 AliTPCcalibDButil.cxx:515
 AliTPCcalibDButil.cxx:516
 AliTPCcalibDButil.cxx:517
 AliTPCcalibDButil.cxx:518
 AliTPCcalibDButil.cxx:519
 AliTPCcalibDButil.cxx:520
 AliTPCcalibDButil.cxx:521
 AliTPCcalibDButil.cxx:522
 AliTPCcalibDButil.cxx:523
 AliTPCcalibDButil.cxx:524
 AliTPCcalibDButil.cxx:525
 AliTPCcalibDButil.cxx:526
 AliTPCcalibDButil.cxx:527
 AliTPCcalibDButil.cxx:528
 AliTPCcalibDButil.cxx:529
 AliTPCcalibDButil.cxx:530
 AliTPCcalibDButil.cxx:531
 AliTPCcalibDButil.cxx:532
 AliTPCcalibDButil.cxx:533
 AliTPCcalibDButil.cxx:534
 AliTPCcalibDButil.cxx:535
 AliTPCcalibDButil.cxx:536
 AliTPCcalibDButil.cxx:537
 AliTPCcalibDButil.cxx:538
 AliTPCcalibDButil.cxx:539
 AliTPCcalibDButil.cxx:540
 AliTPCcalibDButil.cxx:541
 AliTPCcalibDButil.cxx:542
 AliTPCcalibDButil.cxx:543
 AliTPCcalibDButil.cxx:544
 AliTPCcalibDButil.cxx:545
 AliTPCcalibDButil.cxx:546
 AliTPCcalibDButil.cxx:547
 AliTPCcalibDButil.cxx:548
 AliTPCcalibDButil.cxx:549
 AliTPCcalibDButil.cxx:550
 AliTPCcalibDButil.cxx:551
 AliTPCcalibDButil.cxx:552
 AliTPCcalibDButil.cxx:553
 AliTPCcalibDButil.cxx:554
 AliTPCcalibDButil.cxx:555
 AliTPCcalibDButil.cxx:556
 AliTPCcalibDButil.cxx:557
 AliTPCcalibDButil.cxx:558
 AliTPCcalibDButil.cxx:559
 AliTPCcalibDButil.cxx:560
 AliTPCcalibDButil.cxx:561
 AliTPCcalibDButil.cxx:562
 AliTPCcalibDButil.cxx:563
 AliTPCcalibDButil.cxx:564
 AliTPCcalibDButil.cxx:565
 AliTPCcalibDButil.cxx:566
 AliTPCcalibDButil.cxx:567
 AliTPCcalibDButil.cxx:568
 AliTPCcalibDButil.cxx:569
 AliTPCcalibDButil.cxx:570
 AliTPCcalibDButil.cxx:571
 AliTPCcalibDButil.cxx:572
 AliTPCcalibDButil.cxx:573
 AliTPCcalibDButil.cxx:574
 AliTPCcalibDButil.cxx:575
 AliTPCcalibDButil.cxx:576
 AliTPCcalibDButil.cxx:577
 AliTPCcalibDButil.cxx:578
 AliTPCcalibDButil.cxx:579
 AliTPCcalibDButil.cxx:580
 AliTPCcalibDButil.cxx:581
 AliTPCcalibDButil.cxx:582
 AliTPCcalibDButil.cxx:583
 AliTPCcalibDButil.cxx:584
 AliTPCcalibDButil.cxx:585
 AliTPCcalibDButil.cxx:586
 AliTPCcalibDButil.cxx:587
 AliTPCcalibDButil.cxx:588
 AliTPCcalibDButil.cxx:589
 AliTPCcalibDButil.cxx:590
 AliTPCcalibDButil.cxx:591
 AliTPCcalibDButil.cxx:592
 AliTPCcalibDButil.cxx:593
 AliTPCcalibDButil.cxx:594
 AliTPCcalibDButil.cxx:595
 AliTPCcalibDButil.cxx:596
 AliTPCcalibDButil.cxx:597
 AliTPCcalibDButil.cxx:598
 AliTPCcalibDButil.cxx:599
 AliTPCcalibDButil.cxx:600
 AliTPCcalibDButil.cxx:601
 AliTPCcalibDButil.cxx:602
 AliTPCcalibDButil.cxx:603
 AliTPCcalibDButil.cxx:604
 AliTPCcalibDButil.cxx:605
 AliTPCcalibDButil.cxx:606
 AliTPCcalibDButil.cxx:607
 AliTPCcalibDButil.cxx:608
 AliTPCcalibDButil.cxx:609
 AliTPCcalibDButil.cxx:610
 AliTPCcalibDButil.cxx:611
 AliTPCcalibDButil.cxx:612
 AliTPCcalibDButil.cxx:613
 AliTPCcalibDButil.cxx:614
 AliTPCcalibDButil.cxx:615
 AliTPCcalibDButil.cxx:616
 AliTPCcalibDButil.cxx:617
 AliTPCcalibDButil.cxx:618
 AliTPCcalibDButil.cxx:619
 AliTPCcalibDButil.cxx:620
 AliTPCcalibDButil.cxx:621
 AliTPCcalibDButil.cxx:622
 AliTPCcalibDButil.cxx:623
 AliTPCcalibDButil.cxx:624
 AliTPCcalibDButil.cxx:625
 AliTPCcalibDButil.cxx:626
 AliTPCcalibDButil.cxx:627
 AliTPCcalibDButil.cxx:628
 AliTPCcalibDButil.cxx:629
 AliTPCcalibDButil.cxx:630
 AliTPCcalibDButil.cxx:631
 AliTPCcalibDButil.cxx:632
 AliTPCcalibDButil.cxx:633
 AliTPCcalibDButil.cxx:634
 AliTPCcalibDButil.cxx:635
 AliTPCcalibDButil.cxx:636
 AliTPCcalibDButil.cxx:637
 AliTPCcalibDButil.cxx:638
 AliTPCcalibDButil.cxx:639
 AliTPCcalibDButil.cxx:640
 AliTPCcalibDButil.cxx:641
 AliTPCcalibDButil.cxx:642
 AliTPCcalibDButil.cxx:643
 AliTPCcalibDButil.cxx:644
 AliTPCcalibDButil.cxx:645
 AliTPCcalibDButil.cxx:646
 AliTPCcalibDButil.cxx:647
 AliTPCcalibDButil.cxx:648
 AliTPCcalibDButil.cxx:649
 AliTPCcalibDButil.cxx:650
 AliTPCcalibDButil.cxx:651
 AliTPCcalibDButil.cxx:652
 AliTPCcalibDButil.cxx:653
 AliTPCcalibDButil.cxx:654
 AliTPCcalibDButil.cxx:655
 AliTPCcalibDButil.cxx:656
 AliTPCcalibDButil.cxx:657
 AliTPCcalibDButil.cxx:658
 AliTPCcalibDButil.cxx:659
 AliTPCcalibDButil.cxx:660
 AliTPCcalibDButil.cxx:661
 AliTPCcalibDButil.cxx:662
 AliTPCcalibDButil.cxx:663
 AliTPCcalibDButil.cxx:664
 AliTPCcalibDButil.cxx:665
 AliTPCcalibDButil.cxx:666
 AliTPCcalibDButil.cxx:667
 AliTPCcalibDButil.cxx:668
 AliTPCcalibDButil.cxx:669
 AliTPCcalibDButil.cxx:670
 AliTPCcalibDButil.cxx:671
 AliTPCcalibDButil.cxx:672
 AliTPCcalibDButil.cxx:673
 AliTPCcalibDButil.cxx:674
 AliTPCcalibDButil.cxx:675
 AliTPCcalibDButil.cxx:676
 AliTPCcalibDButil.cxx:677
 AliTPCcalibDButil.cxx:678
 AliTPCcalibDButil.cxx:679
 AliTPCcalibDButil.cxx:680
 AliTPCcalibDButil.cxx:681
 AliTPCcalibDButil.cxx:682
 AliTPCcalibDButil.cxx:683
 AliTPCcalibDButil.cxx:684
 AliTPCcalibDButil.cxx:685
 AliTPCcalibDButil.cxx:686
 AliTPCcalibDButil.cxx:687
 AliTPCcalibDButil.cxx:688
 AliTPCcalibDButil.cxx:689
 AliTPCcalibDButil.cxx:690
 AliTPCcalibDButil.cxx:691
 AliTPCcalibDButil.cxx:692
 AliTPCcalibDButil.cxx:693
 AliTPCcalibDButil.cxx:694
 AliTPCcalibDButil.cxx:695
 AliTPCcalibDButil.cxx:696
 AliTPCcalibDButil.cxx:697
 AliTPCcalibDButil.cxx:698
 AliTPCcalibDButil.cxx:699
 AliTPCcalibDButil.cxx:700
 AliTPCcalibDButil.cxx:701
 AliTPCcalibDButil.cxx:702
 AliTPCcalibDButil.cxx:703
 AliTPCcalibDButil.cxx:704
 AliTPCcalibDButil.cxx:705
 AliTPCcalibDButil.cxx:706
 AliTPCcalibDButil.cxx:707
 AliTPCcalibDButil.cxx:708
 AliTPCcalibDButil.cxx:709
 AliTPCcalibDButil.cxx:710
 AliTPCcalibDButil.cxx:711
 AliTPCcalibDButil.cxx:712
 AliTPCcalibDButil.cxx:713
 AliTPCcalibDButil.cxx:714
 AliTPCcalibDButil.cxx:715
 AliTPCcalibDButil.cxx:716
 AliTPCcalibDButil.cxx:717
 AliTPCcalibDButil.cxx:718
 AliTPCcalibDButil.cxx:719
 AliTPCcalibDButil.cxx:720
 AliTPCcalibDButil.cxx:721
 AliTPCcalibDButil.cxx:722
 AliTPCcalibDButil.cxx:723
 AliTPCcalibDButil.cxx:724
 AliTPCcalibDButil.cxx:725
 AliTPCcalibDButil.cxx:726
 AliTPCcalibDButil.cxx:727
 AliTPCcalibDButil.cxx:728
 AliTPCcalibDButil.cxx:729
 AliTPCcalibDButil.cxx:730
 AliTPCcalibDButil.cxx:731
 AliTPCcalibDButil.cxx:732
 AliTPCcalibDButil.cxx:733
 AliTPCcalibDButil.cxx:734
 AliTPCcalibDButil.cxx:735
 AliTPCcalibDButil.cxx:736
 AliTPCcalibDButil.cxx:737
 AliTPCcalibDButil.cxx:738
 AliTPCcalibDButil.cxx:739
 AliTPCcalibDButil.cxx:740
 AliTPCcalibDButil.cxx:741
 AliTPCcalibDButil.cxx:742
 AliTPCcalibDButil.cxx:743
 AliTPCcalibDButil.cxx:744
 AliTPCcalibDButil.cxx:745
 AliTPCcalibDButil.cxx:746
 AliTPCcalibDButil.cxx:747
 AliTPCcalibDButil.cxx:748
 AliTPCcalibDButil.cxx:749
 AliTPCcalibDButil.cxx:750
 AliTPCcalibDButil.cxx:751
 AliTPCcalibDButil.cxx:752
 AliTPCcalibDButil.cxx:753
 AliTPCcalibDButil.cxx:754
 AliTPCcalibDButil.cxx:755
 AliTPCcalibDButil.cxx:756
 AliTPCcalibDButil.cxx:757
 AliTPCcalibDButil.cxx:758
 AliTPCcalibDButil.cxx:759
 AliTPCcalibDButil.cxx:760
 AliTPCcalibDButil.cxx:761
 AliTPCcalibDButil.cxx:762
 AliTPCcalibDButil.cxx:763
 AliTPCcalibDButil.cxx:764
 AliTPCcalibDButil.cxx:765
 AliTPCcalibDButil.cxx:766
 AliTPCcalibDButil.cxx:767
 AliTPCcalibDButil.cxx:768
 AliTPCcalibDButil.cxx:769
 AliTPCcalibDButil.cxx:770
 AliTPCcalibDButil.cxx:771
 AliTPCcalibDButil.cxx:772
 AliTPCcalibDButil.cxx:773
 AliTPCcalibDButil.cxx:774
 AliTPCcalibDButil.cxx:775
 AliTPCcalibDButil.cxx:776
 AliTPCcalibDButil.cxx:777
 AliTPCcalibDButil.cxx:778
 AliTPCcalibDButil.cxx:779
 AliTPCcalibDButil.cxx:780
 AliTPCcalibDButil.cxx:781
 AliTPCcalibDButil.cxx:782
 AliTPCcalibDButil.cxx:783
 AliTPCcalibDButil.cxx:784
 AliTPCcalibDButil.cxx:785
 AliTPCcalibDButil.cxx:786
 AliTPCcalibDButil.cxx:787
 AliTPCcalibDButil.cxx:788
 AliTPCcalibDButil.cxx:789
 AliTPCcalibDButil.cxx:790
 AliTPCcalibDButil.cxx:791
 AliTPCcalibDButil.cxx:792
 AliTPCcalibDButil.cxx:793
 AliTPCcalibDButil.cxx:794
 AliTPCcalibDButil.cxx:795
 AliTPCcalibDButil.cxx:796
 AliTPCcalibDButil.cxx:797
 AliTPCcalibDButil.cxx:798
 AliTPCcalibDButil.cxx:799
 AliTPCcalibDButil.cxx:800
 AliTPCcalibDButil.cxx:801
 AliTPCcalibDButil.cxx:802
 AliTPCcalibDButil.cxx:803
 AliTPCcalibDButil.cxx:804
 AliTPCcalibDButil.cxx:805
 AliTPCcalibDButil.cxx:806
 AliTPCcalibDButil.cxx:807
 AliTPCcalibDButil.cxx:808
 AliTPCcalibDButil.cxx:809
 AliTPCcalibDButil.cxx:810
 AliTPCcalibDButil.cxx:811
 AliTPCcalibDButil.cxx:812
 AliTPCcalibDButil.cxx:813
 AliTPCcalibDButil.cxx:814
 AliTPCcalibDButil.cxx:815
 AliTPCcalibDButil.cxx:816
 AliTPCcalibDButil.cxx:817
 AliTPCcalibDButil.cxx:818
 AliTPCcalibDButil.cxx:819
 AliTPCcalibDButil.cxx:820
 AliTPCcalibDButil.cxx:821
 AliTPCcalibDButil.cxx:822
 AliTPCcalibDButil.cxx:823
 AliTPCcalibDButil.cxx:824
 AliTPCcalibDButil.cxx:825
 AliTPCcalibDButil.cxx:826
 AliTPCcalibDButil.cxx:827
 AliTPCcalibDButil.cxx:828
 AliTPCcalibDButil.cxx:829
 AliTPCcalibDButil.cxx:830
 AliTPCcalibDButil.cxx:831
 AliTPCcalibDButil.cxx:832
 AliTPCcalibDButil.cxx:833
 AliTPCcalibDButil.cxx:834
 AliTPCcalibDButil.cxx:835
 AliTPCcalibDButil.cxx:836
 AliTPCcalibDButil.cxx:837
 AliTPCcalibDButil.cxx:838
 AliTPCcalibDButil.cxx:839
 AliTPCcalibDButil.cxx:840
 AliTPCcalibDButil.cxx:841
 AliTPCcalibDButil.cxx:842
 AliTPCcalibDButil.cxx:843
 AliTPCcalibDButil.cxx:844
 AliTPCcalibDButil.cxx:845
 AliTPCcalibDButil.cxx:846
 AliTPCcalibDButil.cxx:847
 AliTPCcalibDButil.cxx:848
 AliTPCcalibDButil.cxx:849
 AliTPCcalibDButil.cxx:850
 AliTPCcalibDButil.cxx:851
 AliTPCcalibDButil.cxx:852
 AliTPCcalibDButil.cxx:853
 AliTPCcalibDButil.cxx:854
 AliTPCcalibDButil.cxx:855
 AliTPCcalibDButil.cxx:856
 AliTPCcalibDButil.cxx:857
 AliTPCcalibDButil.cxx:858
 AliTPCcalibDButil.cxx:859
 AliTPCcalibDButil.cxx:860
 AliTPCcalibDButil.cxx:861
 AliTPCcalibDButil.cxx:862
 AliTPCcalibDButil.cxx:863
 AliTPCcalibDButil.cxx:864
 AliTPCcalibDButil.cxx:865
 AliTPCcalibDButil.cxx:866
 AliTPCcalibDButil.cxx:867
 AliTPCcalibDButil.cxx:868
 AliTPCcalibDButil.cxx:869
 AliTPCcalibDButil.cxx:870
 AliTPCcalibDButil.cxx:871
 AliTPCcalibDButil.cxx:872
 AliTPCcalibDButil.cxx:873
 AliTPCcalibDButil.cxx:874
 AliTPCcalibDButil.cxx:875
 AliTPCcalibDButil.cxx:876
 AliTPCcalibDButil.cxx:877
 AliTPCcalibDButil.cxx:878
 AliTPCcalibDButil.cxx:879
 AliTPCcalibDButil.cxx:880
 AliTPCcalibDButil.cxx:881
 AliTPCcalibDButil.cxx:882
 AliTPCcalibDButil.cxx:883
 AliTPCcalibDButil.cxx:884
 AliTPCcalibDButil.cxx:885
 AliTPCcalibDButil.cxx:886
 AliTPCcalibDButil.cxx:887
 AliTPCcalibDButil.cxx:888
 AliTPCcalibDButil.cxx:889
 AliTPCcalibDButil.cxx:890
 AliTPCcalibDButil.cxx:891
 AliTPCcalibDButil.cxx:892
 AliTPCcalibDButil.cxx:893
 AliTPCcalibDButil.cxx:894
 AliTPCcalibDButil.cxx:895
 AliTPCcalibDButil.cxx:896
 AliTPCcalibDButil.cxx:897
 AliTPCcalibDButil.cxx:898
 AliTPCcalibDButil.cxx:899
 AliTPCcalibDButil.cxx:900
 AliTPCcalibDButil.cxx:901
 AliTPCcalibDButil.cxx:902
 AliTPCcalibDButil.cxx:903
 AliTPCcalibDButil.cxx:904
 AliTPCcalibDButil.cxx:905
 AliTPCcalibDButil.cxx:906
 AliTPCcalibDButil.cxx:907
 AliTPCcalibDButil.cxx:908
 AliTPCcalibDButil.cxx:909
 AliTPCcalibDButil.cxx:910
 AliTPCcalibDButil.cxx:911
 AliTPCcalibDButil.cxx:912
 AliTPCcalibDButil.cxx:913
 AliTPCcalibDButil.cxx:914
 AliTPCcalibDButil.cxx:915
 AliTPCcalibDButil.cxx:916
 AliTPCcalibDButil.cxx:917
 AliTPCcalibDButil.cxx:918
 AliTPCcalibDButil.cxx:919
 AliTPCcalibDButil.cxx:920
 AliTPCcalibDButil.cxx:921
 AliTPCcalibDButil.cxx:922
 AliTPCcalibDButil.cxx:923
 AliTPCcalibDButil.cxx:924
 AliTPCcalibDButil.cxx:925
 AliTPCcalibDButil.cxx:926
 AliTPCcalibDButil.cxx:927
 AliTPCcalibDButil.cxx:928
 AliTPCcalibDButil.cxx:929
 AliTPCcalibDButil.cxx:930
 AliTPCcalibDButil.cxx:931
 AliTPCcalibDButil.cxx:932
 AliTPCcalibDButil.cxx:933
 AliTPCcalibDButil.cxx:934
 AliTPCcalibDButil.cxx:935
 AliTPCcalibDButil.cxx:936
 AliTPCcalibDButil.cxx:937
 AliTPCcalibDButil.cxx:938
 AliTPCcalibDButil.cxx:939
 AliTPCcalibDButil.cxx:940
 AliTPCcalibDButil.cxx:941
 AliTPCcalibDButil.cxx:942
 AliTPCcalibDButil.cxx:943
 AliTPCcalibDButil.cxx:944
 AliTPCcalibDButil.cxx:945
 AliTPCcalibDButil.cxx:946
 AliTPCcalibDButil.cxx:947
 AliTPCcalibDButil.cxx:948
 AliTPCcalibDButil.cxx:949
 AliTPCcalibDButil.cxx:950
 AliTPCcalibDButil.cxx:951
 AliTPCcalibDButil.cxx:952
 AliTPCcalibDButil.cxx:953
 AliTPCcalibDButil.cxx:954
 AliTPCcalibDButil.cxx:955
 AliTPCcalibDButil.cxx:956
 AliTPCcalibDButil.cxx:957
 AliTPCcalibDButil.cxx:958
 AliTPCcalibDButil.cxx:959
 AliTPCcalibDButil.cxx:960
 AliTPCcalibDButil.cxx:961
 AliTPCcalibDButil.cxx:962
 AliTPCcalibDButil.cxx:963
 AliTPCcalibDButil.cxx:964
 AliTPCcalibDButil.cxx:965
 AliTPCcalibDButil.cxx:966
 AliTPCcalibDButil.cxx:967
 AliTPCcalibDButil.cxx:968
 AliTPCcalibDButil.cxx:969
 AliTPCcalibDButil.cxx:970
 AliTPCcalibDButil.cxx:971
 AliTPCcalibDButil.cxx:972
 AliTPCcalibDButil.cxx:973
 AliTPCcalibDButil.cxx:974
 AliTPCcalibDButil.cxx:975
 AliTPCcalibDButil.cxx:976
 AliTPCcalibDButil.cxx:977
 AliTPCcalibDButil.cxx:978
 AliTPCcalibDButil.cxx:979
 AliTPCcalibDButil.cxx:980
 AliTPCcalibDButil.cxx:981
 AliTPCcalibDButil.cxx:982
 AliTPCcalibDButil.cxx:983
 AliTPCcalibDButil.cxx:984
 AliTPCcalibDButil.cxx:985
 AliTPCcalibDButil.cxx:986
 AliTPCcalibDButil.cxx:987
 AliTPCcalibDButil.cxx:988
 AliTPCcalibDButil.cxx:989
 AliTPCcalibDButil.cxx:990
 AliTPCcalibDButil.cxx:991
 AliTPCcalibDButil.cxx:992
 AliTPCcalibDButil.cxx:993
 AliTPCcalibDButil.cxx:994
 AliTPCcalibDButil.cxx:995
 AliTPCcalibDButil.cxx:996
 AliTPCcalibDButil.cxx:997
 AliTPCcalibDButil.cxx:998
 AliTPCcalibDButil.cxx:999
 AliTPCcalibDButil.cxx:1000
 AliTPCcalibDButil.cxx:1001
 AliTPCcalibDButil.cxx:1002
 AliTPCcalibDButil.cxx:1003
 AliTPCcalibDButil.cxx:1004
 AliTPCcalibDButil.cxx:1005
 AliTPCcalibDButil.cxx:1006
 AliTPCcalibDButil.cxx:1007
 AliTPCcalibDButil.cxx:1008
 AliTPCcalibDButil.cxx:1009
 AliTPCcalibDButil.cxx:1010
 AliTPCcalibDButil.cxx:1011
 AliTPCcalibDButil.cxx:1012
 AliTPCcalibDButil.cxx:1013
 AliTPCcalibDButil.cxx:1014
 AliTPCcalibDButil.cxx:1015
 AliTPCcalibDButil.cxx:1016
 AliTPCcalibDButil.cxx:1017
 AliTPCcalibDButil.cxx:1018
 AliTPCcalibDButil.cxx:1019
 AliTPCcalibDButil.cxx:1020
 AliTPCcalibDButil.cxx:1021
 AliTPCcalibDButil.cxx:1022
 AliTPCcalibDButil.cxx:1023
 AliTPCcalibDButil.cxx:1024
 AliTPCcalibDButil.cxx:1025
 AliTPCcalibDButil.cxx:1026
 AliTPCcalibDButil.cxx:1027
 AliTPCcalibDButil.cxx:1028
 AliTPCcalibDButil.cxx:1029
 AliTPCcalibDButil.cxx:1030
 AliTPCcalibDButil.cxx:1031
 AliTPCcalibDButil.cxx:1032
 AliTPCcalibDButil.cxx:1033
 AliTPCcalibDButil.cxx:1034
 AliTPCcalibDButil.cxx:1035
 AliTPCcalibDButil.cxx:1036
 AliTPCcalibDButil.cxx:1037
 AliTPCcalibDButil.cxx:1038
 AliTPCcalibDButil.cxx:1039
 AliTPCcalibDButil.cxx:1040
 AliTPCcalibDButil.cxx:1041
 AliTPCcalibDButil.cxx:1042
 AliTPCcalibDButil.cxx:1043
 AliTPCcalibDButil.cxx:1044
 AliTPCcalibDButil.cxx:1045
 AliTPCcalibDButil.cxx:1046
 AliTPCcalibDButil.cxx:1047
 AliTPCcalibDButil.cxx:1048
 AliTPCcalibDButil.cxx:1049
 AliTPCcalibDButil.cxx:1050
 AliTPCcalibDButil.cxx:1051
 AliTPCcalibDButil.cxx:1052
 AliTPCcalibDButil.cxx:1053
 AliTPCcalibDButil.cxx:1054
 AliTPCcalibDButil.cxx:1055
 AliTPCcalibDButil.cxx:1056
 AliTPCcalibDButil.cxx:1057
 AliTPCcalibDButil.cxx:1058
 AliTPCcalibDButil.cxx:1059
 AliTPCcalibDButil.cxx:1060
 AliTPCcalibDButil.cxx:1061
 AliTPCcalibDButil.cxx:1062
 AliTPCcalibDButil.cxx:1063
 AliTPCcalibDButil.cxx:1064
 AliTPCcalibDButil.cxx:1065
 AliTPCcalibDButil.cxx:1066
 AliTPCcalibDButil.cxx:1067
 AliTPCcalibDButil.cxx:1068
 AliTPCcalibDButil.cxx:1069
 AliTPCcalibDButil.cxx:1070
 AliTPCcalibDButil.cxx:1071
 AliTPCcalibDButil.cxx:1072
 AliTPCcalibDButil.cxx:1073
 AliTPCcalibDButil.cxx:1074
 AliTPCcalibDButil.cxx:1075
 AliTPCcalibDButil.cxx:1076
 AliTPCcalibDButil.cxx:1077
 AliTPCcalibDButil.cxx:1078
 AliTPCcalibDButil.cxx:1079
 AliTPCcalibDButil.cxx:1080
 AliTPCcalibDButil.cxx:1081
 AliTPCcalibDButil.cxx:1082
 AliTPCcalibDButil.cxx:1083
 AliTPCcalibDButil.cxx:1084
 AliTPCcalibDButil.cxx:1085
 AliTPCcalibDButil.cxx:1086
 AliTPCcalibDButil.cxx:1087
 AliTPCcalibDButil.cxx:1088
 AliTPCcalibDButil.cxx:1089
 AliTPCcalibDButil.cxx:1090
 AliTPCcalibDButil.cxx:1091
 AliTPCcalibDButil.cxx:1092
 AliTPCcalibDButil.cxx:1093
 AliTPCcalibDButil.cxx:1094
 AliTPCcalibDButil.cxx:1095
 AliTPCcalibDButil.cxx:1096
 AliTPCcalibDButil.cxx:1097
 AliTPCcalibDButil.cxx:1098
 AliTPCcalibDButil.cxx:1099
 AliTPCcalibDButil.cxx:1100
 AliTPCcalibDButil.cxx:1101
 AliTPCcalibDButil.cxx:1102
 AliTPCcalibDButil.cxx:1103
 AliTPCcalibDButil.cxx:1104
 AliTPCcalibDButil.cxx:1105
 AliTPCcalibDButil.cxx:1106
 AliTPCcalibDButil.cxx:1107
 AliTPCcalibDButil.cxx:1108
 AliTPCcalibDButil.cxx:1109
 AliTPCcalibDButil.cxx:1110
 AliTPCcalibDButil.cxx:1111
 AliTPCcalibDButil.cxx:1112
 AliTPCcalibDButil.cxx:1113
 AliTPCcalibDButil.cxx:1114
 AliTPCcalibDButil.cxx:1115
 AliTPCcalibDButil.cxx:1116
 AliTPCcalibDButil.cxx:1117
 AliTPCcalibDButil.cxx:1118
 AliTPCcalibDButil.cxx:1119
 AliTPCcalibDButil.cxx:1120
 AliTPCcalibDButil.cxx:1121
 AliTPCcalibDButil.cxx:1122
 AliTPCcalibDButil.cxx:1123
 AliTPCcalibDButil.cxx:1124
 AliTPCcalibDButil.cxx:1125
 AliTPCcalibDButil.cxx:1126
 AliTPCcalibDButil.cxx:1127
 AliTPCcalibDButil.cxx:1128
 AliTPCcalibDButil.cxx:1129
 AliTPCcalibDButil.cxx:1130
 AliTPCcalibDButil.cxx:1131
 AliTPCcalibDButil.cxx:1132
 AliTPCcalibDButil.cxx:1133
 AliTPCcalibDButil.cxx:1134
 AliTPCcalibDButil.cxx:1135
 AliTPCcalibDButil.cxx:1136
 AliTPCcalibDButil.cxx:1137
 AliTPCcalibDButil.cxx:1138
 AliTPCcalibDButil.cxx:1139
 AliTPCcalibDButil.cxx:1140
 AliTPCcalibDButil.cxx:1141
 AliTPCcalibDButil.cxx:1142
 AliTPCcalibDButil.cxx:1143
 AliTPCcalibDButil.cxx:1144
 AliTPCcalibDButil.cxx:1145
 AliTPCcalibDButil.cxx:1146
 AliTPCcalibDButil.cxx:1147
 AliTPCcalibDButil.cxx:1148
 AliTPCcalibDButil.cxx:1149
 AliTPCcalibDButil.cxx:1150
 AliTPCcalibDButil.cxx:1151
 AliTPCcalibDButil.cxx:1152
 AliTPCcalibDButil.cxx:1153
 AliTPCcalibDButil.cxx:1154
 AliTPCcalibDButil.cxx:1155
 AliTPCcalibDButil.cxx:1156
 AliTPCcalibDButil.cxx:1157
 AliTPCcalibDButil.cxx:1158
 AliTPCcalibDButil.cxx:1159
 AliTPCcalibDButil.cxx:1160
 AliTPCcalibDButil.cxx:1161
 AliTPCcalibDButil.cxx:1162
 AliTPCcalibDButil.cxx:1163
 AliTPCcalibDButil.cxx:1164
 AliTPCcalibDButil.cxx:1165
 AliTPCcalibDButil.cxx:1166
 AliTPCcalibDButil.cxx:1167
 AliTPCcalibDButil.cxx:1168
 AliTPCcalibDButil.cxx:1169
 AliTPCcalibDButil.cxx:1170
 AliTPCcalibDButil.cxx:1171
 AliTPCcalibDButil.cxx:1172
 AliTPCcalibDButil.cxx:1173
 AliTPCcalibDButil.cxx:1174
 AliTPCcalibDButil.cxx:1175
 AliTPCcalibDButil.cxx:1176
 AliTPCcalibDButil.cxx:1177
 AliTPCcalibDButil.cxx:1178
 AliTPCcalibDButil.cxx:1179
 AliTPCcalibDButil.cxx:1180
 AliTPCcalibDButil.cxx:1181
 AliTPCcalibDButil.cxx:1182
 AliTPCcalibDButil.cxx:1183
 AliTPCcalibDButil.cxx:1184
 AliTPCcalibDButil.cxx:1185
 AliTPCcalibDButil.cxx:1186
 AliTPCcalibDButil.cxx:1187
 AliTPCcalibDButil.cxx:1188
 AliTPCcalibDButil.cxx:1189
 AliTPCcalibDButil.cxx:1190
 AliTPCcalibDButil.cxx:1191
 AliTPCcalibDButil.cxx:1192
 AliTPCcalibDButil.cxx:1193
 AliTPCcalibDButil.cxx:1194
 AliTPCcalibDButil.cxx:1195
 AliTPCcalibDButil.cxx:1196
 AliTPCcalibDButil.cxx:1197
 AliTPCcalibDButil.cxx:1198
 AliTPCcalibDButil.cxx:1199
 AliTPCcalibDButil.cxx:1200
 AliTPCcalibDButil.cxx:1201
 AliTPCcalibDButil.cxx:1202
 AliTPCcalibDButil.cxx:1203
 AliTPCcalibDButil.cxx:1204
 AliTPCcalibDButil.cxx:1205
 AliTPCcalibDButil.cxx:1206
 AliTPCcalibDButil.cxx:1207
 AliTPCcalibDButil.cxx:1208
 AliTPCcalibDButil.cxx:1209
 AliTPCcalibDButil.cxx:1210
 AliTPCcalibDButil.cxx:1211
 AliTPCcalibDButil.cxx:1212
 AliTPCcalibDButil.cxx:1213
 AliTPCcalibDButil.cxx:1214
 AliTPCcalibDButil.cxx:1215
 AliTPCcalibDButil.cxx:1216
 AliTPCcalibDButil.cxx:1217
 AliTPCcalibDButil.cxx:1218
 AliTPCcalibDButil.cxx:1219
 AliTPCcalibDButil.cxx:1220
 AliTPCcalibDButil.cxx:1221
 AliTPCcalibDButil.cxx:1222
 AliTPCcalibDButil.cxx:1223
 AliTPCcalibDButil.cxx:1224
 AliTPCcalibDButil.cxx:1225
 AliTPCcalibDButil.cxx:1226
 AliTPCcalibDButil.cxx:1227
 AliTPCcalibDButil.cxx:1228
 AliTPCcalibDButil.cxx:1229
 AliTPCcalibDButil.cxx:1230
 AliTPCcalibDButil.cxx:1231
 AliTPCcalibDButil.cxx:1232
 AliTPCcalibDButil.cxx:1233
 AliTPCcalibDButil.cxx:1234
 AliTPCcalibDButil.cxx:1235
 AliTPCcalibDButil.cxx:1236
 AliTPCcalibDButil.cxx:1237
 AliTPCcalibDButil.cxx:1238
 AliTPCcalibDButil.cxx:1239
 AliTPCcalibDButil.cxx:1240
 AliTPCcalibDButil.cxx:1241
 AliTPCcalibDButil.cxx:1242
 AliTPCcalibDButil.cxx:1243
 AliTPCcalibDButil.cxx:1244
 AliTPCcalibDButil.cxx:1245
 AliTPCcalibDButil.cxx:1246
 AliTPCcalibDButil.cxx:1247
 AliTPCcalibDButil.cxx:1248
 AliTPCcalibDButil.cxx:1249
 AliTPCcalibDButil.cxx:1250
 AliTPCcalibDButil.cxx:1251
 AliTPCcalibDButil.cxx:1252
 AliTPCcalibDButil.cxx:1253
 AliTPCcalibDButil.cxx:1254
 AliTPCcalibDButil.cxx:1255
 AliTPCcalibDButil.cxx:1256
 AliTPCcalibDButil.cxx:1257
 AliTPCcalibDButil.cxx:1258
 AliTPCcalibDButil.cxx:1259
 AliTPCcalibDButil.cxx:1260
 AliTPCcalibDButil.cxx:1261
 AliTPCcalibDButil.cxx:1262
 AliTPCcalibDButil.cxx:1263
 AliTPCcalibDButil.cxx:1264
 AliTPCcalibDButil.cxx:1265
 AliTPCcalibDButil.cxx:1266
 AliTPCcalibDButil.cxx:1267
 AliTPCcalibDButil.cxx:1268
 AliTPCcalibDButil.cxx:1269
 AliTPCcalibDButil.cxx:1270
 AliTPCcalibDButil.cxx:1271
 AliTPCcalibDButil.cxx:1272
 AliTPCcalibDButil.cxx:1273
 AliTPCcalibDButil.cxx:1274
 AliTPCcalibDButil.cxx:1275
 AliTPCcalibDButil.cxx:1276
 AliTPCcalibDButil.cxx:1277
 AliTPCcalibDButil.cxx:1278
 AliTPCcalibDButil.cxx:1279
 AliTPCcalibDButil.cxx:1280
 AliTPCcalibDButil.cxx:1281
 AliTPCcalibDButil.cxx:1282
 AliTPCcalibDButil.cxx:1283
 AliTPCcalibDButil.cxx:1284
 AliTPCcalibDButil.cxx:1285
 AliTPCcalibDButil.cxx:1286
 AliTPCcalibDButil.cxx:1287
 AliTPCcalibDButil.cxx:1288
 AliTPCcalibDButil.cxx:1289
 AliTPCcalibDButil.cxx:1290
 AliTPCcalibDButil.cxx:1291
 AliTPCcalibDButil.cxx:1292
 AliTPCcalibDButil.cxx:1293
 AliTPCcalibDButil.cxx:1294
 AliTPCcalibDButil.cxx:1295
 AliTPCcalibDButil.cxx:1296
 AliTPCcalibDButil.cxx:1297
 AliTPCcalibDButil.cxx:1298
 AliTPCcalibDButil.cxx:1299
 AliTPCcalibDButil.cxx:1300
 AliTPCcalibDButil.cxx:1301
 AliTPCcalibDButil.cxx:1302
 AliTPCcalibDButil.cxx:1303
 AliTPCcalibDButil.cxx:1304
 AliTPCcalibDButil.cxx:1305
 AliTPCcalibDButil.cxx:1306
 AliTPCcalibDButil.cxx:1307
 AliTPCcalibDButil.cxx:1308
 AliTPCcalibDButil.cxx:1309
 AliTPCcalibDButil.cxx:1310
 AliTPCcalibDButil.cxx:1311
 AliTPCcalibDButil.cxx:1312
 AliTPCcalibDButil.cxx:1313
 AliTPCcalibDButil.cxx:1314
 AliTPCcalibDButil.cxx:1315
 AliTPCcalibDButil.cxx:1316
 AliTPCcalibDButil.cxx:1317
 AliTPCcalibDButil.cxx:1318
 AliTPCcalibDButil.cxx:1319
 AliTPCcalibDButil.cxx:1320
 AliTPCcalibDButil.cxx:1321
 AliTPCcalibDButil.cxx:1322
 AliTPCcalibDButil.cxx:1323
 AliTPCcalibDButil.cxx:1324
 AliTPCcalibDButil.cxx:1325
 AliTPCcalibDButil.cxx:1326
 AliTPCcalibDButil.cxx:1327
 AliTPCcalibDButil.cxx:1328
 AliTPCcalibDButil.cxx:1329
 AliTPCcalibDButil.cxx:1330
 AliTPCcalibDButil.cxx:1331
 AliTPCcalibDButil.cxx:1332
 AliTPCcalibDButil.cxx:1333
 AliTPCcalibDButil.cxx:1334
 AliTPCcalibDButil.cxx:1335
 AliTPCcalibDButil.cxx:1336
 AliTPCcalibDButil.cxx:1337
 AliTPCcalibDButil.cxx:1338
 AliTPCcalibDButil.cxx:1339
 AliTPCcalibDButil.cxx:1340
 AliTPCcalibDButil.cxx:1341
 AliTPCcalibDButil.cxx:1342
 AliTPCcalibDButil.cxx:1343
 AliTPCcalibDButil.cxx:1344
 AliTPCcalibDButil.cxx:1345
 AliTPCcalibDButil.cxx:1346
 AliTPCcalibDButil.cxx:1347
 AliTPCcalibDButil.cxx:1348
 AliTPCcalibDButil.cxx:1349
 AliTPCcalibDButil.cxx:1350
 AliTPCcalibDButil.cxx:1351
 AliTPCcalibDButil.cxx:1352
 AliTPCcalibDButil.cxx:1353
 AliTPCcalibDButil.cxx:1354
 AliTPCcalibDButil.cxx:1355
 AliTPCcalibDButil.cxx:1356
 AliTPCcalibDButil.cxx:1357
 AliTPCcalibDButil.cxx:1358
 AliTPCcalibDButil.cxx:1359
 AliTPCcalibDButil.cxx:1360
 AliTPCcalibDButil.cxx:1361
 AliTPCcalibDButil.cxx:1362
 AliTPCcalibDButil.cxx:1363
 AliTPCcalibDButil.cxx:1364
 AliTPCcalibDButil.cxx:1365
 AliTPCcalibDButil.cxx:1366
 AliTPCcalibDButil.cxx:1367
 AliTPCcalibDButil.cxx:1368
 AliTPCcalibDButil.cxx:1369
 AliTPCcalibDButil.cxx:1370
 AliTPCcalibDButil.cxx:1371
 AliTPCcalibDButil.cxx:1372
 AliTPCcalibDButil.cxx:1373
 AliTPCcalibDButil.cxx:1374
 AliTPCcalibDButil.cxx:1375
 AliTPCcalibDButil.cxx:1376
 AliTPCcalibDButil.cxx:1377
 AliTPCcalibDButil.cxx:1378
 AliTPCcalibDButil.cxx:1379
 AliTPCcalibDButil.cxx:1380
 AliTPCcalibDButil.cxx:1381
 AliTPCcalibDButil.cxx:1382
 AliTPCcalibDButil.cxx:1383
 AliTPCcalibDButil.cxx:1384
 AliTPCcalibDButil.cxx:1385
 AliTPCcalibDButil.cxx:1386
 AliTPCcalibDButil.cxx:1387
 AliTPCcalibDButil.cxx:1388
 AliTPCcalibDButil.cxx:1389
 AliTPCcalibDButil.cxx:1390
 AliTPCcalibDButil.cxx:1391
 AliTPCcalibDButil.cxx:1392
 AliTPCcalibDButil.cxx:1393
 AliTPCcalibDButil.cxx:1394
 AliTPCcalibDButil.cxx:1395
 AliTPCcalibDButil.cxx:1396
 AliTPCcalibDButil.cxx:1397
 AliTPCcalibDButil.cxx:1398
 AliTPCcalibDButil.cxx:1399
 AliTPCcalibDButil.cxx:1400
 AliTPCcalibDButil.cxx:1401
 AliTPCcalibDButil.cxx:1402
 AliTPCcalibDButil.cxx:1403
 AliTPCcalibDButil.cxx:1404
 AliTPCcalibDButil.cxx:1405
 AliTPCcalibDButil.cxx:1406
 AliTPCcalibDButil.cxx:1407
 AliTPCcalibDButil.cxx:1408
 AliTPCcalibDButil.cxx:1409
 AliTPCcalibDButil.cxx:1410
 AliTPCcalibDButil.cxx:1411
 AliTPCcalibDButil.cxx:1412
 AliTPCcalibDButil.cxx:1413
 AliTPCcalibDButil.cxx:1414
 AliTPCcalibDButil.cxx:1415
 AliTPCcalibDButil.cxx:1416
 AliTPCcalibDButil.cxx:1417
 AliTPCcalibDButil.cxx:1418
 AliTPCcalibDButil.cxx:1419
 AliTPCcalibDButil.cxx:1420
 AliTPCcalibDButil.cxx:1421
 AliTPCcalibDButil.cxx:1422
 AliTPCcalibDButil.cxx:1423
 AliTPCcalibDButil.cxx:1424
 AliTPCcalibDButil.cxx:1425
 AliTPCcalibDButil.cxx:1426
 AliTPCcalibDButil.cxx:1427
 AliTPCcalibDButil.cxx:1428
 AliTPCcalibDButil.cxx:1429
 AliTPCcalibDButil.cxx:1430
 AliTPCcalibDButil.cxx:1431
 AliTPCcalibDButil.cxx:1432
 AliTPCcalibDButil.cxx:1433
 AliTPCcalibDButil.cxx:1434
 AliTPCcalibDButil.cxx:1435
 AliTPCcalibDButil.cxx:1436
 AliTPCcalibDButil.cxx:1437
 AliTPCcalibDButil.cxx:1438
 AliTPCcalibDButil.cxx:1439
 AliTPCcalibDButil.cxx:1440
 AliTPCcalibDButil.cxx:1441
 AliTPCcalibDButil.cxx:1442
 AliTPCcalibDButil.cxx:1443
 AliTPCcalibDButil.cxx:1444
 AliTPCcalibDButil.cxx:1445
 AliTPCcalibDButil.cxx:1446
 AliTPCcalibDButil.cxx:1447
 AliTPCcalibDButil.cxx:1448
 AliTPCcalibDButil.cxx:1449
 AliTPCcalibDButil.cxx:1450
 AliTPCcalibDButil.cxx:1451
 AliTPCcalibDButil.cxx:1452
 AliTPCcalibDButil.cxx:1453
 AliTPCcalibDButil.cxx:1454
 AliTPCcalibDButil.cxx:1455
 AliTPCcalibDButil.cxx:1456
 AliTPCcalibDButil.cxx:1457
 AliTPCcalibDButil.cxx:1458
 AliTPCcalibDButil.cxx:1459
 AliTPCcalibDButil.cxx:1460
 AliTPCcalibDButil.cxx:1461
 AliTPCcalibDButil.cxx:1462
 AliTPCcalibDButil.cxx:1463
 AliTPCcalibDButil.cxx:1464
 AliTPCcalibDButil.cxx:1465
 AliTPCcalibDButil.cxx:1466
 AliTPCcalibDButil.cxx:1467
 AliTPCcalibDButil.cxx:1468
 AliTPCcalibDButil.cxx:1469
 AliTPCcalibDButil.cxx:1470
 AliTPCcalibDButil.cxx:1471
 AliTPCcalibDButil.cxx:1472
 AliTPCcalibDButil.cxx:1473
 AliTPCcalibDButil.cxx:1474
 AliTPCcalibDButil.cxx:1475
 AliTPCcalibDButil.cxx:1476
 AliTPCcalibDButil.cxx:1477
 AliTPCcalibDButil.cxx:1478
 AliTPCcalibDButil.cxx:1479
 AliTPCcalibDButil.cxx:1480
 AliTPCcalibDButil.cxx:1481
 AliTPCcalibDButil.cxx:1482
 AliTPCcalibDButil.cxx:1483
 AliTPCcalibDButil.cxx:1484
 AliTPCcalibDButil.cxx:1485
 AliTPCcalibDButil.cxx:1486
 AliTPCcalibDButil.cxx:1487
 AliTPCcalibDButil.cxx:1488
 AliTPCcalibDButil.cxx:1489
 AliTPCcalibDButil.cxx:1490
 AliTPCcalibDButil.cxx:1491
 AliTPCcalibDButil.cxx:1492
 AliTPCcalibDButil.cxx:1493
 AliTPCcalibDButil.cxx:1494
 AliTPCcalibDButil.cxx:1495
 AliTPCcalibDButil.cxx:1496
 AliTPCcalibDButil.cxx:1497
 AliTPCcalibDButil.cxx:1498
 AliTPCcalibDButil.cxx:1499
 AliTPCcalibDButil.cxx:1500
 AliTPCcalibDButil.cxx:1501
 AliTPCcalibDButil.cxx:1502
 AliTPCcalibDButil.cxx:1503
 AliTPCcalibDButil.cxx:1504
 AliTPCcalibDButil.cxx:1505
 AliTPCcalibDButil.cxx:1506
 AliTPCcalibDButil.cxx:1507
 AliTPCcalibDButil.cxx:1508
 AliTPCcalibDButil.cxx:1509
 AliTPCcalibDButil.cxx:1510
 AliTPCcalibDButil.cxx:1511
 AliTPCcalibDButil.cxx:1512
 AliTPCcalibDButil.cxx:1513
 AliTPCcalibDButil.cxx:1514
 AliTPCcalibDButil.cxx:1515
 AliTPCcalibDButil.cxx:1516
 AliTPCcalibDButil.cxx:1517
 AliTPCcalibDButil.cxx:1518
 AliTPCcalibDButil.cxx:1519
 AliTPCcalibDButil.cxx:1520
 AliTPCcalibDButil.cxx:1521
 AliTPCcalibDButil.cxx:1522
 AliTPCcalibDButil.cxx:1523
 AliTPCcalibDButil.cxx:1524
 AliTPCcalibDButil.cxx:1525
 AliTPCcalibDButil.cxx:1526
 AliTPCcalibDButil.cxx:1527
 AliTPCcalibDButil.cxx:1528
 AliTPCcalibDButil.cxx:1529
 AliTPCcalibDButil.cxx:1530
 AliTPCcalibDButil.cxx:1531
 AliTPCcalibDButil.cxx:1532
 AliTPCcalibDButil.cxx:1533
 AliTPCcalibDButil.cxx:1534
 AliTPCcalibDButil.cxx:1535
 AliTPCcalibDButil.cxx:1536
 AliTPCcalibDButil.cxx:1537
 AliTPCcalibDButil.cxx:1538
 AliTPCcalibDButil.cxx:1539
 AliTPCcalibDButil.cxx:1540
 AliTPCcalibDButil.cxx:1541
 AliTPCcalibDButil.cxx:1542
 AliTPCcalibDButil.cxx:1543
 AliTPCcalibDButil.cxx:1544
 AliTPCcalibDButil.cxx:1545
 AliTPCcalibDButil.cxx:1546
 AliTPCcalibDButil.cxx:1547
 AliTPCcalibDButil.cxx:1548
 AliTPCcalibDButil.cxx:1549
 AliTPCcalibDButil.cxx:1550
 AliTPCcalibDButil.cxx:1551
 AliTPCcalibDButil.cxx:1552
 AliTPCcalibDButil.cxx:1553
 AliTPCcalibDButil.cxx:1554
 AliTPCcalibDButil.cxx:1555
 AliTPCcalibDButil.cxx:1556
 AliTPCcalibDButil.cxx:1557
 AliTPCcalibDButil.cxx:1558
 AliTPCcalibDButil.cxx:1559
 AliTPCcalibDButil.cxx:1560
 AliTPCcalibDButil.cxx:1561
 AliTPCcalibDButil.cxx:1562
 AliTPCcalibDButil.cxx:1563
 AliTPCcalibDButil.cxx:1564
 AliTPCcalibDButil.cxx:1565
 AliTPCcalibDButil.cxx:1566
 AliTPCcalibDButil.cxx:1567
 AliTPCcalibDButil.cxx:1568
 AliTPCcalibDButil.cxx:1569
 AliTPCcalibDButil.cxx:1570
 AliTPCcalibDButil.cxx:1571
 AliTPCcalibDButil.cxx:1572
 AliTPCcalibDButil.cxx:1573
 AliTPCcalibDButil.cxx:1574
 AliTPCcalibDButil.cxx:1575
 AliTPCcalibDButil.cxx:1576
 AliTPCcalibDButil.cxx:1577
 AliTPCcalibDButil.cxx:1578
 AliTPCcalibDButil.cxx:1579
 AliTPCcalibDButil.cxx:1580
 AliTPCcalibDButil.cxx:1581
 AliTPCcalibDButil.cxx:1582
 AliTPCcalibDButil.cxx:1583
 AliTPCcalibDButil.cxx:1584
 AliTPCcalibDButil.cxx:1585
 AliTPCcalibDButil.cxx:1586
 AliTPCcalibDButil.cxx:1587
 AliTPCcalibDButil.cxx:1588
 AliTPCcalibDButil.cxx:1589
 AliTPCcalibDButil.cxx:1590
 AliTPCcalibDButil.cxx:1591
 AliTPCcalibDButil.cxx:1592
 AliTPCcalibDButil.cxx:1593
 AliTPCcalibDButil.cxx:1594
 AliTPCcalibDButil.cxx:1595
 AliTPCcalibDButil.cxx:1596
 AliTPCcalibDButil.cxx:1597
 AliTPCcalibDButil.cxx:1598
 AliTPCcalibDButil.cxx:1599
 AliTPCcalibDButil.cxx:1600
 AliTPCcalibDButil.cxx:1601
 AliTPCcalibDButil.cxx:1602
 AliTPCcalibDButil.cxx:1603
 AliTPCcalibDButil.cxx:1604
 AliTPCcalibDButil.cxx:1605
 AliTPCcalibDButil.cxx:1606
 AliTPCcalibDButil.cxx:1607
 AliTPCcalibDButil.cxx:1608
 AliTPCcalibDButil.cxx:1609
 AliTPCcalibDButil.cxx:1610
 AliTPCcalibDButil.cxx:1611
 AliTPCcalibDButil.cxx:1612
 AliTPCcalibDButil.cxx:1613
 AliTPCcalibDButil.cxx:1614
 AliTPCcalibDButil.cxx:1615
 AliTPCcalibDButil.cxx:1616
 AliTPCcalibDButil.cxx:1617
 AliTPCcalibDButil.cxx:1618
 AliTPCcalibDButil.cxx:1619
 AliTPCcalibDButil.cxx:1620
 AliTPCcalibDButil.cxx:1621
 AliTPCcalibDButil.cxx:1622
 AliTPCcalibDButil.cxx:1623
 AliTPCcalibDButil.cxx:1624
 AliTPCcalibDButil.cxx:1625
 AliTPCcalibDButil.cxx:1626
 AliTPCcalibDButil.cxx:1627
 AliTPCcalibDButil.cxx:1628
 AliTPCcalibDButil.cxx:1629
 AliTPCcalibDButil.cxx:1630
 AliTPCcalibDButil.cxx:1631
 AliTPCcalibDButil.cxx:1632
 AliTPCcalibDButil.cxx:1633
 AliTPCcalibDButil.cxx:1634
 AliTPCcalibDButil.cxx:1635
 AliTPCcalibDButil.cxx:1636
 AliTPCcalibDButil.cxx:1637
 AliTPCcalibDButil.cxx:1638
 AliTPCcalibDButil.cxx:1639
 AliTPCcalibDButil.cxx:1640
 AliTPCcalibDButil.cxx:1641
 AliTPCcalibDButil.cxx:1642
 AliTPCcalibDButil.cxx:1643
 AliTPCcalibDButil.cxx:1644
 AliTPCcalibDButil.cxx:1645
 AliTPCcalibDButil.cxx:1646
 AliTPCcalibDButil.cxx:1647
 AliTPCcalibDButil.cxx:1648
 AliTPCcalibDButil.cxx:1649
 AliTPCcalibDButil.cxx:1650
 AliTPCcalibDButil.cxx:1651
 AliTPCcalibDButil.cxx:1652
 AliTPCcalibDButil.cxx:1653
 AliTPCcalibDButil.cxx:1654
 AliTPCcalibDButil.cxx:1655
 AliTPCcalibDButil.cxx:1656
 AliTPCcalibDButil.cxx:1657
 AliTPCcalibDButil.cxx:1658
 AliTPCcalibDButil.cxx:1659
 AliTPCcalibDButil.cxx:1660
 AliTPCcalibDButil.cxx:1661
 AliTPCcalibDButil.cxx:1662
 AliTPCcalibDButil.cxx:1663
 AliTPCcalibDButil.cxx:1664
 AliTPCcalibDButil.cxx:1665
 AliTPCcalibDButil.cxx:1666
 AliTPCcalibDButil.cxx:1667
 AliTPCcalibDButil.cxx:1668
 AliTPCcalibDButil.cxx:1669
 AliTPCcalibDButil.cxx:1670
 AliTPCcalibDButil.cxx:1671
 AliTPCcalibDButil.cxx:1672
 AliTPCcalibDButil.cxx:1673
 AliTPCcalibDButil.cxx:1674
 AliTPCcalibDButil.cxx:1675
 AliTPCcalibDButil.cxx:1676
 AliTPCcalibDButil.cxx:1677
 AliTPCcalibDButil.cxx:1678
 AliTPCcalibDButil.cxx:1679
 AliTPCcalibDButil.cxx:1680
 AliTPCcalibDButil.cxx:1681
 AliTPCcalibDButil.cxx:1682
 AliTPCcalibDButil.cxx:1683
 AliTPCcalibDButil.cxx:1684
 AliTPCcalibDButil.cxx:1685
 AliTPCcalibDButil.cxx:1686
 AliTPCcalibDButil.cxx:1687
 AliTPCcalibDButil.cxx:1688
 AliTPCcalibDButil.cxx:1689
 AliTPCcalibDButil.cxx:1690
 AliTPCcalibDButil.cxx:1691
 AliTPCcalibDButil.cxx:1692
 AliTPCcalibDButil.cxx:1693
 AliTPCcalibDButil.cxx:1694
 AliTPCcalibDButil.cxx:1695
 AliTPCcalibDButil.cxx:1696
 AliTPCcalibDButil.cxx:1697
 AliTPCcalibDButil.cxx:1698
 AliTPCcalibDButil.cxx:1699
 AliTPCcalibDButil.cxx:1700
 AliTPCcalibDButil.cxx:1701
 AliTPCcalibDButil.cxx:1702
 AliTPCcalibDButil.cxx:1703
 AliTPCcalibDButil.cxx:1704
 AliTPCcalibDButil.cxx:1705
 AliTPCcalibDButil.cxx:1706
 AliTPCcalibDButil.cxx:1707
 AliTPCcalibDButil.cxx:1708
 AliTPCcalibDButil.cxx:1709
 AliTPCcalibDButil.cxx:1710
 AliTPCcalibDButil.cxx:1711
 AliTPCcalibDButil.cxx:1712
 AliTPCcalibDButil.cxx:1713
 AliTPCcalibDButil.cxx:1714
 AliTPCcalibDButil.cxx:1715
 AliTPCcalibDButil.cxx:1716
 AliTPCcalibDButil.cxx:1717
 AliTPCcalibDButil.cxx:1718
 AliTPCcalibDButil.cxx:1719
 AliTPCcalibDButil.cxx:1720
 AliTPCcalibDButil.cxx:1721
 AliTPCcalibDButil.cxx:1722
 AliTPCcalibDButil.cxx:1723
 AliTPCcalibDButil.cxx:1724
 AliTPCcalibDButil.cxx:1725
 AliTPCcalibDButil.cxx:1726
 AliTPCcalibDButil.cxx:1727
 AliTPCcalibDButil.cxx:1728
 AliTPCcalibDButil.cxx:1729
 AliTPCcalibDButil.cxx:1730
 AliTPCcalibDButil.cxx:1731
 AliTPCcalibDButil.cxx:1732
 AliTPCcalibDButil.cxx:1733
 AliTPCcalibDButil.cxx:1734
 AliTPCcalibDButil.cxx:1735
 AliTPCcalibDButil.cxx:1736
 AliTPCcalibDButil.cxx:1737
 AliTPCcalibDButil.cxx:1738
 AliTPCcalibDButil.cxx:1739
 AliTPCcalibDButil.cxx:1740
 AliTPCcalibDButil.cxx:1741
 AliTPCcalibDButil.cxx:1742
 AliTPCcalibDButil.cxx:1743
 AliTPCcalibDButil.cxx:1744
 AliTPCcalibDButil.cxx:1745
 AliTPCcalibDButil.cxx:1746
 AliTPCcalibDButil.cxx:1747
 AliTPCcalibDButil.cxx:1748
 AliTPCcalibDButil.cxx:1749
 AliTPCcalibDButil.cxx:1750
 AliTPCcalibDButil.cxx:1751
 AliTPCcalibDButil.cxx:1752
 AliTPCcalibDButil.cxx:1753
 AliTPCcalibDButil.cxx:1754
 AliTPCcalibDButil.cxx:1755
 AliTPCcalibDButil.cxx:1756
 AliTPCcalibDButil.cxx:1757
 AliTPCcalibDButil.cxx:1758
 AliTPCcalibDButil.cxx:1759
 AliTPCcalibDButil.cxx:1760
 AliTPCcalibDButil.cxx:1761
 AliTPCcalibDButil.cxx:1762
 AliTPCcalibDButil.cxx:1763
 AliTPCcalibDButil.cxx:1764
 AliTPCcalibDButil.cxx:1765
 AliTPCcalibDButil.cxx:1766
 AliTPCcalibDButil.cxx:1767
 AliTPCcalibDButil.cxx:1768
 AliTPCcalibDButil.cxx:1769
 AliTPCcalibDButil.cxx:1770
 AliTPCcalibDButil.cxx:1771
 AliTPCcalibDButil.cxx:1772
 AliTPCcalibDButil.cxx:1773
 AliTPCcalibDButil.cxx:1774
 AliTPCcalibDButil.cxx:1775
 AliTPCcalibDButil.cxx:1776
 AliTPCcalibDButil.cxx:1777
 AliTPCcalibDButil.cxx:1778
 AliTPCcalibDButil.cxx:1779
 AliTPCcalibDButil.cxx:1780
 AliTPCcalibDButil.cxx:1781
 AliTPCcalibDButil.cxx:1782
 AliTPCcalibDButil.cxx:1783
 AliTPCcalibDButil.cxx:1784
 AliTPCcalibDButil.cxx:1785
 AliTPCcalibDButil.cxx:1786
 AliTPCcalibDButil.cxx:1787
 AliTPCcalibDButil.cxx:1788
 AliTPCcalibDButil.cxx:1789
 AliTPCcalibDButil.cxx:1790
 AliTPCcalibDButil.cxx:1791
 AliTPCcalibDButil.cxx:1792
 AliTPCcalibDButil.cxx:1793
 AliTPCcalibDButil.cxx:1794
 AliTPCcalibDButil.cxx:1795
 AliTPCcalibDButil.cxx:1796
 AliTPCcalibDButil.cxx:1797
 AliTPCcalibDButil.cxx:1798
 AliTPCcalibDButil.cxx:1799
 AliTPCcalibDButil.cxx:1800
 AliTPCcalibDButil.cxx:1801
 AliTPCcalibDButil.cxx:1802
 AliTPCcalibDButil.cxx:1803
 AliTPCcalibDButil.cxx:1804
 AliTPCcalibDButil.cxx:1805
 AliTPCcalibDButil.cxx:1806
 AliTPCcalibDButil.cxx:1807
 AliTPCcalibDButil.cxx:1808
 AliTPCcalibDButil.cxx:1809
 AliTPCcalibDButil.cxx:1810
 AliTPCcalibDButil.cxx:1811
 AliTPCcalibDButil.cxx:1812
 AliTPCcalibDButil.cxx:1813
 AliTPCcalibDButil.cxx:1814
 AliTPCcalibDButil.cxx:1815
 AliTPCcalibDButil.cxx:1816
 AliTPCcalibDButil.cxx:1817
 AliTPCcalibDButil.cxx:1818
 AliTPCcalibDButil.cxx:1819
 AliTPCcalibDButil.cxx:1820
 AliTPCcalibDButil.cxx:1821
 AliTPCcalibDButil.cxx:1822
 AliTPCcalibDButil.cxx:1823
 AliTPCcalibDButil.cxx:1824
 AliTPCcalibDButil.cxx:1825
 AliTPCcalibDButil.cxx:1826
 AliTPCcalibDButil.cxx:1827
 AliTPCcalibDButil.cxx:1828
 AliTPCcalibDButil.cxx:1829
 AliTPCcalibDButil.cxx:1830
 AliTPCcalibDButil.cxx:1831
 AliTPCcalibDButil.cxx:1832
 AliTPCcalibDButil.cxx:1833
 AliTPCcalibDButil.cxx:1834
 AliTPCcalibDButil.cxx:1835
 AliTPCcalibDButil.cxx:1836
 AliTPCcalibDButil.cxx:1837
 AliTPCcalibDButil.cxx:1838
 AliTPCcalibDButil.cxx:1839
 AliTPCcalibDButil.cxx:1840
 AliTPCcalibDButil.cxx:1841
 AliTPCcalibDButil.cxx:1842
 AliTPCcalibDButil.cxx:1843
 AliTPCcalibDButil.cxx:1844
 AliTPCcalibDButil.cxx:1845
 AliTPCcalibDButil.cxx:1846
 AliTPCcalibDButil.cxx:1847
 AliTPCcalibDButil.cxx:1848
 AliTPCcalibDButil.cxx:1849
 AliTPCcalibDButil.cxx:1850
 AliTPCcalibDButil.cxx:1851
 AliTPCcalibDButil.cxx:1852
 AliTPCcalibDButil.cxx:1853
 AliTPCcalibDButil.cxx:1854
 AliTPCcalibDButil.cxx:1855
 AliTPCcalibDButil.cxx:1856
 AliTPCcalibDButil.cxx:1857
 AliTPCcalibDButil.cxx:1858
 AliTPCcalibDButil.cxx:1859
 AliTPCcalibDButil.cxx:1860
 AliTPCcalibDButil.cxx:1861
 AliTPCcalibDButil.cxx:1862
 AliTPCcalibDButil.cxx:1863
 AliTPCcalibDButil.cxx:1864
 AliTPCcalibDButil.cxx:1865
 AliTPCcalibDButil.cxx:1866
 AliTPCcalibDButil.cxx:1867
 AliTPCcalibDButil.cxx:1868
 AliTPCcalibDButil.cxx:1869
 AliTPCcalibDButil.cxx:1870
 AliTPCcalibDButil.cxx:1871
 AliTPCcalibDButil.cxx:1872
 AliTPCcalibDButil.cxx:1873
 AliTPCcalibDButil.cxx:1874
 AliTPCcalibDButil.cxx:1875
 AliTPCcalibDButil.cxx:1876
 AliTPCcalibDButil.cxx:1877
 AliTPCcalibDButil.cxx:1878
 AliTPCcalibDButil.cxx:1879
 AliTPCcalibDButil.cxx:1880
 AliTPCcalibDButil.cxx:1881
 AliTPCcalibDButil.cxx:1882
 AliTPCcalibDButil.cxx:1883
 AliTPCcalibDButil.cxx:1884
 AliTPCcalibDButil.cxx:1885
 AliTPCcalibDButil.cxx:1886
 AliTPCcalibDButil.cxx:1887
 AliTPCcalibDButil.cxx:1888
 AliTPCcalibDButil.cxx:1889
 AliTPCcalibDButil.cxx:1890
 AliTPCcalibDButil.cxx:1891
 AliTPCcalibDButil.cxx:1892
 AliTPCcalibDButil.cxx:1893
 AliTPCcalibDButil.cxx:1894
 AliTPCcalibDButil.cxx:1895
 AliTPCcalibDButil.cxx:1896
 AliTPCcalibDButil.cxx:1897
 AliTPCcalibDButil.cxx:1898
 AliTPCcalibDButil.cxx:1899
 AliTPCcalibDButil.cxx:1900
 AliTPCcalibDButil.cxx:1901
 AliTPCcalibDButil.cxx:1902
 AliTPCcalibDButil.cxx:1903
 AliTPCcalibDButil.cxx:1904
 AliTPCcalibDButil.cxx:1905
 AliTPCcalibDButil.cxx:1906
 AliTPCcalibDButil.cxx:1907
 AliTPCcalibDButil.cxx:1908
 AliTPCcalibDButil.cxx:1909
 AliTPCcalibDButil.cxx:1910
 AliTPCcalibDButil.cxx:1911
 AliTPCcalibDButil.cxx:1912
 AliTPCcalibDButil.cxx:1913
 AliTPCcalibDButil.cxx:1914
 AliTPCcalibDButil.cxx:1915
 AliTPCcalibDButil.cxx:1916
 AliTPCcalibDButil.cxx:1917
 AliTPCcalibDButil.cxx:1918
 AliTPCcalibDButil.cxx:1919
 AliTPCcalibDButil.cxx:1920
 AliTPCcalibDButil.cxx:1921
 AliTPCcalibDButil.cxx:1922
 AliTPCcalibDButil.cxx:1923
 AliTPCcalibDButil.cxx:1924
 AliTPCcalibDButil.cxx:1925
 AliTPCcalibDButil.cxx:1926
 AliTPCcalibDButil.cxx:1927
 AliTPCcalibDButil.cxx:1928
 AliTPCcalibDButil.cxx:1929
 AliTPCcalibDButil.cxx:1930
 AliTPCcalibDButil.cxx:1931
 AliTPCcalibDButil.cxx:1932
 AliTPCcalibDButil.cxx:1933
 AliTPCcalibDButil.cxx:1934
 AliTPCcalibDButil.cxx:1935
 AliTPCcalibDButil.cxx:1936
 AliTPCcalibDButil.cxx:1937
 AliTPCcalibDButil.cxx:1938
 AliTPCcalibDButil.cxx:1939
 AliTPCcalibDButil.cxx:1940
 AliTPCcalibDButil.cxx:1941
 AliTPCcalibDButil.cxx:1942
 AliTPCcalibDButil.cxx:1943
 AliTPCcalibDButil.cxx:1944
 AliTPCcalibDButil.cxx:1945
 AliTPCcalibDButil.cxx:1946
 AliTPCcalibDButil.cxx:1947
 AliTPCcalibDButil.cxx:1948
 AliTPCcalibDButil.cxx:1949
 AliTPCcalibDButil.cxx:1950
 AliTPCcalibDButil.cxx:1951
 AliTPCcalibDButil.cxx:1952
 AliTPCcalibDButil.cxx:1953
 AliTPCcalibDButil.cxx:1954
 AliTPCcalibDButil.cxx:1955
 AliTPCcalibDButil.cxx:1956
 AliTPCcalibDButil.cxx:1957
 AliTPCcalibDButil.cxx:1958
 AliTPCcalibDButil.cxx:1959
 AliTPCcalibDButil.cxx:1960
 AliTPCcalibDButil.cxx:1961
 AliTPCcalibDButil.cxx:1962
 AliTPCcalibDButil.cxx:1963
 AliTPCcalibDButil.cxx:1964
 AliTPCcalibDButil.cxx:1965
 AliTPCcalibDButil.cxx:1966
 AliTPCcalibDButil.cxx:1967
 AliTPCcalibDButil.cxx:1968
 AliTPCcalibDButil.cxx:1969
 AliTPCcalibDButil.cxx:1970
 AliTPCcalibDButil.cxx:1971
 AliTPCcalibDButil.cxx:1972
 AliTPCcalibDButil.cxx:1973
 AliTPCcalibDButil.cxx:1974
 AliTPCcalibDButil.cxx:1975
 AliTPCcalibDButil.cxx:1976
 AliTPCcalibDButil.cxx:1977
 AliTPCcalibDButil.cxx:1978
 AliTPCcalibDButil.cxx:1979
 AliTPCcalibDButil.cxx:1980
 AliTPCcalibDButil.cxx:1981
 AliTPCcalibDButil.cxx:1982
 AliTPCcalibDButil.cxx:1983
 AliTPCcalibDButil.cxx:1984
 AliTPCcalibDButil.cxx:1985
 AliTPCcalibDButil.cxx:1986
 AliTPCcalibDButil.cxx:1987
 AliTPCcalibDButil.cxx:1988
 AliTPCcalibDButil.cxx:1989
 AliTPCcalibDButil.cxx:1990
 AliTPCcalibDButil.cxx:1991
 AliTPCcalibDButil.cxx:1992
 AliTPCcalibDButil.cxx:1993
 AliTPCcalibDButil.cxx:1994
 AliTPCcalibDButil.cxx:1995
 AliTPCcalibDButil.cxx:1996
 AliTPCcalibDButil.cxx:1997
 AliTPCcalibDButil.cxx:1998
 AliTPCcalibDButil.cxx:1999
 AliTPCcalibDButil.cxx:2000
 AliTPCcalibDButil.cxx:2001
 AliTPCcalibDButil.cxx:2002
 AliTPCcalibDButil.cxx:2003
 AliTPCcalibDButil.cxx:2004
 AliTPCcalibDButil.cxx:2005
 AliTPCcalibDButil.cxx:2006
 AliTPCcalibDButil.cxx:2007
 AliTPCcalibDButil.cxx:2008
 AliTPCcalibDButil.cxx:2009
 AliTPCcalibDButil.cxx:2010
 AliTPCcalibDButil.cxx:2011
 AliTPCcalibDButil.cxx:2012
 AliTPCcalibDButil.cxx:2013
 AliTPCcalibDButil.cxx:2014
 AliTPCcalibDButil.cxx:2015
 AliTPCcalibDButil.cxx:2016
 AliTPCcalibDButil.cxx:2017
 AliTPCcalibDButil.cxx:2018
 AliTPCcalibDButil.cxx:2019
 AliTPCcalibDButil.cxx:2020
 AliTPCcalibDButil.cxx:2021
 AliTPCcalibDButil.cxx:2022
 AliTPCcalibDButil.cxx:2023
 AliTPCcalibDButil.cxx:2024
 AliTPCcalibDButil.cxx:2025
 AliTPCcalibDButil.cxx:2026
 AliTPCcalibDButil.cxx:2027
 AliTPCcalibDButil.cxx:2028
 AliTPCcalibDButil.cxx:2029
 AliTPCcalibDButil.cxx:2030
 AliTPCcalibDButil.cxx:2031
 AliTPCcalibDButil.cxx:2032
 AliTPCcalibDButil.cxx:2033
 AliTPCcalibDButil.cxx:2034
 AliTPCcalibDButil.cxx:2035
 AliTPCcalibDButil.cxx:2036
 AliTPCcalibDButil.cxx:2037
 AliTPCcalibDButil.cxx:2038
 AliTPCcalibDButil.cxx:2039
 AliTPCcalibDButil.cxx:2040
 AliTPCcalibDButil.cxx:2041
 AliTPCcalibDButil.cxx:2042
 AliTPCcalibDButil.cxx:2043
 AliTPCcalibDButil.cxx:2044
 AliTPCcalibDButil.cxx:2045
 AliTPCcalibDButil.cxx:2046
 AliTPCcalibDButil.cxx:2047
 AliTPCcalibDButil.cxx:2048
 AliTPCcalibDButil.cxx:2049
 AliTPCcalibDButil.cxx:2050
 AliTPCcalibDButil.cxx:2051
 AliTPCcalibDButil.cxx:2052
 AliTPCcalibDButil.cxx:2053
 AliTPCcalibDButil.cxx:2054
 AliTPCcalibDButil.cxx:2055
 AliTPCcalibDButil.cxx:2056
 AliTPCcalibDButil.cxx:2057
 AliTPCcalibDButil.cxx:2058
 AliTPCcalibDButil.cxx:2059
 AliTPCcalibDButil.cxx:2060
 AliTPCcalibDButil.cxx:2061
 AliTPCcalibDButil.cxx:2062
 AliTPCcalibDButil.cxx:2063
 AliTPCcalibDButil.cxx:2064
 AliTPCcalibDButil.cxx:2065
 AliTPCcalibDButil.cxx:2066
 AliTPCcalibDButil.cxx:2067
 AliTPCcalibDButil.cxx:2068
 AliTPCcalibDButil.cxx:2069
 AliTPCcalibDButil.cxx:2070
 AliTPCcalibDButil.cxx:2071
 AliTPCcalibDButil.cxx:2072
 AliTPCcalibDButil.cxx:2073
 AliTPCcalibDButil.cxx:2074
 AliTPCcalibDButil.cxx:2075
 AliTPCcalibDButil.cxx:2076
 AliTPCcalibDButil.cxx:2077
 AliTPCcalibDButil.cxx:2078
 AliTPCcalibDButil.cxx:2079
 AliTPCcalibDButil.cxx:2080
 AliTPCcalibDButil.cxx:2081
 AliTPCcalibDButil.cxx:2082
 AliTPCcalibDButil.cxx:2083
 AliTPCcalibDButil.cxx:2084
 AliTPCcalibDButil.cxx:2085
 AliTPCcalibDButil.cxx:2086
 AliTPCcalibDButil.cxx:2087
 AliTPCcalibDButil.cxx:2088
 AliTPCcalibDButil.cxx:2089
 AliTPCcalibDButil.cxx:2090
 AliTPCcalibDButil.cxx:2091
 AliTPCcalibDButil.cxx:2092
 AliTPCcalibDButil.cxx:2093
 AliTPCcalibDButil.cxx:2094
 AliTPCcalibDButil.cxx:2095
 AliTPCcalibDButil.cxx:2096
 AliTPCcalibDButil.cxx:2097
 AliTPCcalibDButil.cxx:2098
 AliTPCcalibDButil.cxx:2099
 AliTPCcalibDButil.cxx:2100
 AliTPCcalibDButil.cxx:2101
 AliTPCcalibDButil.cxx:2102
 AliTPCcalibDButil.cxx:2103
 AliTPCcalibDButil.cxx:2104
 AliTPCcalibDButil.cxx:2105
 AliTPCcalibDButil.cxx:2106
 AliTPCcalibDButil.cxx:2107
 AliTPCcalibDButil.cxx:2108
 AliTPCcalibDButil.cxx:2109
 AliTPCcalibDButil.cxx:2110
 AliTPCcalibDButil.cxx:2111
 AliTPCcalibDButil.cxx:2112
 AliTPCcalibDButil.cxx:2113
 AliTPCcalibDButil.cxx:2114
 AliTPCcalibDButil.cxx:2115
 AliTPCcalibDButil.cxx:2116
 AliTPCcalibDButil.cxx:2117
 AliTPCcalibDButil.cxx:2118
 AliTPCcalibDButil.cxx:2119
 AliTPCcalibDButil.cxx:2120
 AliTPCcalibDButil.cxx:2121
 AliTPCcalibDButil.cxx:2122
 AliTPCcalibDButil.cxx:2123
 AliTPCcalibDButil.cxx:2124
 AliTPCcalibDButil.cxx:2125
 AliTPCcalibDButil.cxx:2126
 AliTPCcalibDButil.cxx:2127
 AliTPCcalibDButil.cxx:2128
 AliTPCcalibDButil.cxx:2129
 AliTPCcalibDButil.cxx:2130
 AliTPCcalibDButil.cxx:2131
 AliTPCcalibDButil.cxx:2132
 AliTPCcalibDButil.cxx:2133
 AliTPCcalibDButil.cxx:2134
 AliTPCcalibDButil.cxx:2135
 AliTPCcalibDButil.cxx:2136
 AliTPCcalibDButil.cxx:2137
 AliTPCcalibDButil.cxx:2138
 AliTPCcalibDButil.cxx:2139
 AliTPCcalibDButil.cxx:2140
 AliTPCcalibDButil.cxx:2141
 AliTPCcalibDButil.cxx:2142
 AliTPCcalibDButil.cxx:2143
 AliTPCcalibDButil.cxx:2144
 AliTPCcalibDButil.cxx:2145
 AliTPCcalibDButil.cxx:2146
 AliTPCcalibDButil.cxx:2147
 AliTPCcalibDButil.cxx:2148
 AliTPCcalibDButil.cxx:2149
 AliTPCcalibDButil.cxx:2150
 AliTPCcalibDButil.cxx:2151
 AliTPCcalibDButil.cxx:2152
 AliTPCcalibDButil.cxx:2153
 AliTPCcalibDButil.cxx:2154
 AliTPCcalibDButil.cxx:2155
 AliTPCcalibDButil.cxx:2156
 AliTPCcalibDButil.cxx:2157
 AliTPCcalibDButil.cxx:2158
 AliTPCcalibDButil.cxx:2159
 AliTPCcalibDButil.cxx:2160
 AliTPCcalibDButil.cxx:2161
 AliTPCcalibDButil.cxx:2162
 AliTPCcalibDButil.cxx:2163
 AliTPCcalibDButil.cxx:2164
 AliTPCcalibDButil.cxx:2165
 AliTPCcalibDButil.cxx:2166
 AliTPCcalibDButil.cxx:2167
 AliTPCcalibDButil.cxx:2168
 AliTPCcalibDButil.cxx:2169
 AliTPCcalibDButil.cxx:2170
 AliTPCcalibDButil.cxx:2171
 AliTPCcalibDButil.cxx:2172
 AliTPCcalibDButil.cxx:2173
 AliTPCcalibDButil.cxx:2174
 AliTPCcalibDButil.cxx:2175
 AliTPCcalibDButil.cxx:2176
 AliTPCcalibDButil.cxx:2177
 AliTPCcalibDButil.cxx:2178
 AliTPCcalibDButil.cxx:2179
 AliTPCcalibDButil.cxx:2180
 AliTPCcalibDButil.cxx:2181
 AliTPCcalibDButil.cxx:2182
 AliTPCcalibDButil.cxx:2183
 AliTPCcalibDButil.cxx:2184
 AliTPCcalibDButil.cxx:2185
 AliTPCcalibDButil.cxx:2186
 AliTPCcalibDButil.cxx:2187
 AliTPCcalibDButil.cxx:2188
 AliTPCcalibDButil.cxx:2189
 AliTPCcalibDButil.cxx:2190
 AliTPCcalibDButil.cxx:2191
 AliTPCcalibDButil.cxx:2192
 AliTPCcalibDButil.cxx:2193
 AliTPCcalibDButil.cxx:2194
 AliTPCcalibDButil.cxx:2195
 AliTPCcalibDButil.cxx:2196
 AliTPCcalibDButil.cxx:2197
 AliTPCcalibDButil.cxx:2198
 AliTPCcalibDButil.cxx:2199
 AliTPCcalibDButil.cxx:2200
 AliTPCcalibDButil.cxx:2201
 AliTPCcalibDButil.cxx:2202
 AliTPCcalibDButil.cxx:2203
 AliTPCcalibDButil.cxx:2204
 AliTPCcalibDButil.cxx:2205
 AliTPCcalibDButil.cxx:2206
 AliTPCcalibDButil.cxx:2207
 AliTPCcalibDButil.cxx:2208
 AliTPCcalibDButil.cxx:2209
 AliTPCcalibDButil.cxx:2210
 AliTPCcalibDButil.cxx:2211
 AliTPCcalibDButil.cxx:2212
 AliTPCcalibDButil.cxx:2213
 AliTPCcalibDButil.cxx:2214
 AliTPCcalibDButil.cxx:2215
 AliTPCcalibDButil.cxx:2216
 AliTPCcalibDButil.cxx:2217
 AliTPCcalibDButil.cxx:2218
 AliTPCcalibDButil.cxx:2219
 AliTPCcalibDButil.cxx:2220
 AliTPCcalibDButil.cxx:2221
 AliTPCcalibDButil.cxx:2222
 AliTPCcalibDButil.cxx:2223
 AliTPCcalibDButil.cxx:2224
 AliTPCcalibDButil.cxx:2225
 AliTPCcalibDButil.cxx:2226
 AliTPCcalibDButil.cxx:2227
 AliTPCcalibDButil.cxx:2228
 AliTPCcalibDButil.cxx:2229
 AliTPCcalibDButil.cxx:2230
 AliTPCcalibDButil.cxx:2231
 AliTPCcalibDButil.cxx:2232
 AliTPCcalibDButil.cxx:2233
 AliTPCcalibDButil.cxx:2234
 AliTPCcalibDButil.cxx:2235
 AliTPCcalibDButil.cxx:2236
 AliTPCcalibDButil.cxx:2237
 AliTPCcalibDButil.cxx:2238
 AliTPCcalibDButil.cxx:2239
 AliTPCcalibDButil.cxx:2240
 AliTPCcalibDButil.cxx:2241
 AliTPCcalibDButil.cxx:2242
 AliTPCcalibDButil.cxx:2243
 AliTPCcalibDButil.cxx:2244
 AliTPCcalibDButil.cxx:2245
 AliTPCcalibDButil.cxx:2246
 AliTPCcalibDButil.cxx:2247
 AliTPCcalibDButil.cxx:2248
 AliTPCcalibDButil.cxx:2249
 AliTPCcalibDButil.cxx:2250
 AliTPCcalibDButil.cxx:2251
 AliTPCcalibDButil.cxx:2252
 AliTPCcalibDButil.cxx:2253
 AliTPCcalibDButil.cxx:2254
 AliTPCcalibDButil.cxx:2255
 AliTPCcalibDButil.cxx:2256
 AliTPCcalibDButil.cxx:2257
 AliTPCcalibDButil.cxx:2258
 AliTPCcalibDButil.cxx:2259
 AliTPCcalibDButil.cxx:2260
 AliTPCcalibDButil.cxx:2261
 AliTPCcalibDButil.cxx:2262
 AliTPCcalibDButil.cxx:2263
 AliTPCcalibDButil.cxx:2264
 AliTPCcalibDButil.cxx:2265
 AliTPCcalibDButil.cxx:2266
 AliTPCcalibDButil.cxx:2267
 AliTPCcalibDButil.cxx:2268
 AliTPCcalibDButil.cxx:2269
 AliTPCcalibDButil.cxx:2270
 AliTPCcalibDButil.cxx:2271
 AliTPCcalibDButil.cxx:2272
 AliTPCcalibDButil.cxx:2273
 AliTPCcalibDButil.cxx:2274
 AliTPCcalibDButil.cxx:2275
 AliTPCcalibDButil.cxx:2276
 AliTPCcalibDButil.cxx:2277
 AliTPCcalibDButil.cxx:2278
 AliTPCcalibDButil.cxx:2279
 AliTPCcalibDButil.cxx:2280
 AliTPCcalibDButil.cxx:2281
 AliTPCcalibDButil.cxx:2282
 AliTPCcalibDButil.cxx:2283
 AliTPCcalibDButil.cxx:2284
 AliTPCcalibDButil.cxx:2285
 AliTPCcalibDButil.cxx:2286
 AliTPCcalibDButil.cxx:2287
 AliTPCcalibDButil.cxx:2288
 AliTPCcalibDButil.cxx:2289
 AliTPCcalibDButil.cxx:2290
 AliTPCcalibDButil.cxx:2291
 AliTPCcalibDButil.cxx:2292
 AliTPCcalibDButil.cxx:2293
 AliTPCcalibDButil.cxx:2294
 AliTPCcalibDButil.cxx:2295
 AliTPCcalibDButil.cxx:2296
 AliTPCcalibDButil.cxx:2297
 AliTPCcalibDButil.cxx:2298
 AliTPCcalibDButil.cxx:2299
 AliTPCcalibDButil.cxx:2300
 AliTPCcalibDButil.cxx:2301
 AliTPCcalibDButil.cxx:2302
 AliTPCcalibDButil.cxx:2303
 AliTPCcalibDButil.cxx:2304
 AliTPCcalibDButil.cxx:2305
 AliTPCcalibDButil.cxx:2306
 AliTPCcalibDButil.cxx:2307
 AliTPCcalibDButil.cxx:2308
 AliTPCcalibDButil.cxx:2309
 AliTPCcalibDButil.cxx:2310
 AliTPCcalibDButil.cxx:2311
 AliTPCcalibDButil.cxx:2312
 AliTPCcalibDButil.cxx:2313
 AliTPCcalibDButil.cxx:2314
 AliTPCcalibDButil.cxx:2315
 AliTPCcalibDButil.cxx:2316
 AliTPCcalibDButil.cxx:2317
 AliTPCcalibDButil.cxx:2318
 AliTPCcalibDButil.cxx:2319
 AliTPCcalibDButil.cxx:2320
 AliTPCcalibDButil.cxx:2321
 AliTPCcalibDButil.cxx:2322
 AliTPCcalibDButil.cxx:2323
 AliTPCcalibDButil.cxx:2324
 AliTPCcalibDButil.cxx:2325
 AliTPCcalibDButil.cxx:2326
 AliTPCcalibDButil.cxx:2327
 AliTPCcalibDButil.cxx:2328
 AliTPCcalibDButil.cxx:2329
 AliTPCcalibDButil.cxx:2330
 AliTPCcalibDButil.cxx:2331
 AliTPCcalibDButil.cxx:2332
 AliTPCcalibDButil.cxx:2333
 AliTPCcalibDButil.cxx:2334
 AliTPCcalibDButil.cxx:2335
 AliTPCcalibDButil.cxx:2336
 AliTPCcalibDButil.cxx:2337
 AliTPCcalibDButil.cxx:2338
 AliTPCcalibDButil.cxx:2339
 AliTPCcalibDButil.cxx:2340
 AliTPCcalibDButil.cxx:2341
 AliTPCcalibDButil.cxx:2342
 AliTPCcalibDButil.cxx:2343
 AliTPCcalibDButil.cxx:2344
 AliTPCcalibDButil.cxx:2345
 AliTPCcalibDButil.cxx:2346
 AliTPCcalibDButil.cxx:2347
 AliTPCcalibDButil.cxx:2348
 AliTPCcalibDButil.cxx:2349
 AliTPCcalibDButil.cxx:2350
 AliTPCcalibDButil.cxx:2351
 AliTPCcalibDButil.cxx:2352
 AliTPCcalibDButil.cxx:2353
 AliTPCcalibDButil.cxx:2354
 AliTPCcalibDButil.cxx:2355
 AliTPCcalibDButil.cxx:2356
 AliTPCcalibDButil.cxx:2357
 AliTPCcalibDButil.cxx:2358
 AliTPCcalibDButil.cxx:2359
 AliTPCcalibDButil.cxx:2360
 AliTPCcalibDButil.cxx:2361
 AliTPCcalibDButil.cxx:2362
 AliTPCcalibDButil.cxx:2363
 AliTPCcalibDButil.cxx:2364
 AliTPCcalibDButil.cxx:2365
 AliTPCcalibDButil.cxx:2366
 AliTPCcalibDButil.cxx:2367
 AliTPCcalibDButil.cxx:2368
 AliTPCcalibDButil.cxx:2369
 AliTPCcalibDButil.cxx:2370
 AliTPCcalibDButil.cxx:2371
 AliTPCcalibDButil.cxx:2372
 AliTPCcalibDButil.cxx:2373
 AliTPCcalibDButil.cxx:2374
 AliTPCcalibDButil.cxx:2375
 AliTPCcalibDButil.cxx:2376
 AliTPCcalibDButil.cxx:2377
 AliTPCcalibDButil.cxx:2378
 AliTPCcalibDButil.cxx:2379
 AliTPCcalibDButil.cxx:2380
 AliTPCcalibDButil.cxx:2381
 AliTPCcalibDButil.cxx:2382
 AliTPCcalibDButil.cxx:2383
 AliTPCcalibDButil.cxx:2384
 AliTPCcalibDButil.cxx:2385
 AliTPCcalibDButil.cxx:2386
 AliTPCcalibDButil.cxx:2387
 AliTPCcalibDButil.cxx:2388
 AliTPCcalibDButil.cxx:2389
 AliTPCcalibDButil.cxx:2390
 AliTPCcalibDButil.cxx:2391
 AliTPCcalibDButil.cxx:2392
 AliTPCcalibDButil.cxx:2393
 AliTPCcalibDButil.cxx:2394
 AliTPCcalibDButil.cxx:2395
 AliTPCcalibDButil.cxx:2396
 AliTPCcalibDButil.cxx:2397
 AliTPCcalibDButil.cxx:2398
 AliTPCcalibDButil.cxx:2399
 AliTPCcalibDButil.cxx:2400
 AliTPCcalibDButil.cxx:2401
 AliTPCcalibDButil.cxx:2402
 AliTPCcalibDButil.cxx:2403
 AliTPCcalibDButil.cxx:2404
 AliTPCcalibDButil.cxx:2405
 AliTPCcalibDButil.cxx:2406
 AliTPCcalibDButil.cxx:2407
 AliTPCcalibDButil.cxx:2408
 AliTPCcalibDButil.cxx:2409
 AliTPCcalibDButil.cxx:2410
 AliTPCcalibDButil.cxx:2411
 AliTPCcalibDButil.cxx:2412
 AliTPCcalibDButil.cxx:2413
 AliTPCcalibDButil.cxx:2414
 AliTPCcalibDButil.cxx:2415
 AliTPCcalibDButil.cxx:2416
 AliTPCcalibDButil.cxx:2417
 AliTPCcalibDButil.cxx:2418
 AliTPCcalibDButil.cxx:2419
 AliTPCcalibDButil.cxx:2420
 AliTPCcalibDButil.cxx:2421
 AliTPCcalibDButil.cxx:2422
 AliTPCcalibDButil.cxx:2423
 AliTPCcalibDButil.cxx:2424
 AliTPCcalibDButil.cxx:2425
 AliTPCcalibDButil.cxx:2426
 AliTPCcalibDButil.cxx:2427
 AliTPCcalibDButil.cxx:2428
 AliTPCcalibDButil.cxx:2429
 AliTPCcalibDButil.cxx:2430
 AliTPCcalibDButil.cxx:2431
 AliTPCcalibDButil.cxx:2432
 AliTPCcalibDButil.cxx:2433
 AliTPCcalibDButil.cxx:2434
 AliTPCcalibDButil.cxx:2435
 AliTPCcalibDButil.cxx:2436
 AliTPCcalibDButil.cxx:2437
 AliTPCcalibDButil.cxx:2438
 AliTPCcalibDButil.cxx:2439
 AliTPCcalibDButil.cxx:2440
 AliTPCcalibDButil.cxx:2441
 AliTPCcalibDButil.cxx:2442
 AliTPCcalibDButil.cxx:2443
 AliTPCcalibDButil.cxx:2444
 AliTPCcalibDButil.cxx:2445
 AliTPCcalibDButil.cxx:2446
 AliTPCcalibDButil.cxx:2447
 AliTPCcalibDButil.cxx:2448
 AliTPCcalibDButil.cxx:2449
 AliTPCcalibDButil.cxx:2450
 AliTPCcalibDButil.cxx:2451
 AliTPCcalibDButil.cxx:2452
 AliTPCcalibDButil.cxx:2453
 AliTPCcalibDButil.cxx:2454
 AliTPCcalibDButil.cxx:2455
 AliTPCcalibDButil.cxx:2456
 AliTPCcalibDButil.cxx:2457
 AliTPCcalibDButil.cxx:2458
 AliTPCcalibDButil.cxx:2459
 AliTPCcalibDButil.cxx:2460
 AliTPCcalibDButil.cxx:2461
 AliTPCcalibDButil.cxx:2462
 AliTPCcalibDButil.cxx:2463
 AliTPCcalibDButil.cxx:2464
 AliTPCcalibDButil.cxx:2465
 AliTPCcalibDButil.cxx:2466
 AliTPCcalibDButil.cxx:2467
 AliTPCcalibDButil.cxx:2468
 AliTPCcalibDButil.cxx:2469
 AliTPCcalibDButil.cxx:2470
 AliTPCcalibDButil.cxx:2471
 AliTPCcalibDButil.cxx:2472
 AliTPCcalibDButil.cxx:2473
 AliTPCcalibDButil.cxx:2474
 AliTPCcalibDButil.cxx:2475
 AliTPCcalibDButil.cxx:2476
 AliTPCcalibDButil.cxx:2477
 AliTPCcalibDButil.cxx:2478
 AliTPCcalibDButil.cxx:2479
 AliTPCcalibDButil.cxx:2480
 AliTPCcalibDButil.cxx:2481
 AliTPCcalibDButil.cxx:2482
 AliTPCcalibDButil.cxx:2483
 AliTPCcalibDButil.cxx:2484
 AliTPCcalibDButil.cxx:2485
 AliTPCcalibDButil.cxx:2486
 AliTPCcalibDButil.cxx:2487
 AliTPCcalibDButil.cxx:2488
 AliTPCcalibDButil.cxx:2489
 AliTPCcalibDButil.cxx:2490
 AliTPCcalibDButil.cxx:2491
 AliTPCcalibDButil.cxx:2492
 AliTPCcalibDButil.cxx:2493
 AliTPCcalibDButil.cxx:2494
 AliTPCcalibDButil.cxx:2495
 AliTPCcalibDButil.cxx:2496
 AliTPCcalibDButil.cxx:2497
 AliTPCcalibDButil.cxx:2498
 AliTPCcalibDButil.cxx:2499
 AliTPCcalibDButil.cxx:2500
 AliTPCcalibDButil.cxx:2501
 AliTPCcalibDButil.cxx:2502
 AliTPCcalibDButil.cxx:2503
 AliTPCcalibDButil.cxx:2504
 AliTPCcalibDButil.cxx:2505
 AliTPCcalibDButil.cxx:2506
 AliTPCcalibDButil.cxx:2507
 AliTPCcalibDButil.cxx:2508
 AliTPCcalibDButil.cxx:2509
 AliTPCcalibDButil.cxx:2510
 AliTPCcalibDButil.cxx:2511
 AliTPCcalibDButil.cxx:2512
 AliTPCcalibDButil.cxx:2513
 AliTPCcalibDButil.cxx:2514
 AliTPCcalibDButil.cxx:2515
 AliTPCcalibDButil.cxx:2516
 AliTPCcalibDButil.cxx:2517
 AliTPCcalibDButil.cxx:2518
 AliTPCcalibDButil.cxx:2519
 AliTPCcalibDButil.cxx:2520
 AliTPCcalibDButil.cxx:2521
 AliTPCcalibDButil.cxx:2522
 AliTPCcalibDButil.cxx:2523
 AliTPCcalibDButil.cxx:2524
 AliTPCcalibDButil.cxx:2525
 AliTPCcalibDButil.cxx:2526
 AliTPCcalibDButil.cxx:2527
 AliTPCcalibDButil.cxx:2528
 AliTPCcalibDButil.cxx:2529
 AliTPCcalibDButil.cxx:2530
 AliTPCcalibDButil.cxx:2531
 AliTPCcalibDButil.cxx:2532
 AliTPCcalibDButil.cxx:2533
 AliTPCcalibDButil.cxx:2534
 AliTPCcalibDButil.cxx:2535
 AliTPCcalibDButil.cxx:2536
 AliTPCcalibDButil.cxx:2537
 AliTPCcalibDButil.cxx:2538
 AliTPCcalibDButil.cxx:2539
 AliTPCcalibDButil.cxx:2540
 AliTPCcalibDButil.cxx:2541
 AliTPCcalibDButil.cxx:2542
 AliTPCcalibDButil.cxx:2543
 AliTPCcalibDButil.cxx:2544
 AliTPCcalibDButil.cxx:2545
 AliTPCcalibDButil.cxx:2546
 AliTPCcalibDButil.cxx:2547
 AliTPCcalibDButil.cxx:2548
 AliTPCcalibDButil.cxx:2549
 AliTPCcalibDButil.cxx:2550
 AliTPCcalibDButil.cxx:2551
 AliTPCcalibDButil.cxx:2552
 AliTPCcalibDButil.cxx:2553
 AliTPCcalibDButil.cxx:2554
 AliTPCcalibDButil.cxx:2555
 AliTPCcalibDButil.cxx:2556
 AliTPCcalibDButil.cxx:2557
 AliTPCcalibDButil.cxx:2558
 AliTPCcalibDButil.cxx:2559
 AliTPCcalibDButil.cxx:2560
 AliTPCcalibDButil.cxx:2561
 AliTPCcalibDButil.cxx:2562
 AliTPCcalibDButil.cxx:2563
 AliTPCcalibDButil.cxx:2564
 AliTPCcalibDButil.cxx:2565
 AliTPCcalibDButil.cxx:2566
 AliTPCcalibDButil.cxx:2567
 AliTPCcalibDButil.cxx:2568
 AliTPCcalibDButil.cxx:2569
 AliTPCcalibDButil.cxx:2570
 AliTPCcalibDButil.cxx:2571
 AliTPCcalibDButil.cxx:2572
 AliTPCcalibDButil.cxx:2573
 AliTPCcalibDButil.cxx:2574
 AliTPCcalibDButil.cxx:2575
 AliTPCcalibDButil.cxx:2576
 AliTPCcalibDButil.cxx:2577
 AliTPCcalibDButil.cxx:2578
 AliTPCcalibDButil.cxx:2579
 AliTPCcalibDButil.cxx:2580
 AliTPCcalibDButil.cxx:2581
 AliTPCcalibDButil.cxx:2582
 AliTPCcalibDButil.cxx:2583
 AliTPCcalibDButil.cxx:2584
 AliTPCcalibDButil.cxx:2585
 AliTPCcalibDButil.cxx:2586
 AliTPCcalibDButil.cxx:2587
 AliTPCcalibDButil.cxx:2588
 AliTPCcalibDButil.cxx:2589
 AliTPCcalibDButil.cxx:2590
 AliTPCcalibDButil.cxx:2591
 AliTPCcalibDButil.cxx:2592
 AliTPCcalibDButil.cxx:2593
 AliTPCcalibDButil.cxx:2594
 AliTPCcalibDButil.cxx:2595
 AliTPCcalibDButil.cxx:2596
 AliTPCcalibDButil.cxx:2597
 AliTPCcalibDButil.cxx:2598
 AliTPCcalibDButil.cxx:2599
 AliTPCcalibDButil.cxx:2600
 AliTPCcalibDButil.cxx:2601
 AliTPCcalibDButil.cxx:2602
 AliTPCcalibDButil.cxx:2603
 AliTPCcalibDButil.cxx:2604
 AliTPCcalibDButil.cxx:2605
 AliTPCcalibDButil.cxx:2606
 AliTPCcalibDButil.cxx:2607
 AliTPCcalibDButil.cxx:2608
 AliTPCcalibDButil.cxx:2609
 AliTPCcalibDButil.cxx:2610
 AliTPCcalibDButil.cxx:2611
 AliTPCcalibDButil.cxx:2612
 AliTPCcalibDButil.cxx:2613
 AliTPCcalibDButil.cxx:2614
 AliTPCcalibDButil.cxx:2615
 AliTPCcalibDButil.cxx:2616
 AliTPCcalibDButil.cxx:2617
 AliTPCcalibDButil.cxx:2618
 AliTPCcalibDButil.cxx:2619
 AliTPCcalibDButil.cxx:2620
 AliTPCcalibDButil.cxx:2621
 AliTPCcalibDButil.cxx:2622
 AliTPCcalibDButil.cxx:2623
 AliTPCcalibDButil.cxx:2624
 AliTPCcalibDButil.cxx:2625
 AliTPCcalibDButil.cxx:2626
 AliTPCcalibDButil.cxx:2627
 AliTPCcalibDButil.cxx:2628
 AliTPCcalibDButil.cxx:2629
 AliTPCcalibDButil.cxx:2630
 AliTPCcalibDButil.cxx:2631
 AliTPCcalibDButil.cxx:2632
 AliTPCcalibDButil.cxx:2633
 AliTPCcalibDButil.cxx:2634
 AliTPCcalibDButil.cxx:2635
 AliTPCcalibDButil.cxx:2636
 AliTPCcalibDButil.cxx:2637
 AliTPCcalibDButil.cxx:2638
 AliTPCcalibDButil.cxx:2639
 AliTPCcalibDButil.cxx:2640
 AliTPCcalibDButil.cxx:2641
 AliTPCcalibDButil.cxx:2642
 AliTPCcalibDButil.cxx:2643
 AliTPCcalibDButil.cxx:2644
 AliTPCcalibDButil.cxx:2645
 AliTPCcalibDButil.cxx:2646
 AliTPCcalibDButil.cxx:2647
 AliTPCcalibDButil.cxx:2648
 AliTPCcalibDButil.cxx:2649
 AliTPCcalibDButil.cxx:2650
 AliTPCcalibDButil.cxx:2651
 AliTPCcalibDButil.cxx:2652
 AliTPCcalibDButil.cxx:2653
 AliTPCcalibDButil.cxx:2654
 AliTPCcalibDButil.cxx:2655
 AliTPCcalibDButil.cxx:2656
 AliTPCcalibDButil.cxx:2657
 AliTPCcalibDButil.cxx:2658
 AliTPCcalibDButil.cxx:2659
 AliTPCcalibDButil.cxx:2660
 AliTPCcalibDButil.cxx:2661
 AliTPCcalibDButil.cxx:2662
 AliTPCcalibDButil.cxx:2663
 AliTPCcalibDButil.cxx:2664
 AliTPCcalibDButil.cxx:2665
 AliTPCcalibDButil.cxx:2666
 AliTPCcalibDButil.cxx:2667
 AliTPCcalibDButil.cxx:2668
 AliTPCcalibDButil.cxx:2669
 AliTPCcalibDButil.cxx:2670
 AliTPCcalibDButil.cxx:2671
 AliTPCcalibDButil.cxx:2672
 AliTPCcalibDButil.cxx:2673
 AliTPCcalibDButil.cxx:2674
 AliTPCcalibDButil.cxx:2675
 AliTPCcalibDButil.cxx:2676
 AliTPCcalibDButil.cxx:2677
 AliTPCcalibDButil.cxx:2678
 AliTPCcalibDButil.cxx:2679
 AliTPCcalibDButil.cxx:2680
 AliTPCcalibDButil.cxx:2681
 AliTPCcalibDButil.cxx:2682
 AliTPCcalibDButil.cxx:2683
 AliTPCcalibDButil.cxx:2684
 AliTPCcalibDButil.cxx:2685
 AliTPCcalibDButil.cxx:2686
 AliTPCcalibDButil.cxx:2687
 AliTPCcalibDButil.cxx:2688
 AliTPCcalibDButil.cxx:2689
 AliTPCcalibDButil.cxx:2690
 AliTPCcalibDButil.cxx:2691
 AliTPCcalibDButil.cxx:2692
 AliTPCcalibDButil.cxx:2693
 AliTPCcalibDButil.cxx:2694
 AliTPCcalibDButil.cxx:2695
 AliTPCcalibDButil.cxx:2696
 AliTPCcalibDButil.cxx:2697
 AliTPCcalibDButil.cxx:2698
 AliTPCcalibDButil.cxx:2699
 AliTPCcalibDButil.cxx:2700
 AliTPCcalibDButil.cxx:2701
 AliTPCcalibDButil.cxx:2702
 AliTPCcalibDButil.cxx:2703
 AliTPCcalibDButil.cxx:2704
 AliTPCcalibDButil.cxx:2705
 AliTPCcalibDButil.cxx:2706
 AliTPCcalibDButil.cxx:2707
 AliTPCcalibDButil.cxx:2708
 AliTPCcalibDButil.cxx:2709
 AliTPCcalibDButil.cxx:2710
 AliTPCcalibDButil.cxx:2711
 AliTPCcalibDButil.cxx:2712
 AliTPCcalibDButil.cxx:2713
 AliTPCcalibDButil.cxx:2714
 AliTPCcalibDButil.cxx:2715
 AliTPCcalibDButil.cxx:2716
 AliTPCcalibDButil.cxx:2717
 AliTPCcalibDButil.cxx:2718
 AliTPCcalibDButil.cxx:2719
 AliTPCcalibDButil.cxx:2720
 AliTPCcalibDButil.cxx:2721
 AliTPCcalibDButil.cxx:2722
 AliTPCcalibDButil.cxx:2723
 AliTPCcalibDButil.cxx:2724
 AliTPCcalibDButil.cxx:2725
 AliTPCcalibDButil.cxx:2726
 AliTPCcalibDButil.cxx:2727
 AliTPCcalibDButil.cxx:2728
 AliTPCcalibDButil.cxx:2729
 AliTPCcalibDButil.cxx:2730
 AliTPCcalibDButil.cxx:2731
 AliTPCcalibDButil.cxx:2732
 AliTPCcalibDButil.cxx:2733
 AliTPCcalibDButil.cxx:2734
 AliTPCcalibDButil.cxx:2735
 AliTPCcalibDButil.cxx:2736
 AliTPCcalibDButil.cxx:2737
 AliTPCcalibDButil.cxx:2738
 AliTPCcalibDButil.cxx:2739
 AliTPCcalibDButil.cxx:2740
 AliTPCcalibDButil.cxx:2741
 AliTPCcalibDButil.cxx:2742
 AliTPCcalibDButil.cxx:2743
 AliTPCcalibDButil.cxx:2744
 AliTPCcalibDButil.cxx:2745
 AliTPCcalibDButil.cxx:2746
 AliTPCcalibDButil.cxx:2747
 AliTPCcalibDButil.cxx:2748
 AliTPCcalibDButil.cxx:2749
 AliTPCcalibDButil.cxx:2750
 AliTPCcalibDButil.cxx:2751
 AliTPCcalibDButil.cxx:2752
 AliTPCcalibDButil.cxx:2753
 AliTPCcalibDButil.cxx:2754
 AliTPCcalibDButil.cxx:2755
 AliTPCcalibDButil.cxx:2756
 AliTPCcalibDButil.cxx:2757
 AliTPCcalibDButil.cxx:2758
 AliTPCcalibDButil.cxx:2759
 AliTPCcalibDButil.cxx:2760
 AliTPCcalibDButil.cxx:2761
 AliTPCcalibDButil.cxx:2762
 AliTPCcalibDButil.cxx:2763
 AliTPCcalibDButil.cxx:2764
 AliTPCcalibDButil.cxx:2765
 AliTPCcalibDButil.cxx:2766
 AliTPCcalibDButil.cxx:2767
 AliTPCcalibDButil.cxx:2768
 AliTPCcalibDButil.cxx:2769
 AliTPCcalibDButil.cxx:2770
 AliTPCcalibDButil.cxx:2771
 AliTPCcalibDButil.cxx:2772
 AliTPCcalibDButil.cxx:2773
 AliTPCcalibDButil.cxx:2774
 AliTPCcalibDButil.cxx:2775
 AliTPCcalibDButil.cxx:2776
 AliTPCcalibDButil.cxx:2777
 AliTPCcalibDButil.cxx:2778
 AliTPCcalibDButil.cxx:2779
 AliTPCcalibDButil.cxx:2780
 AliTPCcalibDButil.cxx:2781
 AliTPCcalibDButil.cxx:2782
 AliTPCcalibDButil.cxx:2783
 AliTPCcalibDButil.cxx:2784
 AliTPCcalibDButil.cxx:2785
 AliTPCcalibDButil.cxx:2786
 AliTPCcalibDButil.cxx:2787
 AliTPCcalibDButil.cxx:2788
 AliTPCcalibDButil.cxx:2789
 AliTPCcalibDButil.cxx:2790
 AliTPCcalibDButil.cxx:2791
 AliTPCcalibDButil.cxx:2792
 AliTPCcalibDButil.cxx:2793
 AliTPCcalibDButil.cxx:2794
 AliTPCcalibDButil.cxx:2795
 AliTPCcalibDButil.cxx:2796
 AliTPCcalibDButil.cxx:2797
 AliTPCcalibDButil.cxx:2798
 AliTPCcalibDButil.cxx:2799
 AliTPCcalibDButil.cxx:2800
 AliTPCcalibDButil.cxx:2801
 AliTPCcalibDButil.cxx:2802
 AliTPCcalibDButil.cxx:2803
 AliTPCcalibDButil.cxx:2804
 AliTPCcalibDButil.cxx:2805
 AliTPCcalibDButil.cxx:2806
 AliTPCcalibDButil.cxx:2807
 AliTPCcalibDButil.cxx:2808
 AliTPCcalibDButil.cxx:2809
 AliTPCcalibDButil.cxx:2810
 AliTPCcalibDButil.cxx:2811
 AliTPCcalibDButil.cxx:2812
 AliTPCcalibDButil.cxx:2813
 AliTPCcalibDButil.cxx:2814
 AliTPCcalibDButil.cxx:2815
 AliTPCcalibDButil.cxx:2816
 AliTPCcalibDButil.cxx:2817
 AliTPCcalibDButil.cxx:2818
 AliTPCcalibDButil.cxx:2819
 AliTPCcalibDButil.cxx:2820
 AliTPCcalibDButil.cxx:2821
 AliTPCcalibDButil.cxx:2822
 AliTPCcalibDButil.cxx:2823
 AliTPCcalibDButil.cxx:2824
 AliTPCcalibDButil.cxx:2825
 AliTPCcalibDButil.cxx:2826
 AliTPCcalibDButil.cxx:2827
 AliTPCcalibDButil.cxx:2828
 AliTPCcalibDButil.cxx:2829
 AliTPCcalibDButil.cxx:2830
 AliTPCcalibDButil.cxx:2831
 AliTPCcalibDButil.cxx:2832
 AliTPCcalibDButil.cxx:2833
 AliTPCcalibDButil.cxx:2834
 AliTPCcalibDButil.cxx:2835
 AliTPCcalibDButil.cxx:2836
 AliTPCcalibDButil.cxx:2837
 AliTPCcalibDButil.cxx:2838
 AliTPCcalibDButil.cxx:2839
 AliTPCcalibDButil.cxx:2840
 AliTPCcalibDButil.cxx:2841
 AliTPCcalibDButil.cxx:2842
 AliTPCcalibDButil.cxx:2843
 AliTPCcalibDButil.cxx:2844
 AliTPCcalibDButil.cxx:2845
 AliTPCcalibDButil.cxx:2846
 AliTPCcalibDButil.cxx:2847
 AliTPCcalibDButil.cxx:2848
 AliTPCcalibDButil.cxx:2849
 AliTPCcalibDButil.cxx:2850
 AliTPCcalibDButil.cxx:2851
 AliTPCcalibDButil.cxx:2852
 AliTPCcalibDButil.cxx:2853
 AliTPCcalibDButil.cxx:2854
 AliTPCcalibDButil.cxx:2855
 AliTPCcalibDButil.cxx:2856
 AliTPCcalibDButil.cxx:2857
 AliTPCcalibDButil.cxx:2858
 AliTPCcalibDButil.cxx:2859
 AliTPCcalibDButil.cxx:2860
 AliTPCcalibDButil.cxx:2861
 AliTPCcalibDButil.cxx:2862
 AliTPCcalibDButil.cxx:2863
 AliTPCcalibDButil.cxx:2864
 AliTPCcalibDButil.cxx:2865
 AliTPCcalibDButil.cxx:2866
 AliTPCcalibDButil.cxx:2867
 AliTPCcalibDButil.cxx:2868
 AliTPCcalibDButil.cxx:2869
 AliTPCcalibDButil.cxx:2870
 AliTPCcalibDButil.cxx:2871
 AliTPCcalibDButil.cxx:2872
 AliTPCcalibDButil.cxx:2873
 AliTPCcalibDButil.cxx:2874
 AliTPCcalibDButil.cxx:2875
 AliTPCcalibDButil.cxx:2876
 AliTPCcalibDButil.cxx:2877
 AliTPCcalibDButil.cxx:2878
 AliTPCcalibDButil.cxx:2879
 AliTPCcalibDButil.cxx:2880
 AliTPCcalibDButil.cxx:2881
 AliTPCcalibDButil.cxx:2882
 AliTPCcalibDButil.cxx:2883
 AliTPCcalibDButil.cxx:2884
 AliTPCcalibDButil.cxx:2885
 AliTPCcalibDButil.cxx:2886
 AliTPCcalibDButil.cxx:2887
 AliTPCcalibDButil.cxx:2888
 AliTPCcalibDButil.cxx:2889
 AliTPCcalibDButil.cxx:2890
 AliTPCcalibDButil.cxx:2891
 AliTPCcalibDButil.cxx:2892
 AliTPCcalibDButil.cxx:2893
 AliTPCcalibDButil.cxx:2894
 AliTPCcalibDButil.cxx:2895
 AliTPCcalibDButil.cxx:2896
 AliTPCcalibDButil.cxx:2897
 AliTPCcalibDButil.cxx:2898
 AliTPCcalibDButil.cxx:2899
 AliTPCcalibDButil.cxx:2900
 AliTPCcalibDButil.cxx:2901
 AliTPCcalibDButil.cxx:2902
 AliTPCcalibDButil.cxx:2903
 AliTPCcalibDButil.cxx:2904
 AliTPCcalibDButil.cxx:2905
 AliTPCcalibDButil.cxx:2906
 AliTPCcalibDButil.cxx:2907
 AliTPCcalibDButil.cxx:2908
 AliTPCcalibDButil.cxx:2909
 AliTPCcalibDButil.cxx:2910
 AliTPCcalibDButil.cxx:2911
 AliTPCcalibDButil.cxx:2912
 AliTPCcalibDButil.cxx:2913
 AliTPCcalibDButil.cxx:2914
 AliTPCcalibDButil.cxx:2915
 AliTPCcalibDButil.cxx:2916
 AliTPCcalibDButil.cxx:2917
 AliTPCcalibDButil.cxx:2918
 AliTPCcalibDButil.cxx:2919
 AliTPCcalibDButil.cxx:2920
 AliTPCcalibDButil.cxx:2921
 AliTPCcalibDButil.cxx:2922
 AliTPCcalibDButil.cxx:2923
 AliTPCcalibDButil.cxx:2924
 AliTPCcalibDButil.cxx:2925
 AliTPCcalibDButil.cxx:2926
 AliTPCcalibDButil.cxx:2927
 AliTPCcalibDButil.cxx:2928
 AliTPCcalibDButil.cxx:2929
 AliTPCcalibDButil.cxx:2930
 AliTPCcalibDButil.cxx:2931
 AliTPCcalibDButil.cxx:2932
 AliTPCcalibDButil.cxx:2933
 AliTPCcalibDButil.cxx:2934
 AliTPCcalibDButil.cxx:2935
 AliTPCcalibDButil.cxx:2936
 AliTPCcalibDButil.cxx:2937
 AliTPCcalibDButil.cxx:2938
 AliTPCcalibDButil.cxx:2939
 AliTPCcalibDButil.cxx:2940
 AliTPCcalibDButil.cxx:2941
 AliTPCcalibDButil.cxx:2942
 AliTPCcalibDButil.cxx:2943
 AliTPCcalibDButil.cxx:2944
 AliTPCcalibDButil.cxx:2945
 AliTPCcalibDButil.cxx:2946
 AliTPCcalibDButil.cxx:2947
 AliTPCcalibDButil.cxx:2948
 AliTPCcalibDButil.cxx:2949
 AliTPCcalibDButil.cxx:2950
 AliTPCcalibDButil.cxx:2951
 AliTPCcalibDButil.cxx:2952
 AliTPCcalibDButil.cxx:2953
 AliTPCcalibDButil.cxx:2954
 AliTPCcalibDButil.cxx:2955
 AliTPCcalibDButil.cxx:2956
 AliTPCcalibDButil.cxx:2957
 AliTPCcalibDButil.cxx:2958
 AliTPCcalibDButil.cxx:2959
 AliTPCcalibDButil.cxx:2960
 AliTPCcalibDButil.cxx:2961
 AliTPCcalibDButil.cxx:2962
 AliTPCcalibDButil.cxx:2963
 AliTPCcalibDButil.cxx:2964
 AliTPCcalibDButil.cxx:2965
 AliTPCcalibDButil.cxx:2966
 AliTPCcalibDButil.cxx:2967
 AliTPCcalibDButil.cxx:2968
 AliTPCcalibDButil.cxx:2969
 AliTPCcalibDButil.cxx:2970
 AliTPCcalibDButil.cxx:2971
 AliTPCcalibDButil.cxx:2972
 AliTPCcalibDButil.cxx:2973
 AliTPCcalibDButil.cxx:2974
 AliTPCcalibDButil.cxx:2975
 AliTPCcalibDButil.cxx:2976
 AliTPCcalibDButil.cxx:2977
 AliTPCcalibDButil.cxx:2978
 AliTPCcalibDButil.cxx:2979
 AliTPCcalibDButil.cxx:2980
 AliTPCcalibDButil.cxx:2981
 AliTPCcalibDButil.cxx:2982
 AliTPCcalibDButil.cxx:2983
 AliTPCcalibDButil.cxx:2984
 AliTPCcalibDButil.cxx:2985
 AliTPCcalibDButil.cxx:2986
 AliTPCcalibDButil.cxx:2987
 AliTPCcalibDButil.cxx:2988
 AliTPCcalibDButil.cxx:2989
 AliTPCcalibDButil.cxx:2990
 AliTPCcalibDButil.cxx:2991
 AliTPCcalibDButil.cxx:2992
 AliTPCcalibDButil.cxx:2993
 AliTPCcalibDButil.cxx:2994
 AliTPCcalibDButil.cxx:2995
 AliTPCcalibDButil.cxx:2996
 AliTPCcalibDButil.cxx:2997
 AliTPCcalibDButil.cxx:2998
 AliTPCcalibDButil.cxx:2999
 AliTPCcalibDButil.cxx:3000
 AliTPCcalibDButil.cxx:3001
 AliTPCcalibDButil.cxx:3002
 AliTPCcalibDButil.cxx:3003
 AliTPCcalibDButil.cxx:3004
 AliTPCcalibDButil.cxx:3005
 AliTPCcalibDButil.cxx:3006
 AliTPCcalibDButil.cxx:3007
 AliTPCcalibDButil.cxx:3008
 AliTPCcalibDButil.cxx:3009
 AliTPCcalibDButil.cxx:3010
 AliTPCcalibDButil.cxx:3011
 AliTPCcalibDButil.cxx:3012
 AliTPCcalibDButil.cxx:3013
 AliTPCcalibDButil.cxx:3014
 AliTPCcalibDButil.cxx:3015
 AliTPCcalibDButil.cxx:3016
 AliTPCcalibDButil.cxx:3017
 AliTPCcalibDButil.cxx:3018
 AliTPCcalibDButil.cxx:3019
 AliTPCcalibDButil.cxx:3020
 AliTPCcalibDButil.cxx:3021
 AliTPCcalibDButil.cxx:3022
 AliTPCcalibDButil.cxx:3023
 AliTPCcalibDButil.cxx:3024
 AliTPCcalibDButil.cxx:3025
 AliTPCcalibDButil.cxx:3026
 AliTPCcalibDButil.cxx:3027
 AliTPCcalibDButil.cxx:3028
 AliTPCcalibDButil.cxx:3029
 AliTPCcalibDButil.cxx:3030
 AliTPCcalibDButil.cxx:3031
 AliTPCcalibDButil.cxx:3032
 AliTPCcalibDButil.cxx:3033
 AliTPCcalibDButil.cxx:3034
 AliTPCcalibDButil.cxx:3035
 AliTPCcalibDButil.cxx:3036
 AliTPCcalibDButil.cxx:3037
 AliTPCcalibDButil.cxx:3038
 AliTPCcalibDButil.cxx:3039
 AliTPCcalibDButil.cxx:3040
 AliTPCcalibDButil.cxx:3041
 AliTPCcalibDButil.cxx:3042
 AliTPCcalibDButil.cxx:3043
 AliTPCcalibDButil.cxx:3044
 AliTPCcalibDButil.cxx:3045
 AliTPCcalibDButil.cxx:3046
 AliTPCcalibDButil.cxx:3047
 AliTPCcalibDButil.cxx:3048
 AliTPCcalibDButil.cxx:3049
 AliTPCcalibDButil.cxx:3050
 AliTPCcalibDButil.cxx:3051
 AliTPCcalibDButil.cxx:3052
 AliTPCcalibDButil.cxx:3053
 AliTPCcalibDButil.cxx:3054
 AliTPCcalibDButil.cxx:3055
 AliTPCcalibDButil.cxx:3056
 AliTPCcalibDButil.cxx:3057
 AliTPCcalibDButil.cxx:3058
 AliTPCcalibDButil.cxx:3059
 AliTPCcalibDButil.cxx:3060
 AliTPCcalibDButil.cxx:3061
 AliTPCcalibDButil.cxx:3062
 AliTPCcalibDButil.cxx:3063
 AliTPCcalibDButil.cxx:3064
 AliTPCcalibDButil.cxx:3065
 AliTPCcalibDButil.cxx:3066
 AliTPCcalibDButil.cxx:3067
 AliTPCcalibDButil.cxx:3068
 AliTPCcalibDButil.cxx:3069
 AliTPCcalibDButil.cxx:3070
 AliTPCcalibDButil.cxx:3071
 AliTPCcalibDButil.cxx:3072
 AliTPCcalibDButil.cxx:3073
 AliTPCcalibDButil.cxx:3074
 AliTPCcalibDButil.cxx:3075
 AliTPCcalibDButil.cxx:3076
 AliTPCcalibDButil.cxx:3077
 AliTPCcalibDButil.cxx:3078
 AliTPCcalibDButil.cxx:3079
 AliTPCcalibDButil.cxx:3080
 AliTPCcalibDButil.cxx:3081
 AliTPCcalibDButil.cxx:3082
 AliTPCcalibDButil.cxx:3083
 AliTPCcalibDButil.cxx:3084
 AliTPCcalibDButil.cxx:3085
 AliTPCcalibDButil.cxx:3086
 AliTPCcalibDButil.cxx:3087
 AliTPCcalibDButil.cxx:3088
 AliTPCcalibDButil.cxx:3089
 AliTPCcalibDButil.cxx:3090
 AliTPCcalibDButil.cxx:3091
 AliTPCcalibDButil.cxx:3092
 AliTPCcalibDButil.cxx:3093
 AliTPCcalibDButil.cxx:3094
 AliTPCcalibDButil.cxx:3095
 AliTPCcalibDButil.cxx:3096
 AliTPCcalibDButil.cxx:3097
 AliTPCcalibDButil.cxx:3098
 AliTPCcalibDButil.cxx:3099
 AliTPCcalibDButil.cxx:3100
 AliTPCcalibDButil.cxx:3101
 AliTPCcalibDButil.cxx:3102
 AliTPCcalibDButil.cxx:3103
 AliTPCcalibDButil.cxx:3104
 AliTPCcalibDButil.cxx:3105
 AliTPCcalibDButil.cxx:3106
 AliTPCcalibDButil.cxx:3107
 AliTPCcalibDButil.cxx:3108
 AliTPCcalibDButil.cxx:3109
 AliTPCcalibDButil.cxx:3110
 AliTPCcalibDButil.cxx:3111
 AliTPCcalibDButil.cxx:3112
 AliTPCcalibDButil.cxx:3113
 AliTPCcalibDButil.cxx:3114
 AliTPCcalibDButil.cxx:3115
 AliTPCcalibDButil.cxx:3116
 AliTPCcalibDButil.cxx:3117
 AliTPCcalibDButil.cxx:3118
 AliTPCcalibDButil.cxx:3119
 AliTPCcalibDButil.cxx:3120
 AliTPCcalibDButil.cxx:3121
 AliTPCcalibDButil.cxx:3122
 AliTPCcalibDButil.cxx:3123
 AliTPCcalibDButil.cxx:3124
 AliTPCcalibDButil.cxx:3125
 AliTPCcalibDButil.cxx:3126
 AliTPCcalibDButil.cxx:3127
 AliTPCcalibDButil.cxx:3128
 AliTPCcalibDButil.cxx:3129
 AliTPCcalibDButil.cxx:3130
 AliTPCcalibDButil.cxx:3131
 AliTPCcalibDButil.cxx:3132
 AliTPCcalibDButil.cxx:3133
 AliTPCcalibDButil.cxx:3134
 AliTPCcalibDButil.cxx:3135
 AliTPCcalibDButil.cxx:3136
 AliTPCcalibDButil.cxx:3137
 AliTPCcalibDButil.cxx:3138
 AliTPCcalibDButil.cxx:3139
 AliTPCcalibDButil.cxx:3140
 AliTPCcalibDButil.cxx:3141
 AliTPCcalibDButil.cxx:3142
 AliTPCcalibDButil.cxx:3143
 AliTPCcalibDButil.cxx:3144
 AliTPCcalibDButil.cxx:3145
 AliTPCcalibDButil.cxx:3146
 AliTPCcalibDButil.cxx:3147
 AliTPCcalibDButil.cxx:3148
 AliTPCcalibDButil.cxx:3149
 AliTPCcalibDButil.cxx:3150
 AliTPCcalibDButil.cxx:3151
 AliTPCcalibDButil.cxx:3152
 AliTPCcalibDButil.cxx:3153
 AliTPCcalibDButil.cxx:3154
 AliTPCcalibDButil.cxx:3155
 AliTPCcalibDButil.cxx:3156
 AliTPCcalibDButil.cxx:3157
 AliTPCcalibDButil.cxx:3158
 AliTPCcalibDButil.cxx:3159
 AliTPCcalibDButil.cxx:3160
 AliTPCcalibDButil.cxx:3161
 AliTPCcalibDButil.cxx:3162
 AliTPCcalibDButil.cxx:3163
 AliTPCcalibDButil.cxx:3164
 AliTPCcalibDButil.cxx:3165
 AliTPCcalibDButil.cxx:3166
 AliTPCcalibDButil.cxx:3167
 AliTPCcalibDButil.cxx:3168
 AliTPCcalibDButil.cxx:3169
 AliTPCcalibDButil.cxx:3170
 AliTPCcalibDButil.cxx:3171
 AliTPCcalibDButil.cxx:3172
 AliTPCcalibDButil.cxx:3173
 AliTPCcalibDButil.cxx:3174
 AliTPCcalibDButil.cxx:3175
 AliTPCcalibDButil.cxx:3176
 AliTPCcalibDButil.cxx:3177
 AliTPCcalibDButil.cxx:3178
 AliTPCcalibDButil.cxx:3179
 AliTPCcalibDButil.cxx:3180
 AliTPCcalibDButil.cxx:3181
 AliTPCcalibDButil.cxx:3182
 AliTPCcalibDButil.cxx:3183
 AliTPCcalibDButil.cxx:3184
 AliTPCcalibDButil.cxx:3185
 AliTPCcalibDButil.cxx:3186
 AliTPCcalibDButil.cxx:3187
 AliTPCcalibDButil.cxx:3188
 AliTPCcalibDButil.cxx:3189
 AliTPCcalibDButil.cxx:3190
 AliTPCcalibDButil.cxx:3191
 AliTPCcalibDButil.cxx:3192
 AliTPCcalibDButil.cxx:3193
 AliTPCcalibDButil.cxx:3194
 AliTPCcalibDButil.cxx:3195
 AliTPCcalibDButil.cxx:3196
 AliTPCcalibDButil.cxx:3197
 AliTPCcalibDButil.cxx:3198
 AliTPCcalibDButil.cxx:3199
 AliTPCcalibDButil.cxx:3200
 AliTPCcalibDButil.cxx:3201
 AliTPCcalibDButil.cxx:3202
 AliTPCcalibDButil.cxx:3203
 AliTPCcalibDButil.cxx:3204
 AliTPCcalibDButil.cxx:3205
 AliTPCcalibDButil.cxx:3206
 AliTPCcalibDButil.cxx:3207
 AliTPCcalibDButil.cxx:3208
 AliTPCcalibDButil.cxx:3209
 AliTPCcalibDButil.cxx:3210
 AliTPCcalibDButil.cxx:3211
 AliTPCcalibDButil.cxx:3212
 AliTPCcalibDButil.cxx:3213
 AliTPCcalibDButil.cxx:3214
 AliTPCcalibDButil.cxx:3215
 AliTPCcalibDButil.cxx:3216
 AliTPCcalibDButil.cxx:3217
 AliTPCcalibDButil.cxx:3218
 AliTPCcalibDButil.cxx:3219
 AliTPCcalibDButil.cxx:3220
 AliTPCcalibDButil.cxx:3221
 AliTPCcalibDButil.cxx:3222
 AliTPCcalibDButil.cxx:3223
 AliTPCcalibDButil.cxx:3224
 AliTPCcalibDButil.cxx:3225
 AliTPCcalibDButil.cxx:3226
 AliTPCcalibDButil.cxx:3227
 AliTPCcalibDButil.cxx:3228
 AliTPCcalibDButil.cxx:3229
 AliTPCcalibDButil.cxx:3230
 AliTPCcalibDButil.cxx:3231
 AliTPCcalibDButil.cxx:3232
 AliTPCcalibDButil.cxx:3233
 AliTPCcalibDButil.cxx:3234
 AliTPCcalibDButil.cxx:3235
 AliTPCcalibDButil.cxx:3236
 AliTPCcalibDButil.cxx:3237
 AliTPCcalibDButil.cxx:3238
 AliTPCcalibDButil.cxx:3239
 AliTPCcalibDButil.cxx:3240
 AliTPCcalibDButil.cxx:3241
 AliTPCcalibDButil.cxx:3242
 AliTPCcalibDButil.cxx:3243
 AliTPCcalibDButil.cxx:3244
 AliTPCcalibDButil.cxx:3245
 AliTPCcalibDButil.cxx:3246
 AliTPCcalibDButil.cxx:3247
 AliTPCcalibDButil.cxx:3248
 AliTPCcalibDButil.cxx:3249
 AliTPCcalibDButil.cxx:3250
 AliTPCcalibDButil.cxx:3251
 AliTPCcalibDButil.cxx:3252
 AliTPCcalibDButil.cxx:3253
 AliTPCcalibDButil.cxx:3254
 AliTPCcalibDButil.cxx:3255
 AliTPCcalibDButil.cxx:3256
 AliTPCcalibDButil.cxx:3257
 AliTPCcalibDButil.cxx:3258
 AliTPCcalibDButil.cxx:3259
 AliTPCcalibDButil.cxx:3260
 AliTPCcalibDButil.cxx:3261
 AliTPCcalibDButil.cxx:3262
 AliTPCcalibDButil.cxx:3263
 AliTPCcalibDButil.cxx:3264
 AliTPCcalibDButil.cxx:3265
 AliTPCcalibDButil.cxx:3266
 AliTPCcalibDButil.cxx:3267
 AliTPCcalibDButil.cxx:3268
 AliTPCcalibDButil.cxx:3269
 AliTPCcalibDButil.cxx:3270
 AliTPCcalibDButil.cxx:3271
 AliTPCcalibDButil.cxx:3272
 AliTPCcalibDButil.cxx:3273
 AliTPCcalibDButil.cxx:3274
 AliTPCcalibDButil.cxx:3275
 AliTPCcalibDButil.cxx:3276
 AliTPCcalibDButil.cxx:3277
 AliTPCcalibDButil.cxx:3278
 AliTPCcalibDButil.cxx:3279
 AliTPCcalibDButil.cxx:3280
 AliTPCcalibDButil.cxx:3281
 AliTPCcalibDButil.cxx:3282
 AliTPCcalibDButil.cxx:3283
 AliTPCcalibDButil.cxx:3284
 AliTPCcalibDButil.cxx:3285
 AliTPCcalibDButil.cxx:3286
 AliTPCcalibDButil.cxx:3287
 AliTPCcalibDButil.cxx:3288
 AliTPCcalibDButil.cxx:3289
 AliTPCcalibDButil.cxx:3290
 AliTPCcalibDButil.cxx:3291
 AliTPCcalibDButil.cxx:3292
 AliTPCcalibDButil.cxx:3293
 AliTPCcalibDButil.cxx:3294
 AliTPCcalibDButil.cxx:3295
 AliTPCcalibDButil.cxx:3296
 AliTPCcalibDButil.cxx:3297
 AliTPCcalibDButil.cxx:3298
 AliTPCcalibDButil.cxx:3299
 AliTPCcalibDButil.cxx:3300
 AliTPCcalibDButil.cxx:3301
 AliTPCcalibDButil.cxx:3302
 AliTPCcalibDButil.cxx:3303
 AliTPCcalibDButil.cxx:3304
 AliTPCcalibDButil.cxx:3305
 AliTPCcalibDButil.cxx:3306
 AliTPCcalibDButil.cxx:3307
 AliTPCcalibDButil.cxx:3308
 AliTPCcalibDButil.cxx:3309
 AliTPCcalibDButil.cxx:3310
 AliTPCcalibDButil.cxx:3311
 AliTPCcalibDButil.cxx:3312
 AliTPCcalibDButil.cxx:3313
 AliTPCcalibDButil.cxx:3314
 AliTPCcalibDButil.cxx:3315
 AliTPCcalibDButil.cxx:3316
 AliTPCcalibDButil.cxx:3317
 AliTPCcalibDButil.cxx:3318
 AliTPCcalibDButil.cxx:3319
 AliTPCcalibDButil.cxx:3320
 AliTPCcalibDButil.cxx:3321
 AliTPCcalibDButil.cxx:3322
 AliTPCcalibDButil.cxx:3323
 AliTPCcalibDButil.cxx:3324
 AliTPCcalibDButil.cxx:3325
 AliTPCcalibDButil.cxx:3326
 AliTPCcalibDButil.cxx:3327
 AliTPCcalibDButil.cxx:3328
 AliTPCcalibDButil.cxx:3329
 AliTPCcalibDButil.cxx:3330
 AliTPCcalibDButil.cxx:3331
 AliTPCcalibDButil.cxx:3332
 AliTPCcalibDButil.cxx:3333
 AliTPCcalibDButil.cxx:3334
 AliTPCcalibDButil.cxx:3335
 AliTPCcalibDButil.cxx:3336
 AliTPCcalibDButil.cxx:3337
 AliTPCcalibDButil.cxx:3338
 AliTPCcalibDButil.cxx:3339
 AliTPCcalibDButil.cxx:3340
 AliTPCcalibDButil.cxx:3341
 AliTPCcalibDButil.cxx:3342
 AliTPCcalibDButil.cxx:3343
 AliTPCcalibDButil.cxx:3344
 AliTPCcalibDButil.cxx:3345
 AliTPCcalibDButil.cxx:3346
 AliTPCcalibDButil.cxx:3347
 AliTPCcalibDButil.cxx:3348
 AliTPCcalibDButil.cxx:3349
 AliTPCcalibDButil.cxx:3350
 AliTPCcalibDButil.cxx:3351
 AliTPCcalibDButil.cxx:3352
 AliTPCcalibDButil.cxx:3353
 AliTPCcalibDButil.cxx:3354
 AliTPCcalibDButil.cxx:3355
 AliTPCcalibDButil.cxx:3356
 AliTPCcalibDButil.cxx:3357
 AliTPCcalibDButil.cxx:3358
 AliTPCcalibDButil.cxx:3359
 AliTPCcalibDButil.cxx:3360
 AliTPCcalibDButil.cxx:3361
 AliTPCcalibDButil.cxx:3362
 AliTPCcalibDButil.cxx:3363
 AliTPCcalibDButil.cxx:3364
 AliTPCcalibDButil.cxx:3365
 AliTPCcalibDButil.cxx:3366
 AliTPCcalibDButil.cxx:3367
 AliTPCcalibDButil.cxx:3368
 AliTPCcalibDButil.cxx:3369
 AliTPCcalibDButil.cxx:3370
 AliTPCcalibDButil.cxx:3371
 AliTPCcalibDButil.cxx:3372
 AliTPCcalibDButil.cxx:3373
 AliTPCcalibDButil.cxx:3374
 AliTPCcalibDButil.cxx:3375
 AliTPCcalibDButil.cxx:3376
 AliTPCcalibDButil.cxx:3377
 AliTPCcalibDButil.cxx:3378
 AliTPCcalibDButil.cxx:3379
 AliTPCcalibDButil.cxx:3380
 AliTPCcalibDButil.cxx:3381
 AliTPCcalibDButil.cxx:3382
 AliTPCcalibDButil.cxx:3383
 AliTPCcalibDButil.cxx:3384
 AliTPCcalibDButil.cxx:3385
 AliTPCcalibDButil.cxx:3386
 AliTPCcalibDButil.cxx:3387
 AliTPCcalibDButil.cxx:3388
 AliTPCcalibDButil.cxx:3389
 AliTPCcalibDButil.cxx:3390
 AliTPCcalibDButil.cxx:3391
 AliTPCcalibDButil.cxx:3392
 AliTPCcalibDButil.cxx:3393
 AliTPCcalibDButil.cxx:3394
 AliTPCcalibDButil.cxx:3395
 AliTPCcalibDButil.cxx:3396
 AliTPCcalibDButil.cxx:3397
 AliTPCcalibDButil.cxx:3398
 AliTPCcalibDButil.cxx:3399
 AliTPCcalibDButil.cxx:3400
 AliTPCcalibDButil.cxx:3401
 AliTPCcalibDButil.cxx:3402
 AliTPCcalibDButil.cxx:3403
 AliTPCcalibDButil.cxx:3404
 AliTPCcalibDButil.cxx:3405
 AliTPCcalibDButil.cxx:3406
 AliTPCcalibDButil.cxx:3407
 AliTPCcalibDButil.cxx:3408
 AliTPCcalibDButil.cxx:3409
 AliTPCcalibDButil.cxx:3410
 AliTPCcalibDButil.cxx:3411
 AliTPCcalibDButil.cxx:3412
 AliTPCcalibDButil.cxx:3413
 AliTPCcalibDButil.cxx:3414
 AliTPCcalibDButil.cxx:3415
 AliTPCcalibDButil.cxx:3416
 AliTPCcalibDButil.cxx:3417
 AliTPCcalibDButil.cxx:3418
 AliTPCcalibDButil.cxx:3419
 AliTPCcalibDButil.cxx:3420
 AliTPCcalibDButil.cxx:3421
 AliTPCcalibDButil.cxx:3422
 AliTPCcalibDButil.cxx:3423
 AliTPCcalibDButil.cxx:3424
 AliTPCcalibDButil.cxx:3425
 AliTPCcalibDButil.cxx:3426
 AliTPCcalibDButil.cxx:3427
 AliTPCcalibDButil.cxx:3428
 AliTPCcalibDButil.cxx:3429
 AliTPCcalibDButil.cxx:3430
 AliTPCcalibDButil.cxx:3431
 AliTPCcalibDButil.cxx:3432
 AliTPCcalibDButil.cxx:3433
 AliTPCcalibDButil.cxx:3434
 AliTPCcalibDButil.cxx:3435
 AliTPCcalibDButil.cxx:3436
 AliTPCcalibDButil.cxx:3437
 AliTPCcalibDButil.cxx:3438
 AliTPCcalibDButil.cxx:3439
 AliTPCcalibDButil.cxx:3440
 AliTPCcalibDButil.cxx:3441
 AliTPCcalibDButil.cxx:3442
 AliTPCcalibDButil.cxx:3443
 AliTPCcalibDButil.cxx:3444
 AliTPCcalibDButil.cxx:3445
 AliTPCcalibDButil.cxx:3446
 AliTPCcalibDButil.cxx:3447
 AliTPCcalibDButil.cxx:3448