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

//-----------------------------------------------------------------------------
/// \class AliMUONClusterSplitterMLEM
/// 
/// Splitter class for the MLEM algorithm. Performs fitting procedure
/// with up to 3 hit candidates and tries to split clusters if the number
/// of candidates exceeds 3.
///
/// \author Laurent Aphecetche (for the "new" C++ structure) and 
/// Alexander Zinchenko, JINR Dubna, for the hardcore of it ;-)
//-----------------------------------------------------------------------------

#include "AliMUONClusterSplitterMLEM.h"
#include "AliMUONClusterFinderMLEM.h" // for status flag constants

#include "AliMUONCluster.h"
#include "AliMUONPad.h"
#include "AliMUONPad.h"
#include "AliMUONConstants.h"
#include "AliMpDEManager.h"
#include "AliMUONMathieson.h"

#include "AliMpEncodePair.h"

#include "AliLog.h"

#include <TClonesArray.h>
#include <TH2.h>
#include <TMath.h>
#include <TMatrixD.h>
#include <TObjArray.h>
#include <TRandom.h>
#include <Riostream.h>

using std::endl;
using std::cout;
/// \cond CLASSIMP
ClassImp(AliMUONClusterSplitterMLEM)
/// \endcond

//const Double_t AliMUONClusterSplitterMLEM::fgkCouplMin = 1.e-3; // threshold on coupling 
const Double_t AliMUONClusterSplitterMLEM::fgkCouplMin = 1.e-2; // threshold on coupling 

//_____________________________________________________________________________
AliMUONClusterSplitterMLEM::AliMUONClusterSplitterMLEM(Int_t detElemId, 
                                                       TObjArray* pixArray,
                                                       Double_t lowestPixelCharge,
                                                       Double_t lowestPadCharge,
                                                       Double_t lowestClusterCharge) 
: TObject(),
fPixArray(pixArray),
fMathieson(0x0),
fDetElemId(detElemId),
fNpar(0),
fQtot(0),
fnCoupled(0),
fDebug(0),
fLowestPixelCharge(lowestPixelCharge),
fLowestPadCharge(lowestPadCharge),
fLowestClusterCharge(lowestClusterCharge)
{
  /// Constructor
  
  AliMq::Station12Type stationType = AliMpDEManager::GetStation12Type(fDetElemId);
  
  Float_t kx3 = AliMUONConstants::SqrtKx3();
  Float_t ky3 = AliMUONConstants::SqrtKy3();
  Float_t pitch = AliMUONConstants::Pitch();
  
  if ( stationType == AliMq::kStation1 )
  {
    kx3 = AliMUONConstants::SqrtKx3St1();
    ky3 = AliMUONConstants::SqrtKy3St1();
    pitch = AliMUONConstants::PitchSt1();
  }
  
  fMathieson = new AliMUONMathieson;
  
  fMathieson->SetPitch(pitch);
  fMathieson->SetSqrtKx3AndDeriveKx2Kx4(kx3);
  fMathieson->SetSqrtKy3AndDeriveKy2Ky4(ky3);
  
}

//_____________________________________________________________________________
AliMUONClusterSplitterMLEM::~AliMUONClusterSplitterMLEM()
{
  /// Destructor
  
  delete fMathieson;
}

//_____________________________________________________________________________
void 
AliMUONClusterSplitterMLEM::AddBin(TH2 *mlem, 
                                   Int_t ic, Int_t jc, Int_t mode, 
                                   Bool_t *used, TObjArray *pix)
{
  /// Add a bin to the cluster
  
  Int_t nx = mlem->GetNbinsX();
  Int_t ny = mlem->GetNbinsY();
  Double_t cont1, cont = mlem->GetBinContent(mlem->GetBin(jc,ic));
  AliMUONPad *pixPtr = 0;
  
  Int_t ie = TMath::Min(ic+1,ny), je = TMath::Min(jc+1,nx);
  for (Int_t i = TMath::Max(ic-1,1); i <= ie; ++i) {
    for (Int_t j = TMath::Max(jc-1,1); j <= je; ++j) {
      if (i != ic && j != jc) continue;
      if (used[(i-1)*nx+j-1]) continue;
      cont1 = mlem->GetBinContent(mlem->GetBin(j,i));
      if (mode && cont1 > cont) continue;
      used[(i-1)*nx+j-1] = kTRUE;
      if (cont1 < fLowestPixelCharge) continue;
      if (pix) pix->Add(BinToPix(mlem,j,i)); 
      else {
        pixPtr = new AliMUONPad (mlem->GetXaxis()->GetBinCenter(j), 
				 mlem->GetYaxis()->GetBinCenter(i), 0, 0, cont1);
        fPixArray->Add(pixPtr);
      }
      AddBin(mlem, i, j, mode, used, pix); // recursive call
    }
  }
}

//_____________________________________________________________________________
void 
AliMUONClusterSplitterMLEM::AddCluster(Int_t ic, Int_t nclust, 
                                       TMatrixD& aijcluclu, 
                                       Bool_t *used, Int_t *clustNumb, Int_t &nCoupled)
{
  /// Add a cluster to the group of coupled clusters
  
  for (Int_t i = 0; i < nclust; ++i) {
    if (used[i]) continue;
    if (aijcluclu(i,ic) < fgkCouplMin) continue;
    used[i] = kTRUE;
    clustNumb[nCoupled++] = i;
    AddCluster(i, nclust, aijcluclu, used, clustNumb, nCoupled);
  }
}

//_____________________________________________________________________________
TObject* 
AliMUONClusterSplitterMLEM::BinToPix(TH2 *mlem,
                                     Int_t jc, Int_t ic)
{
  /// Translate histogram bin to pixel 
  
  Double_t yc = mlem->GetYaxis()->GetBinCenter(ic);
  Double_t xc = mlem->GetXaxis()->GetBinCenter(jc);
  
  Int_t nPix = fPixArray->GetEntriesFast();
  AliMUONPad *pixPtr = NULL;
  
  // Compare pixel and bin positions
  for (Int_t i = 0; i < nPix; ++i) {
    pixPtr = (AliMUONPad*) fPixArray->UncheckedAt(i);
    if (pixPtr->Charge() < fLowestPixelCharge) continue; 
    if (TMath::Abs(pixPtr->Coord(0)-xc)<1.e-4 && TMath::Abs(pixPtr->Coord(1)-yc)<1.e-4) 
    {
      //return (TObject*) pixPtr;
      return pixPtr;
    }
  }
  AliError(Form(" Something wrong ??? %f %f ", xc, yc));
  return NULL;
}

