]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/MakeAOD.C
Various improvements
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / MakeAOD.C
CommitLineData
7c1a1f1d 1/**
2 * @file
3 *
4 * @ingroup pwg2_forward_scripts
5 */
c389303e 6
7/**
8 * Run first pass of the analysis - that is read in ESD and produce AOD
9 *
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
0171f148 14 * @param proof Run in proof mode
15 * @param mc Run over MC data
c389303e 16 *
17 * If PROOF mode is selected, then Terminate will be run on the master node
18 * in any case.
19 *
7e4038b5 20 *
7c1a1f1d 21 * @ingroup pwg2_forward_scripts
7e4038b5 22 */
0171f148 23void MakeAOD(const char* esddir,
1174780f 24 Int_t nEvents=-1,
25 Int_t proof=0,
0171f148 26 Bool_t mc=false)
7e4038b5 27{
da60d315 28 // --- Libraries to load -------------------------------------------
0bd4b00f 29 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
2d68d438 30
da60d315 31 // --- Check for proof mode, and possibly upload pars --------------
1174780f 32 if (proof> 0) {
33 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadPars.C");
34 LoadPars(proof);
35 }
7e4038b5 36
da60d315 37 // --- Our data chain ----------------------------------------------
0bd4b00f 38 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/MakeESDChain.C");
1174780f 39 TChain* chain = MakeESDChain(esddir,true);
c389303e 40 // If 0 or less events is select, choose all
41 if (nEvents <= 0) nEvents = chain->GetEntries();
da60d315 42
43 // --- Creating the manager and handlers ---------------------------
7e4038b5 44 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train",
45 "FMD analysis train");
fea27ee0 46
0171f148 47 // --- ESD input handler -------------------------------------------
7e4038b5 48 AliESDInputHandler *esdHandler = new AliESDInputHandler();
cc83fca2 49 esdHandler->SetInactiveBranches(// "AliESDRun "
50 // "AliESDHeader "
51 // "AliESDZDC "
52 // "AliESDFMD "
53 // "AliESDVZERO "
54 "AliESDTZERO "
55 "TPCVertex "
56 // "SPDVertex "
57 // "PrimaryVertex "
58 // "AliMultiplicity "
59 "PHOSTrigger "
7e4038b5 60 "EMCALTrigger "
cc83fca2 61 "SPDPileupVertices "
62 "TrkPileupVertices "
63 "Tracks "
64 "MuonTracks "
65 "PmdTracks "
7e4038b5 66 "TrdTracks "
cc83fca2 67 "V0s "
68 "Cascades "
69 "Kinks "
70 "CaloClusters "
71 "EMCALLCells "
72 "PHOSCells "
73 "AliRawDataErrorLogs "
74 "ALIESDCACORDE "
2d68d438 75 "HLTGlobalTrigger");
7e4038b5 76 mgr->SetInputEventHandler(esdHandler);
77
0171f148 78 // --- Monte Carlo handler -----------------------------------------
79 if (mc) {
c389303e 80 AliMCEventHandler* mcHandler = new AliMCEventHandler();
81 mgr->SetMCtruthEventHandler(mcHandler);
0171f148 82 mcHandler->SetReadTR(true);
c389303e 83 }
0171f148 84
85 // --- AOD output handler ------------------------------------------
7e4038b5 86 AliAODHandler* aodHandler = new AliAODHandler();
87 mgr->SetOutputEventHandler(aodHandler);
fea27ee0 88 aodHandler->SetOutputFileName("AliAODs.root");
da60d315 89
90 // --- Add tasks ---------------------------------------------------
1174780f 91 // Physics selection
7e4038b5 92 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
0171f148 93 AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
1174780f 94
cc83fca2 95#if 1
1174780f 96 // Centrality
97 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/Compile.C");
98 // gDebug = 10;
99 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCopyHeader.C","+");
cc83fca2 100 // gDebug = 10;
101 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/AliESDCentrality.C","+g");
1174780f 102 // gDebug = 0;
103 AddTaskCopyHeader();
104#endif
105
106 // FMD
107 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
108 AddTaskFMD(mc);
109
7e4038b5 110
da60d315 111 // --- Run the analysis --------------------------------------------
7e4038b5 112 TStopwatch t;
9d99b0dd 113 if (!mgr->InitAnalysis()) {
0171f148 114 Error("MakeAOD", "Failed to initialize analysis train!");
9d99b0dd 115 return;
116 }
c389303e 117 // Skip terminate if we're so requested and not in Proof or full mode
0171f148 118 mgr->SetSkipTerminate(false);
9d99b0dd 119 // Some informative output
120 mgr->PrintStatus();
da60d315 121 // mgr->SetDebugLevel(3);
0171f148 122 if (mgr->GetDebugLevel() < 1 && !proof)
da60d315 123 mgr->SetUseProgressBar(kTRUE);
2d68d438 124
9d99b0dd 125 // Run the train
126 t.Start();
0171f148 127 Printf("=== RUNNING ANALYSIS ==================================");
128 mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);
9d99b0dd 129 t.Stop();
130 t.Print();
7e4038b5 131}
132//
133// EOF
134//