ROOT logo
#ifndef ALIHFSYSTERR_H
#define ALIHFSYSTERR_H
/* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */ 

//***********************************************************
// Class AliRDHFSystErr
// to handle systematic errors for charm hadrons
// Author: A.Dainese, andrea.dainese@pd.infn.it
//***********************************************************

#include <TNamed.h>
#include <TString.h>
#include <TH1F.h>
#include "AliLog.h"
#include "TGraphAsymmErrors.h"


class AliHFSystErr : public TNamed 
{
 public:

  AliHFSystErr(const Char_t* name="HFSystErr", const Char_t* title="");
    
  virtual ~AliHFSystErr();
  
  void DrawErrors(TGraphAsymmErrors *grErrFeeddown=0) const; 

  Double_t GetNormErr() const {return (fNorm ? fNorm->GetBinContent(0) : 0.);}
  Double_t GetBRErr() const {return (fBR ? fBR->GetBinContent(0) : 0.);}
  Double_t GetCutsEffErr(Double_t pt) const;
  Double_t GetMCPtShapeErr(Double_t pt) const;
  Double_t GetSeleEffErr(Double_t pt) const;
  Double_t GetPartAntipartErr(Double_t pt) const;
  Double_t GetPIDEffErr(Double_t pt) const;
  Double_t GetRawYieldErr(Double_t pt) const;
  Double_t GetTrackingEffErr(Double_t pt) const;
  Double_t GetTotalSystErr(Double_t pt,Double_t feeddownErr=0) const;

  // Setting  the run number
  //  set the two last numbers of the year (is 10 for 2010)
  void SetRunNumber(Int_t number) { 
    fRunNumber = number; 
    AliInfo(Form(" Settings for run year 20%2d",fRunNumber));
  }
  Int_t GetRunNumber() const { return fRunNumber; }
  // Setting the collision type
  //  0 is pp, 1 is PbPb, 2 is pPb
  void SetCollisionType(Int_t type) { 
    fCollisionType = type; 
    if (fCollisionType==0) { AliInfo(" Settings for p-p collisions"); }
    else if(fCollisionType==1) { AliInfo(" Settings for Pb-Pb collisions"); }
    else if(fCollisionType==2) { AliInfo(" Settings for p-Pb collisions"); }
  }
  Int_t GetCollisionType() const { return fCollisionType; }
  // Setting for the centrality class
  //  0100 for MB, 020 (4080) for 0-20 (40-80) CC and so on
  void SetCentrality(TString centrality) { 
    fCentralityClass = centrality; 
    AliInfo(Form(" Settings for centrality class %s",fCentralityClass.Data()));
  }
  void SetIsLowEnergy(Bool_t flag) { 
    fIsLowEnergy = flag; 
    AliInfo(" Settings for the low energy run");
  }
  void SetIsPbPb2010EnergyScan(Bool_t flag) {
    fIsCentScan = flag;
    AliInfo(" Settings for the PbPb 2010 energy scan");
  }

  // Settings of rapidity ranges for pPb 0-100% CC
  void SetRapidity(TString rapidity) {
    fRapidityRange = rapidity;
    AliInfo(Form(" Settings for rapidity interval %s",fRapidityRange.Data()));
  }
  void SetIspPb2011RapidityScan(Bool_t flag){
    fIsRapidityScan = flag; 
    AliInfo("Settings for the pPb vs y measurement");
  }

  // Function to initialize the variables/histograms
  void Init(Int_t decay);

  void InitD0toKpi2010PbPb010CentScan();
  void InitD0toKpi2010PbPb1020CentScan();
  void InitD0toKpi2010PbPb2040CentScan();
  void InitD0toKpi2010PbPb4060CentScan();
  void InitD0toKpi2010PbPb6080CentScan();

  void InitD0toKpi2011PbPb3050InPlane();
  void InitD0toKpi2011PbPb3050OutOfPlane();

  void InitDplustoKpipi2010PbPb010CentScan();
  void InitDplustoKpipi2010PbPb1020CentScan();
  void InitDplustoKpipi2010PbPb2040CentScan();
  void InitDplustoKpipi2010PbPb4060CentScan();
  void InitDplustoKpipi2010PbPb6080CentScan();

  void InitDstartoD0pi2010PbPb010CentScan();
  void InitDstartoD0pi2010PbPb1020CentScan();
  void InitDstartoD0pi2010PbPb2040CentScan();
  void InitDstartoD0pi2010PbPb4060CentScan();
  void InitDstartoD0pi2010PbPb6080CentScan();

