#include "AliMUONClusterFinderPeakCOG.h"
#include "AliMUONCluster.h"
#include "AliMUONPad.h"
#include "AliMpPad.h"
#include "AliMpVSegmentation.h"
#include "AliMpEncodePair.h"
#include "AliLog.h"
#include "AliRunLoader.h"
#include <Riostream.h>
#include <TH2.h>
#include <TMath.h>
using std::endl;
using std::cout;
ClassImp(AliMUONClusterFinderPeakCOG)
const Double_t AliMUONClusterFinderPeakCOG::fgkZeroSuppression = 6;
const Double_t AliMUONClusterFinderPeakCOG::fgkDistancePrecision = 1e-3;
const TVector2 AliMUONClusterFinderPeakCOG::fgkIncreaseSize(-AliMUONClusterFinderPeakCOG::fgkDistancePrecision,-AliMUONClusterFinderPeakCOG::fgkDistancePrecision);
const TVector2 AliMUONClusterFinderPeakCOG::fgkDecreaseSize(AliMUONClusterFinderPeakCOG::fgkDistancePrecision,AliMUONClusterFinderPeakCOG::fgkDistancePrecision);
const Int_t AliMUONClusterFinderPeakCOG::fgkZero = 0x0;
const Int_t AliMUONClusterFinderPeakCOG::fgkMustKeep = 0x1;
const Int_t AliMUONClusterFinderPeakCOG::fgkUseForFit = 0x10;
const Int_t AliMUONClusterFinderPeakCOG::fgkOver = 0x100;
const Int_t AliMUONClusterFinderPeakCOG::fgkModified = 0x1000;
const Int_t AliMUONClusterFinderPeakCOG::fgkCoupled = 0x10000;
AliMUONClusterFinderPeakCOG::AliMUONClusterFinderPeakCOG(Bool_t plot, AliMUONVClusterFinder* clusterFinder)
: AliMUONVClusterFinder(),
fPreClusterFinder(clusterFinder),
fPreCluster(0x0),
fClusterList(),
fEventNumber(0),
fDetElemId(-1),
fClusterNumber(0),
fHistAnode(0x0),
fPixArray(new TObjArray(20)),
fDebug(0),
fPlot(plot),
fNClusters(0),
fNAddVirtualPads(0)
{
fkSegmentation[1] = fkSegmentation[0] = 0x0;
if (fPlot) fDebug = 1;
}
AliMUONClusterFinderPeakCOG::~AliMUONClusterFinderPeakCOG()
{
delete fPixArray; fPixArray = 0;
delete fPreClusterFinder;
AliInfo(Form("Total clusters %d AddVirtualPad needed %d",
fNClusters,fNAddVirtualPads));
}
Bool_t
AliMUONClusterFinderPeakCOG::Prepare(Int_t detElemId, TObjArray* pads[2],
const AliMpArea& area,
const AliMpVSegmentation* seg[2])
{
for ( Int_t i = 0; i < 2; ++i )
{
fkSegmentation[i] = seg[i];
}
fDetElemId = detElemId;
AliRunLoader *runLoader = AliRunLoader::Instance();
fEventNumber = runLoader ? runLoader->GetEventNumber() : 0;
fClusterNumber = -1;
fClusterList.Delete();
AliDebug(3,Form("EVT %d DE %d",fEventNumber,fDetElemId));
if ( fPreClusterFinder->NeedSegmentation() )
{
return fPreClusterFinder->Prepare(detElemId,pads,area,seg);
}
else
{
return fPreClusterFinder->Prepare(detElemId,pads,area);
}
}
AliMUONCluster*
AliMUONClusterFinderPeakCOG::NextCluster()
{
TObject* o = fClusterList.At(++fClusterNumber);
if ( o != 0x0 ) return static_cast<AliMUONCluster*>(o);
fClusterList.Delete();
fClusterNumber = -1;
fPreCluster = fPreClusterFinder->NextCluster();
if (!fPreCluster)
{
return 0x0;
}
WorkOnPreCluster();
Int_t mult = fPreCluster->Multiplicity();
for ( Int_t i = 0; i < mult; ++i )
{
AliMUONPad* pad = fPreCluster->Pad(i);
if ( !pad->IsUsed() )
{
fPreClusterFinder->UsePad(*pad);
}
}
return NextCluster();
}
Bool_t
AliMUONClusterFinderPeakCOG::WorkOnPreCluster()
{
if (fDebug) {
cout << " *** Event # " << fEventNumber
<< " det. elem.: " << fDetElemId << endl;
for (Int_t j = 0; j < fPreCluster->Multiplicity(); ++j) {
AliMUONPad* pad = fPreCluster->Pad(j);
printf(" bbb %3d %1d %8.4f %8.4f %8.4f %8.4f %6.1f %3d %3d %2d %1d %1d \n",
j, pad->Cathode(), pad->Coord(0), pad->Coord(1), pad->DX()*2, pad->DY()*2,
pad->Charge(), pad->Ix(), pad->Iy(), pad->Status(), pad->IsReal(), pad->IsSaturated());
}
}
AliMUONCluster* cluster = CheckPrecluster(*fPreCluster);
if (!cluster) return kFALSE;
BuildPixArray(*cluster);
if ( fPixArray->GetLast() < 0 )
{
AliDebug(1,"No pixel for the above cluster");
delete cluster;
return kFALSE;
}
Int_t nMax = 1, localMax[100], maxPos[100] = {0};
Double_t maxVal[100];
nMax = FindLocalMaxima(fPixArray, localMax, maxVal);
if (nMax > 1) TMath::Sort(nMax, maxVal, maxPos, kTRUE);
for (Int_t i = 0; i < nMax; ++i)
{
FindCluster(*cluster,localMax, maxPos[i]);
}
delete cluster;
if (fPlot == 0) {
delete fHistAnode;
fHistAnode = 0x0;
}
return kTRUE;
}
Bool_t
AliMUONClusterFinderPeakCOG::Overlap(const AliMUONPad& pad, const AliMUONPad& pixel)
{
AliMUONPad tmp(pad.DetElemId(),pad.Cathode(),pad.Ix(),pad.Iy(),
pixel.Coord(0),pixel.Coord(1),
pixel.Size(0),pixel.Size(1),0);
return AliMUONPad::AreOverlapping(pad,tmp,fgkDecreaseSize);
}
AliMUONCluster*
AliMUONClusterFinderPeakCOG::CheckPrecluster(const AliMUONCluster& origCluster)
{
if ((origCluster.Multiplicity()==1 || origCluster.Multiplicity()==2) &&
origCluster.Charge(0)+origCluster.Charge(1) < 1.525)
{
return 0x0;
}
AliMUONCluster* cluster = new AliMUONCluster(origCluster);
AliDebug(2,"Start of CheckPreCluster=");
AliMUONCluster* rv(0x0);
if (cluster->Multiplicity(0) && cluster->Multiplicity(1))
{
rv = CheckPreclusterTwoCathodes(cluster);
}
else
{
rv = cluster;
}
return rv;
}
AliMUONCluster*
AliMUONClusterFinderPeakCOG::CheckPreclusterTwoCathodes(AliMUONCluster* cluster)
{
Int_t npad = cluster->Multiplicity();
Int_t* flags = new Int_t[npad];
for (Int_t j = 0; j < npad; ++j) flags[j] = 0;
for ( Int_t i = 0; i < npad; ++i)
{
AliMUONPad* padi = cluster->Pad(i);
if ( padi->Cathode() != 0 ) continue;
for (Int_t j = i+1; j < npad; ++j)
{
AliMUONPad* padj = cluster->Pad(j);
if ( padj->Cathode() != 1 ) continue;
if ( !AliMUONPad::AreOverlapping(*padi,*padj,fgkDecreaseSize) ) continue;
flags[i] = flags[j] = 1;
}
}
Int_t nFlags=0;
for (Int_t i = 0; i < npad; ++i)
{
if (!flags[i]) ++nFlags;
}
if (nFlags > 0)
{
if (fDebug) cout << " nFlags: " << nFlags << endl;
TObjArray toBeRemoved;
for (Int_t i = 0; i < npad; ++i)
{
AliMUONPad* pad = cluster->Pad(i);
if (flags[i]) continue;
Int_t cath = pad->Cathode();
Int_t cath1 = TMath::Even(cath);
AliMpPad mpPad
= fkSegmentation[cath1]->PadByPosition(pad->Position().X(),pad->Position().Y(),kFALSE);
if (!mpPad.IsValid()) continue;
if (nFlags == 1 && pad->Charge() < 3.05) continue;
AliDebug(2,Form("Releasing the following pad : de,cath,ix,iy %d,%d,%d,%d charge %e",
fDetElemId,pad->Cathode(),pad->Ix(),pad->Iy(),pad->Charge()));
toBeRemoved.AddLast(pad);
fPreCluster->Pad(i)->Release();
}
Int_t nRemove = toBeRemoved.GetEntriesFast();
for ( Int_t i = 0; i < nRemove; ++i )
{
cluster->RemovePad(static_cast<AliMUONPad*>(toBeRemoved.UncheckedAt(i)));
}
}
if ( !cluster->IsSaturated() && cluster->ChargeAsymmetry() > 1 )
{
Int_t cathode = cluster->MaxRawChargeCathode();
Int_t imin(-1);
Int_t imax(-1);
Double_t cmax(0);
Double_t cmin(1E9);
Int_t mult = cluster->Multiplicity();
for ( Int_t i = 0; i < mult; ++i )
{
AliMUONPad* pad = cluster->Pad(i);
if ( pad->Cathode() != cathode || !pad->IsReal() )
{
continue;
}
if ( pad->Charge() < cmin )
{
cmin = pad->Charge();
imin = i;
if (imax < 0) {
imax = imin;
cmax = cmin;
}
}
else if ( pad->Charge() > cmax )
{
cmax = pad->Charge();
imax = i;
}
}
AliDebug(2,Form("Pad imin,imax %d,%d cmin,cmax %e,%e",
imin,imax,cmin,cmax));
Double_t* dist = new Double_t[mult];
Double_t dxMin(1E9);
Double_t dyMin(1E9);
Double_t dmin(0);
AliMUONPad* padmax = cluster->Pad(imax);
for ( Int_t i = 0; i < mult; ++i )
{
dist[i] = 0.0;
if ( i == imax) continue;
AliMUONPad* pad = cluster->Pad(i);
if ( pad->Cathode() != cathode || !pad->IsReal() ) continue;
Double_t dx = (pad->X()-padmax->X())/padmax->DX()/2.0;
Double_t dy = (pad->Y()-padmax->Y())/padmax->DY()/2.0;
dist[i] = TMath::Sqrt(dx*dx+dy*dy);
if ( i == imin )
{
dmin = dist[i] + 1E-3;
dxMin = dx;
dyMin = dy;
}
}
TMath::Sort(mult,dist,flags,kFALSE);
Double_t xmax(-1), distPrev(999);
TObjArray toBeRemoved;
for ( Int_t i = 0; i < mult; ++i )
{
Int_t indx = flags[i];
AliMUONPad* pad = cluster->Pad(indx);
if ( pad->Cathode() != cathode || !pad->IsReal() ) continue;
if ( dist[indx] > dmin )
{
Double_t dx = (pad->X()-padmax->X())/padmax->DX()/2.0;
Double_t dy = (pad->Y()-padmax->Y())/padmax->DY()/2.0;
dx *= dxMin;
dy *= dyMin;
if (dx >= 0 && dy >= 0) continue;
if (TMath::Abs(dx) > TMath::Abs(dy) && dx >= 0) continue;
if (TMath::Abs(dy) > TMath::Abs(dx) && dy >= 0) continue;
}
if (dist[indx] > distPrev + 1) break;
if ( pad->Charge() <= cmax || TMath::Abs(dist[indx]-xmax) < 1E-3 )
{
if (TMath::Abs(dist[indx]-xmax) < 1.e-3)
{
cmax = TMath::Max(pad->Charge(),cmax);
}
else
{
cmax = pad->Charge();
}
xmax = dist[indx];
distPrev = dist[indx];
AliDebug(2,Form("Releasing the following pad : de,cath,ix,iy %d,%d,%d,%d charge %e",
fDetElemId,pad->Cathode(),pad->Ix(),pad->Iy(),
pad->Charge()));
toBeRemoved.AddLast(pad);
fPreCluster->Pad(indx)->Release();
}
}
Int_t nRemove = toBeRemoved.GetEntriesFast();
for ( Int_t i = 0; i < nRemove; ++i )
{
cluster->RemovePad(static_cast<AliMUONPad*>(toBeRemoved.UncheckedAt(i)));
}
delete[] dist;
}
delete[] flags;
AliDebug(2,"End of CheckPreClusterTwoCathodes=");
return cluster;
}
void
AliMUONClusterFinderPeakCOG::CheckOverlaps()
{
Int_t nPix = fPixArray->GetLast()+1;
Int_t dummy(0);
for ( Int_t i = 0; i < nPix; ++i )
{
AliMUONPad* pixelI = Pixel(i);
AliMUONPad pi(dummy,dummy,dummy,dummy,
pixelI->Coord(0),pixelI->Coord(1),
pixelI->Size(0),pixelI->Size(1),0.0);
for ( Int_t j = i+1; j < nPix; ++j )
{
AliMUONPad* pixelJ = Pixel(j);
AliMUONPad pj(dummy,dummy,dummy,dummy,
pixelJ->Coord(0),pixelJ->Coord(1),
pixelJ->Size(0),pixelJ->Size(1),0.0);
AliMpArea area;
if ( AliMUONPad::AreOverlapping(pi,pj,fgkDecreaseSize,area) )
{
AliInfo(Form("The following 2 pixels (%d and %d) overlap !",i,j));
}
}
}
}
void AliMUONClusterFinderPeakCOG::BuildPixArray(AliMUONCluster& cluster)
{
Int_t npad = cluster.Multiplicity();
if (npad<=0)
{
AliWarning("Got no pad at all ?!");
}
fPixArray->Delete();
BuildPixArrayOneCathode(cluster);
}
void AliMUONClusterFinderPeakCOG::BuildPixArrayOneCathode(AliMUONCluster& cluster)
{
TVector2 dim = cluster.MinPadDimensions (-1, kFALSE);
Double_t width[2] = {dim.X(), dim.Y()}, xy0[2] = { 0.0, 0.0 };
Int_t found[2] = {0}, mult = cluster.Multiplicity();
for ( Int_t i = 0; i < mult; ++i) {
AliMUONPad* pad = cluster.Pad(i);
for (Int_t j = 0; j < 2; ++j) {
if (found[j] == 0 && TMath::Abs(pad->Size(j)-width[j]) < fgkDistancePrecision) {
xy0[j] = pad->Coord(j);
found[j] = 1;
}
}
if (found[0] && found[1]) break;
}
Double_t min[2], max[2];
Int_t cath0 = 0, cath1 = 1;
if (cluster.Multiplicity(0) == 0) cath0 = 1;
else if (cluster.Multiplicity(1) == 0) cath1 = 0;
Double_t leftDownX, leftDownY;
cluster.Area(cath0).LeftDownCorner(leftDownX, leftDownY);
Double_t rightUpX, rightUpY;
cluster.Area(cath0).RightUpCorner(rightUpX, rightUpY);
min[0] = leftDownX;
min[1] = leftDownY;
max[0] = rightUpX;
max[1] = rightUpY;
if (cath1 != cath0) {
cluster.Area(cath1).LeftDownCorner(leftDownX, leftDownY);
cluster.Area(cath1).RightUpCorner(rightUpX, rightUpY);
min[0] = TMath::Max (min[0], leftDownX);
min[1] = TMath::Max (min[1], leftDownY);
max[0] = TMath::Min (max[0], rightUpX);
max[1] = TMath::Min (max[1], rightUpY);
}
Int_t nbins[2];
for (Int_t i = 0; i < 2; ++i) {
Double_t dist = (min[i] - xy0[i]) / width[i] / 2;
if (TMath::Abs(dist) < 1.e-6) dist = -1.e-6;
min[i] = xy0[i] + (TMath::Nint(dist-TMath::Sign(1.e-6,dist))
+ TMath::Sign(0.5,dist)) * width[i] * 2;
nbins[i] = TMath::Nint ((max[i] - min[i]) / width[i] / 2);
if (nbins[i] == 0) ++nbins[i];
max[i] = min[i] + nbins[i] * width[i] * 2;
}
TH2D *hist1 = new TH2D ("Grid", "", nbins[0], min[0], max[0], nbins[1], min[1], max[1]);
TH2D *hist2 = new TH2D ("Entries", "", nbins[0], min[0], max[0], nbins[1], min[1], max[1]);
TAxis *xaxis = hist1->GetXaxis();
TAxis *yaxis = hist1->GetYaxis();
for ( Int_t i = 0; i < mult; ++i) {
AliMUONPad* pad = cluster.Pad(i);
Int_t ix0 = xaxis->FindBin(pad->X());
Int_t iy0 = yaxis->FindBin(pad->Y());
PadOverHist(0, ix0, iy0, pad, hist1, hist2);
}
for (Int_t i = 1; i <= nbins[0]; ++i) {
Double_t x = xaxis->GetBinCenter(i);
for (Int_t j = 1; j <= nbins[1]; ++j) {
if (hist2->GetBinContent(hist2->GetBin(i,j)) < 0.01525) continue;
if (cath0 != cath1) {
Double_t cont = hist2->GetBinContent(hist2->GetBin(i,j));
if (cont < 999.) continue;
if (cont-Int_t(cont/1000.)*1000. < 0.07625) continue;
}
Double_t y = yaxis->GetBinCenter(j);
Double_t charge = hist1->GetBinContent(hist1->GetBin(i,j));
AliMUONPad* pixPtr = new AliMUONPad(x, y, width[0], width[1], charge);
fPixArray->Add(pixPtr);
}
}
delete hist1;
delete hist2;
}
void AliMUONClusterFinderPeakCOG::PadOverHist(Int_t idir, Int_t ix0, Int_t iy0, AliMUONPad *pad,
TH2D *hist1, TH2D *hist2)
{
TAxis *axis = idir == 0 ? hist1->GetXaxis() : hist1->GetYaxis();
Int_t nbins = axis->GetNbins(), cath = pad->Cathode();
Double_t bin = axis->GetBinWidth(1), amask = TMath::Power(1000.,cath*1.);
Int_t nbinPad = (Int_t)(pad->Size(idir)/bin*2+fgkDistancePrecision) + 1;
for (Int_t i = 0; i < nbinPad; ++i) {
Int_t ixy = idir == 0 ? ix0 + i : iy0 + i;
if (ixy > nbins) break;
Double_t lowEdge = axis->GetBinLowEdge(ixy);
if (lowEdge + fgkDistancePrecision > pad->Coord(idir) + pad->Size(idir)) break;
if (idir == 0) PadOverHist(1, ixy, iy0, pad, hist1, hist2);
else {
Double_t cont = pad->Charge();
if (hist2->GetBinContent(hist2->GetBin(ix0, ixy)) > 0.01525)
cont = TMath::Min (hist1->GetBinContent(hist1->GetBin(ix0, ixy)), cont)
+ TMath::Min (TMath::Max(hist1->GetBinContent(hist1->GetBin(ix0, ixy)),cont)*0.1, 1.525);
hist1->SetBinContent(hist1->GetBin(ix0, ixy), cont);
hist2->SetBinContent(hist2->GetBin(ix0, ixy), hist2->GetBinContent(hist2->GetBin(ix0, ixy))+amask);
}
}
for (Int_t i = -1; i > -nbinPad; --i) {
Int_t ixy = idir == 0 ? ix0 + i : iy0 + i;
if (ixy < 1) break;
Double_t upEdge = axis->GetBinUpEdge(ixy);
if (upEdge - fgkDistancePrecision < pad->Coord(idir) - pad->Size(idir)) break;
if (idir == 0) PadOverHist(1, ixy, iy0, pad, hist1, hist2);
else {
Double_t cont = pad->Charge();
if (hist2->GetBinContent(hist2->GetBin(ix0, ixy)) > 0.01525)
cont = TMath::Min (hist1->GetBinContent(hist1->GetBin(ix0, ixy)), cont)
+ TMath::Min (TMath::Max(hist1->GetBinContent(hist1->GetBin(ix0, ixy)),cont)*0.1,1.525);
hist1->SetBinContent(hist1->GetBin(ix0, ixy), cont);
hist2->SetBinContent( hist2->GetBin(ix0, ixy), hist2->GetBinContent(hist2->GetBin(ix0, ixy))+amask);
}
}
}
Int_t AliMUONClusterFinderPeakCOG::FindLocalMaxima(TObjArray *pixArray, Int_t *localMax, Double_t *maxVal)
{
AliDebug(1,Form("nPix=%d",pixArray->GetLast()+1));
delete fHistAnode;
Double_t xylim[4] = {999, 999, 999, 999};
Int_t nPix = pixArray->GetEntriesFast();
if ( nPix <= 0 ) return 0;
AliMUONPad *pixPtr = 0;
for (Int_t ipix = 0; ipix < nPix; ++ipix) {
pixPtr = (AliMUONPad*) pixArray->UncheckedAt(ipix);
for (Int_t i = 0; i < 4; ++i)
xylim[i] = TMath::Min (xylim[i], (i%2 ? -1 : 1)*pixPtr->Coord(i/2));
}
for (Int_t i = 0; i < 4; ++i) xylim[i] -= pixPtr->Size(i/2);
Int_t nx = TMath::Nint ((-xylim[1]-xylim[0])/pixPtr->Size(0)/2);
Int_t ny = TMath::Nint ((-xylim[3]-xylim[2])/pixPtr->Size(1)/2);
if (pixArray == fPixArray) fHistAnode = new TH2D("anode","anode",nx,xylim[0],-xylim[1],ny,xylim[2],-xylim[3]);
else fHistAnode = new TH2D("anode1","anode1",nx,xylim[0],-xylim[1],ny,xylim[2],-xylim[3]);
for (Int_t ipix = 0; ipix < nPix; ++ipix) {
pixPtr = (AliMUONPad*) pixArray->UncheckedAt(ipix);
fHistAnode->Fill(pixPtr->Coord(0), pixPtr->Coord(1), pixPtr->Charge());
}
Int_t nMax = 0, indx, nxy = ny * nx;
Int_t *isLocalMax = new Int_t[nxy];
for (Int_t i = 0; i < nxy; ++i) isLocalMax[i] = 0;
for (Int_t i = 1; i <= ny; ++i) {
indx = (i-1) * nx;
for (Int_t j = 1; j <= nx; ++j) {
if (fHistAnode->GetBinContent(fHistAnode->GetBin(j,i)) < 0.07625) continue;
if (isLocalMax[indx+j-1] != 0) continue;
FlagLocalMax(fHistAnode, i, j, isLocalMax);
}
}
for (Int_t i = 1; i <= ny; ++i) {
indx = (i-1) * nx;
for (Int_t j = 1; j <= nx; ++j) {
if (isLocalMax[indx+j-1] > 0) {
localMax[nMax] = indx + j - 1;
maxVal[nMax++] = fHistAnode->GetBinContent(fHistAnode->GetBin(j,i));
if (nMax > 99) break;
}
}
if (nMax > 99) {
AliError(" Too many local maxima !!!");
break;
}
}
if (fDebug) cout << " Local max: " << nMax << endl;
delete [] isLocalMax;
return nMax;
}
void AliMUONClusterFinderPeakCOG::FlagLocalMax(TH2D *hist, Int_t i, Int_t j, Int_t *isLocalMax)
{
Int_t nx = hist->GetNbinsX();
Int_t ny = hist->GetNbinsY();
Int_t cont = TMath::Nint (hist->GetBinContent(hist->GetBin(j,i)));
Int_t cont1 = 0, indx = (i-1)*nx+j-1, indx1 = 0, indx2 = 0;
Int_t ie = i + 2, je = j + 2;
for (Int_t i1 = i-1; i1 < ie; ++i1) {
if (i1 < 1 || i1 > ny) continue;
indx1 = (i1 - 1) * nx;
for (Int_t j1 = j-1; j1 < je; ++j1) {
if (j1 < 1 || j1 > nx) continue;
if (i == i1 && j == j1) continue;
indx2 = indx1 + j1 - 1;
cont1 = TMath::Nint (hist->GetBinContent(hist->GetBin(j1,i1)));
if (cont < cont1) { isLocalMax[indx] = -1; return; }
else if (cont > cont1) isLocalMax[indx2] = -1;
else {
isLocalMax[indx] = 1;
if (isLocalMax[indx2] == 0) {
FlagLocalMax(hist, i1, j1, isLocalMax);
if (isLocalMax[indx2] < 0) { isLocalMax[indx] = -1; return; }
else isLocalMax[indx2] = -1;
}
}
}
}
isLocalMax[indx] = 1;
}
void AliMUONClusterFinderPeakCOG::FindCluster(AliMUONCluster& cluster,
const Int_t *localMax, Int_t iMax)
{
Int_t nx = fHistAnode->GetNbinsX();
Int_t ic = localMax[iMax] / nx + 1;
Int_t jc = localMax[iMax] % nx + 1;
Int_t nSides = 2;
if (cluster.Multiplicity(0) == 0 || cluster.Multiplicity(1) == 0) nSides = 1;
TVector2 dim0 = cluster.MinPadDimensions(0, -1, kFALSE);
TVector2 dim1 = cluster.MinPadDimensions(1, -1, kFALSE);
Int_t nonb[2] = {1, 0};
if (nSides == 1 || dim0.X() < dim1.X() - fgkDistancePrecision) {
nonb[0] = 0;
nonb[1] = 1;
}
Double_t wx = fHistAnode->GetXaxis()->GetBinWidth(1)/2;
Double_t wy = fHistAnode->GetYaxis()->GetBinWidth(1)/2;
Double_t yc = fHistAnode->GetYaxis()->GetBinCenter(ic);
Double_t xc = fHistAnode->GetXaxis()->GetBinCenter(jc);
Double_t cont = fHistAnode->GetBinContent(fHistAnode->GetBin(jc,ic));
AliMUONPad pixel(xc, yc, wx, wy, cont);
if (fDebug) pixel.Print("full");
Int_t npad = cluster.Multiplicity();
Double_t qMax[2] = {0};
AliMUONPad *matrix[2][3] = {{0x0,0x0,0x0},{0x0,0x0,0x0}};
for (Int_t j = 0; j < npad; ++j)
{
AliMUONPad* pad = cluster.Pad(j);
if ( Overlap(*pad,pixel) )
{
if (fDebug) { cout << j << " "; pad->Print("full"); }
if (pad->Charge() > qMax[pad->Cathode()]) {
qMax[pad->Cathode()] = pad->Charge();
matrix[pad->Cathode()][1] = pad;
if (nSides == 1) matrix[!pad->Cathode()][1] = pad;
}
}
}
for (Int_t j = 0; j < npad; ++j)
{
AliMUONPad* pad = cluster.Pad(j);
Int_t cath = pad->Cathode();
if (pad == matrix[cath][1]) continue;
Int_t nLoops = 3 - nSides;
for (Int_t k = 0; k < nLoops; ++k) {
Int_t cath1 = cath;
if (k) cath1 = !cath;
Double_t dist = pad->Coord(nonb[cath1]) - matrix[cath][1]->Coord(nonb[cath1]);
Double_t dir = TMath::Sign (1., dist);
dist = TMath::Abs(dist) - pad->Size(nonb[cath1]) - matrix[cath][1]->Size(nonb[cath1]);
if (TMath::Abs(dist) < fgkDistancePrecision) {
dist = pad->Coord(!nonb[cath1]) - matrix[cath1][1]->Coord(!nonb[cath1]);
if (TMath::Abs(dist) >
TMath::Max(pad->Size(!nonb[cath1]), matrix[cath1][1]->Size(!nonb[cath1])) - fgkDistancePrecision) break;
Int_t idir = TMath::Nint (dir);
if (matrix[cath1][1+idir] == 0x0) matrix[cath1][1+idir] = pad;
else if (pad->Charge() > matrix[cath1][1+idir]->Charge()) matrix[cath1][1+idir] = pad;
break;
}
}
}
Double_t coord[2] = {0.}, qAver = 0.;
for (Int_t i = 0; i < 2; ++i) {
Double_t q = 0.;
Double_t coordQ = 0.;
Int_t cath = matrix[i][1]->Cathode();
if (i && nSides == 1) cath = !cath;
for (Int_t j = 0; j < 3; ++j) {
if (matrix[i][j] == 0x0) continue;
Double_t dq = matrix[i][j]->Charge();
q += dq;
coordQ += dq * matrix[i][j]->Coord(nonb[cath]);
}
coord[cath] = coordQ / q;
qAver = TMath::Max (qAver, q);
}
if ( qAver >= 2.135 )
{
AliMUONCluster* cluster1 = new AliMUONCluster(cluster);
cluster1->SetCharge(qAver,qAver);
if (nonb[0] == 1)
cluster1->SetPosition(TVector2(coord[1],coord[0]),TVector2(0.,0.));
else
cluster1->SetPosition(TVector2(coord[0],coord[1]),TVector2(0.,0.));
cluster1->SetChi2(0.);
AliDebug(2,Form("Adding RawCluster detElemId %4d mult %2d charge %5d (xl,yl)=(%9.6g,%9.6g)",
fDetElemId,cluster1->Multiplicity(),(Int_t)cluster1->Charge(),
cluster1->Position().X(),cluster1->Position().Y()));
fClusterList.Add(cluster1);
}
}
AliMUONClusterFinderPeakCOG&
AliMUONClusterFinderPeakCOG::operator=(const AliMUONClusterFinderPeakCOG& rhs)
{
if (this == &rhs) return *this;
AliFatal("Not implemented.");
return *this;
}
void AliMUONClusterFinderPeakCOG::PadsInXandY(AliMUONCluster& cluster,
Int_t &nInX, Int_t &nInY) const
{
Int_t statusToTest = fgkUseForFit;
if ( nInX < 0 ) statusToTest = fgkZero;
Bool_t mustMatch(kTRUE);
Long_t cn = cluster.NofPads(statusToTest,mustMatch);
nInX = AliMp::PairFirst(cn);
nInY = AliMp::PairSecond(cn);
}
void AliMUONClusterFinderPeakCOG::RemovePixel(Int_t i)
{
AliMUONPad* pixPtr = Pixel(i);
fPixArray->RemoveAt(i);
delete pixPtr;
}
AliMUONPad*
AliMUONClusterFinderPeakCOG::Pixel(Int_t i) const
{
return static_cast<AliMUONPad*>(fPixArray->UncheckedAt(i));
}
void
AliMUONClusterFinderPeakCOG::Print(Option_t* what) const
{
TString swhat(what);
swhat.ToLower();
if ( swhat.Contains("precluster") )
{
if ( fPreCluster) fPreCluster->Print();
}
}
AliMUONClusterFinderPeakCOG.cxx:1 AliMUONClusterFinderPeakCOG.cxx:2 AliMUONClusterFinderPeakCOG.cxx:3 AliMUONClusterFinderPeakCOG.cxx:4 AliMUONClusterFinderPeakCOG.cxx:5 AliMUONClusterFinderPeakCOG.cxx:6 AliMUONClusterFinderPeakCOG.cxx:7 AliMUONClusterFinderPeakCOG.cxx:8 AliMUONClusterFinderPeakCOG.cxx:9 AliMUONClusterFinderPeakCOG.cxx:10 AliMUONClusterFinderPeakCOG.cxx:11 AliMUONClusterFinderPeakCOG.cxx:12 AliMUONClusterFinderPeakCOG.cxx:13 AliMUONClusterFinderPeakCOG.cxx:14 AliMUONClusterFinderPeakCOG.cxx:15 AliMUONClusterFinderPeakCOG.cxx:16 AliMUONClusterFinderPeakCOG.cxx:17 AliMUONClusterFinderPeakCOG.cxx:18 AliMUONClusterFinderPeakCOG.cxx:19 AliMUONClusterFinderPeakCOG.cxx:20 AliMUONClusterFinderPeakCOG.cxx:21 AliMUONClusterFinderPeakCOG.cxx:22 AliMUONClusterFinderPeakCOG.cxx:23 AliMUONClusterFinderPeakCOG.cxx:24 AliMUONClusterFinderPeakCOG.cxx:25 AliMUONClusterFinderPeakCOG.cxx:26 AliMUONClusterFinderPeakCOG.cxx:27 AliMUONClusterFinderPeakCOG.cxx:28 AliMUONClusterFinderPeakCOG.cxx:29 AliMUONClusterFinderPeakCOG.cxx:30 AliMUONClusterFinderPeakCOG.cxx:31 AliMUONClusterFinderPeakCOG.cxx:32 AliMUONClusterFinderPeakCOG.cxx:33 AliMUONClusterFinderPeakCOG.cxx:34 AliMUONClusterFinderPeakCOG.cxx:35 AliMUONClusterFinderPeakCOG.cxx:36 AliMUONClusterFinderPeakCOG.cxx:37 AliMUONClusterFinderPeakCOG.cxx:38 AliMUONClusterFinderPeakCOG.cxx:39 AliMUONClusterFinderPeakCOG.cxx:40 AliMUONClusterFinderPeakCOG.cxx:41 AliMUONClusterFinderPeakCOG.cxx:42 AliMUONClusterFinderPeakCOG.cxx:43 AliMUONClusterFinderPeakCOG.cxx:44 AliMUONClusterFinderPeakCOG.cxx:45 AliMUONClusterFinderPeakCOG.cxx:46 AliMUONClusterFinderPeakCOG.cxx:47 AliMUONClusterFinderPeakCOG.cxx:48 AliMUONClusterFinderPeakCOG.cxx:49 AliMUONClusterFinderPeakCOG.cxx:50 AliMUONClusterFinderPeakCOG.cxx:51 AliMUONClusterFinderPeakCOG.cxx:52 AliMUONClusterFinderPeakCOG.cxx:53 AliMUONClusterFinderPeakCOG.cxx:54 AliMUONClusterFinderPeakCOG.cxx:55 AliMUONClusterFinderPeakCOG.cxx:56 AliMUONClusterFinderPeakCOG.cxx:57 AliMUONClusterFinderPeakCOG.cxx:58 AliMUONClusterFinderPeakCOG.cxx:59 AliMUONClusterFinderPeakCOG.cxx:60 AliMUONClusterFinderPeakCOG.cxx:61 AliMUONClusterFinderPeakCOG.cxx:62 AliMUONClusterFinderPeakCOG.cxx:63 AliMUONClusterFinderPeakCOG.cxx:64 AliMUONClusterFinderPeakCOG.cxx:65 AliMUONClusterFinderPeakCOG.cxx:66 AliMUONClusterFinderPeakCOG.cxx:67 AliMUONClusterFinderPeakCOG.cxx:68 AliMUONClusterFinderPeakCOG.cxx:69 AliMUONClusterFinderPeakCOG.cxx:70 AliMUONClusterFinderPeakCOG.cxx:71 AliMUONClusterFinderPeakCOG.cxx:72 AliMUONClusterFinderPeakCOG.cxx:73 AliMUONClusterFinderPeakCOG.cxx:74 AliMUONClusterFinderPeakCOG.cxx:75 AliMUONClusterFinderPeakCOG.cxx:76 AliMUONClusterFinderPeakCOG.cxx:77 AliMUONClusterFinderPeakCOG.cxx:78 AliMUONClusterFinderPeakCOG.cxx:79 AliMUONClusterFinderPeakCOG.cxx:80 AliMUONClusterFinderPeakCOG.cxx:81 AliMUONClusterFinderPeakCOG.cxx:82 AliMUONClusterFinderPeakCOG.cxx:83 AliMUONClusterFinderPeakCOG.cxx:84 AliMUONClusterFinderPeakCOG.cxx:85 AliMUONClusterFinderPeakCOG.cxx:86 AliMUONClusterFinderPeakCOG.cxx:87 AliMUONClusterFinderPeakCOG.cxx:88 AliMUONClusterFinderPeakCOG.cxx:89 AliMUONClusterFinderPeakCOG.cxx:90 AliMUONClusterFinderPeakCOG.cxx:91 AliMUONClusterFinderPeakCOG.cxx:92 AliMUONClusterFinderPeakCOG.cxx:93 AliMUONClusterFinderPeakCOG.cxx:94 AliMUONClusterFinderPeakCOG.cxx:95 AliMUONClusterFinderPeakCOG.cxx:96 AliMUONClusterFinderPeakCOG.cxx:97 AliMUONClusterFinderPeakCOG.cxx:98 AliMUONClusterFinderPeakCOG.cxx:99 AliMUONClusterFinderPeakCOG.cxx:100 AliMUONClusterFinderPeakCOG.cxx:101 AliMUONClusterFinderPeakCOG.cxx:102 AliMUONClusterFinderPeakCOG.cxx:103 AliMUONClusterFinderPeakCOG.cxx:104 AliMUONClusterFinderPeakCOG.cxx:105 AliMUONClusterFinderPeakCOG.cxx:106 AliMUONClusterFinderPeakCOG.cxx:107 AliMUONClusterFinderPeakCOG.cxx:108 AliMUONClusterFinderPeakCOG.cxx:109 AliMUONClusterFinderPeakCOG.cxx:110 AliMUONClusterFinderPeakCOG.cxx:111 AliMUONClusterFinderPeakCOG.cxx:112 AliMUONClusterFinderPeakCOG.cxx:113 AliMUONClusterFinderPeakCOG.cxx:114 AliMUONClusterFinderPeakCOG.cxx:115 AliMUONClusterFinderPeakCOG.cxx:116 AliMUONClusterFinderPeakCOG.cxx:117 AliMUONClusterFinderPeakCOG.cxx:118 AliMUONClusterFinderPeakCOG.cxx:119 AliMUONClusterFinderPeakCOG.cxx:120 AliMUONClusterFinderPeakCOG.cxx:121 AliMUONClusterFinderPeakCOG.cxx:122 AliMUONClusterFinderPeakCOG.cxx:123 AliMUONClusterFinderPeakCOG.cxx:124 AliMUONClusterFinderPeakCOG.cxx:125 AliMUONClusterFinderPeakCOG.cxx:126 AliMUONClusterFinderPeakCOG.cxx:127 AliMUONClusterFinderPeakCOG.cxx:128 AliMUONClusterFinderPeakCOG.cxx:129 AliMUONClusterFinderPeakCOG.cxx:130 AliMUONClusterFinderPeakCOG.cxx:131 AliMUONClusterFinderPeakCOG.cxx:132 AliMUONClusterFinderPeakCOG.cxx:133 AliMUONClusterFinderPeakCOG.cxx:134 AliMUONClusterFinderPeakCOG.cxx:135 AliMUONClusterFinderPeakCOG.cxx:136 AliMUONClusterFinderPeakCOG.cxx:137 AliMUONClusterFinderPeakCOG.cxx:138 AliMUONClusterFinderPeakCOG.cxx:139 AliMUONClusterFinderPeakCOG.cxx:140 AliMUONClusterFinderPeakCOG.cxx:141 AliMUONClusterFinderPeakCOG.cxx:142 AliMUONClusterFinderPeakCOG.cxx:143 AliMUONClusterFinderPeakCOG.cxx:144 AliMUONClusterFinderPeakCOG.cxx:145 AliMUONClusterFinderPeakCOG.cxx:146 AliMUONClusterFinderPeakCOG.cxx:147 AliMUONClusterFinderPeakCOG.cxx:148 AliMUONClusterFinderPeakCOG.cxx:149 AliMUONClusterFinderPeakCOG.cxx:150 AliMUONClusterFinderPeakCOG.cxx:151 AliMUONClusterFinderPeakCOG.cxx:152 AliMUONClusterFinderPeakCOG.cxx:153 AliMUONClusterFinderPeakCOG.cxx:154 AliMUONClusterFinderPeakCOG.cxx:155 AliMUONClusterFinderPeakCOG.cxx:156 AliMUONClusterFinderPeakCOG.cxx:157 AliMUONClusterFinderPeakCOG.cxx:158 AliMUONClusterFinderPeakCOG.cxx:159 AliMUONClusterFinderPeakCOG.cxx:160 AliMUONClusterFinderPeakCOG.cxx:161 AliMUONClusterFinderPeakCOG.cxx:162 AliMUONClusterFinderPeakCOG.cxx:163 AliMUONClusterFinderPeakCOG.cxx:164 AliMUONClusterFinderPeakCOG.cxx:165 AliMUONClusterFinderPeakCOG.cxx:166 AliMUONClusterFinderPeakCOG.cxx:167 AliMUONClusterFinderPeakCOG.cxx:168 AliMUONClusterFinderPeakCOG.cxx:169 AliMUONClusterFinderPeakCOG.cxx:170 AliMUONClusterFinderPeakCOG.cxx:171 AliMUONClusterFinderPeakCOG.cxx:172 AliMUONClusterFinderPeakCOG.cxx:173 AliMUONClusterFinderPeakCOG.cxx:174 AliMUONClusterFinderPeakCOG.cxx:175 AliMUONClusterFinderPeakCOG.cxx:176 AliMUONClusterFinderPeakCOG.cxx:177 AliMUONClusterFinderPeakCOG.cxx:178 AliMUONClusterFinderPeakCOG.cxx:179 AliMUONClusterFinderPeakCOG.cxx:180 AliMUONClusterFinderPeakCOG.cxx:181 AliMUONClusterFinderPeakCOG.cxx:182 AliMUONClusterFinderPeakCOG.cxx:183 AliMUONClusterFinderPeakCOG.cxx:184 AliMUONClusterFinderPeakCOG.cxx:185 AliMUONClusterFinderPeakCOG.cxx:186 AliMUONClusterFinderPeakCOG.cxx:187 AliMUONClusterFinderPeakCOG.cxx:188 AliMUONClusterFinderPeakCOG.cxx:189 AliMUONClusterFinderPeakCOG.cxx:190 AliMUONClusterFinderPeakCOG.cxx:191 AliMUONClusterFinderPeakCOG.cxx:192 AliMUONClusterFinderPeakCOG.cxx:193 AliMUONClusterFinderPeakCOG.cxx:194 AliMUONClusterFinderPeakCOG.cxx:195 AliMUONClusterFinderPeakCOG.cxx:196 AliMUONClusterFinderPeakCOG.cxx:197 AliMUONClusterFinderPeakCOG.cxx:198 AliMUONClusterFinderPeakCOG.cxx:199 AliMUONClusterFinderPeakCOG.cxx:200 AliMUONClusterFinderPeakCOG.cxx:201 AliMUONClusterFinderPeakCOG.cxx:202 AliMUONClusterFinderPeakCOG.cxx:203 AliMUONClusterFinderPeakCOG.cxx:204 AliMUONClusterFinderPeakCOG.cxx:205 AliMUONClusterFinderPeakCOG.cxx:206 AliMUONClusterFinderPeakCOG.cxx:207 AliMUONClusterFinderPeakCOG.cxx:208 AliMUONClusterFinderPeakCOG.cxx:209 AliMUONClusterFinderPeakCOG.cxx:210 AliMUONClusterFinderPeakCOG.cxx:211 AliMUONClusterFinderPeakCOG.cxx:212 AliMUONClusterFinderPeakCOG.cxx:213 AliMUONClusterFinderPeakCOG.cxx:214 AliMUONClusterFinderPeakCOG.cxx:215 AliMUONClusterFinderPeakCOG.cxx:216 AliMUONClusterFinderPeakCOG.cxx:217 AliMUONClusterFinderPeakCOG.cxx:218 AliMUONClusterFinderPeakCOG.cxx:219 AliMUONClusterFinderPeakCOG.cxx:220 AliMUONClusterFinderPeakCOG.cxx:221 AliMUONClusterFinderPeakCOG.cxx:222 AliMUONClusterFinderPeakCOG.cxx:223 AliMUONClusterFinderPeakCOG.cxx:224 AliMUONClusterFinderPeakCOG.cxx:225 AliMUONClusterFinderPeakCOG.cxx:226 AliMUONClusterFinderPeakCOG.cxx:227 AliMUONClusterFinderPeakCOG.cxx:228 AliMUONClusterFinderPeakCOG.cxx:229 AliMUONClusterFinderPeakCOG.cxx:230 AliMUONClusterFinderPeakCOG.cxx:231 AliMUONClusterFinderPeakCOG.cxx:232 AliMUONClusterFinderPeakCOG.cxx:233 AliMUONClusterFinderPeakCOG.cxx:234 AliMUONClusterFinderPeakCOG.cxx:235 AliMUONClusterFinderPeakCOG.cxx:236 AliMUONClusterFinderPeakCOG.cxx:237 AliMUONClusterFinderPeakCOG.cxx:238 AliMUONClusterFinderPeakCOG.cxx:239 AliMUONClusterFinderPeakCOG.cxx:240 AliMUONClusterFinderPeakCOG.cxx:241 AliMUONClusterFinderPeakCOG.cxx:242 AliMUONClusterFinderPeakCOG.cxx:243 AliMUONClusterFinderPeakCOG.cxx:244 AliMUONClusterFinderPeakCOG.cxx:245 AliMUONClusterFinderPeakCOG.cxx:246 AliMUONClusterFinderPeakCOG.cxx:247 AliMUONClusterFinderPeakCOG.cxx:248 AliMUONClusterFinderPeakCOG.cxx:249 AliMUONClusterFinderPeakCOG.cxx:250 AliMUONClusterFinderPeakCOG.cxx:251 AliMUONClusterFinderPeakCOG.cxx:252 AliMUONClusterFinderPeakCOG.cxx:253 AliMUONClusterFinderPeakCOG.cxx:254 AliMUONClusterFinderPeakCOG.cxx:255 AliMUONClusterFinderPeakCOG.cxx:256 AliMUONClusterFinderPeakCOG.cxx:257 AliMUONClusterFinderPeakCOG.cxx:258 AliMUONClusterFinderPeakCOG.cxx:259 AliMUONClusterFinderPeakCOG.cxx:260 AliMUONClusterFinderPeakCOG.cxx:261 AliMUONClusterFinderPeakCOG.cxx:262 AliMUONClusterFinderPeakCOG.cxx:263 AliMUONClusterFinderPeakCOG.cxx:264 AliMUONClusterFinderPeakCOG.cxx:265 AliMUONClusterFinderPeakCOG.cxx:266 AliMUONClusterFinderPeakCOG.cxx:267 AliMUONClusterFinderPeakCOG.cxx:268 AliMUONClusterFinderPeakCOG.cxx:269 AliMUONClusterFinderPeakCOG.cxx:270 AliMUONClusterFinderPeakCOG.cxx:271 AliMUONClusterFinderPeakCOG.cxx:272 AliMUONClusterFinderPeakCOG.cxx:273 AliMUONClusterFinderPeakCOG.cxx:274 AliMUONClusterFinderPeakCOG.cxx:275 AliMUONClusterFinderPeakCOG.cxx:276 AliMUONClusterFinderPeakCOG.cxx:277 AliMUONClusterFinderPeakCOG.cxx:278 AliMUONClusterFinderPeakCOG.cxx:279 AliMUONClusterFinderPeakCOG.cxx:280 AliMUONClusterFinderPeakCOG.cxx:281 AliMUONClusterFinderPeakCOG.cxx:282 AliMUONClusterFinderPeakCOG.cxx:283 AliMUONClusterFinderPeakCOG.cxx:284 AliMUONClusterFinderPeakCOG.cxx:285 AliMUONClusterFinderPeakCOG.cxx:286 AliMUONClusterFinderPeakCOG.cxx:287 AliMUONClusterFinderPeakCOG.cxx:288 AliMUONClusterFinderPeakCOG.cxx:289 AliMUONClusterFinderPeakCOG.cxx:290 AliMUONClusterFinderPeakCOG.cxx:291 AliMUONClusterFinderPeakCOG.cxx:292 AliMUONClusterFinderPeakCOG.cxx:293 AliMUONClusterFinderPeakCOG.cxx:294 AliMUONClusterFinderPeakCOG.cxx:295 AliMUONClusterFinderPeakCOG.cxx:296 AliMUONClusterFinderPeakCOG.cxx:297 AliMUONClusterFinderPeakCOG.cxx:298 AliMUONClusterFinderPeakCOG.cxx:299 AliMUONClusterFinderPeakCOG.cxx:300 AliMUONClusterFinderPeakCOG.cxx:301 AliMUONClusterFinderPeakCOG.cxx:302 AliMUONClusterFinderPeakCOG.cxx:303 AliMUONClusterFinderPeakCOG.cxx:304 AliMUONClusterFinderPeakCOG.cxx:305 AliMUONClusterFinderPeakCOG.cxx:306 AliMUONClusterFinderPeakCOG.cxx:307 AliMUONClusterFinderPeakCOG.cxx:308 AliMUONClusterFinderPeakCOG.cxx:309 AliMUONClusterFinderPeakCOG.cxx:310 AliMUONClusterFinderPeakCOG.cxx:311 AliMUONClusterFinderPeakCOG.cxx:312 AliMUONClusterFinderPeakCOG.cxx:313 AliMUONClusterFinderPeakCOG.cxx:314 AliMUONClusterFinderPeakCOG.cxx:315 AliMUONClusterFinderPeakCOG.cxx:316 AliMUONClusterFinderPeakCOG.cxx:317 AliMUONClusterFinderPeakCOG.cxx:318 AliMUONClusterFinderPeakCOG.cxx:319 AliMUONClusterFinderPeakCOG.cxx:320 AliMUONClusterFinderPeakCOG.cxx:321 AliMUONClusterFinderPeakCOG.cxx:322 AliMUONClusterFinderPeakCOG.cxx:323 AliMUONClusterFinderPeakCOG.cxx:324 AliMUONClusterFinderPeakCOG.cxx:325 AliMUONClusterFinderPeakCOG.cxx:326 AliMUONClusterFinderPeakCOG.cxx:327 AliMUONClusterFinderPeakCOG.cxx:328 AliMUONClusterFinderPeakCOG.cxx:329 AliMUONClusterFinderPeakCOG.cxx:330 AliMUONClusterFinderPeakCOG.cxx:331 AliMUONClusterFinderPeakCOG.cxx:332 AliMUONClusterFinderPeakCOG.cxx:333 AliMUONClusterFinderPeakCOG.cxx:334 AliMUONClusterFinderPeakCOG.cxx:335 AliMUONClusterFinderPeakCOG.cxx:336 AliMUONClusterFinderPeakCOG.cxx:337 AliMUONClusterFinderPeakCOG.cxx:338 AliMUONClusterFinderPeakCOG.cxx:339 AliMUONClusterFinderPeakCOG.cxx:340 AliMUONClusterFinderPeakCOG.cxx:341 AliMUONClusterFinderPeakCOG.cxx:342 AliMUONClusterFinderPeakCOG.cxx:343 AliMUONClusterFinderPeakCOG.cxx:344 AliMUONClusterFinderPeakCOG.cxx:345 AliMUONClusterFinderPeakCOG.cxx:346 AliMUONClusterFinderPeakCOG.cxx:347 AliMUONClusterFinderPeakCOG.cxx:348 AliMUONClusterFinderPeakCOG.cxx:349 AliMUONClusterFinderPeakCOG.cxx:350 AliMUONClusterFinderPeakCOG.cxx:351 AliMUONClusterFinderPeakCOG.cxx:352 AliMUONClusterFinderPeakCOG.cxx:353 AliMUONClusterFinderPeakCOG.cxx:354 AliMUONClusterFinderPeakCOG.cxx:355 AliMUONClusterFinderPeakCOG.cxx:356 AliMUONClusterFinderPeakCOG.cxx:357 AliMUONClusterFinderPeakCOG.cxx:358 AliMUONClusterFinderPeakCOG.cxx:359 AliMUONClusterFinderPeakCOG.cxx:360 AliMUONClusterFinderPeakCOG.cxx:361 AliMUONClusterFinderPeakCOG.cxx:362 AliMUONClusterFinderPeakCOG.cxx:363 AliMUONClusterFinderPeakCOG.cxx:364 AliMUONClusterFinderPeakCOG.cxx:365 AliMUONClusterFinderPeakCOG.cxx:366 AliMUONClusterFinderPeakCOG.cxx:367 AliMUONClusterFinderPeakCOG.cxx:368 AliMUONClusterFinderPeakCOG.cxx:369 AliMUONClusterFinderPeakCOG.cxx:370 AliMUONClusterFinderPeakCOG.cxx:371 AliMUONClusterFinderPeakCOG.cxx:372 AliMUONClusterFinderPeakCOG.cxx:373 AliMUONClusterFinderPeakCOG.cxx:374 AliMUONClusterFinderPeakCOG.cxx:375 AliMUONClusterFinderPeakCOG.cxx:376 AliMUONClusterFinderPeakCOG.cxx:377 AliMUONClusterFinderPeakCOG.cxx:378 AliMUONClusterFinderPeakCOG.cxx:379 AliMUONClusterFinderPeakCOG.cxx:380 AliMUONClusterFinderPeakCOG.cxx:381 AliMUONClusterFinderPeakCOG.cxx:382 AliMUONClusterFinderPeakCOG.cxx:383 AliMUONClusterFinderPeakCOG.cxx:384 AliMUONClusterFinderPeakCOG.cxx:385 AliMUONClusterFinderPeakCOG.cxx:386 AliMUONClusterFinderPeakCOG.cxx:387 AliMUONClusterFinderPeakCOG.cxx:388 AliMUONClusterFinderPeakCOG.cxx:389 AliMUONClusterFinderPeakCOG.cxx:390 AliMUONClusterFinderPeakCOG.cxx:391 AliMUONClusterFinderPeakCOG.cxx:392 AliMUONClusterFinderPeakCOG.cxx:393 AliMUONClusterFinderPeakCOG.cxx:394 AliMUONClusterFinderPeakCOG.cxx:395 AliMUONClusterFinderPeakCOG.cxx:396 AliMUONClusterFinderPeakCOG.cxx:397 AliMUONClusterFinderPeakCOG.cxx:398 AliMUONClusterFinderPeakCOG.cxx:399 AliMUONClusterFinderPeakCOG.cxx:400 AliMUONClusterFinderPeakCOG.cxx:401 AliMUONClusterFinderPeakCOG.cxx:402 AliMUONClusterFinderPeakCOG.cxx:403 AliMUONClusterFinderPeakCOG.cxx:404 AliMUONClusterFinderPeakCOG.cxx:405 AliMUONClusterFinderPeakCOG.cxx:406 AliMUONClusterFinderPeakCOG.cxx:407 AliMUONClusterFinderPeakCOG.cxx:408 AliMUONClusterFinderPeakCOG.cxx:409 AliMUONClusterFinderPeakCOG.cxx:410 AliMUONClusterFinderPeakCOG.cxx:411 AliMUONClusterFinderPeakCOG.cxx:412 AliMUONClusterFinderPeakCOG.cxx:413 AliMUONClusterFinderPeakCOG.cxx:414 AliMUONClusterFinderPeakCOG.cxx:415 AliMUONClusterFinderPeakCOG.cxx:416 AliMUONClusterFinderPeakCOG.cxx:417 AliMUONClusterFinderPeakCOG.cxx:418 AliMUONClusterFinderPeakCOG.cxx:419 AliMUONClusterFinderPeakCOG.cxx:420 AliMUONClusterFinderPeakCOG.cxx:421 AliMUONClusterFinderPeakCOG.cxx:422 AliMUONClusterFinderPeakCOG.cxx:423 AliMUONClusterFinderPeakCOG.cxx:424 AliMUONClusterFinderPeakCOG.cxx:425 AliMUONClusterFinderPeakCOG.cxx:426 AliMUONClusterFinderPeakCOG.cxx:427 AliMUONClusterFinderPeakCOG.cxx:428 AliMUONClusterFinderPeakCOG.cxx:429 AliMUONClusterFinderPeakCOG.cxx:430 AliMUONClusterFinderPeakCOG.cxx:431 AliMUONClusterFinderPeakCOG.cxx:432 AliMUONClusterFinderPeakCOG.cxx:433 AliMUONClusterFinderPeakCOG.cxx:434 AliMUONClusterFinderPeakCOG.cxx:435 AliMUONClusterFinderPeakCOG.cxx:436 AliMUONClusterFinderPeakCOG.cxx:437 AliMUONClusterFinderPeakCOG.cxx:438 AliMUONClusterFinderPeakCOG.cxx:439 AliMUONClusterFinderPeakCOG.cxx:440 AliMUONClusterFinderPeakCOG.cxx:441 AliMUONClusterFinderPeakCOG.cxx:442 AliMUONClusterFinderPeakCOG.cxx:443 AliMUONClusterFinderPeakCOG.cxx:444 AliMUONClusterFinderPeakCOG.cxx:445 AliMUONClusterFinderPeakCOG.cxx:446 AliMUONClusterFinderPeakCOG.cxx:447 AliMUONClusterFinderPeakCOG.cxx:448 AliMUONClusterFinderPeakCOG.cxx:449 AliMUONClusterFinderPeakCOG.cxx:450 AliMUONClusterFinderPeakCOG.cxx:451 AliMUONClusterFinderPeakCOG.cxx:452 AliMUONClusterFinderPeakCOG.cxx:453 AliMUONClusterFinderPeakCOG.cxx:454 AliMUONClusterFinderPeakCOG.cxx:455 AliMUONClusterFinderPeakCOG.cxx:456 AliMUONClusterFinderPeakCOG.cxx:457 AliMUONClusterFinderPeakCOG.cxx:458 AliMUONClusterFinderPeakCOG.cxx:459 AliMUONClusterFinderPeakCOG.cxx:460 AliMUONClusterFinderPeakCOG.cxx:461 AliMUONClusterFinderPeakCOG.cxx:462 AliMUONClusterFinderPeakCOG.cxx:463 AliMUONClusterFinderPeakCOG.cxx:464 AliMUONClusterFinderPeakCOG.cxx:465 AliMUONClusterFinderPeakCOG.cxx:466 AliMUONClusterFinderPeakCOG.cxx:467 AliMUONClusterFinderPeakCOG.cxx:468 AliMUONClusterFinderPeakCOG.cxx:469 AliMUONClusterFinderPeakCOG.cxx:470 AliMUONClusterFinderPeakCOG.cxx:471 AliMUONClusterFinderPeakCOG.cxx:472 AliMUONClusterFinderPeakCOG.cxx:473 AliMUONClusterFinderPeakCOG.cxx:474 AliMUONClusterFinderPeakCOG.cxx:475 AliMUONClusterFinderPeakCOG.cxx:476 AliMUONClusterFinderPeakCOG.cxx:477 AliMUONClusterFinderPeakCOG.cxx:478 AliMUONClusterFinderPeakCOG.cxx:479 AliMUONClusterFinderPeakCOG.cxx:480 AliMUONClusterFinderPeakCOG.cxx:481 AliMUONClusterFinderPeakCOG.cxx:482 AliMUONClusterFinderPeakCOG.cxx:483 AliMUONClusterFinderPeakCOG.cxx:484 AliMUONClusterFinderPeakCOG.cxx:485 AliMUONClusterFinderPeakCOG.cxx:486 AliMUONClusterFinderPeakCOG.cxx:487 AliMUONClusterFinderPeakCOG.cxx:488 AliMUONClusterFinderPeakCOG.cxx:489 AliMUONClusterFinderPeakCOG.cxx:490 AliMUONClusterFinderPeakCOG.cxx:491 AliMUONClusterFinderPeakCOG.cxx:492 AliMUONClusterFinderPeakCOG.cxx:493 AliMUONClusterFinderPeakCOG.cxx:494 AliMUONClusterFinderPeakCOG.cxx:495 AliMUONClusterFinderPeakCOG.cxx:496 AliMUONClusterFinderPeakCOG.cxx:497 AliMUONClusterFinderPeakCOG.cxx:498 AliMUONClusterFinderPeakCOG.cxx:499 AliMUONClusterFinderPeakCOG.cxx:500 AliMUONClusterFinderPeakCOG.cxx:501 AliMUONClusterFinderPeakCOG.cxx:502 AliMUONClusterFinderPeakCOG.cxx:503 AliMUONClusterFinderPeakCOG.cxx:504 AliMUONClusterFinderPeakCOG.cxx:505 AliMUONClusterFinderPeakCOG.cxx:506 AliMUONClusterFinderPeakCOG.cxx:507 AliMUONClusterFinderPeakCOG.cxx:508 AliMUONClusterFinderPeakCOG.cxx:509 AliMUONClusterFinderPeakCOG.cxx:510 AliMUONClusterFinderPeakCOG.cxx:511 AliMUONClusterFinderPeakCOG.cxx:512 AliMUONClusterFinderPeakCOG.cxx:513 AliMUONClusterFinderPeakCOG.cxx:514 AliMUONClusterFinderPeakCOG.cxx:515 AliMUONClusterFinderPeakCOG.cxx:516 AliMUONClusterFinderPeakCOG.cxx:517 AliMUONClusterFinderPeakCOG.cxx:518 AliMUONClusterFinderPeakCOG.cxx:519 AliMUONClusterFinderPeakCOG.cxx:520 AliMUONClusterFinderPeakCOG.cxx:521 AliMUONClusterFinderPeakCOG.cxx:522 AliMUONClusterFinderPeakCOG.cxx:523 AliMUONClusterFinderPeakCOG.cxx:524 AliMUONClusterFinderPeakCOG.cxx:525 AliMUONClusterFinderPeakCOG.cxx:526 AliMUONClusterFinderPeakCOG.cxx:527 AliMUONClusterFinderPeakCOG.cxx:528 AliMUONClusterFinderPeakCOG.cxx:529 AliMUONClusterFinderPeakCOG.cxx:530 AliMUONClusterFinderPeakCOG.cxx:531 AliMUONClusterFinderPeakCOG.cxx:532 AliMUONClusterFinderPeakCOG.cxx:533 AliMUONClusterFinderPeakCOG.cxx:534 AliMUONClusterFinderPeakCOG.cxx:535 AliMUONClusterFinderPeakCOG.cxx:536 AliMUONClusterFinderPeakCOG.cxx:537 AliMUONClusterFinderPeakCOG.cxx:538 AliMUONClusterFinderPeakCOG.cxx:539 AliMUONClusterFinderPeakCOG.cxx:540 AliMUONClusterFinderPeakCOG.cxx:541 AliMUONClusterFinderPeakCOG.cxx:542 AliMUONClusterFinderPeakCOG.cxx:543 AliMUONClusterFinderPeakCOG.cxx:544 AliMUONClusterFinderPeakCOG.cxx:545 AliMUONClusterFinderPeakCOG.cxx:546 AliMUONClusterFinderPeakCOG.cxx:547 AliMUONClusterFinderPeakCOG.cxx:548 AliMUONClusterFinderPeakCOG.cxx:549 AliMUONClusterFinderPeakCOG.cxx:550 AliMUONClusterFinderPeakCOG.cxx:551 AliMUONClusterFinderPeakCOG.cxx:552 AliMUONClusterFinderPeakCOG.cxx:553 AliMUONClusterFinderPeakCOG.cxx:554 AliMUONClusterFinderPeakCOG.cxx:555 AliMUONClusterFinderPeakCOG.cxx:556 AliMUONClusterFinderPeakCOG.cxx:557 AliMUONClusterFinderPeakCOG.cxx:558 AliMUONClusterFinderPeakCOG.cxx:559 AliMUONClusterFinderPeakCOG.cxx:560 AliMUONClusterFinderPeakCOG.cxx:561 AliMUONClusterFinderPeakCOG.cxx:562 AliMUONClusterFinderPeakCOG.cxx:563 AliMUONClusterFinderPeakCOG.cxx:564 AliMUONClusterFinderPeakCOG.cxx:565 AliMUONClusterFinderPeakCOG.cxx:566 AliMUONClusterFinderPeakCOG.cxx:567 AliMUONClusterFinderPeakCOG.cxx:568 AliMUONClusterFinderPeakCOG.cxx:569 AliMUONClusterFinderPeakCOG.cxx:570 AliMUONClusterFinderPeakCOG.cxx:571 AliMUONClusterFinderPeakCOG.cxx:572 AliMUONClusterFinderPeakCOG.cxx:573 AliMUONClusterFinderPeakCOG.cxx:574 AliMUONClusterFinderPeakCOG.cxx:575 AliMUONClusterFinderPeakCOG.cxx:576 AliMUONClusterFinderPeakCOG.cxx:577 AliMUONClusterFinderPeakCOG.cxx:578 AliMUONClusterFinderPeakCOG.cxx:579 AliMUONClusterFinderPeakCOG.cxx:580 AliMUONClusterFinderPeakCOG.cxx:581 AliMUONClusterFinderPeakCOG.cxx:582 AliMUONClusterFinderPeakCOG.cxx:583 AliMUONClusterFinderPeakCOG.cxx:584 AliMUONClusterFinderPeakCOG.cxx:585 AliMUONClusterFinderPeakCOG.cxx:586 AliMUONClusterFinderPeakCOG.cxx:587 AliMUONClusterFinderPeakCOG.cxx:588 AliMUONClusterFinderPeakCOG.cxx:589 AliMUONClusterFinderPeakCOG.cxx:590 AliMUONClusterFinderPeakCOG.cxx:591 AliMUONClusterFinderPeakCOG.cxx:592 AliMUONClusterFinderPeakCOG.cxx:593 AliMUONClusterFinderPeakCOG.cxx:594 AliMUONClusterFinderPeakCOG.cxx:595 AliMUONClusterFinderPeakCOG.cxx:596 AliMUONClusterFinderPeakCOG.cxx:597 AliMUONClusterFinderPeakCOG.cxx:598 AliMUONClusterFinderPeakCOG.cxx:599 AliMUONClusterFinderPeakCOG.cxx:600 AliMUONClusterFinderPeakCOG.cxx:601 AliMUONClusterFinderPeakCOG.cxx:602 AliMUONClusterFinderPeakCOG.cxx:603 AliMUONClusterFinderPeakCOG.cxx:604 AliMUONClusterFinderPeakCOG.cxx:605 AliMUONClusterFinderPeakCOG.cxx:606 AliMUONClusterFinderPeakCOG.cxx:607 AliMUONClusterFinderPeakCOG.cxx:608 AliMUONClusterFinderPeakCOG.cxx:609 AliMUONClusterFinderPeakCOG.cxx:610 AliMUONClusterFinderPeakCOG.cxx:611 AliMUONClusterFinderPeakCOG.cxx:612 AliMUONClusterFinderPeakCOG.cxx:613 AliMUONClusterFinderPeakCOG.cxx:614 AliMUONClusterFinderPeakCOG.cxx:615 AliMUONClusterFinderPeakCOG.cxx:616 AliMUONClusterFinderPeakCOG.cxx:617 AliMUONClusterFinderPeakCOG.cxx:618 AliMUONClusterFinderPeakCOG.cxx:619 AliMUONClusterFinderPeakCOG.cxx:620 AliMUONClusterFinderPeakCOG.cxx:621 AliMUONClusterFinderPeakCOG.cxx:622 AliMUONClusterFinderPeakCOG.cxx:623 AliMUONClusterFinderPeakCOG.cxx:624 AliMUONClusterFinderPeakCOG.cxx:625 AliMUONClusterFinderPeakCOG.cxx:626 AliMUONClusterFinderPeakCOG.cxx:627 AliMUONClusterFinderPeakCOG.cxx:628 AliMUONClusterFinderPeakCOG.cxx:629 AliMUONClusterFinderPeakCOG.cxx:630 AliMUONClusterFinderPeakCOG.cxx:631 AliMUONClusterFinderPeakCOG.cxx:632 AliMUONClusterFinderPeakCOG.cxx:633 AliMUONClusterFinderPeakCOG.cxx:634 AliMUONClusterFinderPeakCOG.cxx:635 AliMUONClusterFinderPeakCOG.cxx:636 AliMUONClusterFinderPeakCOG.cxx:637 AliMUONClusterFinderPeakCOG.cxx:638 AliMUONClusterFinderPeakCOG.cxx:639 AliMUONClusterFinderPeakCOG.cxx:640 AliMUONClusterFinderPeakCOG.cxx:641 AliMUONClusterFinderPeakCOG.cxx:642 AliMUONClusterFinderPeakCOG.cxx:643 AliMUONClusterFinderPeakCOG.cxx:644 AliMUONClusterFinderPeakCOG.cxx:645 AliMUONClusterFinderPeakCOG.cxx:646 AliMUONClusterFinderPeakCOG.cxx:647 AliMUONClusterFinderPeakCOG.cxx:648 AliMUONClusterFinderPeakCOG.cxx:649 AliMUONClusterFinderPeakCOG.cxx:650 AliMUONClusterFinderPeakCOG.cxx:651 AliMUONClusterFinderPeakCOG.cxx:652 AliMUONClusterFinderPeakCOG.cxx:653 AliMUONClusterFinderPeakCOG.cxx:654 AliMUONClusterFinderPeakCOG.cxx:655 AliMUONClusterFinderPeakCOG.cxx:656 AliMUONClusterFinderPeakCOG.cxx:657 AliMUONClusterFinderPeakCOG.cxx:658 AliMUONClusterFinderPeakCOG.cxx:659 AliMUONClusterFinderPeakCOG.cxx:660 AliMUONClusterFinderPeakCOG.cxx:661 AliMUONClusterFinderPeakCOG.cxx:662 AliMUONClusterFinderPeakCOG.cxx:663 AliMUONClusterFinderPeakCOG.cxx:664 AliMUONClusterFinderPeakCOG.cxx:665 AliMUONClusterFinderPeakCOG.cxx:666 AliMUONClusterFinderPeakCOG.cxx:667 AliMUONClusterFinderPeakCOG.cxx:668 AliMUONClusterFinderPeakCOG.cxx:669 AliMUONClusterFinderPeakCOG.cxx:670 AliMUONClusterFinderPeakCOG.cxx:671 AliMUONClusterFinderPeakCOG.cxx:672 AliMUONClusterFinderPeakCOG.cxx:673 AliMUONClusterFinderPeakCOG.cxx:674 AliMUONClusterFinderPeakCOG.cxx:675 AliMUONClusterFinderPeakCOG.cxx:676 AliMUONClusterFinderPeakCOG.cxx:677 AliMUONClusterFinderPeakCOG.cxx:678 AliMUONClusterFinderPeakCOG.cxx:679 AliMUONClusterFinderPeakCOG.cxx:680 AliMUONClusterFinderPeakCOG.cxx:681 AliMUONClusterFinderPeakCOG.cxx:682 AliMUONClusterFinderPeakCOG.cxx:683 AliMUONClusterFinderPeakCOG.cxx:684 AliMUONClusterFinderPeakCOG.cxx:685 AliMUONClusterFinderPeakCOG.cxx:686 AliMUONClusterFinderPeakCOG.cxx:687 AliMUONClusterFinderPeakCOG.cxx:688 AliMUONClusterFinderPeakCOG.cxx:689 AliMUONClusterFinderPeakCOG.cxx:690 AliMUONClusterFinderPeakCOG.cxx:691 AliMUONClusterFinderPeakCOG.cxx:692 AliMUONClusterFinderPeakCOG.cxx:693 AliMUONClusterFinderPeakCOG.cxx:694 AliMUONClusterFinderPeakCOG.cxx:695 AliMUONClusterFinderPeakCOG.cxx:696 AliMUONClusterFinderPeakCOG.cxx:697 AliMUONClusterFinderPeakCOG.cxx:698 AliMUONClusterFinderPeakCOG.cxx:699 AliMUONClusterFinderPeakCOG.cxx:700 AliMUONClusterFinderPeakCOG.cxx:701 AliMUONClusterFinderPeakCOG.cxx:702 AliMUONClusterFinderPeakCOG.cxx:703 AliMUONClusterFinderPeakCOG.cxx:704 AliMUONClusterFinderPeakCOG.cxx:705 AliMUONClusterFinderPeakCOG.cxx:706 AliMUONClusterFinderPeakCOG.cxx:707 AliMUONClusterFinderPeakCOG.cxx:708 AliMUONClusterFinderPeakCOG.cxx:709 AliMUONClusterFinderPeakCOG.cxx:710 AliMUONClusterFinderPeakCOG.cxx:711 AliMUONClusterFinderPeakCOG.cxx:712 AliMUONClusterFinderPeakCOG.cxx:713 AliMUONClusterFinderPeakCOG.cxx:714 AliMUONClusterFinderPeakCOG.cxx:715 AliMUONClusterFinderPeakCOG.cxx:716 AliMUONClusterFinderPeakCOG.cxx:717 AliMUONClusterFinderPeakCOG.cxx:718 AliMUONClusterFinderPeakCOG.cxx:719 AliMUONClusterFinderPeakCOG.cxx:720 AliMUONClusterFinderPeakCOG.cxx:721 AliMUONClusterFinderPeakCOG.cxx:722 AliMUONClusterFinderPeakCOG.cxx:723 AliMUONClusterFinderPeakCOG.cxx:724 AliMUONClusterFinderPeakCOG.cxx:725 AliMUONClusterFinderPeakCOG.cxx:726 AliMUONClusterFinderPeakCOG.cxx:727 AliMUONClusterFinderPeakCOG.cxx:728 AliMUONClusterFinderPeakCOG.cxx:729 AliMUONClusterFinderPeakCOG.cxx:730 AliMUONClusterFinderPeakCOG.cxx:731 AliMUONClusterFinderPeakCOG.cxx:732 AliMUONClusterFinderPeakCOG.cxx:733 AliMUONClusterFinderPeakCOG.cxx:734 AliMUONClusterFinderPeakCOG.cxx:735 AliMUONClusterFinderPeakCOG.cxx:736 AliMUONClusterFinderPeakCOG.cxx:737 AliMUONClusterFinderPeakCOG.cxx:738 AliMUONClusterFinderPeakCOG.cxx:739 AliMUONClusterFinderPeakCOG.cxx:740 AliMUONClusterFinderPeakCOG.cxx:741 AliMUONClusterFinderPeakCOG.cxx:742 AliMUONClusterFinderPeakCOG.cxx:743 AliMUONClusterFinderPeakCOG.cxx:744 AliMUONClusterFinderPeakCOG.cxx:745 AliMUONClusterFinderPeakCOG.cxx:746 AliMUONClusterFinderPeakCOG.cxx:747 AliMUONClusterFinderPeakCOG.cxx:748 AliMUONClusterFinderPeakCOG.cxx:749 AliMUONClusterFinderPeakCOG.cxx:750 AliMUONClusterFinderPeakCOG.cxx:751 AliMUONClusterFinderPeakCOG.cxx:752 AliMUONClusterFinderPeakCOG.cxx:753 AliMUONClusterFinderPeakCOG.cxx:754 AliMUONClusterFinderPeakCOG.cxx:755 AliMUONClusterFinderPeakCOG.cxx:756 AliMUONClusterFinderPeakCOG.cxx:757 AliMUONClusterFinderPeakCOG.cxx:758 AliMUONClusterFinderPeakCOG.cxx:759 AliMUONClusterFinderPeakCOG.cxx:760 AliMUONClusterFinderPeakCOG.cxx:761 AliMUONClusterFinderPeakCOG.cxx:762 AliMUONClusterFinderPeakCOG.cxx:763 AliMUONClusterFinderPeakCOG.cxx:764 AliMUONClusterFinderPeakCOG.cxx:765 AliMUONClusterFinderPeakCOG.cxx:766 AliMUONClusterFinderPeakCOG.cxx:767 AliMUONClusterFinderPeakCOG.cxx:768 AliMUONClusterFinderPeakCOG.cxx:769 AliMUONClusterFinderPeakCOG.cxx:770 AliMUONClusterFinderPeakCOG.cxx:771 AliMUONClusterFinderPeakCOG.cxx:772 AliMUONClusterFinderPeakCOG.cxx:773 AliMUONClusterFinderPeakCOG.cxx:774 AliMUONClusterFinderPeakCOG.cxx:775 AliMUONClusterFinderPeakCOG.cxx:776 AliMUONClusterFinderPeakCOG.cxx:777 AliMUONClusterFinderPeakCOG.cxx:778 AliMUONClusterFinderPeakCOG.cxx:779 AliMUONClusterFinderPeakCOG.cxx:780 AliMUONClusterFinderPeakCOG.cxx:781 AliMUONClusterFinderPeakCOG.cxx:782 AliMUONClusterFinderPeakCOG.cxx:783 AliMUONClusterFinderPeakCOG.cxx:784 AliMUONClusterFinderPeakCOG.cxx:785 AliMUONClusterFinderPeakCOG.cxx:786 AliMUONClusterFinderPeakCOG.cxx:787 AliMUONClusterFinderPeakCOG.cxx:788 AliMUONClusterFinderPeakCOG.cxx:789 AliMUONClusterFinderPeakCOG.cxx:790 AliMUONClusterFinderPeakCOG.cxx:791 AliMUONClusterFinderPeakCOG.cxx:792 AliMUONClusterFinderPeakCOG.cxx:793 AliMUONClusterFinderPeakCOG.cxx:794 AliMUONClusterFinderPeakCOG.cxx:795 AliMUONClusterFinderPeakCOG.cxx:796 AliMUONClusterFinderPeakCOG.cxx:797 AliMUONClusterFinderPeakCOG.cxx:798 AliMUONClusterFinderPeakCOG.cxx:799 AliMUONClusterFinderPeakCOG.cxx:800 AliMUONClusterFinderPeakCOG.cxx:801 AliMUONClusterFinderPeakCOG.cxx:802 AliMUONClusterFinderPeakCOG.cxx:803 AliMUONClusterFinderPeakCOG.cxx:804 AliMUONClusterFinderPeakCOG.cxx:805 AliMUONClusterFinderPeakCOG.cxx:806 AliMUONClusterFinderPeakCOG.cxx:807 AliMUONClusterFinderPeakCOG.cxx:808 AliMUONClusterFinderPeakCOG.cxx:809 AliMUONClusterFinderPeakCOG.cxx:810 AliMUONClusterFinderPeakCOG.cxx:811 AliMUONClusterFinderPeakCOG.cxx:812 AliMUONClusterFinderPeakCOG.cxx:813 AliMUONClusterFinderPeakCOG.cxx:814 AliMUONClusterFinderPeakCOG.cxx:815 AliMUONClusterFinderPeakCOG.cxx:816 AliMUONClusterFinderPeakCOG.cxx:817 AliMUONClusterFinderPeakCOG.cxx:818 AliMUONClusterFinderPeakCOG.cxx:819 AliMUONClusterFinderPeakCOG.cxx:820 AliMUONClusterFinderPeakCOG.cxx:821 AliMUONClusterFinderPeakCOG.cxx:822 AliMUONClusterFinderPeakCOG.cxx:823 AliMUONClusterFinderPeakCOG.cxx:824 AliMUONClusterFinderPeakCOG.cxx:825 AliMUONClusterFinderPeakCOG.cxx:826 AliMUONClusterFinderPeakCOG.cxx:827 AliMUONClusterFinderPeakCOG.cxx:828 AliMUONClusterFinderPeakCOG.cxx:829 AliMUONClusterFinderPeakCOG.cxx:830 AliMUONClusterFinderPeakCOG.cxx:831 AliMUONClusterFinderPeakCOG.cxx:832 AliMUONClusterFinderPeakCOG.cxx:833 AliMUONClusterFinderPeakCOG.cxx:834 AliMUONClusterFinderPeakCOG.cxx:835 AliMUONClusterFinderPeakCOG.cxx:836 AliMUONClusterFinderPeakCOG.cxx:837 AliMUONClusterFinderPeakCOG.cxx:838 AliMUONClusterFinderPeakCOG.cxx:839 AliMUONClusterFinderPeakCOG.cxx:840 AliMUONClusterFinderPeakCOG.cxx:841 AliMUONClusterFinderPeakCOG.cxx:842 AliMUONClusterFinderPeakCOG.cxx:843 AliMUONClusterFinderPeakCOG.cxx:844 AliMUONClusterFinderPeakCOG.cxx:845 AliMUONClusterFinderPeakCOG.cxx:846 AliMUONClusterFinderPeakCOG.cxx:847 AliMUONClusterFinderPeakCOG.cxx:848 AliMUONClusterFinderPeakCOG.cxx:849 AliMUONClusterFinderPeakCOG.cxx:850 AliMUONClusterFinderPeakCOG.cxx:851 AliMUONClusterFinderPeakCOG.cxx:852 AliMUONClusterFinderPeakCOG.cxx:853 AliMUONClusterFinderPeakCOG.cxx:854 AliMUONClusterFinderPeakCOG.cxx:855 AliMUONClusterFinderPeakCOG.cxx:856 AliMUONClusterFinderPeakCOG.cxx:857 AliMUONClusterFinderPeakCOG.cxx:858 AliMUONClusterFinderPeakCOG.cxx:859 AliMUONClusterFinderPeakCOG.cxx:860 AliMUONClusterFinderPeakCOG.cxx:861 AliMUONClusterFinderPeakCOG.cxx:862 AliMUONClusterFinderPeakCOG.cxx:863 AliMUONClusterFinderPeakCOG.cxx:864 AliMUONClusterFinderPeakCOG.cxx:865 AliMUONClusterFinderPeakCOG.cxx:866 AliMUONClusterFinderPeakCOG.cxx:867 AliMUONClusterFinderPeakCOG.cxx:868 AliMUONClusterFinderPeakCOG.cxx:869 AliMUONClusterFinderPeakCOG.cxx:870 AliMUONClusterFinderPeakCOG.cxx:871 AliMUONClusterFinderPeakCOG.cxx:872 AliMUONClusterFinderPeakCOG.cxx:873 AliMUONClusterFinderPeakCOG.cxx:874 AliMUONClusterFinderPeakCOG.cxx:875 AliMUONClusterFinderPeakCOG.cxx:876 AliMUONClusterFinderPeakCOG.cxx:877 AliMUONClusterFinderPeakCOG.cxx:878 AliMUONClusterFinderPeakCOG.cxx:879 AliMUONClusterFinderPeakCOG.cxx:880 AliMUONClusterFinderPeakCOG.cxx:881 AliMUONClusterFinderPeakCOG.cxx:882 AliMUONClusterFinderPeakCOG.cxx:883 AliMUONClusterFinderPeakCOG.cxx:884 AliMUONClusterFinderPeakCOG.cxx:885 AliMUONClusterFinderPeakCOG.cxx:886 AliMUONClusterFinderPeakCOG.cxx:887 AliMUONClusterFinderPeakCOG.cxx:888 AliMUONClusterFinderPeakCOG.cxx:889 AliMUONClusterFinderPeakCOG.cxx:890 AliMUONClusterFinderPeakCOG.cxx:891 AliMUONClusterFinderPeakCOG.cxx:892 AliMUONClusterFinderPeakCOG.cxx:893 AliMUONClusterFinderPeakCOG.cxx:894 AliMUONClusterFinderPeakCOG.cxx:895 AliMUONClusterFinderPeakCOG.cxx:896 AliMUONClusterFinderPeakCOG.cxx:897 AliMUONClusterFinderPeakCOG.cxx:898 AliMUONClusterFinderPeakCOG.cxx:899 AliMUONClusterFinderPeakCOG.cxx:900 AliMUONClusterFinderPeakCOG.cxx:901 AliMUONClusterFinderPeakCOG.cxx:902 AliMUONClusterFinderPeakCOG.cxx:903 AliMUONClusterFinderPeakCOG.cxx:904 AliMUONClusterFinderPeakCOG.cxx:905 AliMUONClusterFinderPeakCOG.cxx:906 AliMUONClusterFinderPeakCOG.cxx:907 AliMUONClusterFinderPeakCOG.cxx:908 AliMUONClusterFinderPeakCOG.cxx:909 AliMUONClusterFinderPeakCOG.cxx:910 AliMUONClusterFinderPeakCOG.cxx:911 AliMUONClusterFinderPeakCOG.cxx:912 AliMUONClusterFinderPeakCOG.cxx:913 AliMUONClusterFinderPeakCOG.cxx:914 AliMUONClusterFinderPeakCOG.cxx:915 AliMUONClusterFinderPeakCOG.cxx:916 AliMUONClusterFinderPeakCOG.cxx:917 AliMUONClusterFinderPeakCOG.cxx:918 AliMUONClusterFinderPeakCOG.cxx:919 AliMUONClusterFinderPeakCOG.cxx:920 AliMUONClusterFinderPeakCOG.cxx:921 AliMUONClusterFinderPeakCOG.cxx:922 AliMUONClusterFinderPeakCOG.cxx:923 AliMUONClusterFinderPeakCOG.cxx:924 AliMUONClusterFinderPeakCOG.cxx:925 AliMUONClusterFinderPeakCOG.cxx:926 AliMUONClusterFinderPeakCOG.cxx:927 AliMUONClusterFinderPeakCOG.cxx:928 AliMUONClusterFinderPeakCOG.cxx:929 AliMUONClusterFinderPeakCOG.cxx:930 AliMUONClusterFinderPeakCOG.cxx:931 AliMUONClusterFinderPeakCOG.cxx:932 AliMUONClusterFinderPeakCOG.cxx:933 AliMUONClusterFinderPeakCOG.cxx:934 AliMUONClusterFinderPeakCOG.cxx:935 AliMUONClusterFinderPeakCOG.cxx:936 AliMUONClusterFinderPeakCOG.cxx:937 AliMUONClusterFinderPeakCOG.cxx:938 AliMUONClusterFinderPeakCOG.cxx:939 AliMUONClusterFinderPeakCOG.cxx:940 AliMUONClusterFinderPeakCOG.cxx:941 AliMUONClusterFinderPeakCOG.cxx:942 AliMUONClusterFinderPeakCOG.cxx:943 AliMUONClusterFinderPeakCOG.cxx:944 AliMUONClusterFinderPeakCOG.cxx:945 AliMUONClusterFinderPeakCOG.cxx:946 AliMUONClusterFinderPeakCOG.cxx:947 AliMUONClusterFinderPeakCOG.cxx:948 AliMUONClusterFinderPeakCOG.cxx:949 AliMUONClusterFinderPeakCOG.cxx:950 AliMUONClusterFinderPeakCOG.cxx:951 AliMUONClusterFinderPeakCOG.cxx:952 AliMUONClusterFinderPeakCOG.cxx:953 AliMUONClusterFinderPeakCOG.cxx:954 AliMUONClusterFinderPeakCOG.cxx:955 AliMUONClusterFinderPeakCOG.cxx:956 AliMUONClusterFinderPeakCOG.cxx:957 AliMUONClusterFinderPeakCOG.cxx:958 AliMUONClusterFinderPeakCOG.cxx:959 AliMUONClusterFinderPeakCOG.cxx:960 AliMUONClusterFinderPeakCOG.cxx:961 AliMUONClusterFinderPeakCOG.cxx:962 AliMUONClusterFinderPeakCOG.cxx:963 AliMUONClusterFinderPeakCOG.cxx:964 AliMUONClusterFinderPeakCOG.cxx:965 AliMUONClusterFinderPeakCOG.cxx:966 AliMUONClusterFinderPeakCOG.cxx:967 AliMUONClusterFinderPeakCOG.cxx:968 AliMUONClusterFinderPeakCOG.cxx:969 AliMUONClusterFinderPeakCOG.cxx:970 AliMUONClusterFinderPeakCOG.cxx:971 AliMUONClusterFinderPeakCOG.cxx:972 AliMUONClusterFinderPeakCOG.cxx:973 AliMUONClusterFinderPeakCOG.cxx:974 AliMUONClusterFinderPeakCOG.cxx:975 AliMUONClusterFinderPeakCOG.cxx:976 AliMUONClusterFinderPeakCOG.cxx:977 AliMUONClusterFinderPeakCOG.cxx:978 AliMUONClusterFinderPeakCOG.cxx:979 AliMUONClusterFinderPeakCOG.cxx:980 AliMUONClusterFinderPeakCOG.cxx:981 AliMUONClusterFinderPeakCOG.cxx:982 AliMUONClusterFinderPeakCOG.cxx:983 AliMUONClusterFinderPeakCOG.cxx:984 AliMUONClusterFinderPeakCOG.cxx:985 AliMUONClusterFinderPeakCOG.cxx:986 AliMUONClusterFinderPeakCOG.cxx:987