]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/macros/AddTask_PhotonQA.C
20bac3f1c687f9569fae0cc21dde0dd4c07d7638
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_PhotonQA.C
1 void AddTask_PhotonQA(  TString V0ReaderCutNumber = "000000006008400100150000000", 
2                         TString TaskCutnumber = "000000009009266374380000000",
3                         Bool_t IsMC = kFALSE,
4                         Int_t IsHeavyIon = 0,
5                         Bool_t kHistograms = kTRUE, 
6                         Bool_t kTree = kTRUE,
7                         TString V0ReaderCutNumberAODBranch = "0000000060084001001500000", 
8                         Bool_t doEtaShiftV0Reader = kFALSE 
9                      ){
10              
11    // Suitable Cutnumbers for the V0 Reader for
12    // PbPb: V0ReaderCutNumber =  "100000006008400100150000000"; (V0Mult MC)
13    //  or   V0ReaderCutNumber =  "500000006008400100150000000" (TPC mult MC)
14    // pPb: V0ReaderCutNumber =   "800000006008400100150000000";
15    // pp: V0ReaderCutNumber =    "000000006008400100150000000";
16
17    
18    // ================= Load Librariers =================================
19    gSystem->Load("libCore.so");  
20    gSystem->Load("libTree.so");
21    gSystem->Load("libGeom.so");
22    gSystem->Load("libVMC.so");
23    gSystem->Load("libPhysics.so");
24    gSystem->Load("libMinuit");
25    gSystem->Load("libSTEERBase");
26    gSystem->Load("libESD");
27    gSystem->Load("libAOD");
28    gSystem->Load("libANALYSIS");
29    gSystem->Load("libANALYSISalice");  
30    gSystem->Load("libPWGGAGammaConv.so");
31    gSystem->Load("libCDB.so");
32    gSystem->Load("libSTEER.so");
33    gSystem->Load("libSTEERBase.so");
34    gSystem->Load("libTENDER.so");
35    gSystem->Load("libTENDERSupplies.so");
36       
37    // ================== GetAnalysisManager ===============================
38    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
39    if (!mgr) {
40       Error(Form("AddTask_GammaConvV1_%i",trainConfig), "No analysis manager found.");
41       return ;
42    }
43
44    // ================== GetInputEventHandler =============================
45    AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
46    
47    //========= Add PID Reponse to ANALYSIS manager ====
48    if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
49       gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
50       AddTaskPIDResponse(isMC);
51    }
52
53    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
54    if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
55       AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
56       
57       fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
58       fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
59       fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
60
61       if (!mgr) {
62          Error("AddTask_V0ReaderV1", "No analysis manager found.");
63          return;
64       }
65
66       // Set AnalysisCut Number
67       AliConversionCuts *fCuts=NULL;
68       if(V0ReaderCutNumber!=""){
69          fCuts= new AliConversionCuts(V0ReaderCutNumber.Data(),V0ReaderCutNumber.Data());
70          fCuts->SetPreSelectionCutFlag(kTRUE);
71          if(fCuts->InitializeCutsFromCutString(V0ReaderCutNumber.Data())){
72             if (IsHeavyIon==2){
73                fCuts->SelectCollisionCandidates(AliVEvent::kINT7);
74                fCuts->DoEtaShift(doEtaShiftV0Reader);
75             }
76             fV0ReaderV1->SetConversionCuts(fCuts);
77             fCuts->SetFillCutHistograms("",kTRUE);
78          }
79       }
80       
81       
82       if(inputHandler->IsA()==AliAODInputHandler::Class()){
83          // AOD mode
84          fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",V0ReaderCutNumberAODBranch.Data()));
85       }
86       fV0ReaderV1->Init();
87
88       AliLog::SetGlobalLogLevel(AliLog::kInfo);
89
90       //connect input V0Reader
91       mgr->AddTask(fV0ReaderV1);
92       mgr->ConnectInput(fV0ReaderV1,0,cinput);
93
94    } else {
95       Error("AddTask_V0ReaderV1", "Cannot execute AddTask, V0ReaderV1 already exists.");
96    }   
97
98
99    
100
101    // suitable cuts for the photon Task, however in principle every cutnumber can be chosen which is used in the photon analysis:
102    // PbPb:  TaskCutnumber = "568000106009266304480300000"; TPC mult in MC - 60-80% central
103    //   or:  TaskCutnumber = "168000106009266304480300000"; V0 mult in MC  - 60-80% central
104    //  pPb:  TaskCutnumber = "800000009009266374380000000";
105    //   pp:  TaskCutnumber = "000000009009266374380000000";
106
107     AliConversionCuts *analysisCuts = new AliConversionCuts();
108          analysisCuts->InitializeCutsFromCutString(TaskCutnumber.Data());
109          analysisCuts->SetFillCutHistograms("",kFALSE);
110     
111     AliAnalysisTaskConversionQA *fQA = new AliAnalysisTaskConversionQA(Form("%s_QA",TaskCutnumber.Data()));
112     fQA->SetConversionCuts(analysisCuts,IsHeavyIon);
113     fQA->FillType(kTree,kHistograms);
114     fQA->SetIsMC(IsMC);
115     mgr->AddTask(fQA);
116
117     AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
118     AliAnalysisDataContainer *coutput =
119        mgr->CreateContainer(Form("GammaConv_V1QA_%s",TaskCutnumber.Data()), TList::Class(),
120                             AliAnalysisManager::kOutputContainer,Form("GammaConvV1_QA_%s.root",TaskCutnumber.Data()));
121
122
123     mgr->ConnectInput(fQA,0,cinput);
124     mgr->ConnectOutput(fQA,  1, coutput);
125
126    //connect containers
127    return;
128 }