]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/MakeFlow.C
Fix documentation issues
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / MakeFlow.C
CommitLineData
ffca499d 1/**
2 * @file MakeFlow.C
3 * @author Alexander Hansen
4 * @date Wed Mar 23 12:11:33 2011
5 *
d226802c 6 * @brief
ffca499d 7 *
2b556440 8 * @ingroup pwg2_forward_scripts_makers
ffca499d 9 *
10 */
9d05ffeb 11/**
58f5fae2 12 * Script to analyse AOD input for flow
13 *
14 * Takes either a single (AOD) .root file as input or a .txt
15 * The .txt file is expected to contain the path to the files
16 * from the current directory or the absolute path.
9d05ffeb 17 *
d226802c 18 * @par Inputs:
19 *
20 *
21 * @par Outputs:
22 * -
ffca499d 23 *
4b5b52b7 24 * @ingroup pwglf_forward_flow
9d05ffeb 25 */
4b5b52b7 26void MakeFlow(const char* data = "",
27 Int_t nEvents = -1,
9d05ffeb 28 TString type = "",
d226802c 29 Bool_t mc = kFALSE,
2b556440 30 const char* name = 0,
31 Int_t proof = 0,
d420e249 32 Bool_t dispVtx = kFALSE,
58f5fae2 33 TString addFlow = "",
34 Int_t addFType = 0,
9453b19e 35 Int_t addFOrder = 0,
2b556440 36 Bool_t gdb = kFALSE)
9d05ffeb 37{
58f5fae2 38 // --- Load libs ---------------------------------------------------
bd6f5206 39 gROOT->Macro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/scripts/LoadLibs.C");
9d05ffeb 40
d420e249 41 Int_t debug = 0;
42
2b556440 43 // --- Possibly use plug-in for this -------------------------------
44 if ((name && name[0] != '\0') && gSystem->Load("libRAliEn") >= 0) {
45
46 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/trains/TrainSetup.C+");
47 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/trains/MakeFlowTrain.C+");
48
4b5b52b7 49 char* tok = strtok(name, " ,:");
50 TString server = "", dataset = "", datadir = "", jobname = "";
51 if (tok[0] == NULL) Fatal("Input name invalid!");
52 if (strcmp(tok, "hehi00.nbi.dk") == 0) {
53 server = tok;
54 dataset = data;
55 datadir = "";
56 tok = strtok(NULL, " ,:");
57 jobname = tok;
58 } else {
59 server = Form("workers=%d", proof);
60 dataset = "";
61 datadir = data;
62 jobname = tok;
63 }
64 printf("Making flow train on server: %s\t with datadir: %s\t on dataset: %s\n",
65 server.Data(), datadir.Data(), dataset.Data());
66
67 MakeFlowTrain t(jobname.Data(), type.Data(), mc, addFlow.Data(), addFType, addFOrder, false);
d420e249 68 t.SetUseDispVtx(dispVtx);
4b5b52b7 69 t.SetProofServer(server.Data());
70 t.SetDataDir(datadir.Data());
71 t.SetDataSet(dataset.Data());
d420e249 72 t.SetDebugLevel(debug);
2b556440 73 t.SetUseGDB(gdb);
4b5b52b7 74 t.Run("proof", "full", nEvents, proof > 0);
75
2b556440 76 return;
9d05ffeb 77 }
78
9453b19e 79 // --- Set the macro path ------------------------------------------
bd6f5206 80 gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWGLF/FORWARD/analysis2:"
9453b19e 81 "$ALICE_ROOT/ANALYSIS/macros",
82 gROOT->GetMacroPath()));
83
58f5fae2 84 // --- Add to chain either AOD ------------------------------------
4b5b52b7 85 if (data == '\0') {
d226802c 86 AliError("You didn't add a data file");
87 return;
88 }
2b556440 89 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/scripts/MakeChain.C");
4b5b52b7 90 TChain* chain = MakeChain("AOD", data, true);
2b556440 91 // If 0 or less events is select, choose all
92 if (nEvents <= 0) nEvents = chain->GetEntries();
58f5fae2 93
94 // --- Initiate the event handlers --------------------------------
d226802c 95 AliAnalysisManager *mgr = new AliAnalysisManager("Forward Flow",
96 "Flow in the forward region");
9d05ffeb 97
98 // --- AOD input handler -------------------------------------------
99 AliAODInputHandler *aodInputHandler = new AliAODInputHandler();
d226802c 100 mgr->SetInputEventHandler(aodInputHandler);
9d05ffeb 101
9d05ffeb 102 // --- Add the tasks ---------------------------------------------
9453b19e 103 gROOT->LoadMacro("AddTaskForwardFlow.C");
d420e249 104 AddTaskForwardFlow(type, mc, dispVtx, addFlow, addFType, addFOrder);
105 mgr->SetDebugLevel(debug);
9d05ffeb 106
107 // --- Run the analysis --------------------------------------------
108 TStopwatch t;
109 if (!mgr->InitAnalysis()) {
110 Error("MakeFlow", "Failed to initialize analysis train!");
111 return;
112 }
113 mgr->PrintStatus();
d226802c 114 Printf("****************************************");
2b556440 115 Printf("Doing flow analysis on %d Events", nEvents);
d226802c 116 Printf("****************************************");
9453b19e 117 //
2b556440 118 if (mgr->GetDebugLevel() < 1)
119 mgr->SetUseProgressBar(kTRUE, nEvents < 10000 ? 100 : 1000);
d226802c 120
121// mgr->SetSkipTerminate(true);
9d05ffeb 122
123 t.Start();
2b556440 124 mgr->StartAnalysis("local", chain, nEvents);
9d05ffeb 125 t.Stop();
126 t.Print();
127}
58f5fae2 128//----------------------------------------------------------------
9d05ffeb 129//
130// EOF
131//