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->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadPars.C");
35 // --- Our data chain ----------------------------------------------
36 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/MakeESDChain.C");
37 TChain* chain = MakeESDChain(esddir,mc);
38 // If 0 or less events is select, choose all
39 if (nEvents <= 0) nEvents = chain->GetEntries();
41 // --- Creating the manager and handlers ---------------------------
42 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train",
43 "FMD analysis train");
45 // --- ESD input handler -------------------------------------------
46 AliESDInputHandler *esdHandler = new AliESDInputHandler();
47 esdHandler->SetInactiveBranches("AliESDACORDE "
48 "AliRawDataErrorLogs "
59 mgr->SetInputEventHandler(esdHandler);
61 // --- Monte Carlo handler -----------------------------------------
63 AliMCEventHandler* mcHandler = new AliMCEventHandler();
64 mgr->SetMCtruthEventHandler(mcHandler);
65 mcHandler->SetReadTR(true);
68 // --- AOD output handler ------------------------------------------
69 AliAODHandler* aodHandler = new AliAODHandler();
70 mgr->SetOutputEventHandler(aodHandler);
71 aodHandler->SetOutputFileName("AliAODs.root");
73 // --- Add tasks ---------------------------------------------------
74 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
75 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
77 AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
79 // --- Run the analysis --------------------------------------------
81 if (!mgr->InitAnalysis()) {
82 Error("MakeAOD", "Failed to initialize analysis train!");
85 // Skip terminate if we're so requested and not in Proof or full mode
86 mgr->SetSkipTerminate(false);
87 // Some informative output
89 // mgr->SetDebugLevel(3);
90 if (mgr->GetDebugLevel() < 1 && !proof)
91 mgr->SetUseProgressBar(kTRUE);
95 Printf("=== RUNNING ANALYSIS ==================================");
96 mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);