ThePEG is hosted by Hepforge, IPPP Durham
ThePEG  2.1.0
ThePEG::FactoryBase Class Referenceabstract

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

#include <FactoryBase.h>

Inheritance diagram for ThePEG::FactoryBase:

Classes

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

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::IHistogram2D * tH2DPtr
 Convenient typedef for pointer to AIDA::IHistogram2D.
 
typedef const AIDA::IHistogram2D * tcH2DPtr
 Convenient typedef for pointer to const AIDA::IHistogram2D.
 
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 Types inherited from ThePEG::InterfacedBase
enum  InitState { initializing = -1, uninitialized = 0, initialized = 1, runready = 2 }
 Enumeration reflecting the state of an InterfacedBase object. More...
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 The integer type used for counting.
 

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. More...
 
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 normalizeToXSec (tH2DPtr 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 normalizeToXSecFraction (tH2DPtr 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.
 
virtual void normalizeToUnity (tH2DPtr 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. More...
 
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. More...
 
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. More...
 
tH2DPtr createHistogram2D (const string &path, int nbx, double xlo, double xup, int nby, double ylo, double yup)
 Create and return a AIDA::IHistogram2D object in the underlying AIDA histogram factory. More...
 
tH2DPtr createHistogram2D (const string &path, const string &title, int nbx, double xlo, double xup, int nby, double ylo, double yup)
 Create and return a AIDA::IHistogram2D object in the underlying AIDA histogram factory. More...
 
tH2DPtr createHistogram2D (const string &path, const string &title, const std::vector< double > &xedges, const std::vector< double > &yedges)
 Create and return a AIDA::IHistogram2D object in the underlying AIDA histogram factory. More...
 
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. More...
 
void registerClient (tIPtr client)
 Used by a client object to indicate that he has required histograms from this factory. More...
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual ~Interfaced ()
 Empty virtual destructor.
 
virtual bool defaultInit ()
 Functions which are to be used during the actual event generation, after the setup is complete. More...
 
PPtr getParticle (PID) const
 Create a new Particle instance given a id number.
 
PDPtr getParticleData (PID) const
 Return a pointer to the ParticleData object corresponding to the given id number.
 
bool used () const
 Returns true if this object has actally been used.
 
void useMe () const
 Should be called to indicate that this object has actually been used.
 
tEGPtr generator () const
 Return a pointer to the EventGenerator controlling the run. More...
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::InterfacedBase
virtual ~InterfacedBase ()
 The virtual (empty) destructor;.
 
string fullName () const
 Returns the full name of this object including its path, e.g. More...
 
string name () const
 Returns the name of this object, without the path.
 
string path () const
 Returns the path to this object including the trailing '/'. More...
 
string comment () const
 Returns a comment assigned to this object.
 
void setup (istream &is)
 Read setup info from a standard istream is. More...
 
virtual IBPtr fullclone () const
 Return a full clone of this object possibly doing things to the clone to make it sane.
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr. More...
 
void update ()
 Calls the doupdate() function with recursion prevention.
 
void init ()
 Calls the doinit() function with recursion prevention.
 
virtual bool preInitialize () const
 Return true if this object needs to be initialized before all other objects (except those for which this function also returns true). More...
 
void initrun ()
 Calls the doinitrun() function with recursion prevention.
 
void finish ()
 Calls the dofinish() function with recursion prevention.
 
void touch ()
 This function should be called every time something in this object has changed in a way that a sanity check with update() is needed.
 
void reset ()
 Set the state of this object to uninitialized.
 
void clear ()
 Calls reset() and unTouch().
 
InitState state () const
 Return the state of initialization of this object.
 
bool locked () const
 Return true if the BaseRepository is not allowed to change the state of this object.
 
bool touched () const
 Return true if the state of this object has been changed since the last call to update().
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::Base
virtual ~Base ()
 The virtual destructor.
 
void debug () const
 Print out debugging information for this object on std::cerr. More...
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 Return the reference count.
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 Constructor with name.
 
const string & name () const
 Return name.
 
bool operator== (const Named &other) const
 Test for equality.
 
bool operator< (const Named &other) const
 Lexicographical comparison.
 

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 Standard Init function.
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 Standard Init function.
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 

Protected Member Functions

void analysisFactory (AIDA::IAnalysisFactory *x)
 Set the underlying AIDA::IAnalysisFactory object. More...
 
void clear ()
 Delete all associated AIDA objects. More...
 
Standard Interfaced functions.
virtual void doinitrun ()
 Initialize this object. More...
 
virtual void dofinish ()
 Finalize this object. More...
 
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 Register the given object in the Repository with the given name in a subdirectory with the same name as this object. More...
 
template<typename PtrT >
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 If the pointer, ptr, to an object is not set, create an object of class classname and register it with the Repository with the given objectname in a sib-directory with the same name as this object.
 
 Interfaced ()
 Protected default constructor.
 
 Interfaced (const string &newName)
 Protected constructor taking a name as argument.
 
 Interfaced (const Interfaced &i)
 Protected copy-constructor.
 
void setGenerator (tEGPtr generator)
 Protected function to reset the generator pointer, required for automatic decayer generation in Herwig++ BSM models.
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
virtual IBPtr clone () const =0
 Return a simple clone of this object. More...
 
 InterfacedBase ()
 Protected default constructor.
 
 InterfacedBase (string newName)
 Protected constructor with the name given as argument.
 
 InterfacedBase (const InterfacedBase &i)
 Protected copy-constructor.
 
virtual void readSetup (istream &is)
 Read setup info from a standard istream is. More...
 
virtual void doupdate ()
 Check sanity of the object during the setup phase. More...
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
virtual IVector getReferences ()
 Return a vector of all pointers to Interfaced objects used in this object. More...
 
virtual void rebind (const TranslationMap &)
 Rebind pointer to other Interfaced objects. More...
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 Assignment.
 
const string & name (const string &newName)
 Set new name.
 

Private Member Functions

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

Private Attributes

string theFilename
 Together with theSuffix, the name of the file where the resulting histograms will be stored. More...
 
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< FactoryBaseinitFactoryBase
 The static object used to initialize the description of this class. More...
 

Additional Inherited Members

- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 The unique ID. More...
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 Register an Interfaced object with the Repository.
 
static void registerRepository (IBPtr, string newName)
 Register an Interfaced object with the Repository, giving it a name.
 

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 47 of file FactoryBase.h.

Member Function Documentation

◆ analysisFactory()

void ThePEG::FactoryBase::analysisFactory ( AIDA::IAnalysisFactory *  x)
inlineprotected

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 406 of file FactoryBase.h.

◆ clear()

void ThePEG::FactoryBase::clear ( )
protected

Delete all associated AIDA objects.

Note that the tree is not explicitly committed.

◆ createDataSet()

DataFiller ThePEG::FactoryBase::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.

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.

◆ createHistogram1D() [1/3]

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

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
paththe 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.
nbthe number of bins in the histogram.
lothe lower edge of the histogram.
upthe upper edge of the histogram.
Returns
a pointer to the created AIDA::IHistogram1D object.

◆ createHistogram1D() [2/3]

tH1DPtr ThePEG::FactoryBase::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.

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

Parameters
paththe 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).
titlethe title of the histogram.
nbthe number of bins in the histogram.
lothe lower edge of the histogram.
upthe upper edge of the histogram.
Returns
a pointer to the created AIDA::IHistogram1D object.

◆ createHistogram1D() [3/3]

tH1DPtr ThePEG::FactoryBase::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.

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

Parameters
paththe 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).
titlethe title of the histogram.
edgesA vector of bin edges specifying th bins.
Returns
a pointer to the created AIDA::IHistogram1D object.

◆ createHistogram2D() [1/3]

tH2DPtr ThePEG::FactoryBase::createHistogram2D ( const string &  path,
int  nbx,
double  xlo,
double  xup,
int  nby,
double  ylo,
double  yup 
)

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

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

Parameters
paththe 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.
nbxthe number of x-bins in the histogram.
xlothe lower x-edge of the histogram.
xupthe upper x-edge of the histogram.
nbxthe number of y-bins in the histogram.
xlothe lower y-edge of the histogram.
xupthe upper y-edge of the histogram.
Returns
a pointer to the created AIDA::IHistogram1D object.

◆ createHistogram2D() [2/3]

tH2DPtr ThePEG::FactoryBase::createHistogram2D ( const string &  path,
const string &  title,
int  nbx,
double  xlo,
double  xup,
int  nby,
double  ylo,
double  yup 
)

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

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

Parameters
paththe 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).
titlethe title of the histogram.
nbxthe number of x-bins in the histogram.
xlothe lower x-edge of the histogram.
xupthe upper x-edge of the histogram.
nbythe number of y-bins in the histogram.
ylothe lower y-edge of the histogram.
yupthe upper y-edge of the histogram.
Returns
a pointer to the created AIDA::IHistogram1D object.

