]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/trains/MakeMultDistsTrain.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / trains / MakeMultDistsTrain.C
CommitLineData
bfab35d9 1/**
2 * @file MakeMultDistsTrain.C
3 * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk>
4 * @date Fri Jun 1 13:51:26 2012
5 *
6 * @brief
7 *
8 * @ingroup pwglf_forward_trains_specific
9 *
10 */
11
12#include "TrainSetup.C"
13
14//====================================================================
15/**
671df6c9 16 * Analysis train to make @f$ P(N_{ch})@f$
bfab35d9 17 *
18 *
671df6c9 19 * @ingroup pwglf_forward_multdists
bfab35d9 20 * @ingroup pwglf_forward_trains_specific
21 */
22class MakeMultDistsTrain : public TrainSetup
23{
24public:
25 /**
26 * Constructor.
27 *
28 * @param name Name of train (free form)
29 */
30 MakeMultDistsTrain(const char* name)
31 : TrainSetup(name)
32 {
33 fOptions.Add("trig", "TYPE", "Trigger type", "V0AND");
34 fOptions.Add("vzMin", "CENTIMETER", "Min Ip Z", -4);
35 fOptions.Add("vzMax", "CENTIMETER", "Max Ip Z", +4);
9aba161a 36 fOptions.Add("phi-acc", "Use stored phi acceptance", false);
91b3e533 37 fOptions.Add("asymmetric", "Make asymmetric (+/-) bins", false);
bfab35d9 38 }
39protected:
40 /**
41 * Create the tasks
42 *
43 */
44 void CreateTasks(AliAnalysisManager*)
45 {
46 // --- Output file name ------------------------------------------
47 AliAnalysisManager::SetCommonFileName("forward_multdists.root");
48
49 // --- Load libraries/pars ---------------------------------------
78ac7e09 50 fRailway->LoadLibrary("PWGLFforward2");
bfab35d9 51
52 // --- Set load path ---------------------------------------------
53 gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWGLF/FORWARD/analysis2",
54 gROOT->GetMacroPath()));
55
56 // --- Get parameters --------------------------------------------
57 TString trig = fOptions.AsString("trig", "V0AND");
58 Double_t vzMin = fOptions.AsDouble("vzmin", -4);
59 Double_t vzMax = fOptions.AsDouble("vzmax", +4);
bfab35d9 60 Bool_t phiAcc = fOptions.AsBool("phi-acc");
61 Bool_t aSymm = fOptions.AsBool("asymmetric");
62
63 // --- Form arguments --------------------------------------------
64 TString args;
d4a5ea4a 65 args.Form("\"%s\",%f,%f,%d,%d",
66 trig.Data(), vzMin, vzMax, phiAcc, aSymm);
bfab35d9 67 // --- Add the task ----------------------------------------------
78ac7e09 68 CoupleCar("AddTaskForwardMultDists.C(%s)", args);
6ee074b7 69 AddMonitor("ForwardMultSums");
bfab35d9 70 }
71 //__________________________________________________________________
72 /**
73 * Do not the centrality selection
74 */
75 //__________________________________________________________________
78ac7e09 76 void CreateCentralitySelection(Bool_t) {}
bfab35d9 77 /**
78 * Do not create MC input handler
79 *
80 * @return Always null
81 */
82 AliVEventHandler* CreateMCHandler(UShort_t, bool) { return 0; }
83 //__________________________________________________________________
84 /**
85 * Crete output handler - we don't want one here.
86 *
87 * @return 0
88 */
89 AliVEventHandler* CreateOutputHandler(UShort_t) { return 0; }
90 //__________________________________________________________________
91 const char* ClassName() const { return "MakeMultDistsTrain"; }
92 //__________________________________________________________________
93 /**
94 * Overloaded to create new draw.C
95 *
96 * @param asShellScript
97 */
98 void SaveSetup(Bool_t asShellScript)
99 {
100 TrainSetup::SaveSetup(asShellScript);
101
102 SaveSummarize();
91b3e533 103 SaveUnfold();
c8b1a7db 104 SaveDraw();
91b3e533 105 }
106 void SaveUnfold()
107 {
108 std::ofstream f("Unfold.C");
109 if (!f) {
110 Error("SaveUnfold", "Failed to open Unfold.C script");
111 return;
112 }
113 f << "// Generated by " << ClassName() << "\n"
114 << "void Unfold(const char* other=\"\",\n"
d4a5ea4a 115 << " Double_t regP=20,\n"
91b3e533 116 << " const char* here=\"forward_multdists.root\")\n"
117 << "{\n"
118 << " const char* rooUnfold = gSystem->Getenv(\"ROOUNFOLD\");\n"
119 << " if (rooUnfold) {\n"
120 << " gSystem->AddIncludePath(Form(\"-I%s/src\",rooUnfold));\n"
121 << " gSystem->AddDynamicPath(Form(\"%s\", rooUnfold));\n"
122 << " }\n"
123 << " gSystem->Load(\"libRooUnfold\");\n"
124 << " const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
125 << " gROOT->LoadMacro(Form(\"%s/scripts/UnfoldMultDists.C++g\",fwd));\n"
d4a5ea4a 126 << " UnfoldMultDists(\"bayes\",regP,here,other);\n"
91b3e533 127 << "}\n"
128 << "// EOF" << std::endl;
129
130 f.close();
bfab35d9 131 }
132 void SaveSummarize()
133 {
134 std::ofstream f("Summarize.C");
135 if (!f) {
136 Error("SaveSummarize", "Failed to open Summarize.C script");
137 return;
138 }
139 f << "// Generated by " << ClassName() << "\n"
140 << "// WHAT is a bit mask of\n"
141 << "// 0x001 Forward\n"
142 << "// 0x002 Central\n"
143 << "// 0x004 Sums\n"
144 << "// 0x008 Results\n"
145 << "// 0x010 Only min-bias (no centrality)\n"
146 << "// 0x020 Landscape\n"
147 << "// 0x040 Pause\n"
148 << "//\n"
149 << "void Summarize(const char* filename=\"forward_multdists.root\",\n"
150 << " UShort_t what=0xF)\n"
151 << "{\n"
91b3e533 152 << " const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
153 << " gROOT->LoadMacro(Form(\"%s/DrawMultDistsSummary.C\",fwd));\n"
bfab35d9 154 << " DrawMultDistsSummary(filename,what);\n"
155 << "}\n"
156 << "// EOF" << std::endl;
157 f.close();
158 }
c8b1a7db 159 void SaveDraw()
160 {
161 std::ofstream f("Draw.C");
162 if (!f) {
163 Error("SaveSummarize", "Failed to open Summarize.C script");
164 return;
165 }
166 f << "// Generated by " << ClassName() << "\n"
167 << "// WHAT is a bit mask of\n"
168 << "// 0x001 Forward\n"
169 << "// 0x002 Central\n"
170 << "// 0x004 Sums\n"
171 << "// 0x008 Results\n"
172 << "// 0x010 Only min-bias (no centrality)\n"
173 << "// 0x020 Landscape\n"
174 << "// 0x040 Pause\n"
175 << "//\n"
176 << "void Draw(const char* filename=\"forward_unfolded.root\",\n"
177 << " UShort_t what=0xF)\n"
178 << "{\n"
179 << " const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
180 << " gROOT->LoadMacro(Form(\"%s/DrawUnfoldedSummary.C\",fwd));\n"
181 << " DrawUnfoldedSummary(filename);\n"
182 << "}\n"
183 << "// EOF" << std::endl;
184 f.close();
185 }
91b3e533 186 void PostShellCode(std::ostream& f)
187 {
188 f << " echo \"=== Summarizing results ...\"\n"
189 << " aliroot -l -b -q ${prefix}Summarize.C\n"
190 << " echo \"=== Unfolding ...\"\n"
191 << " export ROOUNFOLD=${HOME}/tmp/RooUnfoldMyEdits\n"
c8b1a7db 192 << " mc=\n"
193 << " if test x$dest != x ; then mc=${dest}/forward_multdists.root; fi\n"
194 << " aliroot -l -b -q ${prefix}Unfold.C\\(\\\"${mc}\\\"\\)\n"
195 << " aliroot -l -b -q ${prefix}Draw.C\n"
91b3e533 196 << std::endl;
197 }
bfab35d9 198};
199//
200// EOF
201//