4 * @ingroup pwg2_forward_scripts
8 * Run first pass of the analysis - that is read in ESD and produce AOD
10 * @param esddir ESD input directory. Any file matching the pattern
11 * *AliESDs*.root are added to the chain
12 * @param nEvents Number of events to process. If 0 or less, then
13 * all events are analysed
14 * @param proof Run in proof mode
15 * @param mc Run over MC data
17 * If PROOF mode is selected, then Terminate will be run on the master node
21 * @ingroup pwg2_forward_scripts
23 void MakeAOD(const char* esddir,
28 // --- Libraries to load -------------------------------------------
29 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
31 // --- Check for proof mode, and possibly upload pars --------------
33 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadPars.C");
37 // --- Our data chain ----------------------------------------------
38 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/MakeESDChain.C");
39 TChain* chain = MakeESDChain(esddir,true);
40 // If 0 or less events is select, choose all
41 if (nEvents <= 0) nEvents = chain->GetEntries();
43 // --- Creating the manager and handlers ---------------------------
44 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train",
45 "FMD analysis train");
47 // --- ESD input handler -------------------------------------------
48 AliESDInputHandler *esdHandler = new AliESDInputHandler();
49 esdHandler->SetInactiveBranches(// "AliESDRun "
73 "AliRawDataErrorLogs "
76 mgr->SetInputEventHandler(esdHandler);
78 // --- Monte Carlo handler -----------------------------------------
80 AliMCEventHandler* mcHandler = new AliMCEventHandler();
81 mgr->SetMCtruthEventHandler(mcHandler);
82 mcHandler->SetReadTR(true);
85 // --- AOD output handler ------------------------------------------
86 AliAODHandler* aodHandler = new AliAODHandler();
87 mgr->SetOutputEventHandler(aodHandler);
88 aodHandler->SetOutputFileName("AliAODs.root");
90 // --- Add tasks ---------------------------------------------------
92 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
93 AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
97 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/Compile.C");
99 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCopyHeader.C","+");
101 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/AliESDCentrality.C","+g");
106 // Central multiplicity
107 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCentralMult.C","+");
108 AddTaskCentralMult();
112 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
116 // --- Run the analysis --------------------------------------------
118 if (!mgr->InitAnalysis()) {
119 Error("MakeAOD", "Failed to initialize analysis train!");
122 // Skip terminate if we're so requested and not in Proof or full mode
123 mgr->SetSkipTerminate(false);
124 // Some informative output
126 // mgr->SetDebugLevel(3);
127 if (mgr->GetDebugLevel() < 1 && !proof)
128 mgr->SetUseProgressBar(kTRUE);
132 Printf("=== RUNNING ANALYSIS ==================================");
133 mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);