]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTMonitorFunction.cxx
Updated SPD QA for next production (D. Elia)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTMonitorFunction.cxx
index bb80b4f0f8125fa6b365dee80469b00ec02a4819..8ec967038d41c3e1e739d3378df7d4e4bd4df5b1 100644 (file)
@@ -1,4 +1,23 @@
+/**************************************************************************
+ * 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"
+
 //__________________________________________________________________
 ////////////////////////////////////////////////////////////////////
 //
@@ -44,28 +63,28 @@ Zbigniew.Chajecki@cern.ch
 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 
   // We cannot copy because it is a mess with names (histogram and functions)
@@ -81,15 +100,31 @@ AliHBTMonitorFunction::~AliHBTMonitorFunction()
  }
 /******************************************************************/
 
-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
@@ -105,7 +140,7 @@ void AliHBTMonitorFunction::SetParticleCut(AliHBTParticleCut* cut)
      return;
    }
  delete fParticleCut;
- fParticleCut = (AliHBTParticleCut*)cut->Clone();
+ fParticleCut = (AliAODParticleCut*)cut->Clone();
  
 }
 /******************************************************************/
@@ -160,23 +195,30 @@ AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D():
  }
 /******************************************************************/
 
-AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
+AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval) :
+  fResult(0)
  {
    //ctor
    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,
-                    Int_t nbins, Double_t maxXval, Double_t minXval)
-       :AliHBTMonOneParticleFctn(name,title)
+                                                      Int_t nbins, Double_t maxXval, Double_t minXval) :
+  AliHBTMonOneParticleFctn(name,title),
+  fResult(0)
+
 {
   //ctor
    TString numstr = fName + " Result";  //title and name of the 
                                            //result histogram
          
    fResult   = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
+   fResult->Sumw2();
+   fResult->SetDirectory(0x0);
+   
 }
 /******************************************************************/
 AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
@@ -186,7 +228,7 @@ AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
 }
 /******************************************************************/
 
-void AliHBTMonOneParticleFctn1D::Process(AliHBTParticle* particle)
+void AliHBTMonOneParticleFctn1D::Process(AliVAODParticle* particle)
 {
  //Fills the result
    particle = CheckParticle(particle);
@@ -198,8 +240,8 @@ void AliHBTMonOneParticleFctn1D::Process(AliHBTParticle* particle)
 ClassImp( AliHBTMonOneParticleFctn2D )
 
 AliHBTMonOneParticleFctn2D::AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval , 
-                    Int_t nYbins, Double_t maxYval, Double_t minYval)
-
+                                                      Int_t nYbins, Double_t maxYval, Double_t minYval) :
+   fResult(0)
 {
   //ctor
    TString numstr = fName + " Result";  //title and name of the 
@@ -208,6 +250,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);
 }        
 /******************************************************************/
 
@@ -216,7 +260,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);
@@ -237,8 +281,8 @@ ClassImp( AliHBTMonOneParticleFctn3D)
 AliHBTMonOneParticleFctn3D::
 AliHBTMonOneParticleFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval, 
                     Int_t nYbins, Double_t maxYval, Double_t minYval, 
-                    Int_t nZbins, Double_t maxZval, Double_t minZval)
-
+                    Int_t nZbins, Double_t maxZval, Double_t minZval) :
+   fResult(0)
 {
   //ctor
    TString numstr = fName + " Result";  //title and name of the 
@@ -248,6 +292,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);
 
 }        
 /******************************************************************/
@@ -266,7 +312,8 @@ AliHBTMonOneParticleFctn3D::~AliHBTMonOneParticleFctn3D()
 ClassImp( AliHBTMonTwoParticleFctn1D)
 
 AliHBTMonTwoParticleFctn1D::
-AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
+AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval) :
+  fResult(0)
  {
    //ctor
    TString numstr = fName + " Result";  //title and name of the 
@@ -274,13 +321,15 @@ 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::
 AliHBTMonTwoParticleFctn1D(const Char_t* name, const Char_t* title,
                     Int_t nbins, Double_t maxval, Double_t minval)
-       :AliHBTMonTwoParticleFctn(name,title)
+  :AliHBTMonTwoParticleFctn(name,title),
+   fResult(0)
  {
    //ctor
    TString numstr = fName + " Result";  //title and name of the 
@@ -288,7 +337,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);
  }
 
 
@@ -300,7 +350,7 @@ AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D()
 }
 /******************************************************************/
 void AliHBTMonTwoParticleFctn1D::
-Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
 {
   //fills the function for one particle
   partparticle  = CheckParticle(partparticle);
@@ -319,8 +369,8 @@ ClassImp( AliHBTMonTwoParticleFctn2D)
 
 AliHBTMonTwoParticleFctn2D::
 AliHBTMonTwoParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval , 
-                    Int_t nYbins, Double_t maxYval, Double_t minYval)
-
+                          Int_t nYbins, Double_t maxYval, Double_t minYval) :
+   fResult(0)
 {
   //ctor
    TString numstr = fName + " Result";  //title and name of the 
@@ -329,7 +379,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()
@@ -339,7 +390,7 @@ AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
 }
 /******************************************************************/
 void AliHBTMonTwoParticleFctn2D::
-Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
 {
   //fills the function for one particle
   partparticle  = CheckParticle(partparticle);
@@ -357,7 +408,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);