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

/*
  July 2011:

  Changes to accomodate updates of general DQM/QA changes to have per trigger
  histograms (for a given event specie).

  AliTPCdataQA has a new flag for only keeping DQM info event by
  event!
  The expert/DA functionality has been kept exactly the same!
  

  June 2010

  This update should solve two problems mainly:
  * The vs event histograms have been limited to a fixed size for the
  DQM. The 500k seemed to be a big size but is no longer so, so we
  need to dynamically expand the range. The non-trivial point is that
  we also have to do it for the copy owned by AliTPCQADataMakerRec.
  * The amoreGui now remembers the x-range of the first visualization so
  the trick of setting the relevant event range as the histogram is
  filled no longer works.

  The fix is a bit crude but avoids creating a new histogram. Instead
  the range is expanded (max events and events per bin is doubled) but
  the number of bins is kept constant! In this way we can change just
  double the max of the X-axis of the hist and rebin the data. The
  same can easily be done for the copy owned by AliTPCQADataMakerRec.

  CAUTION:
  If we change the number of bins we could crash the whole system
  because ROOT does not create space for extra bins! (but we do not do
  this). In that way it is a crude solution.
  The rebinning in the code only works for an even number of bins.

  In addition to the above a bug in the reading of the config file was
  also found and corrected. fAdcMax was set instead of fEventsPerBin.

  Finally cout was changes to AliInfo.

  February 2008

  The code has been heavily modified so that now the RAW data is
  "expanded" for each sector and stored in a big signal array. Then a
  simple version of the code in AliTPCclusterer is used to identify
  the local maxima and these are then used for QA. This gives a better
  estimate of the charge (both max and total) and also limits the
  effect of noise.

  Implementation:

  In Update the RAW signals >= 3 ADC channels are stored in the arrays.
  
  There are 3 arrays:
  Float_t** fAllBins       2d array [row][bin(pad, time)] ADC signal
  Int_t**   fAllSigBins    2d array [row][signal#] bin(with signal)
  Int_t*    fAllNSigBins;  1d array [row] Nsignals

  This is done sector by sector.

  When data from a new sector is encountered, the method
  FindLocalMaxima is called on the data from the previous sector, and
  the calibration/data objects are updated with the "cluster"
  info. Finally the arrays are cleared.

  The requirements for a local maxima is:
  Charge in bin is >= 5 ADC channels.
  Charge in bin is larger than all the 8 neighboring bins.
  At least one of the two pad neighbors has a signal.
  At least one of the two time neighbors has a signal.

  Before accessing the data it is expected that the Analyse method is
  called. This normalizes some of the data objects to per event or per
  cluster. 
  If more data is passed to the class after Analyse has been called
  the normalization is reversed and Analyse has to be called again.
*/


//Root includes
#include <TH1F.h>
#include <TString.h>
#include <TMath.h>
#include <TDirectory.h>
#include <TFile.h>
#include <TError.h>
#include <TMap.h>
#include <TProfile.h>
#include <TObjArray.h>
//AliRoot includes
#include "AliRawReader.h"
#include "AliRawReaderRoot.h"
#include "AliRawReaderDate.h"
#include "AliTPCRawStreamV3.h"
#include "AliTPCCalROC.h"
#include "AliTPCROC.h"
#include "AliMathBase.h"
#include "TTreeStream.h"

//date
#include "event.h"
#include "AliTPCCalPad.h"
#include "AliTPCPreprocessorOnline.h"

//header file
#include "AliTPCdataQA.h"
#include "AliLog.h"


ClassImp(AliTPCdataQA)

AliTPCdataQA::AliTPCdataQA() : /*FOLD00*/  
  fFirstTimeBin(60),
  fLastTimeBin(1000),
  fAdcMin(3),
  fAdcMax(1000),
  fMinQMax(5.f),
  fRequireNeighbouringPad(kTRUE),
  fMapping(NULL),
  fPedestal(0),
  fNoise(0),
  fNLocalMaxima(0),
  fMaxCharge(0),
  fMeanCharge(0),
  fNoThreshold(0),
  fNTimeBins(0),
  fNPads(0),
  fTimePosition(0),
  fOverThreshold10(0),
  fOverThreshold20(0),
  fOverThreshold30(0),
  fHistQVsTimeSideA(0),
  fHistQVsTimeSideC(0),
  fHistQMaxVsTimeSideA(0),
  fHistQMaxVsTimeSideC(0),
  fHistOccupancyVsEvent(0),
  fHistNclustersVsEvent(0),
  fEventCounter(0),
  fIsAnalysed(kFALSE),
  fMaxEvents(500000),           // Max events for event histograms
  fEventsPerBin(1000),          // Events per bin for event histograms
  fSignalCounter(0),            // Signal counter
  fClusterCounter(0),           // Cluster counter
  fActiveChambers(72),
  fAllBins(0),
  fAllSigBins(0),
  fAllNSigBins(0),
  fRowsMax(0),
  fPadsMax(0),
  fTimeBinsMax(0),
  fIsDQM(kFALSE),
  fHistOccVsSector(0x0),
  fHistOcc2dVsSector(0x0),
  fHistQVsSector(0x0),
  fHistQmaxVsSector(0x0),
  fOccVec(0x0),
  fOccMaxVec(0x0),
  fOccVecFine(0x0),
  fOccMaxVecFine(0x0)
{
  //
  // default constructor
  //

  for (Int_t i=0; i<72; ++i) {fActiveChambers.SetBitNumber(i,kTRUE);}
}

//_____________________________________________________________________
AliTPCdataQA::AliTPCdataQA(const AliTPCdataQA &ped) : /*FOLD00*/
  TH1F(ped),
  fFirstTimeBin(ped.GetFirstTimeBin()),
  fLastTimeBin(ped.GetLastTimeBin()),
  fAdcMin(ped.GetAdcMin()),
  fAdcMax(ped.GetAdcMax()),
  fMinQMax(ped.GetMinQMax()),
  fRequireNeighbouringPad(ped.GetRequireNeighbouringPad()),
  fMapping(NULL),
  fPedestal(0),
  fNoise(0),
  fNLocalMaxima(0),
  fMaxCharge(0),
  fMeanCharge(0),
  fNoThreshold(0),
  fNTimeBins(0),
  fNPads(0),
  fTimePosition(0),
  fOverThreshold10(0),
  fOverThreshold20(0),
  fOverThreshold30(0),
  fHistQVsTimeSideA(0),
  fHistQVsTimeSideC(0),
  fHistQMaxVsTimeSideA(0),
  fHistQMaxVsTimeSideC(0),
  fHistOccupancyVsEvent(0),
  fHistNclustersVsEvent(0),
  fEventCounter(ped.GetEventCounter()),
  fIsAnalysed(ped.GetIsAnalysed()),
  fMaxEvents(ped.GetMaxEvents()),
  fEventsPerBin(ped.GetEventsPerBin()),
  fSignalCounter(ped.GetSignalCounter()),
  fClusterCounter(ped.GetClusterCounter()),
  fActiveChambers(ped.fActiveChambers),
  fAllBins(0),
  fAllSigBins(0),
  fAllNSigBins(0),
  fRowsMax(0),
  fPadsMax(0),
  fTimeBinsMax(0),
  fIsDQM(ped.GetIsDQM()),
  fHistOccVsSector(0x0),
  fHistOcc2dVsSector(0x0),
  fHistQVsSector(0x0),
  fHistQmaxVsSector(0x0),
  fOccVec(0x0),
  fOccMaxVec(0x0),
  fOccVecFine(0x0),
  fOccMaxVecFine(0x0)
{
  //
  // copy constructor
  //
  if(ped.GetNLocalMaxima())
    fNLocalMaxima  = new AliTPCCalPad(*ped.GetNLocalMaxima());
  if(ped.GetMaxCharge())
    fMaxCharge      = new AliTPCCalPad(*ped.GetMaxCharge());
  if(ped.GetMeanCharge())
    fMeanCharge     = new AliTPCCalPad(*ped.GetMeanCharge());
  if(ped.GetNoThreshold())
    fNoThreshold  = new AliTPCCalPad(*ped.GetNoThreshold());
  if(ped.GetNTimeBins())
    fNTimeBins  = new AliTPCCalPad(*ped.GetNTimeBins());
  if(ped.GetNPads())
    fNPads  = new AliTPCCalPad(*ped.GetNPads());
  if(ped.GetTimePosition())
    fTimePosition  = new AliTPCCalPad(*ped.GetTimePosition());
  if(ped.GetOverThreshold10())
    fOverThreshold10  = new AliTPCCalPad(*ped.GetOverThreshold10());
  if(ped.GetOverThreshold20())
    fOverThreshold20  = new AliTPCCalPad(*ped.GetOverThreshold20());
  if(ped.GetOverThreshold30())
    fOverThreshold30  = new AliTPCCalPad(*ped.GetOverThreshold30());
  if(ped.GetHistQVsTimeSideA()) {
    fHistQVsTimeSideA = new TProfile(*ped.GetHistQVsTimeSideA());
    fHistQVsTimeSideA->SetDirectory(0);
  }
  if(ped.GetHistQVsTimeSideC()) {
    fHistQVsTimeSideC = new TProfile(*ped.GetHistQVsTimeSideC());
    fHistQVsTimeSideC->SetDirectory(0);
  }
  if(ped.GetHistQMaxVsTimeSideA()) {
    fHistQMaxVsTimeSideA = new TProfile(*ped.GetHistQMaxVsTimeSideA());
    fHistQMaxVsTimeSideA->SetDirectory(0);
  }
  if(ped.GetHistQMaxVsTimeSideC()) {
    fHistQMaxVsTimeSideC = new TProfile(*ped.GetHistQMaxVsTimeSideC());
    fHistQMaxVsTimeSideC->SetDirectory(0);
  }
  if(ped.GetHistOccupancyVsEventConst()) {
    fHistOccupancyVsEvent  = new TH1F(*ped.GetHistOccupancyVsEventConst());
    fHistOccupancyVsEvent->SetDirectory(0);
  }
  if(ped.GetHistNclustersVsEventConst()) {
    fHistNclustersVsEvent  = new TH1F(*ped.GetHistNclustersVsEventConst());
    fHistNclustersVsEvent->SetDirectory(0);
  }
}

//_____________________________________________________________________
AliTPCdataQA::AliTPCdataQA(const TMap *config) : /*FOLD00*/  
  TH1F("TPCRAW","TPCRAW",100,0,100),
  fFirstTimeBin(60),
  fLastTimeBin(1000),
  fAdcMin(3),
  fAdcMax(1000),
  fMinQMax(5.f),
  fRequireNeighbouringPad(kTRUE),
  fMapping(NULL),
  fPedestal(0),
  fNoise(0),
  fNLocalMaxima(0),
  fMaxCharge(0),
  fMeanCharge(0),
  fNoThreshold(0),
  fNTimeBins(0),
  fNPads(0),
  fTimePosition(0),
  fOverThreshold10(0),
  fOverThreshold20(0),
  fOverThreshold30(0),
  fHistQVsTimeSideA(0),
  fHistQVsTimeSideC(0),
  fHistQMaxVsTimeSideA(0),
  fHistQMaxVsTimeSideC(0),
  fHistOccupancyVsEvent(0),
  fHistNclustersVsEvent(0),
  fEventCounter(0),
  fIsAnalysed(kFALSE),
  fMaxEvents(500000),
  fEventsPerBin(1000),
  fSignalCounter(0),
  fClusterCounter(0),
  fActiveChambers(72),
  fAllBins(0),
  fAllSigBins(0),
  fAllNSigBins(0),
  fRowsMax(0),
  fPadsMax(0),
  fTimeBinsMax(0),
  fIsDQM(kFALSE),
  fHistOccVsSector(0x0),
  fHistOcc2dVsSector(0x0),
  fHistQVsSector(0x0),
  fHistQmaxVsSector(0x0),
  fOccVec(0x0),
  fOccMaxVec(0x0),
  fOccVecFine(0x0),
  fOccMaxVecFine(0x0)
{
  //
  // default constructor
  //
  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("MinQMax"))      fMinQMax = ((TObjString*)config->GetValue("MinQMax"))->GetString().Atof();
  if (config->GetValue("MaxEvents"))    fMaxEvents = ((TObjString*)config->GetValue("MaxEvents"))->GetString().Atoi();
  if (config->GetValue("EventsPerBin")) fEventsPerBin = ((TObjString*)config->GetValue("EventsPerBin"))->GetString().Atoi();
  if (config->GetValue("RequireNeighbouringPad")) fRequireNeighbouringPad = ((TObjString*)config->GetValue("RequireNeighbouringPad"))->GetString().Atoi();
  for (Int_t i=0; i<72; ++i) {fActiveChambers.SetBitNumber(i,kTRUE);}
}

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

  return *this;
}


