B2 analysis code
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / B2 / macros / Config_Deuteron_TOF_LHC10x.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 // LHC10x config for deuterons and antideuterons\r
17 // author: Eulogio Serradilla <eulogio.serradilla@cern.ch>\r
18 \r
19 #include <TROOT.h>\r
20 #include <TString.h>\r
21 #include "AliLnDriver.h"\r
22 #include "Config.h"\r
23 \r
24 Int_t Config_Deuteron_TOF_LHC10x(const TString& inputDir   = "~/alice/input",\r
25                                  const TString& outputDir  = "~/alice/output",\r
26                                  const TString& period     = "lhc10d",\r
27                                  const TString& outputTag  = "lhc10d",\r
28                                  const TString& multTag    = "",\r
29                                  const TString& multCorTag = "",\r
30                                  Bool_t normToInel         = 1,  // for mult\r
31                                  Bool_t drawOutput         = 1)  // for batch\r
32 {\r
33 //\r
34 // lhc10b, lhc10c, lhc10d, lhc10e config for deuterons and antideuterons\r
35 //\r
36         const TString  kSpecies     = "Deuteron";\r
37         const TString  kTrkSel      = "its_tpc_tof_dca-tpc3";\r
38         const TString  kTrigName    = "mbor";\r
39         const Bool_t   kVtxCorr     = 0;\r
40         const Double_t kVtxCorrVal  = GetVertexCorrection(period);\r
41         const Int_t    kPtBin[2]    = {4,13};\r
42         const Int_t    kM2Bin[2]    = {8,18};\r
43         const Bool_t   kPidM2       = 1;\r
44         const Bool_t   kUnfolding   = 1;\r
45         const Int_t    kIter        = 5;\r
46         const Bool_t   kFakeTracks  = 0;\r
47         const Bool_t   kSecondaries = 1;\r
48         const Int_t    kSecProd     = 0; // 0 tff, 1 roofit, 2 mc\r
49         const Int_t    kMatDCAxyMod = 1; // 0 geant, 1 flat\r
50         const Int_t    kNbin        = 5;\r
51         const Double_t kDCAxy[2]    = {-0.2,0.2};\r
52         const Double_t kM2Bkg[2]    = {2.2,5.};\r
53         const Double_t kM2tpc[2]    = {2.,6.5};\r
54         const Bool_t   kEfficiency  = 1;\r
55         const Bool_t   kFitFrac     = 1;\r
56         const Double_t kSysErr[2]   = {0.10, 0.11} ;\r
57         \r
58         Double_t xsec[3];\r
59         GetInelXSection(xsec, period);\r
60         \r
61         Double_t trigEff[3];\r
62         GetTriggerEfficiency(trigEff, kTrigName, period);\r
63         \r
64         // input and output filenames\r
65         \r
66         TString inputData     = inputDir + "/" + period + "/" + MakeInputName(kSpecies, period, kTrkSel+multTag) + ".root";\r
67         TString inputSimu     = inputDir + "/" + period + "/" + MakeSimuName(kSpecies, period, kTrkSel+multCorTag) + ".root";\r
68         TString inputSimuFix  = inputDir + "/" + period + "/" + MakeSimuFixName(kSpecies, period, kTrkSel+multCorTag) + ".root";\r
69         TString inputCorr     = inputDir + "/" + period + "/" + MakeInputName(kSpecies, period, kTrkSel+multTag) + "-corr.root";\r
70         \r
71         TString outputPt      = outputDir + "/" + MakeOutputName(kSpecies, outputTag) + "-Pt.root";\r
72         TString outputRatio   = outputDir + "/" + MakeOutputName(kSpecies, outputTag) + "-Ratio.root";\r
73         TString outputSpectra = outputDir + "/" + MakeOutputName(kSpecies, outputTag) + "-Spectra.root";\r
74         \r
75         // configure the driver and run\r
76         \r
77         AliLnDriver driver;\r
78         \r
79         driver.SetSpecies(kSpecies);\r
80         \r
81         driver.SetInputFilenames(inputData, inputSimu, inputSimuFix, inputCorr);\r
82         driver.SetOutputFilenames(outputPt, outputRatio, outputSpectra);\r
83         \r
84         driver.SetOutputTag(outputTag);\r
85         driver.SetTriggerEfficiency(trigEff);\r
86         driver.SetInelXSection(xsec);\r
87         driver.SetNormalizeToINEL(normToInel);\r
88         driver.SetVertexCorrection(kVtxCorr, kVtxCorrVal);\r
89         driver.SetPtBinInterval(kPtBin[0], kPtBin[1]);\r
90         driver.SetPidM2(kPidM2);\r
91         driver.SetM2BinInterval(kM2Bin[0], kM2Bin[1]);\r
92         driver.SetM2BkgInterval(kM2Bkg[0], kM2Bkg[1]);\r
93         driver.SetM2TPCInterval(kM2tpc[0], kM2tpc[1]);\r
94         driver.SetUnfolding(kUnfolding, kIter);\r
95         driver.SetFakeTracks(kFakeTracks);\r
96         driver.SetSecondaries(kSecondaries);\r
97         driver.SetSecProd(kSecProd);\r
98         driver.SetMatDCAxyModel(kMatDCAxyMod);\r
99         driver.SetNBin(kNbin);\r
100         driver.SetDCAxyInterval(kDCAxy[0], kDCAxy[1]);\r
101         driver.SetEfficiency(kEfficiency,0);\r
102         driver.SetFitFractionCorr(kFitFrac);\r
103         driver.SetSysErr(kSysErr[0],kSysErr[1]);\r
104         \r
105         driver.Run();\r
106         \r
107         // draw output\r
108         \r
109         if(!drawOutput) return 0;\r
110         \r
111         TStyle* st = GetDrawingStyle();\r
112         st->cd();\r
113         gROOT->ForceStyle();\r
114         \r
115         DrawOutputCorr(kSpecies,inputCorr);\r
116         \r
117         if(kSecProd != 2) gROOT->ProcessLine(Form(".x DrawSec.C+g(\"%s\",\"\",\"Deuteron\", %d, %d, %f, %f)", driver.GetPtCorrDebugFilename().Data(), kPtBin[0], kPtBin[1], kDCAxy[0], kDCAxy[1]));\r
118         \r
119         DrawPtDebug(driver.GetPtDebugFilename(), outputTag, kSpecies, kPidM2, kM2Bin[0], kM2Bin[1]);\r
120         DrawOutputRatio(outputRatio, outputTag, kSpecies);\r
121         DrawOutputSpectra(outputSpectra, outputTag, kSpecies);\r
122         \r
123         return 0;\r
124 }\r