Modifications needed for the compilation of the femtoscopy code (Adam-Mike)
[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$
14 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
15 * First version on CVS
16 *
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
19 *
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
22 *
23 * Revision 1.3 2000/10/26 19:48:50 rcwells
24 * Added functionality for Coulomb correction of <qInv> in 3D correltions
25 *
26 * Revision 1.2 2000/09/14 18:36:53 lisa
27 * Added Qinv and ExitSep pair cuts and AliFemtoBPLCMS3DCorrFctn_SIM CorrFctn
28 *
29 * Revision 1.1 2000/08/17 20:48:39 lisa
30 * Adding correlationfunction in LCMS frame
31 *
32 *
33 *
34 **************************************************************************/
35
36#ifndef AliFemtoBPLCMS3DCorrFctn_hh
37#define AliFemtoBPLCMS3DCorrFctn_hh
38
39#include "Base/AliFemtoCorrFctn.h"
40//#include "Infrastructure/AliFemtoCoulomb.h"
41#include "Base/AliFemtoPairCut.h"
42//#include "Infrastructure/AliFemtoHisto.h"
43#include "TH3D.h"
44//#include "Infrastructure/AliFemtoSmearPair.h"
45
46class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
47public:
48 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
49 virtual ~AliFemtoBPLCMS3DCorrFctn();
50
51 virtual AliFemtoString Report();
52 virtual void AddRealPair(const AliFemtoPair*);
53 virtual void AddMixedPair(const AliFemtoPair*);
54
55 virtual void Finish();
56
57 TH3D* Numerator();
58 TH3D* Denominator();
59 TH3D* Ratio();
60 TH3D* QinvHisto();
61
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();
69
70 void WriteOutHistos();
71
72 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
73
74 void SetSpecificPairCut(AliFemtoPairCut*);
75
76 // void SetSmearPair(AliFemtoSmearPair*);
77 void SetRout(double guess);
78 void SetRside(double guess);
79 void SetRlong(double guess);
80 void SetLambda(double guess);
81
82
83 // here are a whole bunch of histos that get filled if we do resolution correction
84 TH3D* fIDNumHisto;
85 TH3D* fIDDenHisto;
86 TH3D* fIDRatHisto;
87 //
88 TH3D* fSMNumHisto;
89 TH3D* fSMDenHisto;
90 TH3D* fSMRatHisto;
91 //
92 TH3D* fCorrectionHisto;
93 TH3D* fCorrCFHisto;
94
95
96
97
98private:
99 TH3D* fNumerator;
100 TH3D* fDenominator;
101 // TH3D* fUncorrectedDenominator;
102 TH3D* fRatio;
103 TH3D* fQinvHisto;
104
105 // for resolution correction
106 // AliFemtoSmearPair* fSmearPair; //!
107 double fLambda;
108 double fRout2;
109 double fRside2;
110 double fRlong2;
111
112 AliFemtoPairCut* fPairCut; //! this is a PairCut specific to THIS CorrFctn, not the Analysis
113
114 // upper and lower bounds of Qinv region where to do normalization
115 float fQinvNormLo;
116 float fQinvNormHi;
117
118 // and here are the number of pairs in that region...
119 unsigned long int fNumRealsNorm;
120 unsigned long int fNumMixedNorm;
121
122 // AliFemtoCoulomb* fCorrection; //!
123
124
125#ifdef __ROOT__
126 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
127#endif
128};
129
130inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
131inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
132//inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
133inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
134inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
135inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
136inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
137inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo(){return fQinvNormLo;}
138inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi(){return fQinvNormHi;}
139//inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
140inline void AliFemtoBPLCMS3DCorrFctn::SetSpecificPairCut(AliFemtoPairCut* pc){fPairCut=pc;}
141//inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
142
143inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
144inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
145inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
146inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}
147
148#endif
149