]>
Commit | Line | Data |
---|---|---|
d4640855 | 1 | void AddTask_dNdPtCutAnalysisPbPb() |
2 | { | |
3 | /* | |
4 | CheckLoadLibrary("libPWG0base"); | |
5 | CheckLoadLibrary("libPWG0dep"); | |
6 | CheckLoadLibrary("libPWG0selectors"); | |
7 | */ | |
8 | ||
4070f709 | 9 | gSystem->Load("libPWG0base"); |
10 | gSystem->Load("libPWG0dep"); | |
11 | gSystem->Load("libPWG0selectors"); | |
d4640855 | 12 | |
13 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
14 | ||
15 | if (!mgr) { | |
16 | Error("AddTask_dNdPtCutAnalysisPbPb", "No analysis manager found."); | |
17 | return 0; | |
18 | } | |
19 | ||
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 | AliPhysicsSelection *physTrigSel = new AliPhysicsSelection(); | |
28 | ||
29 | // | |
30 | // Create event cuts | |
31 | // | |
32 | Float_t zvWindow = 20. ; | |
33 | ||
34 | AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts"); | |
35 | evtCuts->SetZvRange(-zvWindow,zvWindow); | |
36 | evtCuts->SetMeanXYZv(0.0,0.0,0.0); | |
37 | evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0); | |
38 | evtCuts->SetTriggerRequired(kTRUE); | |
39 | ||
40 | // | |
41 | // Create geom. acceptance cuts | |
42 | // | |
43 | Float_t etaWindow = 1. ; | |
44 | Float_t ptMin = 0.15 ; | |
45 | ||
46 | AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts"); | |
47 | accCuts->SetEtaRange(-etaWindow,etaWindow); | |
48 | accCuts->SetPtRange(ptMin,1.e10); | |
49 | accCuts->SetMaxDCAr(3.0); | |
50 | accCuts->SetMaxDCAz(30.0); | |
51 | ||
52 | // | |
53 | // Create standard esd track cuts | |
54 | // | |
55 | Int_t cutMode = 23; | |
56 | ||
57 | gROOT->LoadMacro("$ALICE_ROOT/PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C"); | |
58 | AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode); | |
59 | if (!esdTrackCuts) { | |
60 | printf("ERROR: esdTrackCuts could not be created\n"); | |
61 | return; | |
62 | } else { | |
63 | esdTrackCuts->SetHistogramsOn(kTRUE); | |
64 | } | |
65 | ||
66 | ||
67 | Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0); | |
68 | ||
69 | // | |
70 | // Create task | |
71 | // | |
72 | AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask"); | |
73 | task->SetUseMCInfo(hasMC); | |
74 | ||
75 | // trigger | |
76 | task->SelectCollisionCandidates(AliVEvent::kMB); | |
77 | ||
78 | // | |
79 | // set analysis options from the Helper here !!! | |
80 | // | |
81 | AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kCutAnalysisPbPb; | |
82 | AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC ; | |
83 | AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ; | |
84 | ||
85 | ||
86 | // | |
87 | // Create cut analysis object | |
88 | // | |
89 | if(outputObject==AlidNdPtHelper::kCutAnalysisPbPb) { | |
90 | ||
91 | AlidNdPtCutAnalysisPbPb *fdNdPtAnalysisPbPb = new AlidNdPtCutAnalysisPbPb("dNdPtCutAnalysisPbPb","dN/dPt Analysis"); | |
92 | fdNdPtAnalysisPbPb->SetEventCuts(evtCuts); | |
93 | fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts); | |
94 | fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts); | |
95 | fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode); | |
96 | fdNdPtAnalysisPbPb->SetParticleMode(particleMode); | |
97 | ||
98 | ||
99 | if(hasMC) | |
100 | { | |
101 | physTrigSel->SetAnalyzeMC(); | |
102 | fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel); | |
103 | ||
104 | fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE); | |
105 | }else { // online trigger | |
106 | fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel); | |
107 | } | |
108 | ||
109 | task->AddAnalysisObject( fdNdPtAnalysisPbPb ); | |
110 | } | |
111 | ||
112 | ||
113 | // Centrality | |
114 | task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD | |
115 | task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly) | |
116 | // 0 = most centrality | |
117 | ||
118 | // Add task | |
119 | mgr->AddTask(task); | |
120 | ||
121 | // Create containers for input | |
122 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
123 | mgr->ConnectInput(task, 0, cinput); | |
124 | ||
125 | AliAnalysisDataContainer *coutput = mgr->CreateContainer("jotwinow_dNdPtCutAnalysisPbPb", TList::Class(), AliAnalysisManager::kOutputContainer, "jotwinow_dNdPtCutAnalysisPbPb.root"); | |
126 | mgr->ConnectOutput(task, 1, coutput); | |
127 | ||
128 | } | |
129 |