1 AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString filecutsname="D0toKpiCuts.root",Bool_t readMC=kFALSE, Bool_t simplemode=kFALSE){
3 // Test macro for the AliAnalysisTaskSE for HF mesons quality assurance
4 //Author: C.Bianchin chiara.bianchin@pd.infn.it
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8 ::Error("AddTaskHFQA", "No analysis manager to connect to.");
12 Bool_t stdcuts=kFALSE;
13 TFile* filecuts=new TFile(filecutsname.Data());
14 if(!filecuts->IsOpen()){
15 cout<<"Input file not found: using std cut object"<<endl;
19 Bool_t onoff[3]={kTRUE,kTRUE,kTRUE};
21 AliRDHFCuts *analysiscuts=0x0;
23 TString filename="",out1name="nEntriesQA",out2name="outputPid",out3name="outputTrack",out4name="cuts",out5name="countersCentrality",out6name="outputCentrCheck",inname="input",suffix="",cutsobjname="",centr="";
24 filename = AliAnalysisManager::GetCommonFileName();
25 filename += ":PWG3_D2H_QA";
29 cutsobjname="AnalysisCuts";
31 analysiscuts = new AliRDHFCutsDplustoKpipi();
32 analysiscuts->SetStandardCutsPP2010();
34 else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname);
38 cutsobjname="D0toKpiCuts";
40 analysiscuts = new AliRDHFCutsD0toKpi();
41 analysiscuts->SetStandardCutsPP2010();
43 else analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname);
47 cutsobjname="DStartoKpipiCuts";
49 analysiscuts = new AliRDHFCutsDStartoKpipi();
50 analysiscuts->SetStandardCutsPP2010();
52 else analysiscuts = (AliRDHFCutsDstartoKpipi*)filecuts->Get(cutsobjname);
56 cutsobjname="DstoKKpiCuts";
58 analysiscuts = new AliRDHFCutsDstoKKpi();
59 analysiscuts->SetStandardCutsPP2010();
61 else analysiscuts = (AliRDHFCutsDstoKKpi*)filecuts->Get(cutsobjname);
65 cutsobjname="D0toKpipipiCuts";
67 analysiscuts = new AliRDHFCutsD0toKpipipi();
68 analysiscuts->SetStandardCutsPP2010();
70 else analysiscuts = (AliRDHFCutsD0toKpipipi*)filecuts->Get(cutsobjname);
74 cutsobjname="LctopKpiAnalysisCuts";
76 analysiscuts = new AliRDHFCutsLctopKpi();
77 analysiscuts->SetStandardCutsPP2010();
79 else analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get(cutsobjname);
92 if(!analysiscuts && filecutsname!="none"){
93 cout<<"Specific AliRDHFCuts not found"<<endl;
97 centr=Form("%.0f%.0f",analysiscuts->GetMinCentrality(),analysiscuts->GetMaxCentrality());
107 AliAnalysisTaskSEHFQA* taskQA=new AliAnalysisTaskSEHFQA(Form("QA%s",suffix.Data()),ch,analysiscuts);
109 taskQA->SetReadMC(readMC);
110 taskQA->SetSimpleMode(simplemode); // set to kTRUE to go faster in PbPb
111 taskQA->SetTrackOn(onoff[0]);
112 taskQA->SetPIDOn(onoff[1]);
113 taskQA->SetCentralityOn(onoff[2]);
114 mgr->AddTask(taskQA);
117 // Create containers for input/output
118 AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(), AliAnalysisManager::kInputContainer);
119 mgr->ConnectInput(taskQA,0,mgr->GetCommonInputContainer());
121 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(out1name,TH1F::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //events analysed
122 mgr->ConnectOutput(taskQA,1,coutput1);
124 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(out2name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //PID
125 if(onoff[1]) mgr->ConnectOutput(taskQA,2,coutput2);
127 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(out3name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //quality of tracks
128 if(onoff[0]) mgr->ConnectOutput(taskQA,3,coutput3);
130 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(out4name,AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //cuts
131 mgr->ConnectOutput(taskQA,4,coutput4);
133 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer(out5name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //quality of centrality
134 if(onoff[2]) mgr->ConnectOutput(taskQA,5,coutput5);
136 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer(out6name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //quality of centrality
137 if(onoff[2]) mgr->ConnectOutput(taskQA,6,coutput6);