8bcc1321 |
1 | #include "AliHBTCorrFitFctn.h" |
2 | //____________________________________________________________ |
3 | /////////////////////////////////////////////////////////////// |
4 | // // |
5 | // class AliHBTCorrFitFctn // |
6 | // // |
7 | // // |
8 | /////////////////////////////////////////////////////////////// |
9 | |
8bcc1321 |
10 | ClassImp(AliHBTCorrFitFctn) |
11 | |
12 | /*****************************************************************/ |
13 | |
14 | AliHBTCorrFitFctn::AliHBTCorrFitFctn(Int_t nbins, Double_t maxXval, Double_t minXval): |
15 | AliHBTTwoPairFctn1D(nbins,maxXval,minXval), |
16 | fNtuple(new TNtuple("pair", "pair", "px1:py1:pz1:e1:px2:py2:pz2:e2")), |
17 | fNPairsFitArea(0), |
18 | fNPairsNormArea(0) |
19 | { |
20 | //ctor |
21 | fWriteNumAndDen = kTRUE;//change default behaviour |
22 | Rename("wqinvcfCorrFit","Lednicky Weught Theoretical Q_{inv} Correlation Function"); |
23 | } |
24 | /*****************************************************************/ |
25 | |
26 | void AliHBTCorrFitFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) |
27 | { |
28 | //Fills the numerator using pair from the same event |
29 | partpair = CheckPair(partpair); |
30 | if(partpair == 0x0) return; |
0bb07108 |
31 | trackpair = CheckPair(trackpair); |
32 | if(trackpair == 0x0) return; |
8bcc1321 |
33 | |
34 | Double_t q = trackpair->GetQInv(); |
35 | Bool_t fill = kFALSE; |
36 | |
dd82cadc |
37 | Double_t weight = partpair->GetWeight(); |
0bb07108 |
38 | fNumerator->Fill(q,weight); |
39 | |
8bcc1321 |
40 | if ( (q < 0.15) && (fNPairsFitArea < 2.e+5)) |
41 | { |
42 | fNPairsFitArea++; |
43 | fill = kTRUE; |
44 | } |
45 | |
46 | if ( (q > 0.15) && (q < 0.3) && (fNPairsFitArea < 1.e+5)) |
47 | { |
48 | fNPairsNormArea++; |
49 | fill = kTRUE; |
50 | } |
51 | |
52 | if (fill) |
53 | { |
8bcc1321 |
54 | const AliHBTParticle& p1 = *(trackpair->Particle1()); |
55 | const AliHBTParticle& p2 = *(trackpair->Particle2()); |
56 | fNtuple->Fill(p1.Px(),p1.Py(),p1.Pz(),p1.Energy(), |
0bb07108 |
57 | p2.Px(),p2.Py(),p2.Pz(),p2.Energy()); |
8bcc1321 |
58 | } |
59 | } |
60 | /****************************************************************/ |
61 | |
62 | void AliHBTCorrFitFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) |
63 | { |
64 | // Fills the denominator using mixed pairs |
65 | trackpair = CheckPair(trackpair); |
66 | partpair = CheckPair(partpair); |
67 | if ( trackpair && partpair) |
68 | { |
69 | fDenominator->Fill(trackpair->GetQInv()); |
70 | } |
71 | } |
72 | /*****************************************************************/ |
73 | |
74 | TH1* AliHBTCorrFitFctn::GetResult() |
75 | { |
76 | //returns ratio of numerator and denominator |
77 | return GetRatio(Scale()); |
78 | } |
79 | /**************************************************************/ |
80 | |
81 | void AliHBTCorrFitFctn::WriteFunction() |
82 | { |
83 | //writes a function |
84 | AliHBTFunction::WriteFunction(); |
85 | fNtuple->Write(0,TObject::kOverwrite); |
86 | } |