ROOT logo
#ifndef ALICENTRALITYBYFUNCTION_H
#define ALICENTRALITYBYFUNCTION_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
/*   Origin: Alberica Toia, CERN, Alberica.Toia@cern.ch                   */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  class to determine centrality percentiles from 2D distributions          // 
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include <vector>
#include <map>
#include <TString.h>

// forward decl
class TF1;
class TH1D;
class TH2D;

class AliCentralityByFunction : public TObject {

 public:
  
  AliCentralityByFunction();
  virtual ~AliCentralityByFunction() {}

  void SetPercentileFile(TString filename)            { foutrootfilename = filename; }
  void SetPercentileCrossSection(Float_t xsec)        { fpercentXsec     = xsec;     }
  void SetFitFunction(TString distribution, TString func, Double_t xmin, Double_t xmax);
  void AddHisto(TString name)                         { fhistnames.push_back(name); }
  void MakePercentiles(TString infilename);

 private:
  AliCentralityByFunction(const AliCentralityByFunction&);
  AliCentralityByFunction& operator=(const AliCentralityByFunction&);

  TFile   *finrootfile;               // input root file
  TString  foutrootfilename;          // output root file name
  TFile   *foutrootfile;              // output root file
  std::vector<TString>    fhistnames; // hist names
  Float_t               fpercentXsec; // percentile cross section
  std::map<TString, TString> fitfunc; // mapping from distribution to fit function name
  std::map<TString, TF1 *>   fitter;  // mapping from fit function name to corresponding TF1
    
  TH1D *FitHisto(TString hdistributionName);
  TH1D *MakePercentHisto(TH2D *hist);

  ClassDef(AliCentralityByFunction, 1)  
};
#endif
 AliCentralityByFunction.h:1
 AliCentralityByFunction.h:2
 AliCentralityByFunction.h:3
 AliCentralityByFunction.h:4
 AliCentralityByFunction.h:5
 AliCentralityByFunction.h:6
 AliCentralityByFunction.h:7
 AliCentralityByFunction.h:8
 AliCentralityByFunction.h:9
 AliCentralityByFunction.h:10
 AliCentralityByFunction.h:11
 AliCentralityByFunction.h:12
 AliCentralityByFunction.h:13
 AliCentralityByFunction.h:14
 AliCentralityByFunction.h:15
 AliCentralityByFunction.h:16
 AliCentralityByFunction.h:17
 AliCentralityByFunction.h:18
 AliCentralityByFunction.h:19
 AliCentralityByFunction.h:20
 AliCentralityByFunction.h:21
 AliCentralityByFunction.h:22
 AliCentralityByFunction.h:23
 AliCentralityByFunction.h:24
 AliCentralityByFunction.h:25
 AliCentralityByFunction.h:26
 AliCentralityByFunction.h:27
 AliCentralityByFunction.h:28
 AliCentralityByFunction.h:29
 AliCentralityByFunction.h:30
 AliCentralityByFunction.h:31
 AliCentralityByFunction.h:32
 AliCentralityByFunction.h:33
 AliCentralityByFunction.h:34
 AliCentralityByFunction.h:35
 AliCentralityByFunction.h:36
 AliCentralityByFunction.h:37
 AliCentralityByFunction.h:38
 AliCentralityByFunction.h:39
 AliCentralityByFunction.h:40
 AliCentralityByFunction.h:41
 AliCentralityByFunction.h:42
 AliCentralityByFunction.h:43
 AliCentralityByFunction.h:44
 AliCentralityByFunction.h:45
 AliCentralityByFunction.h:46
 AliCentralityByFunction.h:47
 AliCentralityByFunction.h:48
 AliCentralityByFunction.h:49
 AliCentralityByFunction.h:50
 AliCentralityByFunction.h:51
 AliCentralityByFunction.h:52
 AliCentralityByFunction.h:53