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

//_________________________________________________________________________
// This analysis provides a new list of clusters to be used in other analysis
//
// Author: Constantin Loizides, Salvatore Aiola
//         Adapted from analysis class from Deepa Thomas
//
//_________________________________________________________________________

// --- Root ---
#include <TClonesArray.h>
#include <TGeoManager.h>
#include <TObjArray.h>
#include <TString.h>
#include <TTree.h>
#include <TArrayI.h>

// --- AliRoot ---
#include "AliAODCaloCluster.h"
#include "AliAODEvent.h"
#include "AliAnalysisManager.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
#include "AliCaloCalibPedestal.h"
#include "AliEMCALAfterBurnerUF.h"
#include "AliEMCALCalibData.h"
#include "AliEMCALClusterizerNxN.h"
#include "AliEMCALClusterizerv1.h"
#include "AliEMCALClusterizerv2.h"
#include "AliEMCALClusterizerFixedWindow.h"
#include "AliEMCALDigit.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALRecParam.h"
#include "AliEMCALRecPoint.h"
#include "AliEMCALRecoUtils.h"
#include "AliESDEvent.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"

#include "AliAnalysisTaskEMCALClusterizeFast.h"

ClassImp(AliAnalysisTaskEMCALClusterizeFast)

//________________________________________________________________________
AliAnalysisTaskEMCALClusterizeFast::AliAnalysisTaskEMCALClusterizeFast() : 
  AliAnalysisTaskSE(), 
  fRun(-1),
  fDigitsArr(0),       
  fClusterArr(0),       
  fRecParam(new AliEMCALRecParam),
  fClusterizer(0),
  fUnfolder(0),
  fJustUnfold(kFALSE),
  fGeomName(),
  fGeomMatrixSet(kFALSE), 
  fLoadGeomMatrices(kFALSE),
  fOCDBpath(),
  fCalibData(0),
  fPedestalData(0),
  fOutputAODBranch(0),
  fOutputAODBrName(),
  fRecoUtils(0),
  fLoadCalib(kFALSE),
  fLoadPed(kFALSE),
  fAttachClusters(kTRUE),
  fSubBackground(kFALSE),
  fNPhi(4),
  fNEta(4),
  fShiftPhi(2),
  fShiftEta(2),
  fTRUShift(0),
  fInputCellType(kFEEData),
  fTrackName(),
  fCaloCellsName(),  
  fCaloClustersName("newCaloClusters"),
  fDoUpdateCells(kFALSE),
  fDoClusterize(kTRUE),
  fClusterBadChannelCheck(kFALSE),
  fRejectExoticClusters(kFALSE),
  fRejectExoticCells(kFALSE),
  fFiducial(kFALSE),
  fDoNonLinearity(kFALSE),
  fRecalDistToBadChannels(kFALSE),
  fSetCellMCLabelFromCluster(0),
  fCaloCells(0),
  fCaloClusters(0),
  fEsd(0),
  fAod(0),
  fGeom(0)
{ 
  // Constructor

  for(Int_t i = 0; i < 12; ++i) 
    fGeomMatrix[i] = 0;
}

//________________________________________________________________________
AliAnalysisTaskEMCALClusterizeFast::AliAnalysisTaskEMCALClusterizeFast(const char *name) : 
  AliAnalysisTaskSE(name), 
  fRun(-1),
  fDigitsArr(0),       
  fClusterArr(0),       
  fRecParam(new AliEMCALRecParam),
  fClusterizer(0),
  fUnfolder(0),
  fJustUnfold(kFALSE),
  fGeomName(),
  fGeomMatrixSet(kFALSE), 
  fLoadGeomMatrices(kFALSE),
  fOCDBpath(),
  fCalibData(0),
  fPedestalData(0),
  fOutputAODBranch(0),
  fOutputAODBrName(),
  fRecoUtils(0),
  fLoadCalib(kFALSE),
  fLoadPed(kFALSE),
  fAttachClusters(kTRUE),
  fSubBackground(kFALSE),
  fNPhi(4),
  fNEta(4),
  fShiftPhi(2),
  fShiftEta(2),
  fTRUShift(0),
  fInputCellType(kFEEData),
  fTrackName(),
  fCaloCellsName(),  
  fCaloClustersName("newCaloClusters"),
  fDoUpdateCells(kFALSE),
  fDoClusterize(kTRUE),
  fClusterBadChannelCheck(kFALSE),
  fRejectExoticClusters(kFALSE),
  fRejectExoticCells(kFALSE),
  fFiducial(kFALSE),
  fDoNonLinearity(kFALSE),
  fRecalDistToBadChannels(kFALSE),
  fSetCellMCLabelFromCluster(0),
  fCaloCells(0),
  fCaloClusters(0),
  fEsd(0),
  fAod(0),
  fGeom(0)
{ 
  // Constructor

  fBranchNames     = "ESD:AliESDHeader.,AliESDRun.,EMCALCells.,EMCALTrigger. AOD:header,emcalCells";
  for(Int_t i = 0; i < 12; ++i) 
    fGeomMatrix[i] = 0;
}