//_____________________________________________________________________
AliTPCdataQA::~AliTPCdataQA() /*FOLD00*/
{
  //
  // destructor
  //

  // do not delete fMapping, because we do not own it.
  // do not delete fMapping, because we do not own it.
  // do not delete fNoise and fPedestal, because we do not own them.

  delete fNLocalMaxima;
  delete fMaxCharge;
  delete fMeanCharge;
  delete fNoThreshold;
  delete fNTimeBins;
  delete fNPads;
  delete fTimePosition;
  delete fOverThreshold10;
  delete fOverThreshold20;
  delete fOverThreshold30;
  delete fHistQVsTimeSideA;
  delete fHistQVsTimeSideC;
  delete fHistQMaxVsTimeSideA;
  delete fHistQMaxVsTimeSideC;
  delete fHistOccupancyVsEvent;
  delete fHistNclustersVsEvent;

  // DQM
  delete fHistOccVsSector;
  delete fHistOcc2dVsSector;
  delete fHistQVsSector;
  delete fHistQmaxVsSector;
  delete fOccVec;
  delete fOccMaxVec;
  delete fOccVecFine;
  delete fOccMaxVecFine;
  
  for (Int_t iRow = 0; iRow < fRowsMax; iRow++) {
    delete [] fAllBins[iRow];
    delete [] fAllSigBins[iRow];
  }  
  delete [] fAllBins;
  delete [] fAllSigBins;
  delete [] fAllNSigBins;
}

//_____________________________________________________________________
TH1F* AliTPCdataQA::GetHistOccupancyVsEvent()
{
  //
  // Create Occupancy vs event histogram
  // (we create this histogram differently then the other histograms
  //  because this we want to be able to access and copy
  //  from AliTPCQAMakerRec before it normally would be created)
  //
  if(!fHistOccupancyVsEvent) {

    Int_t nBins = fMaxEvents/fEventsPerBin;
    fHistOccupancyVsEvent = new TH1F("hOccupancyVsEvent", "Occupancy vs event number (~time); Event number; Occupancy", nBins, 0, nBins*fEventsPerBin);
    fHistOccupancyVsEvent->SetDirectory(0);
  }
  
  return fHistOccupancyVsEvent;
}

//_____________________________________________________________________
TH1F* AliTPCdataQA::GetHistNclustersVsEvent()
{
  //
  // Create Nclusters vs event histogram
  // (we create this histogram differently then the other histograms
  //  because this we want to be able to access and copy
  //  from AliTPCQAMakerRec before it normally would be created)
  //
  if(!fHistNclustersVsEvent) {

    Int_t nBins = fMaxEvents/fEventsPerBin;
    fHistNclustersVsEvent = new TH1F("hNclustersVsEvent", "Nclusters vs event number (~time); Event number; Nclusters per event", nBins, 0, nBins*fEventsPerBin);
    fHistNclustersVsEvent->SetDirectory(0);
  }
  
  return fHistNclustersVsEvent;
}

//_____________________________________________________________________
void AliTPCdataQA::UpdateEventHistograms()
{
  // Update histograms that display occupancy and 
  // number of clusters as a function of number of 
  // events
  if (!fHistOccupancyVsEvent)
    GetHistOccupancyVsEvent();
  if (!fHistNclustersVsEvent)
    GetHistNclustersVsEvent();
  
  if(fEventCounter > fMaxEvents) {
    
    // we have to expand the histogram to handle the larger number of
    // events. The way it is done now is to double the range and the
    // number of events per bin (so the number of histogram bins stays
    // constant)
    fEventsPerBin *= 2;
    fMaxEvents *= 2;

    // Change histogram limits
    const Int_t nBins = fHistOccupancyVsEvent->GetXaxis()->GetNbins();
    fHistOccupancyVsEvent->GetXaxis()->Set(nBins, fHistOccupancyVsEvent->GetXaxis()->GetNbins(), fMaxEvents);
    fHistNclustersVsEvent->GetXaxis()->Set(nBins, fHistNclustersVsEvent->GetXaxis()->GetNbins(), fMaxEvents);

    // Rebin the histogram
    for(Int_t bin = 1; bin <= nBins; bin+=2) {

      Int_t newBin = TMath::Nint(Float_t(bin+1)/2.0);
      Float_t newContent = (fHistOccupancyVsEvent->GetBinContent(bin)+
			    fHistOccupancyVsEvent->GetBinContent(bin+1))/2.0;
      fHistOccupancyVsEvent->SetBinContent(newBin, newContent); 

      newContent = (fHistNclustersVsEvent->GetBinContent(bin)+
		    fHistNclustersVsEvent->GetBinContent(bin+1))/2.0;
      fHistNclustersVsEvent->SetBinContent(newBin, newContent); 
    }

    // Set the remaining bins to 0
    Int_t lastHalf = nBins/2 +1;
    for(Int_t bin = lastHalf; bin <= nBins; bin++) {

      fHistOccupancyVsEvent->SetBinContent(bin, 0); 
      fHistNclustersVsEvent->SetBinContent(bin, 0); 
    }

    // In this case we should nut update but wait untill the new
    // number of events per bin is reached!
    return;
  }

  const Int_t bin = TMath::Nint(Float_t(fEventCounter)/fEventsPerBin);

  Float_t averageOccupancy =
    Float_t(fSignalCounter)/fEventsPerBin/(fLastTimeBin - fFirstTimeBin +1.0)
    / 570132.0; // 570,132 is number of pads
  fHistOccupancyVsEvent->SetBinContent(bin, averageOccupancy);
  fSignalCounter = 0;
  
  Float_t averageNclusters =
    Float_t(fClusterCounter)/fEventsPerBin;
  fHistNclustersVsEvent->SetBinContent(bin, averageNclusters);
  fClusterCounter = 0;
}

//_____________________________________________________________________
Bool_t AliTPCdataQA::ProcessEvent(AliTPCRawStreamV3 *const rawStreamV3)
{
  //
  // Event Processing loop - AliTPCRawStreamV3
  //
  Bool_t withInput = kFALSE;
  Int_t nSignals = 0;
  Int_t lastSector = -1;

  Init();
  
  while ( rawStreamV3->NextDDL() ){

    while ( rawStreamV3->NextChannel() ){
    
      Int_t iSector = rawStreamV3->GetSector(); //  current sector
      Int_t iRow    = rawStreamV3->GetRow();    //  current row
      Int_t iPad    = rawStreamV3->GetPad();    //  current pad
      Int_t iPatch  = rawStreamV3->GetPatchIndex(); //  current patch
      Int_t iBranch = rawStreamV3->GetBranch();    //  current branch
      if (iRow<0 || iPad<0) continue;
      // Call local maxima finder if the data is in a new sector
      if(iSector != lastSector) {
        
        if(nSignals>0)
          FindLocalMaxima(lastSector);
        
        CleanArrays();
        lastSector = iSector;
        nSignals = 0;
      }
      
      while ( rawStreamV3->NextBunch() ){

        Int_t  startTbin    = (Int_t)rawStreamV3->GetStartTimeBin();
        Int_t  bunchlength  = (Int_t)rawStreamV3->GetBunchLength();
        const UShort_t *sig = rawStreamV3->GetSignals();
        
        for (Int_t iTimeBin = 0; iTimeBin<bunchlength; iTimeBin++){
          Float_t signal=(Float_t)sig[iTimeBin];
          nSignals += Update(iSector,iRow,iPad,startTbin--,signal, iPatch, iBranch);
          withInput = kTRUE;
        }
      }
    }
  }
    
  if (lastSector>=0&&nSignals>0)  
    FindLocalMaxima(lastSector);

  CleanArrays();
  
  return withInput;
}

//_____________________________________________________________________
Bool_t AliTPCdataQA::ProcessEvent(AliRawReader *const rawReader)
{
  //
  //  Event processing loop - AliRawReader
  //
  AliTPCRawStreamV3 rawStreamV3(rawReader,(AliAltroMapping**)fMapping);
  Bool_t res=ProcessEvent(&rawStreamV3);
  if(res) {
    fEventCounter++; // only increment event counter if there is TPC data

    if(fEventCounter%fEventsPerBin==0) 
      UpdateEventHistograms();
  }
  return res;
}

//_____________________________________________________________________
Bool_t AliTPCdataQA::ProcessEvent(eventHeaderStruct *const event)
{
  //
  //  process date event
  //

  AliRawReaderDate rawReader((void*)event);
  Bool_t result=ProcessEvent(&rawReader);
  return result;
}



//_____________________________________________________________________
void AliTPCdataQA::DumpToFile(const Char_t *filename, const Char_t *dir, Bool_t append) /*FOLD00*/
{
  //
  //  Write class to file
  //

  TString sDir(dir);
  TString option;

  if ( append )
    option = "update";
  else
    option = "recreate";

  TDirectory *backup = gDirectory;
  TFile f(filename,option.Data());
  f.cd();
  if ( !sDir.IsNull() ){
    f.mkdir(sDir.Data());
    f.cd(sDir);
  }
  this->Write();
  f.Close();

  if ( backup ) backup->cd();
}


//_____________________________________________________________________
Int_t AliTPCdataQA::Update(const Int_t iSector, /*FOLD00*/
			   const Int_t iRow,
			   const Int_t iPad,
			   const Int_t iTimeBin,
			   Float_t signal,
			   const Int_t iPatch,
			   const Int_t iBranch)
{
  //
  // Signal filling method
  //
  
  if (!fActiveChambers[iSector]) return 0;
  //
  // TimeBin cut
  //
  if (iTimeBin<fFirstTimeBin) return 0;
  if (iTimeBin>fLastTimeBin) return 0;
  
  // if pedestal calibrations are loaded subtract pedestals
  if(fPedestal) {

    Float_t ped = fPedestal->GetCalROC(iSector)->GetValue(iRow, iPad);
    // Don't use data from pads where pedestals are abnormally small or large
    if(ped<10 || ped>90)
      return 0;
    signal -= ped;
  }
  
  if(fIsDQM) {

    fOccVec->GetArray()[iSector] += 1.0;
    // To change before committing
    if(iPatch>=0 && iBranch>=0 && iPatch<=5 && iBranch <= 1)
      fOccVecFine->GetArray()[(iSector%36)*12+iPatch*2+iBranch] += 1.0;
  } else {
    // In fNoThreshold we fill all data to estimate the ZS volume
    Float_t count = fNoThreshold->GetCalROC(iSector)->GetValue(iRow, iPad);
    fNoThreshold->GetCalROC(iSector)->SetValue(iRow, iPad,count+1);
  }

  // Require at least 3 ADC channels
  if (signal < fAdcMin)
    return 0;

  // if noise calibrations are loaded require at least 3*sigmaNoise
  if(fNoise) {
    
    Float_t noise = fNoise->GetCalROC(iSector)->GetValue(iRow, iPad);
    
    if(signal < noise*3.0)
      return 0;
  }

  //
  // This signal is ok and we store it in the cluster map
  //

  SetExpandDigit(iRow, iPad, iTimeBin, signal);

  fSignalCounter++;
  
  return 1; // signal was accepted
}

