Adding AOD task for FMDEventPlaneFinder
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / trains / MakeFMDEventPlaneTrain.C
1 #include "TrainSetup.C"
2
3 //====================================================================
4 /**
5  * Analysis train to make @f$ flow@f$
6  * 
7  * To run, do 
8  * @code 
9  * gROOT->LoadMacro("TrainSetup.C");
10  * // Make train 
11  * MakeFMDEventPlaneTrain t("My Analysis");
12  * // Set variaous parameters on the train 
13  * t.SetDataDir("/home/of/data");
14  * t.AddRun(118506)
15  * // Run it 
16  * t.Run("LOCAL", "FULL", -1, false, false);
17  * @endcode 
18  *
19  * @ingroup pwglf_forward_flow
20  * @ingroup pwglf_forward_trains
21  */
22 class MakeFMDEventPlaneTrain : public TrainSetup
23 {
24 public:
25   /** 
26    * Constructor.  Date and time must be specified when running this
27    * in Termiante mode on Grid
28    * 
29    * @param name     Name of train (free form)
30    * @param dateTime Append date and time to name 
31    * @param year     Year     - if not specified, current year
32    * @param month    Month    - if not specified, current month
33    * @param day      Day      - if not specified, current day
34    * @param hour     Hour     - if not specified, current hour
35    * @param min      Minutes  - if not specified, current minutes
36    */
37   MakeFMDEventPlaneTrain(const char* name, 
38                 Bool_t      mc = false,
39                 Bool_t      dateTime=false,
40                 UShort_t    year  = 0, 
41                 UShort_t    month = 0, 
42                 UShort_t    day   = 0, 
43                 UShort_t    hour  = 0, 
44                 UShort_t    min   = 0) 
45     : TrainSetup(name, dateTime, year, month, day, hour, min),
46       fMC(mc)
47   {
48   }
49   /** 
50    * Run this analysis 
51    * 
52    * @param mode     Mode - see TrainSetup::EMode
53    * @param oper     Operation - see TrainSetup::EOperation
54    * @param nEvents  Number of events (negative means all)
55    * @param usePar   If true, use PARs 
56    */
57   void Run(const char* mode, const char* oper, 
58            Int_t nEvents=-1, Bool_t usePar=false)
59   {
60     Exec("AOD", mode, oper, nEvents, false, usePar);
61   }
62   /** 
63    * Run this analysis 
64    * 
65    * @param mode     Mode - see TrainSetup::EMode
66    * @param oper     Operation - see TrainSetup::EOperation
67    * @param nEvents  Number of events (negative means all)
68    * @param usePar   If true, use PARs 
69    */
70   void Run(EMode mode, EOper oper, Int_t nEvents=-1, 
71            Bool_t usePar=false)
72   {
73     Exec(kAOD, mode, oper, nEvents, false, usePar);
74   }
75 protected:
76   /** 
77    * Create the tasks 
78    * 
79    * @param mode Processing mode
80    * @param par  Whether to use par files 
81    */
82   void CreateTasks(EMode mode, Bool_t par, AliAnalysisManager*)
83   {
84     // --- Output file name ------------------------------------------
85     AliAnalysisManager::SetCommonFileName("AnalysisResults.root");
86
87     // --- Load libraries/pars ---------------------------------------
88     LoadLibrary("PWGLFforward2", mode, par, true);
89     
90     // --- Set load path ---------------------------------------------
91     gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWGLF/FORWARD/analysis2:"
92                              "$ALICE_ROOT/ANALYSIS/macros",
93                              gROOT->GetMacroPath()));
94
95     // --- Add the task ----------------------------------------------
96     gROOT->Macro(Form("AddTaskFMDEventPlane.C(%d)", fMC));
97   }
98   /** 
99    * Do not the centrality selection
100    */
101   void CreateCentralitySelection(Bool_t, AliAnalysisManager*) {}
102   /** 
103    * Crete output handler - we don't want one here. 
104    * 
105    * @return 0
106    */
107   AliVEventHandler* CreateOutputHandler(EType) { return 0; }
108   Bool_t fMC;
109 };
110 //
111 // EOF
112 //