]>
Commit | Line | Data |
---|---|---|
78f10f58 | 1 | void AddTask_GammaConvDalitzV1_pp( Int_t trainConfig = 1, //change different set of cuts |
2 | Bool_t isMC = kFALSE, //run MC | |
3 | TString fileNameInputForWeighting = "MCSpectraInput.root" // path to file for weigting input | |
4 | ) { | |
5 | ||
6 | // ================= Load Librariers ================================= | |
7 | gSystem->Load("libCore.so"); | |
8 | gSystem->Load("libTree.so"); | |
9 | gSystem->Load("libGeom.so"); | |
10 | gSystem->Load("libVMC.so"); | |
11 | gSystem->Load("libPhysics.so"); | |
12 | gSystem->Load("libMinuit"); | |
13 | gSystem->Load("libSTEERBase"); | |
14 | gSystem->Load("libESD"); | |
15 | gSystem->Load("libAOD"); | |
16 | gSystem->Load("libANALYSIS"); | |
17 | gSystem->Load("libANALYSISalice"); | |
18 | gSystem->Load("libPWGGAGammaConv.so"); | |
19 | gSystem->Load("libCDB.so"); | |
20 | gSystem->Load("libSTEER.so"); | |
21 | gSystem->Load("libSTEERBase.so"); | |
22 | gSystem->Load("libTENDER.so"); | |
23 | gSystem->Load("libTENDERSupplies.so"); | |
24 | ||
25 | // ================== GetAnalysisManager =============================== | |
26 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
27 | if (!mgr) { | |
28 | Error(Form("AddTask_GammaConvDalitzV1_%i",trainConfig), "No analysis manager found."); | |
29 | return ; | |
30 | } | |
31 | ||
32 | // ================== GetInputEventHandler ============================= | |
33 | AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); | |
34 | ||
35 | //========= Add PID Reponse to ANALYSIS manager ==== | |
36 | if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ | |
37 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
38 | AddTaskPIDResponse(isMC); | |
39 | } | |
40 | ||
41 | //========= Set Cutnumber for V0Reader ================================ | |
42 | ||
43 | ||
44 | TString cutnumber = "0000000000084001001500000"; | |
45 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
46 | ||
47 | //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== | |
48 | if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){ | |
49 | AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); | |
50 | ||
51 | fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); | |
52 | fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output | |
53 | fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); | |
54 | ||
55 | if (!mgr) { | |
56 | Error("AddTask_V0ReaderV1", "No analysis manager found."); | |
57 | return; | |
58 | } | |
59 | ||
60 | // Set AnalysisCut Number | |
61 | AliConversionCuts *fCuts=NULL; | |
62 | if(cutnumber!=""){ | |
63 | fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); | |
64 | fCuts->SetPreSelectionCutFlag(kTRUE); | |
65 | if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ | |
66 | fV0ReaderV1->SetConversionCuts(fCuts); | |
67 | fCuts->SetFillCutHistograms("",kTRUE); | |
68 | } | |
69 | } | |
70 | fV0ReaderV1->Init(); | |
71 | ||
72 | AliLog::SetGlobalLogLevel(AliLog::kInfo); | |
73 | ||
74 | //connect input V0Reader | |
75 | mgr->AddTask(fV0ReaderV1); | |
76 | mgr->ConnectInput(fV0ReaderV1,0,cinput); | |
77 | ||
78 | } | |
79 | ||
80 | ||
81 | if( !(AliDalitzElectronSelector*)mgr->GetTask("ElectronSelector") ){ | |
82 | ||
83 | ||
84 | ||
85 | AliDalitzElectronSelector *fElectronSelector = new AliDalitzElectronSelector("ElectronSelector"); | |
86 | ||
87 | //ConfigV0ReaderV1(fV0ReaderV1,ConvCutnumber,IsHeavyIon); | |
88 | ||
89 | ||
90 | ||
91 | // Set AnalysisCut Number | |
92 | ||
93 | AliDalitzElectronCuts *fElecCuts=0; | |
94 | ||
95 | TString ElecCuts = "900054000000020000"; | |
96 | ||
97 | ||
98 | ||
99 | if( ElecCuts!=""){ | |
100 | ||
101 | fElecCuts= new AliDalitzElectronCuts(ElecCuts.Data(),ElecCuts.Data()); | |
102 | ||
103 | if(fElecCuts->InitializeCutsFromCutString(ElecCuts.Data())){ | |
104 | ||
105 | fElectronSelector->SetDalitzElectronCuts(fElecCuts); | |
106 | ||
107 | fElecCuts->SetFillCutHistograms("",kTRUE); | |
108 | ||
109 | } | |
110 | ||
111 | } | |
112 | ||
113 | fElectronSelector->Init(); | |
114 | } | |
115 | ||
116 | ||
117 | ||
118 | mgr->AddTask(fElectronSelector); | |
119 | ||
120 | ||
121 | ||
122 | ||
123 | ||
124 | //================================================ | |
125 | //========= Add task to the ANALYSIS manager ===== | |
126 | // find input container | |
127 | AliAnalysisTaskGammaConvDalitzV1 *task=NULL; | |
128 | task= new AliAnalysisTaskGammaConvDalitzV1(Form("GammaConvDalitzV1_%i",trainConfig)); | |
129 | task->SetIsHeavyIon(0); | |
130 | task->SetIsMC(isMC); | |
131 | ||
132 | ||
133 | // Cut Numbers to use in Analysis | |
134 | Int_t numberOfCuts = 2; | |
135 | ||
136 | TString *ConvCutarray = new TString[numberOfCuts]; | |
137 | TString *MesonCutarray = new TString[numberOfCuts]; | |
138 | TString *ElecCutarray = new TString[numberOfCuts]; | |
139 | ||
140 | ||
141 | ||
142 | ||
143 | ||
144 | if(trainConfig == 1){ | |
145 | //TOF PID | |
146 | ConvCutarray[0] = "0000011002093663027800000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 | |
147 | ConvCutarray[1] = "0000011002093663027800000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 | |
148 | } else if (trainConfig == 2) { | |
149 | //TOF PID | |
150 | ConvCutarray[0] = "0000011002093663027800000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 | |
151 | ConvCutarray[1] = "0000011002093663027800000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 | |
152 | } else if (trainConfig == 3) { | |
153 | //TOF PID | |
154 | ConvCutarray[0] = "0000011002093663027800000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 | |
155 | ConvCutarray[1] = "0000011002093663027800000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 | |
156 | } else { | |
157 | Error(Form("GammaConvDalitzV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); | |
158 | return; | |
159 | } | |
160 | ||
161 | TList *ConvCutList = new TList(); | |
162 | TList *MesonCutList = new TList(); | |
163 | TList *ElecCutList = new TList(); | |
164 | ||
165 | TList *HeaderList = new TList(); | |
166 | TObjString *Header2 = new TObjString("BOX"); | |
167 | HeaderList->Add(Header2); | |
168 | ||
169 | ConvCutList->SetOwner(kTRUE); | |
170 | AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; | |
171 | MesonCutList->SetOwner(kTRUE); | |
172 | AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; | |
173 | ElecCutList->SetOwner(kTRUE); | |
174 | AliDalitzElectronCuts **analysisElecCuts = new AliDalitzElectronCuts*[numberOfCuts]; | |
175 | ||
176 | ||
177 | ||
178 | for(Int_t i = 0; i<numberOfCuts; i++){ | |
179 | ||
180 | ||
181 | TString cutName( Form("%s_%s_%s",ConvCutarray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) ); | |
182 | ||
183 | analysisCuts[i] = new AliConversionCuts(); | |
184 | analysisCuts[i]->InitializeCutsFromCutString(ConvCutarray[i].Data()); | |
185 | ConvCutList->Add(analysisCuts[i]); | |
186 | analysisCuts[i]->SetFillCutHistograms("",kFALSE); | |
187 | ||
188 | analysisMesonCuts[i] = new AliConversionMesonCuts(); | |
189 | analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()); | |
190 | MesonCutList->Add(analysisMesonCuts[i]); | |
191 | analysisMesonCuts[i]->SetFillCutHistograms(""); | |
192 | ||
193 | ||
194 | analysisElecCuts[i] = new AliDalitzElectronCuts(); | |
195 | analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data()); | |
196 | ElecCutList->Add(analysisElecCuts[i]); | |
197 | analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,cutName); | |
198 | //analysisElecCuts[i]->PrintCuts(); | |
199 | ||
200 | ||
201 | ||
202 | ||
203 | ||
204 | ||
205 | ||
206 | analysisCuts[i]->SetAcceptedHeader(HeaderList); | |
207 | ||
208 | } | |
209 | ||
210 | ||
211 | task->SetConversionCutList(numberOfCuts,ConvCutList); | |
212 | task->SetMesonCutList(MesonCutList); | |
213 | task->SetElectronCutList(ElecCutList); | |
214 | task->SetMoveParticleAccordingToVertex(kTRUE); | |
215 | //task->SetDoMesonAnalysis(kTRUE); | |
216 | //if (enableQAMesonTask) task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA | |
217 | //if (enableQAMesonTask) task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA | |
218 | ||
219 | //connect containers | |
220 | AliAnalysisDataContainer *coutput = | |
221 | mgr->CreateContainer(Form("GammaConvDalitzV1_%i",trainConfig), TList::Class(), | |
222 | AliAnalysisManager::kOutputContainer,Form("GammaConvV1_%i.root",trainConfig)); | |
223 | ||
224 | mgr->AddTask(task); | |
225 | mgr->ConnectInput(task,0,cinput); | |
226 | mgr->ConnectOutput(task,1,coutput); | |
227 | ||
228 | return; | |
229 | ||
230 | } |