//_____________________________________________________________________________
Float_t
AliMUONClusterSplitterMLEM::ChargeIntegration(Double_t x, Double_t y,
                                              const AliMUONPad& pad)
{
  /// Compute the Mathieson integral on pad area, assuming the center
  /// of the Mathieson is at (x,y)
  
  TVector2 lowerLeft(TVector2(x,y)-pad.Position()-pad.Dimensions());
  TVector2 upperRight(lowerLeft + pad.Dimensions()*2.0);
  
	return fMathieson->IntXY(lowerLeft.X(),lowerLeft.Y(),
                           upperRight.X(),upperRight.Y());
}

//_____________________________________________________________________________
void 
AliMUONClusterSplitterMLEM::Fcn1(const AliMUONCluster& cluster, 
                                    Int_t & /*fNpar*/, Double_t * /*gin*/, 
                                    Double_t &f, Double_t *par, Int_t iflag)
{
  /// Computes the functional to be minimized
  
  Int_t indx, npads=0;
  Double_t charge, delta, coef=0, chi2=0, qTot = 0;
  static Double_t qAver = 0;
  
  Int_t mult = cluster.Multiplicity(), iend = fNpar / 3;
  for (Int_t j = 0; j < mult; ++j) 
  {
    AliMUONPad* pad = cluster.Pad(j);
    //if ( pad->Status() !=1 || pad->IsSaturated() ) continue;
    if ( pad->Status() != AliMUONClusterFinderMLEM::GetUseForFitFlag() ||
         pad->Charge() == 0 ) continue;
    if (iflag == 0) {
      if ( pad->IsReal() ) npads++; // exclude virtual pads
      qTot += pad->Charge(); 
    }
    charge = 0;
    for (Int_t i = 0; i <= iend; ++i)
    { 
      // sum over hits
      indx = 3 * i;
      coef = Param2Coef(i, coef, par);
      charge += ChargeIntegration(par[indx],par[indx+1],*pad) * coef;
    }
    charge *= fQtot;
    delta = charge - pad->Charge(); 
    delta *= delta;
    delta /= pad->Charge(); 
    chi2 += delta;
  } // for (Int_t j=0;
  if (iflag == 0 && npads) qAver = qTot / npads;
  if (!npads && iflag==0)
  {
    AliError(Form("Got npads=0. Please check"));
  }
  f = chi2 / qAver;
}

//_____________________________________________________________________________
Double_t AliMUONClusterSplitterMLEM::Param2Coef(Int_t icand, Double_t coef, Double_t *par) const
{
  /// Extract hit contribution scale factor from fit parameters
  
  if (fNpar == 2) return 1.;
  if (fNpar == 5) return icand==0 ? par[2] : TMath::Max(1.-par[2],0.);
  if (icand == 0) return par[2];
  if (icand == 1) return TMath::Max((1.-par[2])*par[5], 0.);
  return TMath::Max(1.-par[2]-coef,0.);
}

