herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Herwig::ProcessHandler Class Reference

This class is for handling the sampling of semi hard partonic interactions. More...

#include <ProcessHandler.h>

Inheritance diagram for Herwig::ProcessHandler:

Public Types

typedef Selector< StdXCombPtr > XSelector
 A weighted list of pointers to StandardXComb objects.
 
typedef vector< StdXCombPtr > XVector
 A vector of pointers to StandardXComb objects.
 
typedef vector< CrossSection > XSVector
 A vector of cross sections.
 
typedef map< tMEPtr, XVectorMEXMap
 Map of pointers to StandardXComb objects indexed by pointers to the corresponding MEBase object.
 
- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Public Types inherited from ThePEG::LastXCombInfo<>
typedef ThePEG::Ptr< XC >::pointer XCPtr
 
typedef ThePEG::Ptr< XC >::const_pointer cXCPtr
 
typedef ThePEG::Ptr< XC >::transient_pointer tXCPtr
 
typedef ThePEG::Ptr< XC >::transient_const_pointer tcXCPtr
 

Public Member Functions

 ProcessHandler ()
 The default constructor.
 
Methods for the MPI generation.
tStdXCombPtr generate ()
 Select a StandardXComb according to it's weight.
 
Functions used for the actual generation
virtual CrossSection dSigDR (const vector< double > &r)
 Return the cross section for the chosen phase space point.
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual bool defaultInit ()
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
virtual IBPtr fullclone () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
virtual void debugme () const
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
virtual IBPtr fullclone () const
 
- Public Member Functions inherited from ThePEG::Base
void debug () const
 
virtual void debugme () const
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 
 Named (const Named &)=default
 
const string & name () const
 
bool operator== (const Named &other) const
 
bool operator< (const Named &other) const
 
- Public Member Functions inherited from ThePEG::LastXCombInfo<>
const XC & lastXComb () const
 
const XC & lastXComb () const
 
tXCPtr lastXCombPtr () const
 
tXCPtr lastXCombPtr () const
 
const XC & lastHeadXComb () const
 
const XC & lastHeadXComb () const
 
tXCPtr lastHeadXCombPtr () const
 
tXCPtr lastHeadXCombPtr () const
 
const EventHandlerlastEventHandler () const
 
const EventHandlerlastEventHandler () const
 
tPExtrPtr lastExtractor () const
 
tPExtrPtr lastExtractor () const
 
PDFT pdf (tcPPtr parton) const
 
PDFT pdf (tcPPtr parton) const
 
const CutslastCuts () const
 
const CutslastCuts () const
 
tCutsPtr lastCutsPtr () const
 
tCutsPtr lastCutsPtr () const
 
const PPairlastParticles () const
 
const PPairlastParticles () const
 
Energy2 lastS () const
 
Energy2 lastS () const
 
const PPairlastPartons () const
 
const PPairlastPartons () const
 
Energy2 lastSHat () const
 
Energy2 lastSHat () const
 
double lastTau () const
 
double lastTau () const
 
double lastY () const
 
double lastY () const
 
double lastP1 () const
 
double lastP1 () const
 
double lastP2 () const
 
double lastP2 () const
 
double lastL1 () const
 
double lastL1 () const
 
double lastL2 () const
 
double lastL2 () const
 
double lastX1 () const
 
double lastX1 () const
 
double lastX2 () const
 
double lastX2 () const
 
double lastE1 () const
 
double lastE1 () const
 
double lastE2 () const
 
double lastE2 () const
 
double lastFL1L2 () const
 
double lastFL1L2 () const
 
Energy2 lastScale () const
 
double lastAlphaS () const
 
double lastAlphaEM () const
 
const vector< Lorentz5Momentum > & meMomenta () const
 
double lastME2 () const
 
double lastPreweight () const
 
double jacobian () const
 
CrossSection lastMECrossSection () const
 
double lastMEPDFWeight () const
 
double lastMECouplings () const
 
tSubProPtr subProcess () const
 
