ThePEG::HandlerGroup< HDLR > Class Template Reference

HandlerGroup is a templated utility class to manage a group of StepHandlers. More...

#include <HandlerGroup.h>

Inheritance diagram for ThePEG::HandlerGroup< HDLR >:

ThePEG::HandlerGroupBase

List of all members.

Public Types

typedef Ptr< HDLR >::pointer HdlPtr
 A pointer to the template argument class.
typedef Ptr< HDLR >
::transient_pointer 
tHdlPtr
 A transient pointer to the template argument class.

Public Member Functions

virtual ~HandlerGroup ()
 Destructor.
virtual bool setHandler (tStepHdlPtr, const HandlerGroupBase &ext)
 Set the current main handler.
virtual void setHandler ()
 Unset the current main handler.
virtual tStepHdlPtr handler () const
 Return a pointer to the current main handler.
virtual tStepHdlPtr defaultHandler () const
 Return a pointer to the default main handler.
virtual void refillDefaultHandler (tStepHdlPtr)
 Set the current main handler.
virtual void clear ()
 Clear all current handlers, but don't touch the default ones.
virtual string handlerClass () const
 Return the base class name of the main handler type.
void interfaceSetHandler (HdlPtr)
 Utility function used for the interface.
HdlPtr interfaceGetHandler () const
 Utility function used for the interface.
virtual void write (PersistentOStream &os) const
 Write to persistent streams.
virtual void read (PersistentIStream &is)
 Read from persistent streams.

Private Member Functions

HandlerGroup< HDLR > & operator= (const HandlerGroup< HDLR > &)
 Assignment is private.

Private Attributes

HdlPtr theDefaultHandler
 The default main handler.
HdlPtr theHandler
 The current main handler.


Detailed Description

template<typename HDLR>
class ThePEG::HandlerGroup< HDLR >

HandlerGroup is a templated utility class to manage a group of StepHandlers.

All HandlerGroup classes are derived from the HandlerGroupBase class. As an example the specialization HandlerGroup<CascadeHandler> keeps a CascadeHandler object and associated pre- and post- StepHandlers, defining shich steps should be performed before the perturbative cascade, which object should be used for the cascade and which steps should be performed after.

The HandlerGroup keesp both a default main handler and the corresponding default pre- and post- handlers as well as the main handler and pre/post hadlers chosen for the current event. The current handlers are accompanied by Hints. Handlers which are copied from the default ones are accompanied by the default Hint, while handlers supplied from the outside may be accompanied by any kind of hint. The main handler can be supplied with several hints, the pre- and post- handlers may only have one hint each.

The HandlerGroup class is used in the EventHandler and SubProcessHandler to manage the post-sub-process handler, the cascade, multiple interaction, hadronization and decay handler groups.

See also:
EventHandler

SubProcessHandler

StepHandler

CascadeHandler

MultipleInteractionHandler

HadronizationHandler

DecayHandler

Definition at line 321 of file HandlerGroup.h.


Member Typedef Documentation

template<typename HDLR>
typedef Ptr<HDLR>::pointer ThePEG::HandlerGroup< HDLR >::HdlPtr

A pointer to the template argument class.

Definition at line 326 of file HandlerGroup.h.

template<typename HDLR>
typedef Ptr<HDLR>::transient_pointer ThePEG::HandlerGroup< HDLR >::tHdlPtr

A transient pointer to the template argument class.

Definition at line 329 of file HandlerGroup.h.


Member Function Documentation

template<typename HDLR>
virtual bool ThePEG::HandlerGroup< HDLR >::setHandler ( tStepHdlPtr  ,
const HandlerGroupBase ext 
) [virtual]

Set the current main handler.

Also refill the current pre- and post- handlers with the defaults from ext.

Implements ThePEG::HandlerGroupBase.

template<typename HDLR>
virtual void ThePEG::HandlerGroup< HDLR >::refillDefaultHandler ( tStepHdlPtr   )  [virtual]

Set the current main handler.

If the null pointer use the default main handler.

Implements ThePEG::HandlerGroupBase.


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

Generated on Thu Apr 29 12:43:04 2010 for ThePEG by  doxygen 1.5.5