//________________________________________________________________________
AliAnalysisTaskEMCALClusterizeFast::~AliAnalysisTaskEMCALClusterizeFast()
{
  // Destructor.

  delete fClusterizer;
  delete fUnfolder;   
  delete fRecoUtils;
  delete fRecParam;
}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::UserCreateOutputObjects()
{
  // Create output objects.

  if (!fOutputAODBrName.IsNull()) {
    fOutputAODBranch = new TClonesArray("AliAODCaloCluster", 0);
    fOutputAODBranch->SetName(fOutputAODBrName);
    AddAODBranch("TClonesArray", &fOutputAODBranch);
    AliInfo(Form("Created Branch: %s",fOutputAODBrName.Data()));
  }
}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::UserExec(Option_t *) 
{
  // Main loop, called for each event

  // if no operation is requested, return
  if (!fDoClusterize && !fDoUpdateCells)
    return;

  // remove the contents of output list set in the previous event 
  if (fOutputAODBranch)
    fOutputAODBranch->Clear("C");

  fEsd = dynamic_cast<AliESDEvent*>(InputEvent());
  fAod = dynamic_cast<AliAODEvent*>(InputEvent());

  if (!fEsd&&!fAod) {
    Error("UserExec","Event not available");
    return;
  }

  LoadBranches();

  UInt_t offtrigger = 0;
  if (fEsd) {
    UInt_t mask1 = fEsd->GetESDRun()->GetDetectorsInDAQ();
    UInt_t mask2 = fEsd->GetESDRun()->GetDetectorsInReco();
    Bool_t desc1 = (mask1 >> 18) & 0x1;
    Bool_t desc2 = (mask2 >> 18) & 0x1;
    if (desc1==0 || desc2==0) { //AliDAQ::OfflineModuleName(180=="EMCAL"
      AliError(Form("EMCAL not in DAQ/RECO: %u (%u)/%u (%u)", 
		    mask1, fEsd->GetESDRun()->GetDetectorsInReco(),
		    mask2, fEsd->GetESDRun()->GetDetectorsInDAQ()));
      return;
    }
    AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
    offtrigger = ((AliInputEventHandler*)(am->GetInputEventHandler()))->IsEventSelected();
  } else {
    offtrigger =  ((AliVAODHeader*)fAod->GetHeader())->GetOfflineTrigger();
  }

  if (!MCEvent()) {
    if (offtrigger & AliVEvent::kFastOnly) {
      AliError(Form("EMCAL not in fast only partition"));
      return;
    }
  }
  
  Init();

  if (fJustUnfold) {
    AliWarning("Unfolding not implemented");
    return;
  }

  FillDigitsArray();

  if (fDoClusterize)
    Clusterize();

  if (fDoUpdateCells)
    UpdateCells();

  if (!fDoClusterize || (!fAttachClusters && !fOutputAODBranch) || !fCaloClusters)
    return;

  UpdateClusters();
  CalibrateClusters();

  if (fOutputAODBranch && fCaloClusters != fOutputAODBranch)
    CopyClusters(fCaloClusters, fOutputAODBranch);

}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::CopyClusters(TClonesArray *orig, TClonesArray *dest)
{
  const Int_t Ncls = orig->GetEntries();

  for(Int_t i=0; i < Ncls; ++i) {
    AliVCluster *oc = static_cast<AliVCluster*>(orig->At(i));

    if (!oc)
      continue;

    if (!oc->IsEMCAL())
      continue;
    
    AliVCluster *dc = static_cast<AliVCluster*>(dest->New(i));
    dc->SetType(AliVCluster::kEMCALClusterv1);
    dc->SetE(oc->E());
    Float_t pos[3] = {0};
    oc->GetPosition(pos);
    dc->SetPosition(pos);
    dc->SetNCells(oc->GetNCells());
    dc->SetCellsAbsId(oc->GetCellsAbsId());
    dc->SetCellsAmplitudeFraction(oc->GetCellsAmplitudeFraction());
    dc->SetID(oc->GetID());
    dc->SetDispersion(oc->GetDispersion());
    dc->SetEmcCpvDistance(-1);
    dc->SetChi2(-1);
    dc->SetTOF(oc->GetTOF());     //time-of-flight
    dc->SetNExMax(oc->GetNExMax()); //number of local maxima
    dc->SetM02(oc->GetM02());
    dc->SetM20(oc->GetM20());
    dc->SetDistanceToBadChannel(oc->GetDistanceToBadChannel()); 
    dc->SetMCEnergyFraction(oc->GetMCEnergyFraction());

    //MC
    UInt_t nlabels = oc->GetNLabels();
    Int_t *labels = oc->GetLabels();

    if (nlabels == 0 || !labels)
      continue;

    AliESDCaloCluster *esdClus = dynamic_cast<AliESDCaloCluster*>(dc);
    if (esdClus) {
      TArrayI parents(nlabels, labels);
      esdClus->AddLabels(parents); 
    }
    else {
      AliAODCaloCluster *aodClus = dynamic_cast<AliAODCaloCluster*>(dc);
      if (aodClus) 
	aodClus->SetLabel(labels, nlabels); 
    }
  }
}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::Clusterize()
{
  // Clusterize

  if (fSubBackground) {
    fClusterizer->SetInputCalibrated(kTRUE);   
    fClusterizer->SetCalibrationParameters(0);
  }

  fClusterizer->Digits2Clusters("");
 
  if (fSubBackground) {
    if (fCalibData) {
      fClusterizer->SetInputCalibrated(kFALSE);   
      fClusterizer->SetCalibrationParameters(fCalibData);
    }
  }
}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::FillDigitsArray()
{
  // Fill digits array

  fDigitsArr->Clear("C");
  switch (fInputCellType) {

  case kFEEData :
  case kFEEDataMCOnly :
  case kFEEDataExcludeMC :
    {
      // In case of MC productions done before aliroot tag v5-02-Rev09
      // assing the cluster label to all the cells belonging to this cluster
      // very rough
      // Copied and simplified from AliEMCALTenderSupply
      Int_t cellLabels[12672]={-1};
      if (fSetCellMCLabelFromCluster) {
        Int_t nClusters = InputEvent()->GetNumberOfCaloClusters();
        for (Int_t i = 0; i < nClusters; i++) {
          AliVCluster *clus =  InputEvent()->GetCaloCluster(i);
      
          if (!clus) continue;
          if (!clus->IsEMCAL()) continue ;
      
          Int_t      label = clus->GetLabel();
          UShort_t * index = clus->GetCellsAbsId() ;
      
          for (Int_t icell=0; icell < clus->GetNCells(); icell++) cellLabels[index[icell]] = label;
        } // cluster loop
      }

      Double_t avgE        = 0; // for background subtraction
      const Int_t ncells   = fCaloCells->GetNumberOfCells();
      for (Int_t icell = 0, idigit = 0; icell < ncells; ++icell) {
	Double_t cellAmplitude=0, cellTime=0, cellEFrac = 0;
	Short_t  cellNumber=0;
	Int_t cellMCLabel=-1;
	if (fCaloCells->GetCell(icell, cellNumber, cellAmplitude, cellTime, cellMCLabel, cellEFrac) != kTRUE)
	  break;

        if (fSetCellMCLabelFromCluster) cellMCLabel = cellLabels[cellNumber];

	if (cellMCLabel > 0 && cellEFrac < 1e-6) 
	  cellEFrac = 1;

	if (cellAmplitude < 1e-6 || cellNumber < 0)
	  continue;	

	if (fInputCellType == kFEEDataMCOnly) {
	  if (cellMCLabel <= 0)
	    continue;
	  else {
	    cellAmplitude *= cellEFrac;
	    cellEFrac = 1;
	  }
	}
	else if (fInputCellType == kFEEDataExcludeMC) {
	  if (cellMCLabel > 0) 
	    continue;
	  else {
	    cellAmplitude *= 1 - cellEFrac;
	    cellEFrac = 0;
	  }
	}

	if(!AcceptCell(cellNumber)) continue;

	AliEMCALDigit *digit = new((*fDigitsArr)[idigit]) AliEMCALDigit(cellMCLabel, cellMCLabel, cellNumber,
									(Float_t)cellAmplitude, (Float_t)cellTime,
									AliEMCALDigit::kHG,idigit, 0, 0, cellEFrac*cellAmplitude);

	if (!fDoClusterize||fSubBackground) {
	  Float_t energy = cellAmplitude;
	  Float_t time   = cellTime;
	  fClusterizer->Calibrate(energy,time,cellNumber);
	  digit->SetAmplitude(energy);
	  avgE += energy;
	}
	idigit++;
      }

      if (fSubBackground) {
	avgE /= fGeom->GetNumberOfSuperModules()*48*24;
	Int_t ndigis = fDigitsArr->GetEntries();
	for (Int_t i = 0; i < ndigis; ++i) {
	  AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->At(i));
	  Double_t energy = digit->GetAmplitude() - avgE;
	  if (energy<=0.001) {
	    digit->SetAmplitude(0);
	  } else {
	    digit->SetAmplitude(energy);
	  }
	}
      }
    }
    break;
    
  case kPattern :    
    {
      // Fill digits from a pattern
      Int_t maxd = fGeom->GetNCells() / 4;
      for (Int_t idigit = 0; idigit < maxd; idigit++){
	if (idigit % 24 == 12) idigit += 12;
	AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->New(idigit));
	digit->SetId(idigit * 4);
	digit->SetTime(600);
	digit->SetTimeR(600);
	digit->SetIndexInList(idigit);
	digit->SetType(AliEMCALDigit::kHG);
	digit->SetAmplitude(0.1);	
      }
    }
    break;

  case kL0FastORs    : 
  case kL0FastORsTC  :
  case kL1FastORs    :
    {
      // Fill digits from FastORs
      
      AliVCaloTrigger *triggers = InputEvent()->GetCaloTrigger("EMCAL");
      
      if (!triggers || !(triggers->GetEntries() > 0))
	return;
      
      Int_t idigit = 0;
      triggers->Reset();
      
      while ((triggers->Next())) {
	Float_t L0Amplitude = 0;
	triggers->GetAmplitude(L0Amplitude);
	
	if (L0Amplitude <= 0 && fInputCellType != kL1FastORs)
	  continue;

	Int_t L1Amplitude = 0;
	triggers->GetL1TimeSum(L1Amplitude);
	
	if (L1Amplitude <= 0 && fInputCellType == kL1FastORs)
	  continue;
      
	Int_t triggerTime = 0;
	Int_t ntimes = 0;
	triggers->GetNL0Times(ntimes);
	
	if (ntimes < 1 && fInputCellType == kL0FastORsTC) 
	  continue;
	
	if (ntimes > 0) {
	  Int_t trgtimes[25];
	  triggers->GetL0Times(trgtimes);
	  triggerTime = trgtimes[0];
	}

	Int_t triggerCol = 0, triggerRow = 0;
	triggers->GetPosition(triggerCol, triggerRow);
	
	Int_t find = -1;
	fGeom->GetAbsFastORIndexFromPositionInEMCAL(triggerCol, triggerRow, find);
	
	if (find < 0)
	  continue;
      
	Int_t cidx[4] = {-1};
	Bool_t ret = fGeom->GetCellIndexFromFastORIndex(find, cidx);
	
	if (!ret)
	  continue;

	Float_t triggerAmplitude = 0;
	
	if (fInputCellType == kL1FastORs) {
	  triggerAmplitude = 0.25 * L1Amplitude;  // it will add 4 cells for 1 amplitude
	}
	else {
	  triggerAmplitude = L0Amplitude;      // 10 bit truncated, so it is already divided by 4
	}
	
	for (Int_t idxpos = 0; idxpos < 4; idxpos++) {
	  Int_t triggerNumber = cidx[idxpos];
	  AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->New(idigit));
	  digit->SetId(triggerNumber);
	  digit->SetTime(triggerTime);
	  digit->SetTimeR(triggerTime);
	  digit->SetIndexInList(idigit);
	  digit->SetType(AliEMCALDigit::kHG);
	  digit->SetAmplitude(triggerAmplitude);
	  idigit++;
	} 
      }
    }
    break;
  }
}

