]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/AddTask_mkoehler_dNdPtPbPb.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / macros / AddTask_mkoehler_dNdPtPbPb.C
CommitLineData
2233368c 1
2void AddTask_mkoehler_dNdPtPbPb()
3{
4
5 CheckLoadLibrary("libPWG0base");
6 CheckLoadLibrary("libPWG0dep");
7 CheckLoadLibrary("libPWG0selectors");
8
9 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
10
11 if (!mgr) {
12 Error("AddTask_mkoehler_dNdPtPbPb", "No analysis manager found.");
13 return 0;
14 }
15
dffe2c06 16
17 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
18// Bool_t hasMC= kFALSE;
19
20
2233368c 21 // Switch off all AliInfo (too much output!!!)
22 AliLog::SetGlobalLogLevel(AliLog::kError);
23 mgr->SetDebugLevel(0);
24
25 //
26 // Create physics trigger selection class
27 //
dffe2c06 28
29
30AliPhysicsSelection *physTrigSel = new AliPhysicsSelection();
2233368c 31
32 //
33 // Create event cuts
34 //
35 Float_t zvWindow = 20. ;
36
37 AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
38 evtCuts->SetZvRange(-zvWindow,zvWindow);
39 evtCuts->SetMeanXYZv(0.0,0.0,0.0);
40 evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
41 evtCuts->SetTriggerRequired(kTRUE);
42
43 //
44 // Create geom. acceptance cuts
45 //
46 Float_t etaWindow = 1. ;
47 Float_t ptMin = 0.15 ;
48
49 AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
50 accCuts->SetEtaRange(-etaWindow,etaWindow);
51 accCuts->SetPtRange(ptMin,1.e10);
52 accCuts->SetMaxDCAr(3.0);
53 accCuts->SetMaxDCAz(30.0);
54
55 //
56 // Create standard esd track cuts
57 //
58 Int_t cutMode = 23;
59
60 gROOT->LoadMacro("$ALICE_ROOT/PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C");
61 AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
62 if (!esdTrackCuts) {
63 printf("ERROR: esdTrackCuts could not be created\n");
64 return;
65 } else {
66 esdTrackCuts->SetHistogramsOn(kTRUE);
67 }
68
2233368c 69 //
70 // Create task
71 //
72 AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
73 task->SetUseMCInfo(hasMC);
74
dffe2c06 75 //TString datatype=gSystem->Getenv("CONFIG_FILE");
76 //if ( datatype == "PbPb" ){
77 // task->SelectCollisionCandidates(AliVEvent::kUserDefined);
78 //}
79 //else
80 task->SelectCollisionCandidates(AliVEvent::kMB);
81
82
83// }
84// else
85// task->SelectCollisionCandidates();
86
2233368c 87 //
dffe2c06 88 // set analysis options from the Helper here
2233368c 89 //
90 AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kAnalysisPbPb;
91 AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC ;
92 AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
93
94
95 //
96 // Create cut analysis object
97 //
98 if(outputObject==AlidNdPtHelper::kAnalysisPbPb){
99
100 AlidNdPtAnalysisPbPb *fdNdPtAnalysisPbPb = new AlidNdPtAnalysisPbPb("dNdPtAnalysisPbPb","dN/dPt Analysis");
101 fdNdPtAnalysisPbPb->SetEventCuts(evtCuts);
102 fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts);
103 fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts);
104 fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode);
105 fdNdPtAnalysisPbPb->SetParticleMode(particleMode);
106
107
108 if(hasMC)
109 {
110 physTrigSel->SetAnalyzeMC();
111 fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
112
113 fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE);
114 fdNdPtAnalysisPbPb->SetHistogramsOn(kTRUE);
115 //fdNdPtAnalysisPbPb->SetHistogramsOn(kFALSE);
116 }else { // online trigger
117 fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
118 }
119
120 task->AddAnalysisObject( fdNdPtAnalysisPbPb );
121 }
dffe2c06 122
123 // Centrality
124 task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
125 task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
126 // 0 = most centrality
2233368c 127
2233368c 128
dffe2c06 129 // Centrality
130 task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
131 task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
132 // 0 = most centrality
2233368c 133
134 // Add task
135 mgr->AddTask(task);
136
137 // Create containers for input
138 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
139 mgr->ConnectInput(task, 0, cinput);
140
141 AliAnalysisDataContainer *coutput = mgr->CreateContainer("mkoehler_dNdPtPbPb", TList::Class(), AliAnalysisManager::kOutputContainer, "mkoehler_dNdPtPbPb.root");
142 mgr->ConnectOutput(task, 1, coutput);
143
144
145
146}
147