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


/* $Id$ */


//Root includes
#include <TH1F.h>
#include <TH2F.h>
#include <TString.h>
#include <TMath.h>
#include <TF1.h>
#include <TRandom.h>
#include <TDirectory.h>
#include <TFile.h>
#include <TMap.h>
//AliRoot includes
#include "AliRawReader.h"
#include "AliRawReaderRoot.h"
#include "AliRawReaderDate.h"
#include "AliTPCCalROC.h"
#include "AliTPCROC.h"
#include "AliMathBase.h"
#include "TTreeStream.h"

//date
#include "event.h"

//header file
#include "AliTPCCalibPedestal.h"


///////////////////////////////////////////////////////////////////////////////////////
//          Implementation of the TPC pedestal and noise calibration
//
//   Origin: Jens Wiechula, Marian Ivanov   J.Wiechula@gsi.de, Marian.Ivanov@cern.ch
// 
// 
// *************************************************************************************
// *                                Class Description                                  *
// *************************************************************************************
//
// Working principle:
// ------------------
// Raw pedestal data is processed by calling one of the ProcessEvent(...) functions
// (see below). These in the end call the Update(...) function, where the data is filled
// into histograms.
//
// For each ROC one TH2F histo (ROC channel vs. ADC channel) is created when
// it is filled for the first time (GetHistoPedestal(ROC,kTRUE)). All histos are stored in the
// TObjArray fHistoPedestalArray.
//
// For a fast filling of the histogram the corresponding bin number of the channel and ADC channel
// is computed by hand and the histogram array is accessed directly via its pointer.
// ATTENTION: Doing so the the entry counter of the histogram is not increased
//            this means that e.g. the colz draw option gives an empty plot unless
//	    calling 'histo->SetEntries(1)' before drawing.
//
// After accumulating the desired statistics the Analyse() function has to be called.
// Whithin this function the pedestal and noise values are calculated for each pad, using
// the fast gaus fit function  AliMathBase::FitGaus(...), and the calibration
// storage classes (AliTPCCalROC) are filled for each ROC.
// The calibration information is stored in the TObjArrays fCalRocArrayPedestal and fCalRocArrayRMS;
//
//
//
// User interface for filling data:
// --------------------------------
//
// To Fill information one of the following functions can be used:
//
// Bool_t ProcessEvent(eventHeaderStruct *event);
//   - process Date event
//   - use AliTPCRawReaderDate and call ProcessEvent(AliRawReader *rawReader)
//
// Bool_t ProcessEvent(AliRawReader *rawReader);
//  - process AliRawReader event
//   - use AliTPCRawStreamV3 to loop over data and call ProcessEvent(AliTPCRawStreamV3 *rawStream)
//
// Bool_t ProcessEvent(AliTPCRawStreamV3 *rawStream);
//   - process event from AliTPCRawStreamV3
//   - call Update function for signal filling
//
// Int_t Update(const Int_t isector, const Int_t iRow, const Int_t
//              iPad,  const Int_t iTimeBin, const Float_t signal);
//   - directly  fill signal information (sector, row, pad, time bin, pad)
//     to the reference histograms
//
// It is also possible to merge two independently taken calibrations using the function
//
// void Merge(AliTPCCalibPedestal *ped)
//   - copy histograms in 'ped' if the do not exist in this instance
//   - Add histograms in 'ped' to the histograms in this instance if the allready exist
//   - After merging call Analyse again!
//
//
//
// -- example: filling data using root raw data:
// void fillPedestal(Char_t *filename)
// {
//    rawReader = new AliRawReaderRoot(fileName);
//    if ( !rawReader ) return;
//    AliTPCCalibPedestal *calib = new AliTPCCalibPedestal;
//    while (rawReader->NextEvent()){
//      calib->ProcessEvent(rawReader);
//    }
//    calib->Analyse();
//    calib->DumpToFile("PedestalData.root");
//    delete rawReader;
//    delete calib;
// }
//
//
// What kind of information is stored and how to retrieve them:
// ------------------------------------------------------------
//
// - Accessing the 'Reference Histograms' (pedestal distribution histograms):
//
// TH2F *GetHistoPedestal(Int_t sector);
//
// - Accessing the calibration storage objects:
//
// AliTPCCalROC *GetCalRocPedestal(Int_t sector);  - for the pedestal values, mean from gaus fit
// AliTPCCalROC *GetCalRocSigma(Int_t sector);     - for the Noise values, sigma from guas fit
// AliTPCCalROC *GetCalRocMean(Int_t sector);  - for the pedestal values, truncated mean
// AliTPCCalROC *GetCalRocRMS(Int_t sector);     - for the Noise values, rms from truncated mean
//
// example for visualisation:
// if the file "PedestalData.root" was created using the above example one could do the following:
//
// TFile filePedestal("PedestalData.root")
// AliTPCCalibPedestal *ped = (AliTPCCalibPedestal*)filePedestal->Get("AliTPCCalibPedestal");
// ped->GetCalRocPedestal(0)->Draw("colz");
// ped->GetCalRocRMS(0)->Draw("colz");
//
// or use the AliTPCCalPad functionality:
// AliTPCCalPad padPedestal(ped->GetCalPadPedestal());
// AliTPCCalPad padNoise(ped->GetCalPadRMS());
// padPedestal->MakeHisto2D()->Draw("colz");  //Draw A-Side Pedestal Information
// padNoise->MakeHisto2D()->Draw("colz");  //Draw A-Side Noise Information
//
/*
 example: fill pedestal with gausschen noise
 AliTPCCalibPedestal ped;
 ped.TestEvent();
 ped.Analyse();
 //Draw output;
 TCanvas* c1 = new TCanvas;
 c1->Divide(1,2);
 c1->cd(1);
 ped.GetHistoPedestal(0)->SetEntries(1); //needed in order for colz to work, reason: fast filling does not increase the entries counter
 ped.GetHistoPedestal(0)->Draw("colz");
 c1->cd(2);
 ped.GetHistoPedestal(36)->SetEntries(1); //needed in order for colz to work, reason: fast filling does not increase the entries counter
 ped.GetHistoPedestal(36)->Draw("colz");
 TCanvas* c2 = new TCanvas;
 c2->Divide(2,2);
 c2->cd(1);
 ped.GetCalRocPedestal(0)->Draw("colz");
 c2->cd(2);
 ped.GetCalRocRMS(0)->Draw("colz");
 c2->cd(3);
 ped.GetCalRocPedestal(36)->Draw("colz");
 c2->cd(4);
 ped.GetCalRocRMS(36)->Draw("colz");
*/
//
// Time dependent pedestals:
//
// If wished there is the possibility to calculate for each channel and time bin
// the mean pedestal [pedestals(t)]. This is done by
//
// 1) setting SetTimeAnalysis(kTRUE),
// 2) processing the data by looping over the events using ProcessEvent(..)
// 3) calling the Analyse() and AnalyseTime(nevents) functions (providing nevents)
// 4) getting the pedestals(t) using   TArrayF **timePed = calibPedestal.GetTimePedestals();
// 5) looking at values using   timePed[row][pad].At(timebin)
//
// This functionality is intended to be used on an LDC bu the detector algorithm
// (TPCPEDESTALda) to generate a data set used for configuration of the pattern
// memory for baseline subtraction in the ALTROs. Later the information should also
// be stored as reference data.
//


