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

/* $Id$ */

//-------------------------------------------------------------------------
//     OADB class for run dependent centrality scaling factors and 
//     data for centrality determination
//     Author: Andreas Morsch, CERN
//-------------------------------------------------------------------------

#include <TNamed.h>
#include <TList.h>
#include <TH1F.h>
#include <TH2F.h>


class AliOADBCentrality : public TNamed {

 public :
  AliOADBCentrality();
  AliOADBCentrality(char* name);
  virtual ~AliOADBCentrality();
  Float_t V0MScaleFactor()   const  {return fV0MScaleFactor;}
  Float_t SPDScaleFactor()   const  {return fSPDScaleFactor;}
  Float_t TPCScaleFactor()   const  {return fTPCScaleFactor;}
  Float_t V0MScaleFactorMC() const  {return fV0MScaleFactorMC;}

  Float_t V0MSPDOutlierPar0()      const  {return fV0MSPDOutlierPar0      ;}
  Float_t V0MSPDOutlierPar1()      const  {return fV0MSPDOutlierPar1      ;}
  Float_t V0MTPCOutlierPar0()      const  {return fV0MTPCOutlierPar0      ;}
  Float_t V0MTPCOutlierPar1()      const  {return fV0MTPCOutlierPar1      ;}

  Float_t V0MSPDSigmaOutlierPar0() const  {return fV0MSPDSigmaOutlierPar0 ;}
  Float_t V0MSPDSigmaOutlierPar1() const  {return fV0MSPDSigmaOutlierPar1 ;}
  Float_t V0MSPDSigmaOutlierPar2() const  {return fV0MSPDSigmaOutlierPar2 ;}
  Float_t V0MTPCSigmaOutlierPar0() const  {return fV0MTPCSigmaOutlierPar0 ;}
  Float_t V0MTPCSigmaOutlierPar1() const  {return fV0MTPCSigmaOutlierPar1 ;}
  Float_t V0MTPCSigmaOutlierPar2() const  {return fV0MTPCSigmaOutlierPar2 ;}

  Float_t V0MZDCOutlierPar0()      const  {return fV0MZDCOutlierPar0      ;}
  Float_t V0MZDCOutlierPar1()      const  {return fV0MZDCOutlierPar1      ;}
  Float_t V0MZDCEcalOutlierPar0()  const  {return fV0MZDCEcalOutlierPar0  ;}
  Float_t V0MZDCEcalOutlierPar1()  const  {return fV0MZDCEcalOutlierPar1  ;}

  Float_t ZVCut()       const {return fZVCut;}
  Float_t OutliersCut() const {return fOutliersCut;}
  Bool_t UseScaling()   const {return fUseScaling;}
  Bool_t UseCleaning()  const {return fUseCleaning;}

  TH1F*   V0hist()         const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0M_percentile")));}
  TH1F*   V0Ahist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A_percentile")));}
  TH1F*   V0A0hist()       const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A0_percentile")));}
  TH1F*   V0A123hist()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A123_percentile")));}
  TH1F*   V0Chist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0C_percentile")));}
  TH1F*   V0A23hist()      const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A23_percentile")));}
  TH1F*   V0C01hist()      const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0C01_percentile")));}
  TH1F*   V0Shist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0S_percentile")));}
  TH1F*   V0Eqhist()       const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEq_percentile")));}
  TH1F*   V0AEqhist()      const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEq_percentile")));}
  TH1F*   V0CEqhist()      const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEq_percentile")));}
  TH1F*   TPChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRK_percentile")));}
  TH1F*   CNDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCND_percentile")));}
  TH1F*   SPDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1_percentile")));}
  TH1F*   FMDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMD_percentile")));}
  TH1F*   ZNAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNA_percentile")));}
  TH1F*   ZNChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNC_percentile")));}
  TH1F*   ZPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPA_percentile")));}
  TH1F*   ZPChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPC_percentile")));}
  TH2F*   ZEMvsZDChist()   const  {return ((TH2F*) (Hists2D()->FindObject("fHOutMultZEMvsZDC")));}

  TH1F*   NPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPA_percentile")));}
  TH1F*   NPAhistDPM()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPADPM_percentile")));}

