1 //====================================================================
3 * Analysis train to do energy loss fits
5 * @ingroup pwglf_forward_trains
7 class MakeFMDELossTrain : public TrainSetup
11 * Constructor. Date and time must be specified when running this
12 * in Termiante mode on Grid
14 * @param name Name of train
15 * @param useCent Whether to use centrality or not
16 * @param dateTime Append date and time to name
23 MakeFMDELossTrain(const char* name = "FMD Energy Loss",
24 Bool_t useCent = false,
25 Bool_t dateTime = false,
31 : TrainSetup(name, dateTime, year, month, day, hour, min),
34 //__________________________________________________________________
39 * @param oper Operation
40 * @param nEvents Number of events (negative means all)
41 * @param mc If true, assume simulated events
42 * @param par IF true, use par files
44 void Run(const char* mode, const char* oper,
45 Int_t nEvents=-1, Bool_t mc=false, Bool_t par=false)
47 Exec("ESD", mode, oper, nEvents, mc, par);
49 //__________________________________________________________________
54 * @param oper Operation
55 * @param nEvents Number of events (negative means all)
56 * @param mc If true, assume simulated events
57 * @param par IF true, use par files
59 void Run(EMode mode, EOper oper, Int_t nEvents=-1, Bool_t mc=false,
62 Exec(kESD, mode, oper, nEvents, mc, par);
65 //__________________________________________________________________
69 * @param mode Processing mode
70 * @param par Whether to use par files
71 * @param mgr Analysis manager
73 void CreateTasks(EMode mode, Bool_t par, AliAnalysisManager* mgr)
75 // --- Output file name ------------------------------------------
76 AliAnalysisManager::SetCommonFileName("forward_eloss.root");
78 // --- Load libraries/pars ---------------------------------------
79 LoadLibrary("PWGLFforward2", mode, par, true);
81 // --- Set load path ---------------------------------------------
82 gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWGLF/FORWARD/analysis2",
83 gROOT->GetMacroPath()));
85 // --- Check if this is MC ---------------------------------------
86 Bool_t mc = mgr->GetMCtruthEventHandler() != 0;
88 // --- Add the task ----------------------------------------------
89 gROOT->Macro(Form("AddTaskFMDELoss.C(%d,%d)", mc, fUseCent));
92 * Create entrality selection if enabled
94 * @param mc Whether this is MC or not
95 * @param mgr Analysis manager
97 virtual void CreateCentralitySelection(Bool_t mc, AliAnalysisManager* mgr)
99 if (!fUseCent) return;
101 gROOT->Macro("AddTaskCentrality.C");
102 AliCentralitySelectionTask* ctask =
103 dynamic_cast<AliCentralitySelectionTask*>(mgr->GetTask("CentralitySelection"));
105 ctask->SetPass(fESDPass);
106 if (mc) ctask->SetMCInput();
109 * Crete output handler - we don't want one here.
113 AliVEventHandler* CreateOutputHandler(EType) { return 0; }
114 Bool_t fUseCent; // Whether to use centrality or not