]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AddTaskJetSpectraAOD.C
Updates for jet test (M Tangaro)
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AddTaskJetSpectraAOD.C
1 AliAnalysisTaskJetSpectraAOD* AddTaskJetSpectraAOD(
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.9,
8                                                        Double_t EtaMax=0.9,
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                                                        //jet settings
16                                                        Float_t jetParameterR = 0.4,
17                                                        UInt_t filterMask = 272,
18                                                        Float_t ptJetMin = 0.15){
19   
20   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21   if (!mgr) 
22     {
23       ::Error("AddAliAnalysisTaskJetSpectraAOD", "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("AliAnalysisTaskJetSpectraAOD", "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("AliAnalysisTaskJetSpectraAOD", "This task requires to run on AOD");
39       return NULL;
40     }
41   
42   AliSpectraAODTrackCuts  * trcuts = new AliSpectraAODTrackCuts(Form("TrackCuts%s",opt.Data()));  
43   trcuts->SetDCA(DCA);
44   trcuts->SetTrackBits(trkbit);
45   trcuts->SetPt(pt);
46   trcuts->SetPtTOFMatching(ptTofMatch);   
47   trcuts->SetEta(EtaMin,EtaMax);
48   trcuts->SetMinTPCcls(minNclsTPC);
49   trcuts->PrintCuts();
50   
51   AliSpectraAODEventCuts * evcuts = new AliSpectraAODEventCuts(Form("EventCuts%s",opt.Data()));
52   evcuts->SetQVectorCut(QvecCutMin,QvecCutMax);
53   evcuts->SetCentralityCutMax(CentCutMax);  
54   evcuts->SetCentralityCutMin(CentCutMin);
55   if(mc==1)evcuts->SetIsMC(kTRUE);
56   evcuts->PrintCuts();
57   
58   
59   AliAnalysisTaskJetSpectraAOD *task = new AliAnalysisTaskJetSpectraAOD(Form("TaskAODSpectraCent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_TrBit%d%s",     
60                                                                                  CentCutMin,
61                                                                                  CentCutMax,
62                                                                                  QvecCutMin,
63                                                                                  QvecCutMax,
64                                                                                  EtaMin,
65                                                                                  EtaMax,
66                                                                                  trkbit,
67                                                                                  opt.Data()));
68   task->SetEventCuts(evcuts);
69   task->SetTrackCuts(trcuts);
70   if(mc==1)task->SetIsMC(kTRUE);
71   
72   //jet settings
73   task->SetFilterMask(filterMask); 
74   task->SetJetPtMin(ptJetMin);
75
76   Float_t EtaJetMin = EtaMin + jetParameterR;
77   Float_t EtaJetMax = EtaMax - jetParameterR;
78   task->SetEtaJet(EtaJetMin,EtaJetMax);
79   
80   TString outputFileName = AliAnalysisManager::GetCommonFileName();
81   
82   TString typeofdata=mc?"MC":"Data";
83   
84   outputFileName += Form(":SpectraESE_%s%s",typeofdata.Data(),opt.Data());
85   
86   cout<<"outputFileName:  "<<outputFileName<<endl;
87   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();      
88   AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chist%s",opt.Data()),                      TList::Class(),     AliAnalysisManager::kOutputContainer,outputFileName);
89   AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcut%s",opt.Data()), AliSpectraAODEventCuts::Class(),     AliAnalysisManager::kOutputContainer,outputFileName);
90   AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcut%s",opt.Data()), AliSpectraAODTrackCuts::Class(),     AliAnalysisManager::kOutputContainer, outputFileName);
91   mgr->AddTask(task);
92   
93   mgr->ConnectInput(task, 0, cinput);
94   mgr->ConnectOutput(task, 1, coutputpt1);
95   mgr->ConnectOutput(task, 2, coutputpt2);
96   mgr->ConnectOutput(task, 3, coutputpt3);
97   
98   return task;
99 }