3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //***********************************************************
9 // Class AliRDHFSystErr
10 // to handle systematic errors for charm hadrons
11 // Author: A.Dainese, andrea.dainese@pd.infn.it
12 //***********************************************************
18 #include "TGraphAsymmErrors.h"
21 class AliHFSystErr : public TNamed
25 AliHFSystErr(const Char_t* name="HFSystErr", const Char_t* title="");
27 virtual ~AliHFSystErr();
29 void DrawErrors(TGraphAsymmErrors *grErrFeeddown=0) const;
31 Double_t GetNormErr() const {return (fNorm ? fNorm->GetBinContent(0) : 0.);}
32 Double_t GetBRErr() const {return (fBR ? fBR->GetBinContent(0) : 0.);}
33 Double_t GetCutsEffErr(Double_t pt) const;
34 Double_t GetMCPtShapeErr(Double_t pt) const;
35 Double_t GetSeleEffErr(Double_t pt) const;
36 Double_t GetPartAntipartErr(Double_t pt) const;
37 Double_t GetPIDEffErr(Double_t pt) const;
38 Double_t GetRawYieldErr(Double_t pt) const;
39 Double_t GetTrackingEffErr(Double_t pt) const;
40 Double_t GetTotalSystErr(Double_t pt,Double_t feeddownErr=0) const;
42 // Setting the run number
43 // set the two last numbers of the year (is 10 for 2010)
44 void SetRunNumber(Int_t number) {
46 AliInfo(Form(" Settings for run year 20%2d",fRunNumber));
48 // Setting the collision type
50 void SetCollisionType(Int_t type) {
51 fCollisionType = type;
52 if (fCollisionType==0) { AliInfo(" Settings for p-p collisions"); }
53 else if(fCollisionType==1) { AliInfo(" Settings for Pb-Pb collisions"); }
55 // Setting for the centrality class
56 // 0100 for MB, 020 (4080) for 0-20 (40-80) CC and so on
57 void SetCentrality(TString centrality) {
58 fCentralityClass = centrality;
59 AliInfo(Form(" Settings for centrality class %s",fCentralityClass.Data()));
61 void SetIsLowEnergy(Bool_t flag) {
63 AliInfo(" Settings for the low energy run");
66 // Function to initialize the variables/histograms
67 void Init(Int_t decay);
69 void InitD0toKpi2010PbPb010CentScan();
70 void InitD0toKpi2010PbPb1020CentScan();
71 void InitD0toKpi2010PbPb2040CentScan();
72 void InitD0toKpi2010PbPb4060CentScan();
73 void InitD0toKpi2010PbPb6080CentScan();
75 void InitDplustoKpipi2010PbPb010CentScan();
76 void InitDplustoKpipi2010PbPb1020CentScan();
77 void InitDplustoKpipi2010PbPb2040CentScan();
78 void InitDplustoKpipi2010PbPb4060CentScan();
79 void InitDplustoKpipi2010PbPb6080CentScan();
81 void InitDstartoD0pi2010PbPb010CentScan();
82 void InitDstartoD0pi2010PbPb1020CentScan();
83 void InitDstartoD0pi2010PbPb2040CentScan();
84 void InitDstartoD0pi2010PbPb4060CentScan();
85 void InitDstartoD0pi2010PbPb6080CentScan();
89 AliHFSystErr(const AliHFSystErr& source);
90 AliHFSystErr& operator=(const AliHFSystErr& source);
92 void InitD0toKpi2010pp();
93 void InitDplustoKpipi2010pp();
94 void InitDstartoD0pi2010pp();
95 void InitDstoKKpi2010pp();
97 void InitD0toKpi2010PbPb020();
98 void InitDplustoKpipi2010PbPb020();
99 void InitDstartoD0pi2010PbPb020();
101 void InitD0toKpi2010PbPb4080();
102 void InitDplustoKpipi2010PbPb4080();
103 void InitDstartoD0pi2010PbPb4080();
106 void InitD0toKpi2010ppLowEn();
107 void InitDplustoKpipi2010ppLowEn();
108 void InitDstartoD0pi2010ppLowEn();
110 void InitDstartoD0pi2010PbPb2040();
112 TH1F* ReflectHisto(TH1F *hin) const;
114 TH1F *fNorm; // normalization
115 TH1F *fRawYield; // raw yield
116 TH1F *fTrackingEff; // tracking efficiency
117 TH1F *fBR; // branching ratio
118 TH1F *fCutsEff; // cuts efficiency
119 TH1F *fPIDEff; // PID efficiency
120 TH1F *fMCPtShape; // MC dNdpt
121 TH1F *fPartAntipart; // particle=antiparticle
123 Int_t fRunNumber; // Run Number (year)
124 Int_t fCollisionType; // Collision type: pp=0, PbPb=1
125 TString fCentralityClass; // Centrality class
126 // MB:0100, 0-10:010, 0-20:020 ...40-80:4080...
127 Bool_t fIsLowEnergy; // flag for the low energy (2.76TeV) run
129 ClassDef(AliHFSystErr,3); // class for systematic errors of charm hadrons