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: AliTPCclustererKr.cxx,v 1.7 2008/02/06 17:24:53 matyja Exp $ */

//-----------------------------------------------------------------
//           Implementation of the TPC Kr cluster class
//
// Origin: Adam Matyja, INP PAN, adam.matyja@ifj.edu.pl
//-----------------------------------------------------------------

/*
Instruction - how to use that:
There are two macros prepared. One is for preparing clusters from MC 
samples:  FindKrClusters.C. The output is kept in TPC.RecPoints.root.
The other macro is prepared for data analysis: FindKrClustersRaw.C. 
The output is created for each processed file in root file named adc.root. 
For each data subsample the same named file is created. So be careful 
do not overwrite them. 

Additional selection criteria to select the GOLD cluster
Example:
// open  file with clusters
TFile f("Krypton.root");
TTree * tree = (TTree*)f.Get("Kr")
TCut cutR0("cutR0","fADCcluster/fSize<100");        // adjust it according v seetings - 
TCut cutR1("cutR1","fADCcluster/fSize>7");          // cosmic tracks and noise removal
TCut cutR2("cutR2","fMax.fAdc/fADCcluster<0.2");    // digital noise removal
TCut cutR3("cutR3","fMax.fAdc/fADCcluster>0.01");   // noise removal
TCut cutS1("cutS1","fSize<200");    // adjust it according v seetings - cosmic tracks
TCut cutAll = cutR0+cutR1+cutR2+cutR3+cutS1;
This values are typical values to be applied in selectors


*
**** MC ****
*

To run clusterizaton for MC type:
.x FindKrClusters.C

If you don't want to use the standard selection criteria then you 
have to do following:

// load the standard setup
AliRunLoader* rl = AliRunLoader::Open("galice.root");
AliTPCLoader *tpcl = (AliTPCLoader*)rl->GetLoader("TPCLoader");
tpcl->LoadDigits();
rl->LoadgAlice();
gAlice=rl->GetAliRun();
TDirectory *cwd = gDirectory;
AliTPCv4 *tpc = (AliTPCv4*)gAlice->GetDetector("TPC");
Int_t ver = tpc->IsVersion();
rl->CdGAFile();
AliTPCParam *param=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
AliTPCDigitsArray *digarr=new AliTPCDigitsArray;
digarr->Setup(param);
cwd->cd();

//loop over events
Int_t nevmax=rl->GetNumberOfEvents();
for(Int_t nev=0;nev<nevmax ;nev++){
  rl->GetEvent(nev);
  TTree* input_tree= tpcl->TreeD();//load tree with digits
  digarr->ConnectTree(input_tree);
  TTree *output_tree =tpcl->TreeR();//load output tree

  AliTPCclustererKr *clusters = new AliTPCclustererKr();
  clusters->SetParam(param);
  clusters->SetInput(input_tree);
  clusters->SetOutput(output_tree);
  clusters->SetDigArr(digarr);
  
//If you want to change the cluster finder parameters for MC there are 
//several of them:

//1. signal threshold (everything below the given number is treated as 0)
  clusters->SetMinAdc(3);

//2. number of neighbouring timebins to be considered
  clusters->SetMinTimeBins(2);

//3. distance of the cluster center to the center of a pad in pad-padrow plane 
//(in cm). Remenber that this is still quantified by pad size.
  clusters->SetMaxPadRangeCm(2.5);

//4. distance of the cluster center to the center of a padrow in pad-padrow 
//plane (in cm). Remenber that this is still quantified by pad size.
  clusters->SetMaxRowRangeCm(3.5);

//5. distance of the cluster center to the max time bin on a pad (in tackts)
//ie. fabs(centerT - time)<7
  clusters->SetMaxTimeRange(7);

//6. cut reduce peak at 0. There are noises which appear mostly as two 
//timebins on one pad.
  clusters->SetValueToSize(3.5);


  clusters->finderIO();
  tpcl->WriteRecPoints("OVERWRITE");
}
delete rl;//cleans everything

*
********* DATA *********
*

To run clusterizaton for DATA for file named raw_data.root type:
.x FindKrClustersRaw.C("raw_data.root")

If you want to change some criteria do the following:

//
// remove Altro warnings
//
AliLog::SetClassDebugLevel("AliRawReaderDate",-5);
AliLog::SetClassDebugLevel("AliTPCAltroMapping",-5);
AliLog::SetModuleDebugLevel("RAW",-5);

//
// Get database with noises
//
//  char *ocdbpath = gSystem->Getenv("OCDB_PATH");
char *ocdbpath ="local:///afs/cern.ch/alice/tpctest/OCDB";
if (ocdbpath==0){
ocdbpath="alien://folder=/alice/data/2007/LHC07w/OCDB/";
}
AliCDBManager * man = AliCDBManager::Instance();
man->SetDefaultStorage(ocdbpath);
man->SetRun(0);
AliTPCCalPad * noiseTPC = AliTPCcalibDB::Instance()->GetPadNoise();
AliTPCAltroMapping** mapping =AliTPCcalibDB::Instance()->GetMapping();

//define tree
TFile *hfile=new TFile("adc.root","RECREATE","ADC file");
// Create a ROOT Tree
TTree *mytree = new TTree("Kr","Krypton cluster tree");

//define infput file
const char *fileName="data.root";
AliRawReader *reader = new AliRawReaderRoot(fileName);
//AliRawReader *reader = new AliRawReaderDate(fileName);
reader->Reset();
AliAltroRawStreamFast* stream = new AliAltroRawStreamFast(reader);
stream->SelectRawData("TPC");

//one general output
AliTPCclustererKr *clusters = new AliTPCclustererKr();
clusters->SetOutput(mytree);
clusters->SetRecoParam(0);//standard reco parameters
AliTPCParamSR *param=new AliTPCParamSR();
clusters->SetParam(param);//TPC parameters(sectors, timebins, etc.)

//set cluster finder parameters (from data):
//1. zero suppression parameter
  clusters->SetZeroSup(param->GetZeroSup());

//2. first bin
  clusters->SetFirstBin(60);

//3. last bin
  clusters->SetLastBin(950);

//4. maximal noise
  clusters->SetMaxNoiseAbs(2);

//5. maximal amount of sigma of noise
  clusters->SetMaxNoiseSigma(3);

//The remaining parameters are the same paramters as for MC (see MC section 
//points 1-6)
  clusters->SetMinAdc(3);
  clusters->SetMinTimeBins(2);
  clusters->SetMaxPadRangeCm(2.5);
  clusters->SetMaxRowRangeCm(3.5);
  clusters->SetMaxTimeRange(7);
  clusters->SetValueToSize(3.5);

while (reader->NextEvent()) {
  clusters->FinderIO(reader);
}

hfile->Write();
hfile->Close();
delete stream;


*/

#include "AliTPCclustererKr.h"
#include "AliTPCclusterKr.h"
//#include <vector>
#include <list>
#include "TObject.h"
#include "AliPadMax.h"
#include "AliSimDigits.h"
#include "AliTPCv4.h"
#include "AliTPCParam.h"
#include "AliTPCDigitsArray.h"
#include "AliTPCvtpr.h"
#include "AliTPCClustersRow.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TTreeStream.h"

#include "AliTPCTransform.h"

//used in raw data finder
#include "AliTPCROC.h"
#include "AliTPCCalPad.h"
#include "AliTPCAltroMapping.h"
#include "AliTPCcalibDB.h"
#include "AliTPCRawStreamV3.h"
#include "AliTPCRecoParam.h"
#include "AliTPCReconstructor.h"
#include "AliRawReader.h"
#include "AliTPCCalROC.h"
#include "AliRawEventHeaderBase.h"

using std::cerr;
using std::cout;
using std::endl;
using std::list;
ClassImp(AliTPCclustererKr)


AliTPCclustererKr::AliTPCclustererKr()
  :TObject(),
  fRawData(kFALSE),
  fInput(0),
  fOutput(0),
  fParam(0),
  fDigarr(0),
  fRecoParam(0),
  fZeroSup(2),
  fFirstBin(60),
  fLastBin(950),
  fMaxNoiseAbs(2),
  fMaxNoiseSigma(3),
  fMinAdc(3),
  fMinTimeBins(2),
//  fMaxPadRange(4),
//  fMaxRowRange(3),
  fMaxTimeRange(7),
  fValueToSize(3.5),
  fMaxPadRangeCm(2.5),
  fMaxRowRangeCm(3.5),
  fIsolCut(3),
  fDebugLevel(-1),
  fHistoRow(0),
  fHistoPad(0),
  fHistoTime(0),
   fHistoRowPad(0),
   fTimeStamp(0),
  fRun(0)
{
//
// default constructor
//
}

AliTPCclustererKr::AliTPCclustererKr(const AliTPCclustererKr &param)
  :TObject(),
  fRawData(kFALSE),
  fInput(0),
  fOutput(0),
  fParam(0),
  fDigarr(0),
  fRecoParam(0),
  fZeroSup(2),
  fFirstBin(60),
  fLastBin(950),
  fMaxNoiseAbs(2),
  fMaxNoiseSigma(3),
  fMinAdc(3),
  fMinTimeBins(2),
