]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoBPLCMS3DCorrFctn.h
Merge branch 'master_patch'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoBPLCMS3DCorrFctn.h
CommitLineData
76ce4b5b 1///////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoBPLCMS3DCorrFctn: a class to calculate 3D correlation //
4// for pairs of identical particles. //
5// //
6///////////////////////////////////////////////////////////////////////////
7
8#ifndef ALIFEMTOBPLCMS3DCORRFCTN_H
9#define ALIFEMTOBPLCMS3DCORRFCTN_H
10
11#include "AliFemtoCorrFctn.h"
12//#include "AliFemtoCoulomb.h"
13#include "AliFemtoPairCut.h"
14//#include "AliFemtoHisto.h"
15#include "TH3D.h"
16//#include "AliFemtoSmearPair.h"
17
18class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
19public:
20 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
21 AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
22 virtual ~AliFemtoBPLCMS3DCorrFctn();
23
24 AliFemtoBPLCMS3DCorrFctn& operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
25
26 virtual AliFemtoString Report();
27 virtual void AddRealPair( AliFemtoPair* aPair);
28 virtual void AddMixedPair( AliFemtoPair* aPair);
29
30 virtual void Finish();
31
32 TH3D* Numerator();
33 TH3D* Denominator();
34 TH3D* Ratio();
35 TH3D* QinvHisto();
36
37 // here are get and set for the range over which the correlation function
38 // is normalized (in Qinv). The range is set to 0.15..0.18 in the constuctor
39 // by default, but the Set's below override this
40 void SetNormRangeLo(float qLo);
41 void SetNormRangeHi(float qHi);
42 float GetNormRangeLo() const;
43 float GetNormRangeHi() const;
44
45 void WriteOutHistos();
46 virtual TList* GetOutputList();
47
48 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
49
50 void SetUseRPSelection(unsigned short aRPSel);
51
52 // void SetSmearPair(AliFemtoSmearPair*);
53 void SetRout(double guess);
54 void SetRside(double guess);
55 void SetRlong(double guess);
56 void SetLambda(double guess);
57
58private:
59/* // here are a whole bunch of histos that get filled if we do resolution correction */
60/* TH3D* fIDNumHisto; // true pairs numerator */
61/* TH3D* fIDDenHisto; // true pairs denominator */
62/* TH3D* fIDRatHisto; // true pairs ratio */
63/* // */
64/* TH3D* fSMNumHisto; // mixed pairs numerator */
65/* TH3D* fSMDenHisto; // mixed pairs denominator */
66/* TH3D* fSMRatHisto; // mixed pairs ratio */
67/* // */
68/* TH3D* fCorrectionHisto; // correction histogram */
69/* TH3D* fCorrCFHisto; // Corrected CF */
70
71 TH3D* fNumerator; // numerator
72 TH3D* fDenominator; // denominator
73 // TH3D* fUncorrectedDenominator;
74 TH3D* fRatio; // ratio - the correlation function
75 TH3D* fQinvHisto; // Qinv weights
76
77 // for resolution correction
78 // AliFemtoSmearPair* fSmearPair; //!
79 double fLambda; // lambda for smearing correction
80 double fRout2; // Rout for smearing correction
81 double fRside2; // Rside for smearing correction
82 double fRlong2; // Rlong for smearing correction
83
84 // upper and lower bounds of Qinv region where to do normalization
85 float fQinvNormLo; // Lower bound of Qinv normalization range
86 float fQinvNormHi; // Upper bound of Qinv normalization range
87
88 // and here are the number of pairs in that region...
89 unsigned long int fNumRealsNorm; // pairs in numerator in Qinv normalization range
90 unsigned long int fNumMixedNorm; // pairs in denominator in Qinv normalization range
91
92 protected:
93 unsigned short fUseRPSelection; // The pair cut uses RP selection
94
95 // AliFemtoCoulomb* fCorrection; //!
96
97
98#ifdef __ROOT__
99 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
100#endif
101};
102
103inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
104inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
105//inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
106inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
107inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
108inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
109inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
110inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo() const{return fQinvNormLo;}
111inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi() const{return fQinvNormHi;}
112//inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
113//inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
114
115inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
116inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
117inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
118inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}
119
120#endif
121