◆ createHistogram2D() [3/3]

tH2DPtr ThePEG::FactoryBase::createHistogram2D ( const string &  path,
const string &  title,
const std::vector< double > &  xedges,
const std::vector< double > &  yedges 
)

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

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

Parameters
paththe 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).
titlethe title of the histogram.
xedgesA vector of bin edges specifying the x-bins.
yedgesA vector of bin edges specifying the y-bins.
Returns
a pointer to the created AIDA::IHistogram1D object.

◆ dofinish()

virtual void ThePEG::FactoryBase::dofinish ( )
protectedvirtual

Finalize this object.

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

Reimplemented from ThePEG::InterfacedBase.

◆ doinitrun()

virtual void ThePEG::FactoryBase::doinitrun ( )
protectedvirtual

Initialize this object.

Called in the run phase just before a run begins.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::LWHFactory.

◆ filename()

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 166 of file FactoryBase.h.

◆ Init()

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.

◆ operator=()

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.

◆ persistentInput()

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

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ registerClient()

void ThePEG::FactoryBase::registerClient ( tIPtr  client)

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.

Member Data Documentation

◆ initFactoryBase

AbstractClassDescription<FactoryBase> ThePEG::FactoryBase::initFactoryBase
staticprivate

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

Indicates that this is an abstract class with persistent data.

Definition at line 512 of file FactoryBase.h.

◆ theFilename

string ThePEG::FactoryBase::theFilename
private

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 467 of file FactoryBase.h.


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