  void InitD0toKpi2011PbPb010CentScan();
  void InitD0toKpi2011PbPb1020CentScan();
  void InitD0toKpi2011PbPb2030CentScan();
  void InitD0toKpi2011PbPb3040CentScan();
  void InitD0toKpi2011PbPb4050CentScan();
  void InitD0toKpi2010PbPb5080CentScan();

  void InitDplustoKpipi2011PbPb010CentScan();
  void InitDplustoKpipi2011PbPb1020CentScan();
  void InitDplustoKpipi2011PbPb2030CentScan();
  void InitDplustoKpipi2011PbPb3040CentScan();
  void InitDplustoKpipi2011PbPb4050CentScan();
  void InitDplustoKpipi2010PbPb5080CentScan();

  void InitDstartoD0pi2011PbPb010CentScan();
  void InitDstartoD0pi2011PbPb1020CentScan();
  void InitDstartoD0pi2011PbPb2030CentScan();
  void InitDstartoD0pi2011PbPb3040CentScan();
  void InitDstartoD0pi2011PbPb4050CentScan();
  void InitDstartoD0pi2010PbPb5080CentScan();

  void InitD0toKpi2013pPb0100RapScan0804();
  void InitD0toKpi2013pPb0100RapScan0401();
  void InitD0toKpi2013pPb0100RapScan0101();
  void InitD0toKpi2013pPb0100RapScan0104();
  void InitD0toKpi2013pPb0100RapScan0408();

  void InitDplustoKpipi2013pPb0100RapScan0804();
  void InitDplustoKpipi2013pPb0100RapScan0401();
  void InitDplustoKpipi2013pPb0100RapScan0101();
  void InitDplustoKpipi2013pPb0100RapScan0104();
  void InitDplustoKpipi2013pPb0100RapScan0408();

  void InitDstartoD0pi2013pPb0100RapScan0804();
  void InitDstartoD0pi2013pPb0100RapScan0401();
  void InitDstartoD0pi2013pPb0100RapScan0101();
  void InitDstartoD0pi2013pPb0100RapScan0104();
  void InitDstartoD0pi2013pPb0100RapScan0408();
    
    
  void InitD0toKpi2013pPb020V0A();
  void InitD0toKpi2013pPb2040V0A();
  void InitD0toKpi2013pPb4060V0A();
  void InitD0toKpi2013pPb60100V0A();
    
  void InitD0toKpi2013pPb020ZNA();
  void InitD0toKpi2013pPb2040ZNA();
  void InitD0toKpi2013pPb4060ZNA();
  void InitD0toKpi2013pPb60100ZNA();
    
  void InitDstartoD0pi2013pPb020V0A();
  void InitDstartoD0pi2013pPb2040V0A();
  void InitDstartoD0pi2013pPb4060V0A();
  void InitDstartoD0pi2013pPb60100V0A();
    
  void InitDstartoD0pi2013pPb020ZNA();
  void InitDstartoD0pi2013pPb2040ZNA();
  void InitDstartoD0pi2013pPb4060ZNA();
  void InitDstartoD0pi2013pPb60100ZNA();

    

 private:

  AliHFSystErr(const AliHFSystErr& source);
  AliHFSystErr& operator=(const AliHFSystErr& source); 
 
  void InitD0toKpi2010pp();
  void InitD0toKpi2010ppLowEn();
  void InitD0toKpi2011PbPb07half();
  void InitD0toKpi2010PbPb020();
  void InitD0toKpi2010PbPb4080();
  void InitD0toKpi2011PbPb3050(); 
  void InitD0toKpi2011PbPb010();

  void InitDplustoKpipi2010pp();
  void InitDplustoKpipi2010ppLowEn();
  void InitDplustoKpipi2011PbPb07half();
  void InitDplustoKpipi2010PbPb020();
  void InitDplustoKpipi2010PbPb4080();
  void InitDplustoKpipi2011PbPb3050();
  void InitDplustoKpipi2011PbPb010();

  void InitDstartoD0pi2010pp();
  void InitDstartoD0pi2010ppLowEn();
  void InitDstartoD0pi2011PbPb07half();
  void InitDstartoD0pi2010PbPb020();
  void InitDstartoD0pi2010PbPb2040();
  void InitDstartoD0pi2010PbPb4080();
  void InitDstartoD0pi2011PbPb3050();
  void InitDstartoD0pi2011PbPb010();

  void InitDstoKKpi2010pp();
  void InitDstoKKpi2011PbPb07half();

  void InitLctopKpi2010pp();

  void InitD0toKpi2013pPb0100();
  void InitDplustoKpipi2013pPb0100();
  void InitDstartoD0pi2013pPb0100();
  void InitDstoKKpi2013pPb0100();
  void InitLctopK0S2010pp();


  TH1F* ReflectHisto(TH1F *hin) const;

