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

//-----------------------------------------------------//
//                                                     //
//  Source File : PMDClusteringV1.cxx, Version 00      //
//                                                     //
//  Date   : September 26 2002                         //
//                                                     //
//  clustering code for alice pmd                      //
//                                                     //
//-----------------------------------------------------//

/* --------------------------------------------------------------------
   Code developed by S. C. Phatak, Institute of Physics,
   Bhubaneswar 751 005 ( phatak@iopb.res.in ) Given the energy deposited
   ( or ADC value ) in each cell of supermodule ( pmd or cpv ), the code
   builds up superclusters and breaks them into clusters. The input is
   in array edepcell[kNMX] and cluster information is in a
   TObjarray. Integer clno gives total number of clusters in the
   supermodule.

   fClusters is the only global ( public ) variables.
   Others are local ( private ) to the code.
   At the moment, the data is read for whole detector ( all supermodules
   and pmd as well as cpv. This will have to be modify later )
   LAST UPDATE  :  October 23, 2002
-----------------------------------------------------------------------*/

#include <Riostream.h>
#include <TMath.h>
#include <TNtuple.h>
#include <TObjArray.h>
#include "TRandom.h"
#include <stdio.h>

#include "AliPMDcludata.h"
#include "AliPMDcluster.h"
#include "AliPMDClustering.h"
#include "AliPMDClusteringV1.h"
#include "AliLog.h"


ClassImp(AliPMDClusteringV1)

const Double_t AliPMDClusteringV1::fgkSqroot3by2=0.8660254;  // sqrt(3.)/2.

