]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - HBTAN/AliHBTCorrFitFctn.cxx
Added flow example script
[u/mrichter/AliRoot.git] / HBTAN / AliHBTCorrFitFctn.cxx
... / ...
CommitLineData
1#include "AliHBTCorrFitFctn.h"
2//____________________________________________________________
3///////////////////////////////////////////////////////////////
4// //
5// class AliHBTCorrFitFctn //
6// //
7// //
8///////////////////////////////////////////////////////////////
9
10ClassImp(AliHBTCorrFitFctn)
11
12/*****************************************************************/
13
14AliHBTCorrFitFctn::AliHBTCorrFitFctn():
15 AliHBTOnePairFctn1D(),
16 fNtuple(0x0),
17 fNPairsFitArea(0),
18 fNMaxPairsFitArea(3000000),
19 fFitRangeMax(0.05),
20 fNPairsNormArea(0),
21 fNMaxPairsNormArea(1000000),
22 fNormRangeMin(0.05),
23 fNormRangeMax(0.1)
24{
25//ctor
26 fWriteNumAndDen = kTRUE;//change default behaviour
27 Rename("wqinvcfCorrFit","Lednicky Weught Theoretical Q_{inv} Correlation Function");
28}
29/*****************************************************************/
30
31AliHBTCorrFitFctn::AliHBTCorrFitFctn(Int_t fit, Int_t norm):
32 AliHBTOnePairFctn1D(100,0.1,0.0),
33 fNtuple(new TNtuple("pair", "pair", "px1:py1:pz1:e1:px2:py2:pz2:e2")),
34 fNPairsFitArea(0),
35 fNMaxPairsFitArea(fit),
36 fFitRangeMax(0.05),
37 fNPairsNormArea(0),
38 fNMaxPairsNormArea(norm),
39 fNormRangeMin(0.05),
40 fNormRangeMax(0.1)
41{
42//ctor
43 fWriteNumAndDen = kTRUE;//change default behaviour
44 Rename("wqinvcfCorrFit","Lednicky Weught Theoretical Q_{inv} Correlation Function");
45}
46/*****************************************************************/
47
48void AliHBTCorrFitFctn::ProcessSameEventParticles(AliHBTPair* /*trackpair*/)
49{
50 //Fills the numerator using pair from the same event
51// partpair = CheckPair(partpair);
52 return;
53
54}
55/****************************************************************/
56
57void AliHBTCorrFitFctn::ProcessDiffEventParticles(AliHBTPair* trackpair)
58{
59 // Fills the denominator using mixed pairs
60 trackpair = CheckPair(trackpair);
61 if ( trackpair == 0x0) return;
62
63 Double_t q = 2.* trackpair->GetKStar();
64
65 Bool_t fill = kFALSE;
66
67 if ( q < fFitRangeMax )
68 {
69 if (fNPairsFitArea < fNMaxPairsFitArea)
70 {
71 fNPairsFitArea++;
72 fill = kTRUE;
73 }
74 else
75 {
76 Info("ProcessDiffEventParticles","Fit area already full");
77 }
78 }
79
80 if ( (q > fNormRangeMin) && (q < fNormRangeMax) )
81 {
82 if ( fNPairsNormArea < fNMaxPairsNormArea)
83 {
84 fNPairsNormArea++;
85 fill = kTRUE;
86 }
87 }
88 if (fill)
89 {
90 const AliVAODParticle& p1 = *(trackpair->Particle1());
91 const AliVAODParticle& p2 = *(trackpair->Particle2());
92 fNtuple->Fill(p1.Px(),p1.Py(),p1.Pz(),p1.E(),
93 p2.Px(),p2.Py(),p2.Pz(),p2.E());
94
95 fDenominator->Fill(q);
96 }
97
98
99}
100/*****************************************************************/
101
102TH1* AliHBTCorrFitFctn::GetResult()
103{
104//returns denominator
105 return fDenominator;
106}
107/**************************************************************/
108
109Int_t AliHBTCorrFitFctn::WriteFunction()
110{
111 //writes a function
112 Int_t retval = 0;
113 retval += AliHBTFunction::WriteFunction();
114 retval += fNtuple->Write(0,TObject::kOverwrite);
115 return retval;
116}