]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTMonitorFunction.cxx
Record changes.
[u/mrichter/AliRoot.git] / HBTAN / AliHBTMonitorFunction.cxx
index 72bf0badde6431815ace2857eb94badc4b157407..7454ce13509e2864932020ebef304b68b5a43435 100644 (file)
@@ -1,4 +1,42 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/* $Id$ */
+
+#include "AliLog.h"
 #include "AliHBTMonitorFunction.h"
+
+//__________________________________________________________________
+////////////////////////////////////////////////////////////////////
+//
+// class AliHBTMonitorFunction
+//
+// class AliHBTMonOneParticleFctn
+// class AliHBTMonTwoParticleFctn
+//
+// class AliHBTMonOneParticleFctn1D
+// class AliHBTMonOneParticleFctn2D
+// class AliHBTMonOneParticleFctn3D
+//
+// class AliHBTMonTwoParticleFctn1D
+// class AliHBTMonTwoParticleFctn2D
+// class AliHBTMonTwoParticleFctn3D
+//
+// Base Classes for monitoring functions
+// author: chajecki@if.pw.edu.pl
+//
 /******************************************************************/
 /*
 Base classes for monitor functions
@@ -19,56 +57,74 @@ Base classes for monitor functions
 Zbigniew.Chajecki@cern.ch
 
 */
-/******************************************************************/
-/******************************************************************/
+///////////////////////////////////////////////////////////////////////
+
 
-#include <Riostream.h>
 ClassImp( AliHBTMonitorFunction )
 
 AliHBTMonitorFunction::AliHBTMonitorFunction():
- fParticleCut(new AliHBTEmptyParticleCut())
+ fParticleCut(new AliAODParticleEmptyCut())
 {
   //ctor
 }
 /******************************************************************/
 AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):
  TNamed(name,title),
- fParticleCut(new AliHBTEmptyParticleCut())
+ fParticleCut(new AliAODParticleEmptyCut())
 {
   //ctor
 }
 /******************************************************************/
 AliHBTMonitorFunction::AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/):
  TNamed(),
- fParticleCut(new AliHBTEmptyParticleCut())
+ fParticleCut(new AliAODParticleEmptyCut())
 {
   //cpy ctor
+  // We cannot copy because it is a mess with names (histogram and functions)
   MayNotUse("AliHBTMonitorFunction(const AliHBTMonitorFunction&");
 }
 /******************************************************************/
-const AliHBTMonitorFunction& AliHBTMonitorFunction::operator=(const AliHBTMonitorFunction& /*in*/)
+AliHBTMonitorFunction& AliHBTMonitorFunction::operator=(const AliHBTMonitorFunction& /*in*/)
 {
-  //assigment operator
+  //assigment operator 
+  // We cannot copy because it is a mess with names (histogram and functions)
   MayNotUse("operator=");
   return *this;
 }
+/******************************************************************/
 
 AliHBTMonitorFunction::~AliHBTMonitorFunction()
  {
   //dtor
-  if (fParticleCut) delete fParticleCut;
+  delete fParticleCut;
  }
 /******************************************************************/
 
-void AliHBTMonitorFunction::Write()
+Int_t AliHBTMonitorFunction::Write(const char*,Int_t, Int_t)
  {
    //Writes an function to disk
    if (GetResult()) GetResult()->Write();
+   return 0;
  }
 /******************************************************************/
 
+void AliHBTMonitorFunction::Init()
+ {
+   //Writes an function to disk
+   AliDebug(1,"Entering");
+   
+   if (GetResult() == 0x0)
+    {
+      Warning("Init","Function has NULL result histogram!");
+      return;
+    }
+   GetResult()->Reset();
+   GetResult()->SetDirectory(0x0);
+   AliDebug(1,"Done");
+ }
 /******************************************************************/
-void AliHBTMonitorFunction::SetParticleCut(AliHBTParticleCut* cut)
+
+void AliHBTMonitorFunction::SetParticleCut(AliAODParticleCut* cut)
 {
 //Sets new Particle Cut. Old one is deleted
 //Note that it is created new object instead of simple pointer set
@@ -84,7 +140,7 @@ void AliHBTMonitorFunction::SetParticleCut(AliHBTParticleCut* cut)
      return;
    }
  delete fParticleCut;
- fParticleCut = (AliHBTParticleCut*)cut->Clone();
+ fParticleCut = (AliAODParticleCut*)cut->Clone();
  
 }
 /******************************************************************/
@@ -145,6 +201,7 @@ AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t max
    TString numstr = fName + " Result";  //title and name of the 
                                            //result histogram
    fResult   = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
+   fResult->Sumw2();
  }
 
 AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
@@ -156,6 +213,9 @@ AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(const Char_t *name, const
                                            //result histogram
          
    fResult   = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
+   
 }
 /******************************************************************/
 AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
@@ -165,7 +225,7 @@ AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
 }
 /******************************************************************/
 
-void AliHBTMonOneParticleFctn1D::Process(AliHBTParticle* particle)
+void AliHBTMonOneParticleFctn1D::Process(AliVAODParticle* particle)
 {
  //Fills the result
    particle = CheckParticle(particle);
@@ -187,6 +247,8 @@ AliHBTMonOneParticleFctn2D::AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t ma
    fResult   = new TH2D(numstr.Data(),numstr.Data(),
                            nXbins,minXval,maxXval,
               nYbins,minYval,maxYval);
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
 }        
 /******************************************************************/
 
@@ -195,7 +257,7 @@ AliHBTMonOneParticleFctn2D::~AliHBTMonOneParticleFctn2D()
   //dtor
   delete fResult;
 }
-void AliHBTMonOneParticleFctn2D::Process(AliHBTParticle* particle)
+void AliHBTMonOneParticleFctn2D::Process(AliVAODParticle* particle)
 {
   //fills the function for one particle
   particle = CheckParticle(particle);
@@ -227,6 +289,8 @@ AliHBTMonOneParticleFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            nXbins,minXval,maxXval,
               nYbins,minYval,maxYval,
               nZbins,minZval,maxZval);
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
 
 }        
 /******************************************************************/
@@ -253,7 +317,8 @@ AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
          
    fResult   = new TH1D(numstr.Data(),numstr.Data(),
                            nbins,minval,maxval);
-              
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
  }
 
 AliHBTMonTwoParticleFctn1D::
@@ -267,7 +332,8 @@ AliHBTMonTwoParticleFctn1D(const Char_t* name, const Char_t* title,
 
    fResult   = new TH1D(numstr.Data(),numstr.Data(),
                            nbins,minval,maxval);
-              
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
  }
 
 
@@ -279,7 +345,7 @@ AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D()
 }
 /******************************************************************/
 void AliHBTMonTwoParticleFctn1D::
-Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
 {
   //fills the function for one particle
   partparticle  = CheckParticle(partparticle);
@@ -308,7 +374,8 @@ AliHBTMonTwoParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
    fResult   = new TH2D(numstr.Data(),numstr.Data(),
                            nXbins,minXval,maxXval,
               nYbins,minYval,maxYval);
-              
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
 }        
 /******************************************************************/
 AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
@@ -318,7 +385,7 @@ AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
 }
 /******************************************************************/
 void AliHBTMonTwoParticleFctn2D::
-Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
 {
   //fills the function for one particle
   partparticle  = CheckParticle(partparticle);
@@ -336,7 +403,7 @@ Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
 ClassImp(AliHBTMonTwoParticleFctn3D)
 
 void AliHBTMonTwoParticleFctn3D::
-Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
 {
   //fills the function for one particle
   partparticle  = CheckParticle(partparticle);