]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/macros/AddTask_GammaConvCalo_pp.C
- changes to Calo selection classes & addtasks in Conversion-PWGGA branch
[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){
107 cutarray[ 0] = "0000001002092970028250400000"; clustercutarray[0] = "20000040022030000"; mesonCutArray[0] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, kMB // PHOS clusters
108 cutarray[ 1] = "0006101002092970028250400000"; clustercutarray[1] = "20000040022030000"; mesonCutArray[1] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, kPHI1 // PHOS clusters
109 cutarray[ 2] = "0002001002092970028250400000"; clustercutarray[2] = "20000040022030000"; mesonCutArray[2] = "01525065000000"; //standard cut LHC11h pp 2.76TeV, SDD V0OR //PHOS clusters
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();
118 TList *MesonCutList = new TList();
119
120 TList *HeaderList = new TList();
121 TObjString *Header1 = new TObjString("BOX");
122 HeaderList->Add(Header1);
123
124 ConvCutList->SetOwner(kTRUE);
125 AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts];
126 ClusterCutList->SetOwner(kTRUE);
127 AliCaloPhotonCuts **analysisClusterCuts = new AliCaloPhotonCuts*[numberOfCuts];
128 MesonCutList->SetOwner(kTRUE);
129 AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts];
130
131 for(Int_t i = 0; i<numberOfCuts; i++){
132 analysisCuts[i] = new AliConversionCuts();
133 analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data());
134 ConvCutList->Add(analysisCuts[i]);
135 analysisCuts[i]->SetFillCutHistograms("",kFALSE);
136
137 analysisClusterCuts[i] = new AliCaloPhotonCuts();
138 analysisClusterCuts[i]->InitializeCutsFromCutString(clustercutarray[i].Data());
139 ClusterCutList->Add(analysisClusterCuts[i]);
140 analysisClusterCuts[i]->SetFillCutHistograms("");
141
142 analysisMesonCuts[i] = new AliConversionMesonCuts();
143 analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data());
144 MesonCutList->Add(analysisMesonCuts[i]);
145 analysisMesonCuts[i]->SetFillCutHistograms("");
146 analysisCuts[i]->SetAcceptedHeader(HeaderList);
147 }
148
149 task->SetConversionCutList(numberOfCuts,ConvCutList);
150 task->SetCaloCutList(numberOfCuts,ClusterCutList);
151 task->SetMesonCutList(numberOfCuts,MesonCutList);
152 task->SetMoveParticleAccordingToVertex(kTRUE);
153 task->SetDoMesonAnalysis(kTRUE);
154 task->SetDoMesonQA(enableQAMesonTask); //Attention new switch for Pi0 QA
155 task->SetDoPhotonQA(enableQAPhotonTask); //Attention new switch small for Photon QA
156
157 //connect containers
158 AliAnalysisDataContainer *coutput =
159 mgr->CreateContainer(Form("GammaConvCalo_%i",trainConfig), TList::Class(),
160 AliAnalysisManager::kOutputContainer,Form("GammaConvCalo_%i.root",trainConfig));
161
162 mgr->AddTask(task);
163 mgr->ConnectInput(task,0,cinput);
164 mgr->ConnectOutput(task,1,coutput);
165
166 return;
167
168}