]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/TestAOD/AddTaskSpectraAOD.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AddTaskSpectraAOD.C
CommitLineData
c683985a 1AliAnalysisTaskSpectraAOD* AddTaskSpectraAOD(Bool_t mc=kFALSE,
2 Double_t CentCutMin=0,
3 Double_t CentCutMax=100,
4 Double_t QvecCutMin=0,
5 Double_t QvecCutMax=100,
6 Double_t EtaMin=-0.8,
7 Double_t EtaMax=0.8,
8 Double_t Nsigmapid=3.,
9 Double_t pt=5.,
10 Double_t p=5.,
11 Double_t y=.5,
12 Double_t ptTofMatch=.6,
13 UInt_t trkbit=1,
14 UInt_t trkbitQVector=1,
15 Double_t DCA=100000,
16 UInt_t minNclsTPC=70,
17 Int_t nrebin=0,
18 TString opt=""){
19
20 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 if (!mgr)
22 {
23 ::Error("AddAliAnalysisTaskSpectraAOD", "No analysis manager to connect to.");
24 return NULL;
25 }
26
27 // Check the analysis type using the event handlers connected to the analysis manager.
28 //==============================================================================
29 if (!mgr->GetInputEventHandler())
30 {
31 ::Error("AddTaskITSsaTracks", "This task requires an input event handler");
32 return NULL;
33 }
34
35 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
36 if(type.Contains("ESD"))
37 {
38 ::Error("AddTaskITSsaTracks", "This task requires to run on AOD");
39 return NULL;
40 }
41
42 using namespace AliSpectraNameSpace;
43
44 AliSpectraAODPID *pid = new AliSpectraAODPID();
45 pid->SetNSigmaCut(Nsigmapid);
46
47 AliSpectraAODTrackCuts * trcuts = new AliSpectraAODTrackCuts("Track Cuts");
48 trcuts->SetDCA(DCA);
49 trcuts->SetTrackBits(trkbit);
50 trcuts->SetPt(pt);
51 trcuts->SetP(p);
52 trcuts->SetY(y);
53 trcuts->SetPtTOFMatching(ptTofMatch);
54 trcuts->SetEta(EtaMin,EtaMax);
55 trcuts->SetMinTPCcls(minNclsTPC);
56 trcuts->PrintCuts();
57
58 AliSpectraAODEventCuts * evcuts = new AliSpectraAODEventCuts("Event Cuts");
59 evcuts->SetQVectorCut(QvecCutMin,QvecCutMax);
60 evcuts->SetCentralityCutMax(CentCutMax);
61 evcuts->SetCentralityCutMin(CentCutMin);
62 evcuts->SetTrackBits(trkbitQVector);
63 if(mc==1)evcuts->SetIsMC(kTRUE);
64 evcuts->PrintCuts();
65
66 AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD(Form("TaskAODSpectraCent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_%.1fSigmaPID_TrBit%d%s",
67 CentCutMin,
68 CentCutMax,
69 QvecCutMin,
70 QvecCutMax,
71 EtaMin,
72 EtaMax,
73 Nsigmapid,
74 trkbit,
75 opt.Data()));
76 task->SetPID(pid);
77 task->SetEventCuts(evcuts);
78 task->SetTrackCuts(trcuts);
79 task->SetNRebin(nrebin);
80 if(mc==1)task->SetIsMC(kTRUE);
81
82 TString outputFileName = AliAnalysisManager::GetCommonFileName();
83
84 TString typeofdata=mc?"MC":"Data";
85
86 outputFileName += Form(":OutputAODSpectraTask_%s_Cent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_%.1fSigmaPID_TrBit%d%s",typeofdata.Data(),evcuts->GetCentralityMin(),evcuts->GetCentralityMax(),evcuts->GetQVectorCutMin(), evcuts->GetQVectorCutMax(),trcuts->GetEtaMin(),trcuts->GetEtaMax(),pid->GetNSigmaCut(),trcuts->GetTrackType(),opt.Data());
87
88 cout<<"outputFileName: "<<outputFileName<<endl;
89 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
90 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer("chistpt", AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,outputFileName);
91 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer("cvcutpt", AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,outputFileName);
92 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer("ctcutpt", AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer, outputFileName);
93 AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer("cpidpt", AliSpectraAODPID::Class(), AliAnalysisManager::kOutputContainer,outputFileName);
94
95 mgr->AddTask(task);
96
97 mgr->ConnectInput(task, 0, cinput);
98 mgr->ConnectOutput(task, 1, coutputpt1);
99 mgr->ConnectOutput(task, 2, coutputpt2);
100 mgr->ConnectOutput(task, 3, coutputpt3);
101 mgr->ConnectOutput(task, 4, coutputpt4);
102
103 return task;
104}