//_____________________________________________________________________________
Int_t 
AliMUONClusterSplitterMLEM::Fit(const AliMUONCluster& cluster,
                                Int_t iSimple, Int_t nfit, 
                                const Int_t *clustFit, TObjArray **clusters, 
                                Double_t *parOk,
                                TObjArray& clusterList, TH2 *mlem)
{
  /// Steering function and fitting procedure for the fit of pad charge distribution
  
  //  AliDebug(2,Form("iSimple=%d nfit=%d",iSimple,nfit));
  
  Double_t xmin = mlem->GetXaxis()->GetXmin() - mlem->GetXaxis()->GetBinWidth(1);
  Double_t xmax = mlem->GetXaxis()->GetXmax() + mlem->GetXaxis()->GetBinWidth(1);
  Double_t ymin = mlem->GetYaxis()->GetXmin() - mlem->GetYaxis()->GetBinWidth(1);
  Double_t ymax = mlem->GetYaxis()->GetXmax() + mlem->GetYaxis()->GetBinWidth(1);
  
  // Number of pads to use and number of virtual pads
  Int_t npads = 0, nVirtual = 0, nfit0 = nfit;
  //cluster.Print("full");
  Int_t mult = cluster.Multiplicity();
  for (Int_t i = 0; i < mult; ++i ) 
  {
    AliMUONPad* pad = cluster.Pad(i);
    if ( !pad->IsReal() ) ++nVirtual;
    //if ( pad->Status() !=1 || pad->IsSaturated() ) continue;
    if ( pad->Status() != AliMUONClusterFinderMLEM::GetUseForFitFlag() ) continue;
    if ( pad->IsReal() )
    {
      ++npads;
    }
  }
  
  fNpar = 0;
  fQtot = 0;
  
  if (npads < 2) return 0; 
  
  // FIXME : AliWarning("Reconnect the following code for hit/track passing ?");
  
  //  Int_t tracks[3] = {-1, -1, -1};
  
  /*
   Int_t digit = 0;
   AliMUONDigit *mdig = 0;
   for (Int_t cath=0; cath<2; cath++) {  
     for (Int_t i=0; i<fnPads[0]+fnPads[1]; i++) {
       if (fPadIJ[0][i] != cath) continue;
       if (fPadIJ[1][i] != 1) continue;
       if (fXyq[3][i] < 0) continue; // exclude virtual pads
       digit = TMath::Nint (fXyq[5][i]);
       if (digit >= 0) mdig = fInput->Digit(cath,digit);
       else mdig = fInput->Digit(TMath::Even(cath),-digit-1);
       //if (!mdig) mdig = fInput->Digit(TMath::Even(cath),digit);
       if (!mdig) continue; // protection for cluster display
       if (mdig->Hit() >= 0) {
         if (tracks[0] < 0) {
           tracks[0] = mdig->Hit();
           tracks[1] = mdig->Track(0);
         } else if (mdig->Track(0) < tracks[1]) {
           tracks[0] = mdig->Hit();
           tracks[1] = mdig->Track(0);
         }
       }
       if (mdig->Track(1) >= 0 && mdig->Track(1) != tracks[1]) {
         if (tracks[2] < 0) tracks[2] = mdig->Track(1);
         else tracks[2] = TMath::Min (tracks[2], mdig->Track(1));
       }
     } // for (Int_t i=0;
  } // for (Int_t cath=0;
   */
  
  // Get number of pads in X and Y 
  //const Int_t kStatusToTest(1);
  const Int_t kStatusToTest(AliMUONClusterFinderMLEM::GetUseForFitFlag());
  
  Long_t nofPads = cluster.NofPads(kStatusToTest);
  Int_t nInX = AliMp::PairFirst(nofPads);
  Int_t nInY = AliMp::PairSecond(nofPads);

  if (fDebug) {
    Int_t npadOK = 0;
    for (Int_t j = 0; j < cluster.Multiplicity(); ++j) {
      AliMUONPad *pad = cluster.Pad(j);
      //if (pad->Status() == 1 && !pad->IsSaturated()) npadOK++;
      if (pad->Status() == AliMUONClusterFinderMLEM::GetUseForFitFlag() && !pad->IsSaturated()) npadOK++;
    }
    cout << " Number of pads to fit: " << npadOK << endl;
    cout << " nInX and Y: " << nInX << " " << nInY << endl;
  }
  
  Int_t nfitMax = 3; 
  nfitMax = TMath::Min (nfitMax, (npads + 1) / 3);
  if (nfitMax > 1) {
    if (((nInX < 3) && (nInY < 3)) || ((nInX == 3) && (nInY < 3)) || ((nInX < 3) && (nInY == 3))) nfitMax = 1; // not enough pads in each direction
  }
  if (nfit > nfitMax) nfit = nfitMax;
  
  // Take cluster maxima as fitting seeds
  TObjArray *pix;
  AliMUONPad *pixPtr;
  Int_t npxclu;
  Double_t cont, cmax = 0, xseed = 0, yseed = 0, errOk[8], qq = 0;
  
  for ( int i = 0; i < 8; ++i ) errOk[i]=0.0;
  
  Double_t xyseed[3][2], qseed[3], xyCand[3][2] = {{0},{0}}, sigCand[3][2] = {{0},{0}};
  
  for (Int_t ifit = 1; ifit <= nfit0; ++ifit) 
  {
    cmax = 0;
    pix = clusters[clustFit[ifit-1]];
    npxclu = pix->GetEntriesFast();
    //qq = 0;
    for (Int_t clu = 0; clu < npxclu; ++clu) 
    {
      pixPtr = (AliMUONPad*) pix->UncheckedAt(clu);
      cont = pixPtr->Charge();
      fQtot += cont;
      if (cont > cmax) 
      { 
        cmax = cont; 
        xseed = pixPtr->Coord(0);
        yseed = pixPtr->Coord(1);
      }
      qq += cont;
      xyCand[0][0] += pixPtr->Coord(0) * cont;
      xyCand[0][1] += pixPtr->Coord(1) * cont;
      sigCand[0][0] += pixPtr->Coord(0) * pixPtr->Coord(0) * cont;
      sigCand[0][1] += pixPtr->Coord(1) * pixPtr->Coord(1) * cont;
    }
    xyseed[ifit-1][0] = xseed;
    xyseed[ifit-1][1] = yseed;
    qseed[ifit-1] = cmax;
  } // for (Int_t ifit=1;
  
  xyCand[0][0] /= qq; // <x>
  xyCand[0][1] /= qq; // <y>
  sigCand[0][0] = sigCand[0][0]/qq - xyCand[0][0]*xyCand[0][0]; // <x^2> - <x>^2
  sigCand[0][0] = sigCand[0][0] > 0 ? TMath::Sqrt (sigCand[0][0]) : 0;
  sigCand[0][1] = sigCand[0][1]/qq - xyCand[0][1]*xyCand[0][1]; // <y^2> - <y>^2
  sigCand[0][1] = sigCand[0][1] > 0 ? TMath::Sqrt (sigCand[0][1]) : 0;
  if (fDebug) cout << xyCand[0][0] << " " << xyCand[0][1] << " " << sigCand[0][0] << " " << sigCand[0][1] << endl;
  
  Int_t nDof, maxSeed[3];//, nMax = 0;

  if ( nfit0 < 0 || nfit0 > 3 ) {
     AliErrorStream() << "Wrong nfit0 value: " << nfit0 << endl;
     return nfit;
  }   
  TMath::Sort(nfit0, qseed, maxSeed, kTRUE); // in decreasing order
    
  Double_t step[3]={0.01,0.002,0.02}, fmin, chi2o = 9999, chi2n;
  Double_t *gin = 0, func0, func1, param[8]={0}, step0[8]={0};
  Double_t param0[2][8]={{0},{0}}, deriv[2][8]={{0},{0}}; 
  Double_t shift[8]={0}, stepMax, derMax, parmin[8]={0}, parmax[8]={0}, func2[2]={0}, shift0;
  Double_t delta[8]={0}, scMax, dder[8], estim, shiftSave = 0;
  Int_t min, max, nCall = 0, nLoop, idMax = 0, nFail;
  Double_t rad, dist[3] = {0};
    
  // Try to fit with one-track hypothesis, then 2-track. If chi2/dof is 
  // lower, try 3-track (if number of pads is sufficient).
  Int_t iflag = 0; // for the first call of fcn1
  for (Int_t iseed = 0; iseed < nfit; ++iseed) 
  {
      
    Int_t memory[8] = {0};
    if (iseed) 
    { 
      for (Int_t j = 0; j < fNpar; ++j) 
      {
	param[j] = parOk[j]; 
      }
      param[fNpar] = 0.6;
      parmin[fNpar] = 1E-9; 
      parmax[fNpar++] = 1; 
    }
      
    if (nfit == 1) 
    {
      param[fNpar] = xyCand[0][0]; // take COG
    }
    else 
    {
      param[fNpar] = xyseed[maxSeed[iseed]][0];
      //param[fNpar] = fNpar==0 ? -16.1651 : -15.2761; 
    }
    parmin[fNpar] = xmin; 
    parmax[fNpar++] = xmax; 
    if (nfit == 1) 
    {
      param[fNpar] = xyCand[0][1]; // take COG
    }
    else 
    {
      param[fNpar] = xyseed[maxSeed[iseed]][1];
      //param[fNpar] = fNpar==1 ? -15.1737 : -15.8487;
    }
    parmin[fNpar] = ymin; 
    parmax[fNpar++] = ymax; 

    for (Int_t j = 0; j < fNpar; ++j) 
    {
      step0[j] = shift[j] = step[j%3];
    }

    if (iseed) 
    { 
      for (Int_t j = 0; j < fNpar; ++j) 
      {
	param0[1][j] = 0; 
      }
    }
    if (fDebug) {
      for (Int_t j = 0; j < fNpar; ++j) cout << param[j] << " "; 
      cout << endl;
    }
      
    // Try new algorithm
    min = nLoop = 1; stepMax = func2[1] = derMax = 999999; nFail = 0;
      
    while (1) 
    {
      max = !min;
      Fcn1(cluster,fNpar, gin, func0, param, iflag); nCall++;
      iflag = 1;
      //cout << " Func: " << func0 << endl;
      
      func2[max] = func0;
      for (Int_t j = 0; j < fNpar; ++j) 
      {
	param0[max][j] = param[j];
	delta[j] = step0[j];
	param[j] += delta[j] / 10;
	if (j > 0) param[j-1] -= delta[j-1] / 10;
	Fcn1(cluster,fNpar, gin, func1, param, iflag); nCall++;
	deriv[max][j] = (func1 - func0) / delta[j] * 10; // first derivative
	//cout << j << " " << deriv[max][j] << endl;
	dder[j] = param0[0][j] != param0[1][j] ? (deriv[0][j] - deriv[1][j]) / 
	  (param0[0][j] - param0[1][j]) : 0; // second derivative
      }
      param[fNpar-1] -= delta[fNpar-1] / 10;
      if (nCall > 2000) break;
        
      min = func2[0] < func2[1] ? 0 : 1;
      nFail = min == max ? 0 : nFail + 1;
        
      stepMax = derMax = estim = 0;
      for (Int_t j = 0; j < fNpar; ++j) 
      { 
	// Estimated distance to minimum
	shift0 = shift[j];
	if (nLoop == 1) 
        {
	  shift[j] = TMath::Sign (step0[j], -deriv[max][j]); // first step
	}
	else if (TMath::Abs(deriv[0][j]) < 1.e-3 && TMath::Abs(deriv[1][j]) < 1.e-3) 
        {
	  shift[j] = 0;
	}
	else if (((deriv[min][j]*deriv[!min][j] > 0) && (TMath::Abs(deriv[min][j]) > TMath::Abs(deriv[!min][j])))
		 || (TMath::Abs(deriv[0][j]-deriv[1][j]) < 1.e-3) || (TMath::Abs(dder[j]) < 1.e-6)) 
        {
	  shift[j] = -TMath::Sign (shift[j], (func2[0]-func2[1]) * (param0[0][j]-param0[1][j]));
	  if (min == max) 
	  { 
	    if (memory[j] > 1) 
	    { 
	      shift[j] *= 2; 
	    } 
	    memory[j]++;
	  }
	}
	else 
        {
	  shift[j] = dder[j] != 0 ? -deriv[min][j] / dder[j] : 0;
	  memory[j] = 0;
	}
          
	Double_t es = TMath::Abs(shift[j]) / step0[j];
	if (es > estim) 
        { 
	  estim = es;
	}
          
	// Too big step
	if (TMath::Abs(shift[j])/step0[j] > 10) shift[j] = TMath::Sign(10.,shift[j]) * step0[j]; // 
	
	// Failed to improve minimum
	if (min != max) 
        {
	  memory[j] = 0;
	  param[j] = param0[min][j];
	  if (TMath::Abs(shift[j]+shift0) > 0.1*step0[j]) 
          {
	    shift[j] = (shift[j] + shift0) / 2;
	  }
	  else 
          {
	    shift[j] /= -2;
	  }
	} 
          
	// Too big step
	if (TMath::Abs(shift[j]*deriv[min][j]) > func2[min]) 
        {
	  shift[j] = TMath::Sign (func2[min]/deriv[min][j], shift[j]);
	}
          
	// Introduce step relaxation factor
	if (memory[j] < 3) 
        {
	  scMax = 1 + 4 / TMath::Max(nLoop/2.,1.);
	  if (TMath::Abs(shift0) > 0 && TMath::Abs(shift[j]/shift0) > scMax) 
          {
	    shift[j] = TMath::Sign (shift0*scMax, shift[j]);
	  }
	}
	param[j] += shift[j]; 
	// Check parameter limits
	if (param[j] < parmin[j]) 
        { 
	  shift[j] = parmin[j] - param[j]; 
	  param[j] = parmin[j]; 
	} 
	else if (param[j] > parmax[j]) 
        {
	  shift[j] = parmax[j] - param[j];
	  param[j] = parmax[j];
	}
	//cout << " xxx " << j << " " << shift[j] << " " << param[j] << endl;
	stepMax = TMath::Max (stepMax, TMath::Abs(shift[j]/step0[j]));
	if (TMath::Abs(deriv[min][j]) > derMax) 
        {
	  idMax = j;
	  derMax = TMath::Abs (deriv[min][j]);
	}
      } // for (Int_t j=0; j<fNpar;
        
      if (((estim < 1) && (derMax < 2)) || nLoop > 150) break; // minimum was found
        
      nLoop++;
        
      // Check for small step
      if (shift[idMax] == 0) 
      { 
	shift[idMax] = step0[idMax]/10; 
	param[idMax] += shift[idMax]; 
	continue; 
      }
        
      if (!memory[idMax] && derMax > 0.5 && nLoop > 10) 
      {
	if (dder[idMax] != 0 && TMath::Abs(deriv[min][idMax]/dder[idMax]/shift[idMax]) > 10) 
        {
	  if (min == max) dder[idMax] = -dder[idMax];
	  shift[idMax] = -deriv[min][idMax] / dder[idMax] / 10; 
	  param[idMax] += shift[idMax];
	  stepMax = TMath::Max (stepMax, TMath::Abs(shift[idMax])/step0[idMax]);
	  if (min == max) shiftSave = shift[idMax];
	}
	if (nFail > 10) 
        {
	  param[idMax] -= shift[idMax];
	  shift[idMax] = 4 * shiftSave * (gRandom->Rndm(0) - 0.5);
	  param[idMax] += shift[idMax];
	}
      }      
    } // while (1)
      
    fmin = func2[min];
    
    nDof = npads - fNpar + nVirtual;
    if (!nDof) nDof++;
    chi2n = fmin / nDof;
    if (fDebug) cout << " Chi2 " << chi2n << " " << fNpar << endl;
      
    //if (fNpar > 2) cout << param0[min][fNpar-3] << " " << chi2n * (1+TMath::Min(1-param0[min][fNpar-3],0.25)) << endl;
    //if (chi2n*1.2+1.e-6 > chi2o ) 
    if (fNpar > 2 && (chi2n > chi2o || ((iseed == nfit-1) 
					&& (chi2n * (1+TMath::Min(1-param0[min][fNpar-3],0.25)) > chi2o)))) 
      { fNpar -= 3; break; }
      
    // Save parameters and errors
      
    if (nInX == 1) {
      // One pad per direction 
      //for (Int_t i=0; i<fNpar; ++i) if (i == 0 || i == 2 || i == 5) param0[min][i] = xPad;
      for (Int_t i=0; i<fNpar; ++i) if (i == 0 || i == 2 || i == 5) 
	param0[min][i] = xyCand[0][0];
    }
    if (nInY == 1) {
      // One pad per direction 
      //for (Int_t i=0; i<fNpar; ++i) if (i == 1 || i == 3 || i == 6) param0[min][i] = yPad;
      for (Int_t i=0; i<fNpar; ++i) if (i == 1 || i == 3 || i == 6) 
	param0[min][i] = xyCand[0][1];
    }
      
    /*
      if (iseed > 0) {
      // Find distance to the nearest neighbour
      dist[0] = dist[1] = TMath::Sqrt ((param0[min][0]-param0[min][2])*
      (param0[min][0]-param0[min][2])
      +(param0[min][1]-param0[min][3])*
      (param0[min][1]-param0[min][3]));
      if (iseed > 1) {
      dist[2] = TMath::Sqrt ((param0[min][0]-param0[min][5])*
      (param0[min][0]-param0[min][5])
      +(param0[min][1]-param0[min][6])*
      (param0[min][1]-param0[min][6]));
      rad = TMath::Sqrt ((param0[min][2]-param0[min][5])*
      (param0[min][2]-param0[min][5])
      +(param0[min][3]-param0[min][6])*
      (param0[min][3]-param0[min][6]));
      if (dist[2] < dist[0]) dist[0] = dist[2];
      if (rad < dist[1]) dist[1] = rad;
      if (rad < dist[2]) dist[2] = rad;
      }
      cout << dist[0] << " " << dist[1] << " " << dist[2] << endl;
      if (dist[TMath::LocMin(iseed+1,dist)] < 1.) { fNpar -= 3; break; }
      }
    */
      
    for (Int_t i = 0; i < fNpar; ++i) {
      parOk[i] = param0[min][i];
      //errOk[i] = fmin;
      errOk[i] = chi2n;
      // Bounded params
      parOk[i] = TMath::Max (parOk[i], parmin[i]);
      parOk[i] = TMath::Min (parOk[i], parmax[i]);
    }
      
    chi2o = chi2n;
    if (fmin < 0.1) break; // !!!???
  } // for (Int_t iseed=0; 
   
  if (fDebug) {
    for (Int_t i=0; i<fNpar; ++i) {
      if (i == 4 || i == 7) {
	if ((i == 7) || ((i == 4) && (fNpar < 7))) cout << parOk[i] << endl;
	else cout << parOk[i] * (1-parOk[7]) << endl;
	continue;
      }
      cout << parOk[i] << " " << errOk[i] << endl;
    }
  }
  nfit = (fNpar + 1) / 3;
  dist[0] = dist[1] = dist[2] = 0;
  
  if (nfit > 1) {
    // Find distance to the nearest neighbour
    dist[0] = dist[1] = TMath::Sqrt ((parOk[0]-parOk[2])*
				     (parOk[0]-parOk[2])
				     +(parOk[1]-parOk[3])*
				     (parOk[1]-parOk[3]));
    if (nfit > 2) {
      dist[2] = TMath::Sqrt ((parOk[0]-parOk[5])*
			     (parOk[0]-parOk[5])
			     +(parOk[1]-parOk[6])*
			     (parOk[1]-parOk[6]));
      rad = TMath::Sqrt ((parOk[2]-parOk[5])*
			 (parOk[2]-parOk[5])
			 +(parOk[3]-parOk[6])*
			 (parOk[3]-parOk[6]));
      if (dist[2] < dist[0]) dist[0] = dist[2];
      if (rad < dist[1]) dist[1] = rad;
      if (rad < dist[2]) dist[2] = rad;
    }
  }
    
  Int_t indx;
  
  Double_t coef = 0;
  if (iSimple) fnCoupled = 0;
  for (Int_t j = 0; j < nfit; ++j) {
    indx = 3 * j;
    coef = Param2Coef(j, coef, parOk);
      
    //void AliMUONClusterFinderMLEM::AddRawCluster(Double_t x, Double_t y, 
    //                                             Double_t qTot, Double_t fmin,
    //                                             Int_t nfit, Int_t *tracks, 
    //                                             Double_t /*sigx*/, 
    //                                             Double_t /*sigy*/, 
    //                                             Double_t /*dist*/)
    
    if ( coef*fQtot >= fLowestClusterCharge ) 
    {
      //AZ AliMUONCluster* cluster1 = new AliMUONCluster();
      AliMUONCluster* cluster1 = new AliMUONCluster(cluster);
      
      cluster1->SetCharge(coef*fQtot,coef*fQtot);
      cluster1->SetPosition(TVector2(parOk[indx],parOk[indx+1]),TVector2(sigCand[0][0],sigCand[0][1]));
      //cluster1->SetChi2(dist[TMath::LocMin(nfit,dist)]);
      Int_t idx = TMath::LocMin(nfit,dist);
      if ( idx < 0 || idx > 2 ) {
        AliErrorStream() << "Wrong index value: " << idx << endl;
        return nfit;
      }  
      cluster1->SetChi2(dist[idx]);
      
      // FIXME: we miss some information in this cluster, as compared to 
      // the original AddRawCluster code.
      
      AliDebug(2,Form("Adding RawCluster detElemId %4d mult %2d charge %5d (xl,yl)=(%9.6g,%9.6g)",
		      fDetElemId,cluster1->Multiplicity(),(Int_t)cluster1->Charge(),
		      cluster1->Position().X(),cluster1->Position().Y()));
        
      clusterList.Add(cluster1);
    }
    //      AddRawCluster (parOk[indx], // double x
    //                     parOk[indx+1], // double y
    //                     coef*qTot, // double charge
    //                     errOk[indx], // double fmin
    //                     nfit0+10*nfit+100*nMax+10000*fnCoupled, // int nfit
    //                     tracks, // int* tracks
    //                     sigCand[0][0], // double sigx
    //                     sigCand[0][1], // double sigy
    //                     dist[TMath::LocMin(nfit,dist)] // double dist
    //                     );
  }
  return nfit;
}  


