7ec79e79d21452cead29c305794f91dd77c57c2e
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / trains / MakeMultTrain.C
1 /**
2  * @file   MakeMultTrain.C
3  * @author Valentina Zaccolo
4  * @date   Wed Nov  21 12:47:26 2012
5  * 
6  * @brief  
7  * 
8  * @ingroup pwglf_forward_trains_specific
9  * @ingroup pwglf_forward_multdist
10  * 
11  */
12 #include "TrainSetup.C"
13
14 //====================================================================
15 /**
16  * Analysis train to make @f$ Multiplicity Distributions@f$
17  * 
18  *
19  * @ingroup pwglf_forward_multdist
20  * @ingroup pwglf_forward_trains_specific
21  */
22 class MakeMultTrain : public TrainSetup
23 {
24 public:
25   /** 
26    * Constructor.  
27    * 
28    * @param name     Name of train (free form)
29    */
30  MakeMultTrain(const char* name)
31   : TrainSetup(name)
32   {
33     fOptions.Add("trig",    "TYPE",       "Trigger type",     "V0AND");
34     fOptions.Add("vzMin",   "CENTIMETER", "Min Ip Z",         -4);
35     fOptions.Add("vzMax",   "CENTIMETER", "Max Ip Z",         +4);
36     fOptions.Add("lowCent", "%",          "Min Centrality",   0); 
37     fOptions.Add("highCent","%",          "Max Centrality",   0);
38     fOptions.Add("nBins",   "N",          "Max Multiplicity", 500);
39   }
40 protected:
41   /** 
42    * Create the tasks 
43    */
44   void CreateTasks(AliAnalysisManager*)
45   {
46     // --- Output file name ------------------------------------------
47     AliAnalysisManager::SetCommonFileName("forward_multiplicity.root");
48
49     // --- Load libraries/pars ---------------------------------------
50     fHelper->LoadLibrary("PWGLFforward2");
51     
52     // --- Set load path ---------------------------------------------
53     gROOT->SetMacroPath(Form("%s:$(ALICE_ROOT)/PWGLF/FORWARD/analysis2",
54                              gROOT->GetMacroPath()));
55
56     // --- Get parameters --------------------------------------------
57     TString  trig     = fOptions.Get("trig");
58     Double_t vzMin    = fOptions.AsDouble("vzmin", -4);
59     Double_t vzMax    = fOptions.AsDouble("vzmax", +4);
60     Int_t    lowCent  = fOptions.AsInt("lowCent",  0);
61     Int_t    highCent = fOptions.AsInt("highCent", 0);
62     Int_t    nBins    = fOptions.AsInt("nBins",    500);
63
64     // --- Form arguments --------------------------------------------
65     TString args;
66     args.Form("\"%s\",%f,%f,%d,%d,%d",
67               trig.Data(), vzMin, vzMax, lowCent, highCent, nBins);
68     // --- Add the task ----------------------------------------------
69     gROOT->Macro(Form("AddTaskMultDists.C(%s);", args.Data()));
70   }
71   //__________________________________________________________________
72   /** 
73    * Do not the centrality selection
74    */
75   void CreateCentralitySelection(Bool_t, AliAnalysisManager*) {}
76   //__________________________________________________________________
77   /** 
78    * Crete output handler - we don't want one here. 
79    * 
80    * @return 0
81    */
82   AliVEventHandler* CreateOutputHandler(UShort_t) { return 0; }
83   //__________________________________________________________________
84   const char* ClassName() const { return "MakeMultTrain"; }
85 };
86 //
87 // EOF
88 //