Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoBPLCMS3DCorrFctn.h
CommitLineData
d0e92d9a 1///////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoBPLCMS3DCorrFctn: a class to calculate 3D correlation //
4// for pairs of identical particles. //
5// //
6///////////////////////////////////////////////////////////////////////////
7
8#ifndef ALIFEMTOBPLCMS3DCORRFCTN_H
9#define ALIFEMTOBPLCMS3DCORRFCTN_H
10
11#include "AliFemtoCorrFctn.h"
12//#include "AliFemtoCoulomb.h"
13#include "AliFemtoPairCut.h"
14//#include "AliFemtoHisto.h"
67427ff7 15#include "TH3D.h"
d0e92d9a 16//#include "AliFemtoSmearPair.h"
67427ff7 17
18class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
19public:
20 AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
0215f606 21 AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
67427ff7 22 virtual ~AliFemtoBPLCMS3DCorrFctn();
23
0215f606 24 AliFemtoBPLCMS3DCorrFctn& operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
25
67427ff7 26 virtual AliFemtoString Report();
d0e92d9a 27 virtual void AddRealPair( AliFemtoPair* aPair);
28 virtual void AddMixedPair( AliFemtoPair* aPair);
67427ff7 29
30 virtual void Finish();
31
32 TH3D* Numerator();
33 TH3D* Denominator();
34 TH3D* Ratio();
35 TH3D* QinvHisto();
36
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);
d0e92d9a 42 float GetNormRangeLo() const;
43 float GetNormRangeHi() const;
67427ff7 44
45 void WriteOutHistos();
0b3bd1ac 46 virtual TList* GetOutputList();
67427ff7 47
48 // void SetCoulombCorrection(AliFemtoCoulomb* Correction);
49
fee52126 50 void SetUseRPSelection(unsigned short aRPSel);
67427ff7 51
52 // void SetSmearPair(AliFemtoSmearPair*);
53 void SetRout(double guess);
54 void SetRside(double guess);
55 void SetRlong(double guess);
56 void SetLambda(double guess);
57
d0e92d9a 58private:
b03c43fb 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 */
63/* // */
64/* TH3D* fSMNumHisto; // mixed pairs numerator */
65/* TH3D* fSMDenHisto; // mixed pairs denominator */
66/* TH3D* fSMRatHisto; // mixed pairs ratio */
67/* // */
68/* TH3D* fCorrectionHisto; // correction histogram */
69/* TH3D* fCorrCFHisto; // Corrected CF */
67427ff7 70
d0e92d9a 71 TH3D* fNumerator; // numerator
72 TH3D* fDenominator; // denominator
67427ff7 73 // TH3D* fUncorrectedDenominator;
d0e92d9a 74 TH3D* fRatio; // ratio - the correlation function
75 TH3D* fQinvHisto; // Qinv weights
67427ff7 76
77 // for resolution correction
78 // AliFemtoSmearPair* fSmearPair; //!
d0e92d9a 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
67427ff7 83
67427ff7 84 // upper and lower bounds of Qinv region where to do normalization
d0e92d9a 85 float fQinvNormLo; // Lower bound of Qinv normalization range
86 float fQinvNormHi; // Upper bound of Qinv normalization range
67427ff7 87
88 // and here are the number of pairs in that region...
d0e92d9a 89 unsigned long int fNumRealsNorm; // pairs in numerator in Qinv normalization range
90 unsigned long int fNumMixedNorm; // pairs in denominator in Qinv normalization range
67427ff7 91
a7ce447e 92 protected:
fee52126 93 unsigned short fUseRPSelection; // The pair cut uses RP selection
67427ff7 94
fee52126 95 // AliFemtoCoulomb* fCorrection; //!
96
67427ff7 97
98#ifdef __ROOT__
99 ClassDef(AliFemtoBPLCMS3DCorrFctn, 1)
100#endif
101};
102
103inline TH3D* AliFemtoBPLCMS3DCorrFctn::Numerator(){return fNumerator;}
104inline TH3D* AliFemtoBPLCMS3DCorrFctn::Denominator(){return fDenominator;}
105//inline TH3D* AliFemtoBPLCMS3DCorrFctn::UncorrectedDenominator(){return fUncorrectedDenominator;}
106inline TH3D* AliFemtoBPLCMS3DCorrFctn::Ratio(){return fRatio;}
107inline TH3D* AliFemtoBPLCMS3DCorrFctn::QinvHisto(){return fQinvHisto;}
108inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeLo(float qLo){fQinvNormLo = qLo;}
109inline void AliFemtoBPLCMS3DCorrFctn::SetNormRangeHi(float qHi){fQinvNormHi = qHi;}
d0e92d9a 110inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeLo() const{return fQinvNormLo;}
111inline float AliFemtoBPLCMS3DCorrFctn::GetNormRangeHi() const{return fQinvNormHi;}
67427ff7 112//inline void AliFemtoBPLCMS3DCorrFctn::SetCoulombCorrection(AliFemtoCoulomb* Correction){fCorrection = Correction;}
67427ff7 113//inline void AliFemtoBPLCMS3DCorrFctn::SetSmearPair(AliFemtoSmearPair* sp){fSmearPair = sp;}
114
115inline void AliFemtoBPLCMS3DCorrFctn::SetRout(double r){fRout2 = r*r;}
116inline void AliFemtoBPLCMS3DCorrFctn::SetRside(double r){fRside2 = r*r;}
117inline void AliFemtoBPLCMS3DCorrFctn::SetRlong(double r){fRlong2 = r*r;}
118inline void AliFemtoBPLCMS3DCorrFctn::SetLambda(double l){fLambda = l;}
119
120#endif
121