TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / macros / AddTask_jacek_dNdPtTrackDumpTaskPbPb_TPCITS.C
1 void AddTask_jacek_dNdPtTrackDumpTaskPbPb_TPCITS()
2 {
3   gSystem->Load("libANALYSIS");
4   gSystem->Load("libANALYSISalice");
5   gSystem->Load("libTender");
6   gSystem->Load("libCORRFW");
7   gSystem->Load("libPWGUDbase");
8   gSystem->Load("libTPCcalib");
9   gSystem->Load("libPWGPP");
10   gSystem->Load("libPWGLFspectra");
11
12
13   gRandom->SetSeed(0);
14
15   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16
17   if (!mgr) {
18     Error("AddTask_dNdPtTrackDumpTaskPbPb_TPCITS", "No analysis manager found.");
19     return 0;
20   }
21
22   // Switch off all AliInfo (too much output!!!)
23   AliLog::SetGlobalLogLevel(AliLog::kError);
24   mgr->SetDebugLevel(0);
25
26   
27
28   //
29   // Create physics trigger selection class
30   //
31   AliPhysicsSelection *physTrigSel =  new AliPhysicsSelection();
32
33   //
34   // Create event cuts
35   //
36   Float_t zvWindow = 30. ;
37
38   AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
39   evtCuts->SetZvRange(-zvWindow,zvWindow);
40   evtCuts->SetMeanXYZv(0.0,0.0,0.0);
41   evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
42   evtCuts->SetTriggerRequired(kFALSE);
43   //evtCuts->SetTriggerRequired(kTRUE);
44
45   //
46   // Create geom. acceptance cuts
47   //
48   Float_t etaWindow = 1.0 ;
49   Float_t ptMin = 0.15 ;
50
51   AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
52   accCuts->SetEtaRange(-etaWindow,etaWindow);
53   accCuts->SetPtRange(ptMin,1.e10);
54   accCuts->SetMaxDCAr(3.0);
55   accCuts->SetMaxDCAz(30.0);
56
57   //
58   // Create standard esd track cuts
59   //
60   Int_t cutMode = 154;
61   //Int_t cutMode = 156;
62   //Int_t cutMode = 200;
63
64   gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C");
65   AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
66   if (!esdTrackCuts) {
67     printf("ERROR: esdTrackCuts could not be created\n");
68     return;
69   } else {
70     esdTrackCuts->SetHistogramsOn(kTRUE);
71     esdTrackCuts->SetRequireITSRefit(kFALSE); // no ITS refit
72   }
73
74   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
75
76   //
77   // Create task
78   //
79   AlidNdPtTrackDumpTask *task = new AlidNdPtTrackDumpTask("AlidNdPtTrackDumpTask");
80   task->SetUseMCInfo(hasMC);
81   //task->SetLowPtTrackDownscaligF(1.e4);
82   //task->SetLowPtV0DownscaligF(1.e2);
83   task->SetLowPtTrackDownscaligF(1.e7);
84   task->SetLowPtV0DownscaligF(1.e4);
85   task->SetProcessAll(kTRUE);
86   task->SetProcessCosmics(kTRUE);
87   //task->SetProcessAll(kFALSE);
88
89   // trigger
90   //task->SelectCollisionCandidates(AliVEvent::kMB); 
91
92   //
93   // set analysis options from the Helper here !!!
94   //
95   // AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kCutAnalysisPbPb;
96   // AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
97   
98   AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPCITS;
99
100   task->SetUseMCInfo(hasMC);
101   task->SetEventCuts(evtCuts);
102   task->SetAcceptanceCuts(accCuts);
103   task->SetTrackCuts(esdTrackCuts);
104   task->SetAnalysisMode(analysisMode); 
105   task->SetCentralityEstimator("V0M");
106     
107   // Add task
108   mgr->AddTask(task);
109
110   // Create containers for input
111   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
112   mgr->ConnectInput(task, 0, cinput);
113
114   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("filtered1", TTree::Class(), AliAnalysisManager::kOutputContainer, "FilterEvents_Trees.root");
115   mgr->ConnectOutput(task, 1, coutput1);
116   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("filtered2", TTree::Class(), AliAnalysisManager::kOutputContainer, "FilterEvents_Trees.root");
117   mgr->ConnectOutput(task, 2, coutput2);
118   AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("filtered3", TTree::Class(), AliAnalysisManager::kOutputContainer, "FilterEvents_Trees.root");
119   mgr->ConnectOutput(task, 3, coutput3);
120   AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("filtered4", TTree::Class(), AliAnalysisManager::kOutputContainer, "FilterEvents_Trees.root");
121   mgr->ConnectOutput(task, 4, coutput4);
122   AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("filtered5", TTree::Class(), AliAnalysisManager::kOutputContainer, "FilterEvents_Trees.root");
123   mgr->ConnectOutput(task, 5, coutput5);
124   AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("filtered6", TTree::Class(), AliAnalysisManager::kOutputContainer, "FilterEvents_Trees.root");
125   mgr->ConnectOutput(task, 6, coutput6);
126 }
127