//_____________________________________________________________________________
void
AliMUONClusterSplitterMLEM::Split(const AliMUONCluster& cluster,
                                  TH2 *mlem, Double_t *coef,
                                  TObjArray& clusterList)
{
  /// The main steering function to work with clusters of pixels in anode
  /// plane (find clusters, decouple them from each other, merge them (if
  /// necessary), pick up coupled pads, call the fitting function)
  
  Int_t nx = mlem->GetNbinsX();
  Int_t ny = mlem->GetNbinsY();
  Int_t nPix = fPixArray->GetEntriesFast();
  
  Double_t cont;
  Int_t nclust = 0, indx, indx1, nxy = ny * nx; 
  Bool_t *used = new Bool_t[nxy];
  
  for (Int_t j = 0; j < nxy; ++j) used[j] = kFALSE; 
  
  TObjArray *clusters[200]={0};
  TObjArray *pix;
  
  // Find clusters of histogram bins (easier to work in 2-D space)
  for (Int_t i = 1; i <= ny; ++i) 
  {
    for (Int_t j = 1; j <= nx; ++j) 
    {
      indx = (i-1)*nx + j - 1;
      if (used[indx]) continue;
      cont = mlem->GetBinContent(mlem->GetBin(j,i));
      if (cont < fLowestPixelCharge) continue;
      pix = new TObjArray(20);
      used[indx] = 1;
      pix->Add(BinToPix(mlem,j,i));
      AddBin(mlem, i, j, 0, used, pix); // recursive call
      if (nclust >= 200) AliFatal(" Too many clusters !!!");
      clusters[nclust++] = pix;
    } // for (Int_t j=1; j<=nx; j++) {
  } // for (Int_t i=1; i<=ny;
  if (fDebug) cout << nclust << endl;
  delete [] used;
  
  // Compute couplings between clusters and clusters to pads
  Int_t npad = cluster.Multiplicity();
  
  // Exclude pads with overflows
  /*
  for (Int_t j = 0; j < npad; ++j) 
  {
    AliMUONPad* pad = cluster.Pad(j);
    if ( pad->IsSaturated() )
    {
      pad->SetStatus(-5); 
    }
    else 
    {
      pad->SetStatus(0);
    }
  }
  */
  
  // Compute couplings of clusters to pads (including overflows)
  TMatrixD aijclupad(nclust,npad);
  aijclupad = 0;
  Int_t npxclu;
  for (Int_t iclust = 0; iclust < nclust; ++iclust) 
  {
    pix = clusters[iclust];
    npxclu = pix->GetEntriesFast();
    for (Int_t i = 0; i < npxclu; ++i) 
    {
      indx = fPixArray->IndexOf(pix->UncheckedAt(i));
      for (Int_t j = 0; j < npad; ++j) 
      {
        //AliMUONPad* pad = cluster.Pad(j);
        //if ( pad->Status() < 0 && pad->Status() != -5) continue;
        if (coef[j*nPix+indx] < fgkCouplMin) continue;
        aijclupad(iclust,j) += coef[j*nPix+indx];
      }
    }
  }
  
  // Compute couplings between clusters (exclude overflows)
  TMatrixD aijcluclu(nclust,nclust);
  aijcluclu = 0;
  for (Int_t iclust = 0; iclust < nclust; ++iclust) 
  {
    for (Int_t j = 0; j < npad; ++j) 
    {
      // Exclude overflows
      //if ( cluster.Pad(j)->Status() < 0) continue;
      if ( cluster.Pad(j)->IsSaturated()) continue;
      if (aijclupad(iclust,j) < fgkCouplMin) continue;
      for (Int_t iclust1=iclust+1; iclust1<nclust; iclust1++) 
      {
        if (aijclupad(iclust1,j) < fgkCouplMin) continue;
        aijcluclu(iclust,iclust1) += 
          TMath::Sqrt (aijclupad(iclust,j)*aijclupad(iclust1,j));
      }
    }
  }
  for (Int_t iclust = 0; iclust < nclust; ++iclust) 
  {
    for (Int_t iclust1 = iclust+1; iclust1 < nclust; ++iclust1) 
    {
      aijcluclu(iclust1,iclust) = aijcluclu(iclust,iclust1);
    }
  }
  
  if (fDebug && nclust > 1) aijcluclu.Print();

  // Find groups of coupled clusters
  used = new Bool_t[nclust];
  for (Int_t j = 0; j < nclust; ++j) used[j] = kFALSE;

  Int_t *clustNumb = new Int_t[nclust];
  Int_t nCoupled, nForFit, minGroup[3], clustFit[3], nfit = 0;
  //Double_t parOk[8];
  Double_t parOk[8] = {0}; //AZ
  
  for (Int_t igroup = 0; igroup < nclust; ++igroup) 
  {
    if (used[igroup]) continue;
    used[igroup] = kTRUE;
    clustNumb[0] = igroup;
    nCoupled = 1;
    // Find group of coupled clusters
    AddCluster(igroup, nclust, aijcluclu, used, clustNumb, nCoupled); // recursive
    
    if (fDebug) {                                                                      
      cout << " nCoupled: " << nCoupled << endl;
      for (Int_t i=0; i<nCoupled; ++i) cout << clustNumb[i] << " "; cout << endl;
    }
    
    fnCoupled = nCoupled;
    
    while (nCoupled > 0) 
    {
      if (nCoupled < 4) 
      {
        nForFit = nCoupled;
        for (Int_t i = 0; i < nCoupled; ++i) clustFit[i] = clustNumb[i];
      } 
      else 
      {
        // Too many coupled clusters to fit - try to decouple them
        // Find the lowest coupling of 1, 2, min(3,nLinks/2) pixels with 
        // all the others in the group 
        for (Int_t j = 0; j < 3; ++j) minGroup[j] = -1;
        Double_t coupl = MinGroupCoupl(nCoupled, clustNumb, aijcluclu, minGroup);
        
        // Flag clusters for fit
        nForFit = 0;
        while (nForFit < 3 && minGroup[nForFit] >= 0)
        {
          if (fDebug) cout << clustNumb[minGroup[nForFit]] << " ";
          clustFit[nForFit] = clustNumb[minGroup[nForFit]];
          clustNumb[minGroup[nForFit]] -= 999;
          nForFit++;
        }
        if (fDebug) cout << " nForFit " << nForFit << " " << coupl << endl;
      } // else
      
      // Select pads for fit. 
      if (SelectPad(cluster,nCoupled, nForFit, clustNumb, clustFit, aijclupad) < 3 && nCoupled > 1) 
      {
        // Deselect pads
        for (Int_t j = 0; j < npad; ++j)
        {
          AliMUONPad* pad = cluster.Pad(j);
          //if ( pad->Status()==1 ) pad->SetStatus(0);
          //if ( pad->Status()==-9) pad->SetStatus(-5);
          if ( pad->Status() == AliMUONClusterFinderMLEM::GetUseForFitFlag() ||
	       pad->Status() == AliMUONClusterFinderMLEM::GetCoupledFlag()) 
	    pad->SetStatus(AliMUONClusterFinderMLEM::GetZeroFlag());
        }
        // Merge the failed cluster candidates (with too few pads to fit) with 
        // the one with the strongest coupling
        Merge(cluster,nForFit, nCoupled, clustNumb, clustFit, clusters, aijcluclu, aijclupad);
      } 
      else 
      {
        // Do the fit
        nfit = Fit(cluster,0, nForFit, clustFit, clusters, parOk, clusterList, mlem);
	if (nfit == 0) { 
	  //cout << " (nfit == 0) " << fNpar << " " << cluster.Multiplicity() << endl; 
	  fNpar = 0; // should be 0 by itself but just in case ...
	}
      }
      
      // Subtract the fitted charges from pads with strong coupling and/or
      // return pads for further use
      UpdatePads(cluster,nfit, parOk);
      
      // Mark used pads
      for (Int_t j = 0; j < npad; ++j) 
      {
        AliMUONPad* pad = cluster.Pad(j);
	//if ( pad->Status()==1 ) pad->SetStatus(-2);
	//if ( pad->Status()==-9) pad->SetStatus(-5);
	if ( pad->Status() == AliMUONClusterFinderMLEM::GetUseForFitFlag() ) 
	  pad->SetStatus(AliMUONClusterFinderMLEM::GetModifiedFlag());
      }
      
      // Sort the clusters (move to the right the used ones)
      Int_t beg = 0, end = nCoupled - 1;
      while (beg < end) 
      {
        if (clustNumb[beg] >= 0) { ++beg; continue; }
        for (Int_t j = end; j > beg; --j) 
        {
          if (clustNumb[j] < 0) continue;
          end = j - 1;
          indx = clustNumb[beg];
          clustNumb[beg] = clustNumb[j];
          clustNumb[j] = indx;
          break;
        }
        ++beg;
      }
      
      nCoupled -= nForFit;
      if (nCoupled > 3) 
      {
        // Remove couplings of used clusters
        for (Int_t iclust = nCoupled; iclust < nCoupled+nForFit; ++iclust) 
        {
          indx = clustNumb[iclust] + 999;
          for (Int_t iclust1 = 0; iclust1 < nCoupled; ++iclust1) 
          {
            indx1 = clustNumb[iclust1];
            aijcluclu(indx,indx1) = aijcluclu(indx1,indx) = 0;
          }
        }
        
        // Update the remaining clusters couplings (subtract couplings from 
        // the used pads) - overflows excluded
        for (Int_t j = 0; j < npad; ++j) 
        {
          AliMUONPad* pad = cluster.Pad(j);
          //if ( pad->Status() != -2) continue;
          if ( pad->Status() != AliMUONClusterFinderMLEM::GetModifiedFlag()) continue;
          for (Int_t iclust=0; iclust<nCoupled; ++iclust) 
          {
            indx = clustNumb[iclust];
            if (aijclupad(indx,j) < fgkCouplMin) continue;
            for (Int_t iclust1 = iclust+1; iclust1 < nCoupled; ++iclust1) 
            {
              indx1 = clustNumb[iclust1];
              if (aijclupad(indx1,j) < fgkCouplMin) continue;
              // Check this
              aijcluclu(indx,indx1) -= 
                TMath::Sqrt (aijclupad(indx,j)*aijclupad(indx1,j));
              aijcluclu(indx1,indx) = aijcluclu(indx,indx1);
            }
          }
          //pad->SetStatus(-8);
          pad->SetStatus(AliMUONClusterFinderMLEM::GetOverFlag());
        } // for (Int_t j=0; j<npad;
      } // if (nCoupled > 3)
    } // while (nCoupled > 0)
  } // for (Int_t igroup=0; igroup<nclust;
  
  for (Int_t iclust = 0; iclust < nclust; ++iclust)
  {
    pix = clusters[iclust]; 
    pix->Clear();
    delete pix; 
  }
  delete [] clustNumb; 
  delete [] used; 

}

