]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/macros/AddTask_Material.C
fixed bugs while streaming histos for weighting, added new trainconfig for pPb
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_Material.C
CommitLineData
ca91a3e1 1AliAnalysisTask *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
73void 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
108void 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}