31 fOptions.
Add(
"sys",
"SYSTEM",
"1:pp, 2:PbPb, 3:pPb",
"");
33 fOptions.
Add(
"max-mom",
"2|3|4|5",
"Max flow moment to analyse",
"5");
34 fOptions.
Add(
"use-cent",
"Whether to use the impact parameter " 36 fOptions.
Add(
"mc-vtx",
"Whether to get the vertex from the MC header");
37 fOptions.
Add(
"fwd-dets",
"[fmd,vzero]",
"Forward detectors",
"fmd+vzero");
38 fOptions.
Add(
"afterburner",
"Whether to afterburn");
42 fOptions.
Add(
"QC",
"Add QC tasks (requires AODs with FMD and SPD objects)");
44 "Which types of QC's to do",
"all");
46 "Set value in |eta| of the eta gap",
"2.0");
48 "Whether or only to use tracks for reference flow",
50 fOptions.
Add(
"sat-vtx",
"Whether to use satellite interactions");
51 fOptions.
Add(
"outlier-fmd",
"NSIGMA",
"Outlier cut for FMD",
"4.0");
52 fOptions.
Add(
"outlier-spd",
"NSIGMA",
"Outlier cut for SPD",
"4.0");
54 fOptions.
Add(
"EP",
"Add EP tasks (requires VZERO AOD objects)");
65 AliAnalysisManager::SetCommonFileName(
"forward_flow.root");
71 gROOT->SetMacroPath(Form(
"%s:$(ALICE_PHYSICS)/PWGLF/FORWARD/analysis2",
72 gROOT->GetMacroPath()));
73 gROOT->SetMacroPath(Form(
"%s:$(ALICE_ROOT)/ANALYSIS/macros",
74 gROOT->GetMacroPath()));
81 if (!doQC && !doEP) Fatal(
"CreateTasks",
"No flow tasks were added");
107 Bool_t doFMD = fwdDets.Contains(
"FMD");
108 Bool_t doVZERO = fwdDets.Contains(
"VZERO");
110 Bool_t onlyTr = tracks.Contains(
"only");
111 Bool_t tpcTr = tracks.Contains(
"tpc");
112 Bool_t hybridTr = tracks.Contains(
"hybrid");
113 Bool_t ispA = (sys == 3 ? kTRUE : kFALSE);
122 args = TString::Format(
"%d,\"%%s\",%%d,%%d,%d,%f,%f,%f,%%d,%d,%d,%d,%d,%d",
135 const char* mac =
"AddTaskForwardFlowQC.C";
137 if (types.Contains(
"std") || types.Contains(
"all")) {
139 CoupleCar(mac, Form(args.Data(),
"FMD",
false,
false, 0));
141 CoupleCar(mac, Form(args.Data(),
"FMD",
false,
false, 1));
143 CoupleCar(mac, Form(args.Data(),
"FMD",
false,
false, 2));
145 if (types.Contains(
"eta-gap") || types.Contains(
"all")) {
147 CoupleCar(mac, Form(args.Data(),
"FMD",
true,
false, 0));
149 CoupleCar(mac, Form(args.Data(),
"FMD",
true,
false, 1));
151 CoupleCar(mac, Form(args.Data(),
"FMD",
true,
false, 2));
153 if (types.Contains(
"3cor") || types.Contains(
"all")) {
155 CoupleCar(mac, Form(args.Data(),
"FMD",
false,
true, 0));
159 if (types.Contains(
"std") || types.Contains(
"all")) {
161 CoupleCar(mac, Form(args.Data(),
"VZERO",
false,
false, 0));
163 CoupleCar(mac, Form(args.Data(),
"VZERO",
false,
false, 1));
165 CoupleCar(mac, Form(args.Data(),
"VZERO",
false,
false, 2));
167 if (types.Contains(
"eta-gap") || types.Contains(
"all")) {
169 CoupleCar(mac, Form(args.Data(),
"VZERO",
true,
false, 0));
171 CoupleCar(mac, Form(args.Data(),
"VZERO",
true,
false, 1));
173 CoupleCar(mac, Form(args.Data(),
"VZERO",
true,
false, 2));
175 if (types.Contains(
"3cor") || types.Contains(
"all")) {
177 CoupleCar(mac, Form(args.Data(),
"VZERO",
false,
true, 0));
197 Form(
"%d, %d, \"%s\"", mc, moment, fwdDets.Data()));
231 const char*
ClassName()
const {
return "MakeFlowTrain"; }
Double_t AsDouble(const TString &name, Double_t def=0) const
Bool_t AsBool(const TString &name) const
Int_t AsInt(const TString &name, Int_t def=0) const
const TString & Get(const TString &name) const
void CreateCentralitySelection(Bool_t)
void CreateTasks(AliAnalysisManager *)
void Set(const TString &name, const TString &value)
AliVEventHandler * CreateOutputHandler(UShort_t)
Base classs for train specifications.
Option * Add(const TString &name, const TString &arg, const TString &desc, const TString &val="")
MakeFlowTrain(const char *name)
AliVEventHandler * CreateMCHandler(UShort_t, bool)
void Show(std::ostream &o, const char *prefix=" ") const
virtual AliAnalysisTask * CoupleCar(const TString ¯o, const TString &args)
const char * ClassName() const
virtual Bool_t LoadLibrary(const TString &name, Bool_t slave=true, Bool_t forcePar=false)=0