//  fMaxPadRange(4),
//  fMaxRowRange(3),
  fMaxTimeRange(7),
  fValueToSize(3.5),
  fMaxPadRangeCm(2.5),
  fMaxRowRangeCm(3.5),
  fIsolCut(3),
  fDebugLevel(-1),
  fHistoRow(0),
  fHistoPad(0),
  fHistoTime(0),
  fHistoRowPad(0),
   fTimeStamp(0),
   fRun(0)
{
//
// copy constructor
//
  fParam = param.fParam;
  fRecoParam = param.fRecoParam;
  fRawData = param.fRawData;
  fInput  = param.fInput ;
  fOutput = param.fOutput;
  fDigarr = param.fDigarr;
  fZeroSup       = param.fZeroSup       ;
  fFirstBin	 = param.fFirstBin	;
  fLastBin	 = param.fLastBin	;
  fMaxNoiseAbs	 = param.fMaxNoiseAbs	;
  fMaxNoiseSigma = param.fMaxNoiseSigma ;
  fMinAdc = param.fMinAdc;
  fMinTimeBins = param.fMinTimeBins;
//  fMaxPadRange  = param.fMaxPadRange ;
//  fMaxRowRange  = param.fMaxRowRange ;
  fMaxTimeRange = param.fMaxTimeRange;
  fValueToSize  = param.fValueToSize;
  fMaxPadRangeCm = param.fMaxPadRangeCm;
  fMaxRowRangeCm = param.fMaxRowRangeCm;
  fIsolCut = param.fIsolCut;
  fDebugLevel = param.fDebugLevel;
  fHistoRow    = param.fHistoRow   ;
  fHistoPad    = param.fHistoPad  ;
  fHistoTime   = param.fHistoTime;
  fHistoRowPad = param.fHistoRowPad;
  fTimeStamp = param.fTimeStamp;
  fRun = param.fRun;

} 

AliTPCclustererKr & AliTPCclustererKr::operator = (const AliTPCclustererKr & param)
{
  //
  // assignment operator
  //
  if (this == &param) return (*this);
  
  fParam = param.fParam;
  fRecoParam = param.fRecoParam;
  fRawData = param.fRawData;
  fInput  = param.fInput ;
  fOutput = param.fOutput;
  fDigarr = param.fDigarr;
  fZeroSup       = param.fZeroSup       ;
  fFirstBin	 = param.fFirstBin	;
  fLastBin	 = param.fLastBin	;
  fMaxNoiseAbs	 = param.fMaxNoiseAbs	;
  fMaxNoiseSigma = param.fMaxNoiseSigma ;
  fMinAdc = param.fMinAdc;
  fMinTimeBins = param.fMinTimeBins;
//  fMaxPadRange  = param.fMaxPadRange ;
//  fMaxRowRange  = param.fMaxRowRange ;
  fMaxTimeRange = param.fMaxTimeRange;
  fValueToSize  = param.fValueToSize;
  fMaxPadRangeCm = param.fMaxPadRangeCm;
  fMaxRowRangeCm = param.fMaxRowRangeCm;
  fIsolCut = param.fIsolCut;
  fDebugLevel = param.fDebugLevel;
  fHistoRow    = param.fHistoRow   ;
  fHistoPad    = param.fHistoPad  ;
  fHistoTime   = param.fHistoTime;
  fHistoRowPad = param.fHistoRowPad;
  fTimeStamp = param.fTimeStamp;
  fRun = param.fRun;
  return (*this);
}

AliTPCclustererKr::~AliTPCclustererKr()
{
  //
  // destructor
  //
  delete fOutput;
}

void AliTPCclustererKr::SetRecoParam(AliTPCRecoParam *recoParam)
{
  //
  // set reconstruction parameters
  //
  if (recoParam) {
    fRecoParam = recoParam;
  }else{
    //set default parameters if not specified
    fRecoParam = AliTPCReconstructor::GetRecoParam();
    if (!fRecoParam)  fRecoParam = AliTPCRecoParam::GetLowFluxParam();
  }
  return;
}


////____________________________________________________________________________
////       I/O
void AliTPCclustererKr::SetInput(TTree * tree)
{
  //
  // set input tree with digits
  //
  fInput = tree;  
  if  (!fInput->GetBranch("Segment")){
    cerr<<"AliTPCclusterKr::FindClusterKr(): no proper input tree !\n";
    fInput=0;
    return;
  }
}

void AliTPCclustererKr::SetOutput(TTree * /*tree*/) 
{
  //
  //dummy
  //
  fOutput = new TTreeSRedirector("Krypton.root");
}

////____________________________________________________________________________
//// with new I/O
Int_t AliTPCclustererKr::FinderIO()
{
  // Krypton cluster finder for simulated events from MC

  if (!fInput) { 
    Error("Digits2Clusters", "input tree not initialised");
    return 10;
  }
  
  if (!fOutput) {
    Error("Digits2Clusters", "output tree not initialised");
    return 11;
  }

  FindClusterKrIO();
  return 0;
}



Int_t AliTPCclustererKr::FinderIO(AliRawReader* rawReader)
{
  // Krypton cluster finder for the TPC raw data
  // this method is unsing AliAltroRawStreamV3
  // fParam must be defined before
  if (!rawReader) return 1;
  //
  fRawData=kTRUE; //set flag to data
  
  if (!fOutput) {
    Error("Digits2Clusters", "output tree not initialised");
    return 11;
  }
  
  fParam->SetMaxTBin(fRecoParam->GetLastBin());//set number of timebins from reco -> param
  //   used later for memory allocation

  AliRawEventHeaderBase* eventHeader = (AliRawEventHeaderBase*)rawReader->GetEventHeader();
  if (eventHeader){
    fTimeStamp = eventHeader->Get("Timestamp");
    fRun = rawReader->GetRunNumber();
  }


  Bool_t isAltro=kFALSE;
  
  AliTPCROC * roc = AliTPCROC::Instance();
  AliTPCCalPad * noiseTPC = AliTPCcalibDB::Instance()->GetPadNoise();
  AliTPCAltroMapping** mapping =AliTPCcalibDB::Instance()->GetMapping();
  //
  AliTPCRawStreamV3 input(rawReader,(AliAltroMapping**)mapping);
  
  const Int_t kNIS = fParam->GetNInnerSector();//number of inner sectors
  const Int_t kNOS = fParam->GetNOuterSector();//number of outer sectors
  const Int_t kNS = kNIS + kNOS;//all sectors
  
  
  //crate TPC view
  AliTPCDigitsArray *digarr=new AliTPCDigitsArray(kFALSE);//data not sim
  digarr->Setup(fParam);//as usually parameters
  
  for(Int_t iSec = 0; iSec < kNS; iSec++) {
    AliTPCCalROC * noiseROC;
    AliTPCCalROC noiseDummy(iSec);
    if(noiseTPC==0x0){
      noiseROC = &noiseDummy;//noise=0
    }else{
      noiseROC = noiseTPC->GetCalROC(iSec);  // noise per given sector
    }
    Int_t nRows = 0; //number of rows in sector
    Int_t nDDLs = 0; //number of DDLs
    Int_t indexDDL = 0; //DDL index
    if (iSec < kNIS) {
      nRows = fParam->GetNRowLow();
      nDDLs = 2;
      indexDDL = iSec * 2;
    }else {
      nRows = fParam->GetNRowUp();
      nDDLs = 4;
      indexDDL = (iSec-kNIS) * 4 + kNIS * 2;
    }
    
    //
    // Load the raw data for corresponding DDLs
    //
    rawReader->Reset();
    rawReader->Select("TPC",indexDDL,indexDDL+nDDLs-1);
      
    
    while (input.NextDDL()){
      // Allocate memory for rows in sector (pads(depends on row) x timebins)
      if (!digarr->GetRow(iSec,0)){
        for(Int_t iRow = 0; iRow < nRows; iRow++) {
          digarr->CreateRow(iSec,iRow);
        }//end loop over rows
      }
      //loop over pads
      while ( input.NextChannel() ) {
        Int_t iRow = input.GetRow();
        Int_t iPad = input.GetPad();
        //check row consistency
        if (iRow < 0 ) continue;
        if (iRow < 0 || iRow >= nRows){
          AliError(Form("Pad-row index (%d) outside the range (%d -> %d) !",
                        iRow, 0, nRows -1));
          continue;
        }
        
      //check pad consistency
        if (iPad < 0 || iPad >= (Int_t)(roc->GetNPads(iSec,iRow))) {
          AliError(Form("Pad index (%d) outside the range (%d -> %d) !",
                        iPad, 0, roc->GetNPads(iSec,iRow) ));
          continue;
        }
        
      //loop over bunches
        while ( input.NextBunch() ){
          Int_t  startTbin    = (Int_t)input.GetStartTimeBin();
          Int_t  bunchlength  = (Int_t)input.GetBunchLength();
          const UShort_t *sig = input.GetSignals();
          isAltro=kTRUE;
          for (Int_t iTime = 0; iTime<bunchlength; iTime++){
            Int_t iTimeBin=startTbin-iTime;
            //
            if(fDebugLevel==72){
              fHistoRow->Fill(iRow);
              fHistoPad->Fill(iPad);
              fHistoTime->Fill(iTimeBin);
              fHistoRowPad->Fill(iPad,iRow);
            }else if(fDebugLevel>=0&&fDebugLevel<72){
              if(iSec==fDebugLevel){
                fHistoRow->Fill(iRow);
                fHistoPad->Fill(iPad);
                fHistoTime->Fill(iTimeBin);
                fHistoRowPad->Fill(iPad,iRow);
              }
            }else if(fDebugLevel==73){
              if(iSec<36){
                fHistoRow->Fill(iRow);
                fHistoPad->Fill(iPad);
                fHistoTime->Fill(iTimeBin);
                fHistoRowPad->Fill(iPad,iRow);
              }
            }else if(fDebugLevel==74){
              if(iSec>=36){
                fHistoRow->Fill(iRow);
                fHistoPad->Fill(iPad);
                fHistoTime->Fill(iTimeBin);
                fHistoRowPad->Fill(iPad,iRow);
              }
            }
            
            //check time consistency
            if ( iTimeBin < fRecoParam->GetFirstBin() || iTimeBin >= fRecoParam->GetLastBin()){
              //cout<<iTimeBin<<endl;
              continue;
              AliFatal(Form("Timebin index (%d) outside the range (%d -> %d) !",
                            iTimeBin, 0, fRecoParam->GetLastBin() -1));
            }
            //signal
            Float_t signal=(Float_t)sig[iTime];
            if (signal <= fZeroSup ||
                iTimeBin < fFirstBin ||
                iTimeBin > fLastBin
               ) {
                 digarr->GetRow(iSec,iRow)->SetDigitFast(0,iTimeBin,iPad);
                 continue;
               }
            if (!noiseROC) continue;
            Double_t noiseOnPad = noiseROC->GetValue(iRow,iPad);//noise on given pad and row in sector
            if (noiseOnPad > fMaxNoiseAbs){
              digarr->GetRow(iSec,iRow)->SetDigitFast(0,iTimeBin,iPad);
              continue; // consider noisy pad as dead
            }
            if(signal <= fMaxNoiseSigma * noiseOnPad){
              digarr->GetRow(iSec,iRow)->SetDigitFast(0,iTimeBin,iPad);
              continue;
            }
            digarr->GetRow(iSec,iRow)->SetDigitFast(TMath::Nint(signal),iTimeBin,iPad);
          }// end loop signals in bunch
        }// end loop bunches
      } // end loop pads
    }// end ddl loop
  }// end sector loop
  SetDigArr(digarr);
  if(isAltro) FindClusterKrIO();
  delete digarr;
  
  return 0;
}

