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

//-----------------------------------------------------//
//                                                     //
//           Date   : August 05 2003                   //
//  This reads the file PMD.digits.root(TreeD),        //
//  calls the Clustering algorithm and stores the      //
//  clustering output in PMD.RecPoints.root(TreeR)     // 
//                                                     //
//-----------------------------------------------------//

#include <Riostream.h>
#include <TTree.h>
#include <TObjArray.h>
#include <TClonesArray.h>
#include <TSystem.h>

#include "AliLog.h"
#include "AliRunLoader.h"
#include "AliLoader.h"
#include "AliRawReader.h"

#include "AliPMDdigit.h"
#include "AliPMDClusterFinder.h"
#include "AliPMDClustering.h"
#include "AliPMDClusteringV1.h"
#include "AliPMDcluster.h"
#include "AliPMDrecpoint1.h"
#include "AliPMDrechit.h"
#include "AliPMDRawStream.h"
#include "AliPMDCalibData.h"
#include "AliPMDPedestal.h"
#include "AliPMDddldata.h"
#include "AliPMDHotData.h"
#include "AliPMDNoiseCut.h"
#include "AliPMDddlinfoData.h"
#include "AliPMDRecoParam.h"
#include "AliRecoParam.h"
#include "AliPMDReconstructor.h"

#include "AliDAQ.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"



ClassImp(AliPMDClusterFinder)

AliPMDClusterFinder::AliPMDClusterFinder():
  fRunLoader(0),
  fPMDLoader(0),
  fCalibGain(GetCalibGain()),
  fCalibPed(GetCalibPed()),
  fCalibHot(GetCalibHot()),
  fNoiseCut(GetNoiseCut()),
  fDdlinfo(GetDdlinfoData()),
  fRecoParam(0x0),
  fTreeD(0),
  fTreeR(0),
  fDigits(new TClonesArray("AliPMDdigit", 1000)),
  fRecpoints(new TClonesArray("AliPMDrecpoint1", 1000)),
  fRechits(new TClonesArray("AliPMDrechit", 1000)),
  fNpoint(0),
  fNhit(0),
  fDetNo(0)
{
//
// Constructor
//
}
// ------------------------------------------------------------------------- //
AliPMDClusterFinder::AliPMDClusterFinder(AliRunLoader* runLoader):
  fRunLoader(runLoader),
  fPMDLoader(runLoader->GetLoader("PMDLoader")),
  fCalibGain(GetCalibGain()),
  fCalibPed(GetCalibPed()),
  fCalibHot(GetCalibHot()),
  fNoiseCut(GetNoiseCut()),
  fDdlinfo(GetDdlinfoData()),
  fRecoParam(0x0),
  fTreeD(0),
  fTreeR(0),
  fDigits(new TClonesArray("AliPMDdigit", 1000)),
  fRecpoints(new TClonesArray("AliPMDrecpoint1", 1000)),
  fRechits(new TClonesArray("AliPMDrechit", 1000)),
  fNpoint(0),
  fNhit(0),
  fDetNo(0)
{
//
// Constructor
//
}
// ------------------------------------------------------------------------- //
AliPMDClusterFinder::AliPMDClusterFinder(const AliPMDClusterFinder & finder):
  TObject(finder),
  fRunLoader(0),
  fPMDLoader(0),
  fCalibGain(GetCalibGain()),
  fCalibPed(GetCalibPed()),
  fCalibHot(GetCalibHot()),
  fNoiseCut(GetNoiseCut()),
  fDdlinfo(GetDdlinfoData()),
  fRecoParam(0x0),
  fTreeD(0),
  fTreeR(0),
  fDigits(NULL),
  fRecpoints(NULL),
  fRechits(NULL),
  fNpoint(0),
  fNhit(0),
  fDetNo(0)
{
  // copy constructor
  AliError("Copy constructor not allowed");
}
// ------------------------------------------------------------------------- //
AliPMDClusterFinder &AliPMDClusterFinder::operator=(const AliPMDClusterFinder & /*finder*/)
{
 // assignment op
  AliError("Assignment Operator not allowed");
  return *this;
}
// ------------------------------------------------------------------------- //
AliPMDClusterFinder::~AliPMDClusterFinder()
{
  // Destructor
  if (fDigits)
    {
      fDigits->Clear();
    }
  if (fRecpoints)
    {
      fRecpoints->Clear();
    }
  if (fRechits)
    {
      fRechits->Clear();
    }

}
// ------------------------------------------------------------------------- //

void AliPMDClusterFinder::Digits2RecPoints(TTree *digitsTree,
					   TTree *clustersTree, Int_t gRecoMode)
{
  // Converts digits to recpoints after running clustering
  // algorithm on CPV plane and PREshower plane
  //
  // This algorithm is called during the reconstruction from digits

  Int_t    det  = 0, smn = 0;
  Int_t    xpos = 0, ypos = 0;
  Int_t    ismn = 0;
  Int_t    idet = 0;
  Float_t  adc  = 0.;
  Float_t  clusdata[6] = {0.,0.,0.,0.,0.,0.};

  AliPMDcluster *pmdcl = 0x0;

  TObjArray *pmdcont = new TObjArray();

  AliPMDClustering *pmdclust = new AliPMDClusteringV1();

  // Fetch the reco param object

  fRecoParam = AliPMDReconstructor::GetRecoParam();
  if(fRecoParam == 0x0)
    {
       AliFatal("No Reco Param found for PMD!!!");
    }


  AliPMDdigit  *pmddigit;
  TBranch *branch = digitsTree->GetBranch("PMDDigit");
  branch->SetAddress(&fDigits);

  ResetRecpoint();

  Int_t bufsize = 16000;
  TBranch * branch1 = clustersTree->Branch("PMDRecpoint", &fRecpoints, bufsize); 
  TBranch * branch2 = clustersTree->Branch("PMDRechit", &fRechits, bufsize); 

  Int_t nmodules = (Int_t) digitsTree->GetEntries();

  for (Int_t imodule = 0; imodule < nmodules; imodule++)
    {

      Int_t totADCMod = 0;
      ResetCellADC();
      digitsTree->GetEntry(imodule); 
      Int_t nentries = fDigits->GetLast();
      for (Int_t ient = 0; ient < nentries+1; ient++)
	{
	  pmddigit = (AliPMDdigit*)fDigits->UncheckedAt(ient);
	  
	  det    = pmddigit->GetDetector();
	  smn    = pmddigit->GetSMNumber();
	  xpos   = pmddigit->GetRow();
	  ypos   = pmddigit->GetColumn();
	  adc    = pmddigit->GetADC();

	  if(det < 0 || det > 1)
	    {
	      AliError(Form("*CPV/PRE NUMBER WRONG %d *",det));
	      continue; 
	    }
	  if(smn == -1 || smn > 23)
	    {
	      AliError(Form("*MODULE NUMBER WRONG %d *",smn));
	      continue; 
	    }

	  if(xpos < 0 || xpos > 47 || ypos < 0 || ypos > 95)
	    {
	      AliError(Form("*Row %d and Column NUMBER %d NOT Valid *",
			    xpos, ypos));
	      continue; 
	    }
	  
	  // Pedestal Subtraction
	  Int_t   pedmeanrms = fCalibPed->GetPedMeanRms(det,smn,xpos,ypos);
	  Int_t   pedrms1    = (Int_t) pedmeanrms%100;
	  Float_t pedrms     = (Float_t)pedrms1/10.;
	  Float_t pedmean    = (Float_t) (pedmeanrms - pedrms1)/1000.0;
	  //printf("%f %f\n",pedmean, pedrms);

	  Float_t adc1 = adc - (pedmean + 3.0*pedrms);

	  // Hot cell - set the cell adc = 0
	  Float_t hotflag = fCalibHot->GetHotChannel(det,smn,xpos,ypos);
	  if (hotflag == 1.) adc1 = 0;

	  // CALIBRATION
	  Float_t gain = fCalibGain->GetGainFact(det,smn,xpos,ypos);
	  // printf("adc = %d gain = %f\n",adc,gain);

	  adc = adc1*gain;

	  fCellTrack[xpos][ypos] = pmddigit->GetTrackNumber();
	  fCellPid[xpos][ypos] = pmddigit->GetTrackPid();
	  fCellADC[xpos][ypos] = (Double_t) adc;

	  totADCMod += (Int_t) adc;

	}

      idet = det;
      ismn = smn;

      if (totADCMod <= 0) continue;

      // Set the minimum noise cut per module before clustering

      // Int_t imod = idet*24 + ismn;


      // Int_t cluspar = fRecoParam->GetPbPbParam()->GetClusteringParam();
      AliPMDRecoParam * par = fRecoParam->GetPPParam();
      Int_t cluspar = par->GetClusteringParam();
      delete par;

      // Int_t cluspar = fRecoParam->GetCosmicParam()->GetClusteringParam();
      
      //_______________________________________________________// 
      //Added to switch Refine and crude Clustering - satya//
      // temporary solution - will be sorted out later
      /*cluspar = 1;
      static AliPMDRecoParam *reconp = NULL;
      reconp = (AliPMDRecoParam*)AliPMDReconstructor::GetRecoParam();
      if(!reconp) {
	cluspar = 1;
      } 
      else { 
	
      if( reconp->GetClusteringParam() == 1) 
	cluspar = 1;
      if( reconp->GetClusteringParam() == 2) 
	cluspar = 2;
	}

      */
      cluspar = gRecoMode;
      //_______________________________________________________// 
      
      pmdclust->SetClusteringParam(cluspar);

      Float_t encut = 4.;
      pmdclust->SetEdepCut(encut);
      pmdclust->DoClust(idet,ismn,fCellTrack,fCellPid,fCellADC,pmdcont);
      
      Int_t nentries1 = pmdcont->GetEntries();

      AliDebug(1,Form("Total number of clusters/module = %d",nentries1));

      for (Int_t ient1 = 0; ient1 < nentries1; ient1++)
	{
	  pmdcl = (AliPMDcluster*)pmdcont->UncheckedAt(ient1);
	  idet        = pmdcl->GetDetector();
	  ismn        = pmdcl->GetSMN();
	  clusdata[0] = pmdcl->GetClusX();
	  clusdata[1] = pmdcl->GetClusY();
	  clusdata[2] = pmdcl->GetClusADC();
	  clusdata[3] = pmdcl->GetClusCells();
	  clusdata[4] = pmdcl->GetClusSigmaX();
	  clusdata[5] = pmdcl->GetClusSigmaY();

	  AddRecPoint(idet,ismn,clusdata);

	  Int_t ncell = (Int_t) clusdata[3];
	  if (ncell > 19) ncell = 19;
	  for(Int_t ihit = 0; ihit < ncell; ihit++)
	    {
	      Int_t celldataX = pmdcl->GetClusCellX(ihit);
	      Int_t celldataY = pmdcl->GetClusCellY(ihit);
	      Int_t celldataTr = pmdcl->GetClusCellTrack(ihit);
	      Int_t celldataPid   = pmdcl->GetClusCellPid(ihit);
	      Float_t celldataAdc = pmdcl->GetClusCellAdc(ihit);
	      AddRecHit(celldataX, celldataY, celldataTr, celldataPid, celldataAdc);
	    }
	  branch2->Fill();
	  ResetRechit();
	}
      pmdcont->Delete();

      branch1->Fill();
      ResetRecpoint();

    } // modules


  ResetCellADC();

  //   delete the pointers
  delete pmdclust;
  delete pmdcont;
}
// ------------------------------------------------------------------------- //

