]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/AddTask_dNdPtPbPb2011.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / macros / AddTask_dNdPtPbPb2011.C
CommitLineData
07f1d09a 1void AddTask_dNdPtPbPb2011(
2 char * centEst = "V0M"
3 )
3c5d5aef 4{
5
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7
8 if (!mgr) {
9 Error("AddTask_dNdPtPbPb2011", "No analysis manager found.");
10 return 0;
11 }
12
13
14 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
15
16 cout << "HasMC: " << hasMC << endl;
07f1d09a 17
18 cout << "Using Centrality Estimator: " << centEst << endl;
19
3c5d5aef 20 // Switch off all AliInfo (too much output!!!)
21 AliLog::SetGlobalLogLevel(AliLog::kError);
22 mgr->SetDebugLevel(0);
23
24 //
25 // Create physics trigger selection class
26 //
27
28
29 // AliPhysicsSelection *physTrigSel = new AliPhysicsSelection();
30
31 //
32 // Create event cuts
33 //
34 Float_t zvWindow = 30. ;
35
36 AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
37 evtCuts->SetZvRange(-zvWindow,zvWindow);
38 evtCuts->SetMeanXYZv(0.0,0.0,0.0);
39 evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
40 evtCuts->SetTriggerRequired(kTRUE);
41
42 //
43 // Create geom. acceptance cuts
44 //
45 Float_t etaWindow = 1. ;
46 Float_t ptMin = 0.10 ;
47
48 AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
49 accCuts->SetEtaRange(-etaWindow,etaWindow);
50 accCuts->SetPtRange(ptMin,1.e10);
51
52 // cut out trouble sector(s)
53 Float_t phiMin = TMath::Pi() / 9. * 6.;
54 Float_t phiMax = TMath::Pi() / 9. * 7.;
55 // additional cut to remove one sector
56 AlidNdPtAcceptanceCuts *recCuts = new AlidNdPtAcceptanceCuts("AlidNdPtRecAcceptanceCuts","Geom. acceptance cuts for Recostructed tracks");
57 recCuts->SetExcludeEtaPhiRange(-1.,0.,phiMin,phiMax);
58
59
60 //
61 // Create standard esd track cuts
62 //
63 // Int_t cutMode = 200;
64
65 //gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C");
66 // gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C");
67 // AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
68 // if (!esdTrackCuts) {
69 // printf("ERROR: esdTrackCuts could not be created\n");
70 // return;
71 // } else {
72 //esdTrackCuts->SetHistogramsOn(kTRUE);
73 // esdTrackCuts->SetHistogramsOn(kTRUE);
74 // }
75 // esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.);
76 // esdTrackCuts->SetMaxChi2PerClusterITS(36.);
77 // esdTrackCuts->SetMaxDCAToVertexXY(3.0); // is in Michaels cutmode 2222
78
79 Float_t minNCrossedRowsTPC = 120;
80 Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8;
81 Float_t maxFractionSharedTPCCluster = 0.4;
82 Double_t maxchi2perTPCcl=4.;
83 Double_t maxdcazITSTPC=2.0;
84 Double_t maxdaczTPC=3.0;
85 Double_t maxdcaxyTPC=3.0;
86
87 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
88 esdTrackCuts->SetRequireTPCRefit(kTRUE);
89 esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC);
90 esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC);
91 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
92 esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster);
93 esdTrackCuts->SetMaxDCAToVertexZ(maxdaczTPC);
94 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyTPC);
95 esdTrackCuts->SetRequireITSRefit(kTRUE);
96 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
97 esdTrackCuts->SetMaxChi2PerClusterITS(36.);
98 esdTrackCuts->SetDCAToVertex2D(kFALSE);
99 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
100 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
101 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
102 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
103 esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.);
104 esdTrackCuts->SetHistogramsOn(kTRUE);
105
106 //
107 // Create task
108 //
109 AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
110 task->SetUseMCInfo(hasMC);
111
112 // trigger selection: MB
113// task->SelectCollisionCandidates(AliVEvent::kINT7);
114
115 //
116 // set analysis options from the Helper here
117 //
118 AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kAnalysisPbPb;
119 AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPCITS ;
120 AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
121
122
123 //
124 // Create cut analysis object
125 //
126 if(outputObject==AlidNdPtHelper::kAnalysisPbPb){
127
128 //gROOT->LoadMacro("dNdPtPbPb/AlidNdPtAnalysisPbPb.cxx+");
129 AlidNdPtAnalysisPbPb2011 *fdNdPtAnalysisPbPb = new AlidNdPtAnalysisPbPb2011("dNdPtAnalysisPbPb2011","dN/dPt Analysis");
130 fdNdPtAnalysisPbPb->SetEventCuts(evtCuts);
131 fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts);
132 fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts);
133 fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode);
134 fdNdPtAnalysisPbPb->SetParticleMode(particleMode);
135 // fdNdPtAnalysisPbPb->SetCentralityEstimator("ZNA");
07f1d09a 136 fdNdPtAnalysisPbPb->SetCentralityEstimator(centEst);
3c5d5aef 137 fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kMB);
138// fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kCINT5);
139 //fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kEMC1);
140
141 // cut to remove tpc sector
142 //fdNdPtAnalysisPbPb->SetRecAcceptanceCuts(recCuts);
143
144 // change binning
145 // change binning
9b02e33c 146 Double_t centralitybins[12] = {0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.};
147// Double_t centralitybins[6] = {0., 20., 40., 60., 80., 100.};
3c5d5aef 148
149 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};
150 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};
151 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 };
152// Double_t etabins[31] = {-1.465409,-1.365409,-1.265409,-1.165409,-1.065409,-0.965409,-0.865409,-0.765409,-0.665409,-0.565409,-0.465409,-0.365409,-0.265409,-0.165409,-0.065409,0.034591,0.134591,0.234591,0.334591,0.434591,0.534591,0.634591,0.734591,0.834591,0.934591,1.034591,1.134591,1.234591,1.334591,1.434591,1.534591};
153 Double_t zvbins[13] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};
154
155
156 //Double_t* binsPt = new Double_t[85];
157 //for (int i=0; i<85; i++) {binsPt[i] = ptbins[i];}
158
159 //fdNdPtAnalysisPbPb->SetBinsPt(85, ptbins);
160 //fdNdPtAnalysisPbPb->SetBinsPtCorr(85, ptbins);
161 //fdNdPtAnalysisPbPb->SetBinsCentrality(4, centralitybins);
162
163 if(ptbins)
164 {
165 Int_t nptbins = sizeof(ptbins) / sizeof(Double_t);
166 Printf("Setting %i ptbins", nptbins);
167 fdNdPtAnalysisPbPb->SetBinsPt(nptbins, ptbins);
168 }
169
170 if(ptbins)
171 {
172 Int_t nptcorrbins = sizeof(ptcorrbins) / sizeof(Double_t);
173 Printf("Setting %i ptcorrbins", nptcorrbins);
174 fdNdPtAnalysisPbPb->SetBinsPtCorr(nptcorrbins, ptcorrbins);
175 }
176
177 if(centralitybins)
178 {
179 Int_t ncentralitybins = sizeof(centralitybins) / sizeof(Double_t);
180 Printf("Setting %i centralitybins", ncentralitybins);
181 fdNdPtAnalysisPbPb->SetBinsCentrality(ncentralitybins, centralitybins);
182 }
183
184// if(etabins)
185// {
186// Int_t netabins = sizeof(etabins) / sizeof(Double_t);
187// Printf("Setting %i etabins", netabins);
188// fdNdPtAnalysisPbPb->SetBinsEta(netabins, etabins);
189// }
190
191 if(hasMC)
192 {
193 fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE);
194 fdNdPtAnalysisPbPb->SetHistogramsOn(kTRUE);
195 }
196 else
197 {
198 // online trigger
199 // fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
200 }
201
202
203 task->AddAnalysisObject( fdNdPtAnalysisPbPb );
204 }
205
206 // Add task
207 mgr->AddTask(task);
208
209 // Create containers for input
210 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
211
212 TString outputFileName = AliAnalysisManager::GetCommonFileName();
213
214 AliAnalysisDataContainer *coutput = mgr->CreateContainer("dNdPtPbPb",
215 TList::Class(),
216 AliAnalysisManager::kOutputContainer,
217 Form("%s:dNdPtHistos", mgr->GetCommonFileName()));
218
219 mgr->ConnectInput(task, 0, cinput);
220 mgr->ConnectOutput(task, 1, coutput);
221
222
223}
224