//________________________________________________________________________________________
Bool_t AliAnalysisTaskEMCALClusterizeFast::AcceptCell(Int_t cellNumber) {

  Bool_t accept = kTRUE;
  if(fRejectExoticCells) {
    //Remove exotic cells before making digits
    Bool_t exRemoval = fRecoUtils->IsRejectExoticCell();
    fRecoUtils->SwitchOnRejectExoticCell();//switch on and off
    Int_t bunchCrossNo = InputEvent()->GetBunchCrossNumber();
    Bool_t isEx = fRecoUtils->IsExoticCell(cellNumber, fCaloCells, bunchCrossNo);
    if(isEx) accept = kFALSE;
    if(!exRemoval) fRecoUtils->SwitchOffRejectExoticCell();//switch on and off
  }
  return accept;
}

//________________________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::CalibrateClusters()
{
  // Go through clusters one by one and process separate correction
  // as those were defined or not

  Int_t nclusters = fCaloClusters->GetEntriesFast();
  for (Int_t icluster=0; icluster < nclusters; ++icluster) { 
    AliVCluster *clust = static_cast<AliVCluster*>(fCaloClusters->At(icluster));
    if (!clust) 
      continue;
    if (!clust->IsEMCAL()) 
      continue;

    // REMOVE CLUSTERS WITH BAD CELLS -----------------------------
    if (fClusterBadChannelCheck) {
      // careful, the the ClusterContainsBadChannel is dependent on
      // SwitchOnBadChannelsRemoval, switching it ON automatically
      // and returning to original value after processing
      Bool_t badRemoval = fRecoUtils->IsBadChannelsRemovalSwitchedOn();
      fRecoUtils->SwitchOnBadChannelsRemoval();
      
      Bool_t badResult = fRecoUtils->ClusterContainsBadChannel(fGeom, clust->GetCellsAbsId(), clust->GetNCells());

      // switch the bad channels removal back
      if (!badRemoval)
        fRecoUtils->SwitchOffBadChannelsRemoval();
      
      if (badResult) {
        delete fCaloClusters->RemoveAt(icluster);
        continue; //TODO is it really needed to remove it? Or should we flag it?
      }
    }
    
    // REMOVE EXOTIC CLUSTERS -------------------------------------
    // does process local cell recalibration energy and time without replacing
    // the global cell values, in case of no cell recalib done yet
    if (fRejectExoticClusters) {
      // careful, the IsExoticCluster is dependent on
      // SwitchOnRejectExoticCell, switching it ON automatically
      // and returning to original value after processing
      Bool_t exRemoval = fRecoUtils->IsRejectExoticCell();
      fRecoUtils->SwitchOnRejectExoticCell();

      // get bunch crossing
      Int_t bunchCrossNo = InputEvent()->GetBunchCrossNumber();

      Bool_t exResult = fRecoUtils->IsExoticCluster(clust, fCaloCells, bunchCrossNo);

      // switch the exotic channels removal back
      if (!exRemoval)
        fRecoUtils->SwitchOffRejectExoticCell();
      
      if (exResult) {
        delete fCaloClusters->RemoveAt(icluster);
        continue; //TODO is it really needed to remove it? Or should we flag it?
      }
    }
    
    // FIDUCIAL CUT -----------------------------------------------
    if (fFiducial) {
      // depends on SetNumberOfCellsFromEMCALBorder
      // SwitchOnNoFiducialBorderInEMCALEta0
      if (!fRecoUtils->CheckCellFiducialRegion(fGeom, clust, fCaloCells)){
        delete fCaloClusters->RemoveAt(icluster);
        continue; //TODO it would be nice to store the distance
      }
    }

    // NONLINEARITY -----------------------------------------------
    if (fDoNonLinearity) {
      Float_t correctedEnergy = fRecoUtils->CorrectClusterEnergyLinearity(clust);
      clust->SetE(correctedEnergy);
    }

    // DISTANCE TO BAD CHANNELS -----------------------------------
    if (fRecalDistToBadChannels)
      fRecoUtils->RecalculateClusterDistanceToBadChannel(fGeom, fCaloCells, clust);  
  }

  fCaloClusters->Compress();
}

