ThePEG::FactoryBase Class Reference

Here is the documentation of the FactoryBase class. More...

#include <FactoryBase.h>

Inheritance diagram for ThePEG::FactoryBase:

ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted ThePEG::LWHFactory

List of all members.

Public Types

typedef AIDA::IHistogram1D * tH1DPtr
 Convenient typedef for pointer to AIDA::IHistogram1D.
typedef const AIDA::IHistogram1D * tcH1DPtr
 Convenient typedef for pointer to const AIDA::IHistogram1D.
typedef AIDA::IDataPointSet * tDSetPtr
 Convenient typedef for pointer to AIDA::IHistogram1D.
typedef const AIDA::IDataPointSet * tcDSetPtr
 Convenient typedef for pointer to const AIDA::IHistogram1D.

Public Member Functions

Standard constructors and destructors.
 FactoryBase ()
 The default constructor.
 FactoryBase (const FactoryBase &)
 The copy constructor.
virtual ~FactoryBase ()
 The destructor.
Simple access functions.
const string & filename () const
 Together with suffix(), the name of the file where the resulting histograms will be stored.
const string & suffix () const
 Together with filename(), the name of the file where the resulting histograms will be stored.
const string & storeType () const
 The format in which the histograms are stored in the output file.
Manipulate histograms
virtual void normalizeToXSec (tH1DPtr histogram, CrossSection unit=picobarn) const =0
 Rescale the given histogram so that the integral over the bins will give the correct integrated cross section for the observable in the given unit.
virtual void normalizeToXSecFraction (tH1DPtr histogram) const =0
 Rescale the given histogram so that the integral over the bins gives the fraction of the total cross section generated which is contained in the bins.
virtual void normalizeToUnity (tH1DPtr histogram) const =0
 Rescale the given histogram so that the integral over the bins gives one.
Access the underlying AIDA objects.
AIDA::IAnalysisFactory & analysisFactory () const
 Access the underlying AIDA::IAnalysisFactory object.
AIDA::ITree & tree () const
 Access the underlying AIDA::ITree object.
AIDA::IHistogramFactory & histogramFactory () const
 A pointer to the underlying AIDA::IHistogramFactory object.
AIDA::IDataPointSetFactory & dataSetFactory () const
 A pointer to the underlying AIDA::IDataPointSetFactory object.
void mkdir (const string &path)
 Create a new directory in the underlying AIDA tree.
void mkdirs (const string &path)
 Create a new directory in the underlying AIDA tree.
void cd (const string &path)
 Set the default working directory for the underlying AIDA tree.
tH1DPtr createHistogram1D (const string &path, int nb, double lo, double up)
 Create and return a AIDA::IHistogram1D object in the underlying AIDA histogram factory.
tH1DPtr createHistogram1D (const string &path, const string &title, int nb, double lo, double up)
 Create and return a AIDA::IHistogram1D object in the underlying AIDA histogram factory.
tH1DPtr createHistogram1D (const string &path, const string &title, const std::vector< double > &edges)
 Create and return a AIDA::IHistogram1D object in the underlying AIDA histogram factory.
DataFiller createDataSet (const string &path, const string &title, int dim)
 Create a IDataPointSet with the given path and title and containing points with the given number of dimensions, dim.
void registerClient (tIPtr client)
 Used by a client object to indicate that he has required histograms from this factory.
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces.

Protected Member Functions

void analysisFactory (AIDA::IAnalysisFactory *x)
 Set the underlying AIDA::IAnalysisFactory object.
void clear ()
 Delete all associated AIDA objects.
Standard Interfaced functions.
virtual void doinitrun ()
 Initialize this object.
virtual void dofinish ()
 Finalize this object.

Private Member Functions

FactoryBaseoperator= (const FactoryBase &)
 The assignment operator is private and must never be called.

Private Attributes

string theFilename
 Together with theSuffix, the name of the file where the resulting histograms will be stored.
string theSuffix
 Together with theFilename, the name of the file where the resulting histograms will be stored.
string theStoreType
 The format in which the histograms are stored in the output file.
AIDA::IAnalysisFactory * theAnalysisFactory
 A pointer to the underlying AIDA::IAnalysisFactory object.
AIDA::ITree * theTree
 A pointer to the underlying AIDA::ITree object.
AIDA::IHistogramFactory * theHistogramFactory
 A pointer to the underlying AIDA::IHistogramFactory object.
AIDA::IDataPointSetFactory * theDataSetFactory
 A pointer to the underlying AIDA::IDataPointSetFactory object.
set< IPtrclients
 A set of client objects which have required histograms from this factory.

Static Private Attributes

static
AbstractClassDescription
< FactoryBase
initFactoryBase
 The static object used to initialize the description of this class.

Classes

class  DataFiller
 DataFiller is a helper class to facilitate adding data to a DataPointSet. More...


Detailed Description

Here is the documentation of the FactoryBase class.

This abstract class is used to wrap the interface to a particular AIDA-compliant histogram package to be used in AnalysisHandlers in ThePEG. Concrete subclasses must implement the doinitrun() function to create an object of a class inheriting from AIDA::IAnalysisFactory and assign it with the analysisFactory(AIDA::IAnalysisFactory*) function before calling doinitrun() for the FactoryBase base class.

A FactoryBase object should be assigned to the EventGenerator object controlling a run, and AnalysisHandlers should access it via the Generator with the generator() function.

See also:
The interfaces defined for FactoryBase.

Definition at line 48 of file FactoryBase.h.


Member Function Documentation

