thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
EventRecord
SubProcessGroup.h
1
// -*- C++ -*-
2
//
3
// SubProcessGroup.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2019 Leif Lonnblad
5
// Copyright (C) 2009-2019 Simon Platzer
6
//
7
// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
8
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
9
//
10
#ifndef ThePEG_SubProcessGroup_H
11
#define ThePEG_SubProcessGroup_H
12
// This is the declaration of the SubProcessGroup class.
13
14
#include "ThePEG/EventRecord/SubProcess.h"
15
16
namespace
ThePEG
{
17
25
class
SubProcessGroup
:
public
SubProcess
{
26
27
public
:
28
35
SubProcessGroup
(
const
PPair
& newIncoming,
36
tCollPtr
newCollision =
tCollPtr
(),
37
tcEventBasePtr
newHandler =
tcEventBasePtr
());
38
42
virtual
~SubProcessGroup
();
43
47
virtual
SubProPtr
clone
()
const
;
48
49
protected
:
50
58
virtual
void
rebind
(
const
EventTranslationMap
& trans);
59
60
public
:
61
66
virtual
void
transform
(
const
LorentzRotation
&);
67
71
const
SubProcessVector
&
dependent
()
const
{
return
theDependent
; }
72
76
SubProcessVector
&
dependent
() {
return
theDependent
; }
77
81
void
add
(
tSubProPtr
sub) {
dependent
().push_back(sub); }
82
83
public
:
84
88
void
persistentOutput
(
PersistentOStream
&)
const
;
89
93
void
persistentInput
(
PersistentIStream
&,
int
);
94
98
static
void
Init
();
99
100
private
:
101
105
SubProcessVector
theDependent
;
106
107
public
:
108
112
virtual
void
printMe
(ostream&)
const
;
113
114
private
:
115
119
static
ClassDescription<SubProcessGroup>
initSubProcessGroup
;
120
125
SubProcessGroup
() :
SubProcess
() {}
126
131
friend
struct
ClassTraits
<
SubProcessGroup
>;
132
136
SubProcessGroup
&
operator=
(
const
SubProcessGroup
&) =
delete
;
137
138
};
139
140
145
template
<>
146
struct
BaseClassTrait
<
SubProcessGroup
,1>:
public
ClassTraitsType
{
148
typedef
EventRecordBase
NthBase
;
149
};
150
153
template
<>
154
struct
ClassTraits<SubProcessGroup>:
public
ClassTraitsBase<SubProcessGroup> {
156
static
string
className
() {
return
"ThePEG::SubProcessGroup"
; }
158
static
TPtr
create
() {
return
TPtr::Create
(SubProcessGroup()); }
159
};
160
163
}
164
165
#endif
/* ThePEG_SubProcessGroup_H */
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::LorentzRotation
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
Definition:
LorentzRotation.h:27
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::RCPtr::Create
static RCPtr Create()
Allocate and construct an object of class T and return a RCPtr to it.
Definition:
RCPtr.h:120
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::Rebinder
Rebinder is a class associating pairs of pointers to objects.
Definition:
Rebinder.h:27
ThePEG::SubProcessGroup
A SubProcessGroup object represents a group of SubProcess objects in dependence of a head SubProcess ...
Definition:
SubProcessGroup.h:25
ThePEG::SubProcessGroup::rebind
virtual void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
ThePEG::SubProcessGroup::SubProcessGroup
SubProcessGroup()
Private default constructor must only be used by the PersistentIStream class via the ClassTraits<SubP...
Definition:
SubProcessGroup.h:125
ThePEG::SubProcessGroup::theDependent
SubProcessVector theDependent
The dependent subprocesses.
Definition:
SubProcessGroup.h:105
ThePEG::SubProcessGroup::~SubProcessGroup
virtual ~SubProcessGroup()
Destructor.
ThePEG::SubProcessGroup::initSubProcessGroup
static ClassDescription< SubProcessGroup > initSubProcessGroup
Describe concrete class with persistent data.
Definition:
SubProcessGroup.h:119
ThePEG::SubProcessGroup::Init
static void Init()
Standard Init function.
ThePEG::SubProcessGroup::persistentOutput
void persistentOutput(PersistentOStream &) const
Standard function for writing to a persistent stream.
ThePEG::SubProcessGroup::clone
virtual SubProPtr clone() const
Return a clone of this sub process group.
ThePEG::SubProcessGroup::persistentInput
void persistentInput(PersistentIStream &, int)
Standard function for reading from a persistent stream.
ThePEG::SubProcessGroup::SubProcessGroup
SubProcessGroup(const PPair &newIncoming, tCollPtr newCollision=tCollPtr(), tcEventBasePtr newHandler=tcEventBasePtr())
Standard constructor.
ThePEG::SubProcessGroup::add
void add(tSubProPtr sub)
Add a dependent SubProcess.
Definition:
SubProcessGroup.h:81
ThePEG::SubProcessGroup::dependent
SubProcessVector & dependent()
Access the dependent SubProcess objects.
Definition:
SubProcessGroup.h:76
ThePEG::SubProcessGroup::printMe
virtual void printMe(ostream &) const
Put to ostream.
ThePEG::SubProcessGroup::dependent
const SubProcessVector & dependent() const
Return the dependent SubProcess objects.
Definition:
SubProcessGroup.h:71
ThePEG::SubProcessGroup::operator=
SubProcessGroup & operator=(const SubProcessGroup &)=delete
Assignment is forbidden.
ThePEG::SubProcessGroup::transform
virtual void transform(const LorentzRotation &)
Perform a LorentzTransformation of all particles in the sub process.
ThePEG::SubProcess
A SubProcess object represents a hard sub-process in a collision.
Definition:
SubProcess.h:33
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::PPair
pair< PPtr, PPtr > PPair
A pair of pointers to Particle objects.
Definition:
Containers.h:127
ThePEG::tcEventBasePtr
Ptr< EventRecordBase >::transient_const_pointer tcEventBasePtr
Alias for a transient pointer to const EventRecordBase.
Definition:
EventConfig.h:49
ThePEG::SubProcessVector
vector< SubProPtr > SubProcessVector
A vector of pointers to SubProcess.
Definition:
EventConfig.h:84
ThePEG::tCollPtr
ThePEG::Ptr< Collision >::transient_pointer tCollPtr
Alias for a transient pointer to Collision .
Definition:
Pointers.h:84
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::Base
Define the base class from which all (polymorphic) classes in ThePEG are derived.
Definition:
ThePEG.h:54
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
ThePEG::ClassTraitsBase::create
static TPtr create()
Create a T object and return a smart pointer to it.
Definition:
ClassTraits.h:60
ThePEG::ClassTraitsBase::TPtr
ThePEG::Ptr< T >::pointer TPtr
Alias for a reference counted pointer to T .
Definition:
ClassTraits.h:54
ThePEG::ClassTraitsType
ClassTraitsType is an empty, non-polymorphic, base class.
Definition:
ClassTraits.h:30
ThePEG::ClassTraits
The default concrete implementation of ClassTraitsBase.
Definition:
ClassTraits.h:134
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6