#include <Riostream.h>
ClassImp( AliHBTMonitorFunction )
-AliHBTMonitorFunction::AliHBTMonitorFunction()
+AliHBTMonitorFunction::AliHBTMonitorFunction():
+ fParticleCut(new AliHBTEmptyParticleCut())
{
- fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut
+ //ctor
}
/******************************************************************/
-AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):TNamed(name,title)
+AliHBTMonitorFunction::AliHBTMonitorFunction(const char* name,const char* title):
+ TNamed(name,title),
+ fParticleCut(new AliHBTEmptyParticleCut())
{
- fParticleCut = new AliHBTEmptyParticleCut(); //dummy cut
+ //ctor
}
/******************************************************************/
+AliHBTMonitorFunction::AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/):
+ TNamed(),
+ fParticleCut(new AliHBTEmptyParticleCut())
+{
+ //cpy ctor
+ MayNotUse("AliHBTMonitorFunction(const AliHBTMonitorFunction&");
+}
+/******************************************************************/
+const AliHBTMonitorFunction& AliHBTMonitorFunction::operator=(const AliHBTMonitorFunction& /*in*/)
+{
+ //assigment operator
+ MayNotUse("operator=");
+ return *this;
+}
AliHBTMonitorFunction::~AliHBTMonitorFunction()
{
+ //dtor
if (fParticleCut) delete fParticleCut;
}
/******************************************************************/
-void AliHBTMonitorFunction::
-Write()
+void AliHBTMonitorFunction::Write()
{
+ //Writes an function to disk
if (GetResult()) GetResult()->Write();
}
/******************************************************************/
fParticleCut = (AliHBTParticleCut*)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
/******************************************************************/
AliHBTMonOneParticleFctn1D::~AliHBTMonOneParticleFctn1D()
{
- delete fResult;
+ //dtor
+ delete fResult;
}
/******************************************************************/
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);
-
}
+/******************************************************************/
AliHBTMonOneParticleFctn2D::~AliHBTMonOneParticleFctn2D()
{
+ //dtor
delete fResult;
}
void AliHBTMonOneParticleFctn2D::Process(AliHBTParticle* 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
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
Int_t nbins, Double_t maxval, Double_t minval)
:AliHBTMonTwoParticleFctn(name,title)
{
+ //ctor
TString numstr = fName + " Result"; //title and name of the
//result histogram
/******************************************************************/
AliHBTMonTwoParticleFctn1D::~AliHBTMonTwoParticleFctn1D()
{
+ //dtor
delete fResult;
}
/******************************************************************/
void AliHBTMonTwoParticleFctn1D::
Process(AliHBTParticle* trackparticle, AliHBTParticle* 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
/******************************************************************/
AliHBTMonTwoParticleFctn2D::~AliHBTMonTwoParticleFctn2D()
{
+ //dtor
delete fResult;
}
/******************************************************************/
void AliHBTMonTwoParticleFctn2D::
Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
{
+ //fills the function for one particle
partparticle = CheckParticle(partparticle);
trackparticle = CheckParticle(trackparticle);
if( partparticle && trackparticle)
void AliHBTMonTwoParticleFctn3D::
Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle)
{
+ //fills the function for one particle
partparticle = CheckParticle(partparticle);
trackparticle = CheckParticle(trackparticle);
if( partparticle && trackparticle)
-//Zbigniew.Chajecki@cern.ch
+//__________________________________________________________________
+////////////////////////////////////////////////////////////////////
+//
+/******************************************************************/
+/*
+Base classes for monitor functions
+
+ monitor function
+ / \
+ / \
+ / \
+ / \
+ / \
+ / \
+ / \
+ one particle two particle
+ / | \ / | \
+ / | \ / | \
+ 1D 2D 3D 1D 2D 3D
+
+Zbigniew.Chajecki@cern.ch
+
+*/
#ifndef ALIMONITORFUNCTION_H
#define ALIMONITORFUNCTION_H
#include <TH2.h>
#include <TH3.h>
-//class AliHBTAnalysis;
class AliHBTMonitorFunction: public TNamed
//Abstract base class for HBT functions
public:
AliHBTMonitorFunction();
AliHBTMonitorFunction(const char* name,const char* title);
+ AliHBTMonitorFunction(const AliHBTMonitorFunction& /*in*/);
virtual ~AliHBTMonitorFunction();
+ const AliHBTMonitorFunction& operator=(const AliHBTMonitorFunction& /*in*/);
+
+
virtual TH1* GetResult() = 0;
virtual void Write();
void Rename(const Char_t * name);
void Rename(const Char_t * name, const Char_t * title);
- void SetParticleCut(AliHBTParticleCut*);
+ void SetParticleCut(AliHBTParticleCut* cut);
- virtual AliHBTParticle* CheckParticle(AliHBTParticle* particle);
+ virtual AliHBTParticle* CheckParticle(AliHBTParticle* particle) const;
protected:
- AliHBTParticleCut* fParticleCut;
+ AliHBTParticleCut* fParticleCut;//Particle cut
- public:
+ private:
ClassDef(AliHBTMonitorFunction,1)
};
/******************************************************************/
/******************************************************************/
-inline AliHBTParticle* AliHBTMonitorFunction::CheckParticle(AliHBTParticle* particle)
+inline AliHBTParticle* AliHBTMonitorFunction::CheckParticle(AliHBTParticle* particle) const
{
//check if particle meets the cut criteria
if(fParticleCut->Pass(particle)) //if the particle is BAD
- {
- return 0x0;//it is BAD as well - so return
- }
+ {
+ return 0x0;//it is BAD as well - so return
+ }
return particle;
}
virtual void Process(AliHBTParticle* particle) = 0;
protected:
- public:
+ private:
ClassDef(AliHBTMonOneParticleFctn,1)
};
protected:
virtual Double_t GetValue(AliHBTParticle* particle) = 0;
- TH1D* fResult;
+ TH1D* fResult;//histogram to be filled
- public:
+ private:
ClassDef(AliHBTMonOneParticleFctn1D,2)
};
/******************************************************************/
protected:
virtual void GetValues(AliHBTParticle* particle, Double_t&, Double_t&) = 0;
- TH2D* fResult;
+ TH2D* fResult;//histogram to be filled
- public:
+ private:
ClassDef(AliHBTMonOneParticleFctn2D,1)
};
/******************************************************************/
TH1* GetResult(){return fResult;}
protected:
- TH3D* fResult;
+ TH3D* fResult;//histogram to be filled
- public:
+ private:
ClassDef(AliHBTMonOneParticleFctn3D,1)
};
/******************************************************************/
Process(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) = 0;
protected:
- public:
+ private:
ClassDef(AliHBTMonTwoParticleFctn,1)
};
{
public:
AliHBTMonTwoParticleFctn1D(Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
- AliHBTMonTwoParticleFctn1D(const char*,const char*,
+ AliHBTMonTwoParticleFctn1D(const char* name,const char* title,
Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
virtual ~AliHBTMonTwoParticleFctn1D();
protected:
virtual Double_t GetValue(AliHBTParticle* trackparticle, AliHBTParticle* partparticle) = 0;
- TH1D* fResult;
+ TH1D* fResult;//histogram to be filled
- public:
+ private:
ClassDef(AliHBTMonTwoParticleFctn1D,1)
};
/******************************************************************/
protected:
virtual void GetValues(AliHBTParticle*,AliHBTParticle*, Double_t&, Double_t&) = 0;
- TH2D* fResult;
+ TH2D* fResult;//histogram to be filled
- public:
+ private:
ClassDef(AliHBTMonTwoParticleFctn2D,1)
};
protected:
virtual void GetValues(AliHBTParticle*,AliHBTParticle*, Double_t&, Double_t&,Double_t&) = 0;
- TH3D* fResult;
+ TH3D* fResult; //histogram to be filled
- public:
+ private:
ClassDef(AliHBTMonTwoParticleFctn3D,1)
};
+//__________________________________________________________________
+////////////////////////////////////////////////////////////////////
+// //
+// General Remark: //
+// CMSLC means //
+// Center of Mass System Longitudially Co-moving //
+// //
+// //
+// This class creates resolution function of Qout //
+// (difference of simulated pair Qout and recontructed pair) //
+// in function of QInv //
+// it inherits from AliHBTTwoPairFctn2D //
+// it needs two pairs to compare //
+// and is two dimentional: numerator and denominator are TH2D //
+// //
+////////////////////////////////////////////////////////////////////
+
#include "AliHBTQResolutionFctns.h"
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("KtResolVsQInv","K_{t} Resolution vs. Q_{Inv}");
}
/******************************************************************/
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QInvResolVsQInv","Q_{Inv} Resolution vs. Q_{Inv}");
}
/******************************************************************/
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QOutResolVsQInv","Q_{Out} Resolution vs. Q_{Inv}");
}
/******************************************************************/
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QSideResolVsQInv","Q_{Side} Resolution vs. Q_{Inv}");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QLongResolVsQInv","Q_{Long} Resolution vs. Q_{Inv}");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QInvResolVsKt","Q_{Inv} Resolution vs. K_{t}");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QOutResolVsKt","Q_{Out} Resolution vs. K_{t} ");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QSideResolVsKt","Q_{Side} Resolution vs. K_{t} ");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QLongResolVsKt","Q_{Long} Resolution vs. K_{t} ");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QOutResolVsQOut","Q_{Out} Resolution vs. Q_{Out} ");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QSideResolVsQSide","Q_{Side} Resolution vs. Q_{Side} ");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("QLongResolVsQLong","Q_{Long} Resolution vs. Q_{Long} ");
}
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("PairThetaResolVsQInv","Pair Theta Angle Resolution vs. Q_{Inv} ");
}
/******************************************************************/
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("PairPhiResolVsQInv","Pair Phi Angle Resolution vs. Q_{Inv} ");
}
/******************************************************************/
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("PairThetaResolVsKt","Pair Theta Angle Resolution vs. K_{t} ");
}
/******************************************************************/
Int_t nYbins, Double_t maxYval, Double_t minYval):
AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
{
+//ctor
Rename("PairPhiResolVsKt","Pair Phi Angle Resolution vs. K_{t} ");
}
/******************************************************************/
#ifndef ALIHBTQOUTVsQINVRESOLFCTN_H
#define ALIHBTQOUTVsQINVRESOLFCTN_H
-//General Remark:
-//CMSLC means
-//Center of Mass System Longitudially Co-moving
+//__________________________________________________________________
+////////////////////////////////////////////////////////////////////
+// //
+// General Remark: //
+// CMSLC means //
+// Center of Mass System Longitudially Co-moving //
+// //
+// //
+// This class creates resolution function of Qout //
+// (difference of simulated pair Qout and recontructed pair) //
+// in function of QInv //
+// it inherits from AliHBTTwoPairFctn2D //
+// it needs two pairs to compare //
+// and is two dimentional: numerator and denominator are TH2D //
+// //
+////////////////////////////////////////////////////////////////////
-//this class creates resolution function of Qout
-//(difference of simulated pair Qout and recontructed pair)
-//in function of QInv
-//it inherits from AliHBTTwoPairFctn2D
-// it needs two pairs to compare
-// and is two dimentional: numerator and denominator are TH2D
-
class AliHBTKtResolVsQInvFctn; //Kt Res Vs QInvCMSLC
class AliHBTQOutResolVsQInvFctn; //QOutCMSLC Res Vs QInvCMSLC
}
protected:
private:
- public:
ClassDef(AliHBTKtResolVsQInvFctn,1)
};
}
protected:
private:
- public:
ClassDef(AliHBTQInvResolVsQInvFctn,1)
};
}
protected:
private:
- public:
ClassDef(AliHBTQOutResolVsQInvFctn,1)
};
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQSideResolVsQInvFctn,1)
};
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQLongResolVsQInvFctn,1)
};
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQInvResolVsKtFctn,1)
};
/***********************************************************************/
}
protected:
private:
- public:
ClassDef(AliHBTQOutResolVsKtFctn,1)
};
/***********************************************************************/
}
protected:
private:
- public:
ClassDef(AliHBTQSideResolVsKtFctn,1)
};
/***********************************************************************/
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQLongResolVsKtFctn,1)
};
/***********************************************************************/
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQOutResolVsQOutFctn,1)
};
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQSideResolVsQSideFctn,1)
};
TH1* GetResult(){return fNumerator;}
protected:
private:
- public:
ClassDef(AliHBTQLongResolVsQLongFctn,1)
};
}
protected:
private:
- public:
ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
};
}
protected:
private:
- public:
ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
};
}
protected:
private:
- public:
ClassDef(AliHBTPairThetaResolVsKtFctn,1)
};
}
protected:
private:
- public:
ClassDef(AliHBTPairPhiResolVsKtFctn,1)
};