2 * @file MakeMultDistsTrain.C
3 * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk>
4 * @date Fri Jun 1 13:51:26 2012
8 * @ingroup pwglf_forward_trains_specific
12 #include "TrainSetup.C"
14 //====================================================================
16 * Analysis train to make @f$ dN/d\eta@f$
19 * @ingroup pwglf_forward_dndeta
20 * @ingroup pwglf_forward_trains_specific
22 class MakeMultDistsTrain : public TrainSetup
28 * @param name Name of train (free form)
30 MakeMultDistsTrain(const char* name)
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);
36 fOptions.Add("phi-acc", "Use stored phi acceptance", true);
37 fOptions.Add("asymmetric", "Make asymmetric (+/-) bins", false);
44 void CreateTasks(AliAnalysisManager*)
46 // --- Output file name ------------------------------------------
47 AliAnalysisManager::SetCommonFileName("forward_multdists.root");
49 // --- Load libraries/pars ---------------------------------------
50 fHelper->LoadLibrary("PWGLFforward2");
52 // --- Set load path ---------------------------------------------
53 gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWGLF/FORWARD/analysis2",
54 gROOT->GetMacroPath()));
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);
60 Bool_t phiAcc = fOptions.AsBool("phi-acc");
61 Bool_t aSymm = fOptions.AsBool("asymmetric");
63 // --- Form arguments --------------------------------------------
65 args.Form("\"%s\",%f,%f,%d,%d",
66 trig.Data(), vzMin, vzMax, phiAcc, aSymm);
67 // --- Add the task ----------------------------------------------
68 gROOT->Macro(Form("AddTaskForwardMultDists.C(%s);", args.Data()));
70 //__________________________________________________________________
72 * Do not the centrality selection
74 //__________________________________________________________________
75 void CreateCentralitySelection(Bool_t, AliAnalysisManager*) {}
77 * Do not create MC input handler
81 AliVEventHandler* CreateMCHandler(UShort_t, bool) { return 0; }
82 //__________________________________________________________________
84 * Crete output handler - we don't want one here.
88 AliVEventHandler* CreateOutputHandler(UShort_t) { return 0; }
89 //__________________________________________________________________
90 const char* ClassName() const { return "MakeMultDistsTrain"; }
91 //__________________________________________________________________
93 * Overloaded to create new draw.C
95 * @param asShellScript
97 void SaveSetup(Bool_t asShellScript)
99 TrainSetup::SaveSetup(asShellScript);
106 std::ofstream f("Unfold.C");
108 Error("SaveUnfold", "Failed to open Unfold.C script");
111 f << "// Generated by " << ClassName() << "\n"
112 << "void Unfold(const char* other=\"\",\n"
113 << " Double_t regP=20,\n"
114 << " const char* here=\"forward_multdists.root\")\n"
116 << " const char* rooUnfold = gSystem->Getenv(\"ROOUNFOLD\");\n"
117 << " if (rooUnfold) {\n"
118 << " gSystem->AddIncludePath(Form(\"-I%s/src\",rooUnfold));\n"
119 << " gSystem->AddDynamicPath(Form(\"%s\", rooUnfold));\n"
121 << " gSystem->Load(\"libRooUnfold\");\n"
122 << " const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
123 << " gROOT->LoadMacro(Form(\"%s/scripts/UnfoldMultDists.C++g\",fwd));\n"
124 << " UnfoldMultDists(\"bayes\",regP,here,other);\n"
126 << "// EOF" << std::endl;
132 std::ofstream f("Summarize.C");
134 Error("SaveSummarize", "Failed to open Summarize.C script");
137 f << "// Generated by " << ClassName() << "\n"
138 << "// WHAT is a bit mask of\n"
139 << "// 0x001 Forward\n"
140 << "// 0x002 Central\n"
142 << "// 0x008 Results\n"
143 << "// 0x010 Only min-bias (no centrality)\n"
144 << "// 0x020 Landscape\n"
145 << "// 0x040 Pause\n"
147 << "void Summarize(const char* filename=\"forward_multdists.root\",\n"
148 << " UShort_t what=0xF)\n"
150 << " const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
151 << " gROOT->LoadMacro(Form(\"%s/DrawMultDistsSummary.C\",fwd));\n"
152 << " DrawMultDistsSummary(filename,what);\n"
154 << "// EOF" << std::endl;
157 void PostShellCode(std::ostream& f)
159 f << " echo \"=== Summarizing results ...\"\n"
160 << " aliroot -l -b -q ${prefix}Summarize.C\n"
161 << " echo \"=== Unfolding ...\"\n"
162 << " export ROOUNFOLD=${HOME}/tmp/RooUnfoldMyEdits\n"
163 << " aliroot -l -b -q ${prefix}Unfold.C\n"