  TH1F *fNorm;            // normalization
  TH1F *fRawYield;        // raw yield 
  TH1F *fTrackingEff;     // tracking efficiency
  TH1F *fBR;              // branching ratio
  TH1F *fCutsEff;         // cuts efficiency
  TH1F *fPIDEff;          // PID efficiency
  TH1F *fMCPtShape;       // MC dNdpt
  TH1F *fPartAntipart;    // particle=antiparticle

  Int_t fRunNumber;        // Run Number (year)
  Int_t fCollisionType;    // Collision type: pp=0, PbPb=1
  TString fCentralityClass;  // Centrality class
                           // MB:0100, 0-10:010, 0-20:020 ...40-80:4080...
  TString fRapidityRange;  // Rapidity range fot y measurements 

  Bool_t fIsLowEnergy;     // flag for the low energy (2.76TeV) run
  Bool_t fIsCentScan;      // flag fot the PbPb centrality scan
  Bool_t fIsRapidityScan;  // flag for the pPb vs y measurement
 
  ClassDef(AliHFSystErr,5);  // class for systematic errors of charm hadrons
};

#endif

 AliHFSystErr.h:1
 AliHFSystErr.h:2
 AliHFSystErr.h:3
 AliHFSystErr.h:4
 AliHFSystErr.h:5
 AliHFSystErr.h:6
 AliHFSystErr.h:7
 AliHFSystErr.h:8
 AliHFSystErr.h:9
 AliHFSystErr.h:10
 AliHFSystErr.h:11
 AliHFSystErr.h:12
 AliHFSystErr.h:13
 AliHFSystErr.h:14
 AliHFSystErr.h:15
 AliHFSystErr.h:16
 AliHFSystErr.h:17
 AliHFSystErr.h:18
 AliHFSystErr.h:19
 AliHFSystErr.h:20
 AliHFSystErr.h:21
 AliHFSystErr.h:22
 AliHFSystErr.h:23
 AliHFSystErr.h:24
 AliHFSystErr.h:25
 AliHFSystErr.h:26
 AliHFSystErr.h:27
 AliHFSystErr.h:28
 AliHFSystErr.h:29
 AliHFSystErr.h:30
 AliHFSystErr.h:31
 AliHFSystErr.h:32
 AliHFSystErr.h:33
 AliHFSystErr.h:34
 AliHFSystErr.h:35
 AliHFSystErr.h:36
 AliHFSystErr.h:37
 AliHFSystErr.h:38
 AliHFSystErr.h:39
 AliHFSystErr.h:40
 AliHFSystErr.h:41
 AliHFSystErr.h:42
 AliHFSystErr.h:43
 AliHFSystErr.h:44
 AliHFSystErr.h:45
 AliHFSystErr.h:46
 AliHFSystErr.h:47
 AliHFSystErr.h:48
 AliHFSystErr.h:49
 AliHFSystErr.h:50
 AliHFSystErr.h:51
 AliHFSystErr.h:52
 AliHFSystErr.h:53
 AliHFSystErr.h:54
 AliHFSystErr.h:55
 AliHFSystErr.h:56
 AliHFSystErr.h:57
 AliHFSystErr.h:58
 AliHFSystErr.h:59
 AliHFSystErr.h:60
 AliHFSystErr.h:61
 AliHFSystErr.h:62
 AliHFSystErr.h:63
 AliHFSystErr.h:64
 AliHFSystErr.h:65
 AliHFSystErr.h:66
 AliHFSystErr.h:67
 AliHFSystErr.h:68
 AliHFSystErr.h:69
 AliHFSystErr.h:70
 AliHFSystErr.h:71
 AliHFSystErr.h:72
 AliHFSystErr.h:73
 AliHFSystErr.h:74
 AliHFSystErr.h:75
 AliHFSystErr.h:76
 AliHFSystErr.h:77
 AliHFSystErr.h:78
 AliHFSystErr.h:79
 AliHFSystErr.h:80
 AliHFSystErr.h:81
 AliHFSystErr.h:82
 AliHFSystErr.h:83
 AliHFSystErr.h:84
 AliHFSystErr.h:85
 AliHFSystErr.h:86
 AliHFSystErr.h:87
 AliHFSystErr.h:88
 AliHFSystErr.h:89
 AliHFSystErr.h:90
 AliHFSystErr.h:91
 AliHFSystErr.h:92
 AliHFSystErr.h:93
 AliHFSystErr.h:94
 AliHFSystErr.h:95
 AliHFSystErr.h:96
 AliHFSystErr.h:97
 AliHFSystErr.h:98
 AliHFSystErr.h:99
 AliHFSystErr.h:100
 AliHFSystErr.h:101
 AliHFSystErr.h:102
 AliHFSystErr.h:103
 AliHFSystErr.h:104
 AliHFSystErr.h:105
 AliHFSystErr.h:106
 AliHFSystErr.h:107
 AliHFSystErr.h:108
 AliHFSystErr.h:109
 AliHFSystErr.h:110
 AliHFSystErr.h:111
 AliHFSystErr.h:112
 AliHFSystErr.h:113
 AliHFSystErr.h:114
 AliHFSystErr.h:115
 AliHFSystErr.h:116
 AliHFSystErr.h:117
 AliHFSystErr.h:118
 AliHFSystErr.h:119
 AliHFSystErr.h:120
 AliHFSystErr.h:121
 AliHFSystErr.h:122
 AliHFSystErr.h:123
 AliHFSystErr.h:124
 AliHFSystErr.h:125
 AliHFSystErr.h:126
 AliHFSystErr.h:127
 AliHFSystErr.h:128
 AliHFSystErr.h:129
 AliHFSystErr.h:130
 AliHFSystErr.h:131
 AliHFSystErr.h:132
 AliHFSystErr.h:133
 AliHFSystErr.h:134
 AliHFSystErr.h:135
 AliHFSystErr.h:136
 AliHFSystErr.h:137
 AliHFSystErr.h:138
 AliHFSystErr.h:139
 AliHFSystErr.h:140
 AliHFSystErr.h:141
 AliHFSystErr.h:142
 AliHFSystErr.h:143
 AliHFSystErr.h:144
 AliHFSystErr.h:145
 AliHFSystErr.h:146
 AliHFSystErr.h:147
 AliHFSystErr.h:148
 AliHFSystErr.h:149
 AliHFSystErr.h:150
 AliHFSystErr.h:151
 AliHFSystErr.h:152
 AliHFSystErr.h:153
 AliHFSystErr.h:154
 AliHFSystErr.h:155
 AliHFSystErr.h:156
 AliHFSystErr.h:157
 AliHFSystErr.h:158
 AliHFSystErr.h:159
 AliHFSystErr.h:160
 AliHFSystErr.h:161
 AliHFSystErr.h:162
 AliHFSystErr.h:163
 AliHFSystErr.h:164
 AliHFSystErr.h:165
 AliHFSystErr.h:166
 AliHFSystErr.h:167
 AliHFSystErr.h:168
 AliHFSystErr.h:169
 AliHFSystErr.h:170
 AliHFSystErr.h:171
 AliHFSystErr.h:172
 AliHFSystErr.h:173
 AliHFSystErr.h:174
 AliHFSystErr.h:175
 AliHFSystErr.h:176
 AliHFSystErr.h:177
 AliHFSystErr.h:178
 AliHFSystErr.h:179
 AliHFSystErr.h:180
 AliHFSystErr.h:181
 AliHFSystErr.h:182
 AliHFSystErr.h:183
 AliHFSystErr.h:184
 AliHFSystErr.h:185
 AliHFSystErr.h:186
 AliHFSystErr.h:187
 AliHFSystErr.h:188
 AliHFSystErr.h:189
 AliHFSystErr.h:190
 AliHFSystErr.h:191
 AliHFSystErr.h:192
 AliHFSystErr.h:193
 AliHFSystErr.h:194
 AliHFSystErr.h:195
 AliHFSystErr.h:196
 AliHFSystErr.h:197
 AliHFSystErr.h:198
 AliHFSystErr.h:199
 AliHFSystErr.h:200
 AliHFSystErr.h:201
 AliHFSystErr.h:202
 AliHFSystErr.h:203
 AliHFSystErr.h:204
 AliHFSystErr.h:205
 AliHFSystErr.h:206
 AliHFSystErr.h:207
 AliHFSystErr.h:208
 AliHFSystErr.h:209
 AliHFSystErr.h:210
 AliHFSystErr.h:211
 AliHFSystErr.h:212
 AliHFSystErr.h:213
 AliHFSystErr.h:214
 AliHFSystErr.h:215
 AliHFSystErr.h:216
 AliHFSystErr.h:217
 AliHFSystErr.h:218
 AliHFSystErr.h:219
 AliHFSystErr.h:220
 AliHFSystErr.h:221
 AliHFSystErr.h:222
 AliHFSystErr.h:223
 AliHFSystErr.h:224
 AliHFSystErr.h:225
 AliHFSystErr.h:226
 AliHFSystErr.h:227
 AliHFSystErr.h:228
 AliHFSystErr.h:229
 AliHFSystErr.h:230
 AliHFSystErr.h:231
 AliHFSystErr.h:232
 AliHFSystErr.h:233
 AliHFSystErr.h:234
 AliHFSystErr.h:235
 AliHFSystErr.h:236