const string& ThePEG::FactoryBase::filename (  )  const [inline]

Together with suffix(), the name of the file where the resulting histograms will be stored.

If empty, generator()->filename() will be used instead.

Definition at line 157 of file FactoryBase.h.

tH1DPtr ThePEG::FactoryBase::createHistogram1D ( const string &  path,
int  nb,
double  lo,
double  up 
) [inline]

Create and return a AIDA::IHistogram1D object in the underlying AIDA histogram factory.

Note that the histogram factory is responsible for deleting this histogram.

Parameters:
path the full path of where the histogram should be placed in the underlying AIDA tree (on the form "/dir/subdir/histogramname"). Not that the directory part of the path typically must already exist in the tree. The directories can be created with mkdir(string) or mkdirs(string). The title of the histogram will be set to the name part of the path.
nb the number of bins in the histogram.
lo the lower edge of the histogram.
up the upper edge of the histogram.
Returns:
a pointer to the created AIDA::IHistogram1D object.

Definition at line 253 of file FactoryBase.h.

tH1DPtr ThePEG::FactoryBase::createHistogram1D ( const string &  path,
const string &  title,
int  nb,
double  lo,
double  up 
) [inline]

Create and return a AIDA::IHistogram1D object in the underlying AIDA histogram factory.

Note that the histogram factory is responsible for deleting this histogram.

Parameters:
path the full path of where the histogram should be placed in the underlying AIDA tree (on the form "/dir/subdir/histogramname"). Not that the directory part of the path typically must already exist in the tree. The directories can be created with mkdir(string) or mkdirs(string).
title the title of the histogram.
nb the number of bins in the histogram.
lo the lower edge of the histogram.
up the upper edge of the histogram.
Returns:
a pointer to the created AIDA::IHistogram1D object.

Definition at line 272 of file FactoryBase.h.

tH1DPtr ThePEG::FactoryBase::createHistogram1D ( const string &  path,
const string &  title,
const std::vector< double > &  edges 
) [inline]

Create and return a AIDA::IHistogram1D object in the underlying AIDA histogram factory.

Note that the histogram factory is responsible for deleting this histogram.

Parameters:
path the full path of where the histogram should be placed in the underlying AIDA tree (on the form "/dir/subdir/histogramname"). Not that the directory part of the path typically must already exist in the tree. The directories can be created with mkdir(string) or mkdirs(string).
title the title of the histogram.
edges A vector of bin edges specifying th bins.
Returns:
a pointer to the created AIDA::IHistogram1D object.

Definition at line 290 of file FactoryBase.h.

DataFiller ThePEG::FactoryBase::createDataSet ( const string &  path,
const string &  title,
int  dim 
) [inline]

Create a IDataPointSet with the given path and title and containing points with the given number of dimensions, dim.

The returned object is a DataFiller which can be used to facilitate the addition of data points to the set or be converted to a pointer to the created IDataPointSet.

Definition at line 302 of file FactoryBase.h.

void ThePEG::FactoryBase::registerClient ( tIPtr  client  )  [inline]

Used by a client object to indicate that he has required histograms from this factory.

It is guaranteed that the clients finish() function is called before the underlying AIDA::ITree is committed and the AIDA::IHistogramFactory is deleted together with all histograms.

Definition at line 313 of file FactoryBase.h.

void ThePEG::FactoryBase::analysisFactory ( AIDA::IAnalysisFactory *  x  )  [inline, protected]

Set the underlying AIDA::IAnalysisFactory object.

Note that this surrenders the controll of the factory to the FactoryBase object which will delete it in the finish() function. Typically this function should be called by a concrete subclass in the doinitrun() function before the doinitrun() function of this class is called.

Definition at line 329 of file FactoryBase.h.

void ThePEG::FactoryBase::clear (  )  [protected]

Delete all associated AIDA objects.

Note that the tree is not explicitly committed.

Reimplemented from ThePEG::InterfacedBase.

void ThePEG::FactoryBase::persistentOutput ( PersistentOStream os  )  const

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

Reimplemented in ThePEG::LWHFactory.

void ThePEG::FactoryBase::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters:
is the persistent input stream read from.
version the version number of the object when written.

Reimplemented from ThePEG::Interfaced.

Reimplemented in ThePEG::LWHFactory.

static void ThePEG::FactoryBase::Init (  )  [static]

The standard Init function used to initialize the interfaces.

Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.

Reimplemented from ThePEG::Interfaced.

Reimplemented in ThePEG::LWHFactory.

virtual void ThePEG::FactoryBase::doinitrun (  )  [protected, virtual]

Initialize this object.

Called in the run phase just before a run begins.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::LWHFactory.

virtual void ThePEG::FactoryBase::dofinish (  )  [protected, virtual]

Finalize this object.

Called in the run phase just after a run has ended. Used eg. to write out statistics.

Reimplemented from ThePEG::InterfacedBase.

FactoryBase& ThePEG::FactoryBase::operator= ( const FactoryBase  )  [private]

The assignment operator is private and must never be called.

In fact, it should not even be implemented.


Member Data Documentation

Together with theSuffix, the name of the file where the resulting histograms will be stored.

If empty, generator()->filename() will be used instead.

Definition at line 390 of file FactoryBase.h.

The static object used to initialize the description of this class.

Indicates that this is an abstract class with persistent data.

Definition at line 435 of file FactoryBase.h.


The documentation for this class was generated from the following file:

Generated on Thu Apr 29 12:42:57 2010 for ThePEG by  doxygen 1.5.5