]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/Nuclei/B2/macros/LHC10bcde.C
cumulative changes for root scripts and code cleanup
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / B2 / macros / LHC10bcde.C
1 /**************************************************************************\r
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
3  *                                                                        *\r
4  * Author: The ALICE Off-line Project.                                    *\r
5  * Contributors are mentioned in the code where appropriate.              *\r
6  *                                                                        *\r
7  * Permission to use, copy, modify and distribute this software and its   *\r
8  * documentation strictly for non-commercial purposes is hereby granted   *\r
9  * without fee, provided that the above copyright notice appears in all   *\r
10  * copies and that both the copyright notice and this permission notice   *\r
11  * appear in the supporting documentation. The authors make no claims     *\r
12  * about the suitability of this software for any purpose. It is          *\r
13  * provided "as is" without express or implied warranty.                  *\r
14  **************************************************************************/\r
15 \r
16 // call Config_XXX for each period\r
17 // author: Eulogio Serradilla <eulogio.serradilla@cern.ch>\r
18 \r
19 #if !defined(__CINT__) || defined(__MAKECINT__)\r
20 #include <Riostream.h>\r
21 #include <TROOT.h>\r
22 #include <TSystem.h>\r
23 #include <TString.h>\r
24 #include <TFileMerger.h>\r
25 #include "AliLnDriver.h"\r
26 #endif\r
27 \r
28 #include "Config.h"\r
29 \r
30 Int_t LHC10bcde(  const TString& species    = "Deuteron"\r
31                 , const TString& inputDir   = "~/alice/input"\r
32                 , const TString& outputDir  = "~/alice/output"\r
33                 , const TString& outputTag  = "lhc10bcde"\r
34                 , const TString& trkselTag  = "-tpc3-nsd-moc"\r
35                 , const TString& multTag    = ""\r
36                 , const TString& multCorTag = ""\r
37                 , Double_t       ymax       = 0.5\r
38                 , Bool_t inel               = 0  // for mult\r
39                 , Bool_t drawOutput         = 1  // for batch\r
40                 , Int_t option              = 2)\r
41 {\r
42 //\r
43 // call Config_XXX for each period, merge the corrected pt and then get the results\r
44 //\r
45         const Int_t kNper = 4;\r
46         const TString kPeriod[kNper]    = { "lhc10b", "lhc10c", "lhc10d", "lhc10e" };\r
47         const TString kOutputTag[kNper] = { "lhc10b", "lhc10c", "lhc10d", "lhc10e" };\r
48         \r
49         Double_t ptmin   = (species=="Proton") ? 0.4 : 0.7;\r
50         Double_t ptjoint = (species=="Proton") ? 1.0 : 1.0;\r
51         Double_t ptmax   = (species=="Proton") ? 2.0 : 3.0;\r
52         Double_t ptpid   = (species=="Proton") ? 3.5 : 1.6;\r
53         \r
54         using namespace std;\r
55         \r
56         if( (option<0) || (option>2) || ((species != "Proton") && (species != "Deuteron")))\r
57         {\r
58                 cerr << "unknown species/option: " << species << "/" << option << endl;\r
59                 cerr << "species: Proton or Deuteron, options: 0 (TPC), 1 (TOF), 2 (TPCTOF)" << endl;\r
60                 exit(1);\r
61         }\r
62         \r
63         TFileMerger m;\r
64         \r
65         for(Int_t i=0; i<kNper; ++i)\r
66         {\r
67                 cout << endl << "Period: " << kPeriod[i] << endl;\r
68                 \r
69                 TString arg =           inputDir       + "\","\r
70                               + "\""  + outputDir      + "\","\r
71                               + "\""  + kPeriod[i]     + "\","\r
72                               + "\""  + kOutputTag[i]  + "\","\r
73                               + "\""  + trkselTag      + "\","\r
74                               + "\""  + multTag        + "\","\r
75                               + "\""  + multCorTag;\r
76                         \r
77                 switch(option)\r
78                 {\r
79                         case 0:\r
80                                 cout << "Config_" << species << "_TPC_LHC10x.C" << endl << endl;\r
81                                 gROOT->ProcessLine(Form(".x Config_%s_TPC_LHC10x.C+g(\"%s\", %f, %d, 0)", species.Data(), arg.Data(), ymax, inel));\r
82                                 break;\r
83                         case 1:\r
84                                 cout << "Config_" << species << "_LHC10x.C" << endl << endl;\r
85                                 gROOT->ProcessLine(Form(".x Config_%s_TOF_LHC10x.C+g(\"%s\", %f, %d, 0)", species.Data(), arg.Data(), ymax, inel));\r
86                                 break;\r
87                         case 2:\r
88                                 cout << "Config_TPCTOF_LHC10x.C" << endl << endl;\r
89                                 gROOT->ProcessLine(Form(".x Config_TPCTOF_LHC10x.C+g(\"%s\", %f, %d, 0, \"%s\", %f, %f, %f, %f)", arg.Data(), ymax, inel, species.Data(), ptmin, ptjoint, ptmax, ptpid));\r
90                                 break;\r
91                 }\r
92                 \r
93                 TString ptfile = outputDir + "/" + species + "-" + kOutputTag[i] + "-Pt.root";\r
94                 m.AddFile(ptfile,0);\r
95         }\r
96         \r
97         TString outputPt      = outputDir + "/" + species + "-" + outputTag + multTag + "-Pt.root";\r
98         TString outputRatio   = outputDir + "/" + species + "-" + outputTag + multTag + "-Ratio.root";\r
99         TString outputSpectra = outputDir + "/" + species + "-" + outputTag + multTag + "-Spectra.root";\r
100         \r
101         // pt\r
102         \r
103         m.OutputFile(outputPt.Data());\r
104         m.Merge();\r
105         \r
106         // spectra\r
107         \r
108         AliLnDriver driver;\r
109         \r
110         driver.SetSpecies(species);\r
111         \r
112         driver.SetOutputFilenames(outputPt, outputRatio, outputSpectra);\r
113         driver.SetOutputTag(outputTag);\r
114         \r
115         driver.SetRapidityInterval(-ymax,ymax);\r
116         driver.SetExtrapolateToINEL(inel);\r
117         \r
118         driver.SetMakeCorrections(0);\r
119         driver.SetMakePt(0);\r
120         driver.SetMakeRatio(1);\r
121         driver.SetMakeSpectra(1);\r
122         \r
123         driver.Run();\r
124         \r
125         // merge all results for comparison\r
126         \r
127         TFileMerger m2, m3;\r
128         \r
129         for(Int_t i=0; i<kNper; ++i)\r
130         {\r
131                 m2.AddFile((outputDir + "/" + species + "-" + kPeriod[i] + "-Ratio.root").Data(),0);\r
132                 m3.AddFile((outputDir + "/" + species + "-" + kPeriod[i] + "-Spectra.root").Data(),0);\r
133         }\r
134         \r
135         m2.AddFile(outputRatio.Data(),0);\r
136         m3.AddFile(outputSpectra.Data(),0);\r
137         \r
138         TString allRatios = outputDir + "/" + species + "-" + outputTag + "-2" + multTag + "-Ratio.root";\r
139         TString allSpectra = outputDir + "/" + species + "-" + outputTag + "-2" + multTag + "-Spectra.root";\r
140         \r
141         m2.OutputFile(allRatios.Data());\r
142         m3.OutputFile(allSpectra.Data());\r
143         \r
144         m2.Merge();\r
145         m3.Merge();\r
146         \r
147         // compare periods\r
148         \r
149         if(!drawOutput) return 0;\r
150         \r
151         gROOT->ProcessLine(Form(".x DrawDir.C+g(\"%s\",\"Anti%s%s_Ratio_Pt\",\"%s\",0,4.5, 0., 1.8, \"p_{T} (GeV/c)\", \"neg/pos\", 2, \"cRatio\",\"Particle ratio\")", allRatios.Data(), species.Data(), species.Data(),outputTag.Data()));\r
152         \r
153         Double_t minYield  = (species=="Proton") ? 1.1e-6 : 2.e-8;\r
154         Double_t maxYield  = (species=="Proton") ? 4.e-1  : 9.e-4;\r
155         \r
156         DrawOutputSpectraMult(allSpectra, species, minYield, maxYield, 2, outputTag);\r
157         \r
158         return 0;\r
159 }\r