  TH1F*   V0histtrue()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Mtrue_percentile")));}
  TH1F*   V0Ahisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Atrue_percentile")));}
  TH1F*   V0Chisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Ctrue_percentile")));}
  TH1F*   V0Eqhisttrue()   const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEqtrue_percentile")));}
  TH1F*   V0AEqhisttrue()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEqtrue_percentile")));}
  TH1F*   V0CEqhisttrue()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEqtrue_percentile")));}
  TH1F*   TPChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrue_percentile")));}
  TH1F*   CNDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrue_percentile")));}
  TH1F*   SPDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1true_percentile")));}
  TH1F*   FMDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrue_percentile")));}
  TH1F*   ZNAhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrue_percentile")));}
  TH1F*   ZNChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrue_percentile")));}
  TH1F*   ZPAhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPAtrue_percentile")));}
  TH1F*   ZPChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPCtrue_percentile")));}
 
  TH1F*   V0histtrueDPM()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MtrueDPM_percentile")));}
  TH1F*   V0AhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AtrueDPM_percentile")));}
  TH1F*   V0ChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CtrueDPM_percentile")));}
  TH1F*   V0EqhisttrueDPM()   const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEqtrueDPM_percentile")));}
  TH1F*   V0AEqhisttrueDPM()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEqtrueDPM_percentile")));}
  TH1F*   V0CEqhisttrueDPM()  const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEqtrueDPM_percentile")));}
  TH1F*   TPChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrueDPM_percentile")));}
  TH1F*   CNDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrueDPM_percentile")));}
  TH1F*   SPDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1trueDPM_percentile")));}
  TH1F*   FMDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrueDPM_percentile")));}
  TH1F*   ZNAhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrueDPM_percentile")));}
  TH1F*   ZNChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrueDPM_percentile")));}
  TH1F*   ZPAhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPAtrueDPM_percentile")));}
  TH1F*   ZPChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPCtrueDPM_percentile")));}
  TList*  Hists1D()        const  {return f1DHistos;}
  TList*  Hists2D()        const  {return f2DHistos;}

  void    SetScaleFactors(Float_t v0m, Float_t spd, Float_t tpc, Float_t v0mMC)
  {fV0MScaleFactor = v0m; fSPDScaleFactor = spd; fTPCScaleFactor = tpc; fV0MScaleFactorMC = v0mMC;}
  
  void    SetOutlierV0MSPDFactors(Float_t a1, Float_t a2, Float_t a3, Float_t a4, Float_t a5)
  {fV0MSPDOutlierPar0=a1;fV0MSPDOutlierPar1=a2;fV0MSPDSigmaOutlierPar0=a3;fV0MSPDSigmaOutlierPar1=a4;fV0MSPDSigmaOutlierPar2=a5;}
  
  void    SetOutlierV0MTPCFactors(Float_t a1, Float_t a2, Float_t a3, Float_t a4, Float_t a5)
  {fV0MTPCOutlierPar0=a1;fV0MTPCOutlierPar1=a2;fV0MTPCSigmaOutlierPar0=a3;fV0MTPCSigmaOutlierPar1=a4;fV0MTPCSigmaOutlierPar2=a5;}

  void    SetOutlierV0MZDCFactors(Float_t a1, Float_t a2)
  {fV0MZDCOutlierPar0=a1;fV0MZDCOutlierPar1=a2;}
  
  void    SetOutlierV0MZDCEcalFactors(Float_t a1, Float_t a2)
  {fV0MZDCEcalOutlierPar0=a1;fV0MZDCEcalOutlierPar1=a2;}
  
  void    SetHistReferences(TList* l1, TList* l2)
  {f1DHistos = l1; f2DHistos = l2;}

  void SetZVCut(Float_t z)
  {fZVCut=z;}

  void SetOutliersCut(Float_t o)
  {fOutliersCut=o;}

  void SetUseScaling(Bool_t x)
  {fUseScaling=x;}

  void SetUseCleaning(Bool_t x)
  {fUseCleaning=x;}


 private:
  AliOADBCentrality(const AliOADBCentrality& cont); 
  AliOADBCentrality& operator=(const AliOADBCentrality& cont);