ClassImp(AliTPCCalibPedestal)

AliTPCCalibPedestal::AliTPCCalibPedestal() : 
  AliTPCCalibRawBase(),
  fAdcMin(1),
  fAdcMax(100),
  fAnaMeanDown(0.),
  fAnaMeanUp(1.),
  fTimeAnalysis(kFALSE),
  fCalRocArrayPedestal(72),
  fCalRocArraySigma(72),
  fHistoPedestalArray(72),
  fTimeSignal(NULL),
  fCalRocArrayMean(72),
  fCalRocArrayRMS(72)
{
  //
  // default constructor
  //
  SetNameTitle("AliTPCCalibPedestal","AliTPCCalibPedestal");
  fFirstTimeBin=60;
  fLastTimeBin=1000;
}


//_____________________________________________________________________
AliTPCCalibPedestal::AliTPCCalibPedestal(const AliTPCCalibPedestal &ped) : 
  AliTPCCalibRawBase(ped),
  fAdcMin(ped.GetAdcMin()),
  fAdcMax(ped.GetAdcMax()),
  fAnaMeanDown(ped.fAnaMeanDown),
  fAnaMeanUp(ped.fAnaMeanUp),
  fTimeAnalysis(ped.fTimeAnalysis),
  fCalRocArrayPedestal(72),
  fCalRocArraySigma(72),
  fHistoPedestalArray(72),
  fTimeSignal(ped.fTimeSignal),
  fCalRocArrayMean(72),
  fCalRocArrayRMS(72)
{
  //
  // copy constructor
  //
  for (Int_t iSec = 0; iSec < 72; ++iSec){
    const AliTPCCalROC *calPed = (AliTPCCalROC*)ped.fCalRocArrayPedestal.UncheckedAt(iSec);
    const AliTPCCalROC *calRMS = (AliTPCCalROC*)ped.fCalRocArrayRMS.UncheckedAt(iSec);
    const TH2F         *hPed   = (TH2F*)ped.fHistoPedestalArray.UncheckedAt(iSec);
    
    if ( calPed != 0x0 ) fCalRocArrayPedestal.AddAt(new AliTPCCalROC(*calPed), iSec);
    if ( calRMS != 0x0 ) fCalRocArrayRMS.AddAt(new AliTPCCalROC(*calRMS), iSec);
    
    if ( hPed != 0x0 ){
      TH2F *hNew = new TH2F(*hPed);
      hNew->SetDirectory(0);
      fHistoPedestalArray.AddAt(hNew,iSec);
    }
  }
}
AliTPCCalibPedestal::AliTPCCalibPedestal(const TMap *config): 
  AliTPCCalibRawBase(),
  fAdcMin(1),
  fAdcMax(100),
  fAnaMeanDown(0.),
  fAnaMeanUp(1.),
  fTimeAnalysis(kFALSE),
  fCalRocArrayPedestal(72),
  fCalRocArraySigma(72),
  fHistoPedestalArray(72),
  fTimeSignal(NULL),
  fCalRocArrayMean(72),
  fCalRocArrayRMS(72)  
{
 //
 // This constructor uses a TMap for setting some parametes
 //
  SetNameTitle("AliTPCCalibPedestal","AliTPCCalibPedestal");
  fFirstTimeBin=60;
  fLastTimeBin=1000;
  if (config->GetValue("FirstTimeBin")) fFirstTimeBin = ((TObjString*)config->GetValue("FirstTimeBin"))->GetString().Atoi();
  if (config->GetValue("LastTimeBin"))  fLastTimeBin = ((TObjString*)config->GetValue("LastTimeBin"))->GetString().Atoi();
  if (config->GetValue("AdcMin"))       fAdcMin = ((TObjString*)config->GetValue("AdcMin"))->GetString().Atoi();
  if (config->GetValue("AdcMax"))       fAdcMax = ((TObjString*)config->GetValue("AdcMax"))->GetString().Atoi();
  if (config->GetValue("TimeAnalysis")) SetTimeAnalysis(((TObjString*)config->GetValue("TimeAnalysis"))->GetString().Atoi());
} 


