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

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Time Projection Chamber                                                  //
//  This class contains the basic functions for the Time Projection Chamber  //
//  detector. Functions specific to one particular geometry are              //
//  contained in the derived classes                                         //
//                                                                           //
//Begin_Html
/*
<img src="picts/AliTPCClass.gif">
*/
//End_Html
//                                                                           //
//                                                                          //
///////////////////////////////////////////////////////////////////////////////

//

#include <Riostream.h>
#include <stdlib.h>

#include <TF2.h>
#include <TFile.h>  
#include <TGeoGlobalMagField.h>
#include <TInterpreter.h>
#include <TMath.h>
#include <TMatrixF.h>
#include <TObjectTable.h>
#include <TParticle.h>
#include <TROOT.h>
#include <TRandom.h>
#include <TStopwatch.h>
#include <TString.h>
#include <TSystem.h>     
#include <TTree.h>
#include <TVector.h>
#include <TVirtualMC.h>
#include <TParameter.h>

#include "AliDigits.h"
#include "AliHeader.h"

#include "AliMagF.h"
#include "AliRun.h"
#include "AliRunLoader.h"
#include "AliSimDigits.h"
#include "AliTPC.h"
#include "AliTPC.h"
#include "AliTPCDigitsArray.h"
#include "AliTPCLoader.h"
#include "AliTPCPRF2D.h"
#include "AliTPCParamSR.h"
#include "AliTPCRF1D.h"
#include "AliTPCTrackHitsV2.h"
#include "AliTrackReference.h"
#include "AliMC.h"
#include "AliStack.h"
#include "AliTPCDigitizer.h"
#include "AliTPCBuffer.h"
#include "AliTPCDDLRawData.h"
#include "AliLog.h"
#include "AliTPCcalibDB.h"
#include "AliTPCRecoParam.h"
#include "AliTPCCalPad.h"
#include "AliTPCCalROC.h"
#include "AliTPCExB.h"
#include "AliTPCCorrection.h"
#include "AliCTPTimeParams.h"
#include "AliRawReader.h"
#include "AliTPCRawStreamV3.h"
#include "TTreeStream.h"

ClassImp(AliTPC) 
//_____________________________________________________________________________
  AliTPC::AliTPC():AliDetector(),
		   fDefaults(0),
		   fSens(0),
		   fNsectors(0),
		   fDigitsArray(0),
		   fTPCParam(0),
		   fTrackHits(0),
		   fHitType(0),
		   fDigitsSwitch(0),
		   fSide(0),
                   fPrimaryIonisation(0),
		   fNoiseDepth(0),
		   fNoiseTable(0),
		   fCurrentNoise(0),
		   fActiveSectors(0),
                   fGainFactor(1.),
                   fDebugStreamer(0),
                   fLHCclockPhaseSw(0),
		   fIsGEM(0)

{
  //
  // Default constructor
  //
  fIshunt   = 0;
  for(Int_t i=0;i<4;i++) fCurrentIndex[i]=0;
 
  //  fTrackHitsOld = 0;   
#if ROOT_VERSION_CODE >= ROOT_VERSION(4,0,1)
  fHitType = 4; // ROOT containers
#else
  fHitType = 2; //default CONTAINERS - based on ROOT structure
#endif 
}
 
//_____________________________________________________________________________
AliTPC::AliTPC(const char *name, const char *title)
  : AliDetector(name,title),
                   fDefaults(0),
		   fSens(0),
		   fNsectors(0),
		   fDigitsArray(0),
		   fTPCParam(0),
		   fTrackHits(0),
		   fHitType(0),
		   fDigitsSwitch(0),
		   fSide(0),
                   fPrimaryIonisation(0),
		   fNoiseDepth(0),
		   fNoiseTable(0),
		   fCurrentNoise(0),
                   fActiveSectors(0),
                   fGainFactor(1.),
                   fDebugStreamer(0),
    fLHCclockPhaseSw(0),
    fIsGEM(0)
                  
{
  //
  // Standard constructor
  //

  //
  // Initialise arrays of hits and digits 
  fHits     = new TClonesArray("AliTPChit",  176);
  gAlice->GetMCApp()->AddHitList(fHits); 
  //
  fTrackHits = new AliTPCTrackHitsV2;  
  fTrackHits->SetHitPrecision(0.002);
  fTrackHits->SetStepPrecision(0.003);  
  fTrackHits->SetMaxDistance(100);

  //fTrackHitsOld = new AliTPCTrackHits;  //MI - 13.09.2000
  //fTrackHitsOld->SetHitPrecision(0.002);
  //fTrackHitsOld->SetStepPrecision(0.003);  
  //fTrackHitsOld->SetMaxDistance(100); 


#if ROOT_VERSION_CODE >= ROOT_VERSION(4,0,1)
  fHitType = 4; // ROOT containers
#else
  fHitType = 2;
#endif

  for(Int_t i=0;i<4;i++) fCurrentIndex[i]=0;

  //
  fIshunt     =  0;
  //
  // Initialise color attributes
  //PH SetMarkerColor(kYellow);

  //
  //  Set TPC parameters
  //


  if (!strcmp(title,"Ne-CO2") || !strcmp(title,"Ne-CO2-N") || !strcmp(title,"Default") ) {       
      fTPCParam = AliTPCcalibDB::Instance()->GetParameters();
  } else {
      
    AliWarning("In Config.C you must set non-default parameters.");
    fTPCParam=0;    
  }

}
void AliTPC::CreateDebugStremer(){
  //
  // Create Debug streamer to check simulation
  // 
  fDebugStreamer = new TTreeSRedirector("TPCSimdebug.root");
}
//_____________________________________________________________________________
AliTPC::~AliTPC()
{
  //
  // TPC destructor
  //

  fIshunt   = 0;
  delete fHits;
  delete fDigits;
  //delete fTPCParam;
  delete fTrackHits; //MI 15.09.2000
  //  delete fTrackHitsOld; //MI 10.12.2001
  
  fDigitsArray = 0x0;
  delete [] fNoiseTable;
  delete [] fActiveSectors;
  if (fDebugStreamer) delete fDebugStreamer;
}

//_____________________________________________________________________________
void AliTPC::AddHit(Int_t track, Int_t *vol, Float_t *hits)
{
  //
  // Add a hit to the list
  //
  if (fHitType&1){
    TClonesArray &lhits = *fHits;
    new(lhits[fNhits++]) AliTPChit(fIshunt,track,vol,hits);
  }
  if (fHitType>1)
    AddHit2(track,vol,hits);
}

