TMatrixD *mPyx= new TMatrixD();
TMatrixD *mY = new TMatrixD();
InitDetAnn(dEtSum,xData,vPx,vPy,mPyx,mY);
- if (fNin < fNclustMax) return;
-
+ if (fNin < fNclustMax){
+ delete [] xData[0], delete [] xData[1];
+ delete vPx;
+ delete vPy;
+ delete mPyx;
+ delete mY;
+ return;
+ }
Int_t nc=1, nk;
DoubleClusters(nc,nk,vPy,mY);
do{ //loop over beta
}while((fBeta<betaStop || nc<4) && nc<fNclustMax);
Int_t *xx=new Int_t[fNeff];
+ for (Int_t i = 0; i < fNeff; i++) xx[i] = 0;
+
EndDetAnn(nk,xData,xx,dEtSum,vPx,vPy,mPyx,mY);
StoreJets(nk,xData,xx,mY);
delete [] xx;
}
TRandom2 r;
r.SetSeed(0);
- for (Int_t iIn=fNin; iIn<fNeff; iIn++){
+ for (iIn=fNin; iIn<fNeff; iIn++){
xEta[iIn]=r.Uniform(-1*etaEff,etaEff);
xPhi[iIn]=r.Uniform(0.,2*TMath::Pi());
(*vPx)(iIn)=r.Uniform(0.01,0.02);
}
//-----------------------------------------------------------------------------------
-void AliDAJetFinder::DoubleClusters(Int_t nc,Int_t &nk, TVectorD *vPy, TMatrixD *mY) const
+void AliDAJetFinder::DoubleClusters(Int_t nc,Int_t &nk, TVectorD *vPy, TMatrixD *mY) const
{
+// Return double clusters
for(Int_t iClust=0; iClust<nc; iClust++){
(*vPy)(iClust)=(*vPy)(iClust)/2;
(*vPy)(nc+iClust)=(*vPy)(iClust);
//-----------------------------------------------------------------------------------
void AliDAJetFinder::NumCl(Int_t &nc,Int_t &nk,TVectorD *vPy, TMatrixD *mPyx,TMatrixD *mY)
{
+ // Number of clusters
static Bool_t growcl=true;
if (nk==2) growcl=true;
Int_t *nSame = new Int_t[nk];
Int_t **iSame = new Int_t*[nk];
Int_t **cont = new Int_t*[nk];
- for (Int_t iClust=0; iClust<nk; iClust++) cont[iClust]=new Int_t[nk],iSame[iClust]=new Int_t[nk];
+ for (Int_t iClust=0; iClust<nk; iClust++) {
+ cont[iClust] =new Int_t[nk];
+ iSame[iClust]=new Int_t[nk];
+ }
+
for (Int_t iClust=0; iClust<nk; iClust++){
iSame[iClust][iClust]=1;
for (Int_t iClust1=iClust+1; iClust1<nk; iClust1++){
//-----------------------------------------------------------------------------------
void AliDAJetFinder::ReduceClusters(Int_t **iSame,Int_t nc,Int_t &ncout,Int_t **cont,Int_t *nSameOut) const
{
+// Reduction step
Int_t *nSame = new Int_t[nc];
Int_t *iperm = new Int_t[nc];
Int_t *go = new Int_t[nc];
Double_t *xPhi = xData[1];
Int_t nEff = 0;
for (Int_t i=0; i<fNeff; i++) if (xEta[i]<dFidEtaMax && xEta[i]>dFidEtaMin) nEff++;
- Double_t dMeanDist=TMath::Sqrt(2*dFiducialEta*pi/nEff);
+ Double_t dMeanDist=0.;
+ if (nEff > 0)
+ dMeanDist=TMath::Sqrt(2*dFiducialEta*pi/nEff);
Bool_t *isJet = new Bool_t[nk];
Double_t *etNoBg= new Double_t[nk];
Double_t *dDeltaEta=new Double_t[nk];