]>
Commit | Line | Data |
---|---|---|
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 | 23 | void 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 | // |