]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTCorrectQInvCorrelFctn.h
Missing entry in LinkDef
[u/mrichter/AliRoot.git] / HBTAN / AliHBTCorrectQInvCorrelFctn.h
CommitLineData
e09fa876 1#ifndef ALIHBTCORRECTQINVCORRELFCTN_H
2#define ALIHBTCORRECTQINVCORRELFCTN_H
83b33650 3//____________________
4///////////////////////////////////////////////////////
5// //
6// AliHBTCorrectQInvCorrelFctn //
7// //
8// Class for calculating Q Invariant correlation //
9// taking to the account resolution of the //
10// detector and coulomb effects. //
11// //
12///////////////////////////////////////////////////////
13
14#include "AliHBTFunction.h"
15
e09fa876 16class AliHBTCorrectQInvCorrelFctn: public AliHBTOnePairFctn1D
83b33650 17{
18 public:
19 AliHBTCorrectQInvCorrelFctn(const char* name = "qinvcorrectedCF",
20 const char* title= "Corrected Q_{inv} Correlation Fonction");
21
22 AliHBTCorrectQInvCorrelFctn(const char* name, const char* title,
23 Int_t nbins, Float_t maxXval, Float_t minXval);
24
25 AliHBTCorrectQInvCorrelFctn(TH1D* measqinv,
26 const char* name = "qinvcorrectedCF",
27 const char* title= "Corrected Q_{inv} Correlation Fonction");
e09fa876 28 AliHBTCorrectQInvCorrelFctn(const AliHBTCorrectQInvCorrelFctn& in);
29
83b33650 30 virtual ~AliHBTCorrectQInvCorrelFctn();
e09fa876 31
32 void SetInitialValues(Double_t lambda, Double_t r);
33 void Init();
34 void ProcessSameEventParticles(AliHBTPair* pair);//process particles from same event (real pair)
35 void ProcessDiffEventParticles(AliHBTPair* pair);//process particles coming from different events (mixed pairs)
36 void SetMeasuredHistogram(TH1D* meas){fMeasCorrelFctn = meas;}
37 TH1* GetResult();//returns the result histogram
83b33650 38 Double_t GetRadius()const{ return TMath::Sqrt(fR2);}//returns assumed radius
39 Double_t GetLambda()const{ return fLambda;}//retutrns assumed intercept parameter
40 void SetRadiusConvergenceTreshold(Double_t ct){fRConvergenceTreshold=ct;}//if fitted and assumed R us different less then that number con
41 void SetLambdaConvergenceTreshold(Double_t ct){fLambdaConvergenceTreshold=ct;}
42 Bool_t IsConverged();
43 void Fit();
44 Double_t GetFittedRadius();
45 Double_t GetFittedLambda();
46 void WriteAll();
47 void SetMeasNum(TH1D* measnum){fMeasNumer = measnum;}
48 void SetMeasDen(TH1D* h){fMeasDenom = h;}
49 void MakeMeasCF();
e09fa876 50
83b33650 51 protected:
52 virtual void BuildHistos(Int_t nbins, Float_t max, Float_t min);
470ae977 53 Double_t GetCoulombCorrection(AliHBTPair* /*pair*/){return 1.0;}
a22a56ec 54 Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
83b33650 55 void Smear(AliHBTPair* pair,AliHBTPair& smeared);
78d7c6d3 56 void Smear(AliVAODParticle* part, AliVAODParticle* smeared);
83b33650 57 Double_t GetModelValue(Double_t qinv);
58
59 //Our ideal numerator
e09fa876 60 TH1D* fMeasCorrelFctn; //Measured correlation function
61 TH1D* fMeasNumer;//Measured numerator correlation function
62 TH1D* fMeasDenom; //Measured denominator correlation function
83b33650 63
64 TH1D* fSmearedNumer; //! Numerator of smeard q
65 TH1D* fSmearedDenom; //! Denominator of smeard q
66
67 //Parameters of Pt RMS
68 //linear dependence dPt/Pt from Pt itself
69 Float_t fDPtOverPtRMS; //RMS of dPt/Pt
70
71 //We assume that RMS of Theta and Phisangle depends on Pt Like A+B*(Pt)^Alpha
72 //Idea copied from Star HBT Maker (Fabrice Retiere)
73 //Parameters comes from Monte Carlo Resolution Analysis
74
75 Float_t fThetaA; //"A" parameter of theta RMS dependence
76 Float_t fThetaB; //"B" parameter of theta RMS dependence
77 Float_t fThetaAlpha; //"Alpha" parameter (power) of theta RMS dependence
78
79 Float_t fPhiA;//"A" parameter of phi RMS dependence
80 Float_t fPhiB;//"B" parameter of phi RMS dependence
81 Float_t fPhiAlpha;//"Alpha" parameter (power) of phi RMS dependence
82
83 Double_t fR2;//square of radius
84 Double_t fLambda;//Interception parameter
85
86 Double_t fFittedR;//fitted radius
87 Double_t fFittedLambda;//fitted Interception parameter
88
e09fa876 89 Float_t fRConvergenceTreshold;//fRConvergenceTreshold
90 Float_t fLambdaConvergenceTreshold;//fLambdaConvergenceTreshold
91
83b33650 92 private:
83b33650 93 ClassDef(AliHBTCorrectQInvCorrelFctn,1)
94};
95
e09fa876 96inline Double_t AliHBTCorrectQInvCorrelFctn::GetModelValue(Double_t qinv)
83b33650 97{
98 //factor 0.038936366329 conected with units change GeV<->SI
99 return 1.0 + fLambda*TMath::Exp(-fR2*qinv*qinv/0.038936366329);
100}
101
83b33650 102#endif