const cPDVectormePartonData () const
 

Standard Interfaced functions.

SamplerPtr theSampler
 The phase space sampler responsible for generating phase space points according to the cross section given by this handler.
 
tEHPtr theHandler
 A pointer to the EventHandler that calls us.
 
tCutsPtr theCuts
 The kinematical cuts used for this collision handler.
 
tSubHdlPtr theSubProcess
 The SubProcessHandler that is connected to this ProcessHandler.
 
XVector theXCombs
 The StandardXComb objects.
 
XSVector theXSecs
 The (incrementally summed) cross sections associated with the StandardXComb objects for the last selected phase space point.
 
int theBinStrategy
 The strategy to be used when sampling different StandardXComb objects.
 
MEXMap theMEXMap
 The map used to store all XBins with the same matrix element for option 1 in theBinStrategy.
 
vector< int > theMaxDims
 The number of degrees of freedom needed to generate the phase space for the different bins.
 
virtual void doinitrun ()
 Initialize this object.
 
ProcessHandleroperator= (const ProcessHandler &)=delete
 The assignment operator is private and must never be called.
 

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.
 
void initialize (tSubHdlPtr sub, tCutsPtr cuts, tEHPtr eh)
 Initialize this Multiple Interaction handler and all related objects needed to generate additional events.
 
CrossSection integratedXSec () const
 Return the integrated cross section.
 
void statistics (ostream &, Stat &) const
 Write out accumulated statistics about intergrated cross sections and stuff.
 
static void Init ()
 The standard Init function used to initialize the interfaces.
 

Simple access functions.

int statLevel () const
 The level of statistics.
 
const cPDPairincoming () const
 The pair of incoming particle types obtained via the EventHandler.
 
const LuminosityFunctionlumiFn () const
 Access the luminosity function via the EventHandler.
 
int lumiDim () const
 The number of phase space dimensions used by the luminosity function.
 
int nBins () const
 Return the number of separate bins of StandardXComb objects to sample.
 
int maxDim (int bin) const
 Return the number of phase space dimensions needed for the sampling of indicated bin of StandardXComb objects.
 
int nDim (int bin) const
 The number of dimensions of the basic phase space to generate sub-processes in for a given bin of StandardXComb objects.
 
long maxLoop () const
 Return the maximum number attemts allowed to select a sub-process for each event.
 
virtual CrossSection dSigDR (const pair< double, double > ll, Energy2 maxS, int ibin, int nr, const double *r)
 Generate a phase space point and return the corresponding cross section.
 
tStdXCombPtr select (int bin, double weight)
 Select an StandardXComb.
 
void addME (Energy maxEnergy, tSubHdlPtr sub, tPExtrPtr extractor, tCutsPtr cuts, tCascHdlPtr ckkw, tMEPtr me, const PBPair &pBins)
 Create and add StandardXComb objects.
 
const XVectorxCombs () const
 Return the vector of StandardXComb objects.
 
XVectorxCombs ()
 Return the vector of StandardXComb objects.
 
const XSVectorxSecs () const
 Return the vector of cross sections.
 
XSVectorxSecs ()
 Return the vector of cross sections.
 
int binStrategy () const
 Return the strategy to be used when sampling different StandardXComb objects.
 

Clone Methods.

virtual IBPtr clone () const
 Make a simple clone of this object.
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane.
 
tEHPtr eventHandler () const
 Return the ThePEG::EventHandler assigned to this handler.
 
tSamplerPtr sampler ()
 Return the sampler assigned to this handler.
 
tcSamplerPtr sampler () const
 Return the sampler assigned to this handler.
 
tCutsPtr cuts () const
 Return a reference to the Cuts of this MultipleInteractionHandler.
 
tSubHdlPtr subProcess ()
 Access the sub-process handler.
 

Additional Inherited Members

- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 
 Interfaced (const string &newName)
 
 Interfaced (const Interfaced &i)
 
