#include "AliLoader.h"
#include "AliRun.h"
#include "AliITSclustererV2.h"
#include "AliITSclusterV2.h"
#include "AliITSDetTypeRec.h"
#include "AliRawReader.h"
#include "AliITSRawStreamSPD.h"
#include "AliITSRawStreamSDD.h"
#include "AliITSRawStreamSSD.h"
#include <TFile.h>
#include <TTree.h>
#include <TClonesArray.h>
#include "AliITSgeomTGeo.h"
#include "AliITSdigitSPD.h"
#include "AliITSdigitSDD.h"
#include "AliITSdigitSSD.h"
#include "AliMC.h"
ClassImp(AliITSclustererV2)
extern AliRun *gAlice;
AliITSclustererV2::AliITSclustererV2():
fNModules(0),
fEvent(0),
fI(0),
fLastSPD1(0),
fNySPD(0),
fNzSPD(0),
fYpitchSPD(0),
fZ1pitchSPD(0),
fZ2pitchSPD(0),
fHwSPD(0),
fHlSPD(0),
fNySDD(0),
fNzSDD(0),
fYpitchSDD(0),
fZpitchSDD(0),
fHwSDD(0),
fHlSDD(0),
fYoffSDD(0),
fLastSSD1(0),
fYpitchSSD(0),
fHwSSD(0),
fHlSSD(0),
fTanP(0),
fTanN(0){
for(Int_t i=0;i<260;i++)fYSPD[i]=0.;
for(Int_t i=0;i<170;i++)fZSPD[i]=0.;
for(Int_t i=0;i<2200;i++){
fYshift[i]=0.;
fZshift[i]=0.;
fNdet[i]=0;
fNlayer[i]=0;
}
}
AliITSclustererV2::AliITSclustererV2(const Char_t *geom):
fNModules(AliITSgeomTGeo::GetNModules()),
fEvent(0),
fI(0),
fLastSPD1(AliITSgeomTGeo::GetModuleIndex(2,1,1)-1),
fNySPD(256),
fNzSPD(160),
fYpitchSPD(0.0050),
fZ1pitchSPD(0.0425),
fZ2pitchSPD(0.0625),
fHwSPD(0.64),
fHlSPD(3.48),
fNySDD(256),
fNzSDD(256),
fYpitchSDD(0.01825),
fZpitchSDD(0.02940),
fHwSDD(3.5085),
fHlSDD(3.7632),
fYoffSDD(0.0425),
fLastSSD1(AliITSgeomTGeo::GetModuleIndex(6,1,1)-1),
fYpitchSSD(0.0095),
fHwSSD(3.65),
fHlSSD(2.00),
fTanP(0.0275),
fTanN(0.0075) {
if (geom) {
AliWarning("\"geom\" is actually a dummy argument !");
}
Int_t m;
for (m=0; m<fNModules; m++) {
Int_t lay,lad,det; AliITSgeomTGeo::GetModuleId(m,lay,lad,det);
const TGeoHMatrix *tm=AliITSgeomTGeo::GetTracking2LocalMatrix(m);
fYshift[m] = (tm->Inverse()).GetTranslation()[1];
fZshift[m] = (tm->Inverse()).GetTranslation()[2];
fNdet[m] = (lad-1)*AliITSgeomTGeo::GetNDetectors(lay) + (det-1);
fNlayer[m] = lay-1;
}
fYSPD[0]=0.5*fYpitchSPD;
for (m=1; m<fNySPD; m++) fYSPD[m]=fYSPD[m-1]+fYpitchSPD;
fZSPD[0]=fZ1pitchSPD;
for (m=1; m<fNzSPD; m++) {
Double_t dz=fZ1pitchSPD;
if (m==31 || m==32 || m==63 || m==64 || m==95 || m==96 ||
m==127 || m==128) dz=fZ2pitchSPD;
fZSPD[m]=fZSPD[m-1]+dz;
}
for (m=0; m<fNzSPD; m++) {
Double_t dz=0.5*fZ1pitchSPD;
if (m==31 || m==32 || m==63 || m==64 || m==95 || m==96 ||
m==127 || m==128) dz=0.5*fZ2pitchSPD;
fZSPD[m]-=dz;
}
}
Int_t AliITSclustererV2::Digits2Clusters(TTree *dTree, TTree *cTree) {
Int_t ncl=0;
if (!dTree) {
Error("Digits2Clusters","Can't get the tree with digits !");
return 1;
}
TClonesArray *digitsSPD=new TClonesArray("AliITSdigitSPD",3000);
dTree->SetBranchAddress("ITSDigitsSPD",&digitsSPD);
TClonesArray *digitsSDD=new TClonesArray("AliITSdigitSDD",3000);
dTree->SetBranchAddress("ITSDigitsSDD",&digitsSDD);
TClonesArray *digitsSSD=new TClonesArray("AliITSdigitSSD",3000);
dTree->SetBranchAddress("ITSDigitsSSD",&digitsSSD);
TClonesArray *clusters=new TClonesArray("AliITSclusterV2",1000);
TBranch *branch=cTree->GetBranch("Clusters");
if (!branch) cTree->Branch("Clusters",&clusters);
else branch->SetAddress(&clusters);
Int_t mmax=(Int_t)dTree->GetEntries();
if (mmax!=fNModules) {
Error("Digits2Clusters","Number of entries != number of modules !");
return 1;
}
for (fI=0; fI<mmax; fI++) {
dTree->GetEvent(fI);
if (digitsSPD->GetEntriesFast()!=0)
FindClustersSPD(digitsSPD,clusters);
else
if(digitsSDD->GetEntriesFast()!=0)
FindClustersSDD(digitsSDD,clusters);
else if(digitsSSD->GetEntriesFast()!=0)
FindClustersSSD(digitsSSD,clusters);
ncl+=clusters->GetEntriesFast();
cTree->Fill();
digitsSPD->Clear();
digitsSDD->Clear();
digitsSSD->Clear();
clusters->Clear();
}
delete clusters;
delete digitsSPD;
delete digitsSDD;
delete digitsSSD;
Info("Digits2Clusters","Number of found clusters : %d",ncl);
return 0;
}
void AliITSclustererV2::Digits2Clusters(AliRawReader* rawReader) {
AliRunLoader* runLoader = AliRunLoader::Instance();
if (!runLoader) {
Error("Digits2Clusters", "no run loader found");
return;
}
runLoader->LoadKinematics();
AliLoader* itsLoader = runLoader->GetLoader("ITSLoader");
if (!itsLoader) {
Error("Digits2Clusters", "no loader for ITS found");
return;
}
if (!itsLoader->TreeR()) itsLoader->MakeTree("R");
TTree* cTree = itsLoader->TreeR();
TClonesArray *array=new TClonesArray("AliITSclusterV2",1000);
cTree->Branch("Clusters",&array);
delete array;
TClonesArray** clusters = new TClonesArray*[fNModules];
for (Int_t iModule = 0; iModule < fNModules; iModule++) {
clusters[iModule] = NULL;
}
rawReader->Reset();
AliITSRawStreamSPD inputSPD(rawReader);
FindClustersSPD(&inputSPD, clusters);
rawReader->Reset();
AliITSRawStreamSDD inputSDD(rawReader);
FindClustersSDD(&inputSDD, clusters);
rawReader->Reset();
AliITSRawStreamSSD inputSSD(rawReader);
FindClustersSSD(&inputSSD, clusters);
Int_t nClusters = 0;
TClonesArray *emptyArray=new TClonesArray("AliITSclusterV2");
for (Int_t iModule = 0; iModule < fNModules; iModule++) {
array = clusters[iModule];
if (!array) {
Error("Digits2Clusters", "data for module %d missing!", iModule);
array = emptyArray;
}
cTree->SetBranchAddress("Clusters", &array);
cTree->Fill();
nClusters += array->GetEntriesFast();
}
delete emptyArray;
itsLoader->WriteRecPoints("OVERWRITE");
delete[] clusters;
Info("Digits2Clusters", "total number of found clusters in ITS: %d\n",
nClusters);
}
#include "TParticle.h"
#include "AliITSmodule.h"
#include "AliITSRecPoint.h"
#include "AliITSsimulationFastPoints.h"
#include "AliITSRecPoint.h"
static void CheckLabels(Int_t lab[3]) {
AliRunLoader *rl = AliRunLoader::Instance();
TTree *trK=(TTree*)rl->TreeK();
if(trK){
Int_t label=lab[0];
if (label>=0) {
TParticle *part=(TParticle*)gAlice->GetMCApp()->Particle(label);
label=-3;
while (part->P() < 0.005) {
Int_t m=part->GetFirstMother();
if (m<0) {
Info("CheckLabels","Primary momentum: %f",part->P());
break;
}
if (part->GetStatusCode()>0) {
Info("CheckLabels","Primary momentum: %f",part->P());
break;
}
label=m;
part=(TParticle*)gAlice->GetMCApp()->Particle(label);
}
if(lab[1]<0){
lab[1]=label;
}
else if (lab[2]<0) {
lab[2]=label;
}
else {
}
}
}
}
static void CheckLabels2(Int_t lab[10]) {
AliRunLoader *rl = AliRunLoader::Instance();
TTree *trK=(TTree*)rl->TreeK();
if(trK){
Int_t nlabels =0;
for (Int_t i=0;i<10;i++) if (lab[i]>=0) nlabels++;
if(nlabels == 0) return;
Int_t ntracks = gAlice->GetMCApp()->GetNtrack();
for (Int_t i=0;i<10;i++){
Int_t label = lab[i];
if (label>=0 && label<ntracks) {
TParticle *part=(TParticle*)gAlice->GetMCApp()->Particle(label);
if (part->P() < 0.02) {
Int_t m=part->GetFirstMother();
if (m<0) {
continue;
}
if (part->GetStatusCode()>0) {
continue;
}
lab[i]=m;
}
else
if (part->P() < 0.12 && nlabels>3) {
lab[i]=-2;
nlabels--;
}
}
else{
if ( (label>ntracks||label <0) && nlabels>3) {
lab[i]=-2;
nlabels--;
}
}
}
if (nlabels>3){
for (Int_t i=0;i<10;i++){
if (nlabels>3){
Int_t label = lab[i];
if (label>=0 && label<ntracks) {
TParticle *part=(TParticle*)gAlice->GetMCApp()->Particle(label);
if (part->P() < 0.1) {
lab[i]=-2;
nlabels--;
}
}
}
}
}
Int_t lab2[10];
for (Int_t i=0;i<10;i++) lab2[i]=-2;
for (Int_t i=0;i<10 ;i++){
if (lab[i]<0) continue;
for (Int_t j=0;j<10 &&lab2[j]!=lab[i];j++){
if (lab2[j]<0) {
lab2[j]= lab[i];
break;
}
}
}
for (Int_t j=0;j<10;j++) lab[j]=lab2[j];
}
}
static void AddLabel(Int_t lab[10], Int_t label) {
AliRunLoader *rl = AliRunLoader::Instance();
TTree *trK=(TTree*)rl->TreeK();
if(trK){
if(label<0) return;
Int_t ntracks = gAlice->GetMCApp()->GetNtrack();
if (label>ntracks) return;
for (Int_t i=0;i<10;i++){
if (lab[i]==label) break;
if (lab[i]<0) {
lab[i]= label;
break;
}
}
}
}
void AliITSclustererV2::RecPoints2Clusters
(const TClonesArray *points, Int_t idx, TClonesArray *clusters) {
TClonesArray &cl=*clusters;
Int_t ncl=points->GetEntriesFast();
for (Int_t i=0; i<ncl; i++) {
AliITSRecPoint *p = (AliITSRecPoint *)points->UncheckedAt(i);
Float_t lp[5];
lp[0]=-(-p->GetDetLocalX()+fYshift[idx]); if (idx<=fLastSPD1) lp[0]*=-1;
lp[1]= -p->GetZ()+fZshift[idx];
lp[2]=p->GetSigmaDetLocX2();
lp[3]=p->GetSigmaZ2();
lp[4]=p->GetQ()*36./23333.;
Int_t lab[4];
lab[0]=p->GetLabel(0); lab[1]=p->GetLabel(1); lab[2]=p->GetLabel(2);
lab[3]=fNdet[idx];
CheckLabels(lab);
Int_t dummy[3]={0,0,0};
new (cl[i]) AliITSclusterV2(lab,lp, dummy);
}
}
void AliITSclustererV2::
FindCluster(Int_t k,Int_t maxz,AliBin *bins,Int_t &n,Int_t *idx) {
if (n<200) idx[n++]=bins[k].GetIndex();
bins[k].Use();
if (bins[k-maxz].IsNotUsed()) FindCluster(k-maxz,maxz,bins,n,idx);
if (bins[k-1 ].IsNotUsed()) FindCluster(k-1 ,maxz,bins,n,idx);
if (bins[k+maxz].IsNotUsed()) FindCluster(k+maxz,maxz,bins,n,idx);
if (bins[k+1 ].IsNotUsed()) FindCluster(k+1 ,maxz,bins,n,idx);
}
void AliITSclustererV2::
FindClustersSPD(const TClonesArray *digits, TClonesArray *clusters) {
Int_t kNzBins = fNzSPD + 2;
const Int_t kMAXBIN=kNzBins*(fNySPD+2);
Int_t ndigits=digits->GetEntriesFast();
AliBin *bins=new AliBin[kMAXBIN];
Int_t k;
AliITSdigitSPD *d=0;
for (k=0; k<ndigits; k++) {
d=(AliITSdigitSPD*)digits->UncheckedAt(k);
Int_t i=d->GetCoord2()+1;
Int_t j=d->GetCoord1()+1;
bins[i*kNzBins+j].SetIndex(k);
bins[i*kNzBins+j].SetMask(1);
}
Int_t n=0; TClonesArray &cl=*clusters;
for (k=0; k<kMAXBIN; k++) {
if (!bins[k].IsNotUsed()) continue;
Int_t ni=0, idx[200];
FindCluster(k,kNzBins,bins,ni,idx);
if (ni==200) {
Info("FindClustersSPD","Too big cluster !");
continue;
}
Int_t milab[10];
for (Int_t ilab=0;ilab<10;ilab++){
milab[ilab]=-2;
}
d=(AliITSdigitSPD*)digits->UncheckedAt(idx[0]);
Int_t ymin=d->GetCoord2(),ymax=ymin;
Int_t zmin=d->GetCoord1(),zmax=zmin;
for (Int_t l=0; l<ni; l++) {
d=(AliITSdigitSPD*)digits->UncheckedAt(idx[l]);
if (ymin > d->GetCoord2()) ymin=d->GetCoord2();
if (ymax < d->GetCoord2()) ymax=d->GetCoord2();
if (zmin > d->GetCoord1()) zmin=d->GetCoord1();
if (zmax < d->GetCoord1()) zmax=d->GetCoord1();
for (Int_t dlab=0;dlab<10;dlab++){
Int_t digitlab = (d->GetTracks())[dlab];
if (digitlab<0) continue;
AddLabel(milab,digitlab);
}
if (milab[9]>0) CheckLabels2(milab);
}
CheckLabels2(milab);
Int_t idy = 0;
if (fNlayer[fI]==0 &&idy<3) idy=3;
if (fNlayer[fI]==1 &&idy<4) idy=4;
Int_t idz =3;
for (Int_t iz=zmin; iz<=zmax;iz+=idz)
for (Int_t iy=ymin; iy<=ymax;iy+=idy){
Int_t nodigits =0;
Float_t y=0.,z=0.,q=0.;
for (Int_t l=0; l<ni; l++) {
d=(AliITSdigitSPD*)digits->UncheckedAt(idx[l]);
if (zmax-zmin>=idz || ymax-ymin>=idy){
if (TMath::Abs( d->GetCoord2()-iy)>0.75*idy) continue;
if (TMath::Abs( d->GetCoord1()-iz)>0.75*idz) continue;
}
nodigits++;
Float_t qq=d->GetSignal();
y+=qq*fYSPD[d->GetCoord2()]; z+=qq*fZSPD[d->GetCoord1()]; q+=qq;
}
if (nodigits==0) continue;
y/=q; z/=q;
y-=fHwSPD; z-=fHlSPD;
Float_t lp[5];
lp[0]=-(-y+fYshift[fI]); if (fI<=fLastSPD1) lp[0]=-lp[0];
lp[1]= -z+fZshift[fI];
Float_t factory=TMath::Max(ymax-ymin,1);
Float_t factorz=TMath::Max(zmax-zmin,1);
factory*= factory;
factorz*= factorz;
lp[2]= (fYpitchSPD*fYpitchSPD/12.);
lp[3]= (fZ1pitchSPD*fZ1pitchSPD/12.);
lp[4]= (zmax-zmin+1)*100 + (ymax-ymin+1);
milab[3]=fNdet[fI];
Int_t info[3] = {ymax-ymin+1,zmax-zmin+1,fNlayer[fI]};
new (cl[n]) AliITSclusterV2(milab,lp,info); n++;
}
}
delete [] bins;
}
void AliITSclustererV2::FindClustersSPD(AliITSRawStream* input,
TClonesArray** clusters)
{
Int_t nClustersSPD = 0;
Int_t kNzBins = fNzSPD + 2;
Int_t kNyBins = fNySPD + 2;
Int_t kMaxBin = kNzBins * kNyBins;
AliBin *binsSPD = new AliBin[kMaxBin];
AliBin *binsSPDInit = new AliBin[kMaxBin];
AliBin *bins = NULL;
while (kTRUE) {
Bool_t next = input->Next();
if (!next || input->IsNewModule()) {
Int_t iModule = input->GetPrevModuleID();
if (bins) {
clusters[iModule] = new TClonesArray("AliITSclusterV2");
Int_t nClusters = 0;
for (Int_t iBin = 0; iBin < kMaxBin; iBin++) {
if (bins[iBin].IsUsed()) continue;
Int_t nBins = 0;
Int_t idxBins[200];
FindCluster(iBin, kNzBins, bins, nBins, idxBins);
if (nBins == 200) {
Error("FindClustersSPD", "SPD: Too big cluster !\n");
continue;
}
Int_t label[4];
label[0] = -2;
label[1] = -2;
label[2] = -2;
label[3] = fNdet[iModule];
Int_t ymin = (idxBins[0] / kNzBins) - 1;
Int_t ymax = ymin;
Int_t zmin = (idxBins[0] % kNzBins) - 1;
Int_t zmax = zmin;
for (Int_t idx = 0; idx < nBins; idx++) {
Int_t iy = (idxBins[idx] / kNzBins) - 1;
Int_t iz = (idxBins[idx] % kNzBins) - 1;
if (ymin > iy) ymin = iy;
if (ymax < iy) ymax = iy;
if (zmin > iz) zmin = iz;
if (zmax < iz) zmax = iz;
}
Int_t idy = 0;
if ((iModule <= fLastSPD1) &&idy<3) idy=3;
if ((iModule > fLastSPD1) &&idy<4) idy=4;
Int_t idz =3;
for (Int_t iiz=zmin; iiz<=zmax;iiz+=idz)
for (Int_t iiy=ymin; iiy<=ymax;iiy+=idy){
Int_t ndigits =0;
Float_t y=0.,z=0.,q=0.;
for (Int_t idx = 0; idx < nBins; idx++) {
Int_t iy = (idxBins[idx] / kNzBins) - 1;
Int_t iz = (idxBins[idx] % kNzBins) - 1;
if (zmax-zmin>=idz || ymax-ymin>=idy){
if (TMath::Abs(iy-iiy)>0.75*idy) continue;
if (TMath::Abs(iz-iiz)>0.75*idz) continue;
}
ndigits++;
Float_t qBin = bins[idxBins[idx]].GetQ();
y += qBin * fYSPD[iy];
z += qBin * fZSPD[iz];
q += qBin;
}
if (ndigits==0) continue;
y /= q;
z /= q;
y -= fHwSPD;
z -= fHlSPD;
Float_t hit[5];
hit[0] = -(-y+fYshift[iModule]);
if (iModule <= fLastSPD1) hit[0] = -hit[0];
hit[1] = -z+fZshift[iModule];
hit[2] = fYpitchSPD*fYpitchSPD/12.;
hit[3] = fZ1pitchSPD*fZ1pitchSPD/12.;
hit[4] = (zmax-zmin+1)*100 + (ymax-ymin+1);
Int_t info[3]={ymax-ymin+1,zmax-zmin+1,fNlayer[iModule]};
new (clusters[iModule]->AddrAt(nClusters))
AliITSclusterV2(label, hit,info);
nClusters++;
}
}
nClustersSPD += nClusters;
bins = NULL;
}
if (!next) break;
bins = binsSPD;
memcpy(binsSPD,binsSPDInit,sizeof(AliBin)*kMaxBin);
}
if(bins){
Int_t index = (input->GetCoord2()+1) * kNzBins + (input->GetCoord1()+1);
bins[index].SetIndex(index);
bins[index].SetMask(1);
bins[index].SetQ(1);
}
}
delete [] binsSPDInit;
delete [] binsSPD;
Info("FindClustersSPD", "found clusters in ITS SPD: %d", nClustersSPD);
}
Bool_t AliITSclustererV2::IsMaximum(Int_t k,Int_t max,const AliBin *bins) {
UShort_t q=bins[k].GetQ();
if (q==1023) return kFALSE;
if (bins[k-max].GetQ() > q) return kFALSE;
if (bins[k-1 ].GetQ() > q) return kFALSE;
if (bins[k+max].GetQ() > q) return kFALSE;
if (bins[k+1 ].GetQ() > q) return kFALSE;
if (bins[k-max-1].GetQ() > q) return kFALSE;
if (bins[k+max-1].GetQ() > q) return kFALSE;
if (bins[k+max+1].GetQ() > q) return kFALSE;
if (bins[k-max+1].GetQ() > q) return kFALSE;
return kTRUE;
}
void AliITSclustererV2::
FindPeaks(Int_t k,Int_t max,AliBin *b,Int_t *idx,UInt_t *msk,Int_t& n) {
if (n<31)
if (IsMaximum(k,max,b)) {
idx[n]=k; msk[n]=(2<<n);
n++;
}
b[k].SetMask(0);
if (b[k-max].GetMask()&1) FindPeaks(k-max,max,b,idx,msk,n);
if (b[k-1 ].GetMask()&1) FindPeaks(k-1 ,max,b,idx,msk,n);
if (b[k+max].GetMask()&1) FindPeaks(k+max,max,b,idx,msk,n);
if (b[k+1 ].GetMask()&1) FindPeaks(k+1 ,max,b,idx,msk,n);
}
void AliITSclustererV2::
MarkPeak(Int_t k, Int_t max, AliBin *bins, UInt_t m) {
UShort_t q=bins[k].GetQ();
bins[k].SetMask(bins[k].GetMask()|m);
if (bins[k-max].GetQ() <= q)
if ((bins[k-max].GetMask()&m) == 0) MarkPeak(k-max,max,bins,m);
if (bins[k-1 ].GetQ() <= q)
if ((bins[k-1 ].GetMask()&m) == 0) MarkPeak(k-1 ,max,bins,m);
if (bins[k+max].GetQ() <= q)
if ((bins[k+max].GetMask()&m) == 0) MarkPeak(k+max,max,bins,m);
if (bins[k+1 ].GetQ() <= q)
if ((bins[k+1 ].GetMask()&m) == 0) MarkPeak(k+1 ,max,bins,m);
}
void AliITSclustererV2::
MakeCluster(Int_t k,Int_t max,AliBin *bins,UInt_t m,AliITSclusterV2 &c) {
Float_t q=(Float_t)bins[k].GetQ();
Int_t i=k/max, j=k-i*max;
c.SetQ(c.GetQ()+q);
c.SetY(c.GetY()+i*q);
c.SetZ(c.GetZ()+j*q);
c.SetSigmaY2(c.GetSigmaY2()+i*i*q);
c.SetSigmaZ2(c.GetSigmaZ2()+j*j*q);
bins[k].SetMask(0xFFFFFFFE);
if (bins[k-max].GetMask() == m) MakeCluster(k-max,max,bins,m,c);
if (bins[k-1 ].GetMask() == m) MakeCluster(k-1 ,max,bins,m,c);
if (bins[k+max].GetMask() == m) MakeCluster(k+max,max,bins,m,c);
if (bins[k+1 ].GetMask() == m) MakeCluster(k+1 ,max,bins,m,c);
}
void AliITSclustererV2::
FindClustersSDD(AliBin* bins[2], Int_t nMaxBin, Int_t nzBins,
const TClonesArray *digits, TClonesArray *clusters) {
Int_t ncl=0; TClonesArray &cl=*clusters;
for (Int_t s=0; s<2; s++)
for (Int_t i=0; i<nMaxBin; i++) {
if (bins[s][i].IsUsed()) continue;
Int_t idx[32]; UInt_t msk[32]; Int_t npeaks=0;
FindPeaks(i, nzBins, bins[s], idx, msk, npeaks);
if (npeaks>30) continue;
if (npeaks==0) continue;
Int_t k,l;
for (k=0; k<npeaks-1; k++){
if (idx[k] < 0) continue;
for (l=k+1; l<npeaks; l++) {
if (idx[l] < 0) continue;
Int_t ki=idx[k]/nzBins, kj=idx[k] - ki*nzBins;
Int_t li=idx[l]/nzBins, lj=idx[l] - li*nzBins;
Int_t di=TMath::Abs(ki - li);
Int_t dj=TMath::Abs(kj - lj);
if (di>1 || dj>1) continue;
if (bins[s][idx[k]].GetQ() > bins[s][idx[l]].GetQ()) {
msk[l]=msk[k];
idx[l]*=-1;
} else {
msk[k]=msk[l];
idx[k]*=-1;
break;
}
}
}
for (k=0; k<npeaks; k++) {
MarkPeak(TMath::Abs(idx[k]), nzBins, bins[s], msk[k]);
}
for (k=0; k<npeaks; k++) {
if (idx[k] < 0) continue;
AliITSclusterV2 c;
MakeCluster(idx[k], nzBins, bins[s], msk[k], c);
Int_t milab[10];
for (Int_t ilab=0;ilab<10;ilab++){
milab[ilab]=-2;
}
Int_t maxi=0,mini=0,maxj=0,minj=0;
Float_t max=3;
for (Int_t di=-2; di<=2;di++)
for (Int_t dj=-3;dj<=3;dj++){
Int_t index = idx[k]+di+dj*nzBins;
if (index<0) continue;
if (index>=nMaxBin) continue;
AliBin *b=&bins[s][index];
if (TMath::Abs(b->GetQ())>max){
if (di>maxi) maxi=di;
if (di<mini) mini=di;
if (dj>maxj) maxj=dj;
if (dj<minj) minj=dj;
if(digits) {
if (TMath::Abs(di)<2&&TMath::Abs(dj)<2){
AliITSdigitSDD* d=(AliITSdigitSDD*)digits->UncheckedAt(b->GetIndex());
for (Int_t itrack=0;itrack<10;itrack++){
Int_t track = (d->GetTracks())[itrack];
if (track>=0) {
AddLabel(milab, track);
}
}
}
}
}
}
Float_t y=c.GetY(),z=c.GetZ(), q=c.GetQ();
y/=q; z/=q;
y=(y-0.5)*fYpitchSDD;
y-=fHwSDD;
y-=fYoffSDD;
if (s) y=-y;
z=(z-0.5)*fZpitchSDD;
z-=fHlSDD;
y=-(-y+fYshift[fI]);
z= -z+fZshift[fI];
q/=12.7;
Float_t hit[5] = {y, z, 0.0030*0.0030, 0.0020*0.0020, q};
Int_t info[3] = {maxj-minj+1, maxi-mini+1, fNlayer[fI]};
if (c.GetQ() < 20.) continue;
if (digits) {
{
CheckLabels2(milab);
}
}
milab[3]=fNdet[fI];
AliITSclusterV2 *cc = new (cl[ncl]) AliITSclusterV2(milab,hit,info);
cc->SetType(npeaks);
ncl++;
}
}
}
void AliITSclustererV2::
FindClustersSDD(const TClonesArray *digits, TClonesArray *clusters) {
Int_t kNzBins = fNzSDD + 2;
const Int_t kMAXBIN=kNzBins*(fNySDD+2);
AliBin *bins[2];
bins[0]=new AliBin[kMAXBIN];
bins[1]=new AliBin[kMAXBIN];
AliITSdigitSDD *d=0;
Int_t i, ndigits=digits->GetEntriesFast();
for (i=0; i<ndigits; i++) {
d=(AliITSdigitSDD*)digits->UncheckedAt(i);
Int_t y=d->GetCoord2()+1;
Int_t z=d->GetCoord1()+1;
Int_t q=d->GetSignal();
if (q<3) continue;
if (z <= fNzSDD) {
bins[0][y*kNzBins+z].SetQ(q);
bins[0][y*kNzBins+z].SetMask(1);
bins[0][y*kNzBins+z].SetIndex(i);
} else {
z-=fNzSDD;
bins[1][y*kNzBins+z].SetQ(q);
bins[1][y*kNzBins+z].SetMask(1);
bins[1][y*kNzBins+z].SetIndex(i);
}
}
FindClustersSDD(bins, kMAXBIN, kNzBins, digits, clusters);
delete[] bins[0];
delete[] bins[1];
}
void AliITSclustererV2::FindClustersSDD(AliITSRawStream* input,
TClonesArray** clusters)
{
Int_t nClustersSDD = 0;
Int_t kNzBins = fNzSDD + 2;
Int_t kMaxBin = kNzBins * (fNySDD+2);
AliBin *binsSDDInit = new AliBin[kMaxBin];
AliBin *binsSDD1 = new AliBin[kMaxBin];
AliBin *binsSDD2 = new AliBin[kMaxBin];
AliBin *bins[2] = {NULL, NULL};
while (kTRUE) {
Bool_t next = input->Next();
if (!next || input->IsNewModule()) {
Int_t iModule = input->GetPrevModuleID();
if (bins[0]) {
clusters[iModule] = new TClonesArray("AliITSclusterV2");
fI = iModule;
FindClustersSDD(bins, kMaxBin, kNzBins, NULL, clusters[iModule]);
Int_t nClusters = clusters[iModule]->GetEntriesFast();
nClustersSDD += nClusters;
bins[0] = bins[1] = NULL;
}
if (!next) break;
bins[0]=binsSDD1;
bins[1]=binsSDD2;
memcpy(binsSDD1,binsSDDInit,sizeof(AliBin)*kMaxBin);
memcpy(binsSDD2,binsSDDInit,sizeof(AliBin)*kMaxBin);
}
if(input->GetSignal()>=3) {
Int_t iz = input->GetCoord1()+1;
Int_t side = ((iz <= fNzSDD) ? 0 : 1);
iz -= side*fNzSDD;
Int_t index = (input->GetCoord2()+1) * kNzBins + iz;
bins[side][index].SetQ(input->GetSignal());
bins[side][index].SetMask(1);
bins[side][index].SetIndex(index);
}
}
delete[] binsSDD1;
delete[] binsSDD2;
delete[] binsSDDInit;
Info("FindClustersSDD", "found clusters in ITS SDD: %d", nClustersSDD);
}
void AliITSclustererV2::
FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
Ali1Dcluster* pos, Int_t np,
TClonesArray *clusters) {
TClonesArray &cl=*clusters;
Float_t tanp=fTanP, tann=fTanN;
if (fI>fLastSSD1) {tann=fTanP; tanp=fTanN;}
Int_t idet=fNdet[fI];
Int_t ncl=0;
Int_t negativepair[30000];
Int_t cnegative[3000];
Int_t cused1[3000];
Int_t positivepair[30000];
Int_t cpositive[3000];
Int_t cused2[3000];
for (Int_t i=0;i<3000;i++) {cnegative[i]=0; cused1[i]=0;}
for (Int_t i=0;i<3000;i++) {cpositive[i]=0; cused2[i]=0;}
for (Int_t i=0;i<30000;i++){negativepair[i]=positivepair[i]=0;}
static Short_t pairs[1000][1000];
memset(pairs,0,sizeof(Short_t)*1000000);
for (Int_t i=0; i<np; i++) {
Float_t yp=pos[i].GetY()*fYpitchSSD;
if (pos[i].GetQ()<3) continue;
for (Int_t j=0; j<nn; j++) {
if (neg[j].GetQ()<3) continue;
Float_t yn=neg[j].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
if (TMath::Abs(yt)<fHwSSD+0.01)
if (TMath::Abs(zt)<fHlSSD+0.01*(neg[j].GetNd()+pos[i].GetNd())) {
negativepair[i*10+cnegative[i]] =j;
positivepair[j*10+cpositive[j]] =i;
cnegative[i]++;
cpositive[j]++;
pairs[i][j]=100;
}
}
}
for (Int_t i=0; i<np; i++) {
Float_t yp=pos[i].GetY()*fYpitchSSD;
if (pos[i].GetQ()<3) continue;
for (Int_t j=0; j<nn; j++) {
if (neg[j].GetQ()<3) continue;
if (cpositive[j]&&cnegative[i]) continue;
Float_t yn=neg[j].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
if (TMath::Abs(yt)<fHwSSD+0.1)
if (TMath::Abs(zt)<fHlSSD+0.15) {
if (cnegative[i]==0) pos[i].SetNd(100);
if (cpositive[j]==0) neg[j].SetNd(100);
negativepair[i*10+cnegative[i]] =j;
positivepair[j*10+cpositive[j]] =i;
cnegative[i]++;
cpositive[j]++;
pairs[i][j]=100;
}
}
}
Float_t lp[5];
Int_t milab[10];
Double_t ratio;
for (Int_t ip=0;ip<np;ip++){
Float_t ybest=1000,zbest=1000,qbest=0;
if ( (cnegative[ip]==1) && cpositive[negativepair[10*ip]]==1){
Float_t yp=pos[ip].GetY()*fYpitchSSD;
Int_t j = negativepair[10*ip];
ratio = (pos[ip].GetQ()-neg[j].GetQ())/(pos[ip].GetQ()+neg[j].GetQ());
Float_t yn=neg[j].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
ybest=yt; zbest=zt;
qbest=0.5*(pos[ip].GetQ()+neg[j].GetQ());
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[ip].GetLabel(ilab);
milab[ilab+3] = neg[j].GetLabel(ilab);
}
CheckLabels2(milab);
milab[3]=(((ip<<10) + j)<<10) + idet;
Int_t info[3] = {pos[ip].GetNd(),neg[j].GetNd(),fNlayer[fI]};
AliITSclusterV2 * cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
cl2->SetType(1);
pairs[ip][j]=1;
if ((pos[ip].GetNd()+neg[j].GetNd())>6){
cl2->SetType(2);
pairs[ip][j]=2;
}
cused1[ip]++;
cused2[j]++;
}
}
for (Int_t ip=0;ip<np;ip++){
Float_t ybest=1000,zbest=1000,qbest=0;
if ( cnegative[ip]==1 && cpositive[negativepair[10*ip]]==2){
Int_t in = negativepair[10*ip];
Int_t ip2 = positivepair[10*in];
if (ip2==ip) ip2 = positivepair[10*in+1];
Float_t pcharge = pos[ip].GetQ()+pos[ip2].GetQ();
if (TMath::Abs(pcharge-neg[in].GetQ())<10){
if (pairs[ip][in]==100){
Float_t yp=pos[ip].GetY()*fYpitchSSD;
Float_t yn=neg[in].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
ybest =yt; zbest=zt;
qbest =pos[ip].GetQ();
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[ip].GetLabel(ilab);
milab[ilab+3] = neg[in].GetLabel(ilab);
}
CheckLabels2(milab);
ratio = (pos[ip].GetQ()-neg[in].GetQ())/(pos[ip].GetQ()+neg[in].GetQ());
milab[3]=(((ip<<10) + in)<<10) + idet;
Int_t info[3] = {pos[ip].GetNd(),neg[in].GetNd(),fNlayer[fI]};
AliITSclusterV2 * cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
cl2->SetType(5);
pairs[ip][in] = 5;
if ((pos[ip].GetNd()+neg[in].GetNd())>6){
cl2->SetType(6);
pairs[ip][in] = 6;
}
}
if (pairs[ip2][in]==100){
Float_t yp=pos[ip2].GetY()*fYpitchSSD;
Float_t yn=neg[in].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
ybest =yt; zbest=zt;
qbest =pos[ip2].GetQ();
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[ip2].GetLabel(ilab);
milab[ilab+3] = neg[in].GetLabel(ilab);
}
CheckLabels2(milab);
ratio = (pos[ip2].GetQ()-neg[in].GetQ())/(pos[ip2].GetQ()+neg[in].GetQ());
milab[3]=(((ip2<<10) + in)<<10) + idet;
Int_t info[3] = {pos[ip2].GetNd(),neg[in].GetNd(),fNlayer[fI]};
AliITSclusterV2 *cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
cl2->SetType(5);
pairs[ip2][in] =5;
if ((pos[ip2].GetNd()+neg[in].GetNd())>6){
cl2->SetType(6);
pairs[ip2][in] =6;
}
}
cused1[ip]++;
cused1[ip2]++;
cused2[in]++;
}
}
}
for (Int_t jn=0;jn<nn;jn++){
if (cused2[jn]) continue;
Float_t ybest=1000,zbest=1000,qbest=0;
if ( cpositive[jn]==1 && cnegative[positivepair[10*jn]]==2){
Int_t ip = positivepair[10*jn];
Int_t jn2 = negativepair[10*ip];
if (jn2==jn) jn2 = negativepair[10*ip+1];
Float_t pcharge = neg[jn].GetQ()+neg[jn2].GetQ();
if (TMath::Abs(pcharge-pos[ip].GetQ())<10){
if (pairs[ip][jn]==100){
Float_t yn=neg[jn].GetY()*fYpitchSSD;
Float_t yp=pos[ip].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
ybest =yt; zbest=zt;
qbest =neg[jn].GetQ();
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[ip].GetLabel(ilab);
milab[ilab+3] = neg[jn].GetLabel(ilab);
}
CheckLabels2(milab);
ratio = (pos[ip].GetQ()-neg[jn].GetQ())/(pos[ip].GetQ()+neg[jn].GetQ());
milab[3]=(((ip<<10) + jn)<<10) + idet;
Int_t info[3] = {pos[ip].GetNd(),neg[jn].GetNd(),fNlayer[fI]};
AliITSclusterV2 * cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
cl2->SetType(7);
pairs[ip][jn] =7;
if ((pos[ip].GetNd()+neg[jn].GetNd())>6){
cl2->SetType(8);
pairs[ip][jn]=8;
}
}
if (pairs[ip][jn2]==100){
Float_t yn=neg[jn2].GetY()*fYpitchSSD;
Double_t yp=pos[ip].GetY()*fYpitchSSD;
Double_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Double_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
ybest =yt; zbest=zt;
qbest =neg[jn2].GetQ();
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[ip].GetLabel(ilab);
milab[ilab+3] = neg[jn2].GetLabel(ilab);
}
CheckLabels2(milab);
ratio = (pos[ip].GetQ()-neg[jn2].GetQ())/(pos[ip].GetQ()+neg[jn2].GetQ());
milab[3]=(((ip<<10) + jn2)<<10) + idet;
Int_t info[3] = {pos[ip].GetNd(),neg[jn2].GetNd(),fNlayer[fI]};
AliITSclusterV2* cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
pairs[ip][jn2]=7;
cl2->SetType(7);
if ((pos[ip].GetNd()+neg[jn2].GetNd())>6){
cl2->SetType(8);
pairs[ip][jn2]=8;
}
}
cused1[ip]++;
cused2[jn]++;
cused2[jn2]++;
}
}
}
for (Int_t ip=0;ip<np;ip++){
Float_t ybest=1000,zbest=1000,qbest=0;
if ( (cnegative[ip]<5) && cpositive[negativepair[10*ip]]<5){
Float_t minchargediff =4.;
Int_t j=-1;
for (Int_t di=0;di<cnegative[ip];di++){
Int_t jc = negativepair[ip*10+di];
Float_t chargedif = pos[ip].GetQ()-neg[jc].GetQ();
if (TMath::Abs(chargedif)<minchargediff){
j =jc;
minchargediff = TMath::Abs(chargedif);
}
}
if (j<0) continue;
Int_t count =0;
for (Int_t di=0;di<cnegative[ip];di++){
Int_t jc = negativepair[ip*10+di];
Float_t chargedif = pos[ip].GetQ()-neg[jc].GetQ();
if (TMath::Abs(chargedif)<minchargediff+3.) count++;
}
if (count>1) continue;
count =0;
for (Int_t dj=0;dj<cpositive[j];dj++){
Int_t ic = positivepair[j*10+dj];
Float_t chargedif = pos[ic].GetQ()-neg[j].GetQ();
if (TMath::Abs(chargedif)<minchargediff+3.) count++;
}
if (count>1) continue;
Int_t jp = 0;
count =0;
for (Int_t dj=0;dj<cnegative[jp];dj++){
Int_t ic = positivepair[jp*10+dj];
Float_t chargedif = pos[ic].GetQ()-neg[jp].GetQ();
if (TMath::Abs(chargedif)<minchargediff+4.) count++;
}
if (count>1) continue;
if (pairs[ip][j]<100) continue;
Float_t yp=pos[ip].GetY()*fYpitchSSD;
Float_t yn=neg[j].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
ybest=yt; zbest=zt;
qbest=0.5*(pos[ip].GetQ()+neg[j].GetQ());
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[ip].GetLabel(ilab);
milab[ilab+3] = neg[j].GetLabel(ilab);
}
CheckLabels2(milab);
ratio = (pos[ip].GetQ()-neg[j].GetQ())/(pos[ip].GetQ()+neg[j].GetQ());
milab[3]=(((ip<<10) + j)<<10) + idet;
Int_t info[3] = {pos[ip].GetNd(),neg[j].GetNd(),fNlayer[fI]};
AliITSclusterV2 * cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
cl2->SetType(10);
pairs[ip][j]=10;
if ((pos[ip].GetNd()+neg[j].GetNd())>6){
cl2->SetType(11);
pairs[ip][j]=11;
}
cused1[ip]++;
cused2[j]++;
}
}
for (Int_t i=0; i<np; i++) {
Float_t ybest=1000,zbest=1000,qbest=0;
Float_t yp=pos[i].GetY()*fYpitchSSD;
if (pos[i].GetQ()<3) continue;
for (Int_t j=0; j<nn; j++) {
if (neg[j].GetQ()<3) continue;
if (cused2[j]||cused1[i]) continue;
if (pairs[i][j]>0 &&pairs[i][j]<100) continue;
ratio = (pos[i].GetQ()-neg[j].GetQ())/(pos[i].GetQ()+neg[j].GetQ());
Float_t yn=neg[j].GetY()*fYpitchSSD;
Float_t zt=(2*fHlSSD*tanp + yp - yn)/(tann+tanp);
Float_t yt=yn + tann*zt;
zt-=fHlSSD; yt-=fHwSSD;
if (TMath::Abs(yt)<fHwSSD+0.01)
if (TMath::Abs(zt)<fHlSSD+0.01*(neg[j].GetNd()+pos[i].GetNd())) {
ybest=yt; zbest=zt;
qbest=0.5*(pos[i].GetQ()+neg[j].GetQ());
lp[0]=-(-ybest+fYshift[fI]);
lp[1]= -zbest+fZshift[fI];
lp[2]=0.0025*0.0025;
lp[3]=0.110*0.110;
lp[4]=qbest;
for (Int_t ilab=0;ilab<10;ilab++) milab[ilab]=-2;
for (Int_t ilab=0;ilab<3;ilab++){
milab[ilab] = pos[i].GetLabel(ilab);
milab[ilab+3] = neg[j].GetLabel(ilab);
}
CheckLabels2(milab);
milab[3]=(((i<<10) + j)<<10) + idet;
Int_t info[3] = {pos[i].GetNd(),neg[j].GetNd(),fNlayer[fI]};
AliITSclusterV2 * cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
ncl++;
cl2->SetChargeRatio(ratio);
cl2->SetType(100+cpositive[j]+cnegative[i]);
}
}
}
}
void AliITSclustererV2::
FindClustersSSD(const TClonesArray *alldigits, TClonesArray *clusters) {
Int_t smaxall=alldigits->GetEntriesFast();
if (smaxall==0) return;
TObjArray *digits = new TObjArray;
for (Int_t i=0;i<smaxall; i++){
AliITSdigitSSD *d=(AliITSdigitSSD*)alldigits->UncheckedAt(i);
if (d->GetSignal()<3) continue;
digits->AddLast(d);
}
Int_t smax = digits->GetEntriesFast();
if (smax==0) return;
const Int_t mMAX=1000;
Int_t np=0, nn=0;
Ali1Dcluster pos[mMAX], neg[mMAX];
Float_t y=0., q=0., qmax=0.;
Int_t lab[4]={-2,-2,-2,-2};
AliITSdigitSSD *d=(AliITSdigitSSD*)digits->UncheckedAt(0);
q += d->GetSignal();
y += d->GetCoord2()*d->GetSignal();
qmax=d->GetSignal();
lab[0]=d->GetTrack(0); lab[1]=d->GetTrack(1); lab[2]=d->GetTrack(2);
Int_t curr=d->GetCoord2();
Int_t flag=d->GetCoord1();
Int_t *n=&nn;
Ali1Dcluster *c=neg;
Int_t nd=1;
Int_t milab[10];
for (Int_t ilab=0;ilab<10;ilab++){
milab[ilab]=-2;
}
milab[0]=d->GetTrack(0); milab[1]=d->GetTrack(1); milab[2]=d->GetTrack(2);
for (Int_t s=1; s<smax; s++) {
d=(AliITSdigitSSD*)digits->UncheckedAt(s);
Int_t strip=d->GetCoord2();
if ((strip-curr) > 1 || flag!=d->GetCoord1()) {
c[*n].SetY(y/q);
c[*n].SetQ(q);
c[*n].SetNd(nd);
CheckLabels2(milab);
c[*n].SetLabels(milab);
if (nd>4&&nd<25) {
c[*n].SetY(y/q-0.25*nd);
c[*n].SetQ(0.5*q);
(*n)++;
if (*n==mMAX) {
Error("FindClustersSSD","Too many 1D clusters !");
return;
}
c[*n].SetY(y/q+0.25*nd);
c[*n].SetQ(0.5*q);
c[*n].SetNd(nd);
c[*n].SetLabels(milab);
}
(*n)++;
if (*n==mMAX) {
Error("FindClustersSSD","Too many 1D clusters !");
return;
}
y=q=qmax=0.;
nd=0;
lab[0]=lab[1]=lab[2]=-2;
for (Int_t ilab=0;ilab<10;ilab++){
milab[ilab]=-2;
}
if (flag!=d->GetCoord1()) { n=&np; c=pos; }
}
flag=d->GetCoord1();
q += d->GetSignal();
y += d->GetCoord2()*d->GetSignal();
nd++;
if (d->GetSignal()>qmax) {
qmax=d->GetSignal();
lab[0]=d->GetTrack(0); lab[1]=d->GetTrack(1); lab[2]=d->GetTrack(2);
}
for (Int_t ilab=0;ilab<10;ilab++) {
if (d->GetTrack(ilab)>=0) AddLabel(milab, (d->GetTrack(ilab)));
}
curr=strip;
}
c[*n].SetY(y/q);
c[*n].SetQ(q);
c[*n].SetNd(nd);
c[*n].SetLabels(lab);
if (nd>4 && nd<25) {
c[*n].SetY(y/q-0.25*nd);
c[*n].SetQ(0.5*q);
(*n)++;
if (*n==mMAX) {
Error("FindClustersSSD","Too many 1D clusters !");
return;
}
c[*n].SetY(y/q+0.25*nd);
c[*n].SetQ(0.5*q);
c[*n].SetNd(nd);
c[*n].SetLabels(lab);
}
(*n)++;
if (*n==mMAX) {
Error("FindClustersSSD","Too many 1D clusters !");
return;
}
FindClustersSSD(neg, nn, pos, np, clusters);
}
void AliITSclustererV2::FindClustersSSD(AliITSRawStream* input,
TClonesArray** clusters)
{
Int_t nClustersSSD = 0;
const Int_t mMAX = 1000;
Ali1Dcluster clusters1D[2][mMAX];
Int_t nClusters[2] = {0, 0};
Int_t lab[3]={-2,-2,-2};
Float_t q = 0.;
Float_t y = 0.;
Int_t nDigits = 0;
Int_t prevStrip = -1;
Int_t prevFlag = -1;
Int_t prevModule = -1;
while (kTRUE) {
Bool_t next = input->Next();
if(input->GetSignal()<3 && next) continue;
Int_t strip = input->GetCoord2();
Int_t flag = input->GetCoord1();
if ((!next || (input->GetModuleID() != prevModule)||
(strip-prevStrip > 1) || (flag != prevFlag)) &&
(nDigits > 0)) {
if (nClusters[prevFlag] == mMAX) {
Error("FindClustersSSD", "Too many 1D clusters !");
return;
}
Ali1Dcluster& cluster = clusters1D[prevFlag][nClusters[prevFlag]++];
cluster.SetY(y/q);
cluster.SetQ(q);
cluster.SetNd(nDigits);
cluster.SetLabels(lab);
if (nDigits > 4&&nDigits < 25) {
cluster.SetY(y/q - 0.25*nDigits);
cluster.SetQ(0.5*q);
if (nClusters[prevFlag] == mMAX) {
Error("FindClustersSSD", "Too many 1D clusters !");
return;
}
Ali1Dcluster& cluster2 = clusters1D[prevFlag][nClusters[prevFlag]++];
cluster2.SetY(y/q + 0.25*nDigits);
cluster2.SetQ(0.5*q);
cluster2.SetNd(nDigits);
cluster2.SetLabels(lab);
}
y = q = 0.;
nDigits = 0;
}
if (!next || (input->GetModuleID() != prevModule)) {
Int_t iModule = prevModule;
if (prevFlag >= 0) {
clusters[iModule] = new TClonesArray("AliITSclusterV2");
fI = iModule;
FindClustersSSD(&clusters1D[0][0], nClusters[0],
&clusters1D[1][0], nClusters[1], clusters[iModule]);
Int_t noClusters = clusters[iModule]->GetEntriesFast();
nClustersSSD += noClusters;
}
if (!next) break;
nClusters[0] = nClusters[1] = 0;
y = q = 0.;
nDigits = 0;
}
q += input->GetSignal();
y += strip * input->GetSignal();
nDigits++;
prevStrip = strip;
prevFlag = flag;
prevModule = input->GetModuleID();
}
Info("FindClustersSSD", "found clusters in ITS SSD: %d", nClustersSSD);
}
AliITSclustererV2.cxx:100 AliITSclustererV2.cxx:101 AliITSclustererV2.cxx:102 AliITSclustererV2.cxx:103 AliITSclustererV2.cxx:104 AliITSclustererV2.cxx:105 AliITSclustererV2.cxx:106 AliITSclustererV2.cxx:107 AliITSclustererV2.cxx:108 AliITSclustererV2.cxx:109 AliITSclustererV2.cxx:110 AliITSclustererV2.cxx:111 AliITSclustererV2.cxx:112 AliITSclustererV2.cxx:113 AliITSclustererV2.cxx:114 AliITSclustererV2.cxx:115 AliITSclustererV2.cxx:116 AliITSclustererV2.cxx:117 AliITSclustererV2.cxx:118 AliITSclustererV2.cxx:119 AliITSclustererV2.cxx:120 AliITSclustererV2.cxx:121 AliITSclustererV2.cxx:122 AliITSclustererV2.cxx:123 AliITSclustererV2.cxx:124 AliITSclustererV2.cxx:125 AliITSclustererV2.cxx:126 AliITSclustererV2.cxx:127 AliITSclustererV2.cxx:128 AliITSclustererV2.cxx:129 AliITSclustererV2.cxx:130 AliITSclustererV2.cxx:131 AliITSclustererV2.cxx:132 AliITSclustererV2.cxx:133 AliITSclustererV2.cxx:134 AliITSclustererV2.cxx:135 AliITSclustererV2.cxx:136 AliITSclustererV2.cxx:137 AliITSclustererV2.cxx:138 AliITSclustererV2.cxx:139 AliITSclustererV2.cxx:140 AliITSclustererV2.cxx:141 AliITSclustererV2.cxx:142 AliITSclustererV2.cxx:143 AliITSclustererV2.cxx:144 AliITSclustererV2.cxx:145 AliITSclustererV2.cxx:146 AliITSclustererV2.cxx:147 AliITSclustererV2.cxx:148 AliITSclustererV2.cxx:149 AliITSclustererV2.cxx:150 AliITSclustererV2.cxx:151 AliITSclustererV2.cxx:152 AliITSclustererV2.cxx:153 AliITSclustererV2.cxx:154 AliITSclustererV2.cxx:155 AliITSclustererV2.cxx:156 AliITSclustererV2.cxx:157 AliITSclustererV2.cxx:158 AliITSclustererV2.cxx:159 AliITSclustererV2.cxx:160 AliITSclustererV2.cxx:161 AliITSclustererV2.cxx:162 AliITSclustererV2.cxx:163 AliITSclustererV2.cxx:164 AliITSclustererV2.cxx:165 AliITSclustererV2.cxx:166 AliITSclustererV2.cxx:167 AliITSclustererV2.cxx:168 AliITSclustererV2.cxx:169 AliITSclustererV2.cxx:170 AliITSclustererV2.cxx:171 AliITSclustererV2.cxx:172 AliITSclustererV2.cxx:173 AliITSclustererV2.cxx:174 AliITSclustererV2.cxx:175 AliITSclustererV2.cxx:176 AliITSclustererV2.cxx:177 AliITSclustererV2.cxx:178 AliITSclustererV2.cxx:179 AliITSclustererV2.cxx:180 AliITSclustererV2.cxx:181 AliITSclustererV2.cxx:182 AliITSclustererV2.cxx:183 AliITSclustererV2.cxx:184 AliITSclustererV2.cxx:185 AliITSclustererV2.cxx:186 AliITSclustererV2.cxx:187 AliITSclustererV2.cxx:188 AliITSclustererV2.cxx:189 AliITSclustererV2.cxx:190 AliITSclustererV2.cxx:191 AliITSclustererV2.cxx:192 AliITSclustererV2.cxx:193 AliITSclustererV2.cxx:194 AliITSclustererV2.cxx:195 AliITSclustererV2.cxx:196 AliITSclustererV2.cxx:197 AliITSclustererV2.cxx:198 AliITSclustererV2.cxx:199 AliITSclustererV2.cxx:200 AliITSclustererV2.cxx:201 AliITSclustererV2.cxx:202 AliITSclustererV2.cxx:203 AliITSclustererV2.cxx:204 AliITSclustererV2.cxx:205 AliITSclustererV2.cxx:206 AliITSclustererV2.cxx:207 AliITSclustererV2.cxx:208 AliITSclustererV2.cxx:209 AliITSclustererV2.cxx:210 AliITSclustererV2.cxx:211 AliITSclustererV2.cxx:212 AliITSclustererV2.cxx:213 AliITSclustererV2.cxx:214 AliITSclustererV2.cxx:215 AliITSclustererV2.cxx:216 AliITSclustererV2.cxx:217 AliITSclustererV2.cxx:218 AliITSclustererV2.cxx:219 AliITSclustererV2.cxx:220 AliITSclustererV2.cxx:221 AliITSclustererV2.cxx:222 AliITSclustererV2.cxx:223 AliITSclustererV2.cxx:224 AliITSclustererV2.cxx:225 AliITSclustererV2.cxx:226 AliITSclustererV2.cxx:227 AliITSclustererV2.cxx:228 AliITSclustererV2.cxx:229 AliITSclustererV2.cxx:230 AliITSclustererV2.cxx:231 AliITSclustererV2.cxx:232 AliITSclustererV2.cxx:233 AliITSclustererV2.cxx:234 AliITSclustererV2.cxx:235 AliITSclustererV2.cxx:236 AliITSclustererV2.cxx:237 AliITSclustererV2.cxx:238 AliITSclustererV2.cxx:239 AliITSclustererV2.cxx:240 AliITSclustererV2.cxx:241 AliITSclustererV2.cxx:242 AliITSclustererV2.cxx:243 AliITSclustererV2.cxx:244 AliITSclustererV2.cxx:245 AliITSclustererV2.cxx:246 AliITSclustererV2.cxx:247 AliITSclustererV2.cxx:248 AliITSclustererV2.cxx:249 AliITSclustererV2.cxx:250 AliITSclustererV2.cxx:251 AliITSclustererV2.cxx:252 AliITSclustererV2.cxx:253 AliITSclustererV2.cxx:254 AliITSclustererV2.cxx:255 AliITSclustererV2.cxx:256 AliITSclustererV2.cxx:257 AliITSclustererV2.cxx:258 AliITSclustererV2.cxx:259 AliITSclustererV2.cxx:260 AliITSclustererV2.cxx:261 AliITSclustererV2.cxx:262 AliITSclustererV2.cxx:263 AliITSclustererV2.cxx:264 AliITSclustererV2.cxx:265 AliITSclustererV2.cxx:266 AliITSclustererV2.cxx:267 AliITSclustererV2.cxx:268 AliITSclustererV2.cxx:269 AliITSclustererV2.cxx:270 AliITSclustererV2.cxx:271 AliITSclustererV2.cxx:272 AliITSclustererV2.cxx:273 AliITSclustererV2.cxx:274 AliITSclustererV2.cxx:275 AliITSclustererV2.cxx:276 AliITSclustererV2.cxx:277 AliITSclustererV2.cxx:278 AliITSclustererV2.cxx:279 AliITSclustererV2.cxx:280 AliITSclustererV2.cxx:281 AliITSclustererV2.cxx:282 AliITSclustererV2.cxx:283 AliITSclustererV2.cxx:284 AliITSclustererV2.cxx:285 AliITSclustererV2.cxx:286 AliITSclustererV2.cxx:287 AliITSclustererV2.cxx:288 AliITSclustererV2.cxx:289 AliITSclustererV2.cxx:290 AliITSclustererV2.cxx:291 AliITSclustererV2.cxx:292 AliITSclustererV2.cxx:293 AliITSclustererV2.cxx:294 AliITSclustererV2.cxx:295 AliITSclustererV2.cxx:296 AliITSclustererV2.cxx:297 AliITSclustererV2.cxx:298 AliITSclustererV2.cxx:299 AliITSclustererV2.cxx:300 AliITSclustererV2.cxx:301 AliITSclustererV2.cxx:302 AliITSclustererV2.cxx:303 AliITSclustererV2.cxx:304 AliITSclustererV2.cxx:305 AliITSclustererV2.cxx:306 AliITSclustererV2.cxx:307 AliITSclustererV2.cxx:308 AliITSclustererV2.cxx:309 AliITSclustererV2.cxx:310 AliITSclustererV2.cxx:311 AliITSclustererV2.cxx:312 AliITSclustererV2.cxx:313 AliITSclustererV2.cxx:314 AliITSclustererV2.cxx:315 AliITSclustererV2.cxx:316 AliITSclustererV2.cxx:317 AliITSclustererV2.cxx:318 AliITSclustererV2.cxx:319 AliITSclustererV2.cxx:320 AliITSclustererV2.cxx:321 AliITSclustererV2.cxx:322 AliITSclustererV2.cxx:323 AliITSclustererV2.cxx:324 AliITSclustererV2.cxx:325 AliITSclustererV2.cxx:326 AliITSclustererV2.cxx:327 AliITSclustererV2.cxx:328 AliITSclustererV2.cxx:329 AliITSclustererV2.cxx:330 AliITSclustererV2.cxx:331 AliITSclustererV2.cxx:332 AliITSclustererV2.cxx:333 AliITSclustererV2.cxx:334 AliITSclustererV2.cxx:335 AliITSclustererV2.cxx:336 AliITSclustererV2.cxx:337 AliITSclustererV2.cxx:338 AliITSclustererV2.cxx:339 AliITSclustererV2.cxx:340 AliITSclustererV2.cxx:341 AliITSclustererV2.cxx:342 AliITSclustererV2.cxx:343 AliITSclustererV2.cxx:344 AliITSclustererV2.cxx:345 AliITSclustererV2.cxx:346 AliITSclustererV2.cxx:347 AliITSclustererV2.cxx:348 AliITSclustererV2.cxx:349 AliITSclustererV2.cxx:350 AliITSclustererV2.cxx:351 AliITSclustererV2.cxx:352 AliITSclustererV2.cxx:353 AliITSclustererV2.cxx:354 AliITSclustererV2.cxx:355 AliITSclustererV2.cxx:356 AliITSclustererV2.cxx:357 AliITSclustererV2.cxx:358 AliITSclustererV2.cxx:359 AliITSclustererV2.cxx:360 AliITSclustererV2.cxx:361 AliITSclustererV2.cxx:362 AliITSclustererV2.cxx:363 AliITSclustererV2.cxx:364 AliITSclustererV2.cxx:365 AliITSclustererV2.cxx:366 AliITSclustererV2.cxx:367 AliITSclustererV2.cxx:368 AliITSclustererV2.cxx:369 AliITSclustererV2.cxx:370 AliITSclustererV2.cxx:371 AliITSclustererV2.cxx:372 AliITSclustererV2.cxx:373 AliITSclustererV2.cxx:374 AliITSclustererV2.cxx:375 AliITSclustererV2.cxx:376 AliITSclustererV2.cxx:377 AliITSclustererV2.cxx:378 AliITSclustererV2.cxx:379 AliITSclustererV2.cxx:380 AliITSclustererV2.cxx:381 AliITSclustererV2.cxx:382 AliITSclustererV2.cxx:383 AliITSclustererV2.cxx:384 AliITSclustererV2.cxx:385 AliITSclustererV2.cxx:386 AliITSclustererV2.cxx:387 AliITSclustererV2.cxx:388 AliITSclustererV2.cxx:389 AliITSclustererV2.cxx:390 AliITSclustererV2.cxx:391 AliITSclustererV2.cxx:392 AliITSclustererV2.cxx:393 AliITSclustererV2.cxx:394 AliITSclustererV2.cxx:395 AliITSclustererV2.cxx:396 AliITSclustererV2.cxx:397 AliITSclustererV2.cxx:398 AliITSclustererV2.cxx:399 AliITSclustererV2.cxx:400 AliITSclustererV2.cxx:401 AliITSclustererV2.cxx:402 AliITSclustererV2.cxx:403 AliITSclustererV2.cxx:404 AliITSclustererV2.cxx:405 AliITSclustererV2.cxx:406 AliITSclustererV2.cxx:407 AliITSclustererV2.cxx:408 AliITSclustererV2.cxx:409 AliITSclustererV2.cxx:410 AliITSclustererV2.cxx:411 AliITSclustererV2.cxx:412 AliITSclustererV2.cxx:413 AliITSclustererV2.cxx:414 AliITSclustererV2.cxx:415 AliITSclustererV2.cxx:416 AliITSclustererV2.cxx:417 AliITSclustererV2.cxx:418 AliITSclustererV2.cxx:419 AliITSclustererV2.cxx:420 AliITSclustererV2.cxx:421 AliITSclustererV2.cxx:422 AliITSclustererV2.cxx:423 AliITSclustererV2.cxx:424 AliITSclustererV2.cxx:425 AliITSclustererV2.cxx:426 AliITSclustererV2.cxx:427 AliITSclustererV2.cxx:428 AliITSclustererV2.cxx:429 AliITSclustererV2.cxx:430 AliITSclustererV2.cxx:431 AliITSclustererV2.cxx:432 AliITSclustererV2.cxx:433 AliITSclustererV2.cxx:434 AliITSclustererV2.cxx:435 AliITSclustererV2.cxx:436 AliITSclustererV2.cxx:437 AliITSclustererV2.cxx:438 AliITSclustererV2.cxx:439 AliITSclustererV2.cxx:440 AliITSclustererV2.cxx:441 AliITSclustererV2.cxx:442 AliITSclustererV2.cxx:443 AliITSclustererV2.cxx:444 AliITSclustererV2.cxx:445 AliITSclustererV2.cxx:446 AliITSclustererV2.cxx:447 AliITSclustererV2.cxx:448 AliITSclustererV2.cxx:449 AliITSclustererV2.cxx:450 AliITSclustererV2.cxx:451 AliITSclustererV2.cxx:452 AliITSclustererV2.cxx:453 AliITSclustererV2.cxx:454 AliITSclustererV2.cxx:455 AliITSclustererV2.cxx:456 AliITSclustererV2.cxx:457 AliITSclustererV2.cxx:458 AliITSclustererV2.cxx:459 AliITSclustererV2.cxx:460 AliITSclustererV2.cxx:461 AliITSclustererV2.cxx:462 AliITSclustererV2.cxx:463 AliITSclustererV2.cxx:464 AliITSclustererV2.cxx:465 AliITSclustererV2.cxx:466 AliITSclustererV2.cxx:467 AliITSclustererV2.cxx:468 AliITSclustererV2.cxx:469 AliITSclustererV2.cxx:470 AliITSclustererV2.cxx:471 AliITSclustererV2.cxx:472 AliITSclustererV2.cxx:473 AliITSclustererV2.cxx:474 AliITSclustererV2.cxx:475 AliITSclustererV2.cxx:476 AliITSclustererV2.cxx:477 AliITSclustererV2.cxx:478 AliITSclustererV2.cxx:479 AliITSclustererV2.cxx:480 AliITSclustererV2.cxx:481 AliITSclustererV2.cxx:482 AliITSclustererV2.cxx:483 AliITSclustererV2.cxx:484 AliITSclustererV2.cxx:485 AliITSclustererV2.cxx:486 AliITSclustererV2.cxx:487 AliITSclustererV2.cxx:488 AliITSclustererV2.cxx:489 AliITSclustererV2.cxx:490 AliITSclustererV2.cxx:491 AliITSclustererV2.cxx:492 AliITSclustererV2.cxx:493 AliITSclustererV2.cxx:494 AliITSclustererV2.cxx:495 AliITSclustererV2.cxx:496 AliITSclustererV2.cxx:497 AliITSclustererV2.cxx:498 AliITSclustererV2.cxx:499 AliITSclustererV2.cxx:500 AliITSclustererV2.cxx:501 AliITSclustererV2.cxx:502 AliITSclustererV2.cxx:503 AliITSclustererV2.cxx:504 AliITSclustererV2.cxx:505 AliITSclustererV2.cxx:506 AliITSclustererV2.cxx:507 AliITSclustererV2.cxx:508 AliITSclustererV2.cxx:509 AliITSclustererV2.cxx:510 AliITSclustererV2.cxx:511 AliITSclustererV2.cxx:512 AliITSclustererV2.cxx:513 AliITSclustererV2.cxx:514 AliITSclustererV2.cxx:515 AliITSclustererV2.cxx:516 AliITSclustererV2.cxx:517 AliITSclustererV2.cxx:518 AliITSclustererV2.cxx:519 AliITSclustererV2.cxx:520 AliITSclustererV2.cxx:521 AliITSclustererV2.cxx:522 AliITSclustererV2.cxx:523 AliITSclustererV2.cxx:524 AliITSclustererV2.cxx:525 AliITSclustererV2.cxx:526 AliITSclustererV2.cxx:527 AliITSclustererV2.cxx:528 AliITSclustererV2.cxx:529 AliITSclustererV2.cxx:530 AliITSclustererV2.cxx:531 AliITSclustererV2.cxx:532 AliITSclustererV2.cxx:533 AliITSclustererV2.cxx:534 AliITSclustererV2.cxx:535 AliITSclustererV2.cxx:536 AliITSclustererV2.cxx:537 AliITSclustererV2.cxx:538 AliITSclustererV2.cxx:539 AliITSclustererV2.cxx:540 AliITSclustererV2.cxx:541 AliITSclustererV2.cxx:542 AliITSclustererV2.cxx:543 AliITSclustererV2.cxx:544 AliITSclustererV2.cxx:545 AliITSclustererV2.cxx:546 AliITSclustererV2.cxx:547 AliITSclustererV2.cxx:548 AliITSclustererV2.cxx:549 AliITSclustererV2.cxx:550 AliITSclustererV2.cxx:551 AliITSclustererV2.cxx:552 AliITSclustererV2.cxx:553 AliITSclustererV2.cxx:554 AliITSclustererV2.cxx:555 AliITSclustererV2.cxx:556 AliITSclustererV2.cxx:557 AliITSclustererV2.cxx:558 AliITSclustererV2.cxx:559 AliITSclustererV2.cxx:560 AliITSclustererV2.cxx:561 AliITSclustererV2.cxx:562 AliITSclustererV2.cxx:563 AliITSclustererV2.cxx:564 AliITSclustererV2.cxx:565 AliITSclustererV2.cxx:566 AliITSclustererV2.cxx:567 AliITSclustererV2.cxx:568 AliITSclustererV2.cxx:569 AliITSclustererV2.cxx:570 AliITSclustererV2.cxx:571 AliITSclustererV2.cxx:572 AliITSclustererV2.cxx:573 AliITSclustererV2.cxx:574 AliITSclustererV2.cxx:575 AliITSclustererV2.cxx:576 AliITSclustererV2.cxx:577 AliITSclustererV2.cxx:578 AliITSclustererV2.cxx:579 AliITSclustererV2.cxx:580 AliITSclustererV2.cxx:581 AliITSclustererV2.cxx:582 AliITSclustererV2.cxx:583 AliITSclustererV2.cxx:584 AliITSclustererV2.cxx:585 AliITSclustererV2.cxx:586 AliITSclustererV2.cxx:587 AliITSclustererV2.cxx:588 AliITSclustererV2.cxx:589 AliITSclustererV2.cxx:590 AliITSclustererV2.cxx:591 AliITSclustererV2.cxx:592 AliITSclustererV2.cxx:593 AliITSclustererV2.cxx:594 AliITSclustererV2.cxx:595 AliITSclustererV2.cxx:596 AliITSclustererV2.cxx:597 AliITSclustererV2.cxx:598 AliITSclustererV2.cxx:599 AliITSclustererV2.cxx:600 AliITSclustererV2.cxx:601 AliITSclustererV2.cxx:602 AliITSclustererV2.cxx:603 AliITSclustererV2.cxx:604 AliITSclustererV2.cxx:605 AliITSclustererV2.cxx:606 AliITSclustererV2.cxx:607 AliITSclustererV2.cxx:608 AliITSclustererV2.cxx:609 AliITSclustererV2.cxx:610 AliITSclustererV2.cxx:611 AliITSclustererV2.cxx:612 AliITSclustererV2.cxx:613 AliITSclustererV2.cxx:614 AliITSclustererV2.cxx:615 AliITSclustererV2.cxx:616 AliITSclustererV2.cxx:617 AliITSclustererV2.cxx:618 AliITSclustererV2.cxx:619 AliITSclustererV2.cxx:620 AliITSclustererV2.cxx:621 AliITSclustererV2.cxx:622 AliITSclustererV2.cxx:623 AliITSclustererV2.cxx:624 AliITSclustererV2.cxx:625 AliITSclustererV2.cxx:626 AliITSclustererV2.cxx:627 AliITSclustererV2.cxx:628 AliITSclustererV2.cxx:629 AliITSclustererV2.cxx:630 AliITSclustererV2.cxx:631 AliITSclustererV2.cxx:632 AliITSclustererV2.cxx:633 AliITSclustererV2.cxx:634 AliITSclustererV2.cxx:635 AliITSclustererV2.cxx:636 AliITSclustererV2.cxx:637 AliITSclustererV2.cxx:638 AliITSclustererV2.cxx:639 AliITSclustererV2.cxx:640 AliITSclustererV2.cxx:641 AliITSclustererV2.cxx:642 AliITSclustererV2.cxx:643 AliITSclustererV2.cxx:644 AliITSclustererV2.cxx:645 AliITSclustererV2.cxx:646 AliITSclustererV2.cxx:647 AliITSclustererV2.cxx:648 AliITSclustererV2.cxx:649 AliITSclustererV2.cxx:650 AliITSclustererV2.cxx:651 AliITSclustererV2.cxx:652 AliITSclustererV2.cxx:653 AliITSclustererV2.cxx:654 AliITSclustererV2.cxx:655 AliITSclustererV2.cxx:656 AliITSclustererV2.cxx:657 AliITSclustererV2.cxx:658 AliITSclustererV2.cxx:659 AliITSclustererV2.cxx:660 AliITSclustererV2.cxx:661 AliITSclustererV2.cxx:662 AliITSclustererV2.cxx:663 AliITSclustererV2.cxx:664 AliITSclustererV2.cxx:665 AliITSclustererV2.cxx:666 AliITSclustererV2.cxx:667 AliITSclustererV2.cxx:668 AliITSclustererV2.cxx:669 AliITSclustererV2.cxx:670 AliITSclustererV2.cxx:671 AliITSclustererV2.cxx:672 AliITSclustererV2.cxx:673 AliITSclustererV2.cxx:674 AliITSclustererV2.cxx:675 AliITSclustererV2.cxx:676 AliITSclustererV2.cxx:677 AliITSclustererV2.cxx:678 AliITSclustererV2.cxx:679 AliITSclustererV2.cxx:680 AliITSclustererV2.cxx:681 AliITSclustererV2.cxx:682 AliITSclustererV2.cxx:683 AliITSclustererV2.cxx:684 AliITSclustererV2.cxx:685 AliITSclustererV2.cxx:686 AliITSclustererV2.cxx:687 AliITSclustererV2.cxx:688 AliITSclustererV2.cxx:689 AliITSclustererV2.cxx:690 AliITSclustererV2.cxx:691 AliITSclustererV2.cxx:692 AliITSclustererV2.cxx:693 AliITSclustererV2.cxx:694 AliITSclustererV2.cxx:695 AliITSclustererV2.cxx:696 AliITSclustererV2.cxx:697 AliITSclustererV2.cxx:698 AliITSclustererV2.cxx:699 AliITSclustererV2.cxx:700 AliITSclustererV2.cxx:701 AliITSclustererV2.cxx:702 AliITSclustererV2.cxx:703 AliITSclustererV2.cxx:704 AliITSclustererV2.cxx:705 AliITSclustererV2.cxx:706 AliITSclustererV2.cxx:707 AliITSclustererV2.cxx:708 AliITSclustererV2.cxx:709 AliITSclustererV2.cxx:710 AliITSclustererV2.cxx:711 AliITSclustererV2.cxx:712 AliITSclustererV2.cxx:713 AliITSclustererV2.cxx:714 AliITSclustererV2.cxx:715 AliITSclustererV2.cxx:716 AliITSclustererV2.cxx:717 AliITSclustererV2.cxx:718 AliITSclustererV2.cxx:719 AliITSclustererV2.cxx:720 AliITSclustererV2.cxx:721 AliITSclustererV2.cxx:722 AliITSclustererV2.cxx:723 AliITSclustererV2.cxx:724 AliITSclustererV2.cxx:725 AliITSclustererV2.cxx:726 AliITSclustererV2.cxx:727 AliITSclustererV2.cxx:728 AliITSclustererV2.cxx:729 AliITSclustererV2.cxx:730 AliITSclustererV2.cxx:731 AliITSclustererV2.cxx:732 AliITSclustererV2.cxx:733 AliITSclustererV2.cxx:734 AliITSclustererV2.cxx:735 AliITSclustererV2.cxx:736 AliITSclustererV2.cxx:737 AliITSclustererV2.cxx:738 AliITSclustererV2.cxx:739 AliITSclustererV2.cxx:740 AliITSclustererV2.cxx:741 AliITSclustererV2.cxx:742 AliITSclustererV2.cxx:743 AliITSclustererV2.cxx:744 AliITSclustererV2.cxx:745 AliITSclustererV2.cxx:746 AliITSclustererV2.cxx:747 AliITSclustererV2.cxx:748 AliITSclustererV2.cxx:749 AliITSclustererV2.cxx:750 AliITSclustererV2.cxx:751 AliITSclustererV2.cxx:752 AliITSclustererV2.cxx:753 AliITSclustererV2.cxx:754 AliITSclustererV2.cxx:755 AliITSclustererV2.cxx:756 AliITSclustererV2.cxx:757 AliITSclustererV2.cxx:758 AliITSclustererV2.cxx:759 AliITSclustererV2.cxx:760 AliITSclustererV2.cxx:761 AliITSclustererV2.cxx:762 AliITSclustererV2.cxx:763 AliITSclustererV2.cxx:764 AliITSclustererV2.cxx:765 AliITSclustererV2.cxx:766 AliITSclustererV2.cxx:767 AliITSclustererV2.cxx:768 AliITSclustererV2.cxx:769 AliITSclustererV2.cxx:770 AliITSclustererV2.cxx:771 AliITSclustererV2.cxx:772 AliITSclustererV2.cxx:773 AliITSclustererV2.cxx:774 AliITSclustererV2.cxx:775 AliITSclustererV2.cxx:776 AliITSclustererV2.cxx:777 AliITSclustererV2.cxx:778 AliITSclustererV2.cxx:779 AliITSclustererV2.cxx:780 AliITSclustererV2.cxx:781 AliITSclustererV2.cxx:782 AliITSclustererV2.cxx:783 AliITSclustererV2.cxx:784 AliITSclustererV2.cxx:785 AliITSclustererV2.cxx:786 AliITSclustererV2.cxx:787 AliITSclustererV2.cxx:788 AliITSclustererV2.cxx:789 AliITSclustererV2.cxx:790 AliITSclustererV2.cxx:791 AliITSclustererV2.cxx:792 AliITSclustererV2.cxx:793 AliITSclustererV2.cxx:794 AliITSclustererV2.cxx:795 AliITSclustererV2.cxx:796 AliITSclustererV2.cxx:797 AliITSclustererV2.cxx:798 AliITSclustererV2.cxx:799 AliITSclustererV2.cxx:800 AliITSclustererV2.cxx:801 AliITSclustererV2.cxx:802 AliITSclustererV2.cxx:803 AliITSclustererV2.cxx:804 AliITSclustererV2.cxx:805 AliITSclustererV2.cxx:806 AliITSclustererV2.cxx:807 AliITSclustererV2.cxx:808 AliITSclustererV2.cxx:809 AliITSclustererV2.cxx:810 AliITSclustererV2.cxx:811 AliITSclustererV2.cxx:812 AliITSclustererV2.cxx:813 AliITSclustererV2.cxx:814 AliITSclustererV2.cxx:815 AliITSclustererV2.cxx:816 AliITSclustererV2.cxx:817 AliITSclustererV2.cxx:818 AliITSclustererV2.cxx:819 AliITSclustererV2.cxx:820 AliITSclustererV2.cxx:821 AliITSclustererV2.cxx:822 AliITSclustererV2.cxx:823 AliITSclustererV2.cxx:824 AliITSclustererV2.cxx:825 AliITSclustererV2.cxx:826 AliITSclustererV2.cxx:827 AliITSclustererV2.cxx:828 AliITSclustererV2.cxx:829 AliITSclustererV2.cxx:830 AliITSclustererV2.cxx:831 AliITSclustererV2.cxx:832 AliITSclustererV2.cxx:833 AliITSclustererV2.cxx:834 AliITSclustererV2.cxx:835 AliITSclustererV2.cxx:836 AliITSclustererV2.cxx:837 AliITSclustererV2.cxx:838 AliITSclustererV2.cxx:839 AliITSclustererV2.cxx:840 AliITSclustererV2.cxx:841 AliITSclustererV2.cxx:842 AliITSclustererV2.cxx:843 AliITSclustererV2.cxx:844 AliITSclustererV2.cxx:845 AliITSclustererV2.cxx:846 AliITSclustererV2.cxx:847 AliITSclustererV2.cxx:848 AliITSclustererV2.cxx:849 AliITSclustererV2.cxx:850 AliITSclustererV2.cxx:851 AliITSclustererV2.cxx:852 AliITSclustererV2.cxx:853 AliITSclustererV2.cxx:854 AliITSclustererV2.cxx:855 AliITSclustererV2.cxx:856 AliITSclustererV2.cxx:857 AliITSclustererV2.cxx:858 AliITSclustererV2.cxx:859 AliITSclustererV2.cxx:860 AliITSclustererV2.cxx:861 AliITSclustererV2.cxx:862 AliITSclustererV2.cxx:863 AliITSclustererV2.cxx:864 AliITSclustererV2.cxx:865 AliITSclustererV2.cxx:866 AliITSclustererV2.cxx:867 AliITSclustererV2.cxx:868 AliITSclustererV2.cxx:869 AliITSclustererV2.cxx:870 AliITSclustererV2.cxx:871 AliITSclustererV2.cxx:872 AliITSclustererV2.cxx:873 AliITSclustererV2.cxx:874 AliITSclustererV2.cxx:875 AliITSclustererV2.cxx:876 AliITSclustererV2.cxx:877 AliITSclustererV2.cxx:878 AliITSclustererV2.cxx:879 AliITSclustererV2.cxx:880 AliITSclustererV2.cxx:881 AliITSclustererV2.cxx:882 AliITSclustererV2.cxx:883 AliITSclustererV2.cxx:884 AliITSclustererV2.cxx:885 AliITSclustererV2.cxx:886 AliITSclustererV2.cxx:887 AliITSclustererV2.cxx:888 AliITSclustererV2.cxx:889 AliITSclustererV2.cxx:890 AliITSclustererV2.cxx:891 AliITSclustererV2.cxx:892 AliITSclustererV2.cxx:893 AliITSclustererV2.cxx:894 AliITSclustererV2.cxx:895 AliITSclustererV2.cxx:896 AliITSclustererV2.cxx:897 AliITSclustererV2.cxx:898 AliITSclustererV2.cxx:899 AliITSclustererV2.cxx:900 AliITSclustererV2.cxx:901 AliITSclustererV2.cxx:902 AliITSclustererV2.cxx:903 AliITSclustererV2.cxx:904 AliITSclustererV2.cxx:905 AliITSclustererV2.cxx:906 AliITSclustererV2.cxx:907 AliITSclustererV2.cxx:908 AliITSclustererV2.cxx:909 AliITSclustererV2.cxx:910 AliITSclustererV2.cxx:911 AliITSclustererV2.cxx:912 AliITSclustererV2.cxx:913 AliITSclustererV2.cxx:914 AliITSclustererV2.cxx:915 AliITSclustererV2.cxx:916 AliITSclustererV2.cxx:917 AliITSclustererV2.cxx:918 AliITSclustererV2.cxx:919 AliITSclustererV2.cxx:920 AliITSclustererV2.cxx:921 AliITSclustererV2.cxx:922 AliITSclustererV2.cxx:923 AliITSclustererV2.cxx:924 AliITSclustererV2.cxx:925 AliITSclustererV2.cxx:926 AliITSclustererV2.cxx:927 AliITSclustererV2.cxx:928 AliITSclustererV2.cxx:929 AliITSclustererV2.cxx:930 AliITSclustererV2.cxx:931 AliITSclustererV2.cxx:932 AliITSclustererV2.cxx:933 AliITSclustererV2.cxx:934 AliITSclustererV2.cxx:935 AliITSclustererV2.cxx:936 AliITSclustererV2.cxx:937 AliITSclustererV2.cxx:938 AliITSclustererV2.cxx:939 AliITSclustererV2.cxx:940 AliITSclustererV2.cxx:941 AliITSclustererV2.cxx:942 AliITSclustererV2.cxx:943 AliITSclustererV2.cxx:944 AliITSclustererV2.cxx:945 AliITSclustererV2.cxx:946 AliITSclustererV2.cxx:947 AliITSclustererV2.cxx:948 AliITSclustererV2.cxx:949 AliITSclustererV2.cxx:950 AliITSclustererV2.cxx:951 AliITSclustererV2.cxx:952 AliITSclustererV2.cxx:953 AliITSclustererV2.cxx:954 AliITSclustererV2.cxx:955 AliITSclustererV2.cxx:956 AliITSclustererV2.cxx:957 AliITSclustererV2.cxx:958 AliITSclustererV2.cxx:959 AliITSclustererV2.cxx:960 AliITSclustererV2.cxx:961 AliITSclustererV2.cxx:962 AliITSclustererV2.cxx:963 AliITSclustererV2.cxx:964 AliITSclustererV2.cxx:965 AliITSclustererV2.cxx:966 AliITSclustererV2.cxx:967 AliITSclustererV2.cxx:968 AliITSclustererV2.cxx:969 AliITSclustererV2.cxx:970 AliITSclustererV2.cxx:971 AliITSclustererV2.cxx:972 AliITSclustererV2.cxx:973 AliITSclustererV2.cxx:974 AliITSclustererV2.cxx:975 AliITSclustererV2.cxx:976 AliITSclustererV2.cxx:977 AliITSclustererV2.cxx:978 AliITSclustererV2.cxx:979 AliITSclustererV2.cxx:980 AliITSclustererV2.cxx:981 AliITSclustererV2.cxx:982 AliITSclustererV2.cxx:983 AliITSclustererV2.cxx:984 AliITSclustererV2.cxx:985 AliITSclustererV2.cxx:986 AliITSclustererV2.cxx:987 AliITSclustererV2.cxx:988 AliITSclustererV2.cxx:989 AliITSclustererV2.cxx:990 AliITSclustererV2.cxx:991 AliITSclustererV2.cxx:992 AliITSclustererV2.cxx:993 AliITSclustererV2.cxx:994 AliITSclustererV2.cxx:995 AliITSclustererV2.cxx:996 AliITSclustererV2.cxx:997 AliITSclustererV2.cxx:998 AliITSclustererV2.cxx:999 AliITSclustererV2.cxx:1000 AliITSclustererV2.cxx:1001 AliITSclustererV2.cxx:1002 AliITSclustererV2.cxx:1003 AliITSclustererV2.cxx:1004 AliITSclustererV2.cxx:1005 AliITSclustererV2.cxx:1006 AliITSclustererV2.cxx:1007 AliITSclustererV2.cxx:1008 AliITSclustererV2.cxx:1009 AliITSclustererV2.cxx:1010 AliITSclustererV2.cxx:1011 AliITSclustererV2.cxx:1012 AliITSclustererV2.cxx:1013 AliITSclustererV2.cxx:1014 AliITSclustererV2.cxx:1015 AliITSclustererV2.cxx:1016 AliITSclustererV2.cxx:1017 AliITSclustererV2.cxx:1018 AliITSclustererV2.cxx:1019 AliITSclustererV2.cxx:1020 AliITSclustererV2.cxx:1021 AliITSclustererV2.cxx:1022 AliITSclustererV2.cxx:1023 AliITSclustererV2.cxx:1024 AliITSclustererV2.cxx:1025 AliITSclustererV2.cxx:1026 AliITSclustererV2.cxx:1027 AliITSclustererV2.cxx:1028 AliITSclustererV2.cxx:1029 AliITSclustererV2.cxx:1030 AliITSclustererV2.cxx:1031 AliITSclustererV2.cxx:1032 AliITSclustererV2.cxx:1033 AliITSclustererV2.cxx:1034 AliITSclustererV2.cxx:1035 AliITSclustererV2.cxx:1036 AliITSclustererV2.cxx:1037 AliITSclustererV2.cxx:1038 AliITSclustererV2.cxx:1039 AliITSclustererV2.cxx:1040 AliITSclustererV2.cxx:1041 AliITSclustererV2.cxx:1042 AliITSclustererV2.cxx:1043 AliITSclustererV2.cxx:1044 AliITSclustererV2.cxx:1045 AliITSclustererV2.cxx:1046 AliITSclustererV2.cxx:1047 AliITSclustererV2.cxx:1048 AliITSclustererV2.cxx:1049 AliITSclustererV2.cxx:1050 AliITSclustererV2.cxx:1051 AliITSclustererV2.cxx:1052 AliITSclustererV2.cxx:1053 AliITSclustererV2.cxx:1054 AliITSclustererV2.cxx:1055 AliITSclustererV2.cxx:1056 AliITSclustererV2.cxx:1057 AliITSclustererV2.cxx:1058 AliITSclustererV2.cxx:1059 AliITSclustererV2.cxx:1060 AliITSclustererV2.cxx:1061 AliITSclustererV2.cxx:1062 AliITSclustererV2.cxx:1063 AliITSclustererV2.cxx:1064 AliITSclustererV2.cxx:1065 AliITSclustererV2.cxx:1066 AliITSclustererV2.cxx:1067 AliITSclustererV2.cxx:1068 AliITSclustererV2.cxx:1069 AliITSclustererV2.cxx:1070 AliITSclustererV2.cxx:1071 AliITSclustererV2.cxx:1072 AliITSclustererV2.cxx:1073 AliITSclustererV2.cxx:1074 AliITSclustererV2.cxx:1075 AliITSclustererV2.cxx:1076 AliITSclustererV2.cxx:1077 AliITSclustererV2.cxx:1078 AliITSclustererV2.cxx:1079 AliITSclustererV2.cxx:1080 AliITSclustererV2.cxx:1081 AliITSclustererV2.cxx:1082 AliITSclustererV2.cxx:1083 AliITSclustererV2.cxx:1084 AliITSclustererV2.cxx:1085 AliITSclustererV2.cxx:1086 AliITSclustererV2.cxx:1087 AliITSclustererV2.cxx:1088 AliITSclustererV2.cxx:1089 AliITSclustererV2.cxx:1090 AliITSclustererV2.cxx:1091 AliITSclustererV2.cxx:1092 AliITSclustererV2.cxx:1093 AliITSclustererV2.cxx:1094 AliITSclustererV2.cxx:1095 AliITSclustererV2.cxx:1096 AliITSclustererV2.cxx:1097 AliITSclustererV2.cxx:1098 AliITSclustererV2.cxx:1099 AliITSclustererV2.cxx:1100 AliITSclustererV2.cxx:1101 AliITSclustererV2.cxx:1102 AliITSclustererV2.cxx:1103 AliITSclustererV2.cxx:1104 AliITSclustererV2.cxx:1105 AliITSclustererV2.cxx:1106 AliITSclustererV2.cxx:1107 AliITSclustererV2.cxx:1108 AliITSclustererV2.cxx:1109 AliITSclustererV2.cxx:1110 AliITSclustererV2.cxx:1111 AliITSclustererV2.cxx:1112 AliITSclustererV2.cxx:1113 AliITSclustererV2.cxx:1114 AliITSclustererV2.cxx:1115 AliITSclustererV2.cxx:1116 AliITSclustererV2.cxx:1117 AliITSclustererV2.cxx:1118 AliITSclustererV2.cxx:1119 AliITSclustererV2.cxx:1120 AliITSclustererV2.cxx:1121 AliITSclustererV2.cxx:1122 AliITSclustererV2.cxx:1123 AliITSclustererV2.cxx:1124 AliITSclustererV2.cxx:1125 AliITSclustererV2.cxx:1126 AliITSclustererV2.cxx:1127 AliITSclustererV2.cxx:1128 AliITSclustererV2.cxx:1129 AliITSclustererV2.cxx:1130 AliITSclustererV2.cxx:1131 AliITSclustererV2.cxx:1132 AliITSclustererV2.cxx:1133 AliITSclustererV2.cxx:1134 AliITSclustererV2.cxx:1135 AliITSclustererV2.cxx:1136 AliITSclustererV2.cxx:1137 AliITSclustererV2.cxx:1138 AliITSclustererV2.cxx:1139 AliITSclustererV2.cxx:1140 AliITSclustererV2.cxx:1141 AliITSclustererV2.cxx:1142 AliITSclustererV2.cxx:1143 AliITSclustererV2.cxx:1144 AliITSclustererV2.cxx:1145 AliITSclustererV2.cxx:1146 AliITSclustererV2.cxx:1147 AliITSclustererV2.cxx:1148 AliITSclustererV2.cxx:1149 AliITSclustererV2.cxx:1150 AliITSclustererV2.cxx:1151 AliITSclustererV2.cxx:1152 AliITSclustererV2.cxx:1153 AliITSclustererV2.cxx:1154 AliITSclustererV2.cxx:1155 AliITSclustererV2.cxx:1156 AliITSclustererV2.cxx:1157 AliITSclustererV2.cxx:1158 AliITSclustererV2.cxx:1159 AliITSclustererV2.cxx:1160 AliITSclustererV2.cxx:1161 AliITSclustererV2.cxx:1162 AliITSclustererV2.cxx:1163 AliITSclustererV2.cxx:1164 AliITSclustererV2.cxx:1165 AliITSclustererV2.cxx:1166 AliITSclustererV2.cxx:1167 AliITSclustererV2.cxx:1168 AliITSclustererV2.cxx:1169 AliITSclustererV2.cxx:1170 AliITSclustererV2.cxx:1171 AliITSclustererV2.cxx:1172 AliITSclustererV2.cxx:1173 AliITSclustererV2.cxx:1174 AliITSclustererV2.cxx:1175 AliITSclustererV2.cxx:1176 AliITSclustererV2.cxx:1177 AliITSclustererV2.cxx:1178 AliITSclustererV2.cxx:1179 AliITSclustererV2.cxx:1180 AliITSclustererV2.cxx:1181 AliITSclustererV2.cxx:1182 AliITSclustererV2.cxx:1183 AliITSclustererV2.cxx:1184 AliITSclustererV2.cxx:1185 AliITSclustererV2.cxx:1186 AliITSclustererV2.cxx:1187 AliITSclustererV2.cxx:1188 AliITSclustererV2.cxx:1189 AliITSclustererV2.cxx:1190 AliITSclustererV2.cxx:1191 AliITSclustererV2.cxx:1192 AliITSclustererV2.cxx:1193 AliITSclustererV2.cxx:1194 AliITSclustererV2.cxx:1195 AliITSclustererV2.cxx:1196 AliITSclustererV2.cxx:1197 AliITSclustererV2.cxx:1198 AliITSclustererV2.cxx:1199 AliITSclustererV2.cxx:1200 AliITSclustererV2.cxx:1201 AliITSclustererV2.cxx:1202 AliITSclustererV2.cxx:1203 AliITSclustererV2.cxx:1204 AliITSclustererV2.cxx:1205 AliITSclustererV2.cxx:1206 AliITSclustererV2.cxx:1207 AliITSclustererV2.cxx:1208 AliITSclustererV2.cxx:1209 AliITSclustererV2.cxx:1210 AliITSclustererV2.cxx:1211 AliITSclustererV2.cxx:1212 AliITSclustererV2.cxx:1213 AliITSclustererV2.cxx:1214 AliITSclustererV2.cxx:1215 AliITSclustererV2.cxx:1216 AliITSclustererV2.cxx:1217 AliITSclustererV2.cxx:1218 AliITSclustererV2.cxx:1219 AliITSclustererV2.cxx:1220 AliITSclustererV2.cxx:1221 AliITSclustererV2.cxx:1222 AliITSclustererV2.cxx:1223 AliITSclustererV2.cxx:1224 AliITSclustererV2.cxx:1225 AliITSclustererV2.cxx:1226 AliITSclustererV2.cxx:1227 AliITSclustererV2.cxx:1228 AliITSclustererV2.cxx:1229 AliITSclustererV2.cxx:1230 AliITSclustererV2.cxx:1231 AliITSclustererV2.cxx:1232 AliITSclustererV2.cxx:1233 AliITSclustererV2.cxx:1234 AliITSclustererV2.cxx:1235 AliITSclustererV2.cxx:1236 AliITSclustererV2.cxx:1237 AliITSclustererV2.cxx:1238 AliITSclustererV2.cxx:1239 AliITSclustererV2.cxx:1240 AliITSclustererV2.cxx:1241 AliITSclustererV2.cxx:1242 AliITSclustererV2.cxx:1243 AliITSclustererV2.cxx:1244 AliITSclustererV2.cxx:1245 AliITSclustererV2.cxx:1246 AliITSclustererV2.cxx:1247 AliITSclustererV2.cxx:1248 AliITSclustererV2.cxx:1249 AliITSclustererV2.cxx:1250 AliITSclustererV2.cxx:1251 AliITSclustererV2.cxx:1252 AliITSclustererV2.cxx:1253 AliITSclustererV2.cxx:1254 AliITSclustererV2.cxx:1255 AliITSclustererV2.cxx:1256 AliITSclustererV2.cxx:1257 AliITSclustererV2.cxx:1258 AliITSclustererV2.cxx:1259 AliITSclustererV2.cxx:1260 AliITSclustererV2.cxx:1261 AliITSclustererV2.cxx:1262 AliITSclustererV2.cxx:1263 AliITSclustererV2.cxx:1264 AliITSclustererV2.cxx:1265 AliITSclustererV2.cxx:1266 AliITSclustererV2.cxx:1267 AliITSclustererV2.cxx:1268 AliITSclustererV2.cxx:1269 AliITSclustererV2.cxx:1270 AliITSclustererV2.cxx:1271 AliITSclustererV2.cxx:1272 AliITSclustererV2.cxx:1273 AliITSclustererV2.cxx:1274 AliITSclustererV2.cxx:1275 AliITSclustererV2.cxx:1276 AliITSclustererV2.cxx:1277 AliITSclustererV2.cxx:1278 AliITSclustererV2.cxx:1279 AliITSclustererV2.cxx:1280 AliITSclustererV2.cxx:1281 AliITSclustererV2.cxx:1282 AliITSclustererV2.cxx:1283 AliITSclustererV2.cxx:1284 AliITSclustererV2.cxx:1285 AliITSclustererV2.cxx:1286 AliITSclustererV2.cxx:1287 AliITSclustererV2.cxx:1288 AliITSclustererV2.cxx:1289 AliITSclustererV2.cxx:1290 AliITSclustererV2.cxx:1291 AliITSclustererV2.cxx:1292 AliITSclustererV2.cxx:1293 AliITSclustererV2.cxx:1294 AliITSclustererV2.cxx:1295 AliITSclustererV2.cxx:1296 AliITSclustererV2.cxx:1297 AliITSclustererV2.cxx:1298 AliITSclustererV2.cxx:1299 AliITSclustererV2.cxx:1300 AliITSclustererV2.cxx:1301 AliITSclustererV2.cxx:1302 AliITSclustererV2.cxx:1303 AliITSclustererV2.cxx:1304 AliITSclustererV2.cxx:1305 AliITSclustererV2.cxx:1306 AliITSclustererV2.cxx:1307 AliITSclustererV2.cxx:1308 AliITSclustererV2.cxx:1309 AliITSclustererV2.cxx:1310 AliITSclustererV2.cxx:1311 AliITSclustererV2.cxx:1312 AliITSclustererV2.cxx:1313 AliITSclustererV2.cxx:1314 AliITSclustererV2.cxx:1315 AliITSclustererV2.cxx:1316 AliITSclustererV2.cxx:1317 AliITSclustererV2.cxx:1318 AliITSclustererV2.cxx:1319 AliITSclustererV2.cxx:1320 AliITSclustererV2.cxx:1321 AliITSclustererV2.cxx:1322 AliITSclustererV2.cxx:1323 AliITSclustererV2.cxx:1324 AliITSclustererV2.cxx:1325 AliITSclustererV2.cxx:1326 AliITSclustererV2.cxx:1327 AliITSclustererV2.cxx:1328 AliITSclustererV2.cxx:1329 AliITSclustererV2.cxx:1330 AliITSclustererV2.cxx:1331 AliITSclustererV2.cxx:1332 AliITSclustererV2.cxx:1333 AliITSclustererV2.cxx:1334 AliITSclustererV2.cxx:1335 AliITSclustererV2.cxx:1336 AliITSclustererV2.cxx:1337 AliITSclustererV2.cxx:1338 AliITSclustererV2.cxx:1339 AliITSclustererV2.cxx:1340 AliITSclustererV2.cxx:1341 AliITSclustererV2.cxx:1342 AliITSclustererV2.cxx:1343 AliITSclustererV2.cxx:1344 AliITSclustererV2.cxx:1345 AliITSclustererV2.cxx:1346 AliITSclustererV2.cxx:1347 AliITSclustererV2.cxx:1348 AliITSclustererV2.cxx:1349 AliITSclustererV2.cxx:1350 AliITSclustererV2.cxx:1351 AliITSclustererV2.cxx:1352 AliITSclustererV2.cxx:1353 AliITSclustererV2.cxx:1354 AliITSclustererV2.cxx:1355 AliITSclustererV2.cxx:1356 AliITSclustererV2.cxx:1357 AliITSclustererV2.cxx:1358 AliITSclustererV2.cxx:1359 AliITSclustererV2.cxx:1360 AliITSclustererV2.cxx:1361 AliITSclustererV2.cxx:1362 AliITSclustererV2.cxx:1363 AliITSclustererV2.cxx:1364 AliITSclustererV2.cxx:1365 AliITSclustererV2.cxx:1366 AliITSclustererV2.cxx:1367 AliITSclustererV2.cxx:1368 AliITSclustererV2.cxx:1369 AliITSclustererV2.cxx:1370 AliITSclustererV2.cxx:1371 AliITSclustererV2.cxx:1372 AliITSclustererV2.cxx:1373 AliITSclustererV2.cxx:1374 AliITSclustererV2.cxx:1375 AliITSclustererV2.cxx:1376 AliITSclustererV2.cxx:1377 AliITSclustererV2.cxx:1378 AliITSclustererV2.cxx:1379 AliITSclustererV2.cxx:1380 AliITSclustererV2.cxx:1381 AliITSclustererV2.cxx:1382 AliITSclustererV2.cxx:1383 AliITSclustererV2.cxx:1384 AliITSclustererV2.cxx:1385 AliITSclustererV2.cxx:1386 AliITSclustererV2.cxx:1387 AliITSclustererV2.cxx:1388 AliITSclustererV2.cxx:1389 AliITSclustererV2.cxx:1390 AliITSclustererV2.cxx:1391 AliITSclustererV2.cxx:1392 AliITSclustererV2.cxx:1393 AliITSclustererV2.cxx:1394 AliITSclustererV2.cxx:1395 AliITSclustererV2.cxx:1396 AliITSclustererV2.cxx:1397 AliITSclustererV2.cxx:1398 AliITSclustererV2.cxx:1399 AliITSclustererV2.cxx:1400 AliITSclustererV2.cxx:1401 AliITSclustererV2.cxx:1402 AliITSclustererV2.cxx:1403 AliITSclustererV2.cxx:1404 AliITSclustererV2.cxx:1405 AliITSclustererV2.cxx:1406 AliITSclustererV2.cxx:1407 AliITSclustererV2.cxx:1408 AliITSclustererV2.cxx:1409 AliITSclustererV2.cxx:1410 AliITSclustererV2.cxx:1411 AliITSclustererV2.cxx:1412 AliITSclustererV2.cxx:1413 AliITSclustererV2.cxx:1414 AliITSclustererV2.cxx:1415 AliITSclustererV2.cxx:1416 AliITSclustererV2.cxx:1417 AliITSclustererV2.cxx:1418 AliITSclustererV2.cxx:1419 AliITSclustererV2.cxx:1420 AliITSclustererV2.cxx:1421 AliITSclustererV2.cxx:1422 AliITSclustererV2.cxx:1423 AliITSclustererV2.cxx:1424 AliITSclustererV2.cxx:1425 AliITSclustererV2.cxx:1426 AliITSclustererV2.cxx:1427 AliITSclustererV2.cxx:1428 AliITSclustererV2.cxx:1429 AliITSclustererV2.cxx:1430 AliITSclustererV2.cxx:1431 AliITSclustererV2.cxx:1432 AliITSclustererV2.cxx:1433 AliITSclustererV2.cxx:1434 AliITSclustererV2.cxx:1435 AliITSclustererV2.cxx:1436 AliITSclustererV2.cxx:1437 AliITSclustererV2.cxx:1438 AliITSclustererV2.cxx:1439 AliITSclustererV2.cxx:1440 AliITSclustererV2.cxx:1441 AliITSclustererV2.cxx:1442 AliITSclustererV2.cxx:1443 AliITSclustererV2.cxx:1444 AliITSclustererV2.cxx:1445 AliITSclustererV2.cxx:1446 AliITSclustererV2.cxx:1447 AliITSclustererV2.cxx:1448 AliITSclustererV2.cxx:1449 AliITSclustererV2.cxx:1450 AliITSclustererV2.cxx:1451 AliITSclustererV2.cxx:1452 AliITSclustererV2.cxx:1453 AliITSclustererV2.cxx:1454 AliITSclustererV2.cxx:1455 AliITSclustererV2.cxx:1456 AliITSclustererV2.cxx:1457 AliITSclustererV2.cxx:1458 AliITSclustererV2.cxx:1459 AliITSclustererV2.cxx:1460 AliITSclustererV2.cxx:1461 AliITSclustererV2.cxx:1462 AliITSclustererV2.cxx:1463 AliITSclustererV2.cxx:1464 AliITSclustererV2.cxx:1465 AliITSclustererV2.cxx:1466 AliITSclustererV2.cxx:1467 AliITSclustererV2.cxx:1468 AliITSclustererV2.cxx:1469 AliITSclustererV2.cxx:1470 AliITSclustererV2.cxx:1471 AliITSclustererV2.cxx:1472 AliITSclustererV2.cxx:1473 AliITSclustererV2.cxx:1474 AliITSclustererV2.cxx:1475 AliITSclustererV2.cxx:1476 AliITSclustererV2.cxx:1477 AliITSclustererV2.cxx:1478 AliITSclustererV2.cxx:1479 AliITSclustererV2.cxx:1480 AliITSclustererV2.cxx:1481 AliITSclustererV2.cxx:1482 AliITSclustererV2.cxx:1483 AliITSclustererV2.cxx:1484 AliITSclustererV2.cxx:1485 AliITSclustererV2.cxx:1486 AliITSclustererV2.cxx:1487 AliITSclustererV2.cxx:1488 AliITSclustererV2.cxx:1489 AliITSclustererV2.cxx:1490 AliITSclustererV2.cxx:1491 AliITSclustererV2.cxx:1492 AliITSclustererV2.cxx:1493 AliITSclustererV2.cxx:1494 AliITSclustererV2.cxx:1495 AliITSclustererV2.cxx:1496 AliITSclustererV2.cxx:1497 AliITSclustererV2.cxx:1498 AliITSclustererV2.cxx:1499 AliITSclustererV2.cxx:1500 AliITSclustererV2.cxx:1501 AliITSclustererV2.cxx:1502 AliITSclustererV2.cxx:1503 AliITSclustererV2.cxx:1504 AliITSclustererV2.cxx:1505 AliITSclustererV2.cxx:1506 AliITSclustererV2.cxx:1507 AliITSclustererV2.cxx:1508 AliITSclustererV2.cxx:1509 AliITSclustererV2.cxx:1510 AliITSclustererV2.cxx:1511 AliITSclustererV2.cxx:1512 AliITSclustererV2.cxx:1513 AliITSclustererV2.cxx:1514 AliITSclustererV2.cxx:1515 AliITSclustererV2.cxx:1516 AliITSclustererV2.cxx:1517 AliITSclustererV2.cxx:1518 AliITSclustererV2.cxx:1519 AliITSclustererV2.cxx:1520 AliITSclustererV2.cxx:1521 AliITSclustererV2.cxx:1522 AliITSclustererV2.cxx:1523 AliITSclustererV2.cxx:1524 AliITSclustererV2.cxx:1525 AliITSclustererV2.cxx:1526 AliITSclustererV2.cxx:1527 AliITSclustererV2.cxx:1528 AliITSclustererV2.cxx:1529 AliITSclustererV2.cxx:1530 AliITSclustererV2.cxx:1531 AliITSclustererV2.cxx:1532 AliITSclustererV2.cxx:1533 AliITSclustererV2.cxx:1534 AliITSclustererV2.cxx:1535 AliITSclustererV2.cxx:1536 AliITSclustererV2.cxx:1537 AliITSclustererV2.cxx:1538 AliITSclustererV2.cxx:1539 AliITSclustererV2.cxx:1540 AliITSclustererV2.cxx:1541 AliITSclustererV2.cxx:1542 AliITSclustererV2.cxx:1543 AliITSclustererV2.cxx:1544 AliITSclustererV2.cxx:1545 AliITSclustererV2.cxx:1546 AliITSclustererV2.cxx:1547 AliITSclustererV2.cxx:1548 AliITSclustererV2.cxx:1549 AliITSclustererV2.cxx:1550 AliITSclustererV2.cxx:1551 AliITSclustererV2.cxx:1552 AliITSclustererV2.cxx:1553 AliITSclustererV2.cxx:1554 AliITSclustererV2.cxx:1555 AliITSclustererV2.cxx:1556 AliITSclustererV2.cxx:1557 AliITSclustererV2.cxx:1558 AliITSclustererV2.cxx:1559 AliITSclustererV2.cxx:1560 AliITSclustererV2.cxx:1561 AliITSclustererV2.cxx:1562 AliITSclustererV2.cxx:1563 AliITSclustererV2.cxx:1564 AliITSclustererV2.cxx:1565 AliITSclustererV2.cxx:1566 AliITSclustererV2.cxx:1567 AliITSclustererV2.cxx:1568 AliITSclustererV2.cxx:1569 AliITSclustererV2.cxx:1570 AliITSclustererV2.cxx:1571 AliITSclustererV2.cxx:1572 AliITSclustererV2.cxx:1573 AliITSclustererV2.cxx:1574 AliITSclustererV2.cxx:1575 AliITSclustererV2.cxx:1576 AliITSclustererV2.cxx:1577 AliITSclustererV2.cxx:1578 AliITSclustererV2.cxx:1579 AliITSclustererV2.cxx:1580 AliITSclustererV2.cxx:1581 AliITSclustererV2.cxx:1582 AliITSclustererV2.cxx:1583 AliITSclustererV2.cxx:1584 AliITSclustererV2.cxx:1585 AliITSclustererV2.cxx:1586 AliITSclustererV2.cxx:1587 AliITSclustererV2.cxx:1588 AliITSclustererV2.cxx:1589 AliITSclustererV2.cxx:1590 AliITSclustererV2.cxx:1591 AliITSclustererV2.cxx:1592 AliITSclustererV2.cxx:1593 AliITSclustererV2.cxx:1594 AliITSclustererV2.cxx:1595 AliITSclustererV2.cxx:1596 AliITSclustererV2.cxx:1597 AliITSclustererV2.cxx:1598 AliITSclustererV2.cxx:1599 AliITSclustererV2.cxx:1600 AliITSclustererV2.cxx:1601 AliITSclustererV2.cxx:1602 AliITSclustererV2.cxx:1603 AliITSclustererV2.cxx:1604 AliITSclustererV2.cxx:1605 AliITSclustererV2.cxx:1606 AliITSclustererV2.cxx:1607 AliITSclustererV2.cxx:1608 AliITSclustererV2.cxx:1609 AliITSclustererV2.cxx:1610 AliITSclustererV2.cxx:1611 AliITSclustererV2.cxx:1612 AliITSclustererV2.cxx:1613 AliITSclustererV2.cxx:1614 AliITSclustererV2.cxx:1615 AliITSclustererV2.cxx:1616 AliITSclustererV2.cxx:1617 AliITSclustererV2.cxx:1618 AliITSclustererV2.cxx:1619 AliITSclustererV2.cxx:1620 AliITSclustererV2.cxx:1621 AliITSclustererV2.cxx:1622 AliITSclustererV2.cxx:1623 AliITSclustererV2.cxx:1624 AliITSclustererV2.cxx:1625 AliITSclustererV2.cxx:1626 AliITSclustererV2.cxx:1627 AliITSclustererV2.cxx:1628 AliITSclustererV2.cxx:1629 AliITSclustererV2.cxx:1630 AliITSclustererV2.cxx:1631 AliITSclustererV2.cxx:1632 AliITSclustererV2.cxx:1633 AliITSclustererV2.cxx:1634 AliITSclustererV2.cxx:1635 AliITSclustererV2.cxx:1636 AliITSclustererV2.cxx:1637 AliITSclustererV2.cxx:1638 AliITSclustererV2.cxx:1639 AliITSclustererV2.cxx:1640 AliITSclustererV2.cxx:1641 AliITSclustererV2.cxx:1642 AliITSclustererV2.cxx:1643 AliITSclustererV2.cxx:1644 AliITSclustererV2.cxx:1645 AliITSclustererV2.cxx:1646 AliITSclustererV2.cxx:1647 AliITSclustererV2.cxx:1648 AliITSclustererV2.cxx:1649 AliITSclustererV2.cxx:1650 AliITSclustererV2.cxx:1651 AliITSclustererV2.cxx:1652 AliITSclustererV2.cxx:1653 AliITSclustererV2.cxx:1654 AliITSclustererV2.cxx:1655 AliITSclustererV2.cxx:1656 AliITSclustererV2.cxx:1657 AliITSclustererV2.cxx:1658 AliITSclustererV2.cxx:1659 AliITSclustererV2.cxx:1660 AliITSclustererV2.cxx:1661 AliITSclustererV2.cxx:1662 AliITSclustererV2.cxx:1663 AliITSclustererV2.cxx:1664 AliITSclustererV2.cxx:1665 AliITSclustererV2.cxx:1666 AliITSclustererV2.cxx:1667 AliITSclustererV2.cxx:1668 AliITSclustererV2.cxx:1669 AliITSclustererV2.cxx:1670 AliITSclustererV2.cxx:1671 AliITSclustererV2.cxx:1672 AliITSclustererV2.cxx:1673 AliITSclustererV2.cxx:1674 AliITSclustererV2.cxx:1675 AliITSclustererV2.cxx:1676 AliITSclustererV2.cxx:1677 AliITSclustererV2.cxx:1678 AliITSclustererV2.cxx:1679 AliITSclustererV2.cxx:1680 AliITSclustererV2.cxx:1681 AliITSclustererV2.cxx:1682 AliITSclustererV2.cxx:1683 AliITSclustererV2.cxx:1684 AliITSclustererV2.cxx:1685 AliITSclustererV2.cxx:1686 AliITSclustererV2.cxx:1687 AliITSclustererV2.cxx:1688 AliITSclustererV2.cxx:1689 AliITSclustererV2.cxx:1690 AliITSclustererV2.cxx:1691 AliITSclustererV2.cxx:1692 AliITSclustererV2.cxx:1693 AliITSclustererV2.cxx:1694 AliITSclustererV2.cxx:1695 AliITSclustererV2.cxx:1696 AliITSclustererV2.cxx:1697 AliITSclustererV2.cxx:1698 AliITSclustererV2.cxx:1699 AliITSclustererV2.cxx:1700 AliITSclustererV2.cxx:1701 AliITSclustererV2.cxx:1702 AliITSclustererV2.cxx:1703 AliITSclustererV2.cxx:1704 AliITSclustererV2.cxx:1705 AliITSclustererV2.cxx:1706 AliITSclustererV2.cxx:1707 AliITSclustererV2.cxx:1708 AliITSclustererV2.cxx:1709 AliITSclustererV2.cxx:1710