]>
Commit | Line | Data |
---|---|---|
2233368c | 1 | |
2 | void 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 | ||
30 | AliPhysicsSelection *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 |