//_____________________________________________________________________
AliTPCCalibPedestal& AliTPCCalibPedestal::operator = (const  AliTPCCalibPedestal &source)
{
  //
  // assignment operator
  //
  if (&source == this) return *this;
  new (this) AliTPCCalibPedestal(source);

  return *this;
}


//_____________________________________________________________________
AliTPCCalibPedestal::~AliTPCCalibPedestal() 
{
  //
  // destructor
  //

  fCalRocArrayPedestal.Delete();
  fCalRocArrayRMS.Delete();
  fCalRocArraySigma.Delete();
  fHistoPedestalArray.Delete();

  if ( fTimeSignal ) {
    for (Int_t i = 0; i < 159; i++) {
      delete [] fTimeSignal[i];
      fTimeSignal[i] = 0;
    }
    delete [] fTimeSignal;
    fTimeSignal = 0;
  }

  // do not delete fMapping, because we do not own it.

}


//_____________________________________________________________________
void AliTPCCalibPedestal::SetTimeAnalysis(Bool_t time)
{
  //
  // Use time dependent analysis: Pedestals are analysed as a function
  // of the drift time. There is one mean value generated for each time
  // bin and each channel. It can be used as reference data and for
  // configuration of the ALTRO pattern memory for baseline subtraction.
  //
  // ATTENTION: Use only on LDC in TPCPEDESTALda! On a LDC we get data
  // only from one sector. For the full TPC we would need a lot of
  // memory (36*159*140*1024*4bytes = 3.3GB)!
  //

  fTimeAnalysis = time;

  if ( !fTimeAnalysis ) return;

  // prepare array for one sector (159*140*1024*4bytes = 92MB):
  fTimeSignal = new TArrayF*[159];
  for (Int_t i = 0; i < 159; i++) {  // padrows
    fTimeSignal[i] = new TArrayF[140];
    for (Int_t j = 0; j < 140; j++) {  // pads per row
      fTimeSignal[i][j].Set(1024);
      for (Int_t k = 0; k < 1024; k++) {  // time bins per pad
	fTimeSignal[i][j].AddAt(0., k);
      }
    }      
  }
}


