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