fMinMass(1.720),
fMaxMass(2.150),
fMaxPt(10.),
+ fPtBinWidth(0.5),
fEtaAccCut(0.9),
fPtAccCut(0.1),
fNRotations(9),
fMinMass(1.720),
fMaxMass(2.150),
fMaxPt(10.),
+ fPtBinWidth(0.5),
fEtaAccCut(0.9),
fPtAccCut(0.1),
fNRotations(9),
fHistTrackStatus->SetMinimum(0);
fOutput->Add(fHistTrackStatus);
- Int_t nPtBins = fMaxPt*10;
-
+ Int_t nPtBins = (Int_t)(fMaxPt/fPtBinWidth+0.001);
+ Double_t maxPt=fPtBinWidth*nPtBins;
+
if(fReadMC){
fHistCheckOrigin=new TH1F("hCheckOrigin","",7,-1.5,5.5);
fHistCheckDecChanAcc->SetMinimum(0);
fOutput->Add(fHistCheckDecChanAcc);
- fPtVsYGen= new TH2F("hPtVsYGen","",nPtBins,0.,fMaxPt,20,-1.,1.);
+ fPtVsYGen= new TH2F("hPtVsYGen","",nPtBins,0.,maxPt,20,-1.,1.);
fPtVsYGen->Sumw2();
fPtVsYGen->SetMinimum(0);
fOutput->Add(fPtVsYGen);
- fPtVsYGenLargeAcc= new TH2F("hPtVsYGenLargeAcc","",nPtBins,0.,fMaxPt,20,-1.,1.);
+ fPtVsYGenLargeAcc= new TH2F("hPtVsYGenLargeAcc","",nPtBins,0.,maxPt,20,-1.,1.);
fPtVsYGenLargeAcc->Sumw2();
fPtVsYGenLargeAcc->SetMinimum(0);
fOutput->Add(fPtVsYGenLargeAcc);
- fPtVsYGenLimAcc= new TH2F("hPtVsYGenLimAcc","",nPtBins,0.,fMaxPt,20,-1.,1.);
+ fPtVsYGenLimAcc= new TH2F("hPtVsYGenLimAcc","",nPtBins,0.,maxPt,20,-1.,1.);
fPtVsYGenLimAcc->Sumw2();
fPtVsYGenLimAcc->SetMinimum(0);
fOutput->Add(fPtVsYGenLimAcc);
- fPtVsYGenAcc= new TH2F("hPtVsYGenAcc","",nPtBins,0.,fMaxPt,20,-1.,1.);
+ fPtVsYGenAcc= new TH2F("hPtVsYGenAcc","",nPtBins,0.,maxPt,20,-1.,1.);
fPtVsYGenAcc->Sumw2();
fPtVsYGenAcc->SetMinimum(0);
fOutput->Add(fPtVsYGenAcc);
- fPtVsYReco= new TH2F("hPtVsYReco","",nPtBins,0.,fMaxPt,20,-1.,1.);
+ fPtVsYReco= new TH2F("hPtVsYReco","",nPtBins,0.,maxPt,20,-1.,1.);
fPtVsYReco->Sumw2();
fPtVsYReco->SetMinimum(0);
fOutput->Add(fPtVsYReco);
Int_t nMassBins=fMaxMass*1000.-fMinMass*1000.;
Double_t maxm=fMinMass+nMassBins*0.001;
- fMassVsPtVsY=new TH3F("hMassVsPtVsY","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsY=new TH3F("hMassVsPtVsY","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsY->Sumw2();
fMassVsPtVsY->SetMinimum(0);
fOutput->Add(fMassVsPtVsY);
- fMassVsPtVsYRot=new TH3F("hMassVsPtVsYRot","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsYRot=new TH3F("hMassVsPtVsYRot","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsYRot->Sumw2();
fMassVsPtVsYRot->SetMinimum(0);
fOutput->Add(fMassVsPtVsYRot);
if(fMeson==kDzero){
- fMassVsPtVsYLSpp=new TH3F("hMassVsPtVsYLSpp","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsYLSpp=new TH3F("hMassVsPtVsYLSpp","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsYLSpp->Sumw2();
fMassVsPtVsYLSpp->SetMinimum(0);
fOutput->Add(fMassVsPtVsYLSpp);
- fMassVsPtVsYLSmm=new TH3F("hMassVsPtVsYLSmm","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsYLSmm=new TH3F("hMassVsPtVsYLSmm","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsYLSmm->Sumw2();
fMassVsPtVsYLSmm->SetMinimum(0);
fOutput->Add(fMassVsPtVsYLSmm);
}
- fMassVsPtVsYSig=new TH3F("hMassVsPtVsYSig","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsYSig=new TH3F("hMassVsPtVsYSig","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsYSig->Sumw2();
fMassVsPtVsYSig->SetMinimum(0);
fOutput->Add(fMassVsPtVsYSig);
- fMassVsPtVsYRefl=new TH3F("hMassVsPtVsYRefl","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsYRefl=new TH3F("hMassVsPtVsYRefl","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsYRefl->Sumw2();
fMassVsPtVsYRefl->SetMinimum(0);
fOutput->Add(fMassVsPtVsYRefl);
- fMassVsPtVsYBkg=new TH3F("hMassVsPtVsYBkg","",nMassBins,fMinMass,maxm,nPtBins,0.,fMaxPt,20,-1.,1.);
+ fMassVsPtVsYBkg=new TH3F("hMassVsPtVsYBkg","",nMassBins,fMinMass,maxm,nPtBins,0.,maxPt,20,-1.,1.);
fMassVsPtVsYBkg->Sumw2();
fMassVsPtVsYBkg->SetMinimum(0);
fOutput->Add(fMassVsPtVsYBkg);
Double_t bayesThresPion = 0.4,
Double_t minMass = 1.6,
Double_t maxMass = 2.15,
- Double_t maxPt = 20.)
+ Double_t maxPt = 20.,
+ Double_t ptBinWidth = 0.5)
{
-
+
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskCombinHF", "No analysis manager to connect to.");
}
-
+
//Analysis Task
-
-
+
+
AliRDHFCuts* analysiscuts=0x0;
AliAODPidHF* pid=0x0;
if(!cutObjFile.IsNull()){
pid->SetTOFnSigmaRangeForPions(-3.,3.);
pid->SetTOFnSigmaRangeForKaons(-2.,2.);
pid->SetTOFnSigmaRangeForProtons(-3.,3.);
-
+
}
if(!analysiscuts){
Printf("Wrong file or cut object name set");
return 0x0;
}
-
+
AliAnalysisTaskCombinHF *dTask = new AliAnalysisTaskCombinHF(meson,analysiscuts);
if(!cutObjFile.IsNull()){
dTask->SetKaonTrackCuts(esdc);
// mass and pt range for histograms
dTask->SetMassWindow(minMass, maxMass);
dTask->SetMaxPt(maxPt);
+ dTask->SetPtBinWidth(ptBinWidth);
// PID settings
dTask->SetPIDHF(pid);
dTask->SetPIDstrategy(pidStrategy);
dTask->SetPIDselCaseZero(casePID);
dTask->SetBayesThres(bayesThresKaon, bayesThresPion);
-
-
+
+
mgr->AddTask(dTask);
-
- // Create containers for input/output
-
+
+ // Create containers for input/output
+
TString mesname="Dzero";
if(meson==1) mesname="Dplus";
TString inname = Form("cinput%s%s",mesname.Data(),containerStr.Data());
TString outname = Form("coutput%s%s",mesname.Data(),containerStr.Data());
TString normname = Form("coutput%sNorm%s",mesname.Data(),containerStr.Data());
-
+
AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(),
- AliAnalysisManager::kInputContainer);
+ AliAnalysisManager::kInputContainer);
TString outputfile = AliAnalysisManager::GetCommonFileName();
outputfile += Form(":PWG3_D2H_InvMass%sLowPt%s",mesname.Data(),containerStr.Data());
AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(),
- AliAnalysisManager::kOutputContainer,
- outputfile.Data());
+ AliAnalysisManager::kOutputContainer,
+ outputfile.Data());
AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
- AliAnalysisManager::kOutputContainer,
- outputfile.Data());
+ AliAnalysisManager::kOutputContainer,
+ outputfile.Data());
mgr->ConnectInput(dTask,0,mgr->GetCommonInputContainer());
mgr->ConnectOutput(dTask,1,coutput);
mgr->ConnectOutput(dTask,2,coutputNorm);
-
+
return dTask;
}