Redesigned Code for Azimuthally Sesitive HBT (AsHBT) (G.Galazka)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTWeightasCorrFctn.h
CommitLineData
94a709e1 1#ifndef ALIHBTWEIGHTASCORRFCTN_H
2#define ALIHBTWEIGHTASCORRFCTN_H
3
4///////////////////////////////////////////////////////
5// //
6// AliHBTWeightasCorrFctn.h //
7// //
8// Class for calculating 3D Weightas correlation //
9// functions //
10// author: Grzegorz.Galazka@cern.ch //
11///////////////////////////////////////////////////////
12
13#include "AliHBTFunction.h"
14
15
16class AliHBTWeightasCorrFctn: public AliHBTTwoPairFctn1D
17{
18public:
19 AliHBTWeightasCorrFctn(const char* name = "asejdzbitiCF",
20 const char* title= "as Correlation Function");
21
22 AliHBTWeightasCorrFctn(const char* name, const char* title,
23 Int_t nbins, Float_t maxXval, Float_t minXval);
24 AliHBTWeightasCorrFctn(const AliHBTWeightasCorrFctn& in);
25
26 virtual ~AliHBTWeightasCorrFctn();
27
28 void Init();
29 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
30 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
31
32 void Write();
33
34 void SetNumberOfIntervals(Int_t N){fNumberOfIntervals = N;}
35
36 Int_t GetNumberOfIntervals(){return fNumberOfIntervals;}
37
38
39 TH1* GetResult();
40
41protected:
42
43 virtual Double_t GetValue(AliHBTPair* tpair, AliHBTPair* ppair) const = 0;
44 virtual void BuildHistos() = 0;
45
46 void SetParams(Int_t nbins,Float_t maxXval,Float_t minXval);
47 int Getnbins(){ return fnbins;}
48 double GetmaxXval(){return fmaxXval;}
49 double GetminXval(){return fminXval;}
50
51 TObjArray* fNum; // numerators array
52 TObjArray* fDen; // denominators array
53 TObjArray* fRat;// correl. fnctns array
54
55
56private:
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
61
62 ClassDef(AliHBTWeightasCorrFctn,1)
63};
64
65class AliHBTQOutWeightasCorrFctn: public AliHBTWeightasCorrFctn{
66public:
67 AliHBTQOutWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
68
69 virtual ~AliHBTQOutWeightasCorrFctn(){};
70
71
72protected:
73 Double_t GetValue(AliHBTPair* pair, AliHBTPair* ppair) const {ppair=0; return pair->GetQOutLCMS();}
74 void BuildHistos();
75private:
76 ClassDef(AliHBTQOutWeightasCorrFctn,1)
77};
78
79class AliHBTQSideWeightasCorrFctn: public AliHBTWeightasCorrFctn{
80public:
81 AliHBTQSideWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
82 virtual ~AliHBTQSideWeightasCorrFctn(){};
83
84protected:
85 Double_t GetValue(AliHBTPair* pair, AliHBTPair* ppair) const {ppair=0;return pair->GetQSideLCMS();}
86 void BuildHistos();
87private:
88 ClassDef(AliHBTQSideWeightasCorrFctn,1)
89};
90
91
92class AliHBTQLongWeightasCorrFctn: public AliHBTWeightasCorrFctn{
93public:
94 AliHBTQLongWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
95
96 virtual ~AliHBTQLongWeightasCorrFctn(){};
97
98protected:
99 Double_t GetValue(AliHBTPair* pair,AliHBTPair* ppair) const {ppair=0;return pair->GetQLongLCMS();}
100 void BuildHistos();
101private:
102 ClassDef(AliHBTQLongWeightasCorrFctn,1)
103};
104
105
106#endif