1 /***************************************************************************
5 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6 ***************************************************************************
8 * Description: part of STAR HBT Framework: AliFemtoMaker package
9 * This one does 3D Bertsch-Pratt decomposition in the LCMS frame
11 ***************************************************************************
14 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
15 * First version on CVS
17 * Revision 1.5 2002/06/07 22:51:39 lisa
18 * Widely used AliFemtoBPLCMS3DCorrFctn class now accumulates UNcorrected denominator and has a WriteOutHistos method
20 * Revision 1.4 2001/05/23 00:19:04 lisa
21 * Add in Smearing classes and methods needed for momentum resolution studies and correction
23 * Revision 1.3 2000/10/26 19:48:50 rcwells
24 * Added functionality for Coulomb correction of <qInv> in 3D correltions
26 * Revision 1.2 2000/09/14 18:36:53 lisa
27 * Added Qinv and ExitSep pair cuts and AliFemtoBPLCMS3DCorrFctn_SIM CorrFctn
29 * Revision 1.1 2000/08/17 20:48:39 lisa
30 * Adding correlationfunction in LCMS frame
34 **************************************************************************/
36 #ifndef AliFemtoBPLCMS3DCorrFctn_hh
37 #define AliFemtoBPLCMS3DCorrFctn_hh
39 #include "Base/AliFemtoCorrFctn.h"
40 //#include "Infrastructure/AliFemtoCoulomb.h"
41 #include "Base/AliFemtoPairCut.h"
42 //#include "Infrastructure/AliFemtoHisto.h"
44 //#include "Infrastructure/AliFemtoSmearPair.h"
46 class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
48 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
49 virtual ~AliFemtoBPLCMS3DCorrFctn();
51 virtual AliFemtoString Report();
52 virtual void AddRealPair(const AliFemtoPair*);
53 virtual void AddMixedPair(const AliFemtoPair*);
55 virtual void Finish();
62 // here are get and set for the range over which the correlation function
63 // is normalized (in Qinv). The range is set to 0.15..0.18 in the constuctor
64 // by default, but the Set's below override this
65 void SetNormRangeLo(float qLo);
66 void SetNormRangeHi(float qHi);
67 float GetNormRangeLo();
68 float GetNormRangeHi();
70 void WriteOutHistos();
72 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
74 void SetSpecificPairCut(AliFemtoPairCut*);
76 // void SetSmearPair(AliFemtoSmearPair*);
77 void SetRout(double guess);
78 void SetRside(double guess);
79 void SetRlong(double guess);
80 void SetLambda(double guess);
83 // here are a whole bunch of histos that get filled if we do resolution correction
92 TH3D* fCorrectionHisto;
101 // TH3D* fUncorrectedDenominator;
105 // for resolution correction
106 // AliFemtoSmearPair* fSmearPair; //!
112 AliFemtoPairCut* fPairCut; //! this is a PairCut specific to THIS CorrFctn, not the Analysis
114 // upper and lower bounds of Qinv region where to do normalization
118 // and here are the number of pairs in that region...
119 unsigned long int fNumRealsNorm;
120 unsigned long int fNumMixedNorm;
122 // AliFemtoCoulomb* fCorrection; //!
126 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
130 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
131 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
132 //inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
133 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
134 inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
135 inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
136 inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
137 inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo(){return fQinvNormLo;}
138 inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi(){return fQinvNormHi;}
139 //inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
140 inline void AliFemtoBPLCMS3DCorrFctn::SetSpecificPairCut(AliFemtoPairCut* pc){fPairCut=pc;}
141 //inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
143 inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
144 inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
145 inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
146 inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}