 private:
  Float_t fV0MScaleFactor;     // V0  scale factor
  Float_t fSPDScaleFactor;     // SPD scale factor
  Float_t fTPCScaleFactor;     // TPC scale factor
  Float_t fV0MScaleFactorMC;   // V0  scale factor for MC

  Float_t fV0MSPDOutlierPar0;  // V0-SPD outlier parameterisation Par0
  Float_t fV0MSPDOutlierPar1;  // Par1
  Float_t fV0MTPCOutlierPar0;  // Par2
  Float_t fV0MTPCOutlierPar1;  // Par3

  Float_t fV0MSPDSigmaOutlierPar0; // V0-SPD Sigma outlier parameterisation Par0
  Float_t fV0MSPDSigmaOutlierPar1; // Par1
  Float_t fV0MSPDSigmaOutlierPar2; // Par2
  Float_t fV0MTPCSigmaOutlierPar0; // Par3
  Float_t fV0MTPCSigmaOutlierPar1; // Par4
  Float_t fV0MTPCSigmaOutlierPar2; // Par5

  Float_t fV0MZDCOutlierPar0;     // V0-ZDC outlier parameterisation Par0
  Float_t fV0MZDCOutlierPar1;     // Par1
  Float_t fV0MZDCEcalOutlierPar0; // Par2
  Float_t fV0MZDCEcalOutlierPar1; // Par3

  Float_t fZVCut;                 // zV-cut
  Float_t fOutliersCut;           // outlier cuts
  Bool_t fUseScaling;             // Flag for scaling
  Bool_t fUseCleaning;            // Flag for cleaning

  TList*    f1DHistos; // Reference to list of 1D Centrality histos 
  TList*    f2DHistos; // Reference to list of 2D Centrality histos
  ClassDef(AliOADBCentrality, 3);
};

