new ctors
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Jan 2002 11:44:06 +0000 (11:44 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Jan 2002 11:44:06 +0000 (11:44 +0000)
HBTAN/AliHBTFunction.cxx
HBTAN/AliHBTFunction.h

index 1107ab5..d7dd981 100644 (file)
@@ -32,8 +32,12 @@ ClassImp( AliHBTFunction )
 
 AliHBTFunction::AliHBTFunction()
 {
- fPairCut = new AliHBTEmptyPairCut(); //dummy cut
+  fPairCut = new AliHBTEmptyPairCut(); //dummy cut
+}
+/******************************************************************/
+AliHBTFunction::AliHBTFunction(const char* name,const char* title):TNamed(name,title)
+{
+  fPairCut = new AliHBTEmptyPairCut(); //dummy cut
 }
 /******************************************************************/
 
@@ -164,6 +168,11 @@ ClassImp( AliHBTTwoPairFctn)
 /******************************************************************/
 
 ClassImp( AliHBTOnePairFctn1D )
+AliHBTOnePairFctn1D::AliHBTOnePairFctn1D():fNBinsToScale(30)
+ {
+   fNumerator = 0x0;
+   fDenominator = 0x0;
+ }
 
 AliHBTOnePairFctn1D::
 AliHBTOnePairFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
@@ -187,6 +196,24 @@ AliHBTOnePairFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
    fNBinsToScale = 30;
    
  }
+AliHBTOnePairFctn1D::
+AliHBTOnePairFctn1D(const Char_t *name, const Char_t *title,
+                    Int_t nbins, Double_t maxXval, Double_t minXval)
+       :AliHBTOnePairFctn(name,title)
+{
+   TString numstr = fName + " Numerator";  //title and name of the 
+                                           //numerator histogram
+   TString denstr = fName + " Denominator";//title and name of the 
+                                           //denominator histogram
+         
+   fNumerator   = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
+   fDenominator = new TH1D(denstr.Data(),denstr.Data(),nbins,minXval,maxXval);
+   
+   fNumerator->Sumw2();
+   fDenominator->Sumw2();
+   
+   fNBinsToScale = 30;
+}
 /******************************************************************/
 AliHBTOnePairFctn1D::~AliHBTOnePairFctn1D()
 {
@@ -350,18 +377,95 @@ AliHBTOnePairFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval,
    fDenominator->Sumw2();
 
 }        
-
+/******************************************************************/
 
 AliHBTOnePairFctn3D::~AliHBTOnePairFctn3D()
 {
   delete fNumerator;
   delete fDenominator;
 }
+/******************************************************************/
 
 
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
+ClassImp( AliHBTTwoPairFctn1D)
+
+AliHBTTwoPairFctn1D::
+AliHBTTwoPairFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
+ {
+   TString numstr = fName + " Numerator";  //title and name of the 
+                                           //numerator histogram
+   TString denstr = fName + " Denominator";//title and name of the 
+                                           //denominator histogram
+         
+   fNumerator   = new TH1D(numstr.Data(),numstr.Data(),
+                           nbins,minval,maxval);
+              
+   fDenominator = new TH1D(denstr.Data(),denstr.Data(),
+                           nbins,minval,maxval);
+   
+   fNumerator->Sumw2();
+   fDenominator->Sumw2();
+ }
+
+AliHBTTwoPairFctn1D::
+AliHBTTwoPairFctn1D(const Char_t* name, const Char_t* title,
+                    Int_t nbins, Double_t maxval, Double_t minval)
+       :AliHBTTwoPairFctn(name,title)
+ {
+   TString numstr = fName + " Numerator";  //title and name of the 
+                                           //numerator histogram
+   TString denstr = fName + " Denominator";//title and name of the 
+                                           //denominator histogram
+         
+   fNumerator   = new TH1D(numstr.Data(),numstr.Data(),
+                           nbins,minval,maxval);
+              
+   fDenominator = new TH1D(denstr.Data(),denstr.Data(),
+                           nbins,minval,maxval);
+   
+   fNumerator->Sumw2();
+   fDenominator->Sumw2();
+ }
+
+
+/******************************************************************/
+AliHBTTwoPairFctn1D::~AliHBTTwoPairFctn1D()
+{
+  delete fNumerator;
+  delete fDenominator;
+}
+void AliHBTTwoPairFctn1D::
+ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+  partpair  = CheckPair(partpair);
+  trackpair = CheckPair(trackpair);
+  if( partpair && trackpair) 
+   { 
+     Double_t x = GetValue(trackpair,partpair);
+     fNumerator->Fill(x);
+   }
+}
+/******************************************************************/
+
+void AliHBTTwoPairFctn1D::
+ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+  partpair  = CheckPair(partpair);
+  trackpair = CheckPair(trackpair);
+  if( partpair && trackpair)
+   { 
+     Double_t x = GetValue(trackpair,partpair);
+     fDenominator->Fill(x);
+   }
+
+}
+
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
 ClassImp( AliHBTTwoPairFctn2D)
 
 
