]>
Commit | Line | Data |
---|---|---|
a280ac15 | 1 | |
2 | void AddTask_GammaConvV1(TString trainConfig = "pp", Bool_t isMC = kFALSE){ | |
3 | ||
4 | gSystem->Load("libCore.so"); | |
5 | gSystem->Load("libTree.so"); | |
6 | gSystem->Load("libGeom.so"); | |
7 | gSystem->Load("libVMC.so"); | |
8 | gSystem->Load("libPhysics.so"); | |
9 | gSystem->Load("libMinuit"); | |
10 | gSystem->Load("libSTEERBase"); | |
11 | gSystem->Load("libESD"); | |
12 | gSystem->Load("libAOD"); | |
13 | gSystem->Load("libANALYSIS"); | |
14 | gSystem->Load("libANALYSISalice"); | |
15 | gSystem->Load("libPWGGAGammaConv.so"); | |
16 | gSystem->Load("libCDB.so"); | |
17 | gSystem->Load("libSTEER.so"); | |
18 | gSystem->Load("libSTEERBase.so"); | |
19 | gSystem->Load("libTENDER.so"); | |
20 | gSystem->Load("libTENDERSupplies.so"); | |
21 | ||
22 | ||
3377d047 | 23 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
24 | if (!mgr) { | |
25 | Error("AddTask_GammaConvV1", "No analysis manager found."); | |
26 | return 0; | |
27 | } | |
a280ac15 | 28 | |
0a2b2b4b | 29 | Int_t IsHeavyIon=0; |
30 | if (trainConfig.Contains("PbPb")) IsHeavyIon=1; | |
31 | else if (trainConfig.Contains("pPb")) IsHeavyIon=2; | |
a280ac15 | 32 | |
0a2b2b4b | 33 | |
3377d047 | 34 | |
35 | TString cutnumber = ""; | |
0a2b2b4b | 36 | if(IsHeavyIon == 1){ |
a280ac15 | 37 | cutnumber = "1000000002084001001500000"; |
0a2b2b4b | 38 | } else if (IsHeavyIon==2){ |
39 | cutnumber = "8000000002084001001500000"; | |
a280ac15 | 40 | } else{ |
41 | cutnumber = "0000000002084000002200000"; | |
42 | } | |
43 | ||
3377d047 | 44 | //========= Add PID Reponse to ANALYSIS manager ==== |
45 | if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ | |
46 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
47 | AddTaskPIDResponse(); | |
0a2b2b4b | 48 | } |
a280ac15 | 49 | |
50 | //========= Add V0 Reader to ANALYSIS manager ===== | |
51 | AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); | |
52 | ||
53 | fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); | |
54 | fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output | |
55 | fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); | |
56 | ||
57 | if (!mgr) { | |
58 | Error("AddTask_V0ReaderV1", "No analysis manager found."); | |
59 | return; | |
60 | } | |
61 | AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); | |
62 | ||
63 | if(inputHandler->IsA()==AliESDInputHandler::Class()){ | |
64 | // ESD mode | |
65 | } | |
66 | ||
67 | if(inputHandler->IsA()==AliAODInputHandler::Class()){ | |
68 | // AOD mode | |
69 | // task->SetUseSatelliteAODs(kTRUE); | |
70 | } | |
71 | ||
72 | // Set AnalysisCut Number | |
73 | AliConversionCuts *fCuts=NULL; | |
74 | if(cutnumber!=""){ | |
75 | fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); | |
76 | if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ | |
77 | fV0ReaderV1->SetConversionCuts(fCuts); | |
78 | fCuts->SetFillCutHistograms("",kTRUE); | |
79 | } | |
80 | } | |
81 | fV0ReaderV1->Init(); | |
82 | ||
83 | ||
84 | ||
3377d047 | 85 | AliLog::SetGlobalLogLevel(AliLog::kInfo); |
86 | ||
a280ac15 | 87 | //================================================ |
3377d047 | 88 | // data containers |
89 | //================================================ | |
90 | // find input container | |
91 | //below the trunk version | |
a280ac15 | 92 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); |
3377d047 | 93 | //connect input V0Reader |
a280ac15 | 94 | mgr->AddTask(fV0ReaderV1); |
95 | mgr->ConnectInput(fV0ReaderV1,0,cinput); | |
96 | ||
3377d047 | 97 | //================================================ |
98 | //========= Add task to the ANALYSIS manager ===== | |
99 | //================================================ | |
100 | // data containers | |
101 | //================================================ | |
102 | // find input container | |
103 | AliAnalysisTaskGammaConvV1 *task=NULL; | |
104 | task= new AliAnalysisTaskGammaConvV1("GammaConvV1"); | |
a280ac15 | 105 | task->SetIsHeavyIon(IsHeavyIon); |
3377d047 | 106 | // Cut Numbers to use in Analysis |
3377d047 | 107 | Int_t numberOfCuts = 1; |
a280ac15 | 108 | if(trainConfig.Contains("PbPb")) numberOfCuts = 3; |
109 | else numberOfCuts = 1; | |
3377d047 | 110 | |
a280ac15 | 111 | TString *cutarray = new TString[numberOfCuts]; |
112 | TString *mesonCutArray = new TString[numberOfCuts]; | |
3377d047 | 113 | |
a280ac15 | 114 | if(trainConfig.Contains("PbPb")){ |
115 | cutarray[ 0] = "1000003042092970723220000"; mesonCutArray[ 0] = "01022045000"; // all centralities | |
116 | cutarray[ 1] = "3010003042092970723220000"; mesonCutArray[ 1] = "01022045000"; // most central | |
117 | cutarray[ 2] = "1680003042092970723220000"; mesonCutArray[ 2] = "01022065000"; // peripheral | |
3377d047 | 118 | |
a280ac15 | 119 | } |
120 | else if(trainConfig.Contains("pPb")){ //pA needs thighter rapidity cut y < 0.5 | |
0a2b2b4b | 121 | cutarray[ 0] = "8000000042092172023290000"; mesonCutArray[0] = "01024045000"; //standard cut Pi0 PbPb 00-100 |
3377d047 | 122 | } else { |
a280ac15 | 123 | cutarray[ 0] = "0000011002093663003800000"; mesonCutArray[0] = "01631031009"; |
124 | } | |
125 | ||
3377d047 | 126 | TList *ConvCutList = new TList(); |
a280ac15 | 127 | TList *MesonCutList = new TList(); |
ca91a3e1 | 128 | |
129 | TList *HeaderList = new TList(); | |
a280ac15 | 130 | // TObjString *Header1 = new TObjString("PARAM"); |
131 | // HeaderList->Add(Header1); | |
132 | TObjString *Header2 = new TObjString("BOX"); | |
133 | HeaderList->Add(Header2); | |
134 | // TObjString *Header3 = new TObjString("Pythia"); | |
135 | // HeaderList->Add(Header3); | |
136 | // TObjString *Header4 = new TObjString("Hijing"); | |
137 | // HeaderList->Add(Header4); | |
138 | ||
139 | ||
3377d047 | 140 | ConvCutList->SetOwner(kTRUE); |
141 | AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; | |
a280ac15 | 142 | MesonCutList->SetOwner(kTRUE); |
ca91a3e1 | 143 | AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; |
144 | ||
a280ac15 | 145 | |
3377d047 | 146 | for(Int_t i = 0; i<numberOfCuts; i++){ |
147 | analysisCuts[i] = new AliConversionCuts(); | |
148 | analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data()); | |
a280ac15 | 149 | if (trainConfig.Contains("pPb")) analysisCuts[i]->SelectCollisionCandidates(AliVEvent::kINT7|AliVEvent::kTRD); |
3377d047 | 150 | ConvCutList->Add(analysisCuts[i]); |
a280ac15 | 151 | |
3377d047 | 152 | analysisCuts[i]->SetFillCutHistograms("",kFALSE); |
ca91a3e1 | 153 | analysisMesonCuts[i] = new AliConversionMesonCuts(); |
154 | analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data()); | |
155 | MesonCutList->Add(analysisMesonCuts[i]); | |
a280ac15 | 156 | analysisMesonCuts[i]->SetFillCutHistograms(""); |
157 | analysisCuts[i]->SetAcceptedHeader(HeaderList); | |
3377d047 | 158 | } |
a280ac15 | 159 | |
160 | ||
3377d047 | 161 | task->SetConversionCutList(numberOfCuts,ConvCutList); |
a280ac15 | 162 | task->SetMesonCutList(numberOfCuts,MesonCutList); |
3377d047 | 163 | task->SetMoveParticleAccordingToVertex(kTRUE); |
164 | task->SetDoMesonAnalysis(kTRUE); | |
a280ac15 | 165 | |
3377d047 | 166 | //connect containers |
a280ac15 | 167 | AliAnalysisDataContainer *coutput = |
3377d047 | 168 | mgr->CreateContainer("GammaConvV1", TList::Class(), |
169 | AliAnalysisManager::kOutputContainer,"GammaConvV1.root"); | |
3377d047 | 170 | |
a280ac15 | 171 | mgr->AddTask(task); |
172 | mgr->ConnectInput(task,0,cinput); | |
173 | mgr->ConnectOutput(task,1,coutput); | |
3377d047 | 174 | |
a280ac15 | 175 | return task; |
3377d047 | 176 | |
3377d047 | 177 | } |