]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/macros/AddTask_GammaConvCalo_pp.C
- changes to new Conv Calo Task for efficient running on the grid
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_GammaConvCalo_pp.C
CommitLineData
8bdca7f1 1void AddTask_GammaConvCalo_pp( Int_t trainConfig = 1, //change different set of cuts
2 Bool_t isMC = kFALSE, //run MC
3 Int_t enableQAMesonTask = 1, //enable QA in AliAnalysisTaskGammaConvV1
4 Int_t enableQAPhotonTask = 1, // enable additional QA task
5 TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
6 TString cutnumberAODBranch = "0000000060084001001500000"
7 ) {
8
9 // ================= Load Librariers =================================
10 gSystem->Load("libCore.so");
11 gSystem->Load("libTree.so");
12 gSystem->Load("libGeom.so");
13 gSystem->Load("libVMC.so");
14 gSystem->Load("libPhysics.so");
15 gSystem->Load("libMinuit");
16 gSystem->Load("libSTEERBase");
17 gSystem->Load("libESD");
18 gSystem->Load("libAOD");
19 gSystem->Load("libANALYSIS");
20 gSystem->Load("libANALYSISalice");
21 gSystem->Load("libPWGGAGammaConv.so");
22 gSystem->Load("libCDB.so");
23 gSystem->Load("libSTEER.so");
24 gSystem->Load("libSTEERBase.so");
25 gSystem->Load("libTENDER.so");
26 gSystem->Load("libTENDERSupplies.so");
27
28 // ================== GetAnalysisManager ===============================
29 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
30 if (!mgr) {
31 Error(Form("AddTask_GammaConvV1_%i",trainConfig), "No analysis manager found.");
32 return ;
33 }
34
35 // ================== GetInputEventHandler =============================
36 AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
37
38 //========= Add PID Reponse to ANALYSIS manager ====
39 if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
40 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
41 AddTaskPIDResponse(isMC,1,0,4,0,"",1,1,4);
42 }
43
44 //========= Set Cutnumber for V0Reader ================================
45 TString cutnumber = "0000000002084000002200000000";
46 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
47
48 //========= Add V0 Reader to ANALYSIS manager if not yet existent =====
49 if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
50 AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
51
52 fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
53 fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
54 fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
55
56 if (!mgr) {
57 Error("AddTask_V0ReaderV1", "No analysis manager found.");
58 return;
59 }
60
61 // Set AnalysisCut Number
62 AliConversionCuts *fCuts=NULL;
63 if(cutnumber!=""){
64 fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data());
65 fCuts->SetPreSelectionCutFlag(kTRUE);
66 if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){
67 fV0ReaderV1->SetConversionCuts(fCuts);
68 fCuts->SetFillCutHistograms("",kTRUE);
69 }
70 }
71 if(inputHandler->IsA()==AliAODInputHandler::Class()){
72 // AOD mode
73 fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
74 }
75 fV0ReaderV1->Init();
76
77 AliLog::SetGlobalLogLevel(AliLog::kFatal);
78
79 //connect input V0Reader
80 mgr->AddTask(fV0ReaderV1);
81 mgr->ConnectInput(fV0ReaderV1,0,cinput);
82
83 }
84
85 //================================================
86 //========= Add task to the ANALYSIS manager =====
87 //================================================
88 AliAnalysisTaskGammaConvCalo *task=NULL;
89 task= new AliAnalysisTaskGammaConvCalo(Form("GammaConvCalo_%i",trainConfig));
90 task->SetIsHeavyIon(0);
91 task->SetIsMC(isMC);
92 // Cut Numbers to use in Analysis
93 Int_t numberOfCuts = 3;
94
95 TString *cutarray = new TString[numberOfCuts];
96 TString *clustercutarray = new TString[numberOfCuts];
97 TString *mesonCutArray = new TString[numberOfCuts];
98
99 // meson cuts
100 // meson type (Dalitz or not), BG scheme, pool depth, rotation degrees, rapidity cut, radius cut, alpha, chi2, shared electrons, reject to close v0, MC smearing, dca, dca, dca
101
102 if (trainConfig == 1){
9df9736d 103 cutarray[ 0] = "0000001002092970028250400000"; clustercutarray[0] = "10000040022030000"; mesonCutArray[0] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, kMB // EMCAL clusters
104 cutarray[ 1] = "0005101002092970028250400000"; clustercutarray[1] = "10000040022030000"; mesonCutArray[1] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, kEMC1 // EMCAL clusters
105 cutarray[ 2] = "0002001002092970028250400000"; clustercutarray[2] = "10000040022030000"; mesonCutArray[2] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, SDD V0OR // EMCAL clusters
106 } else if (trainConfig == 2){
135c1186 107 cutarray[ 0] = "0000001002092970028250400000"; clustercutarray[0] = "20000030022000000"; mesonCutArray[0] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, kMB // PHOS clusters
108 cutarray[ 1] = "0006101002092970028250400000"; clustercutarray[1] = "20000030022000000"; mesonCutArray[1] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, kPHI1 // PHOS clusters
109 cutarray[ 2] = "0002001002092970028250400000"; clustercutarray[2] = "20000030022000000"; mesonCutArray[2] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, SDD V0OR //PHOS clusters
9df9736d 110
111
8bdca7f1 112 } else {
113 Error(Form("GammaConvCalo_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration");
114 return;
115 }
116
117 TList *ConvCutList = new TList();
135c1186 118 TList *ClusterCutList = new TList();
8bdca7f1 119 TList *MesonCutList = new TList();
120
121 TList *HeaderList = new TList();
122 TObjString *Header1 = new TObjString("BOX");
123 HeaderList->Add(Header1);
124
125 ConvCutList->SetOwner(kTRUE);
126 AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts];
127 ClusterCutList->SetOwner(kTRUE);
128 AliCaloPhotonCuts **analysisClusterCuts = new AliCaloPhotonCuts*[numberOfCuts];
129 MesonCutList->SetOwner(kTRUE);
130 AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts];
131
132 for(Int_t i = 0; i<numberOfCuts; i++){
133 analysisCuts[i] = new AliConversionCuts();
134 analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data());
135 ConvCutList->Add(analysisCuts[i]);
136 analysisCuts[i]->SetFillCutHistograms("",kFALSE);
137
138 analysisClusterCuts[i] = new AliCaloPhotonCuts();
139 analysisClusterCuts[i]->InitializeCutsFromCutString(clustercutarray[i].Data());
140 ClusterCutList->Add(analysisClusterCuts[i]);
141 analysisClusterCuts[i]->SetFillCutHistograms("");
142
143 analysisMesonCuts[i] = new AliConversionMesonCuts();
144 analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data());
145 MesonCutList->Add(analysisMesonCuts[i]);
146 analysisMesonCuts[i]->SetFillCutHistograms("");
147 analysisCuts[i]->SetAcceptedHeader(HeaderList);
148 }
149
150 task->SetConversionCutList(numberOfCuts,ConvCutList);
151 task->SetCaloCutList(numberOfCuts,ClusterCutList);
152 task->SetMesonCutList(numberOfCuts,MesonCutList);
153 task->SetMoveParticleAccordingToVertex(kTRUE);
154 task->SetDoMesonAnalysis(kTRUE);
155 task->SetDoMesonQA(enableQAMesonTask); //Attention new switch for Pi0 QA
156 task->SetDoPhotonQA(enableQAPhotonTask); //Attention new switch small for Photon QA
157
158 //connect containers
159 AliAnalysisDataContainer *coutput =
160 mgr->CreateContainer(Form("GammaConvCalo_%i",trainConfig), TList::Class(),
161 AliAnalysisManager::kOutputContainer,Form("GammaConvCalo_%i.root",trainConfig));
162
163 mgr->AddTask(task);
164 mgr->ConnectInput(task,0,cinput);
165 mgr->ConnectOutput(task,1,coutput);
166
167 return;
168
169}