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/04/25 15:38:41 panos
15 * Importing the HBT code dir
17 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
18 * First version on CVS
20 * Revision 1.5 2002/06/07 22:51:39 lisa
21 * Widely used AliFemtoBPLCMS3DCorrFctn class now accumulates UNcorrected denominator and has a WriteOutHistos method
23 * Revision 1.4 2001/05/23 00:19:04 lisa
24 * Add in Smearing classes and methods needed for momentum resolution studies and correction
26 * Revision 1.3 2000/10/26 19:48:50 rcwells
27 * Added functionality for Coulomb correction of <qInv> in 3D correltions
29 * Revision 1.2 2000/09/14 18:36:53 lisa
30 * Added Qinv and ExitSep pair cuts and AliFemtoBPLCMS3DCorrFctn_SIM CorrFctn
32 * Revision 1.1 2000/08/17 20:48:39 lisa
33 * Adding correlationfunction in LCMS frame
37 **************************************************************************/
39 #ifndef AliFemtoBPLCMS3DCorrFctn_hh
40 #define AliFemtoBPLCMS3DCorrFctn_hh
42 #include "Base/AliFemtoCorrFctn.h"
43 //#include "Infrastructure/AliFemtoCoulomb.h"
44 #include "Base/AliFemtoPairCut.h"
45 //#include "Infrastructure/AliFemtoHisto.h"
47 //#include "Infrastructure/AliFemtoSmearPair.h"
49 class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
51 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
52 AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
53 virtual ~AliFemtoBPLCMS3DCorrFctn();
55 AliFemtoBPLCMS3DCorrFctn& operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
57 virtual AliFemtoString Report();
58 virtual void AddRealPair(const AliFemtoPair*);
59 virtual void AddMixedPair(const AliFemtoPair*);
61 virtual void Finish();
68 // here are get and set for the range over which the correlation function
69 // is normalized (in Qinv). The range is set to 0.15..0.18 in the constuctor
70 // by default, but the Set's below override this
71 void SetNormRangeLo(float qLo);
72 void SetNormRangeHi(float qHi);
73 float GetNormRangeLo();
74 float GetNormRangeHi();
76 void WriteOutHistos();
78 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
80 void SetSpecificPairCut(AliFemtoPairCut*);
82 // void SetSmearPair(AliFemtoSmearPair*);
83 void SetRout(double guess);
84 void SetRside(double guess);
85 void SetRlong(double guess);
86 void SetLambda(double guess);
89 // here are a whole bunch of histos that get filled if we do resolution correction
98 TH3D* fCorrectionHisto;
107 // TH3D* fUncorrectedDenominator;
111 // for resolution correction
112 // AliFemtoSmearPair* fSmearPair; //!
118 AliFemtoPairCut* fPairCut; //! this is a PairCut specific to THIS CorrFctn, not the Analysis
120 // upper and lower bounds of Qinv region where to do normalization
124 // and here are the number of pairs in that region...
125 unsigned long int fNumRealsNorm;
126 unsigned long int fNumMixedNorm;
128 // AliFemtoCoulomb* fCorrection; //!
132 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
136 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
137 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
138 //inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
139 inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
140 inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
141 inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
142 inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
143 inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo(){return fQinvNormLo;}
144 inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi(){return fQinvNormHi;}
145 //inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
146 inline void AliFemtoBPLCMS3DCorrFctn::SetSpecificPairCut(AliFemtoPairCut* pc){fPairCut=pc;}
147 //inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
149 inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
150 inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
151 inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
152 inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}