]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/AliHFEBeautySpectrum.h
few changes in configuration VertexingHF for filtering pp 2010 data
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFEBeautySpectrum.h
CommitLineData
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
28class TGraphErrors;
29class TObject;
30class TH1;
31class TF1;
32class TList;
33class TObjArray;
34class AliCFContainer;
35class AliHFEcontainer;
36class AliCFDataGrid;
37class AliCFEffGrid;
38class AliHFEInclusiveSpectrumQA;
39class AliHFEBeautySpectrumQA;
40
41class 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