]>
Commit | Line | Data |
---|---|---|
ca91a3e1 | 1 | AliAnalysisTask *AddTask_Material(){ |
2 | ||
3 | //get the current analysis manager | |
4 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
5 | if (!mgr) { | |
6 | Error("AddTask_Material", "No analysis manager found."); | |
7 | return 0; | |
8 | } | |
9 | ||
10 | TString trainConfig=gSystem->Getenv("CONFIG_FILE"); | |
11 | cout << trainConfig.Data() << endl; | |
12 | Bool_t IsHeavyIon=trainConfig.Contains("PbPb"); | |
13 | ||
14 | TString cutnumber = ""; | |
15 | if(IsHeavyIon) cutnumber = "1080000020084001001500000"; | |
16 | else cutnumber = "0000000020084001001500000"; | |
17 | ||
18 | //========= Add PID Reponse to ANALYSIS manager ==== | |
19 | if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ | |
20 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
21 | AddTaskPIDResponse(); | |
22 | } | |
23 | ||
24 | //========= Add V0 Reader to ANALYSIS manager ===== | |
25 | AliV0ReaderV1 *fV0ReaderV1=new AliV0ReaderV1("V0ReaderV1"); | |
26 | ConfigV0ReaderV1(fV0ReaderV1,cutnumber,IsHeavyIon); | |
27 | mgr->AddTask(fV0ReaderV1); | |
28 | ||
29 | AliLog::SetGlobalLogLevel(AliLog::kInfo); | |
30 | ||
31 | //================================================ | |
32 | // data containers | |
33 | //================================================ | |
34 | // find input container | |
35 | //below the trunk version | |
36 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
37 | //connect input V0Reader | |
38 | mgr->ConnectInput (fV0ReaderV1,0,cinput); | |
39 | ||
40 | // TString cutarray = "0000010020093663003800000"; //Standard Cut Pi0 with PileUp Rejection | |
41 | // TString cutarray = "0000010020092663003800000"; //Standard Cut Pi0 with PileUp Rejection | |
42 | TString cutarray = "0000010020092663043800000"; //Standard Cut Pi0 with PileUp Rejection | |
43 | ||
44 | TList *ConvCutList = new TList(); | |
45 | ConvCutList->SetOwner(kTRUE); | |
46 | AliConversionCuts *analysisCuts = new AliConversionCuts(); | |
47 | analysisCuts->InitializeCutsFromCutString(cutarray.Data()); | |
48 | ConvCutList->Add(analysisCuts); | |
49 | analysisCuts->SetFillCutHistograms("",kFALSE); | |
50 | AliAnalysisTaskMaterial *fMaterial= new AliAnalysisTaskMaterial(Form("%s_Material",(analysisCuts->GetCutNumber()).Data())); | |
51 | fMaterial->SetConversionCuts(analysisCuts,IsHeavyIon); | |
52 | TString addoutput=gSystem->Getenv("ADD_OUTPUT_FILES"); | |
53 | if (addoutput.Length()) addoutput+=","; | |
54 | addoutput+=Form("GammaConvV1_Material_%s.root",(analysisCuts->GetCutNumber()).Data()); | |
55 | if (trainConfig.Contains("MC"){ | |
56 | if (addoutput.Length()) addoutput+=","; | |
57 | addoutput+=Form("GammaConvV1_Resolution_%s.root",(analysisCuts->GetCutNumber()).Data()); | |
58 | } | |
59 | AddQATaskV1(analysisCuts,IsHeavyIon); | |
60 | if (addoutput.Length()) addoutput+=","; | |
61 | addoutput+=Form("GammaConvV1_QA_%s.root",(analysisCuts->GetCutNumber()).Data()); | |
62 | gSystem->Setenv("ADD_OUTPUT_FILES",addoutput.Data()); | |
63 | ||
64 | cout<<"Adding addoutput.Data()"<<endl; | |
65 | ||
66 | mgr->AddTask(fMaterial); | |
67 | mgr->ConnectInput(fMaterial, 0, cinput ); | |
68 | ||
69 | //connect containers | |
70 | return fMaterial; | |
71 | } | |
72 | ||
73 | void ConfigV0ReaderV1(AliV0ReaderV1 *fV0ReaderV1,TString analysiscut="",Bool_t IsHeavyIon=kFALSE){ | |
74 | ||
75 | fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); | |
76 | fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output | |
77 | fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); | |
78 | ||
79 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
80 | if (!mgr) { | |
81 | Error("AddTask_V0ReaderV1", "No analysis manager found."); | |
82 | return; | |
83 | } | |
84 | AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); | |
85 | ||
86 | if(inputHandler->IsA()==AliESDInputHandler::Class()){ | |
87 | // ESD mode | |
88 | } | |
89 | ||
90 | if(inputHandler->IsA()==AliAODInputHandler::Class()){ | |
91 | // AOD mode | |
92 | // task->SetUseSatelliteAODs(kTRUE); | |
93 | } | |
94 | ||
95 | // Set AnalysisCut Number | |
96 | AliConversionCuts *fCuts=NULL; | |
97 | if(analysiscut!=""){ | |
98 | fCuts= new AliConversionCuts(analysiscut.Data(),analysiscut.Data()); | |
99 | if(fCuts->InitializeCutsFromCutString(analysiscut.Data())){ | |
100 | fV0ReaderV1->SetConversionCuts(fCuts); | |
101 | fCuts->SetFillCutHistograms("",kTRUE); | |
102 | } | |
103 | } | |
104 | fV0ReaderV1->Init(); | |
105 | ||
106 | } | |
107 | ||
108 | void AddQATaskV1(AliConversionCuts *ConversionCuts, Bool_t IsHeavyIon){ | |
109 | ||
110 | //get the current analysis manager | |
111 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
112 | if (!mgr) { | |
113 | Error("AddTask_V0ReaderV1QA", "No analysis manager found."); | |
114 | return 0; | |
115 | } | |
116 | AliAnalysisTaskConversionQA *fQA = new AliAnalysisTaskConversionQA(Form("%s_QA",(ConversionCuts->GetCutNumber()).Data())); | |
117 | fQA->SetConversionCuts(ConversionCuts,IsHeavyIon); | |
118 | mgr->AddTask(fQA); | |
119 | ||
120 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
121 | mgr->ConnectInput (fQA,0,cinput); | |
122 | } |