//_____________________________________________________________________________
void 
AliMUONClusterSplitterMLEM::Merge(const AliMUONCluster& cluster,
                                     Int_t nForFit, Int_t nCoupled, 
                                     const Int_t *clustNumb, const Int_t *clustFit, 
                                     TObjArray **clusters, 
                                     TMatrixD& aijcluclu, TMatrixD& aijclupad)
{
  /// Merge the group of clusters with the one having the strongest coupling with them
  
  Int_t indx, indx1, npxclu, imax=0;
  TObjArray *pix, *pix1;
  Double_t couplMax;
  
  for (Int_t icl = 0; icl < nForFit; ++icl) 
  {
    indx = clustFit[icl];
    pix = clusters[indx];
    npxclu = pix->GetEntriesFast();
    couplMax = -1;
    for (Int_t icl1 = 0; icl1 < nCoupled; ++icl1) 
    {
      indx1 = clustNumb[icl1];
      if (indx1 < 0) continue;
      if ( aijcluclu(indx,indx1) > couplMax) 
      {
        couplMax = aijcluclu(indx,indx1);
        imax = indx1;
      }
    } // for (Int_t icl1=0;
      // Add to it
    pix1 = clusters[imax];
    // Add pixels
    for (Int_t i = 0; i < npxclu; ++i) 
    { 
      pix1->Add(pix->UncheckedAt(i)); 
      pix->RemoveAt(i); 
    }
    
    //Add cluster-to-cluster couplings
    for (Int_t icl1 = 0; icl1 < nCoupled; ++icl1) 
    {
      indx1 = clustNumb[icl1];
      if (indx1 < 0 || indx1 == imax) continue;
      aijcluclu(indx1,imax) += aijcluclu(indx,indx1);
      aijcluclu(imax,indx1) = aijcluclu(indx1,imax);
    }
    aijcluclu(indx,imax) = aijcluclu(imax,indx) = 0;
    
    //Add cluster-to-pad couplings
    Int_t mult = cluster.Multiplicity();
    for (Int_t j = 0; j < mult; ++j) 
    {
      AliMUONPad* pad = cluster.Pad(j);
      //if ( pad->Status() < 0 && pad->Status() != -5 ) continue;// exclude used pads
      if ( pad->Status() != AliMUONClusterFinderMLEM::GetZeroFlag()) continue;// exclude used pads
        aijclupad(imax,j) += aijclupad(indx,j);
        aijclupad(indx,j) = 0;
    }
  } // for (Int_t icl=0; icl<nForFit;
}


