]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FLOW/blastwave/AliBlastwaveFit.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FLOW / blastwave / AliBlastwaveFit.cxx
1 #include<stdio.h>
2
3 #include"AliBlastwaveFit.h"
4
5 #include"TMath.h"
6
7 ClassImp(AliBlastwaveFit);
8
9 AliBlastwaveFit::AliBlastwaveFit(const char *name,Double_t mass) :
10   TNamed(name,name),
11   fMass(mass),
12   fFunctionYield(NULL),
13   fFunctionV2(NULL),
14   fSpectraObj(NULL),
15   fV2Obj(NULL),
16   fSpectraObjCopy(NULL),
17   fXmin(0.2),
18   fXmax(3.0)
19 {
20 }
21 //------------------------------------------------------------------------------
22 AliBlastwaveFit::AliBlastwaveFit() :
23   TNamed("BlastwaveFit","BlastwaveFit"),
24   fMass(0.0),
25   fFunctionYield(NULL),
26   fFunctionV2(NULL),
27   fSpectraObj(NULL),
28   fV2Obj(NULL),
29   fSpectraObjCopy(NULL),
30   fXmin(0.2),
31   fXmax(3.0)
32 {  
33 }
34 //------------------------------------------------------------------------------
35 AliBlastwaveFit::~AliBlastwaveFit(){
36 }
37 //------------------------------------------------------------------------------
38 void AliBlastwaveFit::SetSpectrumObj(TObject *obj){
39   fSpectraObj = obj;
40   if(fSpectraObj && fSpectraObj->InheritsFrom("TH1")) 
41     fSpectraObjCopy=(TH1 *)fSpectraObj;
42   else if(fSpectraObj && fSpectraObj->InheritsFrom("TGraphErrors")){
43     TGraphErrors *g = (TGraphErrors *)fSpectraObj;
44     Int_t np = g->GetN();
45     Float_t xbin[1000];
46     for(Int_t i=0;i<np;i++){
47       Float_t x = g->GetX()[i];
48       Float_t binwidth = g->GetEX()[i];
49       if(i==0 && np > 1){
50         Float_t binwidth2 = (g->GetX()[i+1] - x)/2;
51         if(binwidth2 > binwidth) binwidth = binwidth2;
52       }
53       else if(i != 0){
54         Float_t binwidth2 = (x - g->GetX()[i-1])/2;
55         if(binwidth2 > binwidth) binwidth = binwidth2;
56       }
57       xbin[i] = x - binwidth;
58       xbin[i+1] = x + binwidth;
59     }
60     fSpectraObjCopy= new TH1D(Form("%s%s",g->GetName(),"Copy"),g->GetTitle(),np,xbin);
61     for(Int_t i=0;i<np;i++){
62       fSpectraObjCopy->SetBinContent(i+1,g->GetY()[i]);
63       fSpectraObjCopy->SetBinError(i+1,g->GetEY()[i]);
64     }   
65   }
66 }