Initial check-in of the model classes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / CorrFctn / AliFemtoBPLCMS3DCorrFctn.h
CommitLineData
67427ff7 1/***************************************************************************
2 *
3 * $Id$
4 *
5 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6 ***************************************************************************
7 *
8 * Description: part of STAR HBT Framework: AliFemtoMaker package
9 * This one does 3D Bertsch-Pratt decomposition in the LCMS frame
10 *
11 ***************************************************************************
12 *
13 * $Log$
0215f606 14 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
15 * Importing the HBT code dir
16 *
67427ff7 17 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
18 * First version on CVS
19 *
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
22 *
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
25 *
26 * Revision 1.3 2000/10/26 19:48:50 rcwells
27 * Added functionality for Coulomb correction of <qInv> in 3D correltions
28 *
29 * Revision 1.2 2000/09/14 18:36:53 lisa
30 * Added Qinv and ExitSep pair cuts and AliFemtoBPLCMS3DCorrFctn_SIM CorrFctn
31 *
32 * Revision 1.1 2000/08/17 20:48:39 lisa
33 * Adding correlationfunction in LCMS frame
34 *
35 *
36 *
37 **************************************************************************/
38
39#ifndef AliFemtoBPLCMS3DCorrFctn_hh
40#define AliFemtoBPLCMS3DCorrFctn_hh
41
42#include "Base/AliFemtoCorrFctn.h"
43//#include "Infrastructure/AliFemtoCoulomb.h"
44#include "Base/AliFemtoPairCut.h"
45//#include "Infrastructure/AliFemtoHisto.h"
46#include "TH3D.h"
47//#include "Infrastructure/AliFemtoSmearPair.h"
48
49class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
50public:
51 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
0215f606 52 AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
67427ff7 53 virtual ~AliFemtoBPLCMS3DCorrFctn();
54
0215f606 55 AliFemtoBPLCMS3DCorrFctn& operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
56
67427ff7 57 virtual AliFemtoString Report();
58 virtual void AddRealPair(const AliFemtoPair*);
59 virtual void AddMixedPair(const AliFemtoPair*);
60
61 virtual void Finish();
62
63 TH3D* Numerator();
64 TH3D* Denominator();
65 TH3D* Ratio();
66 TH3D* QinvHisto();
67
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();
75
76 void WriteOutHistos();
77
78 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
79
80 void SetSpecificPairCut(AliFemtoPairCut*);
81
82 // void SetSmearPair(AliFemtoSmearPair*);
83 void SetRout(double guess);
84 void SetRside(double guess);
85 void SetRlong(double guess);
86 void SetLambda(double guess);
87
88
89 // here are a whole bunch of histos that get filled if we do resolution correction
90 TH3D* fIDNumHisto;
91 TH3D* fIDDenHisto;
92 TH3D* fIDRatHisto;
93 //
94 TH3D* fSMNumHisto;
95 TH3D* fSMDenHisto;
96 TH3D* fSMRatHisto;
97 //
98 TH3D* fCorrectionHisto;
99 TH3D* fCorrCFHisto;
100
101
102
103
104private:
105 TH3D* fNumerator;
106 TH3D* fDenominator;
107 // TH3D* fUncorrectedDenominator;
108 TH3D* fRatio;
109 TH3D* fQinvHisto;
110
111 // for resolution correction
112 // AliFemtoSmearPair* fSmearPair; //!
113 double fLambda;
114 double fRout2;
115 double fRside2;
116 double fRlong2;
117
118 AliFemtoPairCut* fPairCut; //! this is a PairCut specific to THIS CorrFctn, not the Analysis
119
120 // upper and lower bounds of Qinv region where to do normalization
121 float fQinvNormLo;
122 float fQinvNormHi;
123
124 // and here are the number of pairs in that region...
125 unsigned long int fNumRealsNorm;
126 unsigned long int fNumMixedNorm;
127
128 // AliFemtoCoulomb* fCorrection; //!
129
130
131#ifdef __ROOT__
132 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
133#endif
134};
135
136inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
137inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
138//inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
139inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
140inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
141inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
142inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
143inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo(){return fQinvNormLo;}
144inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi(){return fQinvNormHi;}
145//inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
146inline void AliFemtoBPLCMS3DCorrFctn::SetSpecificPairCut(AliFemtoPairCut* pc){fPairCut=pc;}
147//inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
148
149inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
150inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
151inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
152inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}
153
154#endif
155