//_____________________________________________________________________________
Double_t 
AliMUONClusterSplitterMLEM::MinGroupCoupl(Int_t nCoupled, const Int_t *clustNumb, 
                                          const TMatrixD& aijcluclu, Int_t *minGroup)
{
  /// Find group of clusters with minimum coupling to all the others
  
  Int_t i123max = TMath::Min(3,nCoupled/2); 
  Int_t indx, indx1, indx2, indx3, nTot = 0;
  Double_t *coupl1 = 0, *coupl2 = 0, *coupl3 = 0;
  
  for (Int_t i123 = 1; i123 <= i123max; ++i123) {
    
    if (i123 == 1) {
      coupl1 = new Double_t [nCoupled];
      for (Int_t i = 0; i < nCoupled; ++i) coupl1[i] = 0;
    }
    else if (i123 == 2) {
      nTot = nCoupled*nCoupled;
      coupl2 = new Double_t [nTot];
      for (Int_t i = 0; i < nTot; ++i) coupl2[i] = 9999;
    } else {
      nTot = nTot*nCoupled;
      coupl3 = new Double_t [nTot];
      for (Int_t i = 0; i < nTot; ++i) coupl3[i] = 9999;
    } // else
    
    for (Int_t i = 0; i < nCoupled; ++i) {
      indx1 = clustNumb[i];
      for (Int_t j = i+1; j < nCoupled; ++j) {
        indx2 = clustNumb[j];
        if (i123 == 1) {
          coupl1[i] += aijcluclu(indx1,indx2);
          coupl1[j] += aijcluclu(indx1,indx2);
        } 
        else if (i123 == 2) {
          indx = i*nCoupled + j;
          coupl2[indx] = coupl1[i] + coupl1[j];
          coupl2[indx] -= 2 * (aijcluclu(indx1,indx2));
        } else {
          for (Int_t k = j+1; k < nCoupled; ++k) {
            indx3 = clustNumb[k];
            indx = i*nCoupled*nCoupled + j*nCoupled + k;
            coupl3[indx] = coupl2[i*nCoupled+j] + coupl1[k];
            coupl3[indx] -= 2 * (aijcluclu(indx1,indx3)+aijcluclu(indx2,indx3));
          }
        } // else
      } // for (Int_t j=i+1;
    } // for (Int_t i=0;
  } // for (Int_t i123=1;
  
  // Find minimum coupling
  Double_t couplMin = 9999;
  Int_t locMin = 0;
  
  for (Int_t i123 = 1; i123 <= i123max; ++i123) {
    if (i123 == 1) {
      locMin = TMath::LocMin(nCoupled, coupl1);
      couplMin = coupl1[locMin];
      minGroup[0] = locMin;
      delete [] coupl1;
    } 
    else if (i123 == 2) {
      locMin = TMath::LocMin(nCoupled*nCoupled, coupl2);
      if (coupl2[locMin] < couplMin) {
        couplMin = coupl2[locMin];
        minGroup[0] = locMin/nCoupled;
        minGroup[1] = locMin%nCoupled;
      }
      delete [] coupl2;
    } else {
      locMin = TMath::LocMin(nTot, coupl3);
      if (coupl3[locMin] < couplMin) {
        couplMin = coupl3[locMin];
        minGroup[0] = locMin/nCoupled/nCoupled;
        minGroup[1] = locMin%(nCoupled*nCoupled)/nCoupled;
        minGroup[2] = locMin%nCoupled;
      }
      delete [] coupl3; 
    } // else
  } // for (Int_t i123=1;
  return couplMin;
}