void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader,
					   TTree *clustersTree, Int_t gRecoMode)
{
  // Converts RAW data to recpoints after running clustering
  // algorithm on CPV and PREshower plane
  //
  // This method is called at the time of reconstruction from RAW data


  AliPMDddldata *pmdddl = 0x0;
  AliPMDcluster *pmdcl  = 0x0;

  Float_t  clusdata[6];
  TObjArray pmdddlcont;

  TObjArray *pmdcont = new TObjArray();

  AliPMDClustering *pmdclust = new AliPMDClusteringV1();

  // access the ddlinfo database to fetch  the no of modules per DDL

  Int_t moduleddl[6] = {0,0,0,0,0,0};

  for(Int_t jddl = 0; jddl < 6; jddl++)
    {
      moduleddl[jddl] = fDdlinfo->GetNoOfModulePerDdl(jddl);
    }

  // Set the minimum noise cut per module before clustering

  fRecoParam = AliPMDReconstructor::GetRecoParam();

  if(fRecoParam == 0x0)
    {
       AliFatal("No Reco Param found for PMD!!!");
    }

  ResetRecpoint();

  Int_t bufsize = 16000;
  TBranch *branch1 = clustersTree->Branch("PMDRecpoint", &fRecpoints, bufsize); 

  TBranch * branch2 = clustersTree->Branch("PMDRechit", &fRechits, bufsize); 

  const Int_t kRow = 48;
  const Int_t kCol = 96;

  Int_t idet = 0;
  Int_t iSMN = 0;

  Int_t indexDDL = -1;
  AliPMDRawStream pmdinput(rawReader);

  while ((indexDDL = pmdinput.DdlData(&pmdddlcont)) >=0)
    {
      iSMN = moduleddl[indexDDL];

      Int_t ***precpvADC;
      precpvADC = new int **[iSMN];
      for (Int_t i=0; i<iSMN; i++) precpvADC[i] = new int *[kRow];
      for (Int_t i=0; i<iSMN;i++)
	{
	  for (Int_t j=0; j<kRow; j++) precpvADC[i][j] = new int [kCol];
	}
      for (Int_t i = 0; i < iSMN; i++)
	{
	  for (Int_t j = 0; j < kRow; j++)
	    {
	      for (Int_t k = 0; k < kCol; k++)
		{
		  precpvADC[i][j][k] = 0;
		}
	    }
	}
      ResetCellADC();

      Int_t indexsmn = 0;
      Int_t ientries = pmdddlcont.GetEntries();
      for (Int_t ient = 0; ient < ientries; ient++)
	{
	  pmdddl = (AliPMDddldata*)pmdddlcont.UncheckedAt(ient);
	  
	  Int_t det = pmdddl->GetDetector();
	  Int_t smn = pmdddl->GetSMN();
	  //Int_t mcm = pmdddl->GetMCM();
	  //Int_t chno = pmdddl->GetChannel();
	  Int_t row = pmdddl->GetRow();
	  Int_t col = pmdddl->GetColumn();
	  Int_t sig = pmdddl->GetSignal();


	  if(det < 0 || det > 1)
	    {
	      AliError(Form("*CPV/PRE NUMBER WRONG %d *",det));
	      continue; 
	    }
	  if(smn < 0 || smn > 23)
	    {
	      AliError(Form("*MODULE NUMBER WRONG %d *",smn));
	      continue; 
	    }
	  if(row < 0 || row > 47 || col < 0 || col > 95)
	    {
	      AliError(Form("*Row %d and Column NUMBER %d NOT Valid *",
			    row, col));

	      continue; 
	    }

	  // Pedestal Subtraction
	  Int_t   pedmeanrms = fCalibPed->GetPedMeanRms(det,smn,row,col);
	  Int_t   pedrms1    = (Int_t) pedmeanrms%100;
	  Float_t pedrms     = (Float_t)pedrms1/10.;
	  Float_t pedmean    = (Float_t) (pedmeanrms - pedrms1)/1000.0;

	  //printf("%f %f\n",pedmean, pedrms);

	  // Float_t sig1 = (Float_t) sig;
	  Float_t sig1 = (Float_t) sig - (pedmean + 3.0*pedrms);

	  // Hot cell - set the cell adc = 0
	  Float_t hotflag = fCalibHot->GetHotChannel(det,smn,row,col);
	  if (hotflag == 1.) sig1 = 0;

	  // CALIBRATION
	  Float_t gain = fCalibGain->GetGainFact(det,smn,row,col);
	  //printf("sig = %d gain = %f\n",sig,gain);
	  sig = (Int_t) (sig1*gain);

	  if (indexDDL == 0)
	    {
	      if (det != 0)
		AliError(Form("*DDL %d and Detector NUMBER %d NOT MATCHING *",
			      indexDDL, det));
	      if (iSMN == 6)
		{
		  indexsmn = smn;
		}
	      else if (iSMN == 12)
		{
		  if (smn < 6)
		    indexsmn = smn;
		  else if (smn >= 18 && smn < 24)
		    indexsmn = smn-12;
		}
	    }
	  else if (indexDDL >= 1 && indexDDL < 4)
	    {
	      if (det != 0)
		AliError(Form("*DDL %d and Detector NUMBER %d NOT MATCHING *",
			      indexDDL, det));
	      indexsmn = smn - indexDDL * 6;
	    }
	  else if (indexDDL == 4)
	    {
	      if (det != 1)
		AliError(Form("*DDL %d and Detector NUMBER %d NOT MATCHING *",
			      indexDDL, det));
	      if (smn < 6)
		{
		  indexsmn = smn;
		}
	      else if (smn >= 18 && smn < 24)
		{
		  indexsmn = smn - 12;
		}
	    }
	  else if (indexDDL == 5)
	    {
	      if (det != 1)
		AliError(Form("*DDL %d and Detector NUMBER %d NOT MATCHING *",
			      indexDDL, det));
	      if (smn >= 6 && smn < 18)
		{
		  indexsmn = smn - 6;
		}
	    }	      

	  precpvADC[indexsmn][row][col] = sig;
	}
      
      pmdddlcont.Delete();

      Int_t totAdcMod = 0;

      Int_t ismn = 0;
      for (indexsmn = 0; indexsmn < iSMN; indexsmn++)
	{
	  ResetCellADC();
	  totAdcMod = 0;
	  for (Int_t irow = 0; irow < kRow; irow++)
	    {
	      for (Int_t icol = 0; icol < kCol; icol++)
		{
		  fCellTrack[irow][icol] = -1;
		  fCellPid[irow][icol]   = -1;

		  fCellADC[irow][icol] = 
		    (Double_t) precpvADC[indexsmn][irow][icol];
		  totAdcMod += precpvADC[indexsmn][irow][icol];
		} // row
	    }     // col
	  
	  if (indexDDL == 0)
	    {
	      if (iSMN == 6)
		{
		  ismn = indexsmn;
		}
	      else if (iSMN == 12)
		{
		  
		  if (indexsmn < 6)
		    ismn = indexsmn;
		  else if (indexsmn >= 6 && indexsmn < 12)
		    ismn = indexsmn + 12;
		}
	      idet = 0;
	    }
	  else if (indexDDL >= 1 && indexDDL < 4)
	    {
	      ismn = indexsmn + indexDDL * 6;
	      idet = 0;
	    }
	  else if (indexDDL == 4)
	    {
	      if (indexsmn < 6)
		{
		  ismn = indexsmn;
		}
	      else if (indexsmn >= 6 && indexsmn < 12)
		{
		  ismn = indexsmn + 12;
		}
	      idet = 1;
	    }
	  else if (indexDDL == 5)
	    {
	      ismn = indexsmn + 6;
	      idet = 1;
	    }

	  if (totAdcMod <= 0) continue;

	  Int_t imod = idet*24 + ismn;

	  // Int_t cluspar = fRecoParam->GetPbPbParam()->GetClusteringParam();
	  AliPMDRecoParam * par = fRecoParam->GetPPParam();
	   Int_t cluspar = par->GetClusteringParam();
	   delete par;
	  // Int_t cluspar = fRecoParam->GetCosmicParam()->GetClusteringParam();

	  //_______________________________________________________// 
	  //Added to switch Refine and crude Clustering - satya//
	  // temporary solution - will be sorted out later
	  /* cluspar = 1;
	  static AliPMDRecoParam *reconp = NULL;
	  reconp = (AliPMDRecoParam*)AliPMDReconstructor::GetRecoParam();
	  if(!reconp) {
	    cluspar = 1;
	  } 
	  else { 
	    if( reconp->GetClusteringParam() == 1) 
	      cluspar = 1;
	    if( reconp->GetClusteringParam() == 2) 
	      cluspar = 2;
	  }*/


	  cluspar = gRecoMode; // permanent solution

	  //_______________________________________________________// 

	  pmdclust->SetClusteringParam(cluspar);
	  Float_t encut = fNoiseCut->GetNoiseCut(imod);

	  pmdclust->SetEdepCut(encut);
	  pmdclust->DoClust(idet,ismn,fCellTrack,fCellPid,fCellADC,pmdcont);

	  Int_t nentries1 = pmdcont->GetEntries();

	  AliDebug(1,Form("Total number of clusters/module = %d",nentries1));

	  for (Int_t ient1 = 0; ient1 < nentries1; ient1++)
	    {
	      pmdcl = (AliPMDcluster*)pmdcont->UncheckedAt(ient1);
	      idet        = pmdcl->GetDetector();
	      ismn        = pmdcl->GetSMN();
	      clusdata[0] = pmdcl->GetClusX();
	      clusdata[1] = pmdcl->GetClusY();
	      clusdata[2] = pmdcl->GetClusADC();
	      clusdata[3] = pmdcl->GetClusCells();
	      clusdata[4] = pmdcl->GetClusSigmaX();
	      clusdata[5] = pmdcl->GetClusSigmaY();

	      AddRecPoint(idet,ismn,clusdata);

	      Int_t ncell = (Int_t) clusdata[3];
	      if (ncell > 19) ncell = 19;
	      for(Int_t ihit = 0; ihit < ncell; ihit++)
		{
		  Int_t celldataX = pmdcl->GetClusCellX(ihit);
		  Int_t celldataY = pmdcl->GetClusCellY(ihit);
		  Int_t celldataTr = pmdcl->GetClusCellTrack(ihit);
		  Int_t celldataPid   = pmdcl->GetClusCellPid(ihit);
		  Float_t celldataAdc = pmdcl->GetClusCellAdc(ihit);
		  AddRecHit(celldataX, celldataY, celldataTr, celldataPid, celldataAdc);
		}
	      branch2->Fill();
	      ResetRechit();

	    }
	  pmdcont->Delete();

	  branch1->Fill();
	  ResetRecpoint();


	} // smn

      for (Int_t i=0; i<iSMN; i++)
	{
	  for (Int_t j=0; j<kRow; j++) delete [] precpvADC[i][j];
	}
      for (Int_t i=0; i<iSMN; i++) delete [] precpvADC[i];
      delete [] precpvADC;

    } // DDL Loop

  
  ResetCellADC();
  
  //   delete the pointers
  delete pmdclust;
  delete pmdcont;
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::AddRecPoint(Int_t idet,Int_t ismn,Float_t *clusdata)
{
  // Add Reconstructed points
  //
  TClonesArray &lrecpoints = *fRecpoints;
  AliPMDrecpoint1 *newrecpoint;
  newrecpoint = new AliPMDrecpoint1(idet, ismn, clusdata);
  new(lrecpoints[fNpoint++]) AliPMDrecpoint1(newrecpoint);
  delete newrecpoint;
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::AddRecHit(Int_t celldataX,Int_t celldataY,
				    Int_t celldataTr, Int_t celldataPid,
				    Float_t celldataAdc)
{
  // Add associated cell hits to the Reconstructed points
  //
  TClonesArray &lrechits = *fRechits;
  AliPMDrechit *newrechit;
  newrechit = new AliPMDrechit(celldataX, celldataY, celldataTr, celldataPid, celldataAdc);
  new(lrechits[fNhit++]) AliPMDrechit(newrechit);
  delete newrechit;
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::ResetCellADC()
{
  // Reset the individual cell ADC value to zero
  //
  for(Int_t irow = 0; irow < fgkRow; irow++)
    {
      for(Int_t icol = 0; icol < fgkCol; icol++)
	{
	  fCellTrack[irow][icol] = -1;
	  fCellPid[irow][icol]   = -1;
	  fCellADC[irow][icol]   = 0.;
	}
    }
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::ResetRecpoint()
{
  // Clear the list of reconstructed points
  fNpoint = 0;
  if (fRecpoints) fRecpoints->Clear();
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::ResetRechit()
{
  // Clear the list of reconstructed points
  fNhit = 0;
  if (fRechits) fRechits->Clear();
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::Load()
{
  // Load all the *.root files
  //
  fPMDLoader->LoadDigits("READ");
  fPMDLoader->LoadRecPoints("recreate");
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::LoadClusters()
{
  // Load all the *.root files
  //
  fPMDLoader->LoadRecPoints("recreate");
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::UnLoad()
{
  // Unload all the *.root files
  //
  fPMDLoader->UnloadDigits();
  fPMDLoader->UnloadRecPoints();
}
// ------------------------------------------------------------------------- //
void AliPMDClusterFinder::UnLoadClusters()
{
  // Unload all the *.root files
  //
  fPMDLoader->UnloadRecPoints();
}
// ------------------------------------------------------------------------- //
AliPMDCalibData* AliPMDClusterFinder::GetCalibGain() const
{
  // The run number will be centralized in AliCDBManager,
  // you don't need to set it here!
  // Added by ZA
  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("PMD/Calib/Gain");
  
  if(!entry)  AliFatal("Calibration object retrieval failed! ");
  
  AliPMDCalibData *calibdata=0;
  if (entry) calibdata = (AliPMDCalibData*) entry->GetObject();
  
  if (!calibdata)  AliFatal("No calibration data from calibration database !");
  
  return calibdata;
}
// ------------------------------------------------------------------------- //
AliPMDPedestal* AliPMDClusterFinder::GetCalibPed() const
{
  // The run number will be centralized in AliCDBManager,
  // you don't need to set it here!
  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("PMD/Calib/Ped");
  
  if(!entry) AliFatal("Pedestal object retrieval failed!");
    
  AliPMDPedestal *pedestal = 0;
  if (entry) pedestal = (AliPMDPedestal*) entry->GetObject();
  
  if (!pedestal)  AliFatal("No pedestal data from pedestal database !");
  
  return pedestal;
}
//--------------------------------------------------------------------//
AliPMDHotData* AliPMDClusterFinder::GetCalibHot() const
{
  // The run number will be centralized in AliCDBManager,
  // you don't need to set it here!
  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("PMD/Calib/Hot");
  
  if(!entry) AliFatal("HotData object retrieval failed!");
  
  AliPMDHotData *hot = 0;
  if (entry) hot = (AliPMDHotData*) entry->GetObject();
  
  if (!hot)  AliFatal("No hot data from  database !");
  
  return hot;
}
//--------------------------------------------------------------------//
AliPMDNoiseCut* AliPMDClusterFinder::GetNoiseCut() const
{
  // The run number will be centralized in AliCDBManager,
  // you don't need to set it here!
  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("PMD/Calib/NoiseCut");
  
  if(!entry) AliFatal("Noisecut object retrieval failed!");
  
  AliPMDNoiseCut *ncut = 0;
  if (entry) ncut = (AliPMDNoiseCut*) entry->GetObject();
  
  if (!ncut)  AliFatal("No noise cut data from  database !");
  
  return ncut;
}
//--------------------------------------------------------------------//
AliPMDddlinfoData* AliPMDClusterFinder::GetDdlinfoData() const
{
  // The run number will be centralized in AliCDBManager,
  // you don't need to set it here!
  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("PMD/Calib/Ddlinfo");
  
  if(!entry) AliFatal("ddlinfo object retrieval failed!");
  
  AliPMDddlinfoData *ddlinfo = 0;
  if (entry) ddlinfo = (AliPMDddlinfoData*) entry->GetObject();
  
  if (!ddlinfo)  AliFatal("No ddl info data from  database !");
  
  return ddlinfo;
}
  
 AliPMDClusterFinder.cxx:1
 AliPMDClusterFinder.cxx:2
 AliPMDClusterFinder.cxx:3
 AliPMDClusterFinder.cxx:4
 AliPMDClusterFinder.cxx:5
 AliPMDClusterFinder.cxx:6
 AliPMDClusterFinder.cxx:7
 AliPMDClusterFinder.cxx:8
 AliPMDClusterFinder.cxx:9
 AliPMDClusterFinder.cxx:10
 AliPMDClusterFinder.cxx:11
 AliPMDClusterFinder.cxx:12
 AliPMDClusterFinder.cxx:13
 AliPMDClusterFinder.cxx:14
 AliPMDClusterFinder.cxx:15
 AliPMDClusterFinder.cxx:16
 AliPMDClusterFinder.cxx:17
 AliPMDClusterFinder.cxx:18
 AliPMDClusterFinder.cxx:19
 AliPMDClusterFinder.cxx:20
 AliPMDClusterFinder.cxx:21
 AliPMDClusterFinder.cxx:22
 AliPMDClusterFinder.cxx:23
 AliPMDClusterFinder.cxx:24
 AliPMDClusterFinder.cxx:25
 AliPMDClusterFinder.cxx:26
 AliPMDClusterFinder.cxx:27
 AliPMDClusterFinder.cxx:28
 AliPMDClusterFinder.cxx:29
 AliPMDClusterFinder.cxx:30
 AliPMDClusterFinder.cxx:31
 AliPMDClusterFinder.cxx:32
 AliPMDClusterFinder.cxx:33
 AliPMDClusterFinder.cxx:34
 AliPMDClusterFinder.cxx:35
 AliPMDClusterFinder.cxx:36
 AliPMDClusterFinder.cxx:37
 AliPMDClusterFinder.cxx:38
 AliPMDClusterFinder.cxx:39
 AliPMDClusterFinder.cxx:40
 AliPMDClusterFinder.cxx:41
 AliPMDClusterFinder.cxx:42
 AliPMDClusterFinder.cxx:43
 AliPMDClusterFinder.cxx:44
 AliPMDClusterFinder.cxx:45
 AliPMDClusterFinder.cxx:46
 AliPMDClusterFinder.cxx:47
 AliPMDClusterFinder.cxx:48
 AliPMDClusterFinder.cxx:49
 AliPMDClusterFinder.cxx:50
 AliPMDClusterFinder.cxx:51
 AliPMDClusterFinder.cxx:52
 AliPMDClusterFinder.cxx:53
 AliPMDClusterFinder.cxx:54
 AliPMDClusterFinder.cxx:55
 AliPMDClusterFinder.cxx:56
 AliPMDClusterFinder.cxx:57
 AliPMDClusterFinder.cxx:58
 AliPMDClusterFinder.cxx:59
 AliPMDClusterFinder.cxx:60
 AliPMDClusterFinder.cxx:61
 AliPMDClusterFinder.cxx:62
 AliPMDClusterFinder.cxx:63
 AliPMDClusterFinder.cxx:64
 AliPMDClusterFinder.cxx:65
 AliPMDClusterFinder.cxx:66
 AliPMDClusterFinder.cxx:67
 AliPMDClusterFinder.cxx:68
 AliPMDClusterFinder.cxx:69
 AliPMDClusterFinder.cxx:70
 AliPMDClusterFinder.cxx:71
 AliPMDClusterFinder.cxx:72
 AliPMDClusterFinder.cxx:73
 AliPMDClusterFinder.cxx:74
 AliPMDClusterFinder.cxx:75
 AliPMDClusterFinder.cxx:76
 AliPMDClusterFinder.cxx:77
 AliPMDClusterFinder.cxx:78
 AliPMDClusterFinder.cxx:79
 AliPMDClusterFinder.cxx:80
 AliPMDClusterFinder.cxx:81
 AliPMDClusterFinder.cxx:82
 AliPMDClusterFinder.cxx:83
 AliPMDClusterFinder.cxx:84
 AliPMDClusterFinder.cxx:85
 AliPMDClusterFinder.cxx:86
 AliPMDClusterFinder.cxx:87
 AliPMDClusterFinder.cxx:88
 AliPMDClusterFinder.cxx:89
 AliPMDClusterFinder.cxx:90
 AliPMDClusterFinder.cxx:91
 AliPMDClusterFinder.cxx:92
 AliPMDClusterFinder.cxx:93
 AliPMDClusterFinder.cxx:94
 AliPMDClusterFinder.cxx:95
 AliPMDClusterFinder.cxx:96
 AliPMDClusterFinder.cxx:97
 AliPMDClusterFinder.cxx:98
 AliPMDClusterFinder.cxx:99
 AliPMDClusterFinder.cxx:100
 AliPMDClusterFinder.cxx:101
 AliPMDClusterFinder.cxx:102
 AliPMDClusterFinder.cxx:103
 AliPMDClusterFinder.cxx:104
 AliPMDClusterFinder.cxx:105
 AliPMDClusterFinder.cxx:106
 AliPMDClusterFinder.cxx:107
 AliPMDClusterFinder.cxx:108
 AliPMDClusterFinder.cxx:109
 AliPMDClusterFinder.cxx:110
 AliPMDClusterFinder.cxx:111
 AliPMDClusterFinder.cxx:112
 AliPMDClusterFinder.cxx:113
 AliPMDClusterFinder.cxx:114
 AliPMDClusterFinder.cxx:115
 AliPMDClusterFinder.cxx:116
 AliPMDClusterFinder.cxx:117
 AliPMDClusterFinder.cxx:118
 AliPMDClusterFinder.cxx:119
 AliPMDClusterFinder.cxx:120
 AliPMDClusterFinder.cxx:121
 AliPMDClusterFinder.cxx:122
 AliPMDClusterFinder.cxx:123
 AliPMDClusterFinder.cxx:124
 AliPMDClusterFinder.cxx:125
 AliPMDClusterFinder.cxx:126
 AliPMDClusterFinder.cxx:127
 AliPMDClusterFinder.cxx:128
 AliPMDClusterFinder.cxx:129
 AliPMDClusterFinder.cxx:130
 AliPMDClusterFinder.cxx:131
 AliPMDClusterFinder.cxx:132
 AliPMDClusterFinder.cxx:133
 AliPMDClusterFinder.cxx:134
 AliPMDClusterFinder.cxx:135
 AliPMDClusterFinder.cxx:136
 AliPMDClusterFinder.cxx:137
 AliPMDClusterFinder.cxx:138
 AliPMDClusterFinder.cxx:139
 AliPMDClusterFinder.cxx:140
 AliPMDClusterFinder.cxx:141
 AliPMDClusterFinder.cxx:142
 AliPMDClusterFinder.cxx:143
 AliPMDClusterFinder.cxx:144
 AliPMDClusterFinder.cxx:145
 AliPMDClusterFinder.cxx:146
 AliPMDClusterFinder.cxx:147
 AliPMDClusterFinder.cxx:148
 AliPMDClusterFinder.cxx:149
 AliPMDClusterFinder.cxx:150
 AliPMDClusterFinder.cxx:151
 AliPMDClusterFinder.cxx:152
 AliPMDClusterFinder.cxx:153
 AliPMDClusterFinder.cxx:154
 AliPMDClusterFinder.cxx:155
 AliPMDClusterFinder.cxx:156
 AliPMDClusterFinder.cxx:157
 AliPMDClusterFinder.cxx:158
 AliPMDClusterFinder.cxx:159
 AliPMDClusterFinder.cxx:160
 AliPMDClusterFinder.cxx:161
 AliPMDClusterFinder.cxx:162
 AliPMDClusterFinder.cxx:163
 AliPMDClusterFinder.cxx:164
 AliPMDClusterFinder.cxx:165
 AliPMDClusterFinder.cxx:166
 AliPMDClusterFinder.cxx:167
 AliPMDClusterFinder.cxx:168
 AliPMDClusterFinder.cxx:169
 AliPMDClusterFinder.cxx:170
 AliPMDClusterFinder.cxx:171
 AliPMDClusterFinder.cxx:172
 AliPMDClusterFinder.cxx:173
 AliPMDClusterFinder.cxx:174
 AliPMDClusterFinder.cxx:175
 AliPMDClusterFinder.cxx:176
 AliPMDClusterFinder.cxx:177
 AliPMDClusterFinder.cxx:178
 AliPMDClusterFinder.cxx:179
 AliPMDClusterFinder.cxx:180
 AliPMDClusterFinder.cxx:181
 AliPMDClusterFinder.cxx:182
 AliPMDClusterFinder.cxx:183
 AliPMDClusterFinder.cxx:184
 AliPMDClusterFinder.cxx:185
 AliPMDClusterFinder.cxx:186
 AliPMDClusterFinder.cxx:187
 AliPMDClusterFinder.cxx:188
 AliPMDClusterFinder.cxx:189
 AliPMDClusterFinder.cxx:190
 AliPMDClusterFinder.cxx:191
 AliPMDClusterFinder.cxx:192
 AliPMDClusterFinder.cxx:193
 AliPMDClusterFinder.cxx:194
 AliPMDClusterFinder.cxx:195
 AliPMDClusterFinder.cxx:196
 AliPMDClusterFinder.cxx:197
 AliPMDClusterFinder.cxx:198
 AliPMDClusterFinder.cxx:199
 AliPMDClusterFinder.cxx:200
 AliPMDClusterFinder.cxx:201
 AliPMDClusterFinder.cxx:202
 AliPMDClusterFinder.cxx:203
 AliPMDClusterFinder.cxx:204
 AliPMDClusterFinder.cxx:205
 AliPMDClusterFinder.cxx:206
 AliPMDClusterFinder.cxx:207
 AliPMDClusterFinder.cxx:208
 AliPMDClusterFinder.cxx:209
 AliPMDClusterFinder.cxx:210
 AliPMDClusterFinder.cxx:211
 AliPMDClusterFinder.cxx:212
 AliPMDClusterFinder.cxx:213
 AliPMDClusterFinder.cxx:214
 AliPMDClusterFinder.cxx:215
 AliPMDClusterFinder.cxx:216
 AliPMDClusterFinder.cxx:217
 AliPMDClusterFinder.cxx:218
 AliPMDClusterFinder.cxx:219
 AliPMDClusterFinder.cxx:220
 AliPMDClusterFinder.cxx:221
 AliPMDClusterFinder.cxx:222
 AliPMDClusterFinder.cxx:223
 AliPMDClusterFinder.cxx:224
 AliPMDClusterFinder.cxx:225
 AliPMDClusterFinder.cxx:226
 AliPMDClusterFinder.cxx:227
 AliPMDClusterFinder.cxx:228
 AliPMDClusterFinder.cxx:229
 AliPMDClusterFinder.cxx:230
 AliPMDClusterFinder.cxx:231
 AliPMDClusterFinder.cxx:232
 AliPMDClusterFinder.cxx:233
 AliPMDClusterFinder.cxx:234
 AliPMDClusterFinder.cxx:235
 AliPMDClusterFinder.cxx:236
 AliPMDClusterFinder.cxx:237
 AliPMDClusterFinder.cxx:238
 AliPMDClusterFinder.cxx:239
 AliPMDClusterFinder.cxx:240
 AliPMDClusterFinder.cxx:241
 AliPMDClusterFinder.cxx:242
 AliPMDClusterFinder.cxx:243
 AliPMDClusterFinder.cxx:244
 AliPMDClusterFinder.cxx:245
 AliPMDClusterFinder.cxx:246
 AliPMDClusterFinder.cxx:247
 AliPMDClusterFinder.cxx:248
 AliPMDClusterFinder.cxx:249
 AliPMDClusterFinder.cxx:250
 AliPMDClusterFinder.cxx:251
 AliPMDClusterFinder.cxx:252
 AliPMDClusterFinder.cxx:253
 AliPMDClusterFinder.cxx:254
 AliPMDClusterFinder.cxx:255
 AliPMDClusterFinder.cxx:256
 AliPMDClusterFinder.cxx:257
 AliPMDClusterFinder.cxx:258
 AliPMDClusterFinder.cxx:259
 AliPMDClusterFinder.cxx:260
 AliPMDClusterFinder.cxx:261
 AliPMDClusterFinder.cxx:262
 AliPMDClusterFinder.cxx:263
 AliPMDClusterFinder.cxx:264
 AliPMDClusterFinder.cxx:265
 AliPMDClusterFinder.cxx:266
 AliPMDClusterFinder.cxx:267
 AliPMDClusterFinder.cxx:268
 AliPMDClusterFinder.cxx:269
 AliPMDClusterFinder.cxx:270
 AliPMDClusterFinder.cxx:271
 AliPMDClusterFinder.cxx:272
 AliPMDClusterFinder.cxx:273
 AliPMDClusterFinder.cxx:274
 AliPMDClusterFinder.cxx:275
 AliPMDClusterFinder.cxx:276
 AliPMDClusterFinder.cxx:277
 AliPMDClusterFinder.cxx:278
 AliPMDClusterFinder.cxx:279
 AliPMDClusterFinder.cxx:280
 AliPMDClusterFinder.cxx:281
 AliPMDClusterFinder.cxx:282
 AliPMDClusterFinder.cxx:283
 AliPMDClusterFinder.cxx:284
 AliPMDClusterFinder.cxx:285
 AliPMDClusterFinder.cxx:286
 AliPMDClusterFinder.cxx:287
 AliPMDClusterFinder.cxx:288
 AliPMDClusterFinder.cxx:289
 AliPMDClusterFinder.cxx:290
 AliPMDClusterFinder.cxx:291
 AliPMDClusterFinder.cxx:292
 AliPMDClusterFinder.cxx:293
 AliPMDClusterFinder.cxx:294
 AliPMDClusterFinder.cxx:295
 AliPMDClusterFinder.cxx:296
 AliPMDClusterFinder.cxx:297
 AliPMDClusterFinder.cxx:298
 AliPMDClusterFinder.cxx:299
 AliPMDClusterFinder.cxx:300
 AliPMDClusterFinder.cxx:301
 AliPMDClusterFinder.cxx:302
 AliPMDClusterFinder.cxx:303
 AliPMDClusterFinder.cxx:304
 AliPMDClusterFinder.cxx:305
 AliPMDClusterFinder.cxx:306
 AliPMDClusterFinder.cxx:307
 AliPMDClusterFinder.cxx:308
 AliPMDClusterFinder.cxx:309
 AliPMDClusterFinder.cxx:310
 AliPMDClusterFinder.cxx:311
 AliPMDClusterFinder.cxx:312
 AliPMDClusterFinder.cxx:313
 AliPMDClusterFinder.cxx:314
 AliPMDClusterFinder.cxx:315
 AliPMDClusterFinder.cxx:316
 AliPMDClusterFinder.cxx:317
 AliPMDClusterFinder.cxx:318
 AliPMDClusterFinder.cxx:319
 AliPMDClusterFinder.cxx:320
 AliPMDClusterFinder.cxx:321
 AliPMDClusterFinder.cxx:322
 AliPMDClusterFinder.cxx:323
 AliPMDClusterFinder.cxx:324
 AliPMDClusterFinder.cxx:325
 AliPMDClusterFinder.cxx:326
 AliPMDClusterFinder.cxx:327
 AliPMDClusterFinder.cxx:328
 AliPMDClusterFinder.cxx:329
 AliPMDClusterFinder.cxx:330
 AliPMDClusterFinder.cxx:331
 AliPMDClusterFinder.cxx:332
 AliPMDClusterFinder.cxx:333
 AliPMDClusterFinder.cxx:334
 AliPMDClusterFinder.cxx:335
 AliPMDClusterFinder.cxx:336
 AliPMDClusterFinder.cxx:337
 AliPMDClusterFinder.cxx:338
 AliPMDClusterFinder.cxx:339
 AliPMDClusterFinder.cxx:340
 AliPMDClusterFinder.cxx:341
 AliPMDClusterFinder.cxx:342
 AliPMDClusterFinder.cxx:343
 AliPMDClusterFinder.cxx:344
 AliPMDClusterFinder.cxx:345
 AliPMDClusterFinder.cxx:346
 AliPMDClusterFinder.cxx:347
 AliPMDClusterFinder.cxx:348
 AliPMDClusterFinder.cxx:349
 AliPMDClusterFinder.cxx:350
 AliPMDClusterFinder.cxx:351
 AliPMDClusterFinder.cxx:352
 AliPMDClusterFinder.cxx:353
 AliPMDClusterFinder.cxx:354
 AliPMDClusterFinder.cxx:355
 AliPMDClusterFinder.cxx:356
 AliPMDClusterFinder.cxx:357
 AliPMDClusterFinder.cxx:358
 AliPMDClusterFinder.cxx:359
 AliPMDClusterFinder.cxx:360
 AliPMDClusterFinder.cxx:361
 AliPMDClusterFinder.cxx:362
 AliPMDClusterFinder.cxx:363
 AliPMDClusterFinder.cxx:364
 AliPMDClusterFinder.cxx:365
 AliPMDClusterFinder.cxx:366
 AliPMDClusterFinder.cxx:367
 AliPMDClusterFinder.cxx:368
 AliPMDClusterFinder.cxx:369
 AliPMDClusterFinder.cxx:370
 AliPMDClusterFinder.cxx:371
 AliPMDClusterFinder.cxx:372
 AliPMDClusterFinder.cxx:373
 AliPMDClusterFinder.cxx:374
 AliPMDClusterFinder.cxx:375
 AliPMDClusterFinder.cxx:376
 AliPMDClusterFinder.cxx:377
 AliPMDClusterFinder.cxx:378
 AliPMDClusterFinder.cxx:379
 AliPMDClusterFinder.cxx:380
 AliPMDClusterFinder.cxx:381
 AliPMDClusterFinder.cxx:382
 AliPMDClusterFinder.cxx:383
 AliPMDClusterFinder.cxx:384
 AliPMDClusterFinder.cxx:385
 AliPMDClusterFinder.cxx:386
 AliPMDClusterFinder.cxx:387
 AliPMDClusterFinder.cxx:388
 AliPMDClusterFinder.cxx:389
 AliPMDClusterFinder.cxx:390
 AliPMDClusterFinder.cxx:391
 AliPMDClusterFinder.cxx:392
 AliPMDClusterFinder.cxx:393
 AliPMDClusterFinder.cxx:394
 AliPMDClusterFinder.cxx:395
 AliPMDClusterFinder.cxx:396
 AliPMDClusterFinder.cxx:397
 AliPMDClusterFinder.cxx:398
 AliPMDClusterFinder.cxx:399
 AliPMDClusterFinder.cxx:400
 AliPMDClusterFinder.cxx:401
 AliPMDClusterFinder.cxx:402
 AliPMDClusterFinder.cxx:403
 AliPMDClusterFinder.cxx:404
 AliPMDClusterFinder.cxx:405
 AliPMDClusterFinder.cxx:406
 AliPMDClusterFinder.cxx:407
 AliPMDClusterFinder.cxx:408
 AliPMDClusterFinder.cxx:409
 AliPMDClusterFinder.cxx:410
 AliPMDClusterFinder.cxx:411
 AliPMDClusterFinder.cxx:412
 AliPMDClusterFinder.cxx:413
 AliPMDClusterFinder.cxx:414
 AliPMDClusterFinder.cxx:415
 AliPMDClusterFinder.cxx:416
 AliPMDClusterFinder.cxx:417
 AliPMDClusterFinder.cxx:418
 AliPMDClusterFinder.cxx:419
 AliPMDClusterFinder.cxx:420
 AliPMDClusterFinder.cxx:421
 AliPMDClusterFinder.cxx:422
 AliPMDClusterFinder.cxx:423
 AliPMDClusterFinder.cxx:424
 AliPMDClusterFinder.cxx:425
 AliPMDClusterFinder.cxx:426
 AliPMDClusterFinder.cxx:427
 AliPMDClusterFinder.cxx:428
 AliPMDClusterFinder.cxx:429
 AliPMDClusterFinder.cxx:430
 AliPMDClusterFinder.cxx:431
 AliPMDClusterFinder.cxx:432
 AliPMDClusterFinder.cxx:433
 AliPMDClusterFinder.cxx:434
 AliPMDClusterFinder.cxx:435
 AliPMDClusterFinder.cxx:436
 AliPMDClusterFinder.cxx:437
 AliPMDClusterFinder.cxx:438
 AliPMDClusterFinder.cxx:439
 AliPMDClusterFinder.cxx:440
 AliPMDClusterFinder.cxx:441
 AliPMDClusterFinder.cxx:442
 AliPMDClusterFinder.cxx:443
 AliPMDClusterFinder.cxx:444
 AliPMDClusterFinder.cxx:445
 AliPMDClusterFinder.cxx:446
 AliPMDClusterFinder.cxx:447
 AliPMDClusterFinder.cxx:448
 AliPMDClusterFinder.cxx:449
 AliPMDClusterFinder.cxx:450
 AliPMDClusterFinder.cxx:451
 AliPMDClusterFinder.cxx:452
 AliPMDClusterFinder.cxx:453
 AliPMDClusterFinder.cxx:454
 AliPMDClusterFinder.cxx:455
 AliPMDClusterFinder.cxx:456
 AliPMDClusterFinder.cxx:457
 AliPMDClusterFinder.cxx:458
 AliPMDClusterFinder.cxx:459
 AliPMDClusterFinder.cxx:460
 AliPMDClusterFinder.cxx:461
 AliPMDClusterFinder.cxx:462
 AliPMDClusterFinder.cxx:463
 AliPMDClusterFinder.cxx:464
 AliPMDClusterFinder.cxx:465
 AliPMDClusterFinder.cxx:466
 AliPMDClusterFinder.cxx:467
 AliPMDClusterFinder.cxx:468
 AliPMDClusterFinder.cxx:469
 AliPMDClusterFinder.cxx:470
 AliPMDClusterFinder.cxx:471
 AliPMDClusterFinder.cxx:472
 AliPMDClusterFinder.cxx:473
 AliPMDClusterFinder.cxx:474
 AliPMDClusterFinder.cxx:475
 AliPMDClusterFinder.cxx:476
 AliPMDClusterFinder.cxx:477
 AliPMDClusterFinder.cxx:478
 AliPMDClusterFinder.cxx:479
 AliPMDClusterFinder.cxx:480
 AliPMDClusterFinder.cxx:481
 AliPMDClusterFinder.cxx:482
 AliPMDClusterFinder.cxx:483
 AliPMDClusterFinder.cxx:484
 AliPMDClusterFinder.cxx:485
 AliPMDClusterFinder.cxx:486
 AliPMDClusterFinder.cxx:487
 AliPMDClusterFinder.cxx:488
 AliPMDClusterFinder.cxx:489
 AliPMDClusterFinder.cxx:490
 AliPMDClusterFinder.cxx:491
 AliPMDClusterFinder.cxx:492
 AliPMDClusterFinder.cxx:493
 AliPMDClusterFinder.cxx:494
 AliPMDClusterFinder.cxx:495
 AliPMDClusterFinder.cxx:496
 AliPMDClusterFinder.cxx:497
 AliPMDClusterFinder.cxx:498
 AliPMDClusterFinder.cxx:499
 AliPMDClusterFinder.cxx:500
 AliPMDClusterFinder.cxx:501
 AliPMDClusterFinder.cxx:502
 AliPMDClusterFinder.cxx:503
 AliPMDClusterFinder.cxx:504
 AliPMDClusterFinder.cxx:505
 AliPMDClusterFinder.cxx:506
 AliPMDClusterFinder.cxx:507
 AliPMDClusterFinder.cxx:508
 AliPMDClusterFinder.cxx:509
 AliPMDClusterFinder.cxx:510
 AliPMDClusterFinder.cxx:511
 AliPMDClusterFinder.cxx:512
 AliPMDClusterFinder.cxx:513
 AliPMDClusterFinder.cxx:514
 AliPMDClusterFinder.cxx:515
 AliPMDClusterFinder.cxx:516
 AliPMDClusterFinder.cxx:517
 AliPMDClusterFinder.cxx:518
 AliPMDClusterFinder.cxx:519
 AliPMDClusterFinder.cxx:520
 AliPMDClusterFinder.cxx:521
 AliPMDClusterFinder.cxx:522
 AliPMDClusterFinder.cxx:523
 AliPMDClusterFinder.cxx:524
 AliPMDClusterFinder.cxx:525
 AliPMDClusterFinder.cxx:526
 AliPMDClusterFinder.cxx:527
 AliPMDClusterFinder.cxx:528
 AliPMDClusterFinder.cxx:529
 AliPMDClusterFinder.cxx:530
 AliPMDClusterFinder.cxx:531
 AliPMDClusterFinder.cxx:532
 AliPMDClusterFinder.cxx:533
 AliPMDClusterFinder.cxx:534
 AliPMDClusterFinder.cxx:535
 AliPMDClusterFinder.cxx:536
 AliPMDClusterFinder.cxx:537
 AliPMDClusterFinder.cxx:538
 AliPMDClusterFinder.cxx:539
 AliPMDClusterFinder.cxx:540
 AliPMDClusterFinder.cxx:541
 AliPMDClusterFinder.cxx:542
 AliPMDClusterFinder.cxx:543
 AliPMDClusterFinder.cxx:544
 AliPMDClusterFinder.cxx:545
 AliPMDClusterFinder.cxx:546
 AliPMDClusterFinder.cxx:547
 AliPMDClusterFinder.cxx:548
 AliPMDClusterFinder.cxx:549
 AliPMDClusterFinder.cxx:550
 AliPMDClusterFinder.cxx:551
 AliPMDClusterFinder.cxx:552
 AliPMDClusterFinder.cxx:553
 AliPMDClusterFinder.cxx:554
 AliPMDClusterFinder.cxx:555
 AliPMDClusterFinder.cxx:556
 AliPMDClusterFinder.cxx:557
 AliPMDClusterFinder.cxx:558
 AliPMDClusterFinder.cxx:559
 AliPMDClusterFinder.cxx:560
 AliPMDClusterFinder.cxx:561
 AliPMDClusterFinder.cxx:562
 AliPMDClusterFinder.cxx:563
 AliPMDClusterFinder.cxx:564
 AliPMDClusterFinder.cxx:565
 AliPMDClusterFinder.cxx:566
 AliPMDClusterFinder.cxx:567
 AliPMDClusterFinder.cxx:568
 AliPMDClusterFinder.cxx:569
 AliPMDClusterFinder.cxx:570
 AliPMDClusterFinder.cxx:571
 AliPMDClusterFinder.cxx:572
 AliPMDClusterFinder.cxx:573
 AliPMDClusterFinder.cxx:574
 AliPMDClusterFinder.cxx:575
 AliPMDClusterFinder.cxx:576
 AliPMDClusterFinder.cxx:577
 AliPMDClusterFinder.cxx:578
 AliPMDClusterFinder.cxx:579
 AliPMDClusterFinder.cxx:580
 AliPMDClusterFinder.cxx:581
 AliPMDClusterFinder.cxx:582
 AliPMDClusterFinder.cxx:583
 AliPMDClusterFinder.cxx:584
 AliPMDClusterFinder.cxx:585
 AliPMDClusterFinder.cxx:586
 AliPMDClusterFinder.cxx:587
 AliPMDClusterFinder.cxx:588
 AliPMDClusterFinder.cxx:589
 AliPMDClusterFinder.cxx:590
 AliPMDClusterFinder.cxx:591
 AliPMDClusterFinder.cxx:592
 AliPMDClusterFinder.cxx:593
 AliPMDClusterFinder.cxx:594
 AliPMDClusterFinder.cxx:595
 AliPMDClusterFinder.cxx:596
 AliPMDClusterFinder.cxx:597
 AliPMDClusterFinder.cxx:598
 AliPMDClusterFinder.cxx:599
 AliPMDClusterFinder.cxx:600
 AliPMDClusterFinder.cxx:601
 AliPMDClusterFinder.cxx:602
 AliPMDClusterFinder.cxx:603
 AliPMDClusterFinder.cxx:604
 AliPMDClusterFinder.cxx:605
 AliPMDClusterFinder.cxx:606
 AliPMDClusterFinder.cxx:607
 AliPMDClusterFinder.cxx:608
 AliPMDClusterFinder.cxx:609
 AliPMDClusterFinder.cxx:610
 AliPMDClusterFinder.cxx:611
 AliPMDClusterFinder.cxx:612
 AliPMDClusterFinder.cxx:613
 AliPMDClusterFinder.cxx:614
 AliPMDClusterFinder.cxx:615
 AliPMDClusterFinder.cxx:616
 AliPMDClusterFinder.cxx:617
 AliPMDClusterFinder.cxx:618
 AliPMDClusterFinder.cxx:619
 AliPMDClusterFinder.cxx:620
 AliPMDClusterFinder.cxx:621
 AliPMDClusterFinder.cxx:622
 AliPMDClusterFinder.cxx:623
 AliPMDClusterFinder.cxx:624
 AliPMDClusterFinder.cxx:625
 AliPMDClusterFinder.cxx:626
 AliPMDClusterFinder.cxx:627
 AliPMDClusterFinder.cxx:628
 AliPMDClusterFinder.cxx:629
 AliPMDClusterFinder.cxx:630
 AliPMDClusterFinder.cxx:631
 AliPMDClusterFinder.cxx:632
 AliPMDClusterFinder.cxx:633
 AliPMDClusterFinder.cxx:634
 AliPMDClusterFinder.cxx:635
 AliPMDClusterFinder.cxx:636
 AliPMDClusterFinder.cxx:637
 AliPMDClusterFinder.cxx:638
 AliPMDClusterFinder.cxx:639
 AliPMDClusterFinder.cxx:640
 AliPMDClusterFinder.cxx:641
 AliPMDClusterFinder.cxx:642
 AliPMDClusterFinder.cxx:643
 AliPMDClusterFinder.cxx:644
 AliPMDClusterFinder.cxx:645
 AliPMDClusterFinder.cxx:646
 AliPMDClusterFinder.cxx:647
 AliPMDClusterFinder.cxx:648
 AliPMDClusterFinder.cxx:649
 AliPMDClusterFinder.cxx:650
 AliPMDClusterFinder.cxx:651
 AliPMDClusterFinder.cxx:652
 AliPMDClusterFinder.cxx:653
 AliPMDClusterFinder.cxx:654
 AliPMDClusterFinder.cxx:655
 AliPMDClusterFinder.cxx:656
 AliPMDClusterFinder.cxx:657
 AliPMDClusterFinder.cxx:658
 AliPMDClusterFinder.cxx:659
 AliPMDClusterFinder.cxx:660
 AliPMDClusterFinder.cxx:661
 AliPMDClusterFinder.cxx:662
 AliPMDClusterFinder.cxx:663
 AliPMDClusterFinder.cxx:664
 AliPMDClusterFinder.cxx:665
 AliPMDClusterFinder.cxx:666
 AliPMDClusterFinder.cxx:667
 AliPMDClusterFinder.cxx:668
 AliPMDClusterFinder.cxx:669
 AliPMDClusterFinder.cxx:670
 AliPMDClusterFinder.cxx:671
 AliPMDClusterFinder.cxx:672
 AliPMDClusterFinder.cxx:673
 AliPMDClusterFinder.cxx:674
 AliPMDClusterFinder.cxx:675
 AliPMDClusterFinder.cxx:676
 AliPMDClusterFinder.cxx:677
 AliPMDClusterFinder.cxx:678
 AliPMDClusterFinder.cxx:679
 AliPMDClusterFinder.cxx:680
 AliPMDClusterFinder.cxx:681
 AliPMDClusterFinder.cxx:682
 AliPMDClusterFinder.cxx:683
 AliPMDClusterFinder.cxx:684
 AliPMDClusterFinder.cxx:685
 AliPMDClusterFinder.cxx:686
 AliPMDClusterFinder.cxx:687
 AliPMDClusterFinder.cxx:688
 AliPMDClusterFinder.cxx:689
 AliPMDClusterFinder.cxx:690
 AliPMDClusterFinder.cxx:691
 AliPMDClusterFinder.cxx:692
 AliPMDClusterFinder.cxx:693
 AliPMDClusterFinder.cxx:694
 AliPMDClusterFinder.cxx:695
 AliPMDClusterFinder.cxx:696
 AliPMDClusterFinder.cxx:697
 AliPMDClusterFinder.cxx:698
 AliPMDClusterFinder.cxx:699
 AliPMDClusterFinder.cxx:700
 AliPMDClusterFinder.cxx:701
 AliPMDClusterFinder.cxx:702
 AliPMDClusterFinder.cxx:703
 AliPMDClusterFinder.cxx:704
 AliPMDClusterFinder.cxx:705
 AliPMDClusterFinder.cxx:706
 AliPMDClusterFinder.cxx:707
 AliPMDClusterFinder.cxx:708
 AliPMDClusterFinder.cxx:709
 AliPMDClusterFinder.cxx:710
 AliPMDClusterFinder.cxx:711
 AliPMDClusterFinder.cxx:712
 AliPMDClusterFinder.cxx:713
 AliPMDClusterFinder.cxx:714
 AliPMDClusterFinder.cxx:715
 AliPMDClusterFinder.cxx:716
 AliPMDClusterFinder.cxx:717
 AliPMDClusterFinder.cxx:718
 AliPMDClusterFinder.cxx:719
 AliPMDClusterFinder.cxx:720
 AliPMDClusterFinder.cxx:721
 AliPMDClusterFinder.cxx:722
 AliPMDClusterFinder.cxx:723
 AliPMDClusterFinder.cxx:724
 AliPMDClusterFinder.cxx:725
 AliPMDClusterFinder.cxx:726
 AliPMDClusterFinder.cxx:727
 AliPMDClusterFinder.cxx:728
 AliPMDClusterFinder.cxx:729
 AliPMDClusterFinder.cxx:730
 AliPMDClusterFinder.cxx:731
 AliPMDClusterFinder.cxx:732
 AliPMDClusterFinder.cxx:733
 AliPMDClusterFinder.cxx:734
 AliPMDClusterFinder.cxx:735
 AliPMDClusterFinder.cxx:736
 AliPMDClusterFinder.cxx:737
 AliPMDClusterFinder.cxx:738
 AliPMDClusterFinder.cxx:739
 AliPMDClusterFinder.cxx:740
 AliPMDClusterFinder.cxx:741
 AliPMDClusterFinder.cxx:742
 AliPMDClusterFinder.cxx:743
 AliPMDClusterFinder.cxx:744
 AliPMDClusterFinder.cxx:745
 AliPMDClusterFinder.cxx:746
 AliPMDClusterFinder.cxx:747
 AliPMDClusterFinder.cxx:748
 AliPMDClusterFinder.cxx:749
 AliPMDClusterFinder.cxx:750
 AliPMDClusterFinder.cxx:751
 AliPMDClusterFinder.cxx:752
 AliPMDClusterFinder.cxx:753
 AliPMDClusterFinder.cxx:754
 AliPMDClusterFinder.cxx:755
 AliPMDClusterFinder.cxx:756
 AliPMDClusterFinder.cxx:757
 AliPMDClusterFinder.cxx:758
 AliPMDClusterFinder.cxx:759
 AliPMDClusterFinder.cxx:760
 AliPMDClusterFinder.cxx:761
 AliPMDClusterFinder.cxx:762
 AliPMDClusterFinder.cxx:763
 AliPMDClusterFinder.cxx:764
 AliPMDClusterFinder.cxx:765
 AliPMDClusterFinder.cxx:766
 AliPMDClusterFinder.cxx:767
 AliPMDClusterFinder.cxx:768
 AliPMDClusterFinder.cxx:769
 AliPMDClusterFinder.cxx:770
 AliPMDClusterFinder.cxx:771
 AliPMDClusterFinder.cxx:772
 AliPMDClusterFinder.cxx:773
 AliPMDClusterFinder.cxx:774
 AliPMDClusterFinder.cxx:775
 AliPMDClusterFinder.cxx:776
 AliPMDClusterFinder.cxx:777
 AliPMDClusterFinder.cxx:778
 AliPMDClusterFinder.cxx:779
 AliPMDClusterFinder.cxx:780
 AliPMDClusterFinder.cxx:781
 AliPMDClusterFinder.cxx:782
 AliPMDClusterFinder.cxx:783
 AliPMDClusterFinder.cxx:784
 AliPMDClusterFinder.cxx:785
 AliPMDClusterFinder.cxx:786
 AliPMDClusterFinder.cxx:787
 AliPMDClusterFinder.cxx:788
 AliPMDClusterFinder.cxx:789
 AliPMDClusterFinder.cxx:790
 AliPMDClusterFinder.cxx:791
 AliPMDClusterFinder.cxx:792
 AliPMDClusterFinder.cxx:793
 AliPMDClusterFinder.cxx:794
 AliPMDClusterFinder.cxx:795
 AliPMDClusterFinder.cxx:796
 AliPMDClusterFinder.cxx:797
 AliPMDClusterFinder.cxx:798
 AliPMDClusterFinder.cxx:799
 AliPMDClusterFinder.cxx:800
 AliPMDClusterFinder.cxx:801
 AliPMDClusterFinder.cxx:802
 AliPMDClusterFinder.cxx:803
 AliPMDClusterFinder.cxx:804
 AliPMDClusterFinder.cxx:805
 AliPMDClusterFinder.cxx:806
 AliPMDClusterFinder.cxx:807
 AliPMDClusterFinder.cxx:808
 AliPMDClusterFinder.cxx:809
 AliPMDClusterFinder.cxx:810
 AliPMDClusterFinder.cxx:811
 AliPMDClusterFinder.cxx:812
 AliPMDClusterFinder.cxx:813
 AliPMDClusterFinder.cxx:814
 AliPMDClusterFinder.cxx:815
 AliPMDClusterFinder.cxx:816
 AliPMDClusterFinder.cxx:817
 AliPMDClusterFinder.cxx:818
 AliPMDClusterFinder.cxx:819
 AliPMDClusterFinder.cxx:820
 AliPMDClusterFinder.cxx:821
 AliPMDClusterFinder.cxx:822
 AliPMDClusterFinder.cxx:823
 AliPMDClusterFinder.cxx:824
 AliPMDClusterFinder.cxx:825
 AliPMDClusterFinder.cxx:826
 AliPMDClusterFinder.cxx:827
 AliPMDClusterFinder.cxx:828
 AliPMDClusterFinder.cxx:829
 AliPMDClusterFinder.cxx:830
 AliPMDClusterFinder.cxx:831
 AliPMDClusterFinder.cxx:832
 AliPMDClusterFinder.cxx:833
 AliPMDClusterFinder.cxx:834
 AliPMDClusterFinder.cxx:835
 AliPMDClusterFinder.cxx:836
 AliPMDClusterFinder.cxx:837
 AliPMDClusterFinder.cxx:838
 AliPMDClusterFinder.cxx:839
 AliPMDClusterFinder.cxx:840
 AliPMDClusterFinder.cxx:841
 AliPMDClusterFinder.cxx:842
 AliPMDClusterFinder.cxx:843
 AliPMDClusterFinder.cxx:844
 AliPMDClusterFinder.cxx:845
 AliPMDClusterFinder.cxx:846
 AliPMDClusterFinder.cxx:847
 AliPMDClusterFinder.cxx:848
 AliPMDClusterFinder.cxx:849
 AliPMDClusterFinder.cxx:850
 AliPMDClusterFinder.cxx:851
 AliPMDClusterFinder.cxx:852
 AliPMDClusterFinder.cxx:853