//_____________________________________________________________________
Int_t AliTPCCalibPedestal::Update(const Int_t icsector, 
				  const Int_t icRow,
				  const Int_t icPad,
				  const Int_t icTimeBin,
				  const Float_t csignal)
{
  //
  // Signal filling method
  //
  if (icRow<0) return 0;
  if (icPad<0) return 0;
  if (icTimeBin<0) return 0;
 
  // Time dependent pedestals
  if ( fTimeAnalysis ) {
    if ( icsector < 36 ) // IROC
      fTimeSignal[icRow][icPad].AddAt(fTimeSignal[icRow][icPad].At(icTimeBin)+csignal, icTimeBin);
    else 
      fTimeSignal[icRow+63][icPad].AddAt(fTimeSignal[icRow+63][icPad].At(icTimeBin)+csignal, icTimeBin);
  }
  //return if we are out of the specified time bin or adc range
  if ( (icTimeBin>fLastTimeBin) || (icTimeBin<fFirstTimeBin) ) return 0;
  if ( ((Int_t)csignal>fAdcMax) || ((Int_t)csignal<fAdcMin)  ) return 0;

  Int_t iChannel  = fROC->GetRowIndexes(icsector)[icRow]+icPad; //  global pad position in sector

  // fast filling method
  // Attention: the entry counter of the histogram is not increased
  //            this means that e.g. the colz draw option gives an empty plot
  Int_t bin = (iChannel+1)*(fAdcMax-fAdcMin+2)+((Int_t)csignal-fAdcMin+1);

  GetHistoPedestal(icsector,kTRUE)->GetArray()[bin]++;

  return 0;
}


//_____________________________________________________________________
Bool_t AliTPCCalibPedestal::TestEvent() 
{
  //
  //  Test event loop
  // fill one oroc and one iroc with random gaus
  //

  gRandom->SetSeed(0);

  for (UInt_t iSec=0; iSec<72; ++iSec){
    if (iSec%36>0) continue;
    for (UInt_t iRow=0; iRow < fROC->GetNRows(iSec); ++iRow){
      for (UInt_t iPad=0; iPad < fROC->GetNPads(iSec,iRow); ++iPad){
        for (UInt_t iTimeBin=0; iTimeBin<1024; ++iTimeBin){
          Float_t signal=(Int_t)(iRow+3+gRandom->Gaus(0,.7));
          if ( signal>0 )Update(iSec,iRow,iPad,iTimeBin,signal);
        }
      }
    }
  }
  return kTRUE;
}


