]>
Commit | Line | Data |
---|---|---|
8e4c6c96 | 1 | AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString filecutsname="",Bool_t readMC=kFALSE, Bool_t simplemode=kFALSE, Int_t system=1 /*0=pp, 1=PbPb*/, TString finDirname="",Bool_t trackon=kTRUE,Bool_t pidon=kTRUE,Bool_t centralityon=kTRUE, Bool_t eventselon=kTRUE, Bool_t flowobson=kFALSE, Bool_t filldistribforeffcheckson=kFALSE){ |
0c22e2ac | 2 | // |
3 | // Test macro for the AliAnalysisTaskSE for HF mesons quality assurance | |
4 | //Author: C.Bianchin chiara.bianchin@pd.infn.it | |
5 | ||
6 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
7 | if (!mgr) { | |
8 | ::Error("AddTaskHFQA", "No analysis manager to connect to."); | |
9 | return NULL; | |
10 | } | |
11 | ||
12 | Bool_t stdcuts=kFALSE; | |
13 | TFile* filecuts; | |
14 | if( filecutsname.EqualTo("") ) { | |
15 | stdcuts=kTRUE; | |
16 | } else { | |
17 | filecuts=TFile::Open(filecutsname.Data()); | |
18 | if(!filecuts ||(filecuts&& !filecuts->IsOpen())){ | |
19 | AliFatal("Input file not found : check your cut object"); | |
20 | } | |
21 | } | |
426f04b9 | 22 | |
23 | if(system==0) centralityon=kFALSE; | |
0c22e2ac | 24 | |
25 | AliRDHFCuts *analysiscuts=0x0; | |
26 | ||
d48d81b5 | 27 | TString filename="",out1name="nEntriesQA",out2name="outputPid",out3name="outputTrack",out4name="cuts",out5name="countersCentrality",out6name="outputCentrCheck",out7name="outputEvSel",out8name="outputFlowObs",inname="input",suffix="",cutsobjname="",centr=""; |
0c22e2ac | 28 | filename = AliAnalysisManager::GetCommonFileName(); |
29 | filename += ":PWG3_D2H_QA"; | |
30 | filename += finDirname.Data(); | |
31 | ||
32 | switch (ch){ | |
33 | case 0: | |
34 | cutsobjname="AnalysisCuts"; | |
35 | if(stdcuts) { | |
36 | analysiscuts = new AliRDHFCutsDplustoKpipi(); | |
37 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
38 | else analysiscuts->SetStandardCutsPbPb2011(); | |
39 | } | |
40 | else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname); | |
41 | suffix="Dplus"; | |
42 | break; | |
43 | case 1: | |
44 | cutsobjname="D0toKpiCuts"; | |
45 | if(stdcuts) { | |
46 | analysiscuts = new AliRDHFCutsD0toKpi(); | |
47 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
48 | else analysiscuts->SetStandardCutsPbPb2011(); | |
49 | } | |
50 | else analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname); | |
51 | suffix="D0"; | |
52 | break; | |
53 | case 2: | |
54 | cutsobjname="DStartoKpipiCuts"; | |
55 | if(stdcuts) { | |
56 | analysiscuts = new AliRDHFCutsDStartoKpipi(); | |
57 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
58 | else analysiscuts->SetStandardCutsPbPb2011(); | |
59 | } | |
60 | else analysiscuts = (AliRDHFCutsDstartoKpipi*)filecuts->Get(cutsobjname); | |
61 | suffix="Dstar"; | |
62 | break; | |
63 | case 3: | |
64 | cutsobjname="DstoKKpiCuts"; | |
65 | if(stdcuts) { | |
66 | analysiscuts = new AliRDHFCutsDstoKKpi(); | |
67 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
68 | else analysiscuts->SetStandardCutsPbPb2010(); | |
69 | } | |
70 | else analysiscuts = (AliRDHFCutsDstoKKpi*)filecuts->Get(cutsobjname); | |
71 | suffix="Ds"; | |
72 | break; | |
73 | case 4: | |
74 | cutsobjname="D0toKpipipiCuts"; | |
75 | if(stdcuts) { | |
76 | analysiscuts = new AliRDHFCutsD0toKpipipi(); | |
77 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
78 | else analysiscuts->SetStandardCutsPbPb2010(); | |
79 | } | |
80 | else analysiscuts = (AliRDHFCutsD0toKpipipi*)filecuts->Get(cutsobjname); | |
81 | suffix="D04"; | |
82 | break; | |
83 | case 5: | |
84 | cutsobjname="LctopKpiAnalysisCuts"; | |
85 | if(stdcuts) { | |
86 | analysiscuts = new AliRDHFCutsLctopKpi(); | |
87 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
88 | else analysiscuts->SetStandardCutsPbPb2010(); | |
89 | } | |
90 | else analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get(cutsobjname); | |
91 | suffix="Lc"; | |
92 | break; | |
ca688a98 | 93 | case 6: |
94 | cutsobjname="LctoV0AnalysisCuts"; | |
95 | if(stdcuts) { | |
96 | analysiscuts = new AliRDHFCutsLctoV0bachelor(); | |
97 | if (system == 0) analysiscuts->SetStandardCutsPP2010(); | |
98 | else analysiscuts->SetStandardCutsPbPb2010(); | |
99 | } | |
100 | else analysiscuts = (AliRDHFCutsLctoV0*)filecuts->Get(cutsobjname); | |
101 | suffix="LcToV0x"; | |
102 | break; | |
0c22e2ac | 103 | } |
104 | ||
105 | inname+=suffix; | |
106 | out1name+=suffix; | |
107 | out2name+=suffix; | |
108 | out3name+=suffix; | |
109 | out4name=cutsobjname; | |
439ce262 | 110 | out4name+=suffix; |
0c22e2ac | 111 | out5name+=suffix; |
112 | out6name+=suffix; | |
113 | out7name+=suffix; | |
d48d81b5 | 114 | out8name+=suffix; |
0c22e2ac | 115 | |
116 | if(!analysiscuts && filecutsname!="none"){ | |
117 | cout<<"Specific AliRDHFCuts not found"<<endl; | |
118 | return; | |
119 | } | |
120 | ||
121 | centr=Form("%.0f%.0f",analysiscuts->GetMinCentrality(),analysiscuts->GetMaxCentrality()); | |
122 | inname+=centr; | |
123 | out1name+=centr; | |
124 | out2name+=centr; | |
125 | out3name+=centr; | |
126 | out4name+=centr; | |
127 | out5name+=centr; | |
128 | out6name+=centr; | |
129 | out7name+=centr; | |
d48d81b5 | 130 | out8name+=centr; |
0c22e2ac | 131 | inname+= finDirname.Data(); |
132 | out1name+= finDirname.Data(); | |
133 | out2name+= finDirname.Data(); | |
134 | out3name+= finDirname.Data(); | |
135 | out4name+= finDirname.Data(); | |
136 | out5name+= finDirname.Data(); | |
137 | out6name+= finDirname.Data(); | |
138 | out7name+= finDirname.Data(); | |
d48d81b5 | 139 | out8name+= finDirname.Data(); |
0c22e2ac | 140 | |
141 | AliAnalysisTaskSEHFQA* taskQA=new AliAnalysisTaskSEHFQA(Form("QA%s",suffix.Data()),ch,analysiscuts); | |
142 | ||
143 | taskQA->SetReadMC(readMC); | |
144 | taskQA->SetSimpleMode(simplemode); // set to kTRUE to go faster in PbPb | |
426f04b9 | 145 | taskQA->SetTrackOn(trackon); |
146 | taskQA->SetPIDOn(pidon); | |
147 | taskQA->SetCentralityOn(centralityon); | |
148 | taskQA->SetEvSelectionOn(eventselon); | |
149 | taskQA->SetFlowObsOn(flowobson); | |
8e4c6c96 | 150 | taskQA->SetFillDistributionsForTrackEffChecks(filldistribforeffcheckson); |
0c22e2ac | 151 | mgr->AddTask(taskQA); |
152 | ||
153 | // | |
154 | // Create containers for input/output | |
155 | AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(), AliAnalysisManager::kInputContainer); | |
156 | mgr->ConnectInput(taskQA,0,mgr->GetCommonInputContainer()); | |
157 | ||
c7a6dffc | 158 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(out1name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //events analysed |
0c22e2ac | 159 | mgr->ConnectOutput(taskQA,1,coutput1); |
160 | ||
161 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(out2name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //PID | |
426f04b9 | 162 | if(pidon) mgr->ConnectOutput(taskQA,2,coutput2); |
0c22e2ac | 163 | |
164 | AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(out3name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //quality of tracks | |
426f04b9 | 165 | if(trackon) mgr->ConnectOutput(taskQA,3,coutput3); |
0c22e2ac | 166 | |
167 | AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(out4name,AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //cuts | |
168 | mgr->ConnectOutput(taskQA,4,coutput4); | |
169 | ||
170 | AliAnalysisDataContainer *coutput5 = mgr->CreateContainer(out5name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //quality of centrality | |
426f04b9 | 171 | if(centralityon) mgr->ConnectOutput(taskQA,5,coutput5); |
0c22e2ac | 172 | |
173 | AliAnalysisDataContainer *coutput6 = mgr->CreateContainer(out6name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //quality of centrality | |
426f04b9 | 174 | if(centralityon) mgr->ConnectOutput(taskQA,6,coutput6); |
0c22e2ac | 175 | |
176 | AliAnalysisDataContainer *coutput7 = mgr->CreateContainer(out7name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //event selection | |
426f04b9 | 177 | if(eventselon) mgr->ConnectOutput(taskQA,7,coutput7); |
0c22e2ac | 178 | |
d48d81b5 | 179 | AliAnalysisDataContainer *coutput8 = mgr->CreateContainer(out8name,TList::Class(),AliAnalysisManager::kOutputContainer, filename.Data()); //flow observables |
426f04b9 | 180 | if(flowobson) mgr->ConnectOutput(taskQA,8,coutput8); |
d48d81b5 | 181 | |
0c22e2ac | 182 | return taskQA; |
183 | } | |
184 |