]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTCorrFitFctn.cxx
Updates in GRP Preprocessor (Ernesto)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTCorrFitFctn.cxx
index af14c6e7672c1885d863932039abd7ac6aeb8ab1..a3cdb831efa6d512dede10b3606e642af86f06e6 100644 (file)
@@ -11,11 +11,33 @@ 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
@@ -23,64 +45,72 @@ AliHBTCorrFitFctn::AliHBTCorrFitFctn(Int_t nbins, Double_t maxXval, Double_t min
 } 
 /*****************************************************************/
 
-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; 
-   trackpair = CheckPair(trackpair);
-   if(trackpair == 0x0) return; 
-   
-   Double_t q = trackpair->GetQInv();
-   Bool_t fill = kFALSE;
-   
-   Double_t weight = partpair->GetWeight();
-   fNumerator->Fill(q,weight);
-   
-   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)
-    {  
-      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());
-    }
-}
-/****************************************************************/
+   }
+  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;
 }