//_____________________________________________________________________
TH2F* AliTPCCalibPedestal::GetHisto(Int_t sector, TObjArray *arr, 
				    Int_t nbinsY, Float_t ymin, Float_t ymax,
				    const Char_t *type, Bool_t force)
{
    //
    // return pointer to Q histogram
    // if force is true create a new histogram if it doesn't exist allready
    //
    if ( !force || arr->UncheckedAt(sector) )
      return (TH2F*)arr->UncheckedAt(sector);

    // if we are forced and histogram doesn't yes exist create it
    // new histogram with Q calib information. One value for each pad!
    TH2F* hist = new TH2F(Form("hCalib%s%.2d",type,sector),
                          Form("%s calibration histogram sector %.2d;ADC channel;Channel (pad)",type,sector),
                          nbinsY, ymin, ymax,
                          fROC->GetNChannels(sector),0,fROC->GetNChannels(sector)
                         );
    hist->SetDirectory(0);
    arr->AddAt(hist,sector);
    return hist;
}


//_____________________________________________________________________
TH2F* AliTPCCalibPedestal::GetHistoPedestal(Int_t sector, Bool_t force) 
{
    //
    // return pointer to T0 histogram
    // if force is true create a new histogram if it doesn't exist allready
    //
    TObjArray *arr = &fHistoPedestalArray;
    return GetHisto(sector, arr, fAdcMax-fAdcMin, fAdcMin, fAdcMax, "Pedestal", force);
}


//_____________________________________________________________________
AliTPCCalROC* AliTPCCalibPedestal::GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) 
{
    //
    // return pointer to ROC Calibration
    // if force is true create a new histogram if it doesn't exist allready
    //
    if ( !force || arr->UncheckedAt(sector) )
	return (AliTPCCalROC*)arr->UncheckedAt(sector);

    // if we are forced and the histogram doesn't yet exist create it

    // new AliTPCCalROC for T0 information. One value for each pad!
    AliTPCCalROC *croc = new AliTPCCalROC(sector);
    arr->AddAt(croc,sector);
    return croc;
}


//_____________________________________________________________________
AliTPCCalROC* AliTPCCalibPedestal::GetCalRocPedestal(Int_t sector, Bool_t force) 
{
    //
    // return pointer to ROC with Pedestal data
    // if force is true create a new histogram if it doesn't exist allready
    //
    TObjArray *arr = &fCalRocArrayPedestal;
    return GetCalRoc(sector, arr, force);
}


//_____________________________________________________________________
AliTPCCalROC* AliTPCCalibPedestal::GetCalRocSigma(Int_t sector, Bool_t force) 
{
    //
    // return pointer to  ROC with signal witdth in sigma
    // if force is true create a new histogram if it doesn't exist allready
    //
    TObjArray *arr = &fCalRocArraySigma;
    return GetCalRoc(sector, arr, force);
}
//_____________________________________________________________________
AliTPCCalROC* AliTPCCalibPedestal::GetCalRocMean(Int_t sector, Bool_t force)
{
  //
    // return pointer to ROC with signal mean information
    // if force is true create a new histogram if it doesn't exist allready
  //
  TObjArray *arr = &fCalRocArrayMean;
  return GetCalRoc(sector, arr, force);
}

//_____________________________________________________________________
AliTPCCalROC* AliTPCCalibPedestal::GetCalRocRMS(Int_t sector, Bool_t force) 
{
  //
    // return pointer to signal width ROC Calibration
    // if force is true create a new histogram if it doesn't exist allready
  //
  TObjArray *arr = &fCalRocArrayRMS;
  return GetCalRoc(sector, arr, force);
}