//________________________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::TrackClusterMatching(AliVCluster *c, TClonesArray *tarr)
{
  Float_t g[3]={0};
  c->GetPosition(g);
  TVector3 gpos(g);

  Double_t dEtaMin  = 1e9;
  Double_t dPhiMin  = 1e9;
  Int_t    imin     = -1;
  Double_t ceta     = gpos.Eta();
  Double_t cphi     = gpos.Phi();
  const Int_t ntrks = tarr->GetEntries();
  for(Int_t t = 0; t<ntrks; ++t) {
    AliVTrack *track = static_cast<AliVTrack*>(tarr->At(t));
    if (!track)
      continue;
    const AliExternalTrackParam *outp = track->GetOuterParam();
    if (!outp)
      continue;
    Double_t trkPos[3] = {0.,0.,0.};
    if (!outp->GetXYZ(trkPos)) 
      continue;
    TVector3 vec(trkPos[0],trkPos[1],trkPos[2]);
    Double_t veta = vec.Eta();
    Double_t vphi = vec.Phi();
    if(vphi<0)
      vphi += 2*TMath::Pi();
    if (TMath::Abs(veta)>0.75 || (vphi<70*TMath::DegToRad()) || (vphi>190*TMath::DegToRad()))
      continue;
    Double_t dR = vec.DeltaR(gpos);
    if(dR > 25) 
      continue;
    Float_t tmpEta=0, tmpPhi=0;
    if (0) {
      AliExternalTrackParam trkParTemp(*outp); // retrieve the starting point every time before the extrapolation
      Bool_t ret = fRecoUtils->ExtrapolateTrackToCluster(&trkParTemp, c, fRecoUtils->GetMass(), fRecoUtils->GetStep(), tmpEta, tmpPhi); 
      if (!ret)
	continue;
    } else {
      tmpEta = ceta - veta;
      tmpPhi = cphi - vphi;
    }
    if (TMath::Abs(tmpEta)<TMath::Abs(dEtaMin) && TMath::Abs(tmpPhi)<TMath::Abs(dPhiMin)) {
      dEtaMin = tmpEta;
      dPhiMin = tmpPhi;
      imin = t;
    }
  }
  c->SetEmcCpvDistance(imin);
  c->SetTrackDistance(dPhiMin, dEtaMin);
}