AliPMDClusteringV1::AliPMDClusteringV1():
  fPMDclucont(new TObjArray()),
  fCutoff(0.0),
  fClusParam(0)
{
  for(Int_t i = 0; i < kNDIMX; i++)
    {
      for(Int_t j = 0; j < kNDIMY; j++)
	{
	  fCoord[0][i][j] = i+j/2.;
	  fCoord[1][i][j] = fgkSqroot3by2*j;
	}
    }
}
// ------------------------------------------------------------------------ //
AliPMDClusteringV1::AliPMDClusteringV1(const AliPMDClusteringV1& pmdclv1):
  AliPMDClustering(pmdclv1),
  fPMDclucont(0),
  fCutoff(0),
  fClusParam(0)
{
  // copy constructor
  AliError("Copy constructor not allowed ");
  
}
// ------------------------------------------------------------------------ //
AliPMDClusteringV1 &AliPMDClusteringV1::operator=(const AliPMDClusteringV1& /*pmdclv1*/)
{
  // copy constructor
  AliError("Assignment operator not allowed ");
  return *this;
}
// ------------------------------------------------------------------------ //
AliPMDClusteringV1::~AliPMDClusteringV1()
{
  delete fPMDclucont;
}
// ------------------------------------------------------------------------ //
void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn,
				 Int_t celltrack[48][96],
				 Int_t cellpid[48][96],
				 Double_t celladc[48][96],
				 TObjArray *pmdcont)
{
  // main function to call other necessary functions to do clustering
  //

  AliPMDcluster *pmdcl = 0;

  const float ktwobysqrt3 = 1.1547; // 2./sqrt(3.)
  const Int_t kNmaxCell   = 19;     // # of cells surrounding a cluster center

  Int_t    i = 0,  j = 0, nmx1 = 0;
  Int_t    incr = 0, id = 0, jd = 0;
  Int_t    celldataX[kNmaxCell], celldataY[kNmaxCell];
  Int_t    celldataTr[kNmaxCell], celldataPid[kNmaxCell];
  Float_t  celldataAdc[kNmaxCell];
  Float_t  clusdata[6] = {0.,0.,0.,0.,0.,0.};
  Double_t cutoff, ave;
  Double_t edepcell[kNMX];
  Double_t cellenergy[kNMX];
  
  // ndimXr and ndimYr are different because of different module size

  Int_t ndimXr = 0;
  Int_t ndimYr = 0;

  if (ismn < 12)
    {
      ndimXr = 96;
      ndimYr = 48;
    }
  else if (ismn >= 12 && ismn <= 23)
    {
      ndimXr = 48;
      ndimYr = 96;
    }

  for (i = 0; i < kNMX; i++)
  {
      cellenergy[i] = 0.;
  }

  Int_t kk = 0;
  for (i = 0; i < kNDIMX; i++)
    {
      for (j = 0; j < kNDIMY; j++)
	{
	  edepcell[kk] = 0.;
	  kk++;
	}
    }

  for (id = 0; id < ndimXr; id++)
    {
      for (jd = 0; jd < ndimYr; jd++)
	{
	  j = jd;
	  i = id+(ndimYr/2-1)-(jd/2);

	  Int_t ij = i + j*kNDIMX;
	  
	  if (ismn < 12)
	    {
	      cellenergy[ij]    = celladc[jd][id];
	    }
	  else if (ismn >= 12 && ismn <= 23)
	    {
	      cellenergy[ij]    = celladc[id][jd];
	    }
	}
    }
  
  for (i = 0; i < kNMX; i++)
    {
      edepcell[i] = cellenergy[i];
    }

  Bool_t jsort = true;
  // the dimension of iord1 is increased twice
  Int_t iord1[2*kNMX];
  TMath::Sort((Int_t)kNMX,edepcell,iord1,jsort);// order the data
  cutoff = fCutoff;                             // cutoff to discard cells
  ave  = 0.;
  nmx1 = -1;
  for(i = 0;i < kNMX; i++)
    {
      if(edepcell[i] > 0.) 
	{
	  ave += edepcell[i];
	}
      if(edepcell[i] > cutoff )
	{
	  nmx1++;
	}
    }
  
  AliDebug(1,Form("Number of cells having energy >= %f are %d",cutoff,nmx1));

  if (nmx1 == 0) nmx1 = 1;
  ave = ave/nmx1;
  AliDebug(1,Form("Number of cells in a SuperM = %d and Average = %f",
		  kNMX,ave));
  
  incr = CrClust(ave, cutoff, nmx1,iord1, edepcell );
  RefClust(incr,edepcell);
  Int_t nentries1 = fPMDclucont->GetEntries();
  AliDebug(1,Form("Detector Plane = %d  Serial Module No = %d Number of clusters = %d",idet, ismn, nentries1));
  AliDebug(1,Form("Total number of clusters/module = %d",nentries1));
  
  for (Int_t ient1 = 0; ient1 < nentries1; ient1++)
    {
      AliPMDcludata *pmdcludata = 
	(AliPMDcludata*)fPMDclucont->UncheckedAt(ient1);
      Float_t cluXC    = pmdcludata->GetClusX();
      Float_t cluYC    = pmdcludata->GetClusY();
      Float_t cluADC   = pmdcludata->GetClusADC();
      Float_t cluCELLS = pmdcludata->GetClusCells();
      Float_t cluSIGX  = pmdcludata->GetClusSigmaX();
      Float_t cluSIGY  = pmdcludata->GetClusSigmaY();
      
      Float_t cluY0    = ktwobysqrt3*cluYC;
      Float_t cluX0    = cluXC - cluY0/2.;
      
      // 
      // Cluster X centroid is back transformed
      //

      if (ismn < 12)
	{
	  clusdata[0] = cluX0 - (24-1) + cluY0/2.;
	}
      else if ( ismn >= 12 && ismn <= 23)
	{
	  clusdata[0] = cluX0 - (48-1) + cluY0/2.;
	}	  

      clusdata[1]     = cluY0;
      clusdata[2]     = cluADC;
      clusdata[3]     = cluCELLS;
      clusdata[4]     = cluSIGX;
      clusdata[5]     = cluSIGY;

      //
      // Cells associated with a cluster
      //

      for (Int_t ihit = 0; ihit < kNmaxCell; ihit++)
	{
	  Int_t cellrow = pmdcludata->GetCellXY(ihit)/10000;
	  Int_t cellcol = pmdcludata->GetCellXY(ihit)%10000;

	  if (ismn < 12)
	    {
	      celldataX[ihit] = cellrow - (24-1) + int(cellcol/2.);
	    }
	  else if (ismn >= 12 && ismn <= 23)
	    {
	      celldataX[ihit] = cellrow - (48-1) + int(cellcol/2.);
	    }
	  
	  celldataY[ihit] = cellcol;
	  
	  Int_t irow = celldataX[ihit];
	  Int_t icol = celldataY[ihit];

	  if (ismn < 12)
	    {
	      if ((irow >= 0 && irow < 96) && (icol >= 0 && icol < 48))
		{
		  celldataTr[ihit]  = celltrack[icol][irow];
		  celldataPid[ihit] = cellpid[icol][irow];
		  celldataAdc[ihit] = (Float_t) celladc[icol][irow];
		}
	      else
		{
		  celldataTr[ihit]  = -1;
		  celldataPid[ihit] = -1;
		  celldataAdc[ihit] = -1;
		}
	    }
	  else if (ismn >= 12 && ismn < 24)
	    {
	      if ((irow >= 0 && irow < 48) && (icol >= 0 && icol < 96))
		{
		  celldataTr[ihit]  = celltrack[irow][icol];
		  celldataPid[ihit] = cellpid[irow][icol];
		  celldataAdc[ihit] = (Float_t) celladc[irow][icol];

		}
	      else
		{
		  celldataTr[ihit]  = -1;
		  celldataPid[ihit] = -1;
		  celldataAdc[ihit] = -1;
		}
	    }
	  
	}
      
      pmdcl = new AliPMDcluster(idet, ismn, clusdata, celldataX, celldataY,
				celldataTr, celldataPid, celldataAdc);
      pmdcont->Add(pmdcl);
    }
  
  fPMDclucont->Delete();
}
// ------------------------------------------------------------------------ //
Int_t AliPMDClusteringV1::CrClust(Double_t ave, Double_t cutoff, Int_t nmx1,
				  Int_t iord1[], Double_t edepcell[])
{
  // Does crude clustering 
  // Finds out only the big patch by just searching the
  // connected cells
  //
  const Int_t kndim = 4609;
  Int_t i=0,j=0,k=0,id1=0,id2=0,icl=0, numcell=0;
  Int_t jd1=0,jd2=0, icell=0, cellcount=0;
  Int_t clust[2][kndim];
  static Int_t neibx[6]={1,0,-1,-1,0,1}, neiby[6]={0,1,1,0,-1,-1};

  AliDebug(1,Form("kNMX = %d nmx1 = %d kNDIMX = %d kNDIMY = %d ave = %f cutoff = %f",kNMX,nmx1,kNDIMX,kNDIMY,ave,cutoff));
  
  for (j = 0; j < kNDIMX; j++)
    {
      for(k = 0; k < kNDIMY; k++)
	{
	  fInfocl[0][j][k] = 0;
	  fInfocl[1][j][k] = 0;
	}
    }
  for(i=0; i < kNMX; i++)
    {
      fInfcl[0][i] = -1;
      
      j  = iord1[i];
      id2 = j/kNDIMX;
      id1 = j-id2*kNDIMX;

      if(edepcell[j] <= cutoff)
	{
	  fInfocl[0][id1][id2] = -1;
	}
    }

  // ---------------------------------------------------------------
  // crude clustering begins. Start with cell having largest adc
  // count and loop over the cells in descending order of adc count
  // ---------------------------------------------------------------

  icl       = -1;
  cellcount = -1;

  for(icell = 0; icell <= nmx1; icell++)
    {
      j  = iord1[icell];
      id2 = j/kNDIMX;
      id1 = j-id2*kNDIMX;

      if(fInfocl[0][id1][id2] == 0 )
	{
	  icl++;
	  numcell = 0;
	  cellcount++; 
	  fInfocl[0][id1][id2] = 1;
	  fInfocl[1][id1][id2] = icl;
	  fInfcl[0][cellcount] = icl;
	  fInfcl[1][cellcount] = id1;
	  fInfcl[2][cellcount] = id2;

	  clust[0][numcell] = id1;
	  clust[1][numcell] = id2;
	  
	  for(i = 1; i < kndim; i++)
	    {
	      clust[0][i]=0;
	    }
	  // ---------------------------------------------------------------
	  // check for adc count in neib. cells. If ne 0 put it in this clust
	  // ---------------------------------------------------------------
	  for(i = 0; i < 6; i++)
	    {
	      jd1 = id1 + neibx[i];
	      jd2 = id2 + neiby[i];
	      if( (jd1 >= 0 && jd1 < kNDIMX) && (jd2 >= 0 && jd2 < kNDIMY) &&
		  fInfocl[0][jd1][jd2] == 0)
		{
		  numcell++;
		  fInfocl[0][jd1][jd2] = 2;
		  fInfocl[1][jd1][jd2] = icl;
		  clust[0][numcell]    = jd1;
		  clust[1][numcell]    = jd2;
		  cellcount++;
		  fInfcl[0][cellcount] = icl;
		  fInfcl[1][cellcount] = jd1;
		  fInfcl[2][cellcount] = jd2;
		}
	    }
	  // ---------------------------------------------------------------
	  // check adc count for neighbour's neighbours recursively and
	  // if nonzero, add these to the cluster.
	  // ---------------------------------------------------------------
	  for(i = 1; i < kndim;i++)
	    {
	      if(clust[0][i] != 0)
		{
		  id1 = clust[0][i];
		  id2 = clust[1][i];
		  for(j = 0; j < 6 ; j++)
		    {
		      jd1 = id1 + neibx[j];
		      jd2 = id2 + neiby[j];
		      if( (jd1 >= 0 && jd1 < kNDIMX) && 
			  (jd2 >= 0 && jd2 < kNDIMY) &&
			  fInfocl[0][jd1][jd2] == 0 )
			{
			  fInfocl[0][jd1][jd2] = 2;
			  fInfocl[1][jd1][jd2] = icl;
			  numcell++;
			  clust[0][numcell]    = jd1;
			  clust[1][numcell]    = jd2;
			  cellcount++;
			  fInfcl[0][cellcount] = icl;
			  fInfcl[1][cellcount] = jd1;
			  fInfcl[2][cellcount] = jd2;
			}
		    }
		}
	    }
	}
    }
  return cellcount;
}
// ------------------------------------------------------------------------ //
void AliPMDClusteringV1::RefClust(Int_t incr, Double_t edepcell[])
{
  // Does the refining of clusters
  // Takes the big patch and does gaussian fitting and
  // finds out the more refined clusters
  //
  
  AliPMDcludata *pmdcludata = 0;
  
  const Int_t kNmaxCell   = 19;    // # of cells surrounding a cluster center
  
  Int_t ndim = incr + 1;
  
  Int_t    *ncl  = 0x0;
  Int_t    *clxy = 0x0;  
  Int_t    i12 = 0, i22 = 0;
  Int_t    i = 0, j = 0, k = 0;
  Int_t    i1 = 0, i2 = 0, id = 0, icl = 0;
  Int_t    itest = 0, ihld = 0, ig = 0;
  Int_t    nsupcl = 0, clno = 0, t1 = 0, t2 = 0;
  Float_t  clusdata[6];
  Double_t x1 = 0, y1 = 0, z1 = 0, x2 = 0, y2 = 0, z2 = 0, rr = 0;
  
  ncl   = new Int_t [ndim];
  clxy  = new Int_t [kNmaxCell];
  
  // Initialisation  
  for(i = 0; i<ndim; i++)
    {
      ncl[i]  = -1; 
    }
  for(i = 0; i<6; i++)
    {
      clusdata[i] = 0.;
    }
  for(i = 0; i<19; i++)
    {
      clxy[i] = 0;
    }

  // clno counts the final clusters
  // nsupcl =  # of superclusters; ncl[i]= # of cells in supercluster i
  // x, y and z store (x,y) coordinates of and energy deposited in a cell
  // xc, yc store (x,y) coordinates of the cluster center
  // zc stores the energy deposited in a cluster
  // rc is cluster radius
  
  clno  = -1;
  nsupcl = -1;

  for(i = 0; i <= incr; i++)
    {
      if(fInfcl[0][i] != nsupcl)
	{
	  nsupcl++;
	}
      if (nsupcl >= ndim) 
	{
	  AliWarning("RefClust: Too many superclusters!");
	  nsupcl = ndim - 1;
	  break;
	}
      ncl[nsupcl]++;
    }
  
  AliDebug(1,Form("Number of cells = %d Number of Superclusters = %d",
		  incr+1,nsupcl+1));
  id  = -1;
  icl = -1;
  
  for(i = 0; i <= nsupcl; i++) 
    {
      if(ncl[i] == 0)
	{
	  id++;
	  icl++;
	  if (clno >= 4608) 
	    {
	      AliWarning("RefClust: Too many clusters! more than 4608");
	      delete [] ncl;
	      delete [] clxy;
	      return;
	    }
	  clno++;
	  i1 = fInfcl[1][id];
	  i2 = fInfcl[2][id];
	  
	  i12 = i1 + i2*kNDIMX;
	  
	  clusdata[0] = fCoord[0][i1][i2];
	  clusdata[1] = fCoord[1][i1][i2];
	  clusdata[2] = edepcell[i12];
	  clusdata[3] = 1.;
	  clusdata[4] = 999.5;
	  clusdata[5] = 999.5;

	  clxy[0] = i1*10000 + i2;
	  
	  for(Int_t icltr = 1; icltr < kNmaxCell; icltr++)
	    {
	      clxy[icltr] = -1;
	    }

	  pmdcludata  = new AliPMDcludata(clusdata,clxy);
	  fPMDclucont->Add(pmdcludata);
	}
      else if(ncl[i] == 1) 
	{
	  id++;
	  icl++;
	  if (clno >= 4608) 
	    {
	      AliWarning("RefClust: Too many clusters! more than 4608");
	      delete [] ncl;
	      delete [] clxy;

	      return;
	    }
	  clno++;
	  i1   = fInfcl[1][id];
	  i2   = fInfcl[2][id];
	  i12  = i1 + i2*kNDIMX;

	  x1   = fCoord[0][i1][i2];
	  y1   = fCoord[1][i1][i2];
	  z1   = edepcell[i12];

	  clxy[0] = i1*10000 + i2;
	  
	  id++;
	  i1   = fInfcl[1][id];
	  i2   = fInfcl[2][id];

	  i22  = i1 + i2*kNDIMX;
	  x2   = fCoord[0][i1][i2];
	  y2   = fCoord[1][i1][i2];
	  z2   = edepcell[i22];

	  clxy[1] = i1*10000 + i2;
	  

	  for(Int_t icltr = 2; icltr < kNmaxCell; icltr++)
	    {
	      clxy[icltr] = -1;
	    }
	  
	  clusdata[0] = (x1*z1+x2*z2)/(z1+z2);
	  clusdata[1] = (y1*z1+y2*z2)/(z1+z2);
	  clusdata[2] = z1+z2;
	  clusdata[3] = 2.;
	  clusdata[4] = 0.5;
	  clusdata[5] = 0.0;
	  pmdcludata  = new AliPMDcludata(clusdata,clxy);
	  fPMDclucont->Add(pmdcludata);
	}
      else
	{
	  Int_t    *iord, *tc, *t;
	  Double_t *x, *y, *z, *xc, *yc, *zc;

	  iord = new Int_t [ncl[i]+1];
	  tc   = new Int_t [ncl[i]+1];
	  t    = new Int_t [ncl[i]+1];
	  x    = new Double_t [ncl[i]+1];
	  y    = new Double_t [ncl[i]+1];
	  z    = new Double_t [ncl[i]+1];
	  xc   = new Double_t [ncl[i]+1];
	  yc   = new Double_t [ncl[i]+1];
	  zc   = new Double_t [ncl[i]+1];
	  
	  for( k = 0; k < ncl[i]+1; k++)
	    {
	      iord[k] = -1;
	      t[k]    = -1;
	      tc[k]   = -1;
	      x[k]    = -1;
	      y[k]    = -1;
	      z[k]    = -1;
	      xc[k]   = -1;
	      yc[k]   = -1;
	      zc[k]   = -1;
	    }
	  id++;
	  // super-cluster of more than two cells - broken up into smaller
	  // clusters gaussian centers computed. (peaks separated by > 1 cell)
	  // Begin from cell having largest energy deposited This is first
	  // cluster center
	  i1      = fInfcl[1][id];
	  i2      = fInfcl[2][id];
	  i12     = i1 + i2*kNDIMX;
	  
	  x[0]    = fCoord[0][i1][i2];
	  y[0]    = fCoord[1][i1][i2];
	  z[0]    = edepcell[i12];
	  t[0]    = i1*10000 + i2;
	  

	  iord[0] = 0;
	  for(j = 1; j <= ncl[i]; j++)
	    {
	      id++;
	      i1      = fInfcl[1][id];
	      i2      = fInfcl[2][id];
	      i12     = i1 + i2*kNDIMX;
	      iord[j] = j;
	      x[j]    = fCoord[0][i1][i2];
	      y[j]    = fCoord[1][i1][i2];
	      z[j]    = edepcell[i12];
	      t[j]    = i1*10000 + i2;
	    }
	  
	  // arranging cells within supercluster in decreasing order
	  
	  for(j = 1;j <= ncl[i]; j++)
	    {
	      itest = 0;
	      ihld  = iord[j];
	      for(i1 = 0; i1 < j; i1++)
		{
		  if(itest == 0 && z[iord[i1]] < z[ihld])
		    {
		      itest = 1;
		      for(i2 = j-1; i2 >= i1; i2--)
			{
			  iord[i2+1] = iord[i2];
			}
		      iord[i1] = ihld;
		    }
		}
	    }

	  if (fClusParam == 1)
	    {
	      // Clustering algorithm returns from here for PP collisions
	      // for pp, only the output of crude clusterng is taken
	      // sigx and sigy are not calculated at this moment

	      Double_t supx=0., supy=0., supz=0.;
	  
	      for(j = 0;j <= ncl[i]; j++)
		{
		  supx += x[iord[j]]*z[iord[j]];
		  supy += y[iord[j]]*z[iord[j]];
		  supz += z[iord[j]];
		  if(j < 19)
		    {
		      clxy[j] = t[iord[j]];
		    }
		}
	      
	      if( ncl[i] + 1 < 19)
		{
		  for(Int_t ncel = ncl[i] + 1; ncel < kNmaxCell; ncel ++ )
		    {
		      clxy[ncel] = -1;
		    }
		}
	      clusdata[0] = supx/supz;
	      clusdata[1] = supy/supz;
	      clusdata[2] = supz;
	      clusdata[3] = ncl[i]+1;
	      clusdata[4] = 0.5;
	      clusdata[5] = 0.0;
	      pmdcludata  = new AliPMDcludata(clusdata,clxy);
	      fPMDclucont->Add(pmdcludata);
	    }

	  /* MODIFICATION PART STARTS (Tapan July 2008)
	     iord[0] is the cell with highest ADC in the crude-cluster
	     ig is the number of local maxima in the crude-cluster
	     For the higest peak we make ig=0 which means first local maximum.
	     Next we go down in terms of the ADC sequence and find out if any
	     more of the cells form local maxima. The definition of local 
	     maxima is that all its neighbours are of less ADC compared to it. 
	  */

	  if (fClusParam == 2)
	    {
	      // This part is to split the supercluster
	      //
	      ig = 0;
	      xc[ig] = x[iord[0]];
	      yc[ig] = y[iord[0]];
	      zc[ig] = z[iord[0]];
	      tc[ig] = t[iord[0]];
	      Int_t ivalid = 0,  icount = 0;
	  
	      for(j=1;j<=ncl[i];j++)
		{
		  x1  = x[iord[j]];
		  y1  = y[iord[j]]; 
		  z1  = z[iord[j]];
		  t1  = t[iord[j]];
		  rr=Distance(x1,y1,xc[ig],yc[ig]);
		  
		  // Check the cells which are outside the neighbours (rr>1.2)
		  if(rr>1.2 ) 
		    {
		      ivalid=0;
		      icount=0;
		      for(Int_t j1=1;j1<j;j1++)
			{
			  icount++;
			  Float_t rr1=Distance(x1,y1,x[iord[j1]],y[iord[j1]]);
			  if(rr1>1.2) ivalid++;
			}
		      if(ivalid == icount && z1>0.5*zc[ig])
			{
			  ig++;
			  xc[ig]=x1; 
			  yc[ig]=y1; 
			  zc[ig]=z1;
			  tc[ig]=t1;
			}
		    }	  
		}
	  
	      icl=icl+ig+1;
	  
	      //  We use simple Gaussian weighting. (Tapan Jan 2005)
	      // compute the number of cells belonging to each cluster.
	      // cell can be shared between several clusters  
	      // in the ratio of cluster energy deposition
	      // To calculate: 
	      // (1) number of cells belonging to a cluster (ig) and 
	      // (2) total ADC of the cluster (ig) 
	      // (3) x and y positions of the cluster
	  
	      
	      Int_t *cellCount;
	      Int_t **cellXY;
	      
	      Int_t    *status;
	      Double_t *totaladc, *totaladc2, *ncell,*weight;
	      Double_t *xclust, *yclust, *sigxclust, *sigyclust;
	      Double_t *ax, *ay, *ax2, *ay2;
	  
	  
	      status    = new Int_t [ncl[i]+1];
	      cellXY    = new Int_t *[ncl[i]+1];
	  
	      cellCount = new Int_t [ig+1];
	      totaladc  = new Double_t [ig+1];
	      totaladc2 = new Double_t [ig+1];
	      ncell     = new Double_t [ig+1];
	      weight    = new Double_t [ig+1];
	      xclust    = new Double_t [ig+1];
	      yclust    = new Double_t [ig+1];
	      sigxclust = new Double_t [ig+1];
	      sigyclust = new Double_t [ig+1];
	      ax        = new Double_t [ig+1];
	      ay        = new Double_t [ig+1];
	      ax2       = new Double_t [ig+1];
	      ay2       = new Double_t [ig+1];
	      
	      for(j = 0; j < ncl[i]+1; j++) 
		{
		  status[j]     = 0;
		  cellXY[j] = new Int_t[ig+1];
		}
	      //initialization
	      for(Int_t kcl = 0; kcl < ig+1; kcl++)
		{
		  cellCount[kcl] = 0;
		  totaladc[kcl]  = 0.;
		  totaladc2[kcl] = 0.;
		  ncell[kcl]     = 0.;
		  weight[kcl]    = 0.;	
		  xclust[kcl]    = 0.; 
		  yclust[kcl]    = 0.;
		  sigxclust[kcl] = 0.; 
		  sigyclust[kcl] = 0.;
		  ax[kcl]        = 0.;      
		  ay[kcl]        = 0.;      
		  ax2[kcl]       = 0.;      
		  ay2[kcl]       = 0.;    
		  for(j = 0; j < ncl[i]+1; j++)
		    {
		      cellXY[j][kcl] = 0;
		    }
		}
	      Double_t sumweight, gweight; 
	      
	      for(j = 0;j <= ncl[i]; j++)
		{
		  x1 = x[iord[j]];
		  y1 = y[iord[j]];
		  z1 = z[iord[j]];
		  t1 = t[iord[j]];
		  
		  for(Int_t kcl=0; kcl<=ig; kcl++)
		    {
		      x2 = xc[kcl];
		      y2 = yc[kcl];
		      rr = Distance(x1,y1,x2,y2);
		      t2 = tc[kcl];		  
		      
		      if(rr==0)
			{
			  ncell[kcl]     = 1.;
			  totaladc[kcl]  = z1;
			  totaladc2[kcl] = z1*z1;
			  ax[kcl]        = x1 * z1;
			  ay[kcl]        = y1 * z1;
			  ax2[kcl]       = 0.;
			  ay2[kcl]       = 0.;
			  status[j]      = 1;
			}
		    }
		}
	  
	      for(j = 0; j <= ncl[i]; j++)
		{
		  Int_t   maxweight = 0;
		  Double_t     max  = 0.;
		  
		  if(status[j] == 0)
		    { 
		      x1 = x[iord[j]]; 
		      y1 = y[iord[j]];
		      z1 = z[iord[j]];
		      t1 = t[iord[j]];
		      sumweight = 0.;

		      for(Int_t kcl = 0; kcl <= ig; kcl++)
			{
			  x2 = xc[kcl]; 
			  y2 = yc[kcl]; 
			  rr = Distance(x1,y1,x2,y2);
			  gweight     = exp(-(rr*rr)/(2*(1.2*1.2)));
			  weight[kcl] = zc[kcl] * gweight;
			  sumweight   = sumweight + weight[kcl];
			  
			  if(weight[kcl] > max)
			    {
			      max       =  weight[kcl];
			      maxweight =  kcl;
			    }
			}
		      
		      cellXY[cellCount[maxweight]][maxweight] = iord[j];
		      
		      cellCount[maxweight]++;
		      
		      x2 = xc[maxweight];
		      y2 = yc[maxweight];
		      totaladc[maxweight]  +=  z1;
		      ax[maxweight]        +=  x1*z1;
		      ay[maxweight]        +=  y1*z1;
		      totaladc2[maxweight] +=  z1*z1;
		      ax2[maxweight]       +=  z1*(x1-x2)*(x1-x2);
		      ay2[maxweight]       +=  z1*(y1-y2)*(y1-y2);
		      ncell[maxweight]++;
		      
		    }
		}
	  
	      for(Int_t kcl = 0; kcl <= ig; kcl++)
		{
		  if(totaladc[kcl] > 0.)
		    {
		      xclust[kcl] = (ax[kcl])/ totaladc[kcl];
		      yclust[kcl] = (ay[kcl])/ totaladc[kcl];
		      
		      //natasha
		      Float_t sqtotadc = totaladc[kcl]*totaladc[kcl];
		      if(totaladc2[kcl] >= sqtotadc)
			{
			  sigxclust[kcl] = 0.25;
			  sigyclust[kcl] = 0.25;
			}
		      else
			{
			  sigxclust[kcl] = (totaladc[kcl]/(sqtotadc-totaladc2[kcl]))*ax2[kcl];
			  sigyclust[kcl] = (totaladc[kcl]/(sqtotadc-totaladc2[kcl]))*ay2[kcl];
			}	
		    }
		  
		  for(j = 0; j < cellCount[kcl]; j++) clno++; 
		  
		  if (clno >= 4608) 
		    {
		      AliWarning("RefClust: Too many clusters! more than 4608");

		      delete [] cellCount;
		      for(Int_t jj = 0; jj < ncl[i]+1; jj++) delete [] cellXY[jj];
		      delete [] cellXY;

		      delete [] status;
		      delete [] totaladc;
		      delete [] totaladc2;
		      delete [] ncell;
		      delete [] xclust;
		      delete [] yclust;
		      delete [] sigxclust;
		      delete [] sigyclust;
		      delete [] ax;
		      delete [] ay;
		      delete [] ax2;
		      delete [] ay2;
		      delete [] weight;

		      delete [] iord;
		      delete [] tc;	  
		      delete [] t;
		      delete [] x;
		      delete [] y;
		      delete [] z;
		      delete [] xc;
		      delete [] yc;
		      delete [] zc;


		      delete [] ncl;
		      delete [] clxy;

		      return;
		    }
		  clusdata[0] = xclust[kcl];
		  clusdata[1] = yclust[kcl];
		  clusdata[2] = totaladc[kcl];
		  clusdata[3] = ncell[kcl];
		  
		  if(sigxclust[kcl] > sigyclust[kcl]) 
		    {
		      clusdata[4] = TMath::Sqrt(sigxclust[kcl]);
		      clusdata[5] = TMath::Sqrt(sigyclust[kcl]);
		    }
		  else
		    {
		      clusdata[4] = TMath::Sqrt(sigyclust[kcl]);
		      clusdata[5] = TMath::Sqrt(sigxclust[kcl]);
		    }
		  
		  clxy[0] = tc[kcl];
		  
		  Int_t Ncell=1;
		  for (Int_t ii = 0; ii < cellCount[kcl]; ii++)
		    {
		      if(ii<18) 
			{	
			  clxy[Ncell] = t[cellXY[ii][kcl]];
			  Ncell++;
			}
		    } 
		  
		  pmdcludata = new AliPMDcludata(clusdata,clxy);
		  fPMDclucont->Add(pmdcludata);
		}
	      delete [] cellCount;
	      for(Int_t jj = 0; jj < ncl[i]+1; jj++) delete [] cellXY[jj];
	      delete [] cellXY;

	      delete [] status;
	      delete [] totaladc;
	      delete [] totaladc2;
	      delete [] ncell;
	      delete [] xclust;
	      delete [] yclust;
	      delete [] sigxclust;
	      delete [] sigyclust;
	      delete [] ax;
	      delete [] ay;
	      delete [] ax2;
	      delete [] ay2;
	      delete [] weight;

	    }

	  delete [] iord;
	  delete [] tc;	  
	  delete [] t;
	  delete [] x;
	  delete [] y;
	  delete [] z;
	  delete [] xc;
	  delete [] yc;
	  delete [] zc;


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