//_____________________________________________________________________
void AliTPCdataQA::FindLocalMaxima(const Int_t iSector)
{
  //
  // This method is called after the data from each sector has been
  // exapanded into an array
  // Loop over the signals and identify local maxima and fill the
  // calibration objects with the information
  //

  if (!fActiveChambers[iSector]) return;
  
  Int_t nLocalMaxima = 0;
  const Int_t maxTimeBin = fTimeBinsMax+4; // Used to step between neighboring pads 
                                           // Because we have tha pad-time data in a 
                                           // 1d array

  for (Int_t iRow = 0; iRow < fRowsMax; iRow++) {

    Float_t* allBins = fAllBins[iRow];
    Int_t* sigBins   = fAllSigBins[iRow];
    const Int_t nSigBins   = fAllNSigBins[iRow];
    
    for (Int_t iSig = 0; iSig < nSigBins; iSig++) {

      Int_t bin  = sigBins[iSig];
      Float_t *b = &allBins[bin];

      //
      // Now we check if this is a local maximum
      //

      Float_t qMax = b[0];

      // First check that the charge is bigger than the threshold
      if (qMax<fMinQMax) 
	continue;
      
      // Require at least one neighboring pad with signal
      if (fRequireNeighbouringPad && (b[-maxTimeBin]+b[maxTimeBin]<=0) ) continue;

      // Require at least one neighboring time bin with signal
      if (b[-1]+b[1]<=0) continue;
      
      //
      // Check that this is a local maximum
      // Note that the checking is done so that if 2 charges has the same
      // qMax then only 1 cluster is generated 
      // (that is why there is BOTH > and >=)
      //
      if (b[-maxTimeBin]   >= qMax) continue;
      if (b[-1  ]          >= qMax) continue; 
      if (b[+maxTimeBin]   > qMax)  continue; 
      if (b[+1  ]          > qMax)  continue; 
      if (b[-maxTimeBin-1] >= qMax) continue;
      if (b[+maxTimeBin-1] >= qMax) continue; 
      if (b[+maxTimeBin+1] > qMax)  continue; 
      if (b[-maxTimeBin+1] >= qMax) continue;
      
      //
      // Now we accept the local maximum and fill the calibration/data objects
      //
      ++nLocalMaxima;

      Int_t iPad, iTimeBin;
      GetPadAndTimeBin(bin, iPad, iTimeBin);
      
      if(!fIsDQM) {
	Float_t count = fNLocalMaxima->GetCalROC(iSector)->GetValue(iRow, iPad);
	fNLocalMaxima->GetCalROC(iSector)->SetValue(iRow, iPad, count+1);
	
	count = fTimePosition->GetCalROC(iSector)->GetValue(iRow, iPad);
	fTimePosition->GetCalROC(iSector)->SetValue(iRow, iPad, count+iTimeBin);
      
	Float_t charge = fMaxCharge->GetCalROC(iSector)->GetValue(iRow, iPad);
	fMaxCharge->GetCalROC(iSector)->SetValue(iRow, iPad, charge + qMax);
	
	if(qMax>=10) {
	  count = fOverThreshold10->GetCalROC(iSector)->GetValue(iRow, iPad);
	  fOverThreshold10->GetCalROC(iSector)->SetValue(iRow, iPad, count+1);
	}
	if(qMax>=20) {
	  count = fOverThreshold20->GetCalROC(iSector)->GetValue(iRow, iPad);
	  fOverThreshold20->GetCalROC(iSector)->SetValue(iRow, iPad, count+1);
	}
	if(qMax>=30) {
	  count = fOverThreshold30->GetCalROC(iSector)->GetValue(iRow, iPad);
	  fOverThreshold30->GetCalROC(iSector)->SetValue(iRow, iPad, count+1);
	}
      }

      //
      // Calculate the total charge as the sum over the region:
      //
      //    o o o o o
      //    o i i i o
      //    o i C i o
      //    o i i i o
      //    o o o o o
      //
      // with qmax at the center C.
      //
      // The inner charge (i) we always add, but we only add the outer
      // charge (o) if the neighboring inner bin (i) has a signal.
      //
      Int_t minP = 0, maxP = 0, minT = 0, maxT = 0;
      Float_t qTot = qMax;
      for(Int_t i = -1; i<=1; i++) {
	for(Int_t j = -1; j<=1; j++) {
	  
	  if(i==0 && j==0)
	    continue;
	  
	  Float_t charge1 = GetQ(b, i, j, maxTimeBin, minT, maxT, minP, maxP);
	  qTot += charge1;
	  if(charge1>0) {
	    // see if the next neighbor is also above threshold
	    if(i*j==0) {
	      qTot += GetQ(b, 2*i, 2*j, maxTimeBin, minT, maxT, minP, maxP); 
	    } else {
	      // we are in a diagonal corner
	      qTot += GetQ(b,   i, 2*j, maxTimeBin, minT, maxT, minP, maxP); 
	      qTot += GetQ(b, 2*i,   j, maxTimeBin, minT, maxT, minP, maxP); 
	      qTot += GetQ(b, 2*i, 2*j, maxTimeBin, minT, maxT, minP, maxP); 
	    }
	  }
	}
      }
      
      if(fIsDQM) {
	fHistQVsSector->Fill(iSector, qTot);
	fHistQmaxVsSector->Fill(iSector, qMax);
      } else {
	Float_t charge = fMeanCharge->GetCalROC(iSector)->GetValue(iRow, iPad);
	fMeanCharge->GetCalROC(iSector)->SetValue(iRow, iPad, charge + qTot);
	
	Float_t count = fNTimeBins->GetCalROC(iSector)->GetValue(iRow, iPad);
	fNTimeBins->GetCalROC(iSector)->SetValue(iRow, iPad, count + maxT-minT+1);
	
	count = fNPads->GetCalROC(iSector)->GetValue(iRow, iPad);
	fNPads->GetCalROC(iSector)->SetValue(iRow, iPad, count + maxP-minP+1);
      
	if((iSector%36)<18) { // A side
	  fHistQVsTimeSideA->Fill(iTimeBin, qTot);
	  fHistQMaxVsTimeSideA->Fill(iTimeBin, qMax);
	} else {
	  fHistQVsTimeSideC->Fill(iTimeBin, qTot);
	  fHistQMaxVsTimeSideC->Fill(iTimeBin, qMax);      
	}
      }
    } // end loop over signals
  } // end loop over rows
  
  fClusterCounter += nLocalMaxima;
}

//_____________________________________________________________________
void AliTPCdataQA::Analyse()
{
  //
  //  Calculate calibration constants
  //
  
  AliInfo("Analyse called");

  if(fIsDQM == kTRUE) {
    
    AliInfo("DQM flas is set -> No 2d information to analyze");
    return;
  }

  if(fIsAnalysed == kTRUE) {
    
    AliInfo("No new data since Analyse was called last time");
    return;
  }

  if(fEventCounter==0) {
    
      AliInfo("EventCounter == 0, Cannot analyse");
    return;
  }
  
  Int_t nTimeBins = fLastTimeBin - fFirstTimeBin +1;
  AliInfo(Form("EventCounter: %d , TimeBins: %d", fEventCounter, nTimeBins));

  Float_t normalization = 1.0 / Float_t(fEventCounter * nTimeBins);
  fNoThreshold->Multiply(normalization);  
  
  fMeanCharge->Divide(fNLocalMaxima);
  fMaxCharge->Divide(fNLocalMaxima);
  fNTimeBins->Divide(fNLocalMaxima);
  fNPads->Divide(fNLocalMaxima);
  fTimePosition->Divide(fNLocalMaxima);

  fIsAnalysed = kTRUE;
}


//_____________________________________________________________________
void AliTPCdataQA::MakeTree(const char *fname) const {
  //
  // Export result to the tree -located in the file
  // This file can be analyzed using AliTPCCalibViewer
  // 
  AliTPCPreprocessorOnline preprocesor;

  if (fNLocalMaxima) preprocesor.AddComponent(fNLocalMaxima);
  if (fMaxCharge) preprocesor.AddComponent(fMaxCharge);  
  if (fMeanCharge) preprocesor.AddComponent(fMeanCharge);  
  if (fNoThreshold) preprocesor.AddComponent(fNoThreshold);
  if (fNTimeBins) preprocesor.AddComponent(fNTimeBins);
  if (fNPads) preprocesor.AddComponent(fNPads);
  if (fTimePosition) preprocesor.AddComponent(fTimePosition);
  if (fOverThreshold10) preprocesor.AddComponent(fOverThreshold10);
  if (fOverThreshold20) preprocesor.AddComponent(fOverThreshold20);
  if (fOverThreshold30) preprocesor.AddComponent(fOverThreshold30);

  preprocesor.DumpToFile(fname);  
}


//_____________________________________________________________________
void AliTPCdataQA::MakeArrays(){
  //
  // The arrays for expanding the raw data are defined and 
  // som parameters are intialised
  //
  AliTPCROC * roc = AliTPCROC::Instance();
  //
  // To make the array big enough for all sectors we take 
  // the dimensions from the outer row of an OROC (the last sector)
  //
  fRowsMax     = roc->GetNRows(roc->GetNSector()-1);
  fPadsMax     = roc->GetNPads(roc->GetNSector()-1,fRowsMax-1);
  fTimeBinsMax = fLastTimeBin - fFirstTimeBin +1; 

  //
  // Since we have added 2 pads (TimeBins) before and after the real pads (TimeBins) 
  // to make sure that we can always query the exanded table even when the 
  // max is on the edge
  //

 
  fAllBins = new Float_t*[fRowsMax];
  fAllSigBins = new Int_t*[fRowsMax];
  fAllNSigBins = new Int_t[fRowsMax];

  for (Int_t iRow = 0; iRow < fRowsMax; iRow++) {
    //
    Int_t maxBin = (fTimeBinsMax+4)*(fPadsMax+4);  
    fAllBins[iRow] = new Float_t[maxBin];
    memset(fAllBins[iRow],0,sizeof(Float_t)*maxBin); // set all values to 0
    fAllSigBins[iRow] = new Int_t[maxBin];
    fAllNSigBins[iRow] = 0;
  }
}


//_____________________________________________________________________
void AliTPCdataQA::CleanArrays(){
  //
  //
  //

  for (Int_t iRow = 0; iRow < fRowsMax; iRow++) {

    // To speed up the performance by a factor 2 on cosmic data (and
    // presumably pp data as well) where the ocupancy is low, the
    // memset is only called if there is more than 1000 signals for a
    // row (of the order 1% occupancy)
    if(fAllNSigBins[iRow]<1000) {
      
      Float_t* allBins = fAllBins[iRow];
      Int_t* sigBins   = fAllSigBins[iRow];
      const Int_t nSignals = fAllNSigBins[iRow];
      for(Int_t i = 0; i < nSignals; i++)
	allBins[sigBins[i]]=0;      
    } else {

      Int_t maxBin = (fTimeBinsMax+4)*(fPadsMax+4); 
      memset(fAllBins[iRow],0,sizeof(Float_t)*maxBin);
    }

    fAllNSigBins[iRow]=0;
  }
}

//_____________________________________________________________________
void AliTPCdataQA::GetPadAndTimeBin(Int_t bin, Int_t& iPad, Int_t& iTimeBin){
  //
  // Return pad and timebin for a given bin
  //
  
  //  Int_t bin = iPad*(fTimeBinsMax+4)+iTimeBin;
  iTimeBin  = bin%(fTimeBinsMax+4);
  iPad      = (bin-iTimeBin)/(fTimeBinsMax+4);

  iPad     -= 2;
  iTimeBin -= 2;
  iTimeBin += fFirstTimeBin;

  R__ASSERT(iPad>=0 && iPad<=fPadsMax);
  R__ASSERT(iTimeBin>=fFirstTimeBin && iTimeBin<=fLastTimeBin);
}

//_____________________________________________________________________
void AliTPCdataQA::SetExpandDigit(const Int_t iRow, Int_t iPad, 
				  Int_t iTimeBin, const Float_t signal) 
{
  //
  // 
  //
  R__ASSERT(iRow>=0 && iRow<fRowsMax);
  R__ASSERT(iPad>=0 && iPad<=fPadsMax);
  R__ASSERT(iTimeBin>=fFirstTimeBin && iTimeBin<=fLastTimeBin);
  
  iTimeBin -= fFirstTimeBin;
  iPad     += 2;
  iTimeBin += 2;
  
  Int_t bin = iPad*(fTimeBinsMax+4)+iTimeBin;
  fAllBins[iRow][bin] = signal;
  fAllSigBins[iRow][fAllNSigBins[iRow]] = bin;
  fAllNSigBins[iRow]++;
}

//______________________________________________________________________________
Float_t AliTPCdataQA::GetQ(const Float_t* adcArray, const Int_t time, 
			   const Int_t pad, const Int_t maxTimeBins, 
			   Int_t& timeMin, Int_t& timeMax, 
			   Int_t& padMin,  Int_t& padMax) const
{
  //
  // This methods return the charge in the bin time+pad*maxTimeBins
  // If the charge is above 0 it also updates the padMin, padMax, timeMin
  // and timeMax if necessary
  //
  Float_t charge = adcArray[time + pad*maxTimeBins];
  if(charge > 0) {
    timeMin = TMath::Min(time, timeMin); timeMax = TMath::Max(time, timeMax);
    padMin = TMath::Min(pad, padMin); padMax = TMath::Max(pad, padMax);
  }
  return charge; 
}

//______________________________________________________________________________
void AliTPCdataQA::Streamer(TBuffer &xRuub)
{
  // Automatic schema evolution was first used from revision 4
  // Code based on:
  // http://root.cern.ch/root/roottalk/roottalk02/3207.html

   UInt_t xRuus, xRuuc;
   if (xRuub.IsReading()) {
      Version_t xRuuv = xRuub.ReadVersion(&xRuus, &xRuuc);
      //we use the automatic algorithm for class version > 3
      if (xRuuv > 3) {
	AliTPCdataQA::Class()->ReadBuffer(xRuub, this, xRuuv, xRuus,
					  xRuuc);
	return;
      }
      TH1F::Streamer(xRuub);
      xRuub >> fFirstTimeBin;
      xRuub >> fLastTimeBin;
      xRuub >> fAdcMin;
      xRuub >> fAdcMax;
      xRuub >> fNLocalMaxima;
      xRuub >> fMaxCharge;
      xRuub >> fMeanCharge;
      xRuub >> fNoThreshold;
      xRuub >> fNTimeBins;
      xRuub >> fNPads;
      xRuub >> fTimePosition;
      xRuub >> fEventCounter;
      xRuub >> fIsAnalysed;
      xRuub.CheckByteCount(xRuus, xRuuc, AliTPCdataQA::IsA());
   } else {
     AliTPCdataQA::Class()->WriteBuffer(xRuub,this);
   }
}

