]>
Commit | Line | Data |
---|---|---|
4bd4fc13 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | // | |
16 | // Class for spectrum correction | |
17 | // Subtraction of hadronic background, Unfolding of the data and | |
18 | // Renormalization done here | |
19 | // For more information see the implementation file | |
20 | // | |
21 | #ifndef ALIHFEBEAUTYSPECTRUM_H | |
22 | #define ALIHFEBEAUTYSPECTRUM_H | |
23 | ||
24 | #include "AliHFECorrectSpectrumBase.h" | |
25 | ||
26 | ||
27 | ||
28 | class TGraphErrors; | |
29 | class TObject; | |
30 | class TH1; | |
31 | class TF1; | |
32 | class TList; | |
33 | class TObjArray; | |
34 | class AliCFContainer; | |
35 | class AliHFEcontainer; | |
36 | class AliCFDataGrid; | |
37 | class AliCFEffGrid; | |
38 | class AliHFEInclusiveSpectrumQA; | |
39 | class AliHFEBeautySpectrumQA; | |
40 | ||
41 | class AliHFEBeautySpectrum : public AliHFECorrectSpectrumBase{ | |
42 | public: | |
43 | ||
44 | enum{ | |
45 | kElecBgSources = 9, | |
46 | kBgLevels = 3, | |
47 | kBgPtBins = 44, | |
48 | kSignalPtBins = 35, | |
49 | kCentrality = 12 | |
50 | }; | |
51 | ||
52 | AliHFEBeautySpectrum(const char* name); | |
53 | ~AliHFEBeautySpectrum(); | |
54 | ||
55 | ||
56 | virtual Bool_t Init(const AliHFEcontainer *datahfecontainer, const AliHFEcontainer *mchfecontainer, const AliHFEcontainer *bghfecontainer=0x0, const AliHFEcontainer */*v0hfecontainer*/ = 0x0,AliCFContainer */*photoniccontainerD*/ = 0x0); | |
57 | virtual Bool_t Correct(Bool_t subtractcontamination=kTRUE, Bool_t /*subtractphotonic*/=kFALSE); | |
58 | ||
59 | AliCFDataGrid *SubtractBackground(Bool_t setBackground = kFALSE); | |
60 | ||
61 | AliCFDataGrid *CorrectParametrizedEfficiency(AliCFDataGrid* const bgsubpectrum = 0x0); | |
62 | ||
63 | THnSparse *Unfold(AliCFDataGrid* const bgsubpectrum = 0x0); | |
64 | void UnfoldBG(AliCFDataGrid* const bgsubpectrum); | |
65 | AliCFDataGrid *CorrectForEfficiency(AliCFDataGrid* const bgsubpectrum = 0x0); | |
66 | ||
67 | void SetPbPbAnalysis(Bool_t isPbPb = kFALSE) { fBeamType=(Char_t) isPbPb; }; | |
68 | void SetEtaSyst(Bool_t etaSyst = kTRUE) { fEtaSyst = etaSyst; }; | |
69 | ||
70 | void SetParameterizedEff(AliCFContainer *container, AliCFContainer *containermb, AliCFContainer *containeresd, AliCFContainer *containeresdmb, Int_t *dimensions); | |
71 | ||
72 | void SetNumberOfMCEvents(Int_t nEvents) { fNMCEvents = nEvents; }; | |
73 | void SetNumberOfMC2Events(Int_t nEvents) { fNMCbgEvents = nEvents; }; | |
74 | void SetUnSetCorrelatedErrors(Bool_t unsetcorrelatederrors) {fUnSetCorrelatedErrors = unsetcorrelatederrors;}; | |
75 | void SetFillMoreCorrelationMatrix(Bool_t fillMoreCorrelationMatrix) { fFillMoreCorrelationMatrix = fillMoreCorrelationMatrix;} | |
76 | ||
77 | void SetNCentralityBinAtTheEnd(Int_t nCentralityBinAtTheEnd) {fNCentralityBinAtTheEnd = nCentralityBinAtTheEnd; }; | |
78 | void SetLowHighBoundaryCentralityBinAtTheEnd(Int_t low, Int_t high, Int_t i) { fLowBoundaryCentralityBinAtTheEnd[i] = low; fHighBoundaryCentralityBinAtTheEnd[i] = high;}; | |
79 | ||
80 | void CallInputFileForBeauty2ndMethod(); | |
81 | void SetInputFileForBeauty2ndMethod(const char *filenameb = "BSpectrum2ndmethod.root"){fkBeauty2ndMethodfilename = filenameb; }; | |
82 | void SetBeautyAnalysis2ndMethod(Bool_t beauty2ndmethod) { fBeauty2ndMethod = beauty2ndmethod; } | |
83 | void SetIPEffCombinedSamples(Bool_t ipEffCombinedSamples) { fIPEffCombinedSamples = ipEffCombinedSamples; } | |
84 | void SetHadronEffbyIPcut(THnSparseF* hsHadronEffbyIPcut) { fHadronEffbyIPcut = hsHadronEffbyIPcut;}; | |
85 | void SetNonHFEsyst(Bool_t syst){ fNonHFEsyst = syst; }; | |
86 | ||
87 | void SetDumpToFile(Bool_t dumpToFile) { fDumpToFile=dumpToFile; }; | |
88 | ||
89 | void SetDebugLevel(Int_t debugLevel, Bool_t writeToFile = kFALSE) { fDebugLevel = debugLevel; fWriteToFile = writeToFile; }; | |
90 | void SetUnfoldBG() { fUnfoldBG = kTRUE; }; | |
91 | ||
92 | ||
93 | AliCFDataGrid* GetRawBspectra2ndMethod(); | |
94 | AliCFDataGrid* GetCharmBackground(); | |
95 | AliCFDataGrid* GetNonHFEBackground(Int_t decay = 0, Int_t source = 0); | |
96 | THnSparse* GetCharmWeights(Int_t centBin); | |
97 | THnSparse* GetBeautyIPEff(Bool_t isMCpt); | |
98 | THnSparse* GetPIDxIPEff(Int_t source); | |
99 | void CalculateNonHFEsyst(); | |
100 | ||
101 | void EnableIPanaHadronBgSubtract() { fIPanaHadronBgSubtract = kTRUE; }; | |
102 | void EnableIPanaCharmBgSubtract() { fIPanaCharmBgSubtract = kTRUE; }; | |
103 | void EnableIPanaNonHFEBgSubtract() { fIPanaNonHFEBgSubtract = kTRUE; }; | |
104 | void EnableIPParameterizedEff() { fIPParameterizedEff = kTRUE; }; | |
105 | ||
106 | protected: | |
107 | void AddTemporaryObject(TObject *cont); | |
108 | void ClearObject(TObject *o); | |
109 | ||
110 | private: | |
111 | AliHFEBeautySpectrum(const AliHFEBeautySpectrum &ref); | |
112 | AliHFEBeautySpectrum &operator=(const AliHFEBeautySpectrum &ref); | |
113 | virtual void Copy(TObject &o) const; | |
114 | ||
115 | AliHFEBeautySpectrumQA *fQA; // Beauty QA | |
116 | ||
117 | //shift some of the following to QA or Base class: | |
118 | TList *fTemporaryObjects; // Emulate garbage collection | |
119 | AliCFDataGrid *fBackground; // Background Grid | |
120 | TF1 *fEfficiencyTOFPIDD; // TOF PID efficiency parameterized | |
121 | TF1 *fEfficiencyesdTOFPIDD; // TOF PID efficiency parameterized | |
122 | TF1 *fEfficiencyIPCharmD; // IP efficiency parameterized for charm | |
123 | TF1 *fEfficiencyIPBeautyD; // IP efficiency parameterized for beauty | |
124 | TF1 *fEfficiencyIPBeautyesdD; // IP efficiency parameterized for beauty for esd | |
125 | TF1 *fEfficiencyIPConversionD; // IP efficiency parameterized for conversion | |
126 | TF1 *fEfficiencyIPNonhfeD; // IP efficiency parameterized for nonhfe | |
127 | TF1 *fNonHFEbg; // Efficiency Function | |
128 | THnSparseF *fWeightCharm; // Weight for charm bg | |
129 | ||
130 | AliCFContainer *fConvSourceContainer[kElecBgSources][kBgLevels]; //container for conversion electrons, divided into different photon sources | |
131 | AliCFContainer *fNonHFESourceContainer[kElecBgSources][kBgLevels]; //container for non-HF electrons, divided into different sources | |
132 | ||
133 | Bool_t fInclusiveSpectrum; // Inclusive Spectrum | |
134 | Bool_t fDumpToFile; // Write Result in a file | |
135 | ||
136 | Bool_t fUnSetCorrelatedErrors; // Unset correlated errors | |
137 | ||
138 | Bool_t fIPanaHadronBgSubtract; // Hadron background subtraction | |
139 | Bool_t fIPanaCharmBgSubtract; // Charm background subtraction | |
140 | Bool_t fIPanaNonHFEBgSubtract; // nonHFE background subtraction | |
141 | Bool_t fIPParameterizedEff; // switch to use parameterized efficiency for ip analysis | |
142 | Bool_t fNonHFEsyst; // choose NonHFE background level (upper, lower, central) | |
143 | Bool_t fBeauty2ndMethod; // 2nd method to get beauty spectrum | |
144 | Bool_t fIPEffCombinedSamples; // flag to combine two different samples | |
145 | ||
146 | Int_t fNMCEvents; // Number of MC Events | |
147 | Int_t fNMCbgEvents; // Number of BG MC Events | |
148 | ||
149 | Int_t fNCentralityBinAtTheEnd;// Number of centrality class at the end | |
150 | Int_t fLowBoundaryCentralityBinAtTheEnd[20]; // Boundary of the bins | |
151 | Int_t fHighBoundaryCentralityBinAtTheEnd[20]; // Boundary of the bins | |
152 | Bool_t fFillMoreCorrelationMatrix; // For low stats to have reasonable errors | |
153 | ||
154 | THnSparseF *fHadronEffbyIPcut;// container for hadron efficiency by IP cut | |
155 | TH1D *fEfficiencyCharmSigD; // charm IP cut eff from signal enhanced MC | |
156 | TH1D *fEfficiencyBeautySigD; // beauty IP cut eff from signal enhanced MC | |
157 | TH1D *fEfficiencyBeautySigesdD; // beauty IP cut eff from signal enhanced MC for esd | |
158 | TH1D *fConversionEff; // conversion IP cut eff | |
159 | TH1D *fNonHFEEff; // nonhfe IP cut eff | |
160 | TH1D *fCharmEff; // charm IP cut eff | |
161 | TH1D *fBeautyEff; // beauty IP cut eff | |
162 | TH1D *fConversionEffbgc; // conversion IP cut eff | |
163 | TH1D *fNonHFEEffbgc; // nonhfe IP cut eff | |
164 | TH1D *fBSpectrum2ndMethod; // beauty spectrum for 2nd method | |
165 | const char *fkBeauty2ndMethodfilename; // name of file, which contains beauty spectrum for 2ndmethod | |
166 | Char_t fBeamType; // beamtype; default -1; pp =0; PbPb=1 | |
167 | Bool_t fEtaSyst; // pp 2.76 TeV (= kTRUE) or 7 TeV (= kFALSE) | |
168 | ||
169 | ||
170 | Int_t fDebugLevel; // Debug Level | |
171 | Bool_t fWriteToFile; // Write plots to eps files | |
172 | Bool_t fUnfoldBG; // flag to unfold backgroud | |
173 | ||
174 | ClassDef(AliHFEBeautySpectrum, 1) | |
3513afb7 | 175 | }; |
4bd4fc13 | 176 | #endif |
177 |