1 ///////////////////////////////////////////////////////////////////////////
3 // AliFemtoBPLCMS3DCorrFctn: a class to calculate 3D correlation //
4 // for pairs of identical particles. //
6 ///////////////////////////////////////////////////////////////////////////
8 #ifndef ALIFEMTOBPLCMS3DCORRFCTN_H
9 #define ALIFEMTOBPLCMS3DCORRFCTN_H
11 #include "AliFemtoCorrFctn.h"
12 //#include "AliFemtoCoulomb.h"
13 #include "AliFemtoPairCut.h"
14 //#include "AliFemtoHisto.h"
16 //#include "AliFemtoSmearPair.h"
18 class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
20 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
21 AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
22 virtual ~AliFemtoBPLCMS3DCorrFctn();
24 AliFemtoBPLCMS3DCorrFctn& operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
26 virtual AliFemtoString Report();
27 virtual void AddRealPair( AliFemtoPair* aPair);
28 virtual void AddMixedPair( AliFemtoPair* aPair);
30 virtual void Finish();
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;
45 void WriteOutHistos();
46 virtual TList* GetOutputList();
48 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
50 void SetUseRPSelection(unsigned short aRPSel);
52 // void SetSmearPair(AliFemtoSmearPair*);
53 void SetRout(double guess);
54 void SetRside(double guess);
55 void SetRlong(double guess);
56 void SetLambda(double guess);
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 */
64 /* TH3D* fSMNumHisto; // mixed pairs numerator */
65 /* TH3D* fSMDenHisto; // mixed pairs denominator */
66 /* TH3D* fSMRatHisto; // mixed pairs ratio */
68 /* TH3D* fCorrectionHisto; // correction histogram */
69 /* TH3D* fCorrCFHisto; // Corrected CF */
71 TH3D* fNumerator; // numerator
72 TH3D* fDenominator; // denominator
73 // TH3D* fUncorrectedDenominator;
74 TH3D* fRatio; // ratio - the correlation function
75 TH3D* fQinvHisto; // Qinv weights
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
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
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
93 unsigned short fUseRPSelection; // The pair cut uses RP selection
95 // AliFemtoCoulomb* fCorrection; //!
99 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
103 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
104 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
105 //inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
106 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
107 inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
108 inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
109 inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
110 inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo() const{return fQinvNormLo;}
111 inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi() const{return fQinvNormHi;}
112 //inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
113 //inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
115 inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
116 inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
117 inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
118 inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}