thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
PDT
V2PPDecayer.h
1
// -*- C++ -*-
2
//
3
// V2PPDecayer.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_V2PPDecayer_H
10
#define THEPEG_V2PPDecayer_H
11
// This is the declaration of the V2PPDecayer class.
12
13
#include "ThePEG/PDT/FlatDecayer.h"
14
15
namespace
ThePEG
{
16
30
class
V2PPDecayer
:
public
FlatDecayer
{
31
32
public
:
33
43
virtual
bool
accept
(
const
DecayMode
& dm)
const
;
44
51
virtual
ParticleVector
decay
(
const
DecayMode
& dm,
const
Particle
& p)
const
;
52
64
virtual
double
reweight
(
const
DecayMode
& dm,
const
Particle
& parent,
65
const
ParticleVector
& children)
const
;
67
68
public
:
69
70
77
void
persistentOutput
(
PersistentOStream
& os)
const
;
78
84
void
persistentInput
(
PersistentIStream
& is,
int
version);
86
90
static
void
Init
();
91
92
protected
:
93
94
95
protected
:
96
103
virtual
IBPtr
clone
()
const
;
104
109
virtual
IBPtr
fullclone
()
const
;
111
112
private
:
113
117
mutable
tPPtr
grandParent
;
118
122
mutable
tPPtr
sibling
;
123
124
private
:
125
129
static
ClassDescription<V2PPDecayer>
initV2PPDecayer
;
130
134
V2PPDecayer
&
operator=
(
const
V2PPDecayer
&) =
delete
;
135
136
};
137
138
}
139
140
141
namespace
ThePEG
{
142
147
template
<>
148
struct
BaseClassTrait<V2PPDecayer,1>:
public
ClassTraitsType {
150
typedef
FlatDecayer
NthBase
;
151
};
152
156
template
<>
157
struct
ClassTraits<V2PPDecayer>
158
:
public
ClassTraitsBase<V2PPDecayer> {
160
static
string
className
() {
return
"ThePEG::V2PPDecayer"
; }
164
static
string
library
() {
return
"V2PPDecayer.so"
; }
165
};
166
169
}
170
171
#endif
/* THEPEG_V2PPDecayer_H */
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::DecayMode
The DecayMode class describes a decay channel of a particle.
Definition:
DecayMode.h:87
ThePEG::FlatDecayer
The FlatDecayer class inrerits from the abstract Decayer class and implements the decay of a given Pa...
Definition:
FlatDecayer.h:33
ThePEG::Particle
The Particle class is used to describe an instance of a particle.
Definition:
Particle.h:83
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::V2PPDecayer
The V2PPDecayer class performs the decay of a vector meson into two pseudo-scalars according to a fla...
Definition:
V2PPDecayer.h:30
ThePEG::V2PPDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::V2PPDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::V2PPDecayer::initV2PPDecayer
static ClassDescription< V2PPDecayer > initV2PPDecayer
Describe a concrete class with persistent data.
Definition:
V2PPDecayer.h:129
ThePEG::V2PPDecayer::grandParent
tPPtr grandParent
The grand parent in case reweighting should be done.
Definition:
V2PPDecayer.h:117
ThePEG::V2PPDecayer::sibling
tPPtr sibling
The decaying particles sibling in case reweighting should be done.
Definition:
V2PPDecayer.h:122
ThePEG::V2PPDecayer::reweight
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
ThePEG::V2PPDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::V2PPDecayer::decay
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
ThePEG::V2PPDecayer::operator=
V2PPDecayer & operator=(const V2PPDecayer &)=delete
Private and non-existent assignment operator.
ThePEG::V2PPDecayer::accept
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
ThePEG::V2PPDecayer::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::V2PPDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::ParticleVector
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
Definition:
Containers.h:73
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::ClassTraitsBase::library
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition:
ClassTraits.h:85
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6