//_____________________________________________________________________________
void AliTPC::CreateMaterials()
{
  //-----------------------------------------------
  // Create Materials for for TPC simulations
  //-----------------------------------------------

  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  //-----------------------------------------------------------------

   Int_t iSXFLD=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
  Float_t sXMGMX=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();

  Float_t amat[7]; // atomic numbers
  Float_t zmat[7]; // z
  Float_t wmat[7]; // proportions

  Float_t density;
 


  //***************** Gases *************************

 
  //--------------------------------------------------------------
  // gases - air and CO2
  //--------------------------------------------------------------

  // CO2

  amat[0]=12.011;
  amat[1]=15.9994;

  zmat[0]=6.;
  zmat[1]=8.;

  wmat[0]=0.2729;
  wmat[1]=0.7271;

  density=1.842e-3;


  AliMixture(10,"CO2",amat,zmat,density,2,wmat);
  //
  // Air
  //
  amat[0]=15.9994;
  amat[1]=14.007;
  //
  zmat[0]=8.;
  zmat[1]=7.;
  //
  wmat[0]=0.233;
  wmat[1]=0.767;
  //
  density=0.001205;

  AliMixture(11,"Air",amat,zmat,density,2,wmat);
  
  //----------------------------------------------------------------
  // drift gases 5 mixtures, 5 materials
  //----------------------------------------------------------------
  //
  // Drift gases 1 - nonsensitive, 2 - sensitive, 3 - for Kr
  //  Composition by % of volume, values at 20deg and 1 atm.
  //
  //  get the geometry title - defined in Config.C
  //
  //--------------------------------------------------------------
  //  predefined gases, composition taken from param file
  //--------------------------------------------------------------
  TString names[6]={"Ne","Ar","CO2","N","CF4","CH4"};
  TString gname;
  Float_t *comp = fTPCParam->GetComposition();
  // indices:
  // 0-Ne, 1-Ar, 2-CO2, 3-N, 4-CF4, 5-CH4
  //
  // elements' masses
  // 
  amat[0]=20.18; //Ne
  amat[1]=39.95; //Ar
  amat[2]=12.011; //C
  amat[3]=15.9994; //O
  amat[4]=14.007; //N
  amat[5]=18.998; //F
  amat[6]=1.; //H
  //
  // elements' atomic numbers
  //
  // 
  zmat[0]=10.; //Ne
  zmat[1]=18.; //Ar
  zmat[2]=6.;  //C
  zmat[3]=8.;  //O
  zmat[4]=7.;  //N
  zmat[5]=9.;  //F
  zmat[6]=1.;  //H
  //
  // Mol masses
  //
  Float_t wmol[6];
  wmol[0]=20.18; //Ne
  wmol[1]=39.948; //Ar
  wmol[2]=44.0098; //CO2
  wmol[3]=2.*14.0067; //N2
  wmol[4]=88.0046; //CF4
  wmol[5]=16.011; //CH4
  //
  Float_t wtot=0.; //total mass of the mixture
  for(Int_t i =0;i<6;i++){
    wtot += *(comp+i)*wmol[i]; 
  }
  wmat[0]=comp[0]*amat[0]/wtot; //Ne
  wmat[1]=comp[1]*amat[1]/wtot; //Ar
  wmat[2]=(comp[2]*amat[2]+comp[4]*amat[2]+comp[5]*amat[2])/wtot; //C
  wmat[3]=comp[2]*amat[3]*2./wtot; //O
  wmat[4]=comp[3]*amat[4]*2./wtot; //N
  wmat[5]=comp[4]*amat[5]*4./wtot; //F
  wmat[6]=comp[5]*amat[6]*4./wtot; //H
  //
  // densities (NTP)
  //
  Float_t dens[6]={0.839e-3,1.661e-3,1.842e-3,1.251e-3,3.466e-3,0.668e-3};
 //
  density=0.;
  for(Int_t i=0;i<6;i++){
    density += comp[i]*dens[i];
  }
  //
  // names
  //
  Int_t cnt=0;
  for(Int_t i =0;i<6;i++){
    if(comp[i]){
     if(cnt)gname+="-"; 
      gname+=names[i];
      cnt++;   
    } 
  }
TString gname1,gname2,gname3;
gname1 = gname + "-1";
gname2 = gname + "-2";
gname3 = gname + "-3";
//
// take only elements with nonzero weights
//
 Float_t amat1[6],zmat1[6],wmat1[6];
 cnt=0;
 for(Int_t i=0;i<7;i++){
   if(wmat[i]){
     zmat1[cnt]=zmat[i];
     amat1[cnt]=amat[i];
     wmat1[cnt]=wmat[i];
     cnt++;
   }
 }
   
//
AliMixture(12,gname1.Data(),amat1,zmat1,density,cnt,wmat1); // nonsensitive
AliMixture(13,gname2.Data(),amat1,zmat1,density,cnt,wmat1); // sensitive
AliMixture(40,gname3.Data(),amat1,zmat1,density,cnt,wmat1); //sensitive Kr



  //----------------------------------------------------------------------
  //               solid materials
  //----------------------------------------------------------------------


  // Kevlar C14H22O2N2

  amat[0] = 12.011;
  amat[1] = 1.;
  amat[2] = 15.999;
  amat[3] = 14.006;

  zmat[0] = 6.;
  zmat[1] = 1.;
  zmat[2] = 8.;
  zmat[3] = 7.;

  wmat[0] = 14.;
  wmat[1] = 22.;
  wmat[2] = 2.;
  wmat[3] = 2.;

  density = 1.45;

  AliMixture(14,"Kevlar",amat,zmat,density,-4,wmat);  

  // NOMEX

  amat[0] = 12.011;
  amat[1] = 1.;
  amat[2] = 15.999;
  amat[3] = 14.006;

  zmat[0] = 6.;
  zmat[1] = 1.;
  zmat[2] = 8.;
  zmat[3] = 7.;

  wmat[0] = 14.;
  wmat[1] = 22.;
  wmat[2] = 2.;
  wmat[3] = 2.;

  density = 0.029;
 
  AliMixture(15,"NOMEX",amat,zmat,density,-4,wmat);

  // Makrolon C16H18O3

  amat[0] = 12.011;
  amat[1] = 1.;
  amat[2] = 15.999;

  zmat[0] = 6.;
  zmat[1] = 1.;
  zmat[2] = 8.;

  wmat[0] = 16.;
  wmat[1] = 18.;
  wmat[2] = 3.;
  
  density = 1.2;

  AliMixture(16,"Makrolon",amat,zmat,density,-3,wmat);

  // Tedlar C2H3F

  amat[0] = 12.011;
  amat[1] = 1.;
  amat[2] = 18.998;

  zmat[0] = 6.;
  zmat[1] = 1.;
  zmat[2] = 9.;

  wmat[0] = 2.;
  wmat[1] = 3.; 
  wmat[2] = 1.;

  density = 1.71;

  AliMixture(17, "Tedlar",amat,zmat,density,-3,wmat);  
  
  // Mylar C5H4O2

  amat[0]=12.011;
  amat[1]=1.;
  amat[2]=15.9994;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;

  wmat[0]=5.;
  wmat[1]=4.;
  wmat[2]=2.; 

  density = 1.39;
  
  AliMixture(18, "Mylar",amat,zmat,density,-3,wmat); 
  // material for "prepregs"
  // Epoxy - C14 H20 O3
  // Quartz SiO2
  // Carbon C
  // prepreg1 60% C-fiber, 40% epoxy (vol)
  amat[0]=12.011;
  amat[1]=1.;
  amat[2]=15.994;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;

  wmat[0]=0.923;
  wmat[1]=0.023;
  wmat[2]=0.054;

  density=1.859;

  AliMixture(19, "Prepreg1",amat,zmat,density,3,wmat);

  //prepreg2 60% glass-fiber, 40% epoxy

  amat[0]=12.01;
  amat[1]=1.;
  amat[2]=15.994;
  amat[3]=28.086;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;
  zmat[3]=14.;

  wmat[0]=0.194;
  wmat[1]=0.023;
  wmat[2]=0.443;
  wmat[3]=0.34;

  density=1.82;

  AliMixture(20, "Prepreg2",amat,zmat,density,4,wmat);

  //prepreg3 50% glass-fiber, 50% epoxy

  amat[0]=12.01;
  amat[1]=1.;
  amat[2]=15.994;
  amat[3]=28.086;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;
  zmat[3]=14.;

  wmat[0]=0.257;
  wmat[1]=0.03;
  wmat[2]=0.412;
  wmat[3]=0.3;

  density=1.725;

  AliMixture(21, "Prepreg3",amat,zmat,density,4,wmat);

  // G10 60% SiO2 40% epoxy

  amat[0]=12.01;
  amat[1]=1.;
  amat[2]=15.994;
  amat[3]=28.086;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;
  zmat[3]=14.;

  wmat[0]=0.194;
  wmat[1]=0.023;
  wmat[2]=0.443;
  wmat[3]=0.340;

  density=1.7;

  AliMixture(22, "G10",amat,zmat,density,4,wmat);
 
  // Al

  amat[0] = 26.98;
  zmat[0] = 13.;

  density = 2.7;

  AliMaterial(23,"Al",amat[0],zmat[0],density,999.,999.);

  // Si (for electronics

  amat[0] = 28.086;
  zmat[0] = 14.;

  density = 2.33;

  AliMaterial(24,"Si",amat[0],zmat[0],density,999.,999.);

  // Cu

  amat[0] = 63.546;
  zmat[0] = 29.;

  density = 8.96;

  AliMaterial(25,"Cu",amat[0],zmat[0],density,999.,999.);

  // brass

  amat[0] = 63.546;
  zmat[0] = 29.;
  //
  amat[1]= 65.409;
  zmat[1]= 30.;
  //
  wmat[0]= 0.6;
  wmat[1]= 0.4;

  //
  density = 8.23;
  
 
  //
  AliMixture(33,"Brass",amat,zmat,density,2,wmat);
  
  // Epoxy - C14 H20 O3
 
  amat[0]=12.011;
  amat[1]=1.;
  amat[2]=15.9994;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;

  wmat[0]=14.;
  wmat[1]=20.;
  wmat[2]=3.;

  density=1.25;

  AliMixture(26,"Epoxy",amat,zmat,density,-3,wmat);
  
  // Epoxy - C14 H20 O3 for glue
 
  amat[0]=12.011;
  amat[1]=1.;
  amat[2]=15.9994;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;

  wmat[0]=14.;
  wmat[1]=20.;
  wmat[2]=3.;

  density=1.25;

  density *= 1.25;

  AliMixture(35,"Epoxy1",amat,zmat,density,-3,wmat);
  //
  // epoxy film - 90% epoxy, 10% glass fiber 
  //
  amat[0]=12.01;
  amat[1]=1.;
  amat[2]=15.994;
  amat[3]=28.086;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;
  zmat[3]=14.;

  wmat[0]=0.596;
  wmat[1]=0.071;
  wmat[2]=0.257;
  wmat[3]=0.076;


  density=1.345;

  AliMixture(34, "Epoxy-film",amat,zmat,density,4,wmat);

  // Plexiglas  C5H8O2

  amat[0]=12.011;
  amat[1]=1.;
  amat[2]=15.9994;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;

  wmat[0]=5.;
  wmat[1]=8.;
  wmat[2]=2.;

  density=1.18;

  AliMixture(27,"Plexiglas",amat,zmat,density,-3,wmat);

  // Carbon

  amat[0]=12.011;
  zmat[0]=6.;
  density= 2.265;

  AliMaterial(28,"C",amat[0],zmat[0],density,999.,999.);

  // Fe (steel for the inner heat screen)
 
  amat[0]=55.845;

  zmat[0]=26.;

  density=7.87;

  AliMaterial(29,"Fe",amat[0],zmat[0],density,999.,999.);
  //
  // Peek - (C6H4-O-OC6H4-O-C6H4-CO)n
  amat[0]=12.011;
  amat[1]=1.;
  amat[2]=15.9994;

  zmat[0]=6.;
  zmat[1]=1.;
  zmat[2]=8.;

  wmat[0]=19.;
  wmat[1]=12.;
  wmat[2]=3.;
  //
  density=1.3;
  //
  AliMixture(30,"Peek",amat,zmat,density,-3,wmat);  
  //
  //  Ceramics - Al2O3
  //
  amat[0] = 26.98;
  amat[1]= 15.9994;

  zmat[0] = 13.;
  zmat[1]=8.;
 
  wmat[0]=2.;
  wmat[1]=3.;
 
  density = 3.97;

  AliMixture(31,"Alumina",amat,zmat,density,-2,wmat);  
  //
  // Ceramics for resistors
  //
  amat[0] = 26.98;
  amat[1]= 15.9994;

  zmat[0] = 13.;
  zmat[1]=8.;
 
  wmat[0]=2.;
  wmat[1]=3.; 

  density = 3.97;
  //
  density *=1.25;

  AliMixture(36,"Alumina1",amat,zmat,density,-2,wmat);
  //
  // liquids
  //

  // water

  amat[0]=1.;
  amat[1]=15.9994;

  zmat[0]=1.;
  zmat[1]=8.;

  wmat[0]=2.;
  wmat[1]=1.;

  density=1.;

  AliMixture(32,"Water",amat,zmat,density,-2,wmat);  

 
  //----------------------------------------------------------
  // tracking media for gases
  //----------------------------------------------------------

  AliMedium(0, "Air", 11, 0, iSXFLD, sXMGMX, 10., 999., .1, .01, .1);
  AliMedium(1, "DriftGas1", 12, 0, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001);
  AliMedium(2, "DriftGas2", 13, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001);
  AliMedium(3,"CO2",10,0, iSXFLD, sXMGMX, 10., 999.,.1, .001, .001); 
  AliMedium(20, "DriftGas3", 40, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001);
  //-----------------------------------------------------------  
  // tracking media for solids
  //-----------------------------------------------------------
  
  AliMedium(4,"Al",23,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  AliMedium(5,"Kevlar",14,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  AliMedium(6,"Nomex",15,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(7,"Makrolon",16,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(8,"Mylar",18,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  AliMedium(9,"Tedlar",17,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  //
  AliMedium(10,"Prepreg1",19,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  AliMedium(11,"Prepreg2",20,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  AliMedium(12,"Prepreg3",21,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);
  AliMedium(13,"Epoxy",26,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001);

  AliMedium(14,"Cu",25,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(15,"Si",24,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(16,"G10",22,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(17,"Plexiglas",27,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(18,"Steel",29,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); 
  AliMedium(19,"Peek",30,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(21,"Alumina",31,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);    
  AliMedium(22,"Water",32,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(23,"Brass",33,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
  AliMedium(24,"Epoxyfm",34,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); 
  AliMedium(25,"Epoxy1",35,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); 
  AliMedium(26,"Alumina1",36,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001);
}

void AliTPC::GenerNoise(Int_t tablesize)
{
  //
  //Generate table with noise
  //
  if (fTPCParam==0) {
    // error message
    fNoiseDepth=0;
    return;
  }
  if (fNoiseTable)  delete[] fNoiseTable;
  fNoiseTable = new Float_t[tablesize];
  fNoiseDepth = tablesize; 
  fCurrentNoise =0; //!index of the noise in  the noise table 
  
  Float_t norm = fTPCParam->GetNoise()*fTPCParam->GetNoiseNormFac();
  for (Int_t i=0;i<tablesize;i++) fNoiseTable[i]= gRandom->Gaus(0,norm);      
}

Float_t AliTPC::GetNoise()
{
  // get noise from table
  //  if ((fCurrentNoise%10)==0) 
  //  fCurrentNoise= gRandom->Rndm()*fNoiseDepth;
  if (fCurrentNoise>=fNoiseDepth) fCurrentNoise=0;
  return fNoiseTable[fCurrentNoise++];
  //gRandom->Gaus(0, fTPCParam->GetNoise()*fTPCParam->GetNoiseNormFac()); 
}


Bool_t  AliTPC::IsSectorActive(Int_t sec) const
{
  //
  // check if the sector is active
  if (!fActiveSectors) return kTRUE;
  else return fActiveSectors[sec]; 
}

void    AliTPC::SetActiveSectors(Int_t * sectors, Int_t n)
{
  // activate interesting sectors
  SetTreeAddress();//just for security
  if (!fActiveSectors) fActiveSectors = new Bool_t[fTPCParam->GetNSector()];
  for (Int_t i=0;i<fTPCParam->GetNSector();i++) fActiveSectors[i]=kFALSE;
  for (Int_t i=0;i<n;i++) 
    if ((sectors[i]>=0) && sectors[i]<fTPCParam->GetNSector())  fActiveSectors[sectors[i]]=kTRUE;
    
}

void    AliTPC::SetActiveSectors(Int_t flag)
{
  //
  // activate sectors which were hitted by tracks 
  //loop over tracks
  SetTreeAddress();//just for security
  if (fHitType==0) return;  // if Clones hit - not short volume ID information
  if (!fActiveSectors) fActiveSectors = new Bool_t[fTPCParam->GetNSector()];
  if (flag) {
    for (Int_t i=0;i<fTPCParam->GetNSector();i++) fActiveSectors[i]=kTRUE;
    return;
  }
  for (Int_t i=0;i<fTPCParam->GetNSector();i++) fActiveSectors[i]=kFALSE;
  //TBranch * branch=0;
  if (fLoader->TreeH() == 0x0)
   {
     AliFatal("Can not find TreeH in folder");
     return;
   }
  //if (fHitType>1) branch = fLoader->TreeH()->GetBranch("TPC2");
  if (fHitType>1) fLoader->TreeH()->GetBranch("TPC2");
  //else branch = fLoader->TreeH()->GetBranch("TPC");
  else fLoader->TreeH()->GetBranch("TPC");
  Stat_t ntracks = fLoader->TreeH()->GetEntries();
  // loop over all hits
  AliDebug(1,Form("Got %d tracks", (Int_t) ntracks));
  
  for(Int_t track=0;track<ntracks;track++) {
    ResetHits();
    //
    if (fTrackHits && fHitType&4) {
      TBranch * br1 = fLoader->TreeH()->GetBranch("fVolumes");
      TBranch * br2 = fLoader->TreeH()->GetBranch("fNVolumes");
      br1->GetEvent(track);
      br2->GetEvent(track);
      Int_t *volumes = fTrackHits->GetVolumes();
      for (Int_t j=0;j<fTrackHits->GetNVolumes(); j++) {
	if (volumes[j]>-1 && volumes[j]<fTPCParam->GetNSector()) {
	  fActiveSectors[volumes[j]]=kTRUE;
	}
	else {
	    AliError(Form("Volume %d -> sector number %d is outside (0..%d)",
			  j,
			  volumes[j],
			  fTPCParam->GetNSector()));
	}
      }
    }
    
    //
//     if (fTrackHitsOld && fHitType&2) {
//       TBranch * br = fLoader->TreeH()->GetBranch("fTrackHitsInfo");
//       br->GetEvent(track);
//       AliObjectArray * ar = fTrackHitsOld->fTrackHitsInfo;
//       for (UInt_t j=0;j<ar->GetSize();j++){
// 	fActiveSectors[((AliTrackHitsInfo*)ar->At(j))->fVolumeID] =kTRUE;
//       } 
//     }    
  }
}  




//_____________________________________________________________________________
void AliTPC::Digits2Raw()
{
// convert digits of the current event to raw data

  static const Int_t kThreshold = 0;

  fLoader->LoadDigits();
  TTree* digits = fLoader->TreeD();
  if (!digits) {
    AliError("No digits tree");
    return;
  }

  //
  AliSimDigits digarr;
  AliSimDigits* digrow = &digarr;
  digits->GetBranch("Segment")->SetAddress(&digrow);

  const char* fileName = "AliTPCDDL.dat";
  AliTPCBuffer* buffer  = new AliTPCBuffer(fileName);
  //Verbose level
  // 0: Silent
  // 1: cout messages
  // 2: txt files with digits 
  //BE CAREFUL, verbose level 2 MUST be used only for debugging and
  //it is highly suggested to use this mode only for debugging digits files
  //reasonably small, because otherwise the size of the txt files can reach
  //quickly several MB wasting time and disk space.
  buffer->SetVerbose(0);

  Int_t nEntries = Int_t(digits->GetEntries());
  Int_t previousSector = -1;
  Int_t subSector = 0;
  for (Int_t i = 0; i < nEntries; i++) {
    digits->GetEntry(i);
    Int_t sector, row;
    fTPCParam->AdjustSectorRow(digarr.GetID(), sector, row);
    if(previousSector != sector) {
      subSector = 0;
      previousSector = sector;
    }

    if (sector < 36) { //inner sector [0;35]
      if (row != 30) {
	//the whole row is written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 0, 0, 0, 
			       sector, subSector, row);
      } else {
	//only the pads in the range [37;48] are written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 37, 48, 1, 
			       sector, subSector, row);
	subSector = 1;
	//only the pads outside the range [37;48] are written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 37, 48, 2, 
			       sector, subSector, row);
      }//end else

    } else { //outer sector [36;71]
      if (row == 54) subSector = 2;
      if ((row != 27) && (row != 76)) {
	buffer->WriteRowBinary(kThreshold, digrow, 0, 0, 0,
			       sector, subSector, row);
      } else if (row == 27) {
	//only the pads outside the range [43;46] are written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 43, 46, 2,
				 sector, subSector, row);
	subSector = 1;
	//only the pads in the range [43;46] are written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 43, 46, 1,
				 sector, subSector, row);
      } else if (row == 76) {
	//only the pads outside the range [33;88] are written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 33, 88, 2,
			       sector, subSector, row);
	subSector = 3;
	//only the pads in the range [33;88] are written into the output file
	buffer->WriteRowBinary(kThreshold, digrow, 33, 88, 1,
				 sector, subSector, row);
      }
    }//end else
  }//end for

  delete buffer;
  fLoader->UnloadDigits();

  AliTPCDDLRawData rawWriter;
  rawWriter.SetVerbose(0);

  rawWriter.RawData(fileName);
  gSystem->Unlink(fileName);

}


//_____________________________________________________________________________
Bool_t AliTPC::Raw2SDigits(AliRawReader* rawReader){
  // Converts the TPC raw data into summable digits
  // The method is used for merging simulated and
  // real data events
  if (fLoader->TreeS() == 0x0 ) {
    fLoader->MakeTree("S");
  }

  if(fDefaults == 0) SetDefaults();  // check if the parameters are set

  //setup TPCDigitsArray 
  if(GetDigitsArray()) delete GetDigitsArray();

  AliTPCDigitsArray *arr = new AliTPCDigitsArray; 
  arr->SetClass("AliSimDigits");
  arr->Setup(fTPCParam);
  arr->MakeTree(fLoader->TreeS());

  SetDigitsArray(arr);

  // set zero suppression to "0"
  fTPCParam->SetZeroSup(0);

  // Loop over sectors
  const Int_t kmaxTime = fTPCParam->GetMaxTBin();
  const Int_t kNIS = fTPCParam->GetNInnerSector();
  const Int_t kNOS = fTPCParam->GetNOuterSector();
  const Int_t kNS = kNIS + kNOS;

  // Setup storage
  AliTPCROC * roc = AliTPCROC::Instance();
  Int_t nRowsMax = roc->GetNRows(roc->GetNSector()-1);
  Int_t nPadsMax = roc->GetNPads(roc->GetNSector()-1,nRowsMax-1);
  Short_t** allBins = new Short_t*[nRowsMax];
  for (Int_t iRow = 0; iRow < nRowsMax; iRow++) {
    Int_t maxBin = kmaxTime*nPadsMax;
    allBins[iRow] = new Short_t[maxBin];
    memset(allBins[iRow],0,sizeof(Short_t)*maxBin);
  }

  for(Int_t iSector = 0; iSector < kNS; iSector++) {
    
    Int_t nRows = fTPCParam->GetNRow(iSector);
    Int_t nDDLs = 0, indexDDL = 0;
    if (iSector < kNIS) {
      nDDLs = 2;
      indexDDL = iSector * 2;
    }
    else {
      nDDLs = 4;
      indexDDL = (iSector-kNIS) * 4 + kNIS * 2;
    }

    // Load the raw data for corresponding DDLs
    rawReader->Reset();

    AliTPCAltroMapping** mapping =AliTPCcalibDB::Instance()->GetMapping();
    AliTPCRawStreamV3 input(rawReader,(AliAltroMapping**)mapping);
    rawReader->Select("TPC",indexDDL,indexDDL+nDDLs-1);

    // Clean storage
    for (Int_t iRow = 0; iRow < nRowsMax; iRow++) {
      Int_t maxBin = kmaxTime*nPadsMax;
      memset(allBins[iRow],0,sizeof(Short_t)*maxBin);
    }

    // Begin loop over altro data
    while (input.NextDDL()) {

      if (input.GetSector() != iSector)
	AliFatal(Form("Sector index mismatch ! Expected (%d), but got (%d) !",iSector,input.GetSector()));

      //loop over pads
      while ( input.NextChannel() ) {

        Int_t iRow = input.GetRow();
        if (iRow < 0 || iRow >= nRows)
          AliFatal(Form("Pad-row index (%d) outside the range (%d -> %d) !",
                        iRow, 0, nRows -1));
        Int_t iPad = input.GetPad();

        Int_t maxPad = fTPCParam->GetNPads(iSector,iRow);

        if (iPad < 0 || iPad >= maxPad)
          AliFatal(Form("Pad index (%d) outside the range (%d -> %d) !",
                        iPad, 0, maxPad -1));

        //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();
          for (Int_t iTime = 0; iTime<bunchlength; iTime++){
            Int_t iTimeBin=startTbin-iTime;
            if ( iTimeBin < 0 || iTimeBin >= kmaxTime) {
              continue;
              //AliFatal(Form("Timebin index (%d) outside the range (%d -> %d) !",
              //               iTimeBin, 0, kmaxTime -1));
            }

            Int_t maxBin = kmaxTime*maxPad;
            if (((iPad*kmaxTime+iTimeBin) >= maxBin) ||
                ((iPad*kmaxTime+iTimeBin) < 0))
              AliFatal(Form("Index outside the allowed range"
                            " Sector=%d Row=%d Pad=%d Timebin=%d"
                            " (Max.index=%d)",iSector,iRow,iPad,iTimeBin,maxBin));
            allBins[iRow][iPad*kmaxTime+iTimeBin] = sig[iTime];
          }
        }
      } // End loop over altro data
    }

    // Now fill the digits array
    if (fDigitsArray->GetTree()==0) {
      AliFatal("Tree not set in fDigitsArray");
    }

    for (Int_t iRow = 0; iRow < nRows; iRow++) {
      AliDigits * dig = fDigitsArray->CreateRow(iSector,iRow);
      Int_t maxPad = fTPCParam->GetNPads(iSector,iRow);
      for(Int_t iPad = 0; iPad < maxPad; iPad++) {
	for(Int_t iTimeBin = 0; iTimeBin < kmaxTime; iTimeBin++) {
	  Short_t q = allBins[iRow][iPad*kmaxTime + iTimeBin];
	  if (q <= 0) continue;
	  q *= 16;
	  dig->SetDigitFast((Short_t)q,iTimeBin,iPad);
	  ((AliSimDigits*)dig)->SetTrackIDFast( 3141593, iTimeBin,iPad,0); 
	}
      }
      fDigitsArray->StoreRow(iSector,iRow);
      Int_t ndig = dig->GetDigitSize(); 
	
      AliDebug(10,
	       Form("*** Sector, row, compressed digits %d %d %d ***\n",
		    iSector,iRow,ndig));        
 	
      fDigitsArray->ClearRow(iSector,iRow);  

    } // end of the sector digitization
  }
  // get LHC clock phase from the digits tree

  TParameter<float> *ph; 
  Float_t phase;
  TTree *digtree = fLoader->TreeD();
  //
  if(digtree){ // if TreeD exists
    ph = (TParameter<float>*)digtree->GetUserInfo()->FindObject("lhcphase0");
    phase = ph->GetVal();
  }
  else{ //TreeD does not exist
    phase = 0.; 
  }
    //
    // store lhc clock phase in S-digits tree
    //
    fLoader->TreeS()->GetUserInfo()->Add(new TParameter<float>("lhcphase0",phase));
   //
   fLoader->WriteSDigits("OVERWRITE");

  if(GetDigitsArray()) delete GetDigitsArray();
  SetDigitsArray(0x0);

  // cleanup storage
  for (Int_t iRow = 0; iRow < nRowsMax; iRow++)
    delete [] allBins[iRow];
  delete [] allBins;

  return kTRUE;
}

//______________________________________________________________________
AliDigitizer* AliTPC::CreateDigitizer(AliDigitizationInput* digInput) const
{
  return new AliTPCDigitizer(digInput);
}
//__
void AliTPC::SDigits2Digits2(Int_t /*eventnumber*/)  
{
  //create digits from summable digits
  GenerNoise(500000); //create teble with noise

  //conect tree with sSDigits
  TTree *t = fLoader->TreeS();

  if (t == 0x0) {
    fLoader->LoadSDigits("READ");
    t = fLoader->TreeS();
    if (t == 0x0) {
      AliError("Can not get input TreeS");
      return;
    }
  }
  
  if (fLoader->TreeD() == 0x0) fLoader->MakeTree("D");
  
  AliSimDigits digarr, *dummy=&digarr;
  TBranch* sdb = t->GetBranch("Segment");
  if (sdb == 0x0) {
    AliError("Can not find branch with segments in TreeS.");
    return;
  }  

  sdb->SetAddress(&dummy);
      
  Stat_t nentries = t->GetEntries();

  // set zero suppression

  fTPCParam->SetZeroSup(2);

  // get zero suppression

  Int_t zerosup = fTPCParam->GetZeroSup();

  //make tree with digits 
  
  AliTPCDigitsArray *arr = new AliTPCDigitsArray; 
  arr->SetClass("AliSimDigits");
  arr->Setup(fTPCParam);
  arr->MakeTree(fLoader->TreeD());
  
  AliTPCParam * par = fTPCParam;

  //Loop over segments of the TPC

  for (Int_t n=0; n<nentries; n++) {
    t->GetEvent(n);
    Int_t sec, row;
    if (!par->AdjustSectorRow(digarr.GetID(),sec,row)) {
      AliWarning(Form("Invalid segment ID ! %d",digarr.GetID()));
      continue;
    }
    if (!IsSectorActive(sec)) continue;
    
    AliSimDigits * digrow =(AliSimDigits*) arr->CreateRow(sec,row);
    Int_t nrows = digrow->GetNRows();
    Int_t ncols = digrow->GetNCols();

    digrow->ExpandBuffer();
    digarr.ExpandBuffer();
    digrow->ExpandTrackBuffer();
    digarr.ExpandTrackBuffer();

    
    Short_t * pamp0 = digarr.GetDigits();
    Int_t   * ptracks0 = digarr.GetTracks();
    Short_t * pamp1 = digrow->GetDigits();
    Int_t   * ptracks1 = digrow->GetTracks();
    Int_t  nelems =nrows*ncols;
    Int_t saturation = fTPCParam->GetADCSat() - 1;
    //use internal structure of the AliDigits - for speed reason
    //if you cahnge implementation
    //of the Alidigits - it must be rewriten -
    for (Int_t i= 0; i<nelems; i++){
      Float_t q = TMath::Nint(Float_t(*pamp0)/16.+GetNoise());
      if (q>zerosup){
	if (q>saturation) q=saturation;      
	*pamp1=(Short_t)q;

	ptracks1[0]=ptracks0[0];	
	ptracks1[nelems]=ptracks0[nelems];
	ptracks1[2*nelems]=ptracks0[2*nelems];
      }
      pamp0++;
      pamp1++;
      ptracks0++;
      ptracks1++;	 
    }

    arr->StoreRow(sec,row);
    arr->ClearRow(sec,row);   
  }  

    
  //write results
  fLoader->WriteDigits("OVERWRITE");
   
  delete arr;
}
//__________________________________________________________________
void AliTPC::SetDefaults(){
  //
  // setting the defaults
  //
   
  // Set response functions

  //
  AliRunLoader* rl = (AliRunLoader*)fLoader->GetEventFolder()->FindObject(AliRunLoader::GetRunLoaderName());
  rl->CdGAFile();
  //AliTPCParamSR *param=(AliTPCParamSR*)gDirectory->Get("75x40_100x60");
  //gDirectory->Get("75x40_100x60");
  AliTPCParamSR *param = (AliTPCParamSR*)AliTPCcalibDB::Instance()->GetParameters();
  if(!param){
    AliFatal("No TPC parameters found");
    return;
  }
  if (!param->IsGeoRead()){
      //
      // read transformation matrices for gGeoManager
      //
      param->ReadGeoMatrices();
    }



  AliTPCPRF2D    * prfinner   = new AliTPCPRF2D;
  AliTPCPRF2D    * prfouter1   = new AliTPCPRF2D;
  AliTPCPRF2D    * prfouter2   = new AliTPCPRF2D;  

  
  //AliTPCRF1D     * rf    = new AliTPCRF1D(kTRUE);
  //rf->SetGauss(param->GetZSigma(),param->GetZWidth(),1.);
  //rf->SetOffset(3*param->GetZSigma());
  //rf->Update();
  //
  // Use gamma 4
  //
  char  strgamma4[1000];
  //sprintf(strgamma4,"AliTPCRF1D::Gamma4((x-0.135+%f)*%f,55,160)",3*param->GetZSigma(), 1000000000*param->GetTSample()/param->GetZWidth());
  
  snprintf(strgamma4,1000,"AliTPCRF1D::Gamma4((x-0.135+%f)*%f,55,160)",3*param->GetZSigma(), 1000000000*param->GetTSample()/param->GetZWidth());
  TF1 * fgamma4 = new TF1("fgamma4",strgamma4, -1,1);
  AliTPCRF1D     * rf    = new AliTPCRF1D(kTRUE,1000);
  rf->SetParam(fgamma4,param->GetZWidth(), 1,0.2);
  rf->SetOffset(3*param->GetZSigma()); 
  rf->Update();
  TDirectory *savedir=gDirectory;

  if (fIsGEM==0){
    printf ("TPC MWPC readout\n");
    TFile *f=TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2d.root");
    if (!f->IsOpen()) 
      AliFatal("Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !");
    
    TString s;
    prfinner->Read("prf_07504_Gati_056068_d02");
    //PH Set different names
    s=prfinner->GetGRF()->GetName();
    s+="in";
    prfinner->GetGRF()->SetName(s.Data());
    
    prfouter1->Read("prf_10006_Gati_047051_d03");
    s=prfouter1->GetGRF()->GetName();
    s+="out1";
    prfouter1->GetGRF()->SetName(s.Data());
    
    prfouter2->Read("prf_15006_Gati_047051_d03");  
    s=prfouter2->GetGRF()->GetName();
    s+="out2";
    prfouter2->GetGRF()->SetName(s.Data());    
    f->Close();
  }

  if (fIsGEM==1){
    printf ("TPC GEM readout\n");
    TFile *f=TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2dGEM.root");
    if (!f->IsOpen()) 
      AliFatal("Can't open $ALICE_ROOT/TPC/AliTPCprf2dGEM.root !");
    
    TString s;
    prfinner->Read("prf0");
    //PH Set different names
    s=prfinner->GetGRF()->GetName();
    s+="in";
    prfinner->GetGRF()->SetName(s.Data());
    
    prfouter1->Read("prf1");
    s=prfouter1->GetGRF()->GetName();
    s+="out1";
    prfouter1->GetGRF()->SetName(s.Data());
    
    prfouter2->Read("prf2");  
    s=prfouter2->GetGRF()->GetName();
    s+="out2";
    prfouter2->GetGRF()->SetName(s.Data());    
    f->Close();
  }
  savedir->cd();

  param->SetInnerPRF(prfinner);
  param->SetOuter1PRF(prfouter1); 
  param->SetOuter2PRF(prfouter2);
  param->SetTimeRF(rf);

  // set fTPCParam

  SetParam(param);


  fDefaults = 1;

}
//__________________________________________________________________  
void AliTPC::Hits2Digits()  
{
  //
  // creates digits from hits
  //
  if (!fTPCParam->IsGeoRead()){
    //
    // read transformation matrices for gGeoManager
    //
    fTPCParam->ReadGeoMatrices();
  }

  fLoader->LoadHits("read");
  fLoader->LoadDigits("recreate");
  AliRunLoader* runLoader = fLoader->GetRunLoader(); 

  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
    //PH    runLoader->GetEvent(iEvent);
    Hits2Digits(iEvent);
  }

  fLoader->UnloadHits();
  fLoader->UnloadDigits();
} 
//__________________________________________________________________  
void AliTPC::Hits2Digits(Int_t eventnumber)  
{ 
 //----------------------------------------------------
 // Loop over all sectors for a single event
 //----------------------------------------------------
  AliRunLoader* rl = (AliRunLoader*)fLoader->GetEventFolder()->FindObject(AliRunLoader::GetRunLoaderName());
  rl->GetEvent(eventnumber);
  SetActiveSectors();   
  if (fLoader->TreeH() == 0x0) {
    if(fLoader->LoadHits()) {
      AliError("Can not load hits.");
    }
  }
  SetTreeAddress();
  
  if (fLoader->TreeD() == 0x0 ) {
    fLoader->MakeTree("D");
    if (fLoader->TreeD() == 0x0 ) {
      AliError("Can not get TreeD");
      return;
    }
  }

  if(fDefaults == 0) SetDefaults();  // check if the parameters are set
  GenerNoise(500000); //create teble with noise

  //setup TPCDigitsArray 

  if(GetDigitsArray()) delete GetDigitsArray();
  
  AliTPCDigitsArray *arr = new AliTPCDigitsArray; 
  arr->SetClass("AliSimDigits");
  arr->Setup(fTPCParam);

  arr->MakeTree(fLoader->TreeD());
  SetDigitsArray(arr);

  fDigitsSwitch=0; // standard digits
  // here LHC clock phase
  Float_t lhcph = 0.;
  switch (fLHCclockPhaseSw){
  case 0: 
    // no phase
    lhcph=0.;
    break;
  case 1:
    // random phase
    lhcph = (Int_t)(gRandom->Rndm()/0.25);    
    break;
  case 2:
    lhcph=0.;
    // not implemented yet
    break;
  }
  // adding phase to the TreeD user info 
  fLoader->TreeD()->GetUserInfo()->Add(new TParameter<float>("lhcphase0",lhcph));
  //
  for(Int_t isec=0;isec<fTPCParam->GetNSector();isec++) 
    if (IsSectorActive(isec)) {
      AliDebug(1,Form("Hits2Digits: Sector %d is active.",isec));
      Hits2DigitsSector(isec);
    }
    else {
      AliDebug(1,Form("Hits2Digits: Sector %d is NOT active.",isec));
    }
  
  fLoader->WriteDigits("OVERWRITE"); 
  
//this line prevents the crash in the similar one
//on the beginning of this method
//destructor attempts to reset the tree, which is deleted by the loader
//need to be redesign
  if(GetDigitsArray()) delete GetDigitsArray();
  SetDigitsArray(0x0);
  
}

//__________________________________________________________________
void AliTPC::Hits2SDigits2(Int_t eventnumber)  
{ 

  //-----------------------------------------------------------
  //   summable digits - 16 bit "ADC", no noise, no saturation
  //-----------------------------------------------------------

  //----------------------------------------------------
  // Loop over all sectors for a single event
  //----------------------------------------------------

  AliRunLoader* rl = fLoader->GetRunLoader();

  rl->GetEvent(eventnumber);
  if (fLoader->TreeH() == 0x0) {
    if(fLoader->LoadHits()) {
      AliError("Can not load hits.");
      return;
    }
  }
  SetTreeAddress();


  if (fLoader->TreeS() == 0x0 ) {
    fLoader->MakeTree("S");
  }
  
  if(fDefaults == 0) SetDefaults();
  
  GenerNoise(500000); //create table with noise
  //setup TPCDigitsArray 

  if(GetDigitsArray()) delete GetDigitsArray();

  
  AliTPCDigitsArray *arr = new AliTPCDigitsArray; 
  arr->SetClass("AliSimDigits");
  arr->Setup(fTPCParam);
  arr->MakeTree(fLoader->TreeS());

  SetDigitsArray(arr);

  fDigitsSwitch=1; // summable digits
  
    // set zero suppression to "0"
  // here LHC clock phase
  Float_t lhcph = 0.;
  switch (fLHCclockPhaseSw){
  case 0: 
    // no phase
    lhcph=0.;
    break;
  case 1:
    // random phase
    lhcph = (Int_t)(gRandom->Rndm()/0.25);    
    break;
  case 2:
    lhcph=0.;
    // not implemented yet
    break;
  }
  // adding phase to the TreeS user info 
  
  fLoader->TreeS()->GetUserInfo()->Add(new TParameter<float>("lhcphase0",lhcph));

  fTPCParam->SetZeroSup(0);

  for(Int_t isec=0;isec<fTPCParam->GetNSector();isec++) 
    if (IsSectorActive(isec)) {
      Hits2DigitsSector(isec);
    }

  fLoader->WriteSDigits("OVERWRITE");

//this line prevents the crash in the similar one
//on the beginning of this method
//destructor attempts to reset the tree, which is deleted by the loader
//need to be redesign
  if(GetDigitsArray()) delete GetDigitsArray();
  SetDigitsArray(0x0);
}
//__________________________________________________________________

void AliTPC::Hits2SDigits()  
{ 

  //-----------------------------------------------------------
  //   summable digits - 16 bit "ADC", no noise, no saturation
  //-----------------------------------------------------------

  if (!fTPCParam->IsGeoRead()){
    //
    // read transformation matrices for gGeoManager
    //
    fTPCParam->ReadGeoMatrices();
  }
  
  fLoader->LoadHits("read");
  fLoader->LoadSDigits("recreate");
  AliRunLoader* runLoader = fLoader->GetRunLoader(); 

  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
    runLoader->GetEvent(iEvent);
    SetTreeAddress();
    SetActiveSectors();
    Hits2SDigits2(iEvent);
  }
  
  fLoader->UnloadHits();
  fLoader->UnloadSDigits();
  if (fDebugStreamer) {
    delete fDebugStreamer;
    fDebugStreamer=0;
  }    
}
//_____________________________________________________________________________

void AliTPC::Hits2DigitsSector(Int_t isec)
{
  //-------------------------------------------------------------------
  // TPC conversion from hits to digits.
  //------------------------------------------------------------------- 

  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  //-----------------------------------------------------------------

  //-------------------------------------------------------
  //  Get the access to the track hits
  //-------------------------------------------------------

  // check if the parameters are set - important if one calls this method
  // directly, not from the Hits2Digits

  if(fDefaults == 0) SetDefaults();

  TTree *tH = fLoader->TreeH(); // pointer to the hits tree
  if (tH == 0x0) {
    AliFatal("Can not find TreeH in folder");
    return;
  }

  Stat_t ntracks = tH->GetEntries();

    Int_t nrows =fTPCParam->GetNRow(isec);

    TObjArray **row=new TObjArray* [nrows+2]; // 2 extra rows for cross talk
    for(Int_t j=0;j<nrows+2;j++) row[j]=0;
    
    MakeSector(isec,nrows,tH,ntracks,row);

    //--------------------------------------------------------
    //   Digitize this sector, row by row
    //   row[i] is the pointer to the TObjArray of TVectors,
    //   each one containing electrons accepted on this
    //   row, assigned into tracks
    //--------------------------------------------------------

    Int_t i;

    if (fDigitsArray->GetTree()==0) {
      AliFatal("Tree not set in fDigitsArray");
    }

    for (i=0;i<nrows;i++){
      
      AliDigits * dig = fDigitsArray->CreateRow(isec,i); 

      DigitizeRow(i,isec,row);

      fDigitsArray->StoreRow(isec,i);

      Int_t ndig = dig->GetDigitSize(); 
	
      AliDebug(10,
	       Form("*** Sector, row, compressed digits %d %d %d ***\n",
		    isec,i,ndig));        
 	
      fDigitsArray->ClearRow(isec,i);  

   
    } // end of the sector digitization

    for(i=0;i<nrows+2;i++){
      row[i]->Delete();  
      delete row[i];   
    }
      
    delete [] row; // delete the array of pointers to TObjArray-s
        

} // end of Hits2DigitsSector


//_____________________________________________________________________________
void AliTPC::DigitizeRow(Int_t irow,Int_t isec,TObjArray **rows)
{
  //-----------------------------------------------------------
  // Single row digitization, coupling from the neighbouring
  // rows taken into account
  //-----------------------------------------------------------

  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  // Modified: Marian Ivanov GSI Darmstadt, m.ivanov@gsi.de
  //-----------------------------------------------------------------
 
  Float_t zerosup = fTPCParam->GetZeroSup();
  AliTPCCalPad * gainTPC = AliTPCcalibDB::Instance()->GetDedxGainFactor(); 
  AliTPCCalPad * noiseTPC = AliTPCcalibDB::Instance()->GetPadNoise(); 
  AliTPCCalROC * gainROC = gainTPC->GetCalROC(isec);  // pad gains per given sector
  AliTPCCalROC * noiseROC = noiseTPC->GetCalROC(isec);  // noise per given sector


  fCurrentIndex[1]= isec;
  

  Int_t nofPads = fTPCParam->GetNPads(isec,irow);
  Int_t nofTbins = fTPCParam->GetMaxTBin();
  Int_t indexRange[4];
  //
  //  Integrated signal for this row
  //  and a single track signal
  //    

  TMatrixF *m1 = new TMatrixF(0,nofPads,0,nofTbins); // integrated
  TMatrixF *m2 = new TMatrixF(0,nofPads,0,nofTbins); // single
  //
  TMatrixF &total  = *m1;

  //  Array of pointers to the label-signal list

  Int_t nofDigits = nofPads*nofTbins; // number of digits for this row
  Float_t  **pList = new Float_t* [nofDigits]; 

  Int_t lp;
  Int_t i1;   
  for(lp=0;lp<nofDigits;lp++)pList[lp]=0; // set all pointers to NULL
  //
  //calculate signal 
  //
  Int_t row1=irow;
  Int_t row2=irow+2; 
  for (Int_t row= row1;row<=row2;row++){
    Int_t nTracks= rows[row]->GetEntries();
    for (i1=0;i1<nTracks;i1++){
      fCurrentIndex[2]= row;
      fCurrentIndex[3]=irow+1;
      if (row==irow+1){
	m2->Zero();  // clear single track signal matrix
	Float_t trackLabel = GetSignal(rows[row],i1,m2,m1,indexRange); 
	GetList(trackLabel,nofPads,m2,indexRange,pList);
      }
      else   GetSignal(rows[row],i1,0,m1,indexRange);
    }
  }
         
  Int_t tracks[3];

  AliDigits *dig = fDigitsArray->GetRow(isec,irow);
  Int_t gi=-1;
  Float_t fzerosup = zerosup+0.5;
  for(Int_t it=0;it<nofTbins;it++){
    for(Int_t ip=0;ip<nofPads;ip++){
      gi++;
      Float_t q=total(ip,it);      
      if(fDigitsSwitch == 0){	
	Float_t gain = gainROC->GetValue(irow,ip);  // get gain for given - pad-row pad	
	Float_t noisePad = noiseROC->GetValue(irow,ip);	
	//
	q*=gain;
	q+=GetNoise()*noisePad;
        if(q <=fzerosup) continue; // do not fill zeros
        q = TMath::Nint(q);
        if(q >= fTPCParam->GetADCSat()) q = fTPCParam->GetADCSat() - 1;  // saturation

      }

      else {
	if(q <= 0.) continue; // do not fill zeros
	if(q>2000.) q=2000.;
	q *= 16.;
	q = TMath::Nint(q);
      }

      //
      //  "real" signal or electronic noise (list = -1)?
      //    

      for(Int_t j1=0;j1<3;j1++){
	tracks[j1] = (pList[gi]) ?(Int_t)(*(pList[gi]+j1)) : -2;
      }

//Begin_Html
/*
  <A NAME="AliDigits"></A>
  using of AliDigits object
*/
//End_Html
      dig->SetDigitFast((Short_t)q,it,ip);
      if (fDigitsArray->IsSimulated()) {
	((AliSimDigits*)dig)->SetTrackIDFast(tracks[0],it,ip,0);
	((AliSimDigits*)dig)->SetTrackIDFast(tracks[1],it,ip,1);
	((AliSimDigits*)dig)->SetTrackIDFast(tracks[2],it,ip,2);
      }
    
    } // end of loop over time buckets
  }  // end of lop over pads 
  //
  // test
  //
  //

  // glitch filters if normal simulated digits
  //
  if(!fDigitsSwitch) ((AliSimDigits*)dig)->GlitchFilter();
  //
  //  This row has been digitized, delete nonused stuff
  //

  for(lp=0;lp<nofDigits;lp++){
    if(pList[lp]) delete [] pList[lp];
  }
  
  delete [] pList;

  delete m1;
  delete m2;

} // end of DigitizeRow

//_____________________________________________________________________________

Float_t AliTPC::GetSignal(TObjArray *p1, Int_t ntr, 
             TMatrixF *m1, TMatrixF *m2,Int_t *indexRange)
{

  //---------------------------------------------------------------
  //  Calculates 2-D signal (pad,time) for a single track,
  //  returns a pointer to the signal matrix and the track label 
  //  No digitization is performed at this level!!!
  //---------------------------------------------------------------

  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  // Modified: Marian Ivanov 
  //-----------------------------------------------------------------

  TVector *tv;

  tv = (TVector*)p1->At(ntr); // pointer to a track
  TVector &v = *tv;
  
  Float_t label = v(0);
  Int_t centralPad = (fTPCParam->GetNPads(fCurrentIndex[1],fCurrentIndex[3]-1))/2;

  Int_t nElectrons = (tv->GetNrows()-1)/5;
  indexRange[0]=9999; // min pad
  indexRange[1]=-1; // max pad
  indexRange[2]=9999; //min time
  indexRange[3]=-1; // max time

  TMatrixF &signal = *m1;
  TMatrixF &total = *m2;
  //
  // Get LHC clock phase
  //
  TParameter<float> *ph;
  if(fDigitsSwitch){// s-digits
    ph = (TParameter<float>*)fLoader->TreeS()->GetUserInfo()->FindObject("lhcphase0");  
  }
  else{ // normal digits
    ph = (TParameter<float>*)fLoader->TreeD()->GetUserInfo()->FindObject("lhcphase0");
  } 
  //  Loop over all electrons
  //
  for(Int_t nel=0; nel<nElectrons; nel++){
    Int_t idx=nel*5;
    Float_t aval =  v(idx+4);
    Float_t eltoadcfac=aval*fTPCParam->GetTotalNormFac(); 
    Float_t xyz[4]={v(idx+1),v(idx+2),v(idx+3),v(idx+5)};
    Int_t n = ((AliTPCParamSR*)fTPCParam)->CalcResponseFast(xyz,fCurrentIndex,
							    fCurrentIndex[3],ph->GetVal());

    Int_t *index = fTPCParam->GetResBin(0);  
    Float_t *weight = & (fTPCParam->GetResWeight(0));

    if (n>0) for (Int_t i =0; i<n; i++){       
      Int_t pad=index[1]+centralPad;  //in digit coordinates central pad has coordinate 0

      if (pad>=0){
	Int_t time=index[2];	 
	Float_t qweight = *(weight)*eltoadcfac;
	
	if (m1!=0) signal(pad,time)+=qweight;
	total(pad,time)+=qweight;
	if (indexRange[0]>pad) indexRange[0]=pad;
	if (indexRange[1]<pad) indexRange[1]=pad;
	if (indexRange[2]>time) indexRange[2]=time;
	if (indexRange[3]<time) indexRange[3]=time;
	
	index+=3;
	weight++;	

      }	 
    }
  } // end of loop over electrons
  
  return label; // returns track label when finished
}

//_____________________________________________________________________________
void AliTPC::GetList(Float_t label,Int_t np,TMatrixF *m,
                     Int_t *indexRange, Float_t **pList)
{
  //----------------------------------------------------------------------
  //  Updates the list of tracks contributing to digits for a given row
  //----------------------------------------------------------------------

  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  //-----------------------------------------------------------------

  TMatrixF &signal = *m;

  // lop over nonzero digits

  for(Int_t it=indexRange[2];it<indexRange[3]+1;it++){
    for(Int_t ip=indexRange[0];ip<indexRange[1]+1;ip++){


      // accept only the contribution larger than 500 electrons (1/2 s_noise)

      if(signal(ip,it)<0.5) continue; 

      Int_t globalIndex = it*np+ip; // globalIndex starts from 0!
        
      if(!pList[globalIndex]){
        
	// 
	// Create new list (6 elements - 3 signals and 3 labels),
	//

	pList[globalIndex] = new Float_t [6];

	// set list to -1 
	
	*pList[globalIndex] = -1.;
	*(pList[globalIndex]+1) = -1.;
	*(pList[globalIndex]+2) = -1.;
	*(pList[globalIndex]+3) = -1.;
	*(pList[globalIndex]+4) = -1.;
	*(pList[globalIndex]+5) = -1.;

	*pList[globalIndex] = label;
	*(pList[globalIndex]+3) = signal(ip,it);
      }
      else {

	// check the signal magnitude

	Float_t highest = *(pList[globalIndex]+3);
	Float_t middle = *(pList[globalIndex]+4);
	Float_t lowest = *(pList[globalIndex]+5);
	
	//
	//  compare the new signal with already existing list
	//
	
	if(signal(ip,it)<lowest) continue; // neglect this track

	//

	if (signal(ip,it)>highest){
	  *(pList[globalIndex]+5) = middle;
	  *(pList[globalIndex]+4) = highest;
	  *(pList[globalIndex]+3) = signal(ip,it);
	  
	  *(pList[globalIndex]+2) = *(pList[globalIndex]+1);
	  *(pList[globalIndex]+1) = *pList[globalIndex];
	  *pList[globalIndex] = label;
	}
	else if (signal(ip,it)>middle){
	  *(pList[globalIndex]+5) = middle;
	  *(pList[globalIndex]+4) = signal(ip,it);
	  
	  *(pList[globalIndex]+2) = *(pList[globalIndex]+1);
	  *(pList[globalIndex]+1) = label;
	}
	else{
	  *(pList[globalIndex]+5) = signal(ip,it);
	  *(pList[globalIndex]+2) = label;
	}
      }
      
    } // end of loop over pads
  } // end of loop over time bins

}//end of GetList
//___________________________________________________________________
void AliTPC::MakeSector(Int_t isec,Int_t nrows,TTree *TH,
                        Stat_t ntracks,TObjArray **row)
{

  //-----------------------------------------------------------------
  // Prepares the sector digitization, creates the vectors of
  // tracks for each row of this sector. The track vector
  // contains the track label and the position of electrons.
  //-----------------------------------------------------------------

  // 
  // The trasport of the electrons through TPC drift volume
  //    Drift (drift velocity + velocity map(not yet implemented)))
  //    Application of the random processes (diffusion, gas gain)
  //    Systematic effects (ExB effect in drift volume + ROCs)  
  //
  // Algorithm:
  // Loop over primary electrons:
  //    Creation of the secondary electrons
  //    Loop over electrons (primary+ secondaries)
  //        Global coordinate frame:
  //          1. Skip electrons if attached  
  //          2. ExB effect in drift volume
  //             a.) Simulation   calib->GetExB()->CorrectInverse(dxyz0,dxyz1); (applied on the el. level)
  //             b.) Reconstruction -  calib->GetExB()->Correct(dxyz0,dxyz1);   (applied on the space point)
  //             changed to the full distrotion (not only due to the ExB)
  //             aNew.)  correction->DistortPoint(distPoint, sector);
  //             bNew.)  correction->CorrectPoint(distPoint, sector);
  //          3. Generation of gas gain (Random - Exponential distribution) 
  //          4. TransportElectron function (diffusion)
  //
  //        5. Conversion to the local coordinate frame  pad-row, pad, timebin
  //        6. Apply Time0 shift - AliTPCCalPad class 
  //            a.) Plus sign in simulation
  //            b.) Minus sign in reconstruction 
  // end of loop          
  //
  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  // Origin: Marian Ivanov,  marian.ivanov@cern.ch
  //-----------------------------------------------------------------
  AliTPCcalibDB* const calib=AliTPCcalibDB::Instance();

  AliTPCCorrection * correctionDist = calib->GetTPCComposedCorrection();  

  AliTPCRecoParam *tpcrecoparam = calib->GetRecoParam(0); //FIXME: event specie should not be set by hand, However the parameters read here are the same for al species

//  AliWarning(Form("Flag for ExB correction \t%d",tpcrecoparam->GetUseExBCorrection())); 
//  AliWarning(Form("Flag for Composed correction \t%d",calib->GetRecoParam()->GetUseComposedCorrection()));

  if (tpcrecoparam->GetUseExBCorrection()) {
    if (gAlice){ // Set correctly the magnetic field in the ExB calculation
      if (!calib->GetExB()){
        AliMagF * field = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); 
        if (field) {
	  calib->SetExBField(field);
        }
      }
    }
  } else if (tpcrecoparam->GetUseComposedCorrection()) {
    AliMagF * field = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); 
    Double_t bzpos[3]={0,0,0};
    if (!correctionDist) correctionDist = calib->GetTPCComposedCorrection(field->GetBz(bzpos));

    if (!correctionDist){
      AliFatal("Correction map does not exist. Check the OCDB or your setup");
    }
  }

  Float_t gasgain = fTPCParam->GetGasGain();
  gasgain = gasgain/fGainFactor;
  //  const Int_t timeStamp = 1; //where to get it? runloader->GetHeader()->GetTimeStamp(). https://savannah.cern.ch/bugs/?53025
  const Int_t timeStamp = fLoader->GetRunLoader()->GetHeader()->GetTimeStamp(); //?
  Double_t correctionHVandPT = calib->GetGainCorrectionHVandPT(timeStamp, calib->GetRun(), isec, 5 ,tpcrecoparam->GetGainCorrectionHVandPTMode());
  gasgain*=correctionHVandPT;

  Int_t i;
  Float_t xyz[5]={0,0,0,0,0};

  AliTPChit *tpcHit; // pointer to a sigle TPC hit    
  //MI change
  TBranch * branch=0;
  if (fHitType>1) branch = TH->GetBranch("TPC2");
  else branch = TH->GetBranch("TPC");

 
  //----------------------------------------------
  // Create TObjArray-s, one for each row,
  // each TObjArray will store the TVectors
  // of electrons, one TVectors per each track.
  //---------------------------------------------- 
    
  Int_t *nofElectrons = new Int_t [nrows+2]; // electron counter for each row
  TVector **tracks = new TVector* [nrows+2]; //pointers to the track vectors

  for(i=0; i<nrows+2; i++){
    row[i] = new TObjArray;
    nofElectrons[i]=0;
    tracks[i]=0;
  }

 

  //--------------------------------------------------------------------
  //  Loop over tracks, the "track" contains the full history
  //--------------------------------------------------------------------
  
  Int_t previousTrack,currentTrack;
  previousTrack = -1; // nothing to store so far!

  for(Int_t track=0;track<ntracks;track++){
    Bool_t isInSector=kTRUE;
    ResetHits();
    isInSector = TrackInVolume(isec,track);
    if (!isInSector) continue;
    //MI change
    branch->GetEntry(track); // get next track
    
    //M.I. changes

    tpcHit = (AliTPChit*)FirstHit(-1);

    //--------------------------------------------------------------
    //  Loop over hits
    //--------------------------------------------------------------


    while(tpcHit){
      
      Int_t sector=tpcHit->fSector; // sector number
      if(sector != isec){
	tpcHit = (AliTPChit*) NextHit();
	continue; 
      }

      // Remove hits which arrive before the TPC opening gate signal
      if(((fTPCParam->GetZLength(isec)-TMath::Abs(tpcHit->Z()))
	  /fTPCParam->GetDriftV()+tpcHit->Time())<fTPCParam->GetGateDelay()) {
	tpcHit = (AliTPChit*) NextHit();
	continue;
      }

      currentTrack = tpcHit->Track(); // track number

      if(currentTrack != previousTrack){
                          
	// store already filled fTrack
              
	for(i=0;i<nrows+2;i++){
	  if(previousTrack != -1){
	    if(nofElectrons[i]>0){
	      TVector &v = *tracks[i];
	      v(0) = previousTrack;
	      tracks[i]->ResizeTo(5*nofElectrons[i]+1); // shrink if necessary
	      row[i]->Add(tracks[i]);                     
	    }
	    else {
	      delete tracks[i]; // delete empty TVector
	      tracks[i]=0;
	    }
	  }

	  nofElectrons[i]=0;
	  tracks[i] = new TVector(601); // TVectors for the next fTrack

	} // end of loop over rows
	       
	previousTrack=currentTrack; // update track label 
      }
	   
      Int_t qI = (Int_t) (tpcHit->fQ); // energy loss (number of electrons)

      //---------------------------------------------------
      //  Calculate the electron attachment probability
      //---------------------------------------------------


      Float_t time = 1.e6*(fTPCParam->GetZLength(isec)-TMath::Abs(tpcHit->Z()))
	/fTPCParam->GetDriftV(); 
      // in microseconds!	
      Float_t attProb = fTPCParam->GetAttCoef()*
	fTPCParam->GetOxyCont()*time; //  fraction! 
   
      //-----------------------------------------------
      //  Loop over electrons
      //-----------------------------------------------
      Int_t index[3];
      index[1]=isec;
      for(Int_t nel=0;nel<qI;nel++){
	// skip if electron lost due to the attachment
	if((gRandom->Rndm(0)) < attProb) continue; // electron lost!
	// use default hit position
	xyz[0]=tpcHit->X();
	xyz[1]=tpcHit->Y();
	xyz[2]=tpcHit->Z(); 
	//
	// ExB effect - distort hig if specifiend in the RecoParam
	//
        if (tpcrecoparam->GetUseExBCorrection()) {
	  Double_t dxyz0[3],dxyz1[3];
	  dxyz0[0]=tpcHit->X();
	  dxyz0[1]=tpcHit->Y();
	  dxyz0[2]=tpcHit->Z(); 	
	  if (calib->GetExB()){
	    calib->GetExB()->CorrectInverse(dxyz0,dxyz1);
	  }else{
	    AliError("Not valid ExB calibration");
	    dxyz1[0]=tpcHit->X();
	    dxyz1[1]=tpcHit->Y();
	    dxyz1[2]=tpcHit->Z(); 	
	  }
	  xyz[0]=dxyz1[0];
	  xyz[1]=dxyz1[1];
	  xyz[2]=dxyz1[2]; 	
        } else if (tpcrecoparam->GetUseComposedCorrection()) {
        //      Use combined correction/distortion  class AliTPCCorrection
          if (correctionDist){
            Float_t distPoint[3]={tpcHit->X(),tpcHit->Y(), tpcHit->Z()};
            correctionDist->DistortPoint(distPoint, isec);
            xyz[0]=distPoint[0];
            xyz[1]=distPoint[1];
            xyz[2]=distPoint[2];
           }      
        }
	//
	//
	//
	// protection for the nonphysical avalanche size (10**6 maximum)
	//  
	Double_t rn=TMath::Max(gRandom->Rndm(0),1.93e-22);
	xyz[3]= (Float_t) (-gasgain*TMath::Log(rn)); 
	index[0]=1;
	  
	TransportElectron(xyz,index);    
	Int_t rowNumber;
	Int_t padrow = fTPCParam->GetPadRow(xyz,index); 
	//
	// Add Time0 correction due unisochronity
	// xyz[0] - pad row coordinate 
	// xyz[1] - pad coordinate
	// xyz[2] - is in now time bin coordinate system
	Float_t correction =0;
	if (tpcrecoparam->GetUseExBCorrection()) {
          if (calib->GetPadTime0()){
	    if (!calib->GetPadTime0()->GetCalROC(isec)) continue;	  
	    Int_t npads = fTPCParam->GetNPads(isec,padrow);
	    //	  Int_t pad  = TMath::Nint(xyz[1]+fTPCParam->GetNPads(isec,TMath::Nint(xyz[0]))*0.5);
	    // pad numbering from -npads/2 .. npads/2-1
	    Int_t pad  = TMath::Nint(xyz[1]+npads/2);
	    if (pad<0) pad=0;
	    if (pad>=npads) pad=npads-1;
	    correction = calib->GetPadTime0()->GetCalROC(isec)->GetValue(padrow,pad);
	    //	  printf("%d\t%d\t%d\t%f\n",isec,padrow,pad,correction);
	    if (fDebugStreamer){
	      (*fDebugStreamer)<<"Time0"<<
	        "isec="<<isec<<
	        "padrow="<<padrow<<
	        "pad="<<pad<<
	        "x0="<<xyz[0]<<
	        "x1="<<xyz[1]<<
	        "x2="<<xyz[2]<<
	        "hit.="<<tpcHit<<
	        "cor="<<correction<<
	        "\n";
	    }
	  }
        }
        if (AliTPCcalibDB::Instance()->IsTrgL0()){  
          // Modification 14.03
          // distinguish between the L0 and L1 trigger as it is done in the reconstruction
          // by defualt we assume L1 trigger is used - make a correction in case of  L0
          AliCTPTimeParams* ctp = AliTPCcalibDB::Instance()->GetCTPTimeParams();
          if (ctp){
            //for TPC standalone runs no ctp info
            Double_t delay = ctp->GetDelayL1L0()*0.000000025;
            xyz[2]+=delay/fTPCParam->GetTSample();  // adding the delay (in the AliTPCTramsform opposite sign)
          }
        }
	if (tpcrecoparam->GetUseExBCorrection()) xyz[2]+=correction; // In Correction there is already a corretion for the time 0 offset so not needed
	xyz[2]+=fTPCParam->GetNTBinsL1();    // adding Level 1 time bin offset
	//
	// Electron track time (for pileup simulation)
	xyz[2]+=tpcHit->Time()/fTPCParam->GetTSample(); // adding time of flight
	xyz[4] =0;

	//
	// row 0 - cross talk from the innermost row
	// row fNRow+1 cross talk from the outermost row
	rowNumber = index[2]+1; 
	//transform position to local digit coordinates
	//relative to nearest pad row 
	if ((rowNumber<0)||rowNumber>fTPCParam->GetNRow(isec)+1) continue;
	/*	Float_t x1,y1;
	if (isec <fTPCParam->GetNInnerSector()) {
	  x1 = xyz[1]*fTPCParam->GetInnerPadPitchWidth();
	  y1 = fTPCParam->GetYInner(rowNumber);
	}
	else{
	  x1=xyz[1]*fTPCParam->GetOuterPadPitchWidth();
	  y1 = fTPCParam->GetYOuter(rowNumber);
	}
	// gain inefficiency at the wires edges - linear
	x1=TMath::Abs(x1);
	y1-=1.;
	if(x1>y1) xyz[3]*=TMath::Max(1.e-6,(y1-x1+1.));	*/
	
	nofElectrons[rowNumber]++;	  
	//----------------------------------
	// Expand vector if necessary
	//----------------------------------
	if(nofElectrons[rowNumber]>120){
	  Int_t range = tracks[rowNumber]->GetNrows();
	  if((nofElectrons[rowNumber])>(range-1)/5){
	    
	    tracks[rowNumber]->ResizeTo(range+500); // Add 100 electrons
	  }
	}
	
	TVector &v = *tracks[rowNumber];
	Int_t idx = 5*nofElectrons[rowNumber]-4;
	Real_t * position = &(((TVector&)v)(idx)); //make code faster
	memcpy(position,xyz,5*sizeof(Float_t));
	
      } // end of loop over electrons

      tpcHit = (AliTPChit*)NextHit();
      
    } // end of loop over hits
  } // end of loop over tracks

    //
    //   store remaining track (the last one) if not empty
    //
  
  for(i=0;i<nrows+2;i++){
    if(nofElectrons[i]>0){
      TVector &v = *tracks[i];
      v(0) = previousTrack;
      tracks[i]->ResizeTo(5*nofElectrons[i]+1); // shrink if necessary
      row[i]->Add(tracks[i]);  
    }
    else{
      delete tracks[i];
      tracks[i]=0;
    }  
  }  
  
  delete [] tracks;
  delete [] nofElectrons;

} // end of MakeSector


//_____________________________________________________________________________
void AliTPC::Init()
{
  //
  // Initialise TPC detector after definition of geometry
  //
  AliDebug(1,"*********************************************");
}

//_____________________________________________________________________________
void AliTPC::ResetDigits()
{
  //
  // Reset number of digits and the digits array for this detector
  //
  fNdigits   = 0;
  if (fDigits)   fDigits->Clear();
}



//_____________________________________________________________________________
void AliTPC::SetSens(Int_t sens)
{

  //-------------------------------------------------------------
  // Activates/deactivates the sensitive strips at the center of
  // the pad row -- this is for the space-point resolution calculations
  //-------------------------------------------------------------

  //-----------------------------------------------------------------
  // Origin: Marek Kowalski  IFJ, Krakow, Marek.Kowalski@ifj.edu.pl
  //-----------------------------------------------------------------

  fSens = sens;
}

 
void AliTPC::SetSide(Float_t side=0.)
{
  // choice of the TPC side

  fSide = side;
 
}
//_____________________________________________________________________________

void AliTPC::TransportElectron(Float_t *xyz, Int_t *index)
{
  //
  // electron transport taking into account:
  // 1. diffusion, 
  // 2.ExB at the wires
  // 3. nonisochronity
  //
  // xyz and index must be already transformed to system 1
  //

  fTPCParam->Transform1to2(xyz,index);  // mis-alignment applied in this step
  
  //add diffusion
  Float_t driftl=xyz[2];
  if(driftl<0.01) driftl=0.01;
  driftl=TMath::Sqrt(driftl);
  Float_t sigT = driftl*(fTPCParam->GetDiffT());
  Float_t sigL = driftl*(fTPCParam->GetDiffL());
  xyz[0]=gRandom->Gaus(xyz[0],sigT);
  xyz[1]=gRandom->Gaus(xyz[1],sigT);
  xyz[2]=gRandom->Gaus(xyz[2],sigL);

  // ExB
  
  if (fTPCParam->GetMWPCReadout()==kTRUE){
    Float_t dx = fTPCParam->Transform2to2NearestWire(xyz,index);
    xyz[1]+=dx*(fTPCParam->GetOmegaTau());
  }
  //add nonisochronity (not implemented yet) 
 
  
}
  
ClassImp(AliTPChit)
  //______________________________________________________________________
  AliTPChit::AliTPChit()
            :AliHit(),
	     fSector(0),
	     fPadRow(0),
	     fQ(0),
	     fTime(0)
{
  //
  // default
  //

}
//_____________________________________________________________________________
AliTPChit::AliTPChit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits)
          :AliHit(shunt,track),
	     fSector(0),
	     fPadRow(0),
	     fQ(0),
	     fTime(0)
{
  //
  // Creates a TPC hit object
  //
  fSector     = vol[0];
  fPadRow     = vol[1];
  fX          = hits[0];
  fY          = hits[1];
  fZ          = hits[2];
  fQ          = hits[3];
  fTime       = hits[4];
}
 
//________________________________________________________________________
// Additional code because of the AliTPCTrackHitsV2

void AliTPC::MakeBranch(Option_t *option)
{
  //
  // Create a new branch in the current Root Tree
  // The branch of fHits is automatically split
  // MI change 14.09.2000
  AliDebug(1,"");
  if (fHitType<2) return;
  char branchname[10];
  //sprintf(branchname,"%s2",GetName()); 
  snprintf(branchname,10,"%s2",GetName()); 
  //
  // Get the pointer to the header
  const char *cH = strstr(option,"H");
  //
  if (fTrackHits   && fLoader->TreeH() && cH && fHitType&4) {
    AliDebug(1,"Making branch for Type 4 Hits");
    fLoader->TreeH()->Branch(branchname,"AliTPCTrackHitsV2",&fTrackHits,fBufferSize,99);
  }

//   if (fTrackHitsOld   && fLoader->TreeH() && cH && fHitType&2) {    
//     AliDebug(1,"Making branch for Type 2 Hits");
//     AliObjectBranch * branch = new AliObjectBranch(branchname,"AliTPCTrackHits",&fTrackHitsOld, 
//                                                    fLoader->TreeH(),fBufferSize,99);
//     fLoader->TreeH()->GetListOfBranches()->Add(branch);
//   }	
}

void AliTPC::SetTreeAddress()
{
  //Sets tree address for hits  
  if (fHitType<=1) {
    if (fHits == 0x0 ) fHits = new TClonesArray("AliTPChit", 176);//skowron 20.06.03
    AliDetector::SetTreeAddress();
  }
  if (fHitType>1) SetTreeAddress2();
}

void AliTPC::SetTreeAddress2()
{
  //
  // Set branch address for the TrackHits Tree
  // 
  AliDebug(1,"");
  
  TBranch *branch;
  char branchname[20];
  //sprintf(branchname,"%s2",GetName());
  snprintf(branchname,20,"%s2",GetName());
  //
  // Branch address for hit tree
  TTree *treeH = fLoader->TreeH();
  if ((treeH)&&(fHitType&4)) {
    branch = treeH->GetBranch(branchname);
    if (branch) {
      branch->SetAddress(&fTrackHits);
      AliDebug(1,"fHitType&4 Setting");
    }
    else 
      AliDebug(1,"fHitType&4 Failed (can not find branch)");
    
  }
 //  if ((treeH)&&(fHitType&2)) {
//     branch = treeH->GetBranch(branchname);
//     if (branch) {
//       branch->SetAddress(&fTrackHitsOld);
//       AliDebug(1,"fHitType&2 Setting");
//     }
//     else
//       AliDebug(1,"fHitType&2 Failed (can not find branch)");
//   }
}

void AliTPC::FinishPrimary()
{
  if (fTrackHits &&fHitType&4)      fTrackHits->FlushHitStack();  
  //  if (fTrackHitsOld && fHitType&2)  fTrackHitsOld->FlushHitStack();  
}


void AliTPC::AddHit2(Int_t track, Int_t *vol, Float_t *hits)
{ 
  //
  // add hit to the list

  Int_t rtrack;
  if (fIshunt) {
    int primary = gAlice->GetMCApp()->GetPrimary(track);
    gAlice->GetMCApp()->Particle(primary)->SetBit(kKeepBit);
    rtrack=primary;
  } else {
    rtrack=track;
    gAlice->GetMCApp()->FlagTrack(track);
  }  
  if (fTrackHits && fHitType&4) 
    fTrackHits->AddHitKartez(vol[0],rtrack, hits[0],
                             hits[1],hits[2],(Int_t)hits[3],hits[4]);
 //  if (fTrackHitsOld &&fHitType&2 ) 
//     fTrackHitsOld->AddHitKartez(vol[0],rtrack, hits[0],
//                                 hits[1],hits[2],(Int_t)hits[3]);
  
}

void AliTPC::ResetHits()
{ 
  if (fHitType&1) AliDetector::ResetHits();
  if (fHitType>1) ResetHits2();
}

void AliTPC::ResetHits2()
{
  //
  //reset hits
  if (fTrackHits && fHitType&4) fTrackHits->Clear();
  // if (fTrackHitsOld && fHitType&2) fTrackHitsOld->Clear();

}   

AliHit* AliTPC::FirstHit(Int_t track)
{
  if (fHitType>1) return FirstHit2(track);
  return AliDetector::FirstHit(track);
}
AliHit* AliTPC::NextHit()
{
  //
  // gets next hit
  //
  if (fHitType>1) return NextHit2();
  
  return AliDetector::NextHit();
}

AliHit* AliTPC::FirstHit2(Int_t track)
{
  //
  // Initialise the hit iterator
  // Return the address of the first hit for track
  // If track>=0 the track is read from disk
  // while if track<0 the first hit of the current
  // track is returned
  // 
  if(track>=0) {
    gAlice->GetMCApp()->ResetHits();
    fLoader->TreeH()->GetEvent(track);
  }
  //
  if (fTrackHits && fHitType&4) {
    fTrackHits->First();
    return fTrackHits->GetHit();
  }
 //  if (fTrackHitsOld && fHitType&2) {
//     fTrackHitsOld->First();
//     return fTrackHitsOld->GetHit();
//   }

  else return 0;
}

AliHit* AliTPC::NextHit2()
{
  //
  //Return the next hit for the current track


//   if (fTrackHitsOld && fHitType&2) {
//     fTrackHitsOld->Next();
//     return fTrackHitsOld->GetHit();
//   }
  if (fTrackHits) {
    fTrackHits->Next();
    return fTrackHits->GetHit();
  }
  else 
    return 0;
}

void AliTPC::RemapTrackHitIDs(Int_t *map)
{
  //
  // remapping
  //
  if (!fTrackHits) return;
  
//   if (fTrackHitsOld && fHitType&2){
//     AliObjectArray * arr = fTrackHitsOld->fTrackHitsInfo;
//     for (UInt_t i=0;i<arr->GetSize();i++){
//       AliTrackHitsInfo * info = (AliTrackHitsInfo *)(arr->At(i));
//       info->fTrackID = map[info->fTrackID];
//     }
//   }
//  if (fTrackHitsOld && fHitType&4){
  if (fTrackHits && fHitType&4){
    TClonesArray * arr = fTrackHits->GetArray();;
    for (Int_t i=0;i<arr->GetEntriesFast();i++){
      AliTrackHitsParamV2 * info = (AliTrackHitsParamV2 *)(arr->At(i));
      info->SetTrackID(map[info->GetTrackID()]);
    }
  }
}

Bool_t   AliTPC::TrackInVolume(Int_t id,Int_t track)
{
  //return bool information - is track in given volume
  //load only part of the track information 
  //return true if current track is in volume
  //
  //  return kTRUE;
 //  if (fTrackHitsOld && fHitType&2) {
//     TBranch * br = fLoader->TreeH()->GetBranch("fTrackHitsInfo");
//     br->GetEvent(track);
//     AliObjectArray * ar = fTrackHitsOld->fTrackHitsInfo;
//     for (UInt_t j=0;j<ar->GetSize();j++){
//       if (  ((AliTrackHitsInfo*)ar->At(j))->fVolumeID==id) return kTRUE;
//     } 
//   }

  if (fTrackHits && fHitType&4) {
    TBranch * br1 = fLoader->TreeH()->GetBranch("fVolumes");
    TBranch * br2 = fLoader->TreeH()->GetBranch("fNVolumes");    
    br2->GetEvent(track);
    br1->GetEvent(track);    
    Int_t *volumes = fTrackHits->GetVolumes();
    Int_t nvolumes = fTrackHits->GetNVolumes();
    if (!volumes && nvolumes>0) {
      AliWarning(Form("Problematic track\t%d\t%d",track,nvolumes));
      return kFALSE;
    }
    for (Int_t j=0;j<nvolumes; j++)
      if (volumes[j]==id) return kTRUE;    
  }

  if (fHitType&1) {
    TBranch * br = fLoader->TreeH()->GetBranch("fSector");
    br->GetEvent(track);
    for (Int_t j=0;j<fHits->GetEntriesFast();j++){
      if (  ((AliTPChit*)fHits->At(j))->fSector==id) return kTRUE;
    } 
  }
  return kFALSE;  

}


AliLoader* AliTPC::MakeLoader(const char* topfoldername)
{
  //Makes TPC loader
  fLoader = new AliTPCLoader(GetName(),topfoldername);
  return fLoader;
}

////////////////////////////////////////////////////////////////////////
AliTPCParam* AliTPC::LoadTPCParam(TFile *file) {
//
// load TPC paarmeters from a given file or create new if the object
// is not found there
// 12/05/2003 This method should be moved to the AliTPCLoader
// and one has to decide where to store the TPC parameters
// M.Kowalski
  char paramName[50];
  //sprintf(paramName,"75x40_100x60_150x60");
  snprintf(paramName,50,"75x40_100x60_150x60");
  AliTPCParam *paramTPC=(AliTPCParam*)file->Get(paramName);
  if (paramTPC) {
    AliDebugClass(1,Form("TPC parameters %s found.",paramName));
  } else {
    AliWarningClass("TPC parameters not found. Create new (they may be incorrect)");
    //paramTPC = new AliTPCParamSR;
    paramTPC = AliTPCcalibDB::Instance()->GetParameters();
    if (!paramTPC->IsGeoRead()){
      //
      // read transformation matrices for gGeoManager
      //
      paramTPC->ReadGeoMatrices();
    }
  
  }
  return paramTPC;

// the older version of parameters can be accessed with this code.
// In some cases, we have old parameters saved in the file but 
// digits were created with new parameters, it can be distinguish 
// by the name of TPC TreeD. The code here is just for the case 
// we would need to compare with old data, uncomment it if needed.
//
//  char paramName[50];
//  sprintf(paramName,"75x40_100x60");
//  AliTPCParam *paramTPC=(AliTPCParam*)in->Get(paramName);
//  if (paramTPC) {
//    cout<<"TPC parameters "<<paramName<<" found."<<endl;
//  } else {
//    sprintf(paramName,"75x40_100x60_150x60");
//    paramTPC=(AliTPCParam*)in->Get(paramName);
//    if (paramTPC) {
//	cout<<"TPC parameters "<<paramName<<" found."<<endl;
//    } else {
//	cerr<<"TPC parameters not found. Create new (they may be incorrect)."
//	    <<endl;    
//	paramTPC = new AliTPCParamSR;
//    }
//  }
//  return paramTPC;

}


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