]>
Commit | Line | Data |
---|---|---|
bfab35d9 | 1 | /** |
2 | * @file AddTaskForwarddNdeta.C | |
3 | * @author Christian Holm Christensen <cholm@nbi.dk> | |
4 | * @date Fri Jan 28 10:22:26 2011 | |
5 | * | |
6 | * @brief Script to add a multiplicity task for the central | |
7 | * @f$\eta@f$ region | |
8 | * | |
9 | * | |
10 | * @ingroup pwglf_forward_scripts_tasks | |
11 | */ | |
12 | /** | |
13 | * Create the Forward @f$ dN/d\eta@f$ analysis task | |
14 | * | |
15 | * @param trig Trigger to use | |
16 | * @param vzMin Smallest @f$ v_z@f$ | |
17 | * @param vzMax Biggest @f$ v_z@f$ | |
bfab35d9 | 18 | * @param usePhiAcc Use stored phi acceptance |
19 | * @param useAsymm Make asymmetric bins | |
20 | * | |
21 | * @return Newly created and configured task | |
22 | * | |
23 | * @ingroup pwglf_forward_dndeta | |
24 | */ | |
52b36573 | 25 | |
bfab35d9 | 26 | AliAnalysisTask* |
27 | AddTaskForwardMultDists(const char* trig = "V0AND", | |
28 | Double_t vzMin = -4, | |
29 | Double_t vzMax = +4, | |
bfab35d9 | 30 | Bool_t usePhiAcc = true, |
31 | Bool_t useAsymm = false) | |
32 | { | |
33 | // --- Load libraries ---------------------------------------------- | |
34 | gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2"); | |
35 | ||
36 | // --- Analysis manager -------------------------------------------- | |
37 | AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager(); | |
38 | ||
39 | // --- Check that we have an AOD input handler --------------------- | |
40 | UShort_t aodInput = 0; | |
41 | if (!(aodInput = AliForwardUtil::CheckForAOD())) | |
42 | Fatal("","Cannot proceed without and AOD handler"); | |
43 | if (aodInput == 2 && | |
44 | !AliForwardUtil::CheckForTask("AliForwardMultiplicityBase")) | |
45 | Fatal("","The relevant task wasn't added to the train"); | |
46 | ||
47 | ||
48 | // --- Make our object --------------------------------------------- | |
49 | AliForwardMultDists* task = new AliForwardMultDists("Forward"); | |
50 | ||
51 | // Set the vertex range to use | |
52 | task->SetIpZRange(vzMin, vzMax); | |
53 | // Set the trigger mask to use (INEL,INEL>0,NSD) | |
54 | task->SetTriggerMask(trig); | |
bfab35d9 | 55 | // Set whether to use stored phi acceptance |
56 | task->SetUsePhiAcc(usePhiAcc); | |
57 | // add the task | |
58 | mgr->AddTask(task); | |
59 | ||
52b36573 | 60 | // Variable size axis objects |
61 | // for |eta|<0.5 from CMD | |
62 | AliForwardMultDists::BinSpec b05(-0.5, 0.5, -0.5); | |
63 | b05.Push(21, 1); | |
64 | b05.Push(1, 3); | |
65 | b05.Push(1, 5); | |
66 | b05.Push(3, 5); // <-- Extra | |
67 | ||
68 | // for |eta|<0.5 from ALICE | |
69 | AliForwardMultDists::BinSpec a05(-0.5, 0.5, -0.5); | |
70 | a05.Push(21, 1); | |
71 | a05.Push(3, 2); | |
72 | ||
73 | // For |eta|<1 from CMS | |
74 | AliForwardMultDists::BinSpec b10(-1.0, 1.0, -0.5); | |
75 | b10.Push(35, 1); | |
76 | b10.Push(1, 3); | |
77 | b10.Push(4, 5); | |
78 | b10.Push(2, 5); // <-- Extra | |
79 | ||
80 | // For |eta|<1 from ALICE | |
81 | AliForwardMultDists::BinSpec a10(-1.0, 1.0, -0.5); | |
82 | a10.Push(41, 1); | |
83 | a10.Push(1, 2); | |
84 | ||
85 | // For |eta|<1.3 from ALICE | |
86 | AliForwardMultDists::BinSpec a13(-1.3, 1.3, -0.5); | |
87 | a13.Push(41, 1); | |
88 | a13.Push(7, 2); | |
89 | ||
90 | // For |eta|<1.5 from CMS | |
91 | AliForwardMultDists::BinSpec b15(-1.5, 1.5, -0.5); | |
92 | b15.Push(46, 1); | |
93 | b15.Push(1, 2); | |
94 | b15.Push(1, 3); | |
95 | b15.Push(4, 5); | |
96 | b15.Push(4, 5); // <-- Extra | |
97 | ||
98 | // for |eta|<2.0 from CMS | |
99 | AliForwardMultDists::BinSpec b20(-2.0, 2.0, -0.5); | |
100 | b20.Push(62, 1); | |
101 | b20.Push(2, 2); | |
102 | b20.Push(1, 4); | |
103 | b20.Push(3, 10); | |
104 | b20.Push(2, 10); // <-- Extra | |
105 | ||
106 | // for |eta|<2 from CMS | |
107 | AliForwardMultDists::BinSpec b24(-2.4, 2.4, -0.5); | |
108 | b24.Push(57, 1); | |
109 | b24.Push(1, 2); | |
110 | b24.Push(1, 3); | |
111 | b24.Push(3, 10); | |
112 | b24.Push(4, 10); // <-- Extra | |
113 | ||
bfab35d9 | 114 | // Add bins |
52b36573 | 115 | AliForwardMultDists::BinSpec* bs[] = { &b05, &b10, &b15, &b20, &b24, 0 }; |
116 | AliForwardMultDists::BinSpec** pb = bs; | |
117 | while (*pb) { | |
118 | AliForwardMultDists::BinSpec* b = *pb; | |
119 | task->AddBin(*b); | |
bfab35d9 | 120 | if (useAsymm) { |
52b36573 | 121 | task->AddBin(b->fEtaMin, 0, b->Axis()); |
122 | task->AddBin(0, b->fEtaMax, b->Axis()); | |
bfab35d9 | 123 | } |
52b36573 | 124 | pb++; |
bfab35d9 | 125 | } |
126 | ||
127 | // --- create containers for input/output -------------------------- | |
128 | AliAnalysisDataContainer *sums = | |
129 | mgr->CreateContainer("ForwardMultSums", TList::Class(), | |
130 | AliAnalysisManager::kOutputContainer, | |
131 | AliAnalysisManager::GetCommonFileName()); | |
132 | AliAnalysisDataContainer *output = | |
133 | mgr->CreateContainer("ForwardMultResults", TList::Class(), | |
134 | AliAnalysisManager::kParamContainer, | |
135 | AliAnalysisManager::GetCommonFileName()); | |
136 | ||
137 | // --- connect input/output ---------------------------------------- | |
138 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
139 | mgr->ConnectOutput(task, 1, sums); | |
140 | mgr->ConnectOutput(task, 2, output); | |
141 | ||
142 | return task; | |
143 | } | |
144 | ||
145 | ||
146 | //________________________________________________________________________ | |
147 | // | |
148 | // EOF | |
149 | // |