//________________________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::RecPoints2Clusters(TClonesArray *clus)
{
  // Cluster energy, global position, cells and their amplitude fractions are restored.
  
  // tracks array for track/cluster matching
  TClonesArray *tarr = 0;
  if (!fTrackName.IsNull()) {
    tarr = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTrackName));
    if (!tarr) {
      AliError(Form("Cannot get tracks named %s", fTrackName.Data()));
    }
  }
  
  const Int_t Ncls = fClusterArr->GetEntries();
  AliDebug(1, Form("total no of clusters %d", Ncls)); 
  for(Int_t i=0, nout=clus->GetEntries(); i < Ncls; ++i) {
    AliEMCALRecPoint *recpoint = static_cast<AliEMCALRecPoint*>(fClusterArr->At(i));
    Int_t ncells_true = 0;
    const Int_t ncells = recpoint->GetMultiplicity();
    UShort_t   absIds[ncells];  
    Double32_t ratios[ncells];
    Int_t *dlist = recpoint->GetDigitsList();
    Float_t *elist = recpoint->GetEnergiesList();
    Double_t mcEnergy = 0;
    for (Int_t c = 0; c < ncells; ++c) {
      AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->At(dlist[c]));
      absIds[ncells_true] = digit->GetId();
      ratios[ncells_true] = elist[c]/recpoint->GetEnergy();
      if (digit->GetIparent(1) > 0)
	mcEnergy += digit->GetDEParent(1)/recpoint->GetEnergy();
      ++ncells_true;
    }
    
    if (ncells_true < 1) {
      AliWarning("Skipping cluster with no cells");
      continue;
    }
    
    // calculate new cluster position
    TVector3 gpos;
    recpoint->GetGlobalPosition(gpos);
    Float_t g[3];
    gpos.GetXYZ(g);
    
    AliDebug(1, Form("energy %f", recpoint->GetEnergy()));
    
    AliVCluster *c = static_cast<AliVCluster*>(clus->New(nout++));
    c->SetType(AliVCluster::kEMCALClusterv1);
    c->SetE(recpoint->GetEnergy());
    c->SetPosition(g);
    c->SetNCells(ncells_true);
    c->SetCellsAbsId(absIds);
    c->SetCellsAmplitudeFraction(ratios);
    c->SetID(recpoint->GetUniqueID());
    c->SetDispersion(recpoint->GetDispersion());
    c->SetEmcCpvDistance(-1);
    c->SetChi2(-1);
    c->SetTOF(recpoint->GetTime()) ;     //time-of-flight
    c->SetNExMax(recpoint->GetNExMax()); //number of local maxima
    Float_t elipAxis[2];
    recpoint->GetElipsAxis(elipAxis);
    c->SetM02(elipAxis[0]*elipAxis[0]);
    c->SetM20(elipAxis[1]*elipAxis[1]);
    c->SetMCEnergyFraction(mcEnergy);

    //MC
    AliESDCaloCluster *esdClus = dynamic_cast<AliESDCaloCluster*>(c);
    if (esdClus) {
      Int_t  parentMult = 0;
      Int_t *parentList = recpoint->GetParents(parentMult);
      if (parentMult > 0) {
	TArrayI parents(parentMult, parentList);
	esdClus->AddLabels(parents); 
      }
    }
    else {
      AliAODCaloCluster *aodClus = dynamic_cast<AliAODCaloCluster*>(c);
      if (aodClus) {
	Int_t  parentMult = 0;
	Int_t *parentList = recpoint->GetParents(parentMult);
	aodClus->SetLabel(parentList, parentMult); 
      }
    }

    if (tarr)
      TrackClusterMatching(c, tarr);
  }
}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::UpdateCells()
{
  // Update cells in case re-calibration was done.
  if (!fCalibData&&!fSubBackground)
    return;

  const Int_t   ncells = fCaloCells->GetNumberOfCells();
  const Int_t   ndigis = fDigitsArr->GetEntries();
  if (ncells!=ndigis) {
    fCaloCells->DeleteContainer();
    fCaloCells->CreateContainer(ndigis);
  }
  for (Int_t idigit = 0; idigit < ndigis; ++idigit) {
    AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->At(idigit));
    Double_t cellAmplitude = digit->GetCalibAmp();
    Short_t cellNumber     = digit->GetId();
    Double_t cellTime      = digit->GetTime();
    fCaloCells->SetCell(idigit, cellNumber, cellAmplitude, cellTime);
  }
}