void setGenerator (tEGPtr generator)
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual IBPtr clone () const=0
 
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 
- Protected Attributes inherited from ThePEG::LastXCombInfo<>
XCPtr theLastXComb
 

Detailed Description

This class is for handling the sampling of semi hard partonic interactions.

If several types of partonic interactions are needed. Each of them has it's own ProcessHandler. A reference to them is stored in MPIHandler, which administers everything.

Author
Manuel B"ahr
See also
The interfaces defined for ProcessHandler.
MPISampler
MPIHandler

Definition at line 48 of file ProcessHandler.h.

Member Typedef Documentation

◆ MEXMap

Map of pointers to StandardXComb objects indexed by pointers to the corresponding MEBase object.

Definition at line 63 of file ProcessHandler.h.

◆ XSelector

A weighted list of pointers to StandardXComb objects.

Definition at line 53 of file ProcessHandler.h.

◆ XSVector

typedef vector<CrossSection> Herwig::ProcessHandler::XSVector

A vector of cross sections.

Definition at line 59 of file ProcessHandler.h.

◆ XVector

typedef vector<StdXCombPtr> Herwig::ProcessHandler::XVector

A vector of pointers to StandardXComb objects.

Definition at line 56 of file ProcessHandler.h.

Member Function Documentation

◆ addME()

void Herwig::ProcessHandler::addME ( Energy  maxEnergy,
tSubHdlPtr  sub,
tPExtrPtr  extractor,
tCutsPtr  cuts,
tCascHdlPtr  ckkw,
tMEPtr  me,
const PBPair &  pBins 
)
protected

Create and add StandardXComb objects.

Parameters
maxEnergythe maximum CMS energy of the incoming particles.
suba pointer to the SubProcessHandler object.
extractora pointer to the PartonExtractor object.
cutsa pointer to the Cuts object.
ckkwa currently empty pointer to a CascadeHandler to be used for CKKW reweighting.
mea pointer to the MEBase object.
pBinsa pair of PartonBins describing the partons extracted from the particles

◆ binStrategy()

int Herwig::ProcessHandler::binStrategy ( ) const
inlineprotected

Return the strategy to be used when sampling different StandardXComb objects.

Returns
0 if all StandardXComb objects are sampled together. 1 if all StandardXComb objects which have the same matrix element object are sampled together. 2 if all StandardXComb objects are sampled separately.

◆ clone()

virtual IBPtr Herwig::ProcessHandler::clone ( ) const
inlineprotectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

◆ cuts()

tCutsPtr Herwig::ProcessHandler::cuts ( ) const
inlineprivate

Return a reference to the Cuts of this MultipleInteractionHandler.

Note that these cuts may be overridden by the SubProcess chosen.

◆ doinitrun()

virtual void Herwig::ProcessHandler::doinitrun ( )
protectedvirtual

Initialize this object.

Called in the run phase just before a run begins.

Reimplemented from ThePEG::InterfacedBase.

◆ dSigDR() [1/2]

virtual CrossSection Herwig::ProcessHandler::dSigDR ( const pair< double, double >  ll,
Energy2  maxS,
int  ibin,
int  nr,
const double *  r 
)
protectedvirtual

Generate a phase space point and return the corresponding cross section.

Is called from sSigDR(const vector<double> &).

