]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/MakeAOD.C
removing the setting of AOD track references for TPC only tracks
[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 "
3a08cca0 63 // "Tracks "
cc83fca2 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();
3a08cca0 104
105
106 // Central multiplicity
107 Compile("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskCentralMult.C","+");
108 AddTaskCentralMult();
1174780f 109#endif
110
111 // FMD
112 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
113 AddTaskFMD(mc);
114
7e4038b5 115
da60d315 116 // --- Run the analysis --------------------------------------------
7e4038b5 117 TStopwatch t;
9d99b0dd 118 if (!mgr->InitAnalysis()) {
0171f148 119 Error("MakeAOD", "Failed to initialize analysis train!");
9d99b0dd 120 return;
121 }
c389303e 122 // Skip terminate if we're so requested and not in Proof or full mode
0171f148 123 mgr->SetSkipTerminate(false);
9d99b0dd 124 // Some informative output
125 mgr->PrintStatus();
da60d315 126 // mgr->SetDebugLevel(3);
0171f148 127 if (mgr->GetDebugLevel() < 1 && !proof)
da60d315 128 mgr->SetUseProgressBar(kTRUE);
2d68d438 129
9d99b0dd 130 // Run the train
131 t.Start();
0171f148 132 Printf("=== RUNNING ANALYSIS ==================================");
133 mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);
9d99b0dd 134 t.Stop();
135 t.Print();
7e4038b5 136}
137//
138// EOF
139//