//_____________________________________________________________________________
Int_t 
AliMUONClusterSplitterMLEM::SelectPad(const AliMUONCluster& cluster,
                                          Int_t nCoupled, Int_t nForFit, 
                                          const Int_t *clustNumb, const Int_t *clustFit, 
                                          const TMatrixD& aijclupad)
{
  /// Select pads for fit. If too many coupled clusters, find pads giving 
  /// the strongest coupling with the rest of clusters and exclude them from the fit.
  
  Int_t npad = cluster.Multiplicity();
  Double_t *padpix = 0;
  
  if (nCoupled > 3) 
  {
    padpix = new Double_t[npad];
    for (Int_t i = 0; i < npad; ++i) padpix[i] = 0.;
  }
  
  Int_t nOK = 0, indx, indx1;
  for (Int_t iclust = 0; iclust < nForFit; ++iclust)
  {
    indx = clustFit[iclust];
    for (Int_t j = 0; j < npad; ++j) 
    {
      if ( aijclupad(indx,j) < fgkCouplMin) continue;
      AliMUONPad* pad = cluster.Pad(j);
      /*
      if ( pad->Status() == -5 ) pad->SetStatus(-9); // flag overflow
      if ( pad->Status() < 0 ) continue; // exclude overflows and used pads
      if ( !pad->Status() ) 
      {
        pad->SetStatus(1);
        ++nOK; // pad to be used in fit
      }      
      */
      if ( pad->Status() != AliMUONClusterFinderMLEM::GetZeroFlag() 
	   || pad->IsSaturated() ) continue; // used pads and overflows
      pad->SetStatus(AliMUONClusterFinderMLEM::GetUseForFitFlag());
      ++nOK; // pad to be used in fit

      if (nCoupled > 3) 
      {
        // Check other clusters
        for (Int_t iclust1 = 0; iclust1 < nCoupled; ++iclust1) 
        {
          indx1 = clustNumb[iclust1];
          if (indx1 < 0) continue;
          if ( aijclupad(indx1,j) < fgkCouplMin ) continue;
          padpix[j] += aijclupad(indx1,j);
        }
      } // if (nCoupled > 3)
    } // for (Int_t j=0; j<npad;
  } // for (Int_t iclust=0; iclust<nForFit
  if (nCoupled < 4) return nOK;
  
  Double_t aaa = 0;
  for (Int_t j = 0; j < npad; ++j) 
  {
    if (padpix[j] < fgkCouplMin) continue;
    aaa += padpix[j];
    //cluster.Pad(j)->SetStatus(-1); // exclude pads with strong coupling to the other clusters
    cluster.Pad(j)->SetStatus(AliMUONClusterFinderMLEM::GetCoupledFlag()); // exclude pads with strong coupling to the other clusters
    nOK--;
  }
  delete [] padpix; 
  return nOK;
}

//_____________________________________________________________________________
void 
AliMUONClusterSplitterMLEM::UpdatePads(const AliMUONCluster& cluster,
                                          Int_t /*nfit*/, Double_t *par)
{
  /// Subtract the fitted charges from pads with strong coupling
  
  Int_t indx, mult = cluster.Multiplicity(), iend = fNpar/3;
  Double_t charge, coef=0;
  
  for (Int_t j = 0; j < mult; ++j) 
  {
    AliMUONPad* pad = cluster.Pad(j);
    //if ( pad->Status() != -1 ) continue;
    if ( pad->Status() != AliMUONClusterFinderMLEM::GetCoupledFlag() ) continue;
    if (fNpar != 0) 
    {
      charge = 0;
      for (Int_t i = 0; i <= iend; ++i) 
      { 
        // sum over hits
	indx = 3 * i;
	coef = Param2Coef(i, coef, par);
        charge += ChargeIntegration(par[indx],par[indx+1],*pad) * coef;
      }
      charge *= fQtot;
      pad->SetCharge(pad->Charge()-charge);
    } // if (fNpar != 0)
    
    //if (pad->Charge() > 6 /*fgkZeroSuppression*/) pad->SetStatus(0); 
    if (pad->Charge() > fLowestPadCharge) pad->SetStatus(AliMUONClusterFinderMLEM::GetZeroFlag());
    // return pad for further using // FIXME: remove usage of zerosuppression here
    else pad->SetStatus(AliMUONClusterFinderMLEM::GetOverFlag()); // do not use anymore
    
  } // for (Int_t j=0;
}  


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