@@ -419,3 +523,35 @@ ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
 
 }
 
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
+ClassImp(AliHBTTwoPairFctn3D)
+
+void AliHBTTwoPairFctn3D::
+ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+  partpair  = CheckPair(partpair);
+  trackpair = CheckPair(trackpair);
+  if( partpair && trackpair) 
+   { 
+     Double_t x,y,z;
+     GetValues(trackpair,partpair,x,y,z);
+     fNumerator->Fill(z,y,x);
+   }
+}
+
+void AliHBTTwoPairFctn3D::
+ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+  partpair  = CheckPair(partpair);
+  trackpair = CheckPair(trackpair);
+  if( partpair && trackpair)
+   { 
+     Double_t x,y,z;
+     GetValues(trackpair,partpair,x,y,z);
+     fDenominator->Fill(z,y,x);
+   }
+
+}
+
index c411c7e..5d86a9e 100644 (file)
 #include <TH2.h>
 #include <TH3.h>
 
+
 class AliHBTAnalysis;
 
 class AliHBTFunction: public TNamed
 //Abstract base class for HBT functions
-//
 {
   public:
     AliHBTFunction();
+    AliHBTFunction(const char* name,const char* title);
     virtual ~AliHBTFunction();
     
     virtual TH1* GetNumerator() =0;
@@ -64,6 +64,7 @@ class AliHBTOnePairFctn: public AliHBTFunction
 {
   public:
     AliHBTOnePairFctn(){}
+    AliHBTOnePairFctn(const Char_t *name, const Char_t *title):AliHBTFunction(name,title){}
     virtual ~AliHBTOnePairFctn(){}
     
     virtual void ProcessSameEventParticles(AliHBTPair* pair) = 0;
@@ -83,6 +84,7 @@ class AliHBTTwoPairFctn: public AliHBTFunction
 {
   public:
     AliHBTTwoPairFctn(){};
+    AliHBTTwoPairFctn(const Char_t *name, const Char_t *title):AliHBTFunction(name,title){}
     virtual ~AliHBTTwoPairFctn(){};
     
     virtual void 
@@ -104,7 +106,10 @@ class AliHBTTwoPairFctn: public AliHBTFunction
 class AliHBTOnePairFctn1D: public AliHBTOnePairFctn
 {
  public:
-  AliHBTOnePairFctn1D(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+  AliHBTOnePairFctn1D();
+  AliHBTOnePairFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval);
+  AliHBTOnePairFctn1D(const Char_t *name, const Char_t *title,
+                      Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
   virtual ~AliHBTOnePairFctn1D();
   
   
@@ -130,7 +135,7 @@ class AliHBTOnePairFctn1D: public AliHBTOnePairFctn
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
-
 class AliHBTOnePairFctn2D: public AliHBTOnePairFctn
 {
  public:
@@ -180,6 +185,29 @@ class AliHBTOnePairFctn3D: public AliHBTOnePairFctn
 /******************************************************************/
 /******************************************************************/
 
+class AliHBTTwoPairFctn1D: public AliHBTTwoPairFctn
+{
+ public:
+  AliHBTTwoPairFctn1D(Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
+  AliHBTTwoPairFctn1D(const char*,const char*,
+                      Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
+  ~AliHBTTwoPairFctn1D();
+  
+  TH1* GetNumerator(){return fNumerator;}
+  TH1* GetDenominator(){return fDenominator;}
+  
+  void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+  void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ protected:
+  virtual Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) = 0;
+
+  TH1D* fNumerator;
+  TH1D* fDenominator;
+  
+ public:
+  ClassDef(AliHBTTwoPairFctn1D,1)
+};
 
 
 /******************************************************************/
@@ -190,7 +218,7 @@ class AliHBTTwoPairFctn2D: public AliHBTTwoPairFctn
  public:
   AliHBTTwoPairFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0, 
                        Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15);
-  ~AliHBTTwoPairFctn2D();
+  virtual ~AliHBTTwoPairFctn2D();
   
   TH1* GetNumerator(){return fNumerator;}
   TH1* GetDenominator(){return fDenominator;}
@@ -213,6 +241,30 @@ class AliHBTTwoPairFctn2D: public AliHBTTwoPairFctn
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
+class AliHBTTwoPairFctn3D: public AliHBTTwoPairFctn
+{
+ public:
+  AliHBTTwoPairFctn3D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0, 
+                       Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15, 
+                       Int_t nZbins = 200, Double_t maxZval = .15, Double_t minZval =-0.15){}
+  virtual ~AliHBTTwoPairFctn3D(){}
+  
+  TH1* GetNumerator(){return fNumerator;}
+  TH1* GetDenominator(){return fDenominator;}
+  
+  void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+  void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+  
+ protected:
+  virtual void GetValues(AliHBTPair*,AliHBTPair*, Double_t&, Double_t&,Double_t&) = 0;
+
+  TH3D* fNumerator;
+  TH3D* fDenominator;
+  
+ public:
+  ClassDef(AliHBTTwoPairFctn3D,1)
+};
 
 /******************************************************************/
 /******************************************************************/