//________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::UpdateClusters()
{
  // Update cells in case re-calibration was done.
  
  const Int_t nents = fCaloClusters->GetEntries();
  for (Int_t i=0;i<nents;++i) {
    AliVCluster *c = static_cast<AliVCluster*>(fCaloClusters->At(i));
    if (!c)
      continue;
    if (c->IsEMCAL())
      delete fCaloClusters->RemoveAt(i);
  }

  fCaloClusters->Compress();
  
  RecPoints2Clusters(fCaloClusters);
}

//________________________________________________________________________________________
void AliAnalysisTaskEMCALClusterizeFast::Init()
{
  // Select clusterization/unfolding algorithm and set all the needed parameters.

  if (InputEvent()->GetRunNumber()==fRun)
    return;
  fRun = InputEvent()->GetRunNumber();

  if (fJustUnfold){
    // init the unfolding afterburner 
    delete fUnfolder;
    fUnfolder = new AliEMCALAfterBurnerUF(fRecParam->GetW0(),fRecParam->GetLocMaxCut(),fRecParam->GetMinECut());
    return;
  }

  if (fGeomName.Length()>0) 
    fGeom = AliEMCALGeometry::GetInstance(fGeomName);
  else
    fGeom = AliEMCALGeometry::GetInstance();
  if (!fGeom) {
    AliFatal("Geometry not available!!!");
    return;
  }

  if (!fGeomMatrixSet) {
    if (fLoadGeomMatrices) {
      for(Int_t mod=0; mod < fGeom->GetNumberOfSuperModules(); ++mod) {
        if (fGeomMatrix[mod]){
          if (DebugLevel() > 2) 
            fGeomMatrix[mod]->Print();
          fGeom->SetMisalMatrix(fGeomMatrix[mod],mod);  
        }
      }
    } else { // get matrix from file (work around bug in aliroot)
      for(Int_t mod=0; mod < fGeom->GetEMCGeometry()->GetNumberOfSuperModules(); ++mod) {
        const TGeoHMatrix *gm = 0;
        if (fEsd) {
          gm = fEsd->GetEMCALMatrix(mod);
        } else {
          AliAODHeader *aodheader = dynamic_cast<AliAODHeader*>(fAod->GetHeader());
          if(!aodheader) AliFatal("Not a standard AOD");
          if (aodheader) {
            gm = aodheader->GetEMCALMatrix(mod);
          }
        }
        if (gm) {
          if (DebugLevel() > 2) 
            gm->Print();
          fGeom->SetMisalMatrix(gm,mod);
        }
      }
    }
    fGeomMatrixSet=kTRUE;
  }
  
  // setup digit array if needed
  if (!fDigitsArr) {
    fDigitsArr = new TClonesArray("AliEMCALDigit", 1000);
    fDigitsArr->SetOwner(1);
  }

  // then setup clusterizer
  if (fClusterizer) {
    // avoid to delete digits array
    fClusterizer->SetDigitsArr(0);
    delete fClusterizer;
  }
  if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv1)
    fClusterizer = new AliEMCALClusterizerv1(fGeom);
  else if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerNxN) {
    AliEMCALClusterizerNxN *clusterizer = new AliEMCALClusterizerNxN(fGeom);
    clusterizer->SetNRowDiff(fRecParam->GetNRowDiff()); //MV: already done in AliEMCALClusterizer::InitParameters
    clusterizer->SetNColDiff(fRecParam->GetNColDiff()); //MV: already done in AliEMCALClusterizer::InitParameters
    fClusterizer = clusterizer;
  } 
  else if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv2) 
    fClusterizer = new AliEMCALClusterizerv2(fGeom);
  else if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerFW) {
    AliEMCALClusterizerFixedWindow *clusterizer = new AliEMCALClusterizerFixedWindow(fGeom);
    clusterizer->SetNphi(fNPhi);
    clusterizer->SetNeta(fNEta);
    clusterizer->SetShiftPhi(fShiftPhi);
    clusterizer->SetShiftEta(fShiftEta);
    clusterizer->SetTRUshift(fTRUShift);
    fClusterizer = clusterizer;
  }
  else {
    AliFatal(Form("Clusterizer < %d > not available", fRecParam->GetClusterizerFlag()));
  }
  fClusterizer->InitParameters(fRecParam);

  if ((!fCalibData&&fLoadCalib) || (!fPedestalData&&fLoadPed)) {
    AliCDBManager *cdb = AliCDBManager::Instance();
    if (!cdb->IsDefaultStorageSet() && !fOCDBpath.IsNull())
      cdb->SetDefaultStorage(fOCDBpath);
    if (fRun!=cdb->GetRun())
      cdb->SetRun(fRun);
  }
  if (!fCalibData&&fLoadCalib&&fRun>0) {
    AliCDBEntry *entry = static_cast<AliCDBEntry*>(AliCDBManager::Instance()->Get("EMCAL/Calib/Data"));
    if (entry) 
      fCalibData =  static_cast<AliEMCALCalibData*>(entry->GetObject());
    if (!fCalibData)
      AliFatal("Calibration parameters not found in CDB!");
  }
  if (!fPedestalData&&fLoadPed&&fRun>0) {
    AliCDBEntry *entry = static_cast<AliCDBEntry*>(AliCDBManager::Instance()->Get("EMCAL/Calib/Pedestals"));
    if (entry) 
      fPedestalData =  static_cast<AliCaloCalibPedestal*>(entry->GetObject());
  }
  if (fCalibData) {
    fClusterizer->SetInputCalibrated(kFALSE);   
    fClusterizer->SetCalibrationParameters(fCalibData);
  } else {
    fClusterizer->SetInputCalibrated(kTRUE);   
  }
  fClusterizer->SetCaloCalibPedestal(fPedestalData);
  fClusterizer->SetJustClusters(kTRUE);
  fClusterizer->SetDigitsArr(fDigitsArr);
  fClusterizer->SetOutput(0);
  fClusterArr = const_cast<TObjArray *>(fClusterizer->GetRecPoints());

  // Get the emcal cells
  if ((fInputCellType == kFEEData ||  fInputCellType == kFEEDataMCOnly || fInputCellType == kFEEDataExcludeMC) && !fCaloCells) {
    if (fCaloCellsName.IsNull()) {
      fCaloCells = InputEvent()->GetEMCALCells();
    }
    else {
      fCaloCells =  dynamic_cast<AliVCaloCells*>(InputEvent()->FindListObject(fCaloCellsName));
      if (!fCaloCells) 
	AliError(Form("%s: Could not retrieve cells %s!", GetName(), fCaloCellsName.Data()));
    }
    if (!fCaloCells)
      AliFatal("Could not get EMCal cells!");
  }

  // Set output clusters collection
  if (!fAttachClusters) {
    fCaloClusters = fOutputAODBranch;
    return;
  }

  if (!fCaloClusters) {
    if (fCaloClustersName.IsNull()) { //overwrite mode
      if (fEsd)
	fCaloClusters = static_cast<TClonesArray*>(InputEvent()->FindListObject("CaloClusters"));
      else if (fAod)
	fCaloClusters = static_cast<TClonesArray*>(InputEvent()->FindListObject("caloClusters"));
    }
    else {
      fCaloClusters = static_cast<TClonesArray*>(InputEvent()->FindListObject(fCaloClustersName));

      if (!fCaloClusters) {
	if (fEsd)
	  fCaloClusters = new TClonesArray("AliESDCaloCluster");
	else if (fAod)
	  fCaloClusters = new TClonesArray("AliAODCaloCluster");
	
	fCaloClusters->SetName(fCaloClustersName);
	InputEvent()->AddObject(fCaloClusters);
      }
    }

    if (!fCaloClusters)
      AliFatal("Could not get cluster collection!");

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