]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AddTaskV2AllChAOD.C
q vector calibration for generated data
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AddTaskV2AllChAOD.C
1 AliAnalysisTaskV2AllChAOD* AddTaskV2AllChAOD(
2                                                        Bool_t mc=kFALSE,
3                                                        Double_t CentCutMin=0,
4                                                        Double_t CentCutMax=100,
5                                                        Double_t QvecCutMin=0,
6                                                        Double_t QvecCutMax=100,
7                                                        Double_t EtaMin=-0.8,
8                                                        Double_t EtaMax=0.8,
9                                                        Double_t pt=50.,
10                                                        Double_t ptTofMatch=.6,
11                                                        UInt_t trkbit=1,
12                                                        Double_t DCA=100000,
13                                                        UInt_t minNclsTPC=70,
14                                                        TString opt=""){
15   
16   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17   if (!mgr) 
18     {
19       ::Error("AddAliAnalysisTaskV2AllChAOD", "No analysis manager to connect to.");
20       return NULL;
21     }   
22   
23   // Check the analysis type using the event handlers connected to the analysis manager.
24   //==============================================================================
25   if (!mgr->GetInputEventHandler()) 
26     {
27       ::Error("AliAnalysisTaskV2AllChAOD", "This task requires an input event handler");
28       return NULL;
29     }   
30   
31   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
32   if(type.Contains("ESD"))
33     {
34       ::Error("AliAnalysisTaskV2AllChAOD", "This task requires to run on AOD");
35       return NULL;
36     }
37   
38   AliSpectraAODTrackCuts  * trcuts = new AliSpectraAODTrackCuts(Form("TrackCuts%s",opt.Data()));  
39   trcuts->SetDCA(DCA);
40   trcuts->SetTrackBits(trkbit);
41   trcuts->SetPt(pt);
42   trcuts->SetPtTOFMatching(ptTofMatch);   
43   trcuts->SetEta(EtaMin,EtaMax);
44   trcuts->SetMinTPCcls(minNclsTPC);
45   trcuts->PrintCuts();
46   
47   AliSpectraAODEventCuts * evcuts = new AliSpectraAODEventCuts(Form("EventCuts%s",opt.Data()));
48   evcuts->SetQVectorCut(QvecCutMin,QvecCutMax);
49   evcuts->SetCentralityCutMax(CentCutMax);  
50   evcuts->SetCentralityCutMin(CentCutMin);
51   if(mc==1)evcuts->SetIsMC(kTRUE);
52   evcuts->PrintCuts();
53   
54   AliAnalysisTaskV2AllChAOD *task = new AliAnalysisTaskV2AllChAOD(Form("TaskAODSpectraCent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_TrBit%d%s",   
55                                                                                  CentCutMin,
56                                                                                  CentCutMax,
57                                                                                  QvecCutMin,
58                                                                                  QvecCutMax,
59                                                                                  EtaMin,
60                                                                                  EtaMax,
61                                                                                  trkbit,
62                                                                                  opt.Data()));
63   task->SetEventCuts(evcuts);
64   task->SetTrackCuts(trcuts);
65   if(mc==1)task->SetIsMC(kTRUE);
66   
67   TString outputFileName = AliAnalysisManager::GetCommonFileName();
68   
69   TString typeofdata=mc?"MC":"Data";
70   
71   outputFileName += Form(":V2_ESE_%s%s",typeofdata.Data(),opt.Data());
72   
73   cout<<"outputFileName:  "<<outputFileName<<endl;
74   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();      
75   AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chist%s",opt.Data()),                  TList::Class(),     AliAnalysisManager::kOutputContainer,outputFileName);
76   AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcut%s",opt.Data()), AliSpectraAODEventCuts::Class(),     AliAnalysisManager::kOutputContainer,outputFileName);
77   AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcut%s",opt.Data()), AliSpectraAODTrackCuts::Class(),     AliAnalysisManager::kOutputContainer, outputFileName);
78   AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("chist_lq%s",opt.Data()),                TList::Class(),    AliAnalysisManager::kOutputContainer,outputFileName);
79   AliAnalysisDataContainer *coutputpt5 = mgr->CreateContainer(Form("chist_sq%s",opt.Data()),                TList::Class(),    AliAnalysisManager::kOutputContainer,outputFileName);
80   mgr->AddTask(task);
81   
82   mgr->ConnectInput(task, 0, cinput);
83   mgr->ConnectOutput(task, 1, coutputpt1);
84   mgr->ConnectOutput(task, 2, coutputpt2);
85   mgr->ConnectOutput(task, 3, coutputpt3);
86   mgr->ConnectOutput(task, 4, coutputpt4);
87   mgr->ConnectOutput(task, 5, coutputpt5);
88   
89   return task;
90 }