// //
///////////////////////////////////////////////////////////////
-#include "AliHBTLLWeights.h"
-
-
ClassImp(AliHBTCorrFitFctn)
/*****************************************************************/
-AliHBTCorrFitFctn::AliHBTCorrFitFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
- AliHBTTwoPairFctn1D(nbins,maxXval,minXval),
+AliHBTCorrFitFctn::AliHBTCorrFitFctn():
+ AliHBTOnePairFctn1D(),
+ fNtuple(0x0),
+ fNPairsFitArea(0),
+ fNMaxPairsFitArea(3000000),
+ fFitRangeMax(0.05),
+ fNPairsNormArea(0),
+ fNMaxPairsNormArea(1000000),
+ fNormRangeMin(0.05),
+ fNormRangeMax(0.1)
+{
+//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqinvcfCorrFit","Lednicky Weught Theoretical Q_{inv} Correlation Function");
+}
+/*****************************************************************/
+
+AliHBTCorrFitFctn::AliHBTCorrFitFctn(Int_t fit, Int_t norm):
+ AliHBTOnePairFctn1D(100,0.1,0.0),
fNtuple(new TNtuple("pair", "pair", "px1:py1:pz1:e1:px2:py2:pz2:e2")),
fNPairsFitArea(0),
- fNPairsNormArea(0)
+ fNMaxPairsFitArea(fit),
+ fFitRangeMax(0.05),
+ fNPairsNormArea(0),
+ fNMaxPairsNormArea(norm),
+ fNormRangeMin(0.05),
+ fNormRangeMax(0.1)
{
//ctor
fWriteNumAndDen = kTRUE;//change default behaviour
}
/*****************************************************************/
-void AliHBTCorrFitFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+void AliHBTCorrFitFctn::ProcessSameEventParticles(AliHBTPair* /*trackpair*/)
{
//Fills the numerator using pair from the same event
- partpair = CheckPair(partpair);
- if(partpair == 0x0) return;
-
- Double_t q = trackpair->GetQInv();
- Bool_t fill = kFALSE;
-
- if ( (q < 0.15) && (fNPairsFitArea < 2.e+5))
+// partpair = CheckPair(partpair);
+ return;
+
+}
+/****************************************************************/
+
+void AliHBTCorrFitFctn::ProcessDiffEventParticles(AliHBTPair* trackpair)
+{
+ // Fills the denominator using mixed pairs
+ trackpair = CheckPair(trackpair);
+ if ( trackpair == 0x0) return;
+
+ Double_t q = 2.* trackpair->GetKStar();
+
+ Bool_t fill = kFALSE;
+
+ if ( q < fFitRangeMax )
+ {
+ if (fNPairsFitArea < fNMaxPairsFitArea)
{
fNPairsFitArea++;
fill = kTRUE;
}
-
- if ( (q > 0.15) && (q < 0.3) && (fNPairsFitArea < 1.e+5))
+ else
+ {
+ Info("ProcessDiffEventParticles","Fit area already full");
+ }
+ }
+
+ if ( (q > fNormRangeMin) && (q < fNormRangeMax) )
+ {
+ if ( fNPairsNormArea < fNMaxPairsNormArea)
{
fNPairsNormArea++;
fill = kTRUE;
}
-
- if (fill)
- {
- Double_t weight = AliHBTLLWeights::Instance()->GetWeight(partpair);
- fNumerator->Fill(q,weight);
- const AliHBTParticle& p1 = *(trackpair->Particle1());
- const AliHBTParticle& p2 = *(trackpair->Particle2());
- fNtuple->Fill(p1.Px(),p1.Py(),p1.Pz(),p1.Energy(),
- p2.Px(),p2.Py(),p2.Pz(),p2.Energy());
- }
-}
-/****************************************************************/
+ }
+ if (fill)
+ {
+ const AliVAODParticle& p1 = *(trackpair->Particle1());
+ const AliVAODParticle& p2 = *(trackpair->Particle2());
+ fNtuple->Fill(p1.Px(),p1.Py(),p1.Pz(),p1.E(),
+ p2.Px(),p2.Py(),p2.Pz(),p2.E());
+
+ fDenominator->Fill(q);
+ }
+
-void AliHBTCorrFitFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
-{
- // Fills the denominator using mixed pairs
- trackpair = CheckPair(trackpair);
- partpair = CheckPair(partpair);
- if ( trackpair && partpair)
- {
- fDenominator->Fill(trackpair->GetQInv());
- }
}
/*****************************************************************/
TH1* AliHBTCorrFitFctn::GetResult()
{
-//returns ratio of numerator and denominator
- return GetRatio(Scale());
+//returns denominator
+ return fDenominator;
}
/**************************************************************/
-void AliHBTCorrFitFctn::WriteFunction()
+Int_t AliHBTCorrFitFctn::WriteFunction()
{
//writes a function
- AliHBTFunction::WriteFunction();
- fNtuple->Write(0,TObject::kOverwrite);
+ Int_t retval = 0;
+ retval += AliHBTFunction::WriteFunction();
+ retval += fNtuple->Write(0,TObject::kOverwrite);
+ return retval;
}