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/MakeChain.C");
39 TChain* chain = MakeChain("ESD", 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("Forward Train",
45 "Forward multiplicity");
46 AliAnalysisManager::SetCommonFileName("forward.root");
48 // --- ESD input handler -------------------------------------------
49 AliESDInputHandler *esdHandler = new AliESDInputHandler();
50 esdHandler->SetInactiveBranches(// "AliESDRun "
74 "AliRawDataErrorLogs "
77 mgr->SetInputEventHandler(esdHandler);
79 // --- Monte Carlo handler -----------------------------------------
81 AliMCEventHandler* mcHandler = new AliMCEventHandler();
82 mgr->SetMCtruthEventHandler(mcHandler);
83 mcHandler->SetReadTR(true);
86 // --- AOD output handler ------------------------------------------
87 AliAODHandler* aodHandler = new AliAODHandler();
88 mgr->SetOutputEventHandler(aodHandler);
89 aodHandler->SetOutputFileName("AliAODs.root");
91 // --- Add tasks ---------------------------------------------------
93 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
94 AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
98 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/Compile.C");
99 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCopyHeader.C","");
100 // Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/AliESDCentrality.C","");
104 // Central multiplicity
105 // Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCentralMult.C","");
106 // AddTaskCentralMult();
110 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
114 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCentral.C");
117 // --- Run the analysis --------------------------------------------
119 if (!mgr->InitAnalysis()) {
120 Error("MakeAOD", "Failed to initialize analysis train!");
123 // Skip terminate if we're so requested and not in Proof or full mode
124 mgr->SetSkipTerminate(false);
125 // Some informative output
127 // mgr->SetDebugLevel(3);
128 if (mgr->GetDebugLevel() < 1 && !proof)
129 mgr->SetUseProgressBar(kTRUE,100);
133 Printf("=== RUNNING ANALYSIS ==================================");
134 mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);