Int_t system=0/*0=pp,1=PbPb*/,Int_t flagD0D0bar=0,
Float_t minC=0, Float_t maxC=0,
TString finDirname="Loose",
- TString finname="D0toKpiCuts.root",TString finObjname="D0toKpiCuts", Bool_t flagAOD049=kFALSE,
- Bool_t FillMassPt=false, Bool_t FillImpPar=false)
+ TString finname="",TString finObjname="D0toKpiCuts", Bool_t flagAOD049=kFALSE,
+ Bool_t FillMassPt=false, Bool_t FillImpPar=false,
+ Bool_t DrawDetSignal=false, Bool_t PIDCheck=false)
{
//
// AddTask for the AliAnalysisTaskSE for D0 candidates
return NULL;
}
- TString filename="",out1name="",out2name="",out3name="",out4name="",out5name="",out6name="",out7name="",inname="";
+ TString filename="",out1name="",out2name="",out3name="",out4name="",out5name="",out6name="",out7name="",out8name="", inname="";
filename = AliAnalysisManager::GetCommonFileName();
filename += ":PWG3_D2H_";
if(flag==0){
out7name ="coutputVarTree";
+ //detector signal hists
+
+ out8name="detectorSignals";
+ if(cutOnDistr) out8name+="C";
+ if(flagD0D0bar==1)out8name+="D0";
+ if(flagD0D0bar==2)out8name+="D0bar";
+
+
+
+
inname="cinputmassD0_0";
if(cutOnDistr) inname+="C";
if(flagD0D0bar==1)inname+="D0";
out5name += finDirname.Data();
out6name += finDirname.Data();
out7name += finDirname.Data();
+ out8name += finDirname.Data();
inname += finDirname.Data();
//setting my cut values
// printf(" cosThetaPoint > %f\n",fD0toKpiCuts[8]);
Bool_t stdcuts=kFALSE;
- TFile* filecuts=TFile::Open(finname.Data());
- if(!filecuts->IsOpen()){
- cout<<"Input file not found: using std cut object"<<endl;
- stdcuts=kTRUE;
+ TFile* filecuts;
+ if( finname.EqualTo("") ) {
+ stdcuts=kTRUE;
+ } else {
+ filecuts=TFile::Open(finname.Data());
+ if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
+ AliFatal("Input file not found : check your cut object");
+ }
}
AliRDHFCutsD0toKpi* RDHFD0toKpi=new AliRDHFCutsD0toKpi();
if(stdcuts) {
if(system==0) RDHFD0toKpi->SetStandardCutsPP2010();
else {
- RDHFD0toKpi->SetStandardCutsPbPb2010();
+ RDHFD0toKpi->SetStandardCutsPbPb2011();
if(minC!=0 && maxC!=0) { //if centrality 0 and 0 leave the values in the cut object
RDHFD0toKpi->SetMinCentrality(minC);
RDHFD0toKpi->SetMaxCentrality(maxC);
else {
RDHFD0toKpi = (AliRDHFCutsD0toKpi*)filecuts->Get(finObjname.Data());
if(!RDHFD0toKpi){
- cout<<"Specific AliRDHFCuts not found"<<endl;
+ AliFatal("Specific AliRDHFCuts not found");
return;
}
if(flagAOD049)RDHFD0toKpi->SetUseAOD049(kTRUE);
out5name+=centr;
out6name+=centr;
out7name+=centr;
+ out8name+=centr;
inname+=centr;
// Aanalysis task
massD0Task->SetFillPtHistos(FillMassPt);
massD0Task->SetFillImpactParameterHistos(FillImpPar);
-
+ massD0Task->SetDrawDetSignal(DrawDetSignal);
+ massD0Task->SetPIDCheck(PIDCheck);
// massD0Task->SetRejectSDDClusters(kTRUE);
// massD0Task->SetWriteVariableTree(kTRUE);
AliAnalysisDataContainer *coutputmassD05 = mgr->CreateContainer(out5name,AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //counter
AliAnalysisDataContainer *coutputmassD06 = mgr->CreateContainer(out6name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //mass vs pt vs impt par
AliAnalysisDataContainer *coutputmassD07 = mgr->CreateContainer(out7name,TTree::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //mass vs pt vs impt par
+ AliAnalysisDataContainer *coutputmassD08 = mgr->CreateContainer(out8name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //dedx
+
+
mgr->ConnectInput(massD0Task,0,mgr->GetCommonInputContainer());
mgr->ConnectOutput(massD0Task,5,coutputmassD05);
mgr->ConnectOutput(massD0Task,6,coutputmassD06);
mgr->ConnectOutput(massD0Task,7,coutputmassD07);
+ mgr->ConnectOutput(massD0Task,8,coutputmassD08);
return massD0Task;