Parameters
lla pair of doubles giving the logarithms of the (inverse energy fractions of the maximum CMS energy of the incoming particles.
maxSthe maximum squared CMS energy of the incoming particles.
ibinthe preselected bin of StandardXComb objects to choose sub-process from
nrthe number of random numbers availiable in r.
ran array of random numbers to be used to generate a phase-space point.

◆ dSigDR() [2/2]

virtual CrossSection Herwig::ProcessHandler::dSigDR ( const vector< double > &  r)
virtual

Return the cross section for the chosen phase space point.

Parameters
ra vector of random numbers to be used in the generation of a phase space point.

◆ eventHandler()

tEHPtr Herwig::ProcessHandler::eventHandler ( ) const
inlineprivate

Return the ThePEG::EventHandler assigned to this handler.

This methods shadows ThePEG::StepHandler::eventHandler(), because it is not virtual in ThePEG::StepHandler. This is ok, because this method would give a null-pointer at some stages, whereas this method gives access to the explicitely copied pointer (in doinitrun()) to the ThePEG::EventHandler.

◆ fullclone()

virtual IBPtr Herwig::ProcessHandler::fullclone ( ) const
inlineprotectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

◆ generate()

tStdXCombPtr Herwig::ProcessHandler::generate ( )
inline

Select a StandardXComb according to it's weight.

Returns
that StandardXComb Object

◆ Init()

static void Herwig::ProcessHandler::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.

◆ lumiDim()

int Herwig::ProcessHandler::lumiDim ( ) const
inline

The number of phase space dimensions used by the luminosity function.

Calls the corresponding StandardEventHandler method.

◆ maxLoop()

long Herwig::ProcessHandler::maxLoop ( ) const
inline

Return the maximum number attemts allowed to select a sub-process for each event.

Calls the corresponding StandardEventHandler method.

◆ operator=()

ProcessHandler & Herwig::ProcessHandler::operator= ( const ProcessHandler )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::ProcessHandler::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 Herwig::ProcessHandler::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ select()

tStdXCombPtr Herwig::ProcessHandler::select ( int  bin,
double  weight 
)
protected

Select an StandardXComb.

Given a preselected bin, ibin of StandardXComb objects pick one to generate the corresponding sub-process with the given weight.

◆ statLevel()

int Herwig::ProcessHandler::statLevel ( ) const
inline

The level of statistics.

Controlls the amount of statistics written out after each run to the EventGenerators .out file. Simply the EventHandler method is called here.

Member Data Documentation

◆ theBinStrategy

int Herwig::ProcessHandler::theBinStrategy
private

The strategy to be used when sampling different StandardXComb objects.

0 means all StandardXComb objects are sampled together. 1 means all StandardXComb objects which have the same matrix element object are sampled together. 2 means all StandardXComb objects are sampled separately.

Definition at line 373 of file ProcessHandler.h.

◆ theCuts

tCutsPtr Herwig::ProcessHandler::theCuts
private

The kinematical cuts used for this collision handler.

Definition at line 345 of file ProcessHandler.h.

◆ theHandler

tEHPtr Herwig::ProcessHandler::theHandler
private

A pointer to the EventHandler that calls us.

Has to be saved, because the method eventHandler() inherited from ThePEG::StepHandler returns a null-pointer sometimes. Leif changed that in r1053 so that a valid pointer is present, when calling doinitrun().

Definition at line 340 of file ProcessHandler.h.

◆ theMaxDims

vector<int> Herwig::ProcessHandler::theMaxDims
private

The number of degrees of freedom needed to generate the phase space for the different bins.

Definition at line 386 of file ProcessHandler.h.

◆ theMEXMap

MEXMap Herwig::ProcessHandler::theMEXMap
private

The map used to store all XBins with the same matrix element for option 1 in theBinStrategy.

Definition at line 379 of file ProcessHandler.h.

◆ theSampler

SamplerPtr Herwig::ProcessHandler::theSampler
private

The phase space sampler responsible for generating phase space points according to the cross section given by this handler.

Definition at line 332 of file ProcessHandler.h.

◆ theSubProcess

tSubHdlPtr Herwig::ProcessHandler::theSubProcess
private

The SubProcessHandler that is connected to this ProcessHandler.

Definition at line 352 of file ProcessHandler.h.

◆ theXCombs

XVector Herwig::ProcessHandler::theXCombs
private

The StandardXComb objects.

Definition at line 358 of file ProcessHandler.h.

◆ theXSecs

XSVector Herwig::ProcessHandler::theXSecs
private

The (incrementally summed) cross sections associated with the StandardXComb objects for the last selected phase space point.

Definition at line 364 of file ProcessHandler.h.


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