//____________________________________________________________________________________________
void AliTPCdataQA::FillOccupancyProfile()
{
  // This has to be filled at the end of the loop over data
  if(!fIsDQM) 
    AliInfo("Method only meaningful for DQM");
  
  for(Int_t i = 0; i < 72; i++) {

    fOccVec->GetArray()[i] /= fOccMaxVec->GetArray()[i];
    fHistOccVsSector->Fill(i, fOccVec->GetArray()[i]);
  }

  const Int_t nBranches = 36*12;
  for(Int_t i = 0; i < nBranches; i++) {

    fOccVecFine->GetArray()[i] /= fOccMaxVecFine->GetArray()[i];

    const Int_t fullSector = Int_t(i/12);

    Int_t branch = i - fullSector*12;
    const Int_t patch = Int_t(branch/2);

    branch -= patch*2;

    fHistOcc2dVsSector->Fill(fullSector+0.5*branch+0.1, patch+0.5, fOccVecFine->GetArray()[i]);
  }
}

//____________________________________________________________________________________________
void AliTPCdataQA::ResetProfiles()
{
  if(!fIsDQM) 
    AliInfo("Method only meaningful for DQM");
  
  if(fHistQVsSector)
    fHistQVsSector->Reset();
  if(fHistQmaxVsSector)
    fHistQmaxVsSector->Reset();
  if(fHistOccVsSector)
    fHistOccVsSector->Reset();
  if(fHistOcc2dVsSector)
    fHistOcc2dVsSector->Reset();

  if(fOccVec)
    for(Int_t i = 0; i < 72; i++)
      fOccVec->GetArray()[i] = 0.0;
  if(fOccVecFine)
    for(Int_t i = 0; i < 36*12; i++)
      fOccVecFine->GetArray()[i] = 0.0;
}

//____________________________________________________________________________________________
void AliTPCdataQA::Init()
{
  //
  // Define the calibration objects the first time Update is called
  // NB! This has to be done first even if the data is rejected by the time
  // cut to make sure that the objects are available in Analyse
  //
  if(!fIsDQM) {
    
    if (!fNLocalMaxima){
      TObjArray configArr(72);
      fNLocalMaxima = new AliTPCCalPad(ConfigArrRocs(&configArr,"NLocalMaxima"));
      fMaxCharge = new AliTPCCalPad(ConfigArrRocs(&configArr,"MaxCharge"));
      fMeanCharge = new AliTPCCalPad(ConfigArrRocs(&configArr,"MeanCharge"));
      fNoThreshold = new AliTPCCalPad(ConfigArrRocs(&configArr,"NoThreshold"));
      fNTimeBins = new AliTPCCalPad(ConfigArrRocs(&configArr,"NTimeBins"));
      fNPads = new AliTPCCalPad(ConfigArrRocs(&configArr,"NPads"));
      fTimePosition = new AliTPCCalPad(ConfigArrRocs(&configArr,"TimePosition"));
      fOverThreshold10 = new AliTPCCalPad(ConfigArrRocs(&configArr,"OverThreshold10"));
      fOverThreshold20 = new AliTPCCalPad(ConfigArrRocs(&configArr,"OverThreshold20"));
      fOverThreshold30 = new AliTPCCalPad(ConfigArrRocs(&configArr,"OverThreshold30"));

      fHistQVsTimeSideA  = new TProfile("hQVsTimeSideA", "Q vs time (side A); Time [Timebin]; Q [ADC ch]", 100, 0, 1000);
      fHistQVsTimeSideA->SetDirectory(0);
      fHistQVsTimeSideC  = new TProfile("hQVsTimeSideC", "Q vs time (side C); Time [Timebin]; Q [ADC ch]", 100, 0, 1000);
      fHistQVsTimeSideC->SetDirectory(0);
      fHistQMaxVsTimeSideA  = new TProfile("hQMaxVsTimeSideA", "Q_{MAX} vs time (side A); Time [Timebin]; Q_{MAX} [ADC ch]", 100, 0, 1000);
      fHistQMaxVsTimeSideA->SetDirectory(0);
      fHistQMaxVsTimeSideC  = new TProfile("hQMaxVsTimeSideC", "Q_{MAX} vs time (side C); Time [Timebin]; Q_{MAX} [ADC ch]", 100, 0, 1000);
      fHistQMaxVsTimeSideC->SetDirectory(0);
    }
  } else { // DQM histograms and array

    if (!fHistOccVsSector) {
      fHistOccVsSector  = new TProfile("hOccVsSector", "Occupancy vs sector; Sector; Occupancy", 72, 0, 72);
      fHistOccVsSector->SetDirectory(0);

      fHistOcc2dVsSector  = new TProfile2D("hOcc2dVsSector", "Occupancy vs sector and patch; Sector; Patch", 72, 0, 36, 6, 0, 6);
      fHistOcc2dVsSector->SetDirectory(0);

      fHistQVsSector  = new TProfile("hQVsSector", "Q vs sector; Sector; Q [ADC ch]", 72, 0, 72);
      fHistQVsSector->SetDirectory(0);

      fHistQmaxVsSector  = new TProfile("hQmaxVsSector", "Qmax vs sector; Sector; Qmax [ADC ch]", 72, 0, 72);
      fHistQmaxVsSector->SetDirectory(0);

      fOccVec = new TArrayD(72);
      for(Int_t i = 0; i < 72; i++)
        fOccVec->GetArray()[i] = 0;

      fOccMaxVec = new TArrayD(72);
      const Double_t nTimeBins = fLastTimeBin - fFirstTimeBin +1;
      for(Int_t i = 0; i < 72; i++)

        if(i<36) // IROCs (5504 pads)
          fOccMaxVec->GetArray()[i] = nTimeBins*5504;
        else     // OROCs (9984 pads)
          fOccMaxVec->GetArray()[i] = nTimeBins*9984;

      // 12 branches for each full sector
        const Int_t nBranches = 36*12;
        fOccVecFine = new TArrayD(nBranches);
        for(Int_t i = 0; i < nBranches; i++)
          fOccVecFine->GetArray()[i] = 0;

      // Pads per patch same for all sectors
        Int_t nPads0[6] = {1152, 1536, 1152, 1280, 1280, 1280};
        Int_t nPads1[6] = {1152, 1664, 1152, 1280, 1280, 1280};

        fOccMaxVecFine = new TArrayD(nBranches);
        for(Int_t i = 0; i < nBranches; i++) {

          const Int_t fullSector = Int_t(i/12);
          Int_t branch = i - fullSector*12;
          R__ASSERT(branch>=0 && branch<12);

          const Int_t patch = Int_t(branch/2);
          branch -= patch*2;

          R__ASSERT(branch>=0 && branch<2);
          if(branch == 0)
            fOccMaxVecFine->GetArray()[i] = nTimeBins*nPads0[patch];
          else     // OROCs (9984 pads)
      fOccMaxVecFine->GetArray()[i] = nTimeBins*nPads1[patch];
        }
    }
  }
  // Make the arrays for expanding the data
  
  if (!fAllBins)
    MakeArrays();
  
  //
  // If Analyse has been previously called we need now to denormalize the data
  // as more data is coming
  //
  if(fIsAnalysed == kTRUE && !fIsDQM) {

    const Int_t nTimeBins = fLastTimeBin - fFirstTimeBin +1;
    const Float_t denormalization = Float_t(fEventCounter * nTimeBins);
    fNoThreshold->Multiply(denormalization);

    fMeanCharge->Multiply(fNLocalMaxima);
    fMaxCharge->Multiply(fNLocalMaxima);
    fNTimeBins->Multiply(fNLocalMaxima);
    fNPads->Multiply(fNLocalMaxima);
    fTimePosition->Multiply(fNLocalMaxima);
    fIsAnalysed = kFALSE;
  }
}

//____________________________________________________________________________________________
void AliTPCdataQA::ResetData()
{
  //
  // reset all data
  //
  if(!fIsDQM) {
    
    if (fNLocalMaxima){
      fNoThreshold->Reset();
      fNLocalMaxima->Reset();
      fMeanCharge->Reset();
      fMaxCharge->Reset();
      fNTimeBins->Reset();
      fNPads->Reset();
      fTimePosition->Reset();
      fOverThreshold10->Reset();
      fOverThreshold20->Reset();
      fOverThreshold30->Reset();
      
      fHistQVsTimeSideA->Reset();
      fHistQVsTimeSideC->Reset();
      fHistQMaxVsTimeSideA->Reset();
      fHistQMaxVsTimeSideC->Reset();

      fIsAnalysed = kFALSE;
      
    }
  }
  
  fEventCounter=0;
  fClusterCounter=0;
}

TObjArray *AliTPCdataQA::ConfigArrRocs(TObjArray *arr, const Text_t* name)
{
  //
  // GetArray with confiured ROCs
  //

  arr->Clear();
  arr->SetName(name);
  for (Int_t i=0; i<72; ++i){
    if (fActiveChambers[i]) arr->AddAt(new AliTPCCalROC(i),i);
  }
  return arr;
 AliTPCdataQA.cxx:1
 AliTPCdataQA.cxx:2
 AliTPCdataQA.cxx:3
 AliTPCdataQA.cxx:4
 AliTPCdataQA.cxx:5
 AliTPCdataQA.cxx:6
 AliTPCdataQA.cxx:7
 AliTPCdataQA.cxx:8
 AliTPCdataQA.cxx:9
 AliTPCdataQA.cxx:10
 AliTPCdataQA.cxx:11
 AliTPCdataQA.cxx:12
 AliTPCdataQA.cxx:13
 AliTPCdataQA.cxx:14
 AliTPCdataQA.cxx:15
 AliTPCdataQA.cxx:16
 AliTPCdataQA.cxx:17
 AliTPCdataQA.cxx:18
 AliTPCdataQA.cxx:19
 AliTPCdataQA.cxx:20
 AliTPCdataQA.cxx:21
 AliTPCdataQA.cxx:22
 AliTPCdataQA.cxx:23
 AliTPCdataQA.cxx:24
 AliTPCdataQA.cxx:25
 AliTPCdataQA.cxx:26
 AliTPCdataQA.cxx:27
 AliTPCdataQA.cxx:28
 AliTPCdataQA.cxx:29
 AliTPCdataQA.cxx:30
 AliTPCdataQA.cxx:31
 AliTPCdataQA.cxx:32
 AliTPCdataQA.cxx:33
 AliTPCdataQA.cxx:34
 AliTPCdataQA.cxx:35
 AliTPCdataQA.cxx:36
 AliTPCdataQA.cxx:37
 AliTPCdataQA.cxx:38
 AliTPCdataQA.cxx:39
 AliTPCdataQA.cxx:40
 AliTPCdataQA.cxx:41
 AliTPCdataQA.cxx:42
 AliTPCdataQA.cxx:43
 AliTPCdataQA.cxx:44
 AliTPCdataQA.cxx:45
 AliTPCdataQA.cxx:46
 AliTPCdataQA.cxx:47
 AliTPCdataQA.cxx:48
 AliTPCdataQA.cxx:49
 AliTPCdataQA.cxx:50
 AliTPCdataQA.cxx:51
 AliTPCdataQA.cxx:52
 AliTPCdataQA.cxx:53
 AliTPCdataQA.cxx:54
 AliTPCdataQA.cxx:55
 AliTPCdataQA.cxx:56
 AliTPCdataQA.cxx:57
 AliTPCdataQA.cxx:58
 AliTPCdataQA.cxx:59
 AliTPCdataQA.cxx:60
 AliTPCdataQA.cxx:61
 AliTPCdataQA.cxx:62
 AliTPCdataQA.cxx:63
 AliTPCdataQA.cxx:64
 AliTPCdataQA.cxx:65
 AliTPCdataQA.cxx:66
 AliTPCdataQA.cxx:67
 AliTPCdataQA.cxx:68
 AliTPCdataQA.cxx:69
 AliTPCdataQA.cxx:70
 AliTPCdataQA.cxx:71
 AliTPCdataQA.cxx:72
 AliTPCdataQA.cxx:73
 AliTPCdataQA.cxx:74
 AliTPCdataQA.cxx:75
 AliTPCdataQA.cxx:76
 AliTPCdataQA.cxx:77
 AliTPCdataQA.cxx:78
 AliTPCdataQA.cxx:79
 AliTPCdataQA.cxx:80
 AliTPCdataQA.cxx:81
 AliTPCdataQA.cxx:82
 AliTPCdataQA.cxx:83
 AliTPCdataQA.cxx:84
 AliTPCdataQA.cxx:85
 AliTPCdataQA.cxx:86
 AliTPCdataQA.cxx:87
 AliTPCdataQA.cxx:88
 AliTPCdataQA.cxx:89
 AliTPCdataQA.cxx:90
 AliTPCdataQA.cxx:91
 AliTPCdataQA.cxx:92
 AliTPCdataQA.cxx:93
 AliTPCdataQA.cxx:94
 AliTPCdataQA.cxx:95
 AliTPCdataQA.cxx:96
 AliTPCdataQA.cxx:97
 AliTPCdataQA.cxx:98
 AliTPCdataQA.cxx:99
 AliTPCdataQA.cxx:100
 AliTPCdataQA.cxx:101
 AliTPCdataQA.cxx:102
 AliTPCdataQA.cxx:103
 AliTPCdataQA.cxx:104
 AliTPCdataQA.cxx:105
 AliTPCdataQA.cxx:106
 AliTPCdataQA.cxx:107
 AliTPCdataQA.cxx:108
 AliTPCdataQA.cxx:109
 AliTPCdataQA.cxx:110
 AliTPCdataQA.cxx:111
 AliTPCdataQA.cxx:112
 AliTPCdataQA.cxx:113
 AliTPCdataQA.cxx:114
 AliTPCdataQA.cxx:115
 AliTPCdataQA.cxx:116
 AliTPCdataQA.cxx:117
 AliTPCdataQA.cxx:118
 AliTPCdataQA.cxx:119
 AliTPCdataQA.cxx:120
 AliTPCdataQA.cxx:121
 AliTPCdataQA.cxx:122
 AliTPCdataQA.cxx:123
 AliTPCdataQA.cxx:124
 AliTPCdataQA.cxx:125
 AliTPCdataQA.cxx:126
 AliTPCdataQA.cxx:127
 AliTPCdataQA.cxx:128
 AliTPCdataQA.cxx:129
 AliTPCdataQA.cxx:130
 AliTPCdataQA.cxx:131
 AliTPCdataQA.cxx:132
 AliTPCdataQA.cxx:133
 AliTPCdataQA.cxx:134
 AliTPCdataQA.cxx:135
 AliTPCdataQA.cxx:136
 AliTPCdataQA.cxx:137
 AliTPCdataQA.cxx:138
 AliTPCdataQA.cxx:139
 AliTPCdataQA.cxx:140
 AliTPCdataQA.cxx:141
 AliTPCdataQA.cxx:142
 AliTPCdataQA.cxx:143
 AliTPCdataQA.cxx:144
 AliTPCdataQA.cxx:145
 AliTPCdataQA.cxx:146
 AliTPCdataQA.cxx:147
 AliTPCdataQA.cxx:148
 AliTPCdataQA.cxx:149
 AliTPCdataQA.cxx:150
 AliTPCdataQA.cxx:151
 AliTPCdataQA.cxx:152
 AliTPCdataQA.cxx:153
 AliTPCdataQA.cxx:154
 AliTPCdataQA.cxx:155
 AliTPCdataQA.cxx:156
 AliTPCdataQA.cxx:157
 AliTPCdataQA.cxx:158
 AliTPCdataQA.cxx:159
 AliTPCdataQA.cxx:160
 AliTPCdataQA.cxx:161
 AliTPCdataQA.cxx:162
 AliTPCdataQA.cxx:163
 AliTPCdataQA.cxx:164
 AliTPCdataQA.cxx:165
 AliTPCdataQA.cxx:166
 AliTPCdataQA.cxx:167
 AliTPCdataQA.cxx:168
 AliTPCdataQA.cxx:169
 AliTPCdataQA.cxx:170
 AliTPCdataQA.cxx:171
 AliTPCdataQA.cxx:172
 AliTPCdataQA.cxx:173
 AliTPCdataQA.cxx:174
 AliTPCdataQA.cxx:175
 AliTPCdataQA.cxx:176
 AliTPCdataQA.cxx:177
 AliTPCdataQA.cxx:178
 AliTPCdataQA.cxx:179
 AliTPCdataQA.cxx:180
 AliTPCdataQA.cxx:181
 AliTPCdataQA.cxx:182
 AliTPCdataQA.cxx:183
 AliTPCdataQA.cxx:184
 AliTPCdataQA.cxx:185
 AliTPCdataQA.cxx:186
 AliTPCdataQA.cxx:187
 AliTPCdataQA.cxx:188
 AliTPCdataQA.cxx:189
 AliTPCdataQA.cxx:190
 AliTPCdataQA.cxx:191
 AliTPCdataQA.cxx:192
 AliTPCdataQA.cxx:193
 AliTPCdataQA.cxx:194
 AliTPCdataQA.cxx:195
 AliTPCdataQA.cxx:196
 AliTPCdataQA.cxx:197
 AliTPCdataQA.cxx:198
 AliTPCdataQA.cxx:199
 AliTPCdataQA.cxx:200
 AliTPCdataQA.cxx:201
 AliTPCdataQA.cxx:202
 AliTPCdataQA.cxx:203
 AliTPCdataQA.cxx:204
 AliTPCdataQA.cxx:205
 AliTPCdataQA.cxx:206
 AliTPCdataQA.cxx:207
 AliTPCdataQA.cxx:208
 AliTPCdataQA.cxx:209
 AliTPCdataQA.cxx:210
 AliTPCdataQA.cxx:211
 AliTPCdataQA.cxx:212
 AliTPCdataQA.cxx:213
 AliTPCdataQA.cxx:214
 AliTPCdataQA.cxx:215
 AliTPCdataQA.cxx:216
 AliTPCdataQA.cxx:217
 AliTPCdataQA.cxx:218
 AliTPCdataQA.cxx:219
 AliTPCdataQA.cxx:220
 AliTPCdataQA.cxx:221
 AliTPCdataQA.cxx:222
 AliTPCdataQA.cxx:223
 AliTPCdataQA.cxx:224
 AliTPCdataQA.cxx:225
 AliTPCdataQA.cxx:226
 AliTPCdataQA.cxx:227
 AliTPCdataQA.cxx:228
 AliTPCdataQA.cxx:229
 AliTPCdataQA.cxx:230
 AliTPCdataQA.cxx:231
 AliTPCdataQA.cxx:232
 AliTPCdataQA.cxx:233
 AliTPCdataQA.cxx:234
 AliTPCdataQA.cxx:235
 AliTPCdataQA.cxx:236
 AliTPCdataQA.cxx:237
 AliTPCdataQA.cxx:238
 AliTPCdataQA.cxx:239
 AliTPCdataQA.cxx:240
 AliTPCdataQA.cxx:241
 AliTPCdataQA.cxx:242
 AliTPCdataQA.cxx:243
 AliTPCdataQA.cxx:244
 AliTPCdataQA.cxx:245
 AliTPCdataQA.cxx:246
 AliTPCdataQA.cxx:247
 AliTPCdataQA.cxx:248
 AliTPCdataQA.cxx:249
 AliTPCdataQA.cxx:250
 AliTPCdataQA.cxx:251
 AliTPCdataQA.cxx:252
 AliTPCdataQA.cxx:253
 AliTPCdataQA.cxx:254
 AliTPCdataQA.cxx:255
 AliTPCdataQA.cxx:256
 AliTPCdataQA.cxx:257
 AliTPCdataQA.cxx:258
 AliTPCdataQA.cxx:259
 AliTPCdataQA.cxx:260
 AliTPCdataQA.cxx:261
 AliTPCdataQA.cxx:262
 AliTPCdataQA.cxx:263
 AliTPCdataQA.cxx:264
 AliTPCdataQA.cxx:265
 AliTPCdataQA.cxx:266
 AliTPCdataQA.cxx:267
 AliTPCdataQA.cxx:268
 AliTPCdataQA.cxx:269
 AliTPCdataQA.cxx:270
 AliTPCdataQA.cxx:271
 AliTPCdataQA.cxx:272
 AliTPCdataQA.cxx:273
 AliTPCdataQA.cxx:274
 AliTPCdataQA.cxx:275
 AliTPCdataQA.cxx:276
 AliTPCdataQA.cxx:277
 AliTPCdataQA.cxx:278
 AliTPCdataQA.cxx:279
 AliTPCdataQA.cxx:280
 AliTPCdataQA.cxx:281
 AliTPCdataQA.cxx:282
 AliTPCdataQA.cxx:283
 AliTPCdataQA.cxx:284
 AliTPCdataQA.cxx:285
 AliTPCdataQA.cxx:286
 AliTPCdataQA.cxx:287
 AliTPCdataQA.cxx:288
 AliTPCdataQA.cxx:289
 AliTPCdataQA.cxx:290
 AliTPCdataQA.cxx:291
 AliTPCdataQA.cxx:292
 AliTPCdataQA.cxx:293
 AliTPCdataQA.cxx:294
 AliTPCdataQA.cxx:295
 AliTPCdataQA.cxx:296
 AliTPCdataQA.cxx:297
 AliTPCdataQA.cxx:298
 AliTPCdataQA.cxx:299
 AliTPCdataQA.cxx:300
 AliTPCdataQA.cxx:301
 AliTPCdataQA.cxx:302
 AliTPCdataQA.cxx:303
 AliTPCdataQA.cxx:304
 AliTPCdataQA.cxx:305
 AliTPCdataQA.cxx:306
 AliTPCdataQA.cxx:307
 AliTPCdataQA.cxx:308
 AliTPCdataQA.cxx:309
 AliTPCdataQA.cxx:310
 AliTPCdataQA.cxx:311
 AliTPCdataQA.cxx:312
 AliTPCdataQA.cxx:313
 AliTPCdataQA.cxx:314
 AliTPCdataQA.cxx:315
 AliTPCdataQA.cxx:316
 AliTPCdataQA.cxx:317
 AliTPCdataQA.cxx:318
 AliTPCdataQA.cxx:319
 AliTPCdataQA.cxx:320
 AliTPCdataQA.cxx:321
 AliTPCdataQA.cxx:322
 AliTPCdataQA.cxx:323
 AliTPCdataQA.cxx:324
 AliTPCdataQA.cxx:325
 AliTPCdataQA.cxx:326
 AliTPCdataQA.cxx:327
 AliTPCdataQA.cxx:328
 AliTPCdataQA.cxx:329
 AliTPCdataQA.cxx:330
 AliTPCdataQA.cxx:331
 AliTPCdataQA.cxx:332
 AliTPCdataQA.cxx:333
 AliTPCdataQA.cxx:334
 AliTPCdataQA.cxx:335
 AliTPCdataQA.cxx:336
 AliTPCdataQA.cxx:337
 AliTPCdataQA.cxx:338
 AliTPCdataQA.cxx:339
 AliTPCdataQA.cxx:340
 AliTPCdataQA.cxx:341
 AliTPCdataQA.cxx:342
 AliTPCdataQA.cxx:343
 AliTPCdataQA.cxx:344
 AliTPCdataQA.cxx:345
 AliTPCdataQA.cxx:346
 AliTPCdataQA.cxx:347
 AliTPCdataQA.cxx:348
 AliTPCdataQA.cxx:349
 AliTPCdataQA.cxx:350
 AliTPCdataQA.cxx:351
 AliTPCdataQA.cxx:352
 AliTPCdataQA.cxx:353
 AliTPCdataQA.cxx:354
 AliTPCdataQA.cxx:355
 AliTPCdataQA.cxx:356
 AliTPCdataQA.cxx:357
 AliTPCdataQA.cxx:358
 AliTPCdataQA.cxx:359
 AliTPCdataQA.cxx:360
 AliTPCdataQA.cxx:361
 AliTPCdataQA.cxx:362
 AliTPCdataQA.cxx:363
 AliTPCdataQA.cxx:364
 AliTPCdataQA.cxx:365
 AliTPCdataQA.cxx:366
 AliTPCdataQA.cxx:367
 AliTPCdataQA.cxx:368
 AliTPCdataQA.cxx:369
 AliTPCdataQA.cxx:370
 AliTPCdataQA.cxx:371
 AliTPCdataQA.cxx:372
 AliTPCdataQA.cxx:373
 AliTPCdataQA.cxx:374
 AliTPCdataQA.cxx:375
 AliTPCdataQA.cxx:376
 AliTPCdataQA.cxx:377
 AliTPCdataQA.cxx:378
 AliTPCdataQA.cxx:379
 AliTPCdataQA.cxx:380
 AliTPCdataQA.cxx:381
 AliTPCdataQA.cxx:382
 AliTPCdataQA.cxx:383
 AliTPCdataQA.cxx:384
 AliTPCdataQA.cxx:385
 AliTPCdataQA.cxx:386
 AliTPCdataQA.cxx:387
 AliTPCdataQA.cxx:388
 AliTPCdataQA.cxx:389
 AliTPCdataQA.cxx:390
 AliTPCdataQA.cxx:391
 AliTPCdataQA.cxx:392
 AliTPCdataQA.cxx:393
 AliTPCdataQA.cxx:394
 AliTPCdataQA.cxx:395
 AliTPCdataQA.cxx:396
 AliTPCdataQA.cxx:397
 AliTPCdataQA.cxx:398
 AliTPCdataQA.cxx:399
 AliTPCdataQA.cxx:400
 AliTPCdataQA.cxx:401
 AliTPCdataQA.cxx:402
 AliTPCdataQA.cxx:403
 AliTPCdataQA.cxx:404
 AliTPCdataQA.cxx:405
 AliTPCdataQA.cxx:406
 AliTPCdataQA.cxx:407
 AliTPCdataQA.cxx:408
 AliTPCdataQA.cxx:409
 AliTPCdataQA.cxx:410
 AliTPCdataQA.cxx:411
 AliTPCdataQA.cxx:412
 AliTPCdataQA.cxx:413
 AliTPCdataQA.cxx:414
 AliTPCdataQA.cxx:415
 AliTPCdataQA.cxx:416
 AliTPCdataQA.cxx:417
 AliTPCdataQA.cxx:418
 AliTPCdataQA.cxx:419
 AliTPCdataQA.cxx:420
 AliTPCdataQA.cxx:421
 AliTPCdataQA.cxx:422
 AliTPCdataQA.cxx:423
 AliTPCdataQA.cxx:424
 AliTPCdataQA.cxx:425
 AliTPCdataQA.cxx:426
 AliTPCdataQA.cxx:427
 AliTPCdataQA.cxx:428
 AliTPCdataQA.cxx:429
 AliTPCdataQA.cxx:430
 AliTPCdataQA.cxx:431
 AliTPCdataQA.cxx:432
 AliTPCdataQA.cxx:433
 AliTPCdataQA.cxx:434
 AliTPCdataQA.cxx:435
 AliTPCdataQA.cxx:436
 AliTPCdataQA.cxx:437
 AliTPCdataQA.cxx:438
 AliTPCdataQA.cxx:439
 AliTPCdataQA.cxx:440
 AliTPCdataQA.cxx:441
 AliTPCdataQA.cxx:442
 AliTPCdataQA.cxx:443
 AliTPCdataQA.cxx:444
 AliTPCdataQA.cxx:445
 AliTPCdataQA.cxx:446
 AliTPCdataQA.cxx:447
 AliTPCdataQA.cxx:448
 AliTPCdataQA.cxx:449
 AliTPCdataQA.cxx:450
 AliTPCdataQA.cxx:451
 AliTPCdataQA.cxx:452
 AliTPCdataQA.cxx:453
 AliTPCdataQA.cxx:454
 AliTPCdataQA.cxx:455
 AliTPCdataQA.cxx:456
 AliTPCdataQA.cxx:457
 AliTPCdataQA.cxx:458
 AliTPCdataQA.cxx:459
 AliTPCdataQA.cxx:460
 AliTPCdataQA.cxx:461
 AliTPCdataQA.cxx:462
 AliTPCdataQA.cxx:463
 AliTPCdataQA.cxx:464
 AliTPCdataQA.cxx:465
 AliTPCdataQA.cxx:466
 AliTPCdataQA.cxx:467
 AliTPCdataQA.cxx:468
 AliTPCdataQA.cxx:469
 AliTPCdataQA.cxx:470
 AliTPCdataQA.cxx:471
 AliTPCdataQA.cxx:472
 AliTPCdataQA.cxx:473
 AliTPCdataQA.cxx:474
 AliTPCdataQA.cxx:475
 AliTPCdataQA.cxx:476
 AliTPCdataQA.cxx:477
 AliTPCdataQA.cxx:478
 AliTPCdataQA.cxx:479
 AliTPCdataQA.cxx:480
 AliTPCdataQA.cxx:481
 AliTPCdataQA.cxx:482
 AliTPCdataQA.cxx:483
 AliTPCdataQA.cxx:484
 AliTPCdataQA.cxx:485
 AliTPCdataQA.cxx:486
 AliTPCdataQA.cxx:487
 AliTPCdataQA.cxx:488
 AliTPCdataQA.cxx:489
 AliTPCdataQA.cxx:490
 AliTPCdataQA.cxx:491
 AliTPCdataQA.cxx:492
 AliTPCdataQA.cxx:493
 AliTPCdataQA.cxx:494
 AliTPCdataQA.cxx:495
 AliTPCdataQA.cxx:496
 AliTPCdataQA.cxx:497
 AliTPCdataQA.cxx:498
 AliTPCdataQA.cxx:499
 AliTPCdataQA.cxx:500
 AliTPCdataQA.cxx:501
 AliTPCdataQA.cxx:502
 AliTPCdataQA.cxx:503
 AliTPCdataQA.cxx:504
 AliTPCdataQA.cxx:505
 AliTPCdataQA.cxx:506
 AliTPCdataQA.cxx:507
 AliTPCdataQA.cxx:508
 AliTPCdataQA.cxx:509
 AliTPCdataQA.cxx:510
 AliTPCdataQA.cxx:511
 AliTPCdataQA.cxx:512
 AliTPCdataQA.cxx:513
 AliTPCdataQA.cxx:514
 AliTPCdataQA.cxx:515
 AliTPCdataQA.cxx:516
 AliTPCdataQA.cxx:517
 AliTPCdataQA.cxx:518
 AliTPCdataQA.cxx:519
 AliTPCdataQA.cxx:520
 AliTPCdataQA.cxx:521
 AliTPCdataQA.cxx:522
 AliTPCdataQA.cxx:523
 AliTPCdataQA.cxx:524
 AliTPCdataQA.cxx:525
 AliTPCdataQA.cxx:526
 AliTPCdataQA.cxx:527
 AliTPCdataQA.cxx:528
 AliTPCdataQA.cxx:529
 AliTPCdataQA.cxx:530
 AliTPCdataQA.cxx:531
 AliTPCdataQA.cxx:532
 AliTPCdataQA.cxx:533
 AliTPCdataQA.cxx:534
 AliTPCdataQA.cxx:535
 AliTPCdataQA.cxx:536
 AliTPCdataQA.cxx:537
 AliTPCdataQA.cxx:538
 AliTPCdataQA.cxx:539
 AliTPCdataQA.cxx:540
 AliTPCdataQA.cxx:541
 AliTPCdataQA.cxx:542
 AliTPCdataQA.cxx:543
 AliTPCdataQA.cxx:544
 AliTPCdataQA.cxx:545
 AliTPCdataQA.cxx:546
 AliTPCdataQA.cxx:547
 AliTPCdataQA.cxx:548
 AliTPCdataQA.cxx:549
 AliTPCdataQA.cxx:550
 AliTPCdataQA.cxx:551
 AliTPCdataQA.cxx:552
 AliTPCdataQA.cxx:553
 AliTPCdataQA.cxx:554
 AliTPCdataQA.cxx:555
 AliTPCdataQA.cxx:556
 AliTPCdataQA.cxx:557
 AliTPCdataQA.cxx:558
 AliTPCdataQA.cxx:559
 AliTPCdataQA.cxx:560
 AliTPCdataQA.cxx:561
 AliTPCdataQA.cxx:562
 AliTPCdataQA.cxx:563
 AliTPCdataQA.cxx:564
 AliTPCdataQA.cxx:565
 AliTPCdataQA.cxx:566
 AliTPCdataQA.cxx:567
 AliTPCdataQA.cxx:568
 AliTPCdataQA.cxx:569
 AliTPCdataQA.cxx:570
 AliTPCdataQA.cxx:571
 AliTPCdataQA.cxx:572
 AliTPCdataQA.cxx:573
 AliTPCdataQA.cxx:574
 AliTPCdataQA.cxx:575
 AliTPCdataQA.cxx:576
 AliTPCdataQA.cxx:577
 AliTPCdataQA.cxx:578
 AliTPCdataQA.cxx:579
 AliTPCdataQA.cxx:580
 AliTPCdataQA.cxx:581
 AliTPCdataQA.cxx:582
 AliTPCdataQA.cxx:583
 AliTPCdataQA.cxx:584
 AliTPCdataQA.cxx:585
 AliTPCdataQA.cxx:586
 AliTPCdataQA.cxx:587
 AliTPCdataQA.cxx:588
 AliTPCdataQA.cxx:589
 AliTPCdataQA.cxx:590
 AliTPCdataQA.cxx:591
 AliTPCdataQA.cxx:592
 AliTPCdataQA.cxx:593
 AliTPCdataQA.cxx:594
 AliTPCdataQA.cxx:595
 AliTPCdataQA.cxx:596
 AliTPCdataQA.cxx:597
 AliTPCdataQA.cxx:598
 AliTPCdataQA.cxx:599
 AliTPCdataQA.cxx:600
 AliTPCdataQA.cxx:601
 AliTPCdataQA.cxx:602
 AliTPCdataQA.cxx:603
 AliTPCdataQA.cxx:604
 AliTPCdataQA.cxx:605
 AliTPCdataQA.cxx:606
 AliTPCdataQA.cxx:607
 AliTPCdataQA.cxx:608
 AliTPCdataQA.cxx:609
 AliTPCdataQA.cxx:610
 AliTPCdataQA.cxx:611
 AliTPCdataQA.cxx:612
 AliTPCdataQA.cxx:613
 AliTPCdataQA.cxx:614
 AliTPCdataQA.cxx:615
 AliTPCdataQA.cxx:616
 AliTPCdataQA.cxx:617
 AliTPCdataQA.cxx:618
 AliTPCdataQA.cxx:619
 AliTPCdataQA.cxx:620
 AliTPCdataQA.cxx:621
 AliTPCdataQA.cxx:622
 AliTPCdataQA.cxx:623
 AliTPCdataQA.cxx:624
 AliTPCdataQA.cxx:625
 AliTPCdataQA.cxx:626
 AliTPCdataQA.cxx:627
 AliTPCdataQA.cxx:628
 AliTPCdataQA.cxx:629
 AliTPCdataQA.cxx:630
 AliTPCdataQA.cxx:631
 AliTPCdataQA.cxx:632
 AliTPCdataQA.cxx:633
 AliTPCdataQA.cxx:634
 AliTPCdataQA.cxx:635
 AliTPCdataQA.cxx:636
 AliTPCdataQA.cxx:637
 AliTPCdataQA.cxx:638
 AliTPCdataQA.cxx:639
 AliTPCdataQA.cxx:640
 AliTPCdataQA.cxx:641
 AliTPCdataQA.cxx:642
 AliTPCdataQA.cxx:643
 AliTPCdataQA.cxx:644
 AliTPCdataQA.cxx:645
 AliTPCdataQA.cxx:646
 AliTPCdataQA.cxx:647
 AliTPCdataQA.cxx:648
 AliTPCdataQA.cxx:649
 AliTPCdataQA.cxx:650
 AliTPCdataQA.cxx:651
 AliTPCdataQA.cxx:652
 AliTPCdataQA.cxx:653
 AliTPCdataQA.cxx:654
 AliTPCdataQA.cxx:655
 AliTPCdataQA.cxx:656
 AliTPCdataQA.cxx:657
 AliTPCdataQA.cxx:658
 AliTPCdataQA.cxx:659
 AliTPCdataQA.cxx:660
 AliTPCdataQA.cxx:661
 AliTPCdataQA.cxx:662
 AliTPCdataQA.cxx:663
 AliTPCdataQA.cxx:664
 AliTPCdataQA.cxx:665
 AliTPCdataQA.cxx:666
 AliTPCdataQA.cxx:667
 AliTPCdataQA.cxx:668
 AliTPCdataQA.cxx:669
 AliTPCdataQA.cxx:670
 AliTPCdataQA.cxx:671
 AliTPCdataQA.cxx:672
 AliTPCdataQA.cxx:673
 AliTPCdataQA.cxx:674
 AliTPCdataQA.cxx:675
 AliTPCdataQA.cxx:676
 AliTPCdataQA.cxx:677
 AliTPCdataQA.cxx:678
 AliTPCdataQA.cxx:679
 AliTPCdataQA.cxx:680
 AliTPCdataQA.cxx:681
 AliTPCdataQA.cxx:682
 AliTPCdataQA.cxx:683
 AliTPCdataQA.cxx:684
 AliTPCdataQA.cxx:685
 AliTPCdataQA.cxx:686
 AliTPCdataQA.cxx:687
 AliTPCdataQA.cxx:688
 AliTPCdataQA.cxx:689
 AliTPCdataQA.cxx:690
 AliTPCdataQA.cxx:691
 AliTPCdataQA.cxx:692
 AliTPCdataQA.cxx:693
 AliTPCdataQA.cxx:694
 AliTPCdataQA.cxx:695
 AliTPCdataQA.cxx:696
 AliTPCdataQA.cxx:697
 AliTPCdataQA.cxx:698
 AliTPCdataQA.cxx:699
 AliTPCdataQA.cxx:700
 AliTPCdataQA.cxx:701
 AliTPCdataQA.cxx:702
 AliTPCdataQA.cxx:703
 AliTPCdataQA.cxx:704
 AliTPCdataQA.cxx:705
 AliTPCdataQA.cxx:706
 AliTPCdataQA.cxx:707
 AliTPCdataQA.cxx:708
 AliTPCdataQA.cxx:709
 AliTPCdataQA.cxx:710
 AliTPCdataQA.cxx:711
 AliTPCdataQA.cxx:712
 AliTPCdataQA.cxx:713
 AliTPCdataQA.cxx:714
 AliTPCdataQA.cxx:715
 AliTPCdataQA.cxx:716
 AliTPCdataQA.cxx:717
 AliTPCdataQA.cxx:718
 AliTPCdataQA.cxx:719
 AliTPCdataQA.cxx:720
 AliTPCdataQA.cxx:721
 AliTPCdataQA.cxx:722
 AliTPCdataQA.cxx:723
 AliTPCdataQA.cxx:724
 AliTPCdataQA.cxx:725
 AliTPCdataQA.cxx:726
 AliTPCdataQA.cxx:727
 AliTPCdataQA.cxx:728
 AliTPCdataQA.cxx:729
 AliTPCdataQA.cxx:730
 AliTPCdataQA.cxx:731
 AliTPCdataQA.cxx:732
 AliTPCdataQA.cxx:733
 AliTPCdataQA.cxx:734
 AliTPCdataQA.cxx:735
 AliTPCdataQA.cxx:736
 AliTPCdataQA.cxx:737
 AliTPCdataQA.cxx:738
 AliTPCdataQA.cxx:739
 AliTPCdataQA.cxx:740
 AliTPCdataQA.cxx:741
 AliTPCdataQA.cxx:742
 AliTPCdataQA.cxx:743
 AliTPCdataQA.cxx:744
 AliTPCdataQA.cxx:745
 AliTPCdataQA.cxx:746
 AliTPCdataQA.cxx:747
 AliTPCdataQA.cxx:748
 AliTPCdataQA.cxx:749
 AliTPCdataQA.cxx:750
 AliTPCdataQA.cxx:751
 AliTPCdataQA.cxx:752
 AliTPCdataQA.cxx:753
 AliTPCdataQA.cxx:754
 AliTPCdataQA.cxx:755
 AliTPCdataQA.cxx:756
 AliTPCdataQA.cxx:757
 AliTPCdataQA.cxx:758
 AliTPCdataQA.cxx:759
 AliTPCdataQA.cxx:760
 AliTPCdataQA.cxx:761
 AliTPCdataQA.cxx:762
 AliTPCdataQA.cxx:763
 AliTPCdataQA.cxx:764
 AliTPCdataQA.cxx:765
 AliTPCdataQA.cxx:766
 AliTPCdataQA.cxx:767
 AliTPCdataQA.cxx:768
 AliTPCdataQA.cxx:769
 AliTPCdataQA.cxx:770
 AliTPCdataQA.cxx:771
 AliTPCdataQA.cxx:772
 AliTPCdataQA.cxx:773
 AliTPCdataQA.cxx:774
 AliTPCdataQA.cxx:775
 AliTPCdataQA.cxx:776
 AliTPCdataQA.cxx:777
 AliTPCdataQA.cxx:778
 AliTPCdataQA.cxx:779
 AliTPCdataQA.cxx:780
 AliTPCdataQA.cxx:781
 AliTPCdataQA.cxx:782
 AliTPCdataQA.cxx:783
 AliTPCdataQA.cxx:784
 AliTPCdataQA.cxx:785
 AliTPCdataQA.cxx:786
 AliTPCdataQA.cxx:787
 AliTPCdataQA.cxx:788
 AliTPCdataQA.cxx:789
 AliTPCdataQA.cxx:790
 AliTPCdataQA.cxx:791
 AliTPCdataQA.cxx:792
 AliTPCdataQA.cxx:793
 AliTPCdataQA.cxx:794
 AliTPCdataQA.cxx:795
 AliTPCdataQA.cxx:796
 AliTPCdataQA.cxx:797
 AliTPCdataQA.cxx:798
 AliTPCdataQA.cxx:799
 AliTPCdataQA.cxx:800
 AliTPCdataQA.cxx:801
 AliTPCdataQA.cxx:802
 AliTPCdataQA.cxx:803
 AliTPCdataQA.cxx:804
 AliTPCdataQA.cxx:805
 AliTPCdataQA.cxx:806
 AliTPCdataQA.cxx:807
 AliTPCdataQA.cxx:808
 AliTPCdataQA.cxx:809
 AliTPCdataQA.cxx:810
 AliTPCdataQA.cxx:811
 AliTPCdataQA.cxx:812
 AliTPCdataQA.cxx:813
 AliTPCdataQA.cxx:814
 AliTPCdataQA.cxx:815
 AliTPCdataQA.cxx:816
 AliTPCdataQA.cxx:817
 AliTPCdataQA.cxx:818
 AliTPCdataQA.cxx:819
 AliTPCdataQA.cxx:820
 AliTPCdataQA.cxx:821
 AliTPCdataQA.cxx:822
 AliTPCdataQA.cxx:823
 AliTPCdataQA.cxx:824
 AliTPCdataQA.cxx:825
 AliTPCdataQA.cxx:826
 AliTPCdataQA.cxx:827
 AliTPCdataQA.cxx:828
 AliTPCdataQA.cxx:829
 AliTPCdataQA.cxx:830
 AliTPCdataQA.cxx:831
 AliTPCdataQA.cxx:832
 AliTPCdataQA.cxx:833
 AliTPCdataQA.cxx:834
 AliTPCdataQA.cxx:835
 AliTPCdataQA.cxx:836
 AliTPCdataQA.cxx:837
 AliTPCdataQA.cxx:838
 AliTPCdataQA.cxx:839
 AliTPCdataQA.cxx:840
 AliTPCdataQA.cxx:841
 AliTPCdataQA.cxx:842
 AliTPCdataQA.cxx:843
 AliTPCdataQA.cxx:844
 AliTPCdataQA.cxx:845
 AliTPCdataQA.cxx:846
 AliTPCdataQA.cxx:847
 AliTPCdataQA.cxx:848
 AliTPCdataQA.cxx:849
 AliTPCdataQA.cxx:850
 AliTPCdataQA.cxx:851
 AliTPCdataQA.cxx:852
 AliTPCdataQA.cxx:853
 AliTPCdataQA.cxx:854
 AliTPCdataQA.cxx:855
 AliTPCdataQA.cxx:856
 AliTPCdataQA.cxx:857
 AliTPCdataQA.cxx:858
 AliTPCdataQA.cxx:859
 AliTPCdataQA.cxx:860
 AliTPCdataQA.cxx:861
 AliTPCdataQA.cxx:862
 AliTPCdataQA.cxx:863
 AliTPCdataQA.cxx:864
 AliTPCdataQA.cxx:865
 AliTPCdataQA.cxx:866
 AliTPCdataQA.cxx:867
 AliTPCdataQA.cxx:868
 AliTPCdataQA.cxx:869
 AliTPCdataQA.cxx:870
 AliTPCdataQA.cxx:871
 AliTPCdataQA.cxx:872
 AliTPCdataQA.cxx:873
 AliTPCdataQA.cxx:874
 AliTPCdataQA.cxx:875
 AliTPCdataQA.cxx:876
 AliTPCdataQA.cxx:877
 AliTPCdataQA.cxx:878
 AliTPCdataQA.cxx:879
 AliTPCdataQA.cxx:880
 AliTPCdataQA.cxx:881
 AliTPCdataQA.cxx:882
 AliTPCdataQA.cxx:883
 AliTPCdataQA.cxx:884
 AliTPCdataQA.cxx:885
 AliTPCdataQA.cxx:886
 AliTPCdataQA.cxx:887
 AliTPCdataQA.cxx:888
 AliTPCdataQA.cxx:889
 AliTPCdataQA.cxx:890
 AliTPCdataQA.cxx:891
 AliTPCdataQA.cxx:892
 AliTPCdataQA.cxx:893
 AliTPCdataQA.cxx:894
 AliTPCdataQA.cxx:895
 AliTPCdataQA.cxx:896
 AliTPCdataQA.cxx:897
 AliTPCdataQA.cxx:898
 AliTPCdataQA.cxx:899
 AliTPCdataQA.cxx:900
 AliTPCdataQA.cxx:901
 AliTPCdataQA.cxx:902
 AliTPCdataQA.cxx:903
 AliTPCdataQA.cxx:904
 AliTPCdataQA.cxx:905
 AliTPCdataQA.cxx:906
 AliTPCdataQA.cxx:907
 AliTPCdataQA.cxx:908
 AliTPCdataQA.cxx:909
 AliTPCdataQA.cxx:910
 AliTPCdataQA.cxx:911
 AliTPCdataQA.cxx:912
 AliTPCdataQA.cxx:913
 AliTPCdataQA.cxx:914
 AliTPCdataQA.cxx:915
 AliTPCdataQA.cxx:916
 AliTPCdataQA.cxx:917
 AliTPCdataQA.cxx:918
 AliTPCdataQA.cxx:919
 AliTPCdataQA.cxx:920
 AliTPCdataQA.cxx:921
 AliTPCdataQA.cxx:922
 AliTPCdataQA.cxx:923
 AliTPCdataQA.cxx:924
 AliTPCdataQA.cxx:925
 AliTPCdataQA.cxx:926
 AliTPCdataQA.cxx:927
 AliTPCdataQA.cxx:928
 AliTPCdataQA.cxx:929
 AliTPCdataQA.cxx:930
 AliTPCdataQA.cxx:931
 AliTPCdataQA.cxx:932
 AliTPCdataQA.cxx:933
 AliTPCdataQA.cxx:934
 AliTPCdataQA.cxx:935
 AliTPCdataQA.cxx:936
 AliTPCdataQA.cxx:937
 AliTPCdataQA.cxx:938
 AliTPCdataQA.cxx:939
 AliTPCdataQA.cxx:940
 AliTPCdataQA.cxx:941
 AliTPCdataQA.cxx:942
 AliTPCdataQA.cxx:943
 AliTPCdataQA.cxx:944
 AliTPCdataQA.cxx:945
 AliTPCdataQA.cxx:946
 AliTPCdataQA.cxx:947
 AliTPCdataQA.cxx:948
 AliTPCdataQA.cxx:949
 AliTPCdataQA.cxx:950
 AliTPCdataQA.cxx:951
 AliTPCdataQA.cxx:952
 AliTPCdataQA.cxx:953
 AliTPCdataQA.cxx:954
 AliTPCdataQA.cxx:955
 AliTPCdataQA.cxx:956
 AliTPCdataQA.cxx:957
 AliTPCdataQA.cxx:958
 AliTPCdataQA.cxx:959
 AliTPCdataQA.cxx:960
 AliTPCdataQA.cxx:961
 AliTPCdataQA.cxx:962
 AliTPCdataQA.cxx:963
 AliTPCdataQA.cxx:964
 AliTPCdataQA.cxx:965
 AliTPCdataQA.cxx:966
 AliTPCdataQA.cxx:967
 AliTPCdataQA.cxx:968
 AliTPCdataQA.cxx:969
 AliTPCdataQA.cxx:970
 AliTPCdataQA.cxx:971
 AliTPCdataQA.cxx:972
 AliTPCdataQA.cxx:973
 AliTPCdataQA.cxx:974
 AliTPCdataQA.cxx:975
 AliTPCdataQA.cxx:976
 AliTPCdataQA.cxx:977
 AliTPCdataQA.cxx:978
 AliTPCdataQA.cxx:979
 AliTPCdataQA.cxx:980
 AliTPCdataQA.cxx:981
 AliTPCdataQA.cxx:982
 AliTPCdataQA.cxx:983
 AliTPCdataQA.cxx:984
 AliTPCdataQA.cxx:985
 AliTPCdataQA.cxx:986
 AliTPCdataQA.cxx:987
 AliTPCdataQA.cxx:988
 AliTPCdataQA.cxx:989
 AliTPCdataQA.cxx:990
 AliTPCdataQA.cxx:991
 AliTPCdataQA.cxx:992
 AliTPCdataQA.cxx:993
 AliTPCdataQA.cxx:994
 AliTPCdataQA.cxx:995
 AliTPCdataQA.cxx:996
 AliTPCdataQA.cxx:997
 AliTPCdataQA.cxx:998
 AliTPCdataQA.cxx:999
 AliTPCdataQA.cxx:1000
 AliTPCdataQA.cxx:1001
 AliTPCdataQA.cxx:1002
 AliTPCdataQA.cxx:1003
 AliTPCdataQA.cxx:1004
 AliTPCdataQA.cxx:1005
 AliTPCdataQA.cxx:1006
 AliTPCdataQA.cxx:1007
 AliTPCdataQA.cxx:1008
 AliTPCdataQA.cxx:1009
 AliTPCdataQA.cxx:1010
 AliTPCdataQA.cxx:1011
 AliTPCdataQA.cxx:1012
 AliTPCdataQA.cxx:1013
 AliTPCdataQA.cxx:1014
 AliTPCdataQA.cxx:1015
 AliTPCdataQA.cxx:1016
 AliTPCdataQA.cxx:1017
 AliTPCdataQA.cxx:1018
 AliTPCdataQA.cxx:1019
 AliTPCdataQA.cxx:1020
 AliTPCdataQA.cxx:1021
 AliTPCdataQA.cxx:1022
 AliTPCdataQA.cxx:1023
 AliTPCdataQA.cxx:1024
 AliTPCdataQA.cxx:1025
 AliTPCdataQA.cxx:1026
 AliTPCdataQA.cxx:1027
 AliTPCdataQA.cxx:1028
 AliTPCdataQA.cxx:1029
 AliTPCdataQA.cxx:1030
 AliTPCdataQA.cxx:1031
 AliTPCdataQA.cxx:1032
 AliTPCdataQA.cxx:1033
 AliTPCdataQA.cxx:1034
 AliTPCdataQA.cxx:1035
 AliTPCdataQA.cxx:1036
 AliTPCdataQA.cxx:1037
 AliTPCdataQA.cxx:1038
 AliTPCdataQA.cxx:1039
 AliTPCdataQA.cxx:1040
 AliTPCdataQA.cxx:1041
 AliTPCdataQA.cxx:1042
 AliTPCdataQA.cxx:1043
 AliTPCdataQA.cxx:1044
 AliTPCdataQA.cxx:1045
 AliTPCdataQA.cxx:1046
 AliTPCdataQA.cxx:1047
 AliTPCdataQA.cxx:1048
 AliTPCdataQA.cxx:1049
 AliTPCdataQA.cxx:1050
 AliTPCdataQA.cxx:1051
 AliTPCdataQA.cxx:1052
 AliTPCdataQA.cxx:1053
 AliTPCdataQA.cxx:1054
 AliTPCdataQA.cxx:1055
 AliTPCdataQA.cxx:1056
 AliTPCdataQA.cxx:1057
 AliTPCdataQA.cxx:1058
 AliTPCdataQA.cxx:1059
 AliTPCdataQA.cxx:1060
 AliTPCdataQA.cxx:1061
 AliTPCdataQA.cxx:1062
 AliTPCdataQA.cxx:1063
 AliTPCdataQA.cxx:1064
 AliTPCdataQA.cxx:1065
 AliTPCdataQA.cxx:1066
 AliTPCdataQA.cxx:1067
 AliTPCdataQA.cxx:1068
 AliTPCdataQA.cxx:1069
 AliTPCdataQA.cxx:1070
 AliTPCdataQA.cxx:1071
 AliTPCdataQA.cxx:1072
 AliTPCdataQA.cxx:1073
 AliTPCdataQA.cxx:1074
 AliTPCdataQA.cxx:1075
 AliTPCdataQA.cxx:1076
 AliTPCdataQA.cxx:1077
 AliTPCdataQA.cxx:1078
 AliTPCdataQA.cxx:1079
 AliTPCdataQA.cxx:1080
 AliTPCdataQA.cxx:1081
 AliTPCdataQA.cxx:1082
 AliTPCdataQA.cxx:1083
 AliTPCdataQA.cxx:1084
 AliTPCdataQA.cxx:1085
 AliTPCdataQA.cxx:1086
 AliTPCdataQA.cxx:1087
 AliTPCdataQA.cxx:1088
 AliTPCdataQA.cxx:1089
 AliTPCdataQA.cxx:1090
 AliTPCdataQA.cxx:1091
 AliTPCdataQA.cxx:1092
 AliTPCdataQA.cxx:1093
 AliTPCdataQA.cxx:1094
 AliTPCdataQA.cxx:1095
 AliTPCdataQA.cxx:1096
 AliTPCdataQA.cxx:1097
 AliTPCdataQA.cxx:1098
 AliTPCdataQA.cxx:1099
 AliTPCdataQA.cxx:1100
 AliTPCdataQA.cxx:1101
 AliTPCdataQA.cxx:1102
 AliTPCdataQA.cxx:1103
 AliTPCdataQA.cxx:1104
 AliTPCdataQA.cxx:1105
 AliTPCdataQA.cxx:1106
 AliTPCdataQA.cxx:1107
 AliTPCdataQA.cxx:1108
 AliTPCdataQA.cxx:1109
 AliTPCdataQA.cxx:1110
 AliTPCdataQA.cxx:1111
 AliTPCdataQA.cxx:1112
 AliTPCdataQA.cxx:1113
 AliTPCdataQA.cxx:1114
 AliTPCdataQA.cxx:1115
 AliTPCdataQA.cxx:1116
 AliTPCdataQA.cxx:1117
 AliTPCdataQA.cxx:1118
 AliTPCdataQA.cxx:1119
 AliTPCdataQA.cxx:1120
 AliTPCdataQA.cxx:1121
 AliTPCdataQA.cxx:1122
 AliTPCdataQA.cxx:1123
 AliTPCdataQA.cxx:1124
 AliTPCdataQA.cxx:1125
 AliTPCdataQA.cxx:1126
 AliTPCdataQA.cxx:1127
 AliTPCdataQA.cxx:1128
 AliTPCdataQA.cxx:1129
 AliTPCdataQA.cxx:1130
 AliTPCdataQA.cxx:1131
 AliTPCdataQA.cxx:1132
 AliTPCdataQA.cxx:1133
 AliTPCdataQA.cxx:1134
 AliTPCdataQA.cxx:1135
 AliTPCdataQA.cxx:1136
 AliTPCdataQA.cxx:1137
 AliTPCdataQA.cxx:1138
 AliTPCdataQA.cxx:1139
 AliTPCdataQA.cxx:1140
 AliTPCdataQA.cxx:1141
 AliTPCdataQA.cxx:1142
 AliTPCdataQA.cxx:1143
 AliTPCdataQA.cxx:1144
 AliTPCdataQA.cxx:1145
 AliTPCdataQA.cxx:1146
 AliTPCdataQA.cxx:1147
 AliTPCdataQA.cxx:1148
 AliTPCdataQA.cxx:1149
 AliTPCdataQA.cxx:1150
 AliTPCdataQA.cxx:1151
 AliTPCdataQA.cxx:1152
 AliTPCdataQA.cxx:1153
 AliTPCdataQA.cxx:1154
 AliTPCdataQA.cxx:1155
 AliTPCdataQA.cxx:1156
 AliTPCdataQA.cxx:1157
 AliTPCdataQA.cxx:1158
 AliTPCdataQA.cxx:1159
 AliTPCdataQA.cxx:1160
 AliTPCdataQA.cxx:1161
 AliTPCdataQA.cxx:1162
 AliTPCdataQA.cxx:1163
 AliTPCdataQA.cxx:1164
 AliTPCdataQA.cxx:1165
 AliTPCdataQA.cxx:1166
 AliTPCdataQA.cxx:1167
 AliTPCdataQA.cxx:1168
 AliTPCdataQA.cxx:1169
 AliTPCdataQA.cxx:1170
 AliTPCdataQA.cxx:1171
 AliTPCdataQA.cxx:1172
 AliTPCdataQA.cxx:1173
 AliTPCdataQA.cxx:1174
 AliTPCdataQA.cxx:1175
 AliTPCdataQA.cxx:1176
 AliTPCdataQA.cxx:1177
 AliTPCdataQA.cxx:1178
 AliTPCdataQA.cxx:1179
 AliTPCdataQA.cxx:1180
 AliTPCdataQA.cxx:1181
 AliTPCdataQA.cxx:1182
 AliTPCdataQA.cxx:1183
 AliTPCdataQA.cxx:1184
 AliTPCdataQA.cxx:1185
 AliTPCdataQA.cxx:1186
 AliTPCdataQA.cxx:1187
 AliTPCdataQA.cxx:1188
 AliTPCdataQA.cxx:1189
 AliTPCdataQA.cxx:1190
 AliTPCdataQA.cxx:1191
 AliTPCdataQA.cxx:1192
 AliTPCdataQA.cxx:1193
 AliTPCdataQA.cxx:1194
 AliTPCdataQA.cxx:1195
 AliTPCdataQA.cxx:1196
 AliTPCdataQA.cxx:1197
 AliTPCdataQA.cxx:1198
 AliTPCdataQA.cxx:1199
 AliTPCdataQA.cxx:1200
 AliTPCdataQA.cxx:1201
 AliTPCdataQA.cxx:1202
 AliTPCdataQA.cxx:1203
 AliTPCdataQA.cxx:1204
 AliTPCdataQA.cxx:1205
 AliTPCdataQA.cxx:1206
 AliTPCdataQA.cxx:1207
 AliTPCdataQA.cxx:1208
 AliTPCdataQA.cxx:1209
 AliTPCdataQA.cxx:1210
 AliTPCdataQA.cxx:1211
 AliTPCdataQA.cxx:1212
 AliTPCdataQA.cxx:1213
 AliTPCdataQA.cxx:1214
 AliTPCdataQA.cxx:1215
 AliTPCdataQA.cxx:1216
 AliTPCdataQA.cxx:1217
 AliTPCdataQA.cxx:1218
 AliTPCdataQA.cxx:1219
 AliTPCdataQA.cxx:1220
 AliTPCdataQA.cxx:1221
 AliTPCdataQA.cxx:1222
 AliTPCdataQA.cxx:1223
 AliTPCdataQA.cxx:1224
 AliTPCdataQA.cxx:1225
 AliTPCdataQA.cxx:1226
 AliTPCdataQA.cxx:1227
 AliTPCdataQA.cxx:1228
 AliTPCdataQA.cxx:1229
 AliTPCdataQA.cxx:1230
 AliTPCdataQA.cxx:1231
 AliTPCdataQA.cxx:1232
 AliTPCdataQA.cxx:1233
 AliTPCdataQA.cxx:1234
 AliTPCdataQA.cxx:1235
 AliTPCdataQA.cxx:1236
 AliTPCdataQA.cxx:1237
 AliTPCdataQA.cxx:1238
 AliTPCdataQA.cxx:1239
 AliTPCdataQA.cxx:1240
 AliTPCdataQA.cxx:1241
 AliTPCdataQA.cxx:1242
 AliTPCdataQA.cxx:1243
 AliTPCdataQA.cxx:1244
 AliTPCdataQA.cxx:1245
 AliTPCdataQA.cxx:1246
 AliTPCdataQA.cxx:1247
 AliTPCdataQA.cxx:1248
 AliTPCdataQA.cxx:1249
 AliTPCdataQA.cxx:1250
 AliTPCdataQA.cxx:1251
 AliTPCdataQA.cxx:1252
 AliTPCdataQA.cxx:1253
 AliTPCdataQA.cxx:1254
 AliTPCdataQA.cxx:1255
 AliTPCdataQA.cxx:1256
 AliTPCdataQA.cxx:1257
 AliTPCdataQA.cxx:1258
 AliTPCdataQA.cxx:1259
 AliTPCdataQA.cxx:1260
 AliTPCdataQA.cxx:1261
 AliTPCdataQA.cxx:1262
 AliTPCdataQA.cxx:1263
 AliTPCdataQA.cxx:1264
 AliTPCdataQA.cxx:1265
 AliTPCdataQA.cxx:1266
 AliTPCdataQA.cxx:1267
 AliTPCdataQA.cxx:1268
 AliTPCdataQA.cxx:1269
 AliTPCdataQA.cxx:1270
 AliTPCdataQA.cxx:1271
 AliTPCdataQA.cxx:1272
 AliTPCdataQA.cxx:1273
 AliTPCdataQA.cxx:1274
 AliTPCdataQA.cxx:1275
 AliTPCdataQA.cxx:1276
 AliTPCdataQA.cxx:1277
 AliTPCdataQA.cxx:1278
 AliTPCdataQA.cxx:1279
 AliTPCdataQA.cxx:1280
 AliTPCdataQA.cxx:1281
 AliTPCdataQA.cxx:1282
 AliTPCdataQA.cxx:1283
 AliTPCdataQA.cxx:1284
 AliTPCdataQA.cxx:1285
 AliTPCdataQA.cxx:1286