Added preprocessor conditionals to support ROOT > 5.11.2.
[u/mrichter/AliRoot.git] / HBTAN / AliHBTCorrFitFctn.cxx
1 #include "AliHBTCorrFitFctn.h"
2 //____________________________________________________________
3 ///////////////////////////////////////////////////////////////
4 //                                                           //
5 // class AliHBTCorrFitFctn                                   //
6 //                                                           //
7 //                                                           //
8 ///////////////////////////////////////////////////////////////
9
10 ClassImp(AliHBTCorrFitFctn)
11
12 /*****************************************************************/
13
14 AliHBTCorrFitFctn::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
31 AliHBTCorrFitFctn::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
48 void 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
57 void  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
102 TH1* AliHBTCorrFitFctn::GetResult()
103 {
104 //returns denominator
105  return fDenominator;
106 }
107 /**************************************************************/
108
109 Int_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 }