2 * Script to set-up a train
5 * @param mc Whether to do MC or not
6 * @param nEvents Number of events
7 * @param nCutBins Bins to cut away
10 * @ingroup pwg2_forward_analysis_scripts
12 void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
13 Int_t nCutBins=1, Float_t correctionCut=0.1,
16 gSystem->Load("libVMC");
17 gSystem->Load("libTree");
19 gSystem->Load("libSTEERBase");
21 gSystem->Load("libESD") ;
22 gSystem->Load("libAOD") ;
23 gSystem->Load("libANALYSIS");
24 gSystem->Load("libANALYSISalice");
26 gSystem->Load("libPhysics");
27 gSystem->Load("libPWG0base");
28 gSystem->Load("libPWG0dep");
29 gSystem->Load("libPWG2forward");
30 gSystem->Load("libPWG2forward2");
33 gEnv->SetValue("Proof.GlobalPackageDirs",
35 gEnv->GetValue("Proof.GlobalPackageDirs", "."),
36 gSystem->Getenv("ALICE_ROOT")));
37 Info("RunManager", "PAR path=%s",
38 gEnv->GetValue("Proof.GlobalPackageDirs", "."));
39 TProof::Open("workers=1");
40 const char* pkgs[] = { "STEERBase", "ESD", "AOD", "ANALYSIS",
41 "ANALYSISalice", "PWG2forward", "PWG2forward2", 0};
42 const char** pkg = pkgs;
44 gProof->UploadPackage(Form("${ALICE_ROOT}/%s.par",*pkg));
45 gProof->EnablePackage(*pkg);
48 gProof->ShowPackages();
51 //You can expand this chain if you have more data :-)
52 TChain* chain = new TChain("esdTree");
55 //Creating the manager and handlers
56 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train",
57 "FMD analysis train");
58 AliESDInputHandler *esdHandler = new AliESDInputHandler();
59 esdHandler->SetInactiveBranches("AliESDACORDE "
60 "AliRawDataErrorLogs "
71 mgr->SetInputEventHandler(esdHandler);
74 // Monte Carlo handler
75 // AliMCEventHandler* mcHandler = new AliMCEventHandler();
76 // mgr->SetMCtruthEventHandler(mcHandler);
77 // mcHandler->SetReadTR(readTR);
80 AliAODHandler* aodHandler = new AliAODHandler();
81 mgr->SetOutputEventHandler(aodHandler);
82 aodHandler->SetOutputFileName("foo.root");
84 gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
85 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
86 AliAnalysisTask* task = AddTaskFMD(nCutBins, correctionCut);
87 mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
89 task = AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
90 mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
95 if (!mgr->InitAnalysis()) {
96 Error("RunManager", "Failed to initialize analysis train!");
99 // Some informative output
101 mgr->SetUseProgressBar(kTRUE);
103 // Write train to file - a test
105 TDirectory* savDir = gDirectory;
106 TFile* file = TFile::Open("analysisTrain.root", "RECREATE");
114 mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);