]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
CorrFit function added.
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 25 Aug 2003 15:50:11 +0000 (15:50 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 25 Aug 2003 15:50:11 +0000 (15:50 +0000)
HBTAN/AliHBTCorrFitFctn.cxx [new file with mode: 0644]
HBTAN/AliHBTCorrFitFctn.h [new file with mode: 0644]
HBTAN/HBTAnalysisLinkDef.h
HBTAN/libHBTAN.pkg

diff --git a/HBTAN/AliHBTCorrFitFctn.cxx b/HBTAN/AliHBTCorrFitFctn.cxx
new file mode 100644 (file)
index 0000000..66d4edb
--- /dev/null
@@ -0,0 +1,86 @@
+#include "AliHBTCorrFitFctn.h"
+//____________________________________________________________
+///////////////////////////////////////////////////////////////
+//                                                           //
+// class AliHBTCorrFitFctn                                   //
+//                                                           //
+//                                                           //
+///////////////////////////////////////////////////////////////
+
+#include "AliHBTLLWeights.h"
+
+
+ClassImp(AliHBTCorrFitFctn)
+
+/*****************************************************************/
+
+AliHBTCorrFitFctn::AliHBTCorrFitFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTTwoPairFctn1D(nbins,maxXval,minXval),
+ fNtuple(new TNtuple("pair", "pair", "px1:py1:pz1:e1:px2:py2:pz2:e2")),
+ fNPairsFitArea(0),
+ fNPairsNormArea(0)
+{
+//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqinvcfCorrFit","Lednicky Weught Theoretical Q_{inv} Correlation Function");
+} 
+/*****************************************************************/
+
+void AliHBTCorrFitFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //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))
+     {
+       fNPairsFitArea++;
+       fill = kTRUE;
+     }
+
+   if ( (q > 0.15) && (q < 0.3) && (fNPairsFitArea < 1.e+5))
+     {
+       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());
+    }
+}
+/****************************************************************/
+
+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());
+}
+/**************************************************************/
+
+void AliHBTCorrFitFctn::WriteFunction()
+{
+  //writes a function 
+  AliHBTFunction::WriteFunction();
+  fNtuple->Write(0,TObject::kOverwrite);
+}
diff --git a/HBTAN/AliHBTCorrFitFctn.h b/HBTAN/AliHBTCorrFitFctn.h
new file mode 100644 (file)
index 0000000..add8e8b
--- /dev/null
@@ -0,0 +1,36 @@
+#ifndef ALIHBTCORRFITFCTN_H
+#define ALIHBTCORRFITFCTN_H
+//____________________________________________________________
+///////////////////////////////////////////////////////////////
+//                                                           //
+// class AliHBTCorrFitFctn                                   //
+//                                                           //
+//                                                           //
+///////////////////////////////////////////////////////////////
+
+#include "AliHBTFunction.h"
+#include <TNtuple.h>
+
+class AliHBTCorrFitFctn: public AliHBTTwoPairFctn1D
+{
+//Q Invaraint Correlation Function
+//It writes Ntuple that is input for CorrFit
+ public:
+   AliHBTCorrFitFctn(Int_t nbins = 300, Double_t maxXval = 0.3, Double_t minXval = 0.0);
+   virtual ~AliHBTCorrFitFctn(){delete fNtuple;}
+   void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+   
+   TH1* GetResult();
+   void WriteFunction();
+ protected:
+   Double_t GetValue(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/){return 0.0;}//not usable
+   
+   TNtuple* fNtuple;//ntuple for storig pairs
+   Int_t    fNPairsFitArea;//number of pairs in fitting area
+   Int_t    fNPairsNormArea;//number of pairs in normalization area
+  public:
+   ClassDef(AliHBTCorrFitFctn,1)
+};
+
+#endif
index 44f11e7f5e300b96e420880ef1315fc82879205a..1af128b4814ccd7e4f370fa7db4b8b43a1cc9718 100644 (file)
@@ -83,6 +83,7 @@
 #pragma link C++ class AliHBTQSideCMSLCCorrelFctn+;
 
 #pragma link C++ class AliHBTInvMassCorrelFctn+;
+#pragma link C++ class AliHBTCorrFitFctn+;
 
 #pragma link C++ class AliHBTKtResolVsQInvFctn+;
 
index c38145c12c96ce005d54536619999734c48caed7..219216a50d00e75f7c1c107108d65377f1ac0974 100644 (file)
@@ -12,7 +12,8 @@ AliHBTQResolutionFctns.cxx      AliHBTQDistributionFctns.cxx \
 AliHBTMonDistributionFctns.cxx  AliHBTMonResolutionFctns.cxx \
 AliHBTLLWeights.cxx             AliHBTLLWeightFctn.cxx \
 AliHBTLLWeightsPID.cxx          AliHBTLLWeightTheorFctn.cxx \
-AliHBTPositionRandomizer.cxx AliHBTEventBuffer.cxx
+AliHBTPositionRandomizer.cxx AliHBTEventBuffer.cxx \
+AliHBTCorrFitFctn.cxx
 
 FSRCS   = fsiini.F  fsiw.F  led_bldata.F  ltran12.F