thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Handlers
SubProcessHandler.h
1
// -*- C++ -*-
2
//
3
// SubProcessHandler.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2019 Leif Lonnblad
5
//
6
// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef ThePEG_SubProcessHandler_H
10
#define ThePEG_SubProcessHandler_H
11
// This is the declaration of the SubProcessHandler class.
12
13
#include "
ThePEG/Config/ThePEG.h
"
14
#include "ThePEG/Utilities/Interval.h"
15
#include "ThePEG/Handlers/HandlerGroup.h"
16
#include "ThePEG/Handlers/HandlerBase.h"
17
#include "ThePEG/MatrixElement/MEBase.fh"
18
#include "ThePEG/Cuts/Cuts.fh"
19
#include "SubProcessHandler.fh"
20
21
namespace
ThePEG
{
22
49
class
SubProcessHandler
:
public
HandlerBase
{
50
51
public
:
52
54
typedef
vector<HandlerGroupBase *>
GroupVector
;
55
57
typedef
vector<ReweightPtr>
ReweightVector
;
58
59
public
:
60
66
SubProcessHandler
();
67
71
SubProcessHandler
(
const
SubProcessHandler
&);
72
76
virtual
~SubProcessHandler
();
78
79
public
:
80
86
tPExtrPtr
pExtractor
()
const
{
return
thePartonExtractor
; }
87
91
const
MEVector &
MEs
()
const
{
return
theMEs
; }
92
96
tCutsPtr
cuts
()
const
{
return
theCuts
; }
97
102
tCascHdlPtr
CKKWHandler
()
const
;
103
107
const
HandlerGroupBase
&
handlerGroup
(
Group::Handler
)
const
;
108
112
const
GroupVector
&
groups
()
const
{
return
theGroups
; }
113
117
MEVector &
MEs
() {
return
theMEs
; }
119
120
public
:
121
128
void
persistentOutput
(
PersistentOStream
& os)
const
;
129
135
void
persistentInput
(
PersistentIStream
& is,
int
version);
137
141
static
void
Init
();
142
143
protected
:
144
151
virtual
IBPtr
clone
()
const
;
152
157
virtual
IBPtr
fullclone
()
const
;
159
162
168
virtual
void
doinit
();
169
174
virtual
void
doinitrun
();
176
177
private
:
178
182
void
setupGroups
();
183
184
private
:
185
189
PExtrPtr
thePartonExtractor
;
190
194
MEVector
theMEs
;
195
199
CutsPtr
theCuts
;
200
204
HandlerGroup<SubProcessHandler>
theSubprocessGroup
;
205
209
HandlerGroup<CascadeHandler>
theCascadeGroup
;
210
214
HandlerGroup<MultipleInteractionHandler>
theMultiGroup
;
215
219
HandlerGroup<HadronizationHandler>
theHadronizationGroup
;
220
224
HandlerGroup<DecayHandler>
theDecayGroup
;
225
229
GroupVector
theGroups
;
230
235
ReweightVector
reweights
;
240
ReweightVector
preweights
;
241
242
private
:
243
244
ThePEG_DECLARE_PREPOST_GROUP(
SubProcessHandler
,Post);
245
ThePEG_DECLARE_GROUPINTERFACE(
CascadeHandler
,
CascHdlPtr
);
246
ThePEG_DECLARE_GROUPINTERFACE(
MultipleInteractionHandler
,
MIHdlPtr
);
247
ThePEG_DECLARE_GROUPINTERFACE(
HadronizationHandler
,
HadrHdlPtr
);
248
ThePEG_DECLARE_GROUPINTERFACE(
DecayHandler
,
DecayHdlPtr
);
249
253
static
ClassDescription<SubProcessHandler>
initSubProcessHandler
;
254
255
private
:
256
260
const
SubProcessHandler
&
operator=
(
const
SubProcessHandler
&) =
delete
;
261
262
};
263
268
template
<>
269
struct
BaseClassTrait
<
SubProcessHandler
,1>:
public
ClassTraitsType
{
271
typedef
HandlerBase
NthBase
;
272
};
273
276
template
<>
277
struct
ClassTraits<SubProcessHandler>:
278
public
ClassTraitsBase<SubProcessHandler> {
280
static
string
className
() {
return
"ThePEG::SubProcessHandler"
; }
281
};
282
285
}
286
287
#endif
/* ThePEG_SubProcessHandler_H */
ThePEG.h
This is the main config header file for ThePEG.
ThePEG::CascadeHandler
The CascadeHandler is the base class of all handlers implementing perturbative partonic cascade model...
Definition:
CascadeHandler.h:33
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::DecayHandler
The DecayHandler is the base class of all handlers implementing the administration of decays of unsta...
Definition:
DecayHandler.h:31
ThePEG::HadronizationHandler
The HadronizationHandler is the base class of all handlers implementing models for hadronization of c...
Definition:
HadronizationHandler.h:30
ThePEG::HandlerBase
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
Definition:
HandlerBase.h:151
ThePEG::HandlerGroupBase
HandlerGroupBase is the base class for the templated HandlerGroup utility class to manage a group of ...
Definition:
HandlerGroup.h:44
ThePEG::HandlerGroup
HandlerGroup is a templated utility class to manage a group of StepHandlers.
Definition:
HandlerGroup.h:321
ThePEG::MultipleInteractionHandler
The MultipleInteractionHandler is the base class of all handlers implementing models for multiple int...
Definition:
MultipleInteractionHandler.h:29
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::TransientRCPtr
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition:
RCPtr.h:519
ThePEG::SubProcessHandler
The SubProcessHandler class is used to handle a set of MEBase objects together with a PartonExtractor...
Definition:
SubProcessHandler.h:49
ThePEG::SubProcessHandler::cuts
tCutsPtr cuts() const
Return a pointer to the kinematical cuts used.
Definition:
SubProcessHandler.h:96
ThePEG::SubProcessHandler::setupGroups
void setupGroups()
Setup the step handler groups.
ThePEG::SubProcessHandler::GroupVector
vector< HandlerGroupBase * > GroupVector
A vector of HandlerGroup pointers.
Definition:
SubProcessHandler.h:54
ThePEG::SubProcessHandler::ReweightVector
vector< ReweightPtr > ReweightVector
A vector of ReweightBase pointers.
Definition:
SubProcessHandler.h:57
ThePEG::SubProcessHandler::theCuts
CutsPtr theCuts
The pointer to the kinematical cuts used.
Definition:
SubProcessHandler.h:199
ThePEG::SubProcessHandler::theCascadeGroup
HandlerGroup< CascadeHandler > theCascadeGroup
The CascadeHandler group.
Definition:
SubProcessHandler.h:209
ThePEG::SubProcessHandler::~SubProcessHandler
virtual ~SubProcessHandler()
Default destructor.
ThePEG::SubProcessHandler::theSubprocessGroup
HandlerGroup< SubProcessHandler > theSubprocessGroup
The SubProcessHandler group.
Definition:
SubProcessHandler.h:204
ThePEG::SubProcessHandler::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::SubProcessHandler::handlerGroup
const HandlerGroupBase & handlerGroup(Group::Handler) const
Access a step handler group.
ThePEG::SubProcessHandler::pExtractor
tPExtrPtr pExtractor() const
Return a pointer to the parton extractor used.
Definition:
SubProcessHandler.h:86
ThePEG::SubProcessHandler::MEs
MEVector & MEs()
Return a reference to the vector of parton matrix elements used.
Definition:
SubProcessHandler.h:117
ThePEG::SubProcessHandler::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::SubProcessHandler::thePartonExtractor
PExtrPtr thePartonExtractor
The pointer to the parton extractor used.
Definition:
SubProcessHandler.h:189
ThePEG::SubProcessHandler::theMEs
MEVector theMEs
The vector of partonic matrix elements to be used.
Definition:
SubProcessHandler.h:194
ThePEG::SubProcessHandler::MEs
const MEVector & MEs() const
Return a reference to the vector of parton matrix elements used.
Definition:
SubProcessHandler.h:91
ThePEG::SubProcessHandler::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
ThePEG::SubProcessHandler::CKKWHandler
tCascHdlPtr CKKWHandler() const
Return a pointer (possibly null) to the assigned main CascadeHandler to be used as CKKW-reweighter.
ThePEG::SubProcessHandler::theGroups
GroupVector theGroups
The step handler groups.
Definition:
SubProcessHandler.h:229
ThePEG::SubProcessHandler::operator=
const SubProcessHandler & operator=(const SubProcessHandler &)=delete
Private and non-existent assignment operator.
ThePEG::SubProcessHandler::SubProcessHandler
SubProcessHandler()
Default constructor.
ThePEG::SubProcessHandler::SubProcessHandler
SubProcessHandler(const SubProcessHandler &)
Copy-constructor.
ThePEG::SubProcessHandler::initSubProcessHandler
static ClassDescription< SubProcessHandler > initSubProcessHandler
Describe a concreta class with persistent data.
Definition:
SubProcessHandler.h:253
ThePEG::SubProcessHandler::Init
static void Init()
Standard Init function used to initialize the interface.
ThePEG::SubProcessHandler::groups
const GroupVector & groups() const
Access the step handler groups.
Definition:
SubProcessHandler.h:112
ThePEG::SubProcessHandler::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::SubProcessHandler::preweights
ReweightVector preweights
The pre- and re-weight objects modifying all matrix element in this sub-process hander.
Definition:
SubProcessHandler.h:240
ThePEG::SubProcessHandler::reweights
ReweightVector reweights
The pre- and re-weight objects modifying all matrix element in this sub-process hander.
Definition:
SubProcessHandler.h:235
ThePEG::SubProcessHandler::theMultiGroup
HandlerGroup< MultipleInteractionHandler > theMultiGroup
The MultipleInteractionHandler group.
Definition:
SubProcessHandler.h:214
ThePEG::SubProcessHandler::theHadronizationGroup
HandlerGroup< HadronizationHandler > theHadronizationGroup
The HadronizationHandler group.
Definition:
SubProcessHandler.h:219
ThePEG::SubProcessHandler::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::SubProcessHandler::theDecayGroup
HandlerGroup< DecayHandler > theDecayGroup
The DecayHandler group.
Definition:
SubProcessHandler.h:224
ThePEG::SubProcessHandler::doinitrun
virtual void doinitrun()
Initialize this object.
ThePEG::Group::Handler
Handler
Enumeration for the type of HandlerGroups.
Definition:
HandlerGroup.h:433
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::BaseClassTrait
BaseClassTraits describes the base classes of the templated class.
Definition:
ClassTraits.h:156
ThePEG::BaseClassTrait::NthBase
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition:
ClassTraits.h:161
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
ThePEG::ClassTraitsType
ClassTraitsType is an empty, non-polymorphic, base class.
Definition:
ClassTraits.h:30
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6