ClassImp(AliPerformanceEff)
//_____________________________________________________________________________
-AliPerformanceEff::AliPerformanceEff():
- AliPerformanceObject("AliPerformanceEff"),
-
- // histograms
- fEffHisto(0),
- fEffSecHisto(0),
-
- // Cuts
- fCutsRC(0),
- fCutsMC(0),
-
- // histogram folder
- fAnalysisFolder(0)
-{
- // default consttructor
- Init();
-}
-
-//_____________________________________________________________________________
-AliPerformanceEff::AliPerformanceEff(Char_t* name="AliPerformanceEff",Char_t*title="AliPerformanceEff",Int_t analysisMode=0, Bool_t hptGenerator=kFALSE):
- AliPerformanceObject(name,title),
+AliPerformanceEff::AliPerformanceEff(const Char_t* name, const Char_t* title, Int_t analysisMode, Bool_t hptGenerator): AliPerformanceObject(name,title),
// histograms
fEffHisto(0),
if (IsHptGenerator()) {
ptMax = 100.;
}
- binsPt = CreateLogAxis(nPtBins,ptMin,ptMax);
+ binsPt = CreateLogAxis(nPtBins,ptMin,ptMax);
/*
Int_t nPtBins = 31;
//mceta:mcphi:mcpt:pid:recStatus:findable:charge
Int_t binsEffHisto[9]={30,144,nPtBins,5,2,2,3,fgkMaxClones+1,fgkMaxFakes+1};
Double_t minEffHisto[9]={-1.5,0.,ptMin,0.,0.,0.,-1.5,0,0};
- Double_t maxEffHisto[9]={ 1.5,2.*TMath::Pi(), ptMax,5.,2.,2.,1.5,fgkMaxClones,fgkMaxFakes};
+ Double_t maxEffHisto[9]={ 1.5,2.*TMath::Pi(), ptMax,5.,2.,2.,1.5,fgkMaxClones+1,fgkMaxFakes+1};
fEffHisto = new THnSparseF("fEffHisto","mceta:mcphi:mcpt:pid:recStatus:findable:charge:nclones:nfakes",9,binsEffHisto,minEffHisto,maxEffHisto);
fEffHisto->SetBinEdges(2,binsPt);
//mceta:mcphi:mcpt:pid:recStatus:findable:mcR:mother_phi:mother_eta:charge
Int_t binsEffSecHisto[12]={30,60,nPtBins,5,2,2,100,60,30,3,fgkMaxClones+1,fgkMaxFakes+1};
Double_t minEffSecHisto[12]={-1.5,0.,ptMin,0.,0.,0.,0.,0.,-1.5,-1.5,0,0};
- Double_t maxEffSecHisto[12]={ 1.5,2.*TMath::Pi(), ptMax,5.,2.,2.,200,2.*TMath::Pi(),1.5,1.5,fgkMaxClones,fgkMaxFakes};
+ Double_t maxEffSecHisto[12]={ 1.5,2.*TMath::Pi(), ptMax,5.,2.,2.,200,2.*TMath::Pi(),1.5,1.5,fgkMaxClones+1,fgkMaxFakes+1};
fEffSecHisto = new THnSparseF("fEffSecHisto","mceta:mcphi:mcpt:pid:recStatus:findable:mcR:mother_phi:mother_eta:charge:nclones:nfakes",12,binsEffSecHisto,minEffSecHisto,maxEffSecHisto);
fEffSecHisto->SetBinEdges(2,binsPt);
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
// Fill histograms
- Double_t vEffHisto[9] = {mceta, mcphi, mcpt, pid, recStatus, findable, charge, nClones, nFakes};
+ Double_t vEffHisto[9] = {mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes)};
fEffHisto->Fill(vEffHisto);
}
if(labelsRec) delete [] labelsRec; labelsRec = 0;
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
// Fill histograms
- Double_t vEffSecHisto[12] = { mceta, mcphi, mcpt, pid, recStatus, findable, mcR, mother_phi, mother_eta, charge, nClones, nFakes };
+ Double_t vEffSecHisto[12] = { mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), mcR, mother_phi, mother_eta, static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes) };
fEffSecHisto->Fill(vEffSecHisto);
}
}
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
// Fill histograms
- Double_t vEffHisto[9] = { mceta, mcphi, mcpt, pid, recStatus, findable, charge, nClones, nFakes};
+ Double_t vEffHisto[9] = { mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes)};
fEffHisto->Fill(vEffHisto);
}
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
// Fill histograms
- Double_t vEffHisto[9] = { mceta, mcphi, mcpt, pid, recStatus, findable, charge, nClones, nFakes };
+ Double_t vEffHisto[9] = { mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes) };
fEffHisto->Fill(vEffHisto);
}
if(GetAnalysisMode() != 5) {
fEffHisto->GetAxis(0)->SetRangeUser(-0.9,0.89); // eta range
- fEffHisto->GetAxis(2)->SetRangeUser(0.1,10.); // pt range
+ fEffHisto->GetAxis(2)->SetRangeUser(0.1,19.99); // pt range // FIXME maybe remove since range is defined in THnSparse
// rec efficiency vs pt
fEffHisto->GetAxis(3)->SetRangeUser(0.,3.99); // reconstructed
aFolderObj->Add(AddHistoEff(2, "ptRecEffPos", "rec. efficiency pos.", 0));
// rec efficiency vs pid vs pt
- fEffHisto->GetAxis(3)->SetRangeUser(2.,2.); // pions
+ fEffHisto->GetAxis(3)->SetRange(3,3); // pions
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(2, "ptRecEffPi", "rec. efficiency (pions)", 0));
aFolderObj->Add(AddHistoEff(2, "ptRecEffPiPos", "rec. efficiency (pions) pos.", 0));
- fEffHisto->GetAxis(3)->SetRangeUser(3.,3.); // kaons
+ fEffHisto->GetAxis(3)->SetRange(4,4); // kaons
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(2, "ptRecEffK", "rec. efficiency (kaons)", 0));
aFolderObj->Add(AddHistoEff(2, "ptRecEffKPos", "rec. efficiency (kaons) pos.", 0));
- fEffHisto->GetAxis(3)->SetRangeUser(4.,4.); // protons
+ fEffHisto->GetAxis(3)->SetRange(5,5); // protons
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(2, "ptRecEffP", "rec. efficiency (protons)", 0));
// findable efficiency vs pt
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
- fEffHisto->GetAxis(5)->SetRangeUser(1.,1.); // findable
+ fEffHisto->GetAxis(5)->SetRange(2,2); // findable
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(2, "ptRecEffF", "rec. efficiency (findable)", 0));
// efficiency vs eta
//
- fEffHisto->GetAxis(0)->SetRangeUser(-1.5,1.5); // eta range
- fEffHisto->GetAxis(2)->SetRangeUser(0.2,10.); // pt range
- fEffHisto->GetAxis(5)->SetRangeUser(0.,1.); // all
+ fEffHisto->GetAxis(0)->SetRangeUser(-1.5,1.49); // eta range
+ fEffHisto->GetAxis(2)->SetRangeUser(0.1,19.99); // pt range
+ fEffHisto->GetAxis(5)->SetRangeUser(0.,1.0); // all
// rec efficiency vs eta
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.); // reconstructed
aFolderObj->Add(AddHistoEff(0, "etaRecEffPos", "rec. efficiency pos.", 0));
// rec efficiency vs pid vs eta
- fEffHisto->GetAxis(3)->SetRangeUser(2.,2.); // pions
+ fEffHisto->GetAxis(3)->SetRange(3,3); // pions
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(0, "etaRecEffPi", "rec. efficiency (pions)", 0));
aFolderObj->Add(AddHistoEff(0, "etaRecEffPiPos", "rec. efficiency (pions) pos.", 0));
- fEffHisto->GetAxis(3)->SetRangeUser(3.,3.); // kaons
+ fEffHisto->GetAxis(3)->SetRange(4,4); // kaons
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(0, "etaRecEffK", "rec. efficiency (kaons)", 0));
aFolderObj->Add(AddHistoEff(0, "etaRecEffKPos", "rec. efficiency (kaons) pos.", 0));
- fEffHisto->GetAxis(3)->SetRangeUser(4.,4.); // protons
+ fEffHisto->GetAxis(3)->SetRange(5,5); // protons
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(0, "etaRecEffP", "rec. efficiency (protons)", 0));
// findable efficiency vs eta
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
- fEffHisto->GetAxis(5)->SetRangeUser(1.,1.); // findable
+ fEffHisto->GetAxis(5)->SetRange(2,2); // findable
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(0, "etaRecEffF", "rec. efficiency (findable)", 0));
// efficiency vs phi
//
- fEffHisto->GetAxis(0)->SetRangeUser(-0.9,0.9); // eta range
- fEffHisto->GetAxis(2)->SetRangeUser(0.2,10.); // pt range
+ fEffHisto->GetAxis(0)->SetRangeUser(-0.9,0.89); // eta range
+ fEffHisto->GetAxis(2)->SetRangeUser(0.1,19.99); // pt range
fEffHisto->GetAxis(5)->SetRangeUser(0.,1.); // all
// rec efficiency vs phi
aFolderObj->Add(AddHistoEff(1, "phiRecEffPos", "rec. efficiency pos.", 0));
// rec efficiency vs pid vs phi
- fEffHisto->GetAxis(3)->SetRangeUser(2.,2.); // pions
+ fEffHisto->GetAxis(3)->SetRange(3,3); // pions
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(1, "phiRecEffPi", "rec. efficiency (pions)", 0));
aFolderObj->Add(AddHistoEff(1, "phiRecEffPiPos", "rec. efficiency (pions) pos.", 0));
- fEffHisto->GetAxis(3)->SetRangeUser(3.,3.); // kaons
+ fEffHisto->GetAxis(3)->SetRange(4,4); // kaons
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(1, "phiRecEffK", "rec. efficiency (kaons)", 0));
aFolderObj->Add(AddHistoEff(1, "phiRecEffKPos", "rec. efficiency (kaons) pos.", 0));
- fEffHisto->GetAxis(3)->SetRangeUser(4.,4.); // protons
+ fEffHisto->GetAxis(3)->SetRange(5,5); // protons
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(1, "phiRecEffP", "rec. efficiency (protons)", 0));
// findable efficiency vs phi
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
- fEffHisto->GetAxis(5)->SetRangeUser(1.,1.); // findable
+ fEffHisto->GetAxis(5)->SetRange(2,2); // findable
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.); // charge all
aFolderObj->Add(AddHistoEff(1, "phiRecEffF", "rec. efficiency (findable)", 0));
}
else {
//
- Float_t minEta=-1.5, maxEta=1.5;
+ Float_t minEta=-1.5, maxEta=1.49;
Float_t minR=0.0, maxR=150.0;
- Float_t minPt=0.15, maxPt=100.0;
+ Float_t minPt=0.10, maxPt=19.99;
// mother eta range
fEffSecHisto->GetAxis(8)->SetRangeUser(minEta,maxEta);
// rec efficiency vs pid vs pt
- fEffSecHisto->GetAxis(3)->SetRangeUser(0.,0.); // electrons
+ fEffSecHisto->GetAxis(3)->SetRange(1,1); // electrons
aFolderObj->Add(AddHistoEff(2, "ptRecEffEle", "rec. efficiency (electrons)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(2.,2.); // pions
+ fEffSecHisto->GetAxis(3)->SetRange(3,3); // pions
aFolderObj->Add(AddHistoEff(2, "ptRecEffPi", "rec. efficiency (pions)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(3.,3.); // kaons
+ fEffSecHisto->GetAxis(3)->SetRange(4,4); // kaons
aFolderObj->Add(AddHistoEff(2, "ptRecEffK", "rec. efficiency (kaons)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(4.,4.); // protons
+ fEffSecHisto->GetAxis(3)->SetRange(5,5); // protons
aFolderObj->Add(AddHistoEff(2, "ptRecEffP", "rec. efficiency (protons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRangeUser(0.,4.);
// findable efficiency vs pt
- fEffSecHisto->GetAxis(5)->SetRangeUser(1.,1.); // findable
+ fEffSecHisto->GetAxis(5)->SetRange(2,2); // findable
aFolderObj->Add(AddHistoEff(2, "ptRecEffF", "rec. efficiency (findable)", 0, 1));
aFolderObj->Add(AddHistoEff(2, "ptCloneF", "clone rate (findable)", 1, 1));
aFolderObj->Add(AddHistoEff(2, "ptFakeF", "fake rate (findable)", 2, 1));
aFolderObj->Add(AddHistoEff(0, "etaFake", "fake rate", 2, 1));
// rec efficiency vs pid vs eta
- fEffSecHisto->GetAxis(3)->SetRangeUser(0.,0.); // electrons
+ fEffSecHisto->GetAxis(3)->SetRange(1,1); // electrons
aFolderObj->Add(AddHistoEff(0, "etaRecEffEle", "rec. efficiency (electrons)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(2.,2.); // pions
+ fEffSecHisto->GetAxis(3)->SetRange(3,3); // pions
aFolderObj->Add(AddHistoEff(0, "etaRecEffPi", "rec. efficiency (pions)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(3.,3.); // kaons
+ fEffSecHisto->GetAxis(3)->SetRange(4,4); // kaons
aFolderObj->Add(AddHistoEff(0, "etaRecEffK", "rec. efficiency (kaons)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(4.,4.); // protons
+ fEffSecHisto->GetAxis(3)->SetRange(5,5); // protons
aFolderObj->Add(AddHistoEff(0, "etaRecEffP", "rec. efficiency (protons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRangeUser(0.,4.);
// findable efficiency vs eta
- fEffSecHisto->GetAxis(5)->SetRangeUser(1.,1.); // findable
+ fEffSecHisto->GetAxis(5)->SetRange(2,2); // findable
aFolderObj->Add(AddHistoEff(0, "etaRecEffF", "rec. efficiency (findable)", 0, 1));
aFolderObj->Add(AddHistoEff(0, "etaCloneF", "clone rate (findable)", 1, 1));
aFolderObj->Add(AddHistoEff(0, "etaFakeF", "fake rate (findable)", 2, 1));
aFolderObj->Add(AddHistoEff(1, "phiFake", "fake rate", 2, 1));
// rec efficiency vs pid vs phi
- fEffSecHisto->GetAxis(3)->SetRangeUser(0.,0.);
+ fEffSecHisto->GetAxis(3)->SetRange(1,1);
aFolderObj->Add(AddHistoEff(1, "phiRecEffEle", "rec. efficiency (electrons)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(2.,2.); // pions
+ fEffSecHisto->GetAxis(3)->SetRange(3,3); // pions
aFolderObj->Add(AddHistoEff(1, "phiRecEffPi", "rec. efficiency (pions)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(3.,3.); // kaons
+ fEffSecHisto->GetAxis(3)->SetRange(4,4); // kaons
aFolderObj->Add(AddHistoEff(1, "phiRecEffK", "rec. efficiency (kaons)", 0, 1));
- fEffSecHisto->GetAxis(3)->SetRangeUser(4.,4.); // protons
+ fEffSecHisto->GetAxis(3)->SetRange(5,5); // protons
aFolderObj->Add(AddHistoEff(1, "phiRecEffP", "rec. efficiency (protons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRangeUser(0.,4.);
// findable efficiency vs phi
- fEffSecHisto->GetAxis(5)->SetRangeUser(1.,1.); // findable
+ fEffSecHisto->GetAxis(5)->SetRange(2,2); // findable
aFolderObj->Add(AddHistoEff(1, "phiRecEffF", "rec. efficiency (findable)", 0, 1));
aFolderObj->Add(AddHistoEff(1, "phiCloneF", "clone rate (findable)", 1, 1));
aFolderObj->Add(AddHistoEff(1, "phiFakeF", "fake rate (findable)", 2, 1));
if (type == 0) // Efficiency
{
- EffHisto->GetAxis(4)->SetRangeUser(0.,1.); // all
+ EffHisto->GetAxis(4)->SetRange(1.,2.); // all
TH1D *all = EffHisto->Projection(axis);
- EffHisto->GetAxis(4)->SetRangeUser(1.,1.); // reconstructed
+ EffHisto->GetAxis(4)->SetRange(2.,2.); // reconstructed
TH1D *rec = EffHisto->Projection(axis);
recc = (TH1D*)rec->Clone();
}
else if (type == 1) // Clone Rate
{
- EffHisto->GetAxis(4)->SetRangeUser(1.,1.); // reconstructed
+ EffHisto->GetAxis(4)->SetRange(2.,2.); // reconstructed
TH1D *all = WeightedProjection(EffHisto, axis, 3, axis_all);
- EffHisto->GetAxis(4)->SetRangeUser(1.,1.); // reconstructed
+ EffHisto->GetAxis(4)->SetRange(2.,2.); // reconstructed
TH1D *clone = WeightedProjection(EffHisto, axis, 1, &axis_clone);
recc = (TH1D*) clone->Clone();
}
else if (type == 2) // Fake Rate
{
- EffHisto->GetAxis(4)->SetRangeUser(1.,1.); // reconstructed
+ EffHisto->GetAxis(4)->SetRange(2.,2.); // reconstructed
TH1D *all = WeightedProjection(EffHisto, axis, 3, axis_all);
- EffHisto->GetAxis(4)->SetRangeUser(1.,1.); // reconstructed
+ EffHisto->GetAxis(4)->SetRange(2.,2.); // reconstructed
TH1D *fake = WeightedProjection(EffHisto, axis, 1, &axis_fake);
recc = (TH1D*) fake->Clone();