1 #ifndef ALIHBTWEIGHTASCORRFCTN_H
2 #define ALIHBTWEIGHTASCORRFCTN_H
4 ///////////////////////////////////////////////////////
6 // AliHBTWeightasCorrFctn.h //
8 // Class for calculating 3D Weightas correlation //
10 // author: Grzegorz.Galazka@cern.ch //
11 ///////////////////////////////////////////////////////
13 #include "AliHBTFunction.h"
16 class AliHBTWeightasCorrFctn: public AliHBTTwoPairFctn1D
19 AliHBTWeightasCorrFctn(const char* name = "asejdzbitiCF",
20 const char* title= "as Correlation Function");
22 AliHBTWeightasCorrFctn(const char* name, const char* title,
23 Int_t nbins, Float_t maxXval, Float_t minXval);
24 AliHBTWeightasCorrFctn(const AliHBTWeightasCorrFctn& in);
26 virtual ~AliHBTWeightasCorrFctn();
29 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
30 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
34 void SetNumberOfIntervals(Int_t N){fNumberOfIntervals = N;}
36 Int_t GetNumberOfIntervals() const {return fNumberOfIntervals;}
43 virtual Double_t GetValue(AliHBTPair* tpair, AliHBTPair* ppair) const = 0;
44 virtual void BuildHistos() = 0;
46 void SetParams(Int_t nbins,Float_t maxXval,Float_t minXval);
47 int Getnbins() const { return fnbins;}
48 double GetmaxXval() const {return fmaxXval;}
49 double GetminXval() const {return fminXval;}
51 TObjArray* fNum; // numerators array
52 TObjArray* fDen; // denominators array
53 TObjArray* fRat;// correl. fnctns array
57 int fnbins; //number of bins in histograms
58 Int_t fNumberOfIntervals; //number of intervals
59 double fmaxXval; //max histogram's X value
60 double fminXval; //min histogram's X value
62 ClassDef(AliHBTWeightasCorrFctn,1)
65 class AliHBTQOutWeightasCorrFctn: public AliHBTWeightasCorrFctn{
67 AliHBTQOutWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
69 virtual ~AliHBTQOutWeightasCorrFctn(){};
73 Double_t GetValue(AliHBTPair* pair, AliHBTPair* ppair) const {ppair=0; return TMath::Abs(pair->GetQOutLCMS());}
76 ClassDef(AliHBTQOutWeightasCorrFctn,1)
79 class AliHBTQSideWeightasCorrFctn: public AliHBTWeightasCorrFctn{
81 AliHBTQSideWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
82 virtual ~AliHBTQSideWeightasCorrFctn(){};
85 Double_t GetValue(AliHBTPair* pair, AliHBTPair* ppair) const {ppair=0;return TMath::Abs(pair->GetQSideLCMS());}
88 ClassDef(AliHBTQSideWeightasCorrFctn,1)
92 class AliHBTQLongWeightasCorrFctn: public AliHBTWeightasCorrFctn{
94 AliHBTQLongWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
96 virtual ~AliHBTQLongWeightasCorrFctn(){};
99 Double_t GetValue(AliHBTPair* pair,AliHBTPair* ppair) const {ppair=0;return TMath::Abs(pair->GetQLongLCMS());}
102 ClassDef(AliHBTQLongWeightasCorrFctn,1)
105 /********************************************************************************************************/
106 class AliHBTasWeightQOSLCorrFctn: public AliHBTTwoPairFctn3D
109 AliHBTasWeightQOSLCorrFctn(const char* name = "asejdzbiti3dCF",
110 const char* title= "as 3d Correlation Function");
112 AliHBTasWeightQOSLCorrFctn(const char* name, const char* title,Int_t nXbins , Double_t maxXval , Double_t minXval ,
113 Int_t nYbins, Double_t maxYval, Double_t minYval ,
114 Int_t nZbins, Double_t maxZval, Double_t minZval);
116 AliHBTasWeightQOSLCorrFctn(const AliHBTasWeightQOSLCorrFctn& in);
118 virtual ~AliHBTasWeightQOSLCorrFctn();
121 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
122 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
126 void SetNumberOfIntervals(Int_t N){fNumberOfIntervals = N;}
128 Int_t GetNumberOfIntervals(){return fNumberOfIntervals;}
135 Double_t GetValue(AliHBTPair* tpair, AliHBTPair* ppair);
137 void GetValues(AliHBTPair*, AliHBTPair*, Double_t&,Double_t&, Double_t&) const {};
138 void SetParams(Int_t nXbins,Float_t maxXval,Float_t minXval,Int_t nYbins,Float_t maxYval,Float_t minYval,Int_t nZbins,Float_t maxZval,Float_t minZval);
140 int GetnXbins(){ return fnXbins;}
141 double GetmaxXval(){return fmaxXval;}
142 double GetminXval(){return fminXval;}
144 int GetnYbins(){ return fnYbins;}
145 double GetmaxYval(){return fmaxYval;}
146 double GetminYval(){return fminYval;}
148 int GetnZbins(){ return fnZbins;}
149 double GetmaxZval(){return fmaxZval;}
150 double GetminZval(){return fminZval;}
152 Double_t Scale(TH3D* num, TH3D *den);
154 TObjArray* fNum; // numerators array
155 TObjArray* fDen; // denominators array
156 TObjArray* fRat;// correl. fnctns array
160 int fnXbins; //number of bins in histograms
161 Int_t fNumberOfIntervals; //number of intervals
162 double fmaxXval; //max histogram's X value
163 double fminXval; //min histogram's X value
166 double fmaxYval; //max histogram's X value
167 double fminYval; //min histogram's X value
168 double fmaxZval; //max histogram's X value
169 double fminZval; //min histogram's X value
172 ClassDef(AliHBTasWeightQOSLCorrFctn,1)