2 * @file MakeELossFits.C
3 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
4 * @date Wed Mar 23 14:08:14 2011
9 * @ingroup pwg2_forward_eloss
12 * Run a pass on ESD data to produce the energ loss fits
15 * @ingroup pwg2_forward_eloss
17 void MakeELossFits(const char* esddir,
24 // --- Possibly use plug-in for this -------------------------------
25 if ((name && name[0] != '\0') && gSystem->Load("libRAliEn") >= 0) {
26 gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWG2/FORWARD/analysis2:"
27 "$ALICE_ROOT/ANALYSIS/macros",
28 gROOT->GetMacroPath()));
29 gSystem->AddIncludePath("-I${ALICE_ROOT}/include");
30 gSystem->Load("libANALYSIS");
31 gSystem->Load("libANALYSISalice");
32 gROOT->LoadMacro("TrainSetup.C+");
33 FMDELossTrain t(name, cent, false);
36 t.SetProofServer(Form("workers=%d",proof));
37 t.Run(proof > 0 ? "PROOF" : "LOCAL", "FULL", nEvents, mc, proof > 0);
41 // --- Libraries to load -------------------------------------------
42 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
44 // --- Check for proof mode, and possibly upload pars --------------
46 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadPars.C");
50 // --- Our data chain ----------------------------------------------
51 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/MakeChain.C");
52 TChain* chain = MakeChain("ESD",esddir, true);
53 // If 0 or less events is select, choose all
54 if (nEvents <= 0) nEvents = chain->GetEntries();
55 Info("MakeELossFits", "Will analyse %d events", nEvents);
57 // --- Set the macro path ------------------------------------------
58 gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWG2/FORWARD/analysis2:"
59 "$ALICE_ROOT/ANALYSIS/macros",
60 gROOT->GetMacroPath()));
62 // --- Creating the manager and handlers ---------------------------
63 AliAnalysisManager *mgr = new AliAnalysisManager("Forward ELoss Train",
64 "Forward energy loss");
65 AliAnalysisManager::SetCommonFileName("forward_eloss.root");
67 // --- ESD input handler -------------------------------------------
68 AliESDInputHandler *esdHandler = new AliESDInputHandler();
69 mgr->SetInputEventHandler(esdHandler);
71 // --- Monte Carlo handler -----------------------------------------
73 AliMCEventHandler* mcHandler = new AliMCEventHandler();
74 mgr->SetMCtruthEventHandler(mcHandler);
75 mcHandler->SetReadTR(true);
78 // --- Add tasks ---------------------------------------------------
79 gROOT->LoadMacro("AddTaskPhysicsSelection.C");
80 AddTaskPhysicsSelection(mc, kTRUE, kFALSE);
84 gROOT->LoadMacro("AddTaskCentrality.C");
89 gROOT->LoadMacro("AddTaskFMDELoss.C");
90 AddTaskFMDELoss(mc, cent);
92 // --- Run the analysis --------------------------------------------
94 if (!mgr->InitAnalysis()) {
95 Error("RunManager", "Failed to initialize analysis train!");
98 // Some informative output
100 // mgr->SetDebugLevel(3);
101 if (mgr->GetDebugLevel() < 1 && proof <= 0)
102 mgr->SetUseProgressBar(kTRUE,100);
106 Printf("=== RUNNING ANALYSIS on %9d events ========================",nEvents);
107 mgr->StartAnalysis(proof > 0 ? "proof" : "local", chain, nEvents);