void AliTPCclustererKr::CleanSector(Int_t sector){
  //
  // clean isolated digits
  //  
  const Int_t kNRows=fParam->GetNRow(sector);//number of rows in sector
  for(Int_t iRow=0; iRow<kNRows; ++iRow){
    AliSimDigits *digrow;
    if(fRawData){
      digrow = (AliSimDigits*)fDigarr->GetRow(sector,iRow);//real data
    }else{
      digrow = (AliSimDigits*)fDigarr->LoadRow(sector,iRow);//MC
    }
    if(!digrow) continue;
    digrow->ExpandBuffer(); //decrunch
    const Int_t kNPads = digrow->GetNCols();  // number of pads
    const Int_t kNTime = digrow->GetNRows(); // number of timebins
    for(Int_t iPad=1;iPad<kNPads-1;iPad++){
      Short_t*  val = digrow->GetDigitsColumn(iPad);

      for(Int_t iTimeBin=1;iTimeBin<kNTime-1;iTimeBin++){
	if (val[iTimeBin]<=0) continue;
	if (val[iTimeBin-1]+val[iTimeBin+1]<fIsolCut) {val[iTimeBin]=0; continue;}
	if (val[iTimeBin-kNTime]+val[iTimeBin+kNTime]<fIsolCut) {val[iTimeBin]=0; continue;}
	//
	if (val[iTimeBin-1-kNTime]+val[iTimeBin+1+kNTime]<fIsolCut) {val[iTimeBin]=0; continue;}
	if (val[iTimeBin+1-kNTime]+val[iTimeBin-1+kNTime]<fIsolCut) {val[iTimeBin]=0; continue;}

      }
    }
  }
}


////____________________________________________________________________________
Int_t AliTPCclustererKr::FindClusterKrIO()
{

  //
  //fParam and  fDigarr must be set to run this method
  //

  Int_t clusterCounter=0;
  const Int_t nTotalSector=fParam->GetNSector();//number of sectors
  for(Int_t iSec=0; iSec<nTotalSector; ++iSec){
    CleanSector(iSec);

    //vector of maxima for each sector
    //std::vector<AliPadMax*> maximaInSector;
    TObjArray *maximaInSector=new TObjArray();//to store AliPadMax*

    //
    //  looking for the maxima on the pad
    //

    const Int_t kNRows=fParam->GetNRow(iSec);//number of rows in sector
    for(Int_t iRow=0; iRow<kNRows; ++iRow){
      AliSimDigits *digrow;
      if(fRawData){
	digrow = (AliSimDigits*)fDigarr->GetRow(iSec,iRow);//real data
      }else{
	digrow = (AliSimDigits*)fDigarr->LoadRow(iSec,iRow);//MC
      }
      if(digrow){//if pointer exist
	digrow->ExpandBuffer(); //decrunch
	const Int_t kNPads = digrow->GetNCols();  // number of pads
	const Int_t kNTime = digrow->GetNRows(); // number of timebins
	for(Int_t iPad=0;iPad<kNPads;iPad++){
	  
	  Int_t timeBinMax=-1;//timebin of maximum 
	  Int_t valueMaximum=-1;//value of maximum in adc
	  Int_t increaseBegin=-1;//timebin when increase starts
	  Int_t sumAdc=0;//sum of adc on the pad in maximum surrounding
	  bool ifIncreaseBegin=true;//flag - check if increasing started
	  bool ifMaximum=false;//flag - check if it could be maximum
	  Short_t* val = digrow->GetDigitsColumn(iPad);
	  for(Int_t iTimeBin=1;iTimeBin<kNTime-1;iTimeBin++){
	    if (!ifMaximum)  {
	      if (val[iTimeBin]==-1) break;   // 0 until the end
	      for( ; iTimeBin<kNTime-2&&val[iTimeBin]<fMinAdc ;iTimeBin++) {}
	    }
	    //
	    Short_t adc = val[iTimeBin];

	    if(adc<fMinAdc){//standard was 3 for fMinAdc
	      if(ifMaximum){
		if(iTimeBin-increaseBegin<fMinTimeBins){//at least 2 time bins
		  timeBinMax=-1;
		  valueMaximum=-1;
		  increaseBegin=-1;
		  sumAdc=0;
		  ifIncreaseBegin=true;
		  ifMaximum=false;
		  continue;
		}
		//insert maximum, default values and set flags
		//Double_t xCord,yCord;
		//GetXY(iSec,iRow,iPad,xCord,yCord);
		Double_t x[]={static_cast<Double_t>(iRow),static_cast<Double_t>(iPad),static_cast<Double_t>(iTimeBin)};
		Int_t i[]={iSec};
		AliTPCTransform *transform     = AliTPCcalibDB::Instance()->GetTransform() ;

		transform->Transform(x,i,0,1);
		
		AliPadMax *oneMaximum = new AliPadMax(AliTPCvtpr(valueMaximum,
								 timeBinMax,
								 iPad,
								 iRow,
								 x[0],//xCord,
								 x[1],//yCord,
								 x[2]/*timeBinMax*/),
						      increaseBegin,
						      iTimeBin-1,
						      sumAdc);
		maximaInSector->AddLast(oneMaximum);
		
		timeBinMax=-1;
		valueMaximum=-1;
		increaseBegin=-1;
		sumAdc=0;
		ifIncreaseBegin=true;
		ifMaximum=false;
	      }
	      continue;
	    }






	    if(ifIncreaseBegin){
	      ifIncreaseBegin=false;
	      increaseBegin=iTimeBin;
	    }
	    
	    if(adc>valueMaximum){
	      timeBinMax=iTimeBin;
	      valueMaximum=adc;
	      ifMaximum=true;
	    }
	    sumAdc+=adc;
	    if(iTimeBin==kNTime-1 && ifMaximum && kNTime-increaseBegin>fMinTimeBins){//on the edge
	      //at least 3 timebins
	      //insert maximum, default values and set flags
	      //Double_t xCord,yCord;
	      //GetXY(iSec,iRow,iPad,xCord,yCord);
	      Double_t x[]={static_cast<Double_t>(iRow),static_cast<Double_t>(iPad),static_cast<Double_t>(iTimeBin)};
	      Int_t i[]={iSec};
	      //AliTPCTransform trafo;
	      //trafo.Transform(x,i,0,1);

		AliTPCTransform *transform     = AliTPCcalibDB::Instance()->GetTransform() ;

		transform->Transform(x,i,0,1);

	      AliPadMax *oneMaximum = new AliPadMax(AliTPCvtpr(valueMaximum,
							       timeBinMax,
							       iPad,
							       iRow,
							       x[0],//xCord,
							       x[1],//yCord,
							       x[2]/*timeBinMax*/),
						    increaseBegin,
						    iTimeBin-1,
						    sumAdc);
	      maximaInSector->AddLast(oneMaximum);
		
	      timeBinMax=-1;
	      valueMaximum=-1;
	      increaseBegin=-1;
	      sumAdc=0;
	      ifIncreaseBegin=true;
	      ifMaximum=false;
	      continue;
	    }
	    
	  }//end loop over timebins
	}//end loop over pads
//      }else{
//	cout<<"Pointer does not exist!!"<<endl;
      }//end if poiner exists
    }//end loop over rows

    MakeClusters(maximaInSector,iSec,clusterCounter);
    //
    maximaInSector->SetOwner(kTRUE);
    maximaInSector->Delete();
    delete maximaInSector;
  }//end sector for
  cout<<"Number of clusters in event: "<<clusterCounter<<endl;
  return 0;
}

