]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/DPhi/DiHadronPID/AliHistToolsDiHadronPID.h
minor changes for DiHadronPID code (Misha Veldhoen <Misha.Veldhoen@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / DiHadronPID / AliHistToolsDiHadronPID.h
1 #ifndef ALIHISTTOOLSDIHADRONPID_H
2 #define ALIHISTTOOLSDIHADRONPID_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * 
4 * See cxx source for full Copyright notice */ 
5 /* $Id$ */
6
7 class AliHistToolsDiHadronPID {
8
9 public:
10         AliHistToolsDiHadronPID() {};
11
12 protected:
13         ~AliHistToolsDiHadronPID() {};
14
15 public:
16
17         // Histogram Manipulation.
18         static TH1F* RebinVariableBinning(TH1F* histIn, Double_t* binsx, Int_t Nbinsx, Bool_t density = kTRUE);
19         static TH1F* RebinVariableBinning(TH1F* histIn, TH1F* histAxis, Bool_t density = kTRUE) {
20
21                 // Rebins histogram histIn to the x-axis of histAxis
22                 TAxis* xaxis = histAxis->GetXaxis();
23                 Int_t nbinsx = xaxis->GetNbins();
24                 const Double_t* binsx = (xaxis->GetXbins())->GetArray();
25                 return RebinVariableBinning(histIn, const_cast<Double_t*>(binsx), nbinsx, density);
26
27         }
28         static TH1F* TrimHisto(TH1F* histo, Int_t firstbin, Int_t lastbin);
29         static void ConstMinusHist(TH1F* histo, const Float_t cc = 1) {
30
31                 // h -> (c-h)
32                 Int_t nbins = histo->GetNbinsX();
33                 for (Int_t iBin = 0; iBin < (nbins + 1); iBin++) {
34                         Float_t bincontent = histo->GetBinContent(iBin);
35                         histo->SetBinContent(iBin,(cc - bincontent));
36                 }
37
38         }
39         static TH3F* MakeHist3D(const char* name, const char* title, 
40                 Int_t nbinsX, Double_t minX, Double_t maxX,
41                 Int_t nbinsY, Double_t minY, Double_t maxY,
42                 Int_t nbinsZ, const Double_t* zaxis) {
43
44                 const Double_t* xaxis = const_cast<Double_t*>(CreateAxis(nbinsX,minX,maxX));
45                 const Double_t* yaxis = const_cast<Double_t*>(CreateAxis(nbinsY,minY,maxY));
46
47                 TH3F* hout = new TH3F(name,title,nbinsX,xaxis,nbinsY,yaxis,nbinsZ,zaxis);
48         
49                 return hout;
50         }
51
52         // Histogram Visualization.
53         static TObjArray* CreateSpectraComparison(const char* name, const char* title, TH1F* h1, TH1F* h2, Int_t markerstyle = 8, Bool_t logy = kTRUE);
54
55 private:
56         static Double_t* CreateAxis(const Int_t nbins, Double_t min, Double_t max) {
57                 if (nbins <= 0) return 0x0;
58                 if (max < min) return 0x0;
59
60                 Double_t* axis = new Double_t[nbins + 1];
61                 Double_t binsize = (max - min)/((Double_t)nbins);
62                 for (Int_t iBin = 0; iBin < nbins + 1; iBin++) {
63                         axis[iBin] = min + ((Double_t)iBin) * binsize;
64                 }
65
66                 return axis;
67         }
68
69
70 };
71
72 #endif