#endif
 AliOADBCentrality.h:1
 AliOADBCentrality.h:2
 AliOADBCentrality.h:3
 AliOADBCentrality.h:4
 AliOADBCentrality.h:5
 AliOADBCentrality.h:6
 AliOADBCentrality.h:7
 AliOADBCentrality.h:8
 AliOADBCentrality.h:9
 AliOADBCentrality.h:10
 AliOADBCentrality.h:11
 AliOADBCentrality.h:12
 AliOADBCentrality.h:13
 AliOADBCentrality.h:14
 AliOADBCentrality.h:15
 AliOADBCentrality.h:16
 AliOADBCentrality.h:17
 AliOADBCentrality.h:18
 AliOADBCentrality.h:19
 AliOADBCentrality.h:20
 AliOADBCentrality.h:21
 AliOADBCentrality.h:22
 AliOADBCentrality.h:23
 AliOADBCentrality.h:24
 AliOADBCentrality.h:25
 AliOADBCentrality.h:26
 AliOADBCentrality.h:27
 AliOADBCentrality.h:28
 AliOADBCentrality.h:29
 AliOADBCentrality.h:30
 AliOADBCentrality.h:31
 AliOADBCentrality.h:32
 AliOADBCentrality.h:33
 AliOADBCentrality.h:34
 AliOADBCentrality.h:35
 AliOADBCentrality.h:36
 AliOADBCentrality.h:37
 AliOADBCentrality.h:38
 AliOADBCentrality.h:39
 AliOADBCentrality.h:40
 AliOADBCentrality.h:41
 AliOADBCentrality.h:42
 AliOADBCentrality.h:43
 AliOADBCentrality.h:44
 AliOADBCentrality.h:45
 AliOADBCentrality.h:46
 AliOADBCentrality.h:47
 AliOADBCentrality.h:48
 AliOADBCentrality.h:49
 AliOADBCentrality.h:50
 AliOADBCentrality.h:51
 AliOADBCentrality.h:52
 AliOADBCentrality.h:53
 AliOADBCentrality.h:54
 AliOADBCentrality.h:55
 AliOADBCentrality.h:56
 AliOADBCentrality.h:57
 AliOADBCentrality.h:58
 AliOADBCentrality.h:59
 AliOADBCentrality.h:60
 AliOADBCentrality.h:61
 AliOADBCentrality.h:62
 AliOADBCentrality.h:63
 AliOADBCentrality.h:64
 AliOADBCentrality.h:65
 AliOADBCentrality.h:66
 AliOADBCentrality.h:67
 AliOADBCentrality.h:68
 AliOADBCentrality.h:69
 AliOADBCentrality.h:70
 AliOADBCentrality.h:71
 AliOADBCentrality.h:72
 AliOADBCentrality.h:73
 AliOADBCentrality.h:74
 AliOADBCentrality.h:75
 AliOADBCentrality.h:76
 AliOADBCentrality.h:77
 AliOADBCentrality.h:78
 AliOADBCentrality.h:79
 AliOADBCentrality.h:80
 AliOADBCentrality.h:81
 AliOADBCentrality.h:82
 AliOADBCentrality.h:83
 AliOADBCentrality.h:84
 AliOADBCentrality.h:85
 AliOADBCentrality.h:86
 AliOADBCentrality.h:87
 AliOADBCentrality.h:88
 AliOADBCentrality.h:89
 AliOADBCentrality.h:90
 AliOADBCentrality.h:91
 AliOADBCentrality.h:92
 AliOADBCentrality.h:93
 AliOADBCentrality.h:94
 AliOADBCentrality.h:95
 AliOADBCentrality.h:96
 AliOADBCentrality.h:97
 AliOADBCentrality.h:98
 AliOADBCentrality.h:99
 AliOADBCentrality.h:100
 AliOADBCentrality.h:101
 AliOADBCentrality.h:102
 AliOADBCentrality.h:103
 AliOADBCentrality.h:104
 AliOADBCentrality.h:105
 AliOADBCentrality.h:106
 AliOADBCentrality.h:107
 AliOADBCentrality.h:108
 AliOADBCentrality.h:109
 AliOADBCentrality.h:110
 AliOADBCentrality.h:111
 AliOADBCentrality.h:112
 AliOADBCentrality.h:113
 AliOADBCentrality.h:114
 AliOADBCentrality.h:115
 AliOADBCentrality.h:116
 AliOADBCentrality.h:117
 AliOADBCentrality.h:118
 AliOADBCentrality.h:119
 AliOADBCentrality.h:120
 AliOADBCentrality.h:121
 AliOADBCentrality.h:122
 AliOADBCentrality.h:123
 AliOADBCentrality.h:124
 AliOADBCentrality.h:125
 AliOADBCentrality.h:126
 AliOADBCentrality.h:127
 AliOADBCentrality.h:128
 AliOADBCentrality.h:129
 AliOADBCentrality.h:130
 AliOADBCentrality.h:131
 AliOADBCentrality.h:132
 AliOADBCentrality.h:133
 AliOADBCentrality.h:134
 AliOADBCentrality.h:135
 AliOADBCentrality.h:136
 AliOADBCentrality.h:137
 AliOADBCentrality.h:138
 AliOADBCentrality.h:139
 AliOADBCentrality.h:140
 AliOADBCentrality.h:141
 AliOADBCentrality.h:142
 AliOADBCentrality.h:143
 AliOADBCentrality.h:144
 AliOADBCentrality.h:145
 AliOADBCentrality.h:146
 AliOADBCentrality.h:147
 AliOADBCentrality.h:148
 AliOADBCentrality.h:149
 AliOADBCentrality.h:150
 AliOADBCentrality.h:151
 AliOADBCentrality.h:152
 AliOADBCentrality.h:153
 AliOADBCentrality.h:154
 AliOADBCentrality.h:155
 AliOADBCentrality.h:156
 AliOADBCentrality.h:157
 AliOADBCentrality.h:158
 AliOADBCentrality.h:159
 AliOADBCentrality.h:160
 AliOADBCentrality.h:161
 AliOADBCentrality.h:162
 AliOADBCentrality.h:163
 AliOADBCentrality.h:164
 AliOADBCentrality.h:165
 AliOADBCentrality.h:166
 AliOADBCentrality.h:167
 AliOADBCentrality.h:168
 AliOADBCentrality.h:169
 AliOADBCentrality.h:170
 AliOADBCentrality.h:171
 AliOADBCentrality.h:172
 AliOADBCentrality.h:173
 AliOADBCentrality.h:174
 AliOADBCentrality.h:175
 AliOADBCentrality.h:176
 AliOADBCentrality.h:177