]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/AddTaskdNdPt.C
Changed task to update Trigger settings
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / macros / AddTaskdNdPt.C
1 AlidNdPtTask *AddTaskdNdPt() 
2 {
3
4         AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5
6         if (!mgr) {
7                 ::Error("AddTaskdNdPt", "No analysis manager found.");
8                 return 0;
9         }
10
11
12         Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
13         //  Bool_t hasMC= kFALSE;
14
15
16         // Switch off all AliInfo (too much output!!!)
17         //AliLog::SetGlobalLogLevel(AliLog::kError);
18         //AliLog::SetGlobalDebugLevel(10);
19         mgr->SetDebugLevel(0);
20
21         //
22         // Create physics trigger selection class
23         //
24
25
26         // AliPhysicsSelection *physTrigSel =  new AliPhysicsSelection();
27
28         //
29         // Create event cuts
30         //
31         Float_t zvWindow = 30. ;
32
33         AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
34         evtCuts->SetZvRange(-zvWindow,zvWindow);
35         evtCuts->SetMeanXYZv(0.0,0.0,0.0);
36         evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
37         evtCuts->SetTriggerRequired(kTRUE);
38
39         //
40         // Create geom. acceptance cuts
41         //
42         Float_t etaWindow = 1. ;
43         Float_t ptMin = 0.10 ;
44
45         AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
46         accCuts->SetEtaRange(-etaWindow,etaWindow);
47         accCuts->SetPtRange(ptMin,1.e10);
48
49         // cut out trouble sector(s)
50         Float_t phiMin = TMath::Pi() / 9. * 6.;
51         Float_t phiMax = TMath::Pi() / 9. * 7.;
52         // additional cut to remove one sector
53         AlidNdPtAcceptanceCuts *recCuts = new AlidNdPtAcceptanceCuts("AlidNdPtRecAcceptanceCuts","Geom. acceptance cuts for Recostructed tracks");  
54         recCuts->SetExcludeEtaPhiRange(-1.,0.,phiMin,phiMax);
55
56
57         //
58         // Create standard esd track cuts
59         //
60         Int_t cutMode = 200;
61
62         gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C");  
63
64         AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
65         if (!esdTrackCuts) {
66                 printf("ERROR: esdTrackCuts could not be created\n");
67                 return;
68         } else {
69                 esdTrackCuts->SetHistogramsOn(kTRUE);
70                 esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.);
71                 esdTrackCuts->SetMaxChi2PerClusterITS(36.);    
72         }
73
74         //
75         // Create task
76         //
77         AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
78         task->SetUseMCInfo(hasMC);
79
80         // trigger selection: MB
81         // task->SelectCollisionCandidates(AliVEvent::kMB);
82
83         //
84         // set analysis options from the Helper here
85         //
86         AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kAnalysisPbPb;
87         AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPCITS ;
88         AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
89
90
91         //
92         // Create cut analysis object
93         //
94         if(outputObject==AlidNdPtHelper::kAnalysisPbPb){
95
96                 AlidNdPtAnalysisPbPb2011 *fdNdPtAnalysisPbPb = new AlidNdPtAnalysisPbPb2011("dNdPtAnalysisPbPb2011","dN/dPt Analysis");
97                 fdNdPtAnalysisPbPb->SetEventCuts(evtCuts);
98                 fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts);    
99                 fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts);
100                 fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode); 
101                 fdNdPtAnalysisPbPb->SetParticleMode(particleMode); 
102                 fdNdPtAnalysisPbPb->SetCentralityEstimator("V0M");      
103                 //fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kCentral | AliVEvent::kMB | AliVEvent::kSemiCentral);
104                 fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kMB);
105                 //fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kEMC1);
106
107                 // cut to remove tpc sector
108                 //fdNdPtAnalysisPbPb->SetRecAcceptanceCuts(recCuts);
109
110                 // change binning
111                 Double_t centralitybins[12] = {0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.};  
112
113                 Double_t ptbins[85] = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 180.0, 200.0, 300.0, 400.0, 500.0};
114                 Double_t ptcorrbins[85] = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 180.0, 200.0, 300.0, 400.0, 500.0};
115                 Double_t multbins[48] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5,9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5,19.5, 20.5, 30.5, 40.5 , 50.5 , 60.5 , 70.5 , 80.5 , 90.5 , 100.5,200.5, 300.5, 400.5, 500.5, 600.5, 700.5, 800.5, 900.5, 1000.5, 2000.5, 3000.5, 4000.5, 5000.5, 6000.5, 7000.5, 8000.5, 9000.5, 10000.5 };
116                 Double_t etabins[31] = {-1.5,-1.4,-1.3,-1.2,-1.1,-1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5};
117                 Double_t zvbins[13] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};
118
119
120                 //Double_t* binsPt = new Double_t[85];
121                 //for (int i=0; i<85; i++) {binsPt[i] = ptbins[i];}
122
123                 //fdNdPtAnalysisPbPb->SetBinsPt(85, ptbins);
124                 //fdNdPtAnalysisPbPb->SetBinsPtCorr(85, ptbins);  
125                 //fdNdPtAnalysisPbPb->SetBinsCentrality(4, centralitybins);
126
127                 if(ptbins)
128                 {
129                         Int_t nptbins = sizeof(ptbins) / sizeof(Double_t);
130                         Printf("Setting %i ptbins", nptbins);
131                         fdNdPtAnalysisPbPb->SetBinsPt(nptbins, ptbins);
132                 }
133
134                 if(ptbins)
135                 {
136                         Int_t nptcorrbins = sizeof(ptcorrbins) / sizeof(Double_t);
137                         Printf("Setting %i ptcorrbins", nptcorrbins);
138                         fdNdPtAnalysisPbPb->SetBinsPtCorr(nptcorrbins, ptcorrbins);
139                 }
140
141                 if(centralitybins)
142                 {
143                         Int_t ncentralitybins = sizeof(centralitybins) / sizeof(Double_t);
144                         Printf("Setting %i centralitybins", ncentralitybins);
145                         fdNdPtAnalysisPbPb->SetBinsCentrality(ncentralitybins, centralitybins);
146                 }
147
148                 if(hasMC) 
149                 {
150
151                         fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE);
152                         fdNdPtAnalysisPbPb->SetHistogramsOn(kTRUE);
153                 }
154                 else 
155                 { 
156                         // online trigger
157                         // fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel); 
158                 }
159                 task->AddAnalysisObject( fdNdPtAnalysisPbPb );
160         }
161
162         // Add task
163         mgr->AddTask(task);
164
165
166         // Create containers for input
167         AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
168
169
170         TString outputFileName = AliAnalysisManager::GetCommonFileName();
171
172         AliAnalysisDataContainer *coutput  = mgr->CreateContainer("dNdPtPbPb", 
173                         TList::Class(),
174                         AliAnalysisManager::kOutputContainer,   
175                         Form("%s:dNdPtHistos", mgr->GetCommonFileName()));
176
177         mgr->ConnectInput(task, 0, cinput);
178         mgr->ConnectOutput(task, 1, coutput);
179
180         return task;
181
182 }
183