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