#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
Zbigniew.Chajecki@cern.ch
*/
-/******************************************************************/
-/******************************************************************/
+///////////////////////////////////////////////////////////////////////
+
-#include <Riostream.h>
ClassImp( AliHBTMonitorFunction )
-AliHBTMonitorFunction::AliHBTMonitorFunction()
+AliHBTMonitorFunction::AliHBTMonitorFunction():
+ fParticleCut(new AliAODParticleEmptyCut())
+{
+ //ctor
+}
+/******************************************************************/
+AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):
+ TNamed(name,title),
+ fParticleCut(new AliAODParticleEmptyCut())
{
- fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut
+ //ctor
}
/******************************************************************/
-AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):TNamed(name,title)
+AliHBTMonitorFunction::AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/):
+ TNamed(),
+ fParticleCut(new AliAODParticleEmptyCut())
{
- fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut
+ //cpy ctor
+ // We cannot copy because it is a mess with names (histogram and functions)
+ MayNotUse("AliHBTMonitorFunction(const AliHBTMonitorFunction&");
+}
+/******************************************************************/
+AliHBTMonitorFunction& AliHBTMonitorFunction::operator=(const AliHBTMonitorFunction& /*in*/)
+{
+ //assigment operator
+ // We cannot copy because it is a mess with names (histogram and functions)
+ MayNotUse("operator=");
+ return *this;
}
/******************************************************************/
AliHBTMonitorFunction::~AliHBTMonitorFunction()
{
- if (fParticleCut) delete fParticleCut;
+ //dtor
+ delete fParticleCut;
}
/******************************************************************/
-void AliHBTMonitorFunction::
-Write()
+void AliHBTMonitorFunction::Write()
{
+ //Writes an function to disk
if (GetResult()) GetResult()->Write();
}
/******************************************************************/
+void AliHBTMonitorFunction::Init()
+ {
+ //Writes an function to disk
+ if (AliVAODParticle::GetDebug()>0) Info("Init","%s",GetName());
+
+ if (GetResult() == 0x0)
+ {
+ Warning("Init","Function has NULL result histogram!");
+ return;
+ }
+ GetResult()->Reset();
+ GetResult()->SetDirectory(0x0);
+ if (AliVAODParticle::GetDebug()>0) Info("Init","%s Done.",GetName());
+ }
/******************************************************************/
-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
return;
}
delete fParticleCut;
- fParticleCut = (AliHBTParticleCut*)cut->Clone();
+ fParticleCut = (AliAODParticleCut*)cut->Clone();
}
-
/******************************************************************/
-void AliHBTMonitorFunction::
-Rename(const Char_t * name)
+void AliHBTMonitorFunction::Rename(const Char_t * name)
{
//renames the function and histograms
SetName(name);
//result histogram
GetResult()->SetName(numstr.Data());
GetResult()->SetTitle(numstr.Data());
-
-
}
+/******************************************************************/
-void AliHBTMonitorFunction::
-Rename(const Char_t * name, const Char_t * title)
+void AliHBTMonitorFunction::Rename(const Char_t * name, const Char_t * title)
{
//renames and retitle the function and histograms
/******************************************************************/
/******************************************************************/
ClassImp( AliHBTMonOneParticleFctn1D )
-AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D()
+AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D():
+ fResult(0x0)
{
- fResult = 0x0;
+ //ctor
}
+/******************************************************************/
-AliHBTMonOneParticleFctn1D::
-AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
+AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
-
fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
}
-AliHBTMonOneParticleFctn1D::
-AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
+AliHBTMonOneParticleFctn1D::AliHBTMonOneParticleFctn1D(const Char_t *name, const Char_t *title,
Int_t nbins, Double_t maxXval, Double_t minXval)
:AliHBTMonOneParticleFctn(name,title)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
fResult = new TH1D(numstr.Data(),numstr.Data(),nbins,minXval,maxXval);
+ fResult->SetDirectory(0x0);
+
}
/******************************************************************/
AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
{
- delete fResult;
+ //dtor
+ delete fResult;
}
/******************************************************************/
-void AliHBTMonOneParticleFctn1D::ProcessSameEventParticles(AliHBTParticle* particle)
+void AliHBTMonOneParticleFctn1D::Process(AliVAODParticle* particle)
{
//Fills the result
particle = CheckParticle(particle);
ClassImp( AliHBTMonOneParticleFctn2D )
-AliHBTMonOneParticleFctn2D::
-AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
+AliHBTMonOneParticleFctn2D::AliHBTMonOneParticleFctn2D(Int_t nXbins, Double_t maxXval, Double_t minXval ,
Int_t nYbins, Double_t maxYval, Double_t minYval)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
fResult = new TH2D(numstr.Data(),numstr.Data(),
nXbins,minXval,maxXval,
nYbins,minYval,maxYval);
-
+ fResult->SetDirectory(0x0);
}
+/******************************************************************/
AliHBTMonOneParticleFctn2D::~AliHBTMonOneParticleFctn2D()
{
+ //dtor
delete fResult;
}
-void AliHBTMonOneParticleFctn2D::ProcessSameEventParticles(AliHBTParticle* particle)
+void AliHBTMonOneParticleFctn2D::Process(AliVAODParticle* particle)
{
+ //fills the function for one particle
particle = CheckParticle(particle);
if(particle)
{
Int_t nZbins, Double_t maxZval, Double_t minZval)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
nXbins,minXval,maxXval,
nYbins,minYval,maxYval,
nZbins,minZval,maxZval);
+ fResult->SetDirectory(0x0);
}
/******************************************************************/
AliHBTMonOneParticleFctn3D::~AliHBTMonOneParticleFctn3D()
{
+ //dtor
delete fResult;
}
/******************************************************************/
AliHBTMonTwoParticleFctn1D::
AliHBTMonTwoParticleFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
fResult = new TH1D(numstr.Data(),numstr.Data(),
nbins,minval,maxval);
-
+ fResult->SetDirectory(0x0);
}
AliHBTMonTwoParticleFctn1D::
Int_t nbins, Double_t maxval, Double_t minval)
:AliHBTMonTwoParticleFctn(name,title)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
fResult = new TH1D(numstr.Data(),numstr.Data(),
nbins,minval,maxval);
-
+ fResult->SetDirectory(0x0);
}
/******************************************************************/
AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D()
{
+ //dtor
delete fResult;
}
/******************************************************************/
void AliHBTMonTwoParticleFctn1D::
-ProcessSameEventParticles(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
{
+ //fills the function for one particle
partparticle = CheckParticle(partparticle);
trackparticle = CheckParticle(trackparticle);
if( partparticle && trackparticle)
Int_t nYbins, Double_t maxYval, Double_t minYval)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
fResult = new TH2D(numstr.Data(),numstr.Data(),
nXbins,minXval,maxXval,
nYbins,minYval,maxYval);
-
+ fResult->SetDirectory(0x0);
}
/******************************************************************/
AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
{
+ //dtor
delete fResult;
}
/******************************************************************/
void AliHBTMonTwoParticleFctn2D::
-ProcessSameEventParticles(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
{
+ //fills the function for one particle
partparticle = CheckParticle(partparticle);
trackparticle = CheckParticle(trackparticle);
if( partparticle && trackparticle)
ClassImp(AliHBTMonTwoParticleFctn3D)
void AliHBTMonTwoParticleFctn3D::
-ProcessSameEventParticles(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
+Process(AliVAODParticle* trackparticle, AliVAODParticle* partparticle)
{
+ //fills the function for one particle
partparticle = CheckParticle(partparticle);
trackparticle = CheckParticle(trackparticle);
if( partparticle && trackparticle)