//_____________________________________________________________________
void AliTPCCalibPedestal::Merge(AliTPCCalibPedestal * const ped)
{
  //
  //  Merge reference histograms of sig to the current AliTPCCalibPedestal
  //
  MergeBase(ped);
  // merge histograms
  for (Int_t iSec=0; iSec<72; ++iSec){
    TH2F *hRefPedMerge   = ped->GetHistoPedestal(iSec);
    
    if ( hRefPedMerge ){
      TDirectory *dir = hRefPedMerge->GetDirectory(); hRefPedMerge->SetDirectory(0);
      TH2F *hRefPed   = GetHistoPedestal(iSec);
      if ( hRefPed ) hRefPed->Add(hRefPedMerge);
      else {
        TH2F *hist = new TH2F(*hRefPedMerge);
        hist->SetDirectory(0);
        fHistoPedestalArray.AddAt(hist, iSec);
      }
      hRefPedMerge->SetDirectory(dir);
    }
  }
  
  // merge array
  // ...
  
}

//_____________________________________________________________________
Long64_t AliTPCCalibPedestal::Merge(TCollection * const list)
{
  //
  // Merge all objects of this type in list
  //
  
  Long64_t nmerged=1;
  
  TIter next(list);
  AliTPCCalibPedestal *ce=0;
  TObject *o=0;
  
  while ( (o=next()) ){
    ce=dynamic_cast<AliTPCCalibPedestal*>(o);
    if (ce){
      Merge(ce);
      ++nmerged;
    }
  }
  
  return nmerged;
}

//_____________________________________________________________________
void AliTPCCalibPedestal::Analyse() 
{
  //
  //  Calculate calibration constants
  //

  Int_t nbinsAdc = fAdcMax-fAdcMin;

  TVectorD param(4);
  TMatrixD dummy(3,3);

  TH1F *hChannel=new TH1F("hChannel","hChannel",nbinsAdc,fAdcMin,fAdcMax);
  
  Float_t *arrayhP=0;  

  for (Int_t iSec=0; iSec<72; ++iSec){
    TH2F *hP = GetHistoPedestal(iSec);
    if ( !hP ) continue;

    AliTPCCalROC *rocPedestal = GetCalRocPedestal(iSec,kTRUE);
    AliTPCCalROC *rocSigma    = GetCalRocSigma(iSec,kTRUE);
    AliTPCCalROC *rocMean     = GetCalRocMean(iSec,kTRUE);
    AliTPCCalROC *rocRMS      = GetCalRocRMS(iSec,kTRUE);

    arrayhP = hP->GetArray();
    UInt_t nChannels = fROC->GetNChannels(iSec);

    for (UInt_t iChannel=0; iChannel<nChannels; ++iChannel){
      Int_t offset = (nbinsAdc+2)*(iChannel+1)+1;
      //calculate mean and sigma using a gaus fit
      //Double_t ret =
      AliMathBase::FitGaus(arrayhP+offset,nbinsAdc,fAdcMin,fAdcMax,&param,&dummy);
      // if the fitting failed set noise and pedestal to 0
      // is now done in AliMathBase::FitGaus !
//       if ( ret == -4 ) {
// 	param[1]=0;
// 	param[2]=0;
//       }
      if ( param[1]<fAdcMin || param[1]>fAdcMax ){
        param[1]=0;
        param[2]=0;
      }
      rocPedestal->SetValue(iChannel,param[1]);
      rocSigma->SetValue(iChannel,param[2]);
      //calculate mean and RMS using a truncated means
      hChannel->Set(nbinsAdc+2,arrayhP+offset-1);
      hChannel->SetEntries(param[3]);
      param[1]=0;
      param[2]=0;
      if ( param[3]>0 ) AliMathBase::TruncatedMean(hChannel,&param,fAnaMeanDown,fAnaMeanUp);
      rocMean->SetValue(iChannel,param[1]);
      rocRMS->SetValue(iChannel,param[2]);
    }
  }
  delete hChannel;
}


//_____________________________________________________________________
void AliTPCCalibPedestal::AnalyseTime(Int_t nevents)
{
  //
  // Calculate for each channel and time bin the mean pedestal. This
  // is used on LDC by TPCPEDESTALda to generate data used for configuration
  // of the pattern memory for baseline subtraction in the ALTROs.
  //

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