void AliTPCclustererKr::MakeClusters(TObjArray * maximaInSector, Int_t iSec, Int_t &clusterCounter){
  //
  // Make clusters
  //

  Int_t maxDig=0;
  Int_t maxSumAdc=0;
  Int_t maxTimeBin=0;
  Int_t maxPad=0;
  Int_t maxRow=0;
  Double_t maxX=0;
  Double_t maxY=0;
  Double_t maxT=0;
  Int_t entriesArr = maximaInSector->GetEntriesFast();
  for(Int_t it1 = 0; it1 < entriesArr; ++it1 ) {
    
    AliPadMax *mp1=(AliPadMax *)maximaInSector->UncheckedAt(it1);
    if (!mp1) continue;
    AliTPCclusterKr clusterKr;
    
    Int_t nUsedPads=1;
    Int_t clusterValue=0;
    clusterValue+=(mp1)->GetSum();
    list<Int_t> nUsedRows;
    nUsedRows.push_back((mp1)->GetRow());
    
    maxDig      =(mp1)->GetAdc() ;
    maxSumAdc   =(mp1)->GetSum() ;
    maxTimeBin  =(mp1)->GetTime();
    maxPad      =(mp1)->GetPad() ;
    maxRow      =(mp1)->GetRow() ;
    maxX        =(mp1)->GetX();
    maxY        =(mp1)->GetY();
    maxT        =(mp1)->GetT();
    
    AliSimDigits *digrowTmp;
    if(fRawData){
      digrowTmp = (AliSimDigits*)fDigarr->GetRow(iSec,(mp1)->GetRow());
    }else{
      digrowTmp = (AliSimDigits*)fDigarr->LoadRow(iSec,(mp1)->GetRow());
    }
    
    digrowTmp->ExpandBuffer(); //decrunch
    
    for(Int_t itb=(mp1)->GetBegin(); itb<((mp1)->GetEnd())+1; itb++){
      Int_t adcTmp = digrowTmp->GetDigitUnchecked(itb,(mp1)->GetPad());
      AliTPCvtpr *vtpr=new AliTPCvtpr(adcTmp,itb,(mp1)->GetPad(),(mp1)->GetRow(),(mp1)->GetX(),(mp1)->GetY(),(mp1)->GetT());
      clusterKr.AddDigitToCluster(vtpr);
    }
    clusterKr.SetCenter();//set centr of the cluster
    
    for(Int_t it2 = it1+1; it2 < entriesArr; ++it2 ) {
      AliPadMax *mp2=(AliPadMax *)maximaInSector->UncheckedAt(it2);
      if (!mp2) continue;
      if (TMath::Abs(clusterKr.GetCenterX() - (mp2)->GetX()) > fMaxPadRangeCm) continue;
      if (TMath::Abs(clusterKr.GetCenterY() - (mp2)->GetY()) > fMaxRowRangeCm) continue;      
      if (TMath::Abs(clusterKr.GetCenterT() - (mp2)->GetT()) > fMaxTimeRange) continue;

      {
	clusterValue+=(mp2)->GetSum();
	
	nUsedPads++;
	nUsedRows.push_back((mp2)->GetRow());
	
	AliSimDigits *digrowTmp1;
	if(fRawData){
	  digrowTmp1 = (AliSimDigits*)fDigarr->GetRow(iSec,(mp2)->GetRow());
	}else{
	  digrowTmp1 = (AliSimDigits*)fDigarr->LoadRow(iSec,(mp2)->GetRow());
	}
	digrowTmp1->ExpandBuffer(); //decrunch
	
	for(Int_t itb=(mp2)->GetBegin(); itb<(mp2)->GetEnd()+1; itb++){
	  Int_t adcTmp = digrowTmp1->GetDigitUnchecked(itb,(mp2)->GetPad());
	  AliTPCvtpr *vtpr=new AliTPCvtpr(adcTmp,itb,(mp2)->GetPad(),(mp2)->GetRow(),(mp2)->GetX(),(mp2)->GetY(),(mp2)->GetT());
	  clusterKr.AddDigitToCluster(vtpr);
	}
	
	clusterKr.SetCenter();//set center of the cluster
	
	//which one is bigger
	if( (mp2)->GetAdc() > maxDig ){
	  maxDig      =(mp2)->GetAdc() ;
	  maxSumAdc   =(mp2)->GetSum() ;
	  maxTimeBin  =(mp2)->GetTime();
	  maxPad      =(mp2)->GetPad() ;
	  maxRow      =(mp2)->GetRow() ;
	  maxX        =(mp2)->GetX() ;
	  maxY        =(mp2)->GetY() ;
	  maxT        =(mp2)->GetT() ;
	} else if ( (mp2)->GetAdc() == maxDig ){
	  if( (mp2)->GetSum() > maxSumAdc){
	    maxDig      =(mp2)->GetAdc() ;
	    maxSumAdc   =(mp2)->GetSum() ;
	    maxTimeBin  =(mp2)->GetTime();
	    maxPad      =(mp2)->GetPad() ;
	    maxRow      =(mp2)->GetRow() ;
	    maxX        =(mp2)->GetX() ;
	    maxY        =(mp2)->GetY() ;
	    maxT        =(mp2)->GetT() ;
	  }
	}
	delete maximaInSector->RemoveAt(it2);
      }
    }//inside loop
    delete maximaInSector->RemoveAt(it1);          
    clusterKr.SetSize();
    //through out clusters on the edge and noise
    //if(clusterValue/clusterKr.fCluster.size()<fValueToSize)continue;
    if(clusterValue/(clusterKr.GetSize())<fValueToSize)continue;
    
    clusterKr.SetADCcluster(clusterValue);
    clusterKr.SetNPads(nUsedPads);
    clusterKr.SetMax(AliTPCvtpr(maxDig,maxTimeBin,maxPad,maxRow,maxX,maxY,maxT));
    clusterKr.SetSec(iSec);
    clusterKr.SetSize();
    
    nUsedRows.sort();
    nUsedRows.unique();
    clusterKr.SetNRows(nUsedRows.size());
    clusterKr.SetCenter();
    
    clusterKr.SetRMS();//Set pad,row,timebin RMS
    clusterKr.Set1D();//Set size in pads and timebins

    clusterKr.SetTimeStamp(fTimeStamp);
    clusterKr.SetRun(fRun);

    clusterCounter++;
    
    
    //save each cluster into file
    if (fOutput){
      (*fOutput)<<"Kr"<<
	"Cl.="<<&clusterKr<<
	"\n";
    }
    //end of save each cluster into file adc.root
  }//outer loop
}



////____________________________________________________________________________


