#ifndef ALICENTRALITYGLAUBERFIT_H
#define ALICENTRALITYGLAUBERFIT_H
#include <vector>
#include <TObject.h>
#include <TString.h>
class TNtuple;
class TFile;
class AliCentralityGlauberFit : public TObject {
public:
AliCentralityGlauberFit(const char * filename);
virtual ~AliCentralityGlauberFit() {}
void AddHisto(TString name) { fHistnames.push_back(name); }
TH1F *GetGlauberHist() { return fGlauberHist; }
TH1F *GetTempHist() { return fTempHist; }
void MakeFits();
void MakeFitsMinuitNBD(Double_t alpha=-1, Double_t mu=-1, Double_t k=-1);
void SetAncestorMode(Int_t f) { fAncestor=f; }
void SetFastFitMode(Int_t f) { fFastFit=f; }
void SetGlauberParam(Int_t Nmu, Double_t mulow, Double_t muhigh, Int_t Nk, Double_t klow,
Double_t khigh, Int_t Nalpha, Double_t alphalow, Double_t alphahigh);
void SetInputFile(TString filename) { fInrootfilename = filename; }
void SetInputNtuple(TString ntuplename) { fInntuplename = ntuplename; }
void SetAncFile(TString name) { fAncfilename = name; }
void SetNevents(Int_t f) { fNevents=f; }
void SetNtrials(Int_t f) { fNtrials=f; }
void SetOutputFile(TString filename) { fOutrootfilename = filename; }
void SetOutputNtuple(TString ntuplename) { fOutntuplename = ntuplename;}
void SetRangeToFit(Double_t multmin, Double_t multmax);
void SetRangeToScale(Double_t scalemin);
void SetRebin(Int_t f) { fRebinFactor=f; }
void UseAverage(Bool_t f) { fUseAverage=f; }
void UseChi2(Bool_t f) { fUseChi2=f; }
private:
Int_t fNmu;
Double_t fMulow;
Double_t fMuhigh;
Int_t fNk;
Double_t fKlow;
Double_t fKhigh;
Int_t fNalpha;
Double_t fAlphalow;
Double_t fAlphahigh;
Int_t fRebinFactor;
Double_t fScalemin;
Double_t fMultmin;
Double_t fMultmax;
TNtuple *fGlauntuple;
Float_t fNpart;
Float_t fNcoll;
Float_t fB;
Float_t fTaa;
Float_t fEffi;
TH1F *fhEffi;
TH1F *fTempHist;
TH1F *fGlauberHist;
Int_t fFastFit;
Int_t fAncestor;
TF1 * fNBD;
Bool_t fUseChi2;
Bool_t fUseAverage;
TH1F *fhAncestor;
Int_t fNevents;
Int_t fNtrials;
TString fInrootfilename;
TString fInntuplename;
TString fOutrootfilename;
TString fOutntuplename;
TString fAncfilename;
std::vector<TString> fHistnames;
Double_t CalculateChi2(TH1F *hDATA, TH1F *thistGlau);
TH1F *GetTriggerEfficiencyFunction(TH1F *hist1, TH1F *hist2);
Double_t GetTriggerEfficiencyIntegral(TH1F *hist1, TH1F *hist2);
TH1F *GlauberHisto(Double_t mu, Double_t k, Double_t alpha, TH1F *hDATA, Bool_t save=kFALSE);
TH1F *MakeAncestor(Double_t alpha);
Double_t NBD(Int_t n, Double_t mu, Double_t k) const;
TH1F *NBDhist(Double_t mu, Double_t k);
TH1F *NormalizeHisto(TString hdistributionName);
void SaveHisto(TH1F *hist1,TH1F *hist2,TH1F *heffi, TFile *outrootfile);
static void MinuitFcnNBD(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag);
static Double_t NBDFunc(const Double_t *p, const Double_t * x);
AliCentralityGlauberFit(const AliCentralityGlauberFit&);
AliCentralityGlauberFit &operator=(const AliCentralityGlauberFit&);
ClassDef(AliCentralityGlauberFit, 1)
};
#endif
AliCentralityGlauberFit.h:1 AliCentralityGlauberFit.h:2 AliCentralityGlauberFit.h:3 AliCentralityGlauberFit.h:4 AliCentralityGlauberFit.h:5 AliCentralityGlauberFit.h:6 AliCentralityGlauberFit.h:7 AliCentralityGlauberFit.h:8 AliCentralityGlauberFit.h:9 AliCentralityGlauberFit.h:10 AliCentralityGlauberFit.h:11 AliCentralityGlauberFit.h:12 AliCentralityGlauberFit.h:13 AliCentralityGlauberFit.h:14 AliCentralityGlauberFit.h:15 AliCentralityGlauberFit.h:16 AliCentralityGlauberFit.h:17 AliCentralityGlauberFit.h:18 AliCentralityGlauberFit.h:19 AliCentralityGlauberFit.h:20 AliCentralityGlauberFit.h:21 AliCentralityGlauberFit.h:22 AliCentralityGlauberFit.h:23 AliCentralityGlauberFit.h:24 AliCentralityGlauberFit.h:25 AliCentralityGlauberFit.h:26 AliCentralityGlauberFit.h:27 AliCentralityGlauberFit.h:28 AliCentralityGlauberFit.h:29 AliCentralityGlauberFit.h:30 AliCentralityGlauberFit.h:31 AliCentralityGlauberFit.h:32 AliCentralityGlauberFit.h:33 AliCentralityGlauberFit.h:34 AliCentralityGlauberFit.h:35 AliCentralityGlauberFit.h:36 AliCentralityGlauberFit.h:37 AliCentralityGlauberFit.h:38 AliCentralityGlauberFit.h:39 AliCentralityGlauberFit.h:40 AliCentralityGlauberFit.h:41 AliCentralityGlauberFit.h:42 AliCentralityGlauberFit.h:43 AliCentralityGlauberFit.h:44 AliCentralityGlauberFit.h:45 AliCentralityGlauberFit.h:46 AliCentralityGlauberFit.h:47 AliCentralityGlauberFit.h:48 AliCentralityGlauberFit.h:49 AliCentralityGlauberFit.h:50 AliCentralityGlauberFit.h:51 AliCentralityGlauberFit.h:52 AliCentralityGlauberFit.h:53 AliCentralityGlauberFit.h:54 AliCentralityGlauberFit.h:55 AliCentralityGlauberFit.h:56 AliCentralityGlauberFit.h:57 AliCentralityGlauberFit.h:58 AliCentralityGlauberFit.h:59 AliCentralityGlauberFit.h:60 AliCentralityGlauberFit.h:61 AliCentralityGlauberFit.h:62 AliCentralityGlauberFit.h:63 AliCentralityGlauberFit.h:64 AliCentralityGlauberFit.h:65 AliCentralityGlauberFit.h:66 AliCentralityGlauberFit.h:67 AliCentralityGlauberFit.h:68 AliCentralityGlauberFit.h:69 AliCentralityGlauberFit.h:70 AliCentralityGlauberFit.h:71 AliCentralityGlauberFit.h:72 AliCentralityGlauberFit.h:73 AliCentralityGlauberFit.h:74 AliCentralityGlauberFit.h:75 AliCentralityGlauberFit.h:76 AliCentralityGlauberFit.h:77 AliCentralityGlauberFit.h:78 AliCentralityGlauberFit.h:79 AliCentralityGlauberFit.h:80 AliCentralityGlauberFit.h:81 AliCentralityGlauberFit.h:82 AliCentralityGlauberFit.h:83 AliCentralityGlauberFit.h:84 AliCentralityGlauberFit.h:85 AliCentralityGlauberFit.h:86 AliCentralityGlauberFit.h:87 AliCentralityGlauberFit.h:88 AliCentralityGlauberFit.h:89 AliCentralityGlauberFit.h:90 AliCentralityGlauberFit.h:91 AliCentralityGlauberFit.h:92 AliCentralityGlauberFit.h:93 AliCentralityGlauberFit.h:94 AliCentralityGlauberFit.h:95 AliCentralityGlauberFit.h:96 AliCentralityGlauberFit.h:97 AliCentralityGlauberFit.h:98 AliCentralityGlauberFit.h:99 AliCentralityGlauberFit.h:100 AliCentralityGlauberFit.h:101 AliCentralityGlauberFit.h:102 AliCentralityGlauberFit.h:103 AliCentralityGlauberFit.h:104 AliCentralityGlauberFit.h:105 AliCentralityGlauberFit.h:106 AliCentralityGlauberFit.h:107