#include <TCanvas.h> //ShapeModel()
#include "TStopwatch.h" //
-Int_t AliHMPIDReconHTA::fgDB[500][150]={75000*0};
+Int_t AliHMPIDReconHTA::fgDB[500][150]={{75000*0}};
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDReconHTA::AliHMPIDReconHTA():
TTask("RichRec","RichPat"),
//..
//Delete variables
//..
- if(fXClu) delete fXClu;
- if(fYClu) delete fYClu;
- if(fPhiPhot) delete fPhiPhot;
- if(fThetaPhot) delete fThetaPhot;
- if(fClCk) delete fClCk;
+ if(fXClu) delete [] fXClu;
+ if(fYClu) delete [] fYClu;
+ if(fPhiPhot) delete [] fPhiPhot;
+ if(fThetaPhot) delete [] fThetaPhot;
+ if(fClCk) delete [] fClCk;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliHMPIDReconHTA::CkovHiddenTrk(AliESDtrack *pTrk,TClonesArray *pCluLst,Int_t index, Double_t nmean)
// thetaCRec - estimate of ThetaCerenkov
// status - TRUE if a good solution is found, FALSE if not
- Double_t *phiphot = new Double_t[fNClu];
- Double_t *dist = new Double_t[fNClu];
- Int_t *indphi = new Int_t[fNClu];
+ Double_t phiphot[1000];
+ Double_t dist[1000];
+ Int_t indphi[1000];
Bool_t status;
+ if(fNClu>1000) return kFALSE; // too many clusters....
+
// Sort in phi angle...
for(Int_t i=0;i<fNClu;i++) {
if(!fClCk[i]) {
npeff++;
}
- delete [] phiphot;
- delete [] dist;
- delete [] indphi;
-
if(npeff<3) {
AliDebug(1,Form("FindShape failed: no enough photons = %i...",npeff));
delete [] phiphotP;
Int_t nClAccStep1 = nClAcc;
nClAcc = 0;
Double_t meanCkov1=0;
- Double_t meanCkov2=0;
+ Double_t meanCkov3=0;
for(Int_t i=0;i<nClTot;i++) {
if(!(pRecHTA->ClCk(i))) continue;
thetaCer = pRecHTA->PhotTheta(i);
if(TMath::Abs(thetaCer-meanCkov)<2*rms) {
meanCkov1 += thetaCer;
- meanCkov2 += thetaCer*thetaCer;
+ meanCkov3 += thetaCer*thetaCer;
nClAcc++;
} else pRecHTA->SetClCk(i,kFALSE);
}
}
meanCkov1/=nClAcc;
- Double_t rms2 = (meanCkov2 - meanCkov*meanCkov*nClAcc)/nClAcc;
- AliLog::Instance();
+ Double_t rms2 = (meanCkov3 - meanCkov*meanCkov*nClAcc)/nClAcc;
+
+ // get a logger instance
+ // what for??
+ //AliLog::GetRootLogger();
+
if(nClAcc!=nClAccStep1) pRecHTA->SetFitStatus(kTRUE); else pRecHTA->SetFitStatus(kFALSE);
pRecHTA->SetCkovFit(meanCkov1);
x1=x2=-b/(2*a);
return 1;
}
+ if(a==0) {
+ x1 = -c/b;
+ return 1;
+ }
// delta>0
x1 = (-b+TMath::Sqrt(delta))/(2*a);
x2 = (-b-TMath::Sqrt(delta))/(2*a);
Double_t chi2 = 0;
for(Int_t i=0;i<nPhiBins;i++) {
Double_t theo = (Double_t)npeff/(Double_t)nPhiBins;
+ if(theo==0) continue;
chi2+= (iPhiBin[i] - theo)*(iPhiBin[i] - theo)/theo;
}
- delete iPhiBin;
+ delete [] iPhiBin;
Double_t prob = TMath::Prob(chi2, nPhiBins-1);
AliDebug(1,Form(" Probability for uniform distrib: %6f.3 %s",prob,(prob<0.05) ? "rejected" : "accepted"));