void AliTPCclustererKr::GetXY(Int_t sec,Int_t row,Int_t pad,Double_t& xGlob,Double_t& yGlob){
  //
  //gives global XY coordinate of the pad
  //

  Double_t yLocal = fParam->GetPadRowRadii(sec,row);//radius of row in sector in cm

  Int_t padmax = fParam->GetNPads(sec,row);//number of pads in a given row
  Float_t padXSize;
  if(sec<fParam->GetNInnerSector())padXSize=0.4;
  else padXSize=0.6;
  Double_t xLocal=(pad+0.5-padmax/2.)*padXSize;//x-value of the center of pad

  Float_t sin,cos;
  fParam->AdjustCosSin((Int_t)sec,cos,sin);//return sinus and cosinus of the sector

  Double_t xGlob1 =  xLocal * cos + yLocal * sin;
  Double_t yGlob1 = -xLocal * sin + yLocal * cos;


  Double_t rot=0;
  rot=TMath::Pi()/2.;

  xGlob =  xGlob1 * TMath::Cos(rot) + yGlob1 * TMath::Sin(rot);
  yGlob = -xGlob1 * TMath::Sin(rot) + yGlob1 * TMath::Cos(rot);

   yGlob=-1*yGlob;
   if(sec<18||(sec>=36&&sec<54)) xGlob =-1*xGlob;


  return;
}
 AliTPCclustererKr.cxx:1
 AliTPCclustererKr.cxx:2
 AliTPCclustererKr.cxx:3
 AliTPCclustererKr.cxx:4
 AliTPCclustererKr.cxx:5
 AliTPCclustererKr.cxx:6
 AliTPCclustererKr.cxx:7
 AliTPCclustererKr.cxx:8
 AliTPCclustererKr.cxx:9
 AliTPCclustererKr.cxx:10
 AliTPCclustererKr.cxx:11
 AliTPCclustererKr.cxx:12
 AliTPCclustererKr.cxx:13
 AliTPCclustererKr.cxx:14
 AliTPCclustererKr.cxx:15
 AliTPCclustererKr.cxx:16
 AliTPCclustererKr.cxx:17
 AliTPCclustererKr.cxx:18
 AliTPCclustererKr.cxx:19
 AliTPCclustererKr.cxx:20
 AliTPCclustererKr.cxx:21
 AliTPCclustererKr.cxx:22
 AliTPCclustererKr.cxx:23
 AliTPCclustererKr.cxx:24
 AliTPCclustererKr.cxx:25
 AliTPCclustererKr.cxx:26
 AliTPCclustererKr.cxx:27
 AliTPCclustererKr.cxx:28
 AliTPCclustererKr.cxx:29
 AliTPCclustererKr.cxx:30
 AliTPCclustererKr.cxx:31
 AliTPCclustererKr.cxx:32
 AliTPCclustererKr.cxx:33
 AliTPCclustererKr.cxx:34
 AliTPCclustererKr.cxx:35
 AliTPCclustererKr.cxx:36
 AliTPCclustererKr.cxx:37
 AliTPCclustererKr.cxx:38
 AliTPCclustererKr.cxx:39
 AliTPCclustererKr.cxx:40
 AliTPCclustererKr.cxx:41
 AliTPCclustererKr.cxx:42
 AliTPCclustererKr.cxx:43
 AliTPCclustererKr.cxx:44
 AliTPCclustererKr.cxx:45
 AliTPCclustererKr.cxx:46
 AliTPCclustererKr.cxx:47
 AliTPCclustererKr.cxx:48
 AliTPCclustererKr.cxx:49
 AliTPCclustererKr.cxx:50
 AliTPCclustererKr.cxx:51
 AliTPCclustererKr.cxx:52
 AliTPCclustererKr.cxx:53
 AliTPCclustererKr.cxx:54
 AliTPCclustererKr.cxx:55
 AliTPCclustererKr.cxx:56
 AliTPCclustererKr.cxx:57
 AliTPCclustererKr.cxx:58
 AliTPCclustererKr.cxx:59
 AliTPCclustererKr.cxx:60
 AliTPCclustererKr.cxx:61
 AliTPCclustererKr.cxx:62
 AliTPCclustererKr.cxx:63
 AliTPCclustererKr.cxx:64
 AliTPCclustererKr.cxx:65
 AliTPCclustererKr.cxx:66
 AliTPCclustererKr.cxx:67
 AliTPCclustererKr.cxx:68
 AliTPCclustererKr.cxx:69
 AliTPCclustererKr.cxx:70
 AliTPCclustererKr.cxx:71
 AliTPCclustererKr.cxx:72
 AliTPCclustererKr.cxx:73
 AliTPCclustererKr.cxx:74
 AliTPCclustererKr.cxx:75
 AliTPCclustererKr.cxx:76
 AliTPCclustererKr.cxx:77
 AliTPCclustererKr.cxx:78
 AliTPCclustererKr.cxx:79
 AliTPCclustererKr.cxx:80
 AliTPCclustererKr.cxx:81
 AliTPCclustererKr.cxx:82
 AliTPCclustererKr.cxx:83
 AliTPCclustererKr.cxx:84
 AliTPCclustererKr.cxx:85
 AliTPCclustererKr.cxx:86
 AliTPCclustererKr.cxx:87
 AliTPCclustererKr.cxx:88
 AliTPCclustererKr.cxx:89
 AliTPCclustererKr.cxx:90
 AliTPCclustererKr.cxx:91
 AliTPCclustererKr.cxx:92
 AliTPCclustererKr.cxx:93
 AliTPCclustererKr.cxx:94
 AliTPCclustererKr.cxx:95
 AliTPCclustererKr.cxx:96
 AliTPCclustererKr.cxx:97
 AliTPCclustererKr.cxx:98
 AliTPCclustererKr.cxx:99
 AliTPCclustererKr.cxx:100
 AliTPCclustererKr.cxx:101
 AliTPCclustererKr.cxx:102
 AliTPCclustererKr.cxx:103
 AliTPCclustererKr.cxx:104
 AliTPCclustererKr.cxx:105
 AliTPCclustererKr.cxx:106
 AliTPCclustererKr.cxx:107
 AliTPCclustererKr.cxx:108
 AliTPCclustererKr.cxx:109
 AliTPCclustererKr.cxx:110
 AliTPCclustererKr.cxx:111
 AliTPCclustererKr.cxx:112
 AliTPCclustererKr.cxx:113
 AliTPCclustererKr.cxx:114
 AliTPCclustererKr.cxx:115
 AliTPCclustererKr.cxx:116
 AliTPCclustererKr.cxx:117
 AliTPCclustererKr.cxx:118
 AliTPCclustererKr.cxx:119
 AliTPCclustererKr.cxx:120
 AliTPCclustererKr.cxx:121
 AliTPCclustererKr.cxx:122
 AliTPCclustererKr.cxx:123
 AliTPCclustererKr.cxx:124
 AliTPCclustererKr.cxx:125
 AliTPCclustererKr.cxx:126
 AliTPCclustererKr.cxx:127
 AliTPCclustererKr.cxx:128
 AliTPCclustererKr.cxx:129
 AliTPCclustererKr.cxx:130
 AliTPCclustererKr.cxx:131
 AliTPCclustererKr.cxx:132
 AliTPCclustererKr.cxx:133
 AliTPCclustererKr.cxx:134
 AliTPCclustererKr.cxx:135
 AliTPCclustererKr.cxx:136
 AliTPCclustererKr.cxx:137
 AliTPCclustererKr.cxx:138
 AliTPCclustererKr.cxx:139
 AliTPCclustererKr.cxx:140
 AliTPCclustererKr.cxx:141
 AliTPCclustererKr.cxx:142
 AliTPCclustererKr.cxx:143
 AliTPCclustererKr.cxx:144
 AliTPCclustererKr.cxx:145
 AliTPCclustererKr.cxx:146
 AliTPCclustererKr.cxx:147
 AliTPCclustererKr.cxx:148
 AliTPCclustererKr.cxx:149
 AliTPCclustererKr.cxx:150
 AliTPCclustererKr.cxx:151
 AliTPCclustererKr.cxx:152
 AliTPCclustererKr.cxx:153
 AliTPCclustererKr.cxx:154
 AliTPCclustererKr.cxx:155
 AliTPCclustererKr.cxx:156
 AliTPCclustererKr.cxx:157
 AliTPCclustererKr.cxx:158
 AliTPCclustererKr.cxx:159
 AliTPCclustererKr.cxx:160
 AliTPCclustererKr.cxx:161
 AliTPCclustererKr.cxx:162
 AliTPCclustererKr.cxx:163
 AliTPCclustererKr.cxx:164
 AliTPCclustererKr.cxx:165
 AliTPCclustererKr.cxx:166
 AliTPCclustererKr.cxx:167
 AliTPCclustererKr.cxx:168
 AliTPCclustererKr.cxx:169
 AliTPCclustererKr.cxx:170
 AliTPCclustererKr.cxx:171
 AliTPCclustererKr.cxx:172
 AliTPCclustererKr.cxx:173
 AliTPCclustererKr.cxx:174
 AliTPCclustererKr.cxx:175
 AliTPCclustererKr.cxx:176
 AliTPCclustererKr.cxx:177
 AliTPCclustererKr.cxx:178
 AliTPCclustererKr.cxx:179
 AliTPCclustererKr.cxx:180
 AliTPCclustererKr.cxx:181
 AliTPCclustererKr.cxx:182
 AliTPCclustererKr.cxx:183
 AliTPCclustererKr.cxx:184
 AliTPCclustererKr.cxx:185
 AliTPCclustererKr.cxx:186
 AliTPCclustererKr.cxx:187
 AliTPCclustererKr.cxx:188
 AliTPCclustererKr.cxx:189
 AliTPCclustererKr.cxx:190
 AliTPCclustererKr.cxx:191
 AliTPCclustererKr.cxx:192
 AliTPCclustererKr.cxx:193
 AliTPCclustererKr.cxx:194
 AliTPCclustererKr.cxx:195
 AliTPCclustererKr.cxx:196
 AliTPCclustererKr.cxx:197
 AliTPCclustererKr.cxx:198
 AliTPCclustererKr.cxx:199
 AliTPCclustererKr.cxx:200
 AliTPCclustererKr.cxx:201
 AliTPCclustererKr.cxx:202
 AliTPCclustererKr.cxx:203
 AliTPCclustererKr.cxx:204
 AliTPCclustererKr.cxx:205
 AliTPCclustererKr.cxx:206
 AliTPCclustererKr.cxx:207
 AliTPCclustererKr.cxx:208
 AliTPCclustererKr.cxx:209
 AliTPCclustererKr.cxx:210
 AliTPCclustererKr.cxx:211
 AliTPCclustererKr.cxx:212
 AliTPCclustererKr.cxx:213
 AliTPCclustererKr.cxx:214
 AliTPCclustererKr.cxx:215
 AliTPCclustererKr.cxx:216
 AliTPCclustererKr.cxx:217
 AliTPCclustererKr.cxx:218
 AliTPCclustererKr.cxx:219
 AliTPCclustererKr.cxx:220
 AliTPCclustererKr.cxx:221
 AliTPCclustererKr.cxx:222
 AliTPCclustererKr.cxx:223
 AliTPCclustererKr.cxx:224
 AliTPCclustererKr.cxx:225
 AliTPCclustererKr.cxx:226
 AliTPCclustererKr.cxx:227
 AliTPCclustererKr.cxx:228
 AliTPCclustererKr.cxx:229
 AliTPCclustererKr.cxx:230
 AliTPCclustererKr.cxx:231
 AliTPCclustererKr.cxx:232
 AliTPCclustererKr.cxx:233
 AliTPCclustererKr.cxx:234
 AliTPCclustererKr.cxx:235
 AliTPCclustererKr.cxx:236
 AliTPCclustererKr.cxx:237
 AliTPCclustererKr.cxx:238
 AliTPCclustererKr.cxx:239
 AliTPCclustererKr.cxx:240
 AliTPCclustererKr.cxx:241
 AliTPCclustererKr.cxx:242
 AliTPCclustererKr.cxx:243
 AliTPCclustererKr.cxx:244
 AliTPCclustererKr.cxx:245
 AliTPCclustererKr.cxx:246
 AliTPCclustererKr.cxx:247
 AliTPCclustererKr.cxx:248
 AliTPCclustererKr.cxx:249
 AliTPCclustererKr.cxx:250
 AliTPCclustererKr.cxx:251
 AliTPCclustererKr.cxx:252
 AliTPCclustererKr.cxx:253
 AliTPCclustererKr.cxx:254
 AliTPCclustererKr.cxx:255
 AliTPCclustererKr.cxx:256
 AliTPCclustererKr.cxx:257
 AliTPCclustererKr.cxx:258
 AliTPCclustererKr.cxx:259
 AliTPCclustererKr.cxx:260
 AliTPCclustererKr.cxx:261
 AliTPCclustererKr.cxx:262
 AliTPCclustererKr.cxx:263
 AliTPCclustererKr.cxx:264
 AliTPCclustererKr.cxx:265
 AliTPCclustererKr.cxx:266
 AliTPCclustererKr.cxx:267
 AliTPCclustererKr.cxx:268
 AliTPCclustererKr.cxx:269
 AliTPCclustererKr.cxx:270
 AliTPCclustererKr.cxx:271
 AliTPCclustererKr.cxx:272
 AliTPCclustererKr.cxx:273
 AliTPCclustererKr.cxx:274
 AliTPCclustererKr.cxx:275
 AliTPCclustererKr.cxx:276
 AliTPCclustererKr.cxx:277
 AliTPCclustererKr.cxx:278
 AliTPCclustererKr.cxx:279
 AliTPCclustererKr.cxx:280
 AliTPCclustererKr.cxx:281
 AliTPCclustererKr.cxx:282
 AliTPCclustererKr.cxx:283
 AliTPCclustererKr.cxx:284
 AliTPCclustererKr.cxx:285
 AliTPCclustererKr.cxx:286
 AliTPCclustererKr.cxx:287
 AliTPCclustererKr.cxx:288
 AliTPCclustererKr.cxx:289
 AliTPCclustererKr.cxx:290
 AliTPCclustererKr.cxx:291
 AliTPCclustererKr.cxx:292
 AliTPCclustererKr.cxx:293
 AliTPCclustererKr.cxx:294
 AliTPCclustererKr.cxx:295
 AliTPCclustererKr.cxx:296
 AliTPCclustererKr.cxx:297
 AliTPCclustererKr.cxx:298
 AliTPCclustererKr.cxx:299
 AliTPCclustererKr.cxx:300
 AliTPCclustererKr.cxx:301
 AliTPCclustererKr.cxx:302
 AliTPCclustererKr.cxx:303
 AliTPCclustererKr.cxx:304
 AliTPCclustererKr.cxx:305
 AliTPCclustererKr.cxx:306
 AliTPCclustererKr.cxx:307
 AliTPCclustererKr.cxx:308
 AliTPCclustererKr.cxx:309
 AliTPCclustererKr.cxx:310
 AliTPCclustererKr.cxx:311
 AliTPCclustererKr.cxx:312
 AliTPCclustererKr.cxx:313
 AliTPCclustererKr.cxx:314
 AliTPCclustererKr.cxx:315
 AliTPCclustererKr.cxx:316
 AliTPCclustererKr.cxx:317
 AliTPCclustererKr.cxx:318
 AliTPCclustererKr.cxx:319
 AliTPCclustererKr.cxx:320
 AliTPCclustererKr.cxx:321
 AliTPCclustererKr.cxx:322
 AliTPCclustererKr.cxx:323
 AliTPCclustererKr.cxx:324
 AliTPCclustererKr.cxx:325
 AliTPCclustererKr.cxx:326
 AliTPCclustererKr.cxx:327
 AliTPCclustererKr.cxx:328
 AliTPCclustererKr.cxx:329
 AliTPCclustererKr.cxx:330
 AliTPCclustererKr.cxx:331
 AliTPCclustererKr.cxx:332
 AliTPCclustererKr.cxx:333
 AliTPCclustererKr.cxx:334
 AliTPCclustererKr.cxx:335
 AliTPCclustererKr.cxx:336
 AliTPCclustererKr.cxx:337
 AliTPCclustererKr.cxx:338
 AliTPCclustererKr.cxx:339
 AliTPCclustererKr.cxx:340
 AliTPCclustererKr.cxx:341
 AliTPCclustererKr.cxx:342
 AliTPCclustererKr.cxx:343
 AliTPCclustererKr.cxx:344
 AliTPCclustererKr.cxx:345
 AliTPCclustererKr.cxx:346
 AliTPCclustererKr.cxx:347
 AliTPCclustererKr.cxx:348
 AliTPCclustererKr.cxx:349
 AliTPCclustererKr.cxx:350
 AliTPCclustererKr.cxx:351
 AliTPCclustererKr.cxx:352
 AliTPCclustererKr.cxx:353
 AliTPCclustererKr.cxx:354
 AliTPCclustererKr.cxx:355
 AliTPCclustererKr.cxx:356
 AliTPCclustererKr.cxx:357
 AliTPCclustererKr.cxx:358
 AliTPCclustererKr.cxx:359
 AliTPCclustererKr.cxx:360
 AliTPCclustererKr.cxx:361
 AliTPCclustererKr.cxx:362
 AliTPCclustererKr.cxx:363
 AliTPCclustererKr.cxx:364
 AliTPCclustererKr.cxx:365
 AliTPCclustererKr.cxx:366
 AliTPCclustererKr.cxx:367
 AliTPCclustererKr.cxx:368
 AliTPCclustererKr.cxx:369
 AliTPCclustererKr.cxx:370
 AliTPCclustererKr.cxx:371
 AliTPCclustererKr.cxx:372
 AliTPCclustererKr.cxx:373
 AliTPCclustererKr.cxx:374
 AliTPCclustererKr.cxx:375
 AliTPCclustererKr.cxx:376
 AliTPCclustererKr.cxx:377
 AliTPCclustererKr.cxx:378
 AliTPCclustererKr.cxx:379
 AliTPCclustererKr.cxx:380
 AliTPCclustererKr.cxx:381
 AliTPCclustererKr.cxx:382
 AliTPCclustererKr.cxx:383
 AliTPCclustererKr.cxx:384
 AliTPCclustererKr.cxx:385
 AliTPCclustererKr.cxx:386
 AliTPCclustererKr.cxx:387
 AliTPCclustererKr.cxx:388
 AliTPCclustererKr.cxx:389
 AliTPCclustererKr.cxx:390
 AliTPCclustererKr.cxx:391
 AliTPCclustererKr.cxx:392
 AliTPCclustererKr.cxx:393
 AliTPCclustererKr.cxx:394
 AliTPCclustererKr.cxx:395
 AliTPCclustererKr.cxx:396
 AliTPCclustererKr.cxx:397
 AliTPCclustererKr.cxx:398
 AliTPCclustererKr.cxx:399
 AliTPCclustererKr.cxx:400
 AliTPCclustererKr.cxx:401
 AliTPCclustererKr.cxx:402
 AliTPCclustererKr.cxx:403
 AliTPCclustererKr.cxx:404
 AliTPCclustererKr.cxx:405
 AliTPCclustererKr.cxx:406
 AliTPCclustererKr.cxx:407
 AliTPCclustererKr.cxx:408
 AliTPCclustererKr.cxx:409
 AliTPCclustererKr.cxx:410
 AliTPCclustererKr.cxx:411
 AliTPCclustererKr.cxx:412
 AliTPCclustererKr.cxx:413
 AliTPCclustererKr.cxx:414
 AliTPCclustererKr.cxx:415
 AliTPCclustererKr.cxx:416
 AliTPCclustererKr.cxx:417
 AliTPCclustererKr.cxx:418
 AliTPCclustererKr.cxx:419
 AliTPCclustererKr.cxx:420
 AliTPCclustererKr.cxx:421
 AliTPCclustererKr.cxx:422
 AliTPCclustererKr.cxx:423
 AliTPCclustererKr.cxx:424
 AliTPCclustererKr.cxx:425
 AliTPCclustererKr.cxx:426
 AliTPCclustererKr.cxx:427
 AliTPCclustererKr.cxx:428
 AliTPCclustererKr.cxx:429
 AliTPCclustererKr.cxx:430
 AliTPCclustererKr.cxx:431
 AliTPCclustererKr.cxx:432
 AliTPCclustererKr.cxx:433
 AliTPCclustererKr.cxx:434
 AliTPCclustererKr.cxx:435
 AliTPCclustererKr.cxx:436
 AliTPCclustererKr.cxx:437
 AliTPCclustererKr.cxx:438
 AliTPCclustererKr.cxx:439
 AliTPCclustererKr.cxx:440
 AliTPCclustererKr.cxx:441
 AliTPCclustererKr.cxx:442
 AliTPCclustererKr.cxx:443
 AliTPCclustererKr.cxx:444
 AliTPCclustererKr.cxx:445
 AliTPCclustererKr.cxx:446
 AliTPCclustererKr.cxx:447
 AliTPCclustererKr.cxx:448
 AliTPCclustererKr.cxx:449
 AliTPCclustererKr.cxx:450
 AliTPCclustererKr.cxx:451
 AliTPCclustererKr.cxx:452
 AliTPCclustererKr.cxx:453
 AliTPCclustererKr.cxx:454
 AliTPCclustererKr.cxx:455
 AliTPCclustererKr.cxx:456
 AliTPCclustererKr.cxx:457
 AliTPCclustererKr.cxx:458
 AliTPCclustererKr.cxx:459
 AliTPCclustererKr.cxx:460
 AliTPCclustererKr.cxx:461
 AliTPCclustererKr.cxx:462
 AliTPCclustererKr.cxx:463
 AliTPCclustererKr.cxx:464
 AliTPCclustererKr.cxx:465
 AliTPCclustererKr.cxx:466
 AliTPCclustererKr.cxx:467
 AliTPCclustererKr.cxx:468
 AliTPCclustererKr.cxx:469
 AliTPCclustererKr.cxx:470
 AliTPCclustererKr.cxx:471
 AliTPCclustererKr.cxx:472
 AliTPCclustererKr.cxx:473
 AliTPCclustererKr.cxx:474
 AliTPCclustererKr.cxx:475
 AliTPCclustererKr.cxx:476
 AliTPCclustererKr.cxx:477
 AliTPCclustererKr.cxx:478
 AliTPCclustererKr.cxx:479
 AliTPCclustererKr.cxx:480
 AliTPCclustererKr.cxx:481
 AliTPCclustererKr.cxx:482
 AliTPCclustererKr.cxx:483
 AliTPCclustererKr.cxx:484
 AliTPCclustererKr.cxx:485
 AliTPCclustererKr.cxx:486
 AliTPCclustererKr.cxx:487
 AliTPCclustererKr.cxx:488
 AliTPCclustererKr.cxx:489
 AliTPCclustererKr.cxx:490
 AliTPCclustererKr.cxx:491
 AliTPCclustererKr.cxx:492
 AliTPCclustererKr.cxx:493
 AliTPCclustererKr.cxx:494
 AliTPCclustererKr.cxx:495
 AliTPCclustererKr.cxx:496
 AliTPCclustererKr.cxx:497
 AliTPCclustererKr.cxx:498
 AliTPCclustererKr.cxx:499
 AliTPCclustererKr.cxx:500
 AliTPCclustererKr.cxx:501
 AliTPCclustererKr.cxx:502
 AliTPCclustererKr.cxx:503
 AliTPCclustererKr.cxx:504
 AliTPCclustererKr.cxx:505
 AliTPCclustererKr.cxx:506
 AliTPCclustererKr.cxx:507
 AliTPCclustererKr.cxx:508
 AliTPCclustererKr.cxx:509
 AliTPCclustererKr.cxx:510
 AliTPCclustererKr.cxx:511
 AliTPCclustererKr.cxx:512
 AliTPCclustererKr.cxx:513
 AliTPCclustererKr.cxx:514
 AliTPCclustererKr.cxx:515
 AliTPCclustererKr.cxx:516
 AliTPCclustererKr.cxx:517
 AliTPCclustererKr.cxx:518
 AliTPCclustererKr.cxx:519
 AliTPCclustererKr.cxx:520
 AliTPCclustererKr.cxx:521
 AliTPCclustererKr.cxx:522
 AliTPCclustererKr.cxx:523
 AliTPCclustererKr.cxx:524
 AliTPCclustererKr.cxx:525
 AliTPCclustererKr.cxx:526
 AliTPCclustererKr.cxx:527
 AliTPCclustererKr.cxx:528
 AliTPCclustererKr.cxx:529
 AliTPCclustererKr.cxx:530
 AliTPCclustererKr.cxx:531
 AliTPCclustererKr.cxx:532
 AliTPCclustererKr.cxx:533
 AliTPCclustererKr.cxx:534
 AliTPCclustererKr.cxx:535
 AliTPCclustererKr.cxx:536
 AliTPCclustererKr.cxx:537
 AliTPCclustererKr.cxx:538
 AliTPCclustererKr.cxx:539
 AliTPCclustererKr.cxx:540
 AliTPCclustererKr.cxx:541
 AliTPCclustererKr.cxx:542
 AliTPCclustererKr.cxx:543
 AliTPCclustererKr.cxx:544
 AliTPCclustererKr.cxx:545
 AliTPCclustererKr.cxx:546
 AliTPCclustererKr.cxx:547
 AliTPCclustererKr.cxx:548
 AliTPCclustererKr.cxx:549
 AliTPCclustererKr.cxx:550
 AliTPCclustererKr.cxx:551
 AliTPCclustererKr.cxx:552
 AliTPCclustererKr.cxx:553
 AliTPCclustererKr.cxx:554
 AliTPCclustererKr.cxx:555
 AliTPCclustererKr.cxx:556
 AliTPCclustererKr.cxx:557
 AliTPCclustererKr.cxx:558
 AliTPCclustererKr.cxx:559
 AliTPCclustererKr.cxx:560
 AliTPCclustererKr.cxx:561
 AliTPCclustererKr.cxx:562
 AliTPCclustererKr.cxx:563
 AliTPCclustererKr.cxx:564
 AliTPCclustererKr.cxx:565
 AliTPCclustererKr.cxx:566
 AliTPCclustererKr.cxx:567
 AliTPCclustererKr.cxx:568
 AliTPCclustererKr.cxx:569
 AliTPCclustererKr.cxx:570
 AliTPCclustererKr.cxx:571
 AliTPCclustererKr.cxx:572
 AliTPCclustererKr.cxx:573
 AliTPCclustererKr.cxx:574
 AliTPCclustererKr.cxx:575
 AliTPCclustererKr.cxx:576
 AliTPCclustererKr.cxx:577
 AliTPCclustererKr.cxx:578
 AliTPCclustererKr.cxx:579
 AliTPCclustererKr.cxx:580
 AliTPCclustererKr.cxx:581
 AliTPCclustererKr.cxx:582
 AliTPCclustererKr.cxx:583
 AliTPCclustererKr.cxx:584
 AliTPCclustererKr.cxx:585
 AliTPCclustererKr.cxx:586
 AliTPCclustererKr.cxx:587
 AliTPCclustererKr.cxx:588
 AliTPCclustererKr.cxx:589
 AliTPCclustererKr.cxx:590
 AliTPCclustererKr.cxx:591
 AliTPCclustererKr.cxx:592
 AliTPCclustererKr.cxx:593
 AliTPCclustererKr.cxx:594
 AliTPCclustererKr.cxx:595
 AliTPCclustererKr.cxx:596
 AliTPCclustererKr.cxx:597
 AliTPCclustererKr.cxx:598
 AliTPCclustererKr.cxx:599
 AliTPCclustererKr.cxx:600
 AliTPCclustererKr.cxx:601
 AliTPCclustererKr.cxx:602
 AliTPCclustererKr.cxx:603
 AliTPCclustererKr.cxx:604
 AliTPCclustererKr.cxx:605
 AliTPCclustererKr.cxx:606
 AliTPCclustererKr.cxx:607
 AliTPCclustererKr.cxx:608
 AliTPCclustererKr.cxx:609
 AliTPCclustererKr.cxx:610
 AliTPCclustererKr.cxx:611
 AliTPCclustererKr.cxx:612
 AliTPCclustererKr.cxx:613
 AliTPCclustererKr.cxx:614
 AliTPCclustererKr.cxx:615
 AliTPCclustererKr.cxx:616
 AliTPCclustererKr.cxx:617
 AliTPCclustererKr.cxx:618
 AliTPCclustererKr.cxx:619
 AliTPCclustererKr.cxx:620
 AliTPCclustererKr.cxx:621
 AliTPCclustererKr.cxx:622
 AliTPCclustererKr.cxx:623
 AliTPCclustererKr.cxx:624
 AliTPCclustererKr.cxx:625
 AliTPCclustererKr.cxx:626
 AliTPCclustererKr.cxx:627
 AliTPCclustererKr.cxx:628
 AliTPCclustererKr.cxx:629
 AliTPCclustererKr.cxx:630
 AliTPCclustererKr.cxx:631
 AliTPCclustererKr.cxx:632
 AliTPCclustererKr.cxx:633
 AliTPCclustererKr.cxx:634
 AliTPCclustererKr.cxx:635
 AliTPCclustererKr.cxx:636
 AliTPCclustererKr.cxx:637
 AliTPCclustererKr.cxx:638
 AliTPCclustererKr.cxx:639
 AliTPCclustererKr.cxx:640
 AliTPCclustererKr.cxx:641
 AliTPCclustererKr.cxx:642
 AliTPCclustererKr.cxx:643
 AliTPCclustererKr.cxx:644
 AliTPCclustererKr.cxx:645
 AliTPCclustererKr.cxx:646
 AliTPCclustererKr.cxx:647
 AliTPCclustererKr.cxx:648
 AliTPCclustererKr.cxx:649
 AliTPCclustererKr.cxx:650
 AliTPCclustererKr.cxx:651
 AliTPCclustererKr.cxx:652
 AliTPCclustererKr.cxx:653
 AliTPCclustererKr.cxx:654
 AliTPCclustererKr.cxx:655
 AliTPCclustererKr.cxx:656
 AliTPCclustererKr.cxx:657
 AliTPCclustererKr.cxx:658
 AliTPCclustererKr.cxx:659
 AliTPCclustererKr.cxx:660
 AliTPCclustererKr.cxx:661
 AliTPCclustererKr.cxx:662
 AliTPCclustererKr.cxx:663
 AliTPCclustererKr.cxx:664
 AliTPCclustererKr.cxx:665
 AliTPCclustererKr.cxx:666
 AliTPCclustererKr.cxx:667
 AliTPCclustererKr.cxx:668
 AliTPCclustererKr.cxx:669
 AliTPCclustererKr.cxx:670
 AliTPCclustererKr.cxx:671
 AliTPCclustererKr.cxx:672
 AliTPCclustererKr.cxx:673
 AliTPCclustererKr.cxx:674
 AliTPCclustererKr.cxx:675
 AliTPCclustererKr.cxx:676
 AliTPCclustererKr.cxx:677
 AliTPCclustererKr.cxx:678
 AliTPCclustererKr.cxx:679
 AliTPCclustererKr.cxx:680
 AliTPCclustererKr.cxx:681
 AliTPCclustererKr.cxx:682
 AliTPCclustererKr.cxx:683
 AliTPCclustererKr.cxx:684
 AliTPCclustererKr.cxx:685
 AliTPCclustererKr.cxx:686
 AliTPCclustererKr.cxx:687
 AliTPCclustererKr.cxx:688
 AliTPCclustererKr.cxx:689
 AliTPCclustererKr.cxx:690
 AliTPCclustererKr.cxx:691
 AliTPCclustererKr.cxx:692
 AliTPCclustererKr.cxx:693
 AliTPCclustererKr.cxx:694
 AliTPCclustererKr.cxx:695
 AliTPCclustererKr.cxx:696
 AliTPCclustererKr.cxx:697
 AliTPCclustererKr.cxx:698
 AliTPCclustererKr.cxx:699
 AliTPCclustererKr.cxx:700
 AliTPCclustererKr.cxx:701
 AliTPCclustererKr.cxx:702
 AliTPCclustererKr.cxx:703
 AliTPCclustererKr.cxx:704
 AliTPCclustererKr.cxx:705
 AliTPCclustererKr.cxx:706
 AliTPCclustererKr.cxx:707
 AliTPCclustererKr.cxx:708
 AliTPCclustererKr.cxx:709
 AliTPCclustererKr.cxx:710
 AliTPCclustererKr.cxx:711
 AliTPCclustererKr.cxx:712
 AliTPCclustererKr.cxx:713
 AliTPCclustererKr.cxx:714
 AliTPCclustererKr.cxx:715
 AliTPCclustererKr.cxx:716
 AliTPCclustererKr.cxx:717
 AliTPCclustererKr.cxx:718
 AliTPCclustererKr.cxx:719
 AliTPCclustererKr.cxx:720
 AliTPCclustererKr.cxx:721
 AliTPCclustererKr.cxx:722
 AliTPCclustererKr.cxx:723
 AliTPCclustererKr.cxx:724
 AliTPCclustererKr.cxx:725
 AliTPCclustererKr.cxx:726
 AliTPCclustererKr.cxx:727
 AliTPCclustererKr.cxx:728
 AliTPCclustererKr.cxx:729
 AliTPCclustererKr.cxx:730
 AliTPCclustererKr.cxx:731
 AliTPCclustererKr.cxx:732
 AliTPCclustererKr.cxx:733
 AliTPCclustererKr.cxx:734
 AliTPCclustererKr.cxx:735
 AliTPCclustererKr.cxx:736
 AliTPCclustererKr.cxx:737
 AliTPCclustererKr.cxx:738
 AliTPCclustererKr.cxx:739
 AliTPCclustererKr.cxx:740
 AliTPCclustererKr.cxx:741
 AliTPCclustererKr.cxx:742
 AliTPCclustererKr.cxx:743
 AliTPCclustererKr.cxx:744
 AliTPCclustererKr.cxx:745
 AliTPCclustererKr.cxx:746
 AliTPCclustererKr.cxx:747
 AliTPCclustererKr.cxx:748
 AliTPCclustererKr.cxx:749
 AliTPCclustererKr.cxx:750
 AliTPCclustererKr.cxx:751
 AliTPCclustererKr.cxx:752
 AliTPCclustererKr.cxx:753
 AliTPCclustererKr.cxx:754
 AliTPCclustererKr.cxx:755
 AliTPCclustererKr.cxx:756
 AliTPCclustererKr.cxx:757
 AliTPCclustererKr.cxx:758
 AliTPCclustererKr.cxx:759
 AliTPCclustererKr.cxx:760
 AliTPCclustererKr.cxx:761
 AliTPCclustererKr.cxx:762
 AliTPCclustererKr.cxx:763
 AliTPCclustererKr.cxx:764
 AliTPCclustererKr.cxx:765
 AliTPCclustererKr.cxx:766
 AliTPCclustererKr.cxx:767
 AliTPCclustererKr.cxx:768
 AliTPCclustererKr.cxx:769
 AliTPCclustererKr.cxx:770
 AliTPCclustererKr.cxx:771
 AliTPCclustererKr.cxx:772
 AliTPCclustererKr.cxx:773
 AliTPCclustererKr.cxx:774
 AliTPCclustererKr.cxx:775
 AliTPCclustererKr.cxx:776
 AliTPCclustererKr.cxx:777
 AliTPCclustererKr.cxx:778
 AliTPCclustererKr.cxx:779
 AliTPCclustererKr.cxx:780
 AliTPCclustererKr.cxx:781
 AliTPCclustererKr.cxx:782
 AliTPCclustererKr.cxx:783
 AliTPCclustererKr.cxx:784
 AliTPCclustererKr.cxx:785
 AliTPCclustererKr.cxx:786
 AliTPCclustererKr.cxx:787
 AliTPCclustererKr.cxx:788
 AliTPCclustererKr.cxx:789
 AliTPCclustererKr.cxx:790
 AliTPCclustererKr.cxx:791
 AliTPCclustererKr.cxx:792
 AliTPCclustererKr.cxx:793
 AliTPCclustererKr.cxx:794
 AliTPCclustererKr.cxx:795
 AliTPCclustererKr.cxx:796
 AliTPCclustererKr.cxx:797
 AliTPCclustererKr.cxx:798
 AliTPCclustererKr.cxx:799
 AliTPCclustererKr.cxx:800
 AliTPCclustererKr.cxx:801
 AliTPCclustererKr.cxx:802
 AliTPCclustererKr.cxx:803
 AliTPCclustererKr.cxx:804
 AliTPCclustererKr.cxx:805
 AliTPCclustererKr.cxx:806
 AliTPCclustererKr.cxx:807
 AliTPCclustererKr.cxx:808
 AliTPCclustererKr.cxx:809
 AliTPCclustererKr.cxx:810
 AliTPCclustererKr.cxx:811
 AliTPCclustererKr.cxx:812
 AliTPCclustererKr.cxx:813
 AliTPCclustererKr.cxx:814
 AliTPCclustererKr.cxx:815
 AliTPCclustererKr.cxx:816
 AliTPCclustererKr.cxx:817
 AliTPCclustererKr.cxx:818
 AliTPCclustererKr.cxx:819
 AliTPCclustererKr.cxx:820
 AliTPCclustererKr.cxx:821
 AliTPCclustererKr.cxx:822
 AliTPCclustererKr.cxx:823
 AliTPCclustererKr.cxx:824
 AliTPCclustererKr.cxx:825
 AliTPCclustererKr.cxx:826
 AliTPCclustererKr.cxx:827
 AliTPCclustererKr.cxx:828
 AliTPCclustererKr.cxx:829
 AliTPCclustererKr.cxx:830
 AliTPCclustererKr.cxx:831
 AliTPCclustererKr.cxx:832
 AliTPCclustererKr.cxx:833
 AliTPCclustererKr.cxx:834
 AliTPCclustererKr.cxx:835
 AliTPCclustererKr.cxx:836
 AliTPCclustererKr.cxx:837
 AliTPCclustererKr.cxx:838
 AliTPCclustererKr.cxx:839
 AliTPCclustererKr.cxx:840
 AliTPCclustererKr.cxx:841
 AliTPCclustererKr.cxx:842
 AliTPCclustererKr.cxx:843
 AliTPCclustererKr.cxx:844
 AliTPCclustererKr.cxx:845
 AliTPCclustererKr.cxx:846
 AliTPCclustererKr.cxx:847
 AliTPCclustererKr.cxx:848
 AliTPCclustererKr.cxx:849
 AliTPCclustererKr.cxx:850
 AliTPCclustererKr.cxx:851
 AliTPCclustererKr.cxx:852
 AliTPCclustererKr.cxx:853
 AliTPCclustererKr.cxx:854
 AliTPCclustererKr.cxx:855
 AliTPCclustererKr.cxx:856
 AliTPCclustererKr.cxx:857
 AliTPCclustererKr.cxx:858
 AliTPCclustererKr.cxx:859
 AliTPCclustererKr.cxx:860
 AliTPCclustererKr.cxx:861
 AliTPCclustererKr.cxx:862
 AliTPCclustererKr.cxx:863
 AliTPCclustererKr.cxx:864
 AliTPCclustererKr.cxx:865
 AliTPCclustererKr.cxx:866
 AliTPCclustererKr.cxx:867
 AliTPCclustererKr.cxx:868
 AliTPCclustererKr.cxx:869
 AliTPCclustererKr.cxx:870
 AliTPCclustererKr.cxx:871
 AliTPCclustererKr.cxx:872
 AliTPCclustererKr.cxx:873
 AliTPCclustererKr.cxx:874
 AliTPCclustererKr.cxx:875
 AliTPCclustererKr.cxx:876
 AliTPCclustererKr.cxx:877
 AliTPCclustererKr.cxx:878
 AliTPCclustererKr.cxx:879
 AliTPCclustererKr.cxx:880
 AliTPCclustererKr.cxx:881
 AliTPCclustererKr.cxx:882
 AliTPCclustererKr.cxx:883
 AliTPCclustererKr.cxx:884
 AliTPCclustererKr.cxx:885
 AliTPCclustererKr.cxx:886
 AliTPCclustererKr.cxx:887
 AliTPCclustererKr.cxx:888
 AliTPCclustererKr.cxx:889
 AliTPCclustererKr.cxx:890
 AliTPCclustererKr.cxx:891
 AliTPCclustererKr.cxx:892
 AliTPCclustererKr.cxx:893
 AliTPCclustererKr.cxx:894
 AliTPCclustererKr.cxx:895
 AliTPCclustererKr.cxx:896
 AliTPCclustererKr.cxx:897
 AliTPCclustererKr.cxx:898
 AliTPCclustererKr.cxx:899
 AliTPCclustererKr.cxx:900
 AliTPCclustererKr.cxx:901
 AliTPCclustererKr.cxx:902
 AliTPCclustererKr.cxx:903
 AliTPCclustererKr.cxx:904
 AliTPCclustererKr.cxx:905
 AliTPCclustererKr.cxx:906
 AliTPCclustererKr.cxx:907
 AliTPCclustererKr.cxx:908
 AliTPCclustererKr.cxx:909
 AliTPCclustererKr.cxx:910
 AliTPCclustererKr.cxx:911
 AliTPCclustererKr.cxx:912
 AliTPCclustererKr.cxx:913
 AliTPCclustererKr.cxx:914
 AliTPCclustererKr.cxx:915
 AliTPCclustererKr.cxx:916
 AliTPCclustererKr.cxx:917
 AliTPCclustererKr.cxx:918
 AliTPCclustererKr.cxx:919
 AliTPCclustererKr.cxx:920
 AliTPCclustererKr.cxx:921
 AliTPCclustererKr.cxx:922
 AliTPCclustererKr.cxx:923
 AliTPCclustererKr.cxx:924
 AliTPCclustererKr.cxx:925
 AliTPCclustererKr.cxx:926
 AliTPCclustererKr.cxx:927
 AliTPCclustererKr.cxx:928
 AliTPCclustererKr.cxx:929
 AliTPCclustererKr.cxx:930
 AliTPCclustererKr.cxx:931
 AliTPCclustererKr.cxx:932
 AliTPCclustererKr.cxx:933
 AliTPCclustererKr.cxx:934
 AliTPCclustererKr.cxx:935
 AliTPCclustererKr.cxx:936
 AliTPCclustererKr.cxx:937
 AliTPCclustererKr.cxx:938
 AliTPCclustererKr.cxx:939
 AliTPCclustererKr.cxx:940
 AliTPCclustererKr.cxx:941
 AliTPCclustererKr.cxx:942
 AliTPCclustererKr.cxx:943
 AliTPCclustererKr.cxx:944
 AliTPCclustererKr.cxx:945
 AliTPCclustererKr.cxx:946
 AliTPCclustererKr.cxx:947
 AliTPCclustererKr.cxx:948
 AliTPCclustererKr.cxx:949
 AliTPCclustererKr.cxx:950
 AliTPCclustererKr.cxx:951
 AliTPCclustererKr.cxx:952
 AliTPCclustererKr.cxx:953
 AliTPCclustererKr.cxx:954
 AliTPCclustererKr.cxx:955
 AliTPCclustererKr.cxx:956
 AliTPCclustererKr.cxx:957
 AliTPCclustererKr.cxx:958
 AliTPCclustererKr.cxx:959
 AliTPCclustererKr.cxx:960
 AliTPCclustererKr.cxx:961
 AliTPCclustererKr.cxx:962
 AliTPCclustererKr.cxx:963
 AliTPCclustererKr.cxx:964
 AliTPCclustererKr.cxx:965
 AliTPCclustererKr.cxx:966
 AliTPCclustererKr.cxx:967
 AliTPCclustererKr.cxx:968
 AliTPCclustererKr.cxx:969
 AliTPCclustererKr.cxx:970
 AliTPCclustererKr.cxx:971
 AliTPCclustererKr.cxx:972
 AliTPCclustererKr.cxx:973
 AliTPCclustererKr.cxx:974
 AliTPCclustererKr.cxx:975
 AliTPCclustererKr.cxx:976
 AliTPCclustererKr.cxx:977
 AliTPCclustererKr.cxx:978
 AliTPCclustererKr.cxx:979
 AliTPCclustererKr.cxx:980
 AliTPCclustererKr.cxx:981
 AliTPCclustererKr.cxx:982
 AliTPCclustererKr.cxx:983
 AliTPCclustererKr.cxx:984
 AliTPCclustererKr.cxx:985
 AliTPCclustererKr.cxx:986