thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
PDT
SimpleBaryonRemnantDecayer.h
1
// -*- C++ -*-
2
//
3
// SimpleBaryonRemnantDecayer.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_SimpleBaryonRemnantDecayer_H
10
#define THEPEG_SimpleBaryonRemnantDecayer_H
11
//
12
// This is the declaration of the SimpleBaryonRemnantDecayer class.
13
//
14
15
#include "ThePEG/PDT/RemnantDecayer.h"
16
#include "ThePEG/Handlers/ZGenerator.h"
17
#include "ThePEG/Handlers/FlavourGenerator.h"
18
#include "ThePEG/Utilities/VSelector.h"
19
20
namespace
ThePEG
{
21
31
class
SimpleBaryonRemnantDecayer
:
public
RemnantDecayer
{
32
33
public
:
34
36
typedef
Ptr<ZGenerator>::pointer
ZGPtr
;
38
typedef
Ptr<FlavourGenerator>::pointer
FlGPtr
;
39
40
public
:
41
47
SimpleBaryonRemnantDecayer
()
48
:
theMargin
(1.0*GeV),
useSpecialValence
(false) {}
49
53
SimpleBaryonRemnantDecayer
(
const
SimpleBaryonRemnantDecayer
& x)
54
:
RemnantDecayer
(x),
theZGenerator
(x.
theZGenerator
),
55
theFlavourGenerator
(x.
theFlavourGenerator
),
theMargin
(x.
theMargin
),
56
useSpecialValence
(x.
useSpecialValence
) {}
58
59
public
:
60
69
virtual
bool
accept
(
const
DecayMode
& dm)
const
;
70
84
virtual
ParticleVector
decay
(
const
DecayMode
& dm,
const
Particle
& p,
85
Step
& step)
const
;
86
91
virtual
bool
canHandle
(
tcPDPtr
parent
,
tcPDPtr
extracted
)
const
;
92
99
virtual
bool
checkExtract
(
tcPPtr
parent
,
tcPPtr
extracted
,
100
const
LorentzMomentum
& pnew)
const
;
102
103
protected
:
104
112
virtual
void
doinit
();
113
118
virtual
bool
preInitialize
()
const
;
120
121
public
:
122
129
void
persistentOutput
(
PersistentOStream
& os)
const
;
130
136
void
persistentInput
(
PersistentIStream
& is,
int
version);
138
145
static
void
Init
();
146
147
public
:
148
152
struct
NoDISRespect
:
public
Exception
{};
153
157
struct
DecayFailed
:
public
Exception
{};
158
159
public
:
160
165
ZGenerator
&
zGenerator
()
const
{
return
*
theZGenerator
; }
166
171
FlavourGenerator
&
flavourGenerator
()
const
{
return
*
theFlavourGenerator
; }
172
179
Energy
margin
()
const
{
return
theMargin
; }
180
184
bool
specialValence
()
const
{
return
useSpecialValence
; }
185
186
protected
:
187
194
virtual
IBPtr
clone
()
const
;
195
200
virtual
IBPtr
fullclone
()
const
;
202
203
public
:
204
209
struct
BaryonContent
{
211
vector<int>
flav
;
214
VSelector< pair<int,int>
>
flavsel
;
216
int
sign
;
217
};
218
222
const
BaryonContent
&
getBaryonInfo
(
tcPDPtr
baryon)
const
;
223
224
private
:
225
230
ZGPtr
theZGenerator
;
231
236
FlGPtr
theFlavourGenerator
;
237
244
Energy
theMargin
;
245
249
bool
useSpecialValence
;
250
254
mutable
map<tcPDPtr,BaryonContent>
baryonmap
;
255
256
private
:
257
262
static
ClassDescription<SimpleBaryonRemnantDecayer>
263
initSimpleBaryonRemnantDecayer
;
264
269
SimpleBaryonRemnantDecayer
&
operator=
(
const
SimpleBaryonRemnantDecayer
&) =
delete
;
270
271
};
272
273
}
274
275
#include "ThePEG/Utilities/ClassTraits.h"
276
277
namespace
ThePEG
{
278
283
template
<>
284
struct
BaseClassTrait<SimpleBaryonRemnantDecayer,1> {
286
typedef
RemnantDecayer
NthBase
;
287
};
288
292
template
<>
293
struct
ClassTraits<SimpleBaryonRemnantDecayer>
294
:
public
ClassTraitsBase<SimpleBaryonRemnantDecayer> {
296
static
string
className
() {
return
"ThePEG::SimpleBaryonRemnantDecayer"
; }
297
};
298
301
}
302
303
#endif
/* THEPEG_SimpleBaryonRemnantDecayer_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::Exception
Exception is the base class for all exceptions to be used in ThePEG.
Definition:
Exception.h:44
ThePEG::FlavourGenerator
FlavourGenerator is an abstract base class to be used to implement models describing the quark conten...
Definition:
FlavourGenerator.h:39
ThePEG::LorentzVector< Energy >
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::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Qty< 0, 1, 0 >
ThePEG::RemnantDecayer
The RemnantDecayer class is the base class to be used for all decayers capable of decaying a RemnantP...
Definition:
RemnantDecayer.h:34
ThePEG::RemnantDecayer::extracted
const PVector & extracted(tcRemPPtr remnant) const
Access the vector of extracted particles of a remnant.
Definition:
RemnantDecayer.h:178
ThePEG::RemnantDecayer::parent
tcPPtr parent(tcRemPPtr remnant) const
Access the parent of a remnant.
Definition:
RemnantDecayer.h:173
ThePEG::SimpleBaryonRemnantDecayer
The SimpleBaryonRemnantDecayer class inherits from the RemnantDecayer class and is able to decay Remn...
Definition:
SimpleBaryonRemnantDecayer.h:31
ThePEG::SimpleBaryonRemnantDecayer::ZGPtr
Ptr< ZGenerator >::pointer ZGPtr
A pointer to a ZGenerator object.
Definition:
SimpleBaryonRemnantDecayer.h:36
ThePEG::SimpleBaryonRemnantDecayer::SimpleBaryonRemnantDecayer
SimpleBaryonRemnantDecayer()
The default constructor.
Definition:
SimpleBaryonRemnantDecayer.h:47
ThePEG::SimpleBaryonRemnantDecayer::theFlavourGenerator
FlGPtr theFlavourGenerator
The object responsible for handling the flavour contents of a baryon.
Definition:
SimpleBaryonRemnantDecayer.h:236
ThePEG::SimpleBaryonRemnantDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::SimpleBaryonRemnantDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::SimpleBaryonRemnantDecayer::theZGenerator
ZGPtr theZGenerator
The object responsible for generating momentum fractions in case of more than one remnant.
Definition:
SimpleBaryonRemnantDecayer.h:230
ThePEG::SimpleBaryonRemnantDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::SimpleBaryonRemnantDecayer::canHandle
virtual bool canHandle(tcPDPtr parent, tcPDPtr extracted) const
Return true if this decayer can handle the extraction of the extracted parton from the given particle...
ThePEG::SimpleBaryonRemnantDecayer::Init
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::SimpleBaryonRemnantDecayer::baryonmap
map< tcPDPtr, BaryonContent > baryonmap
A map of info about baryon quark and di-quark constituents.
Definition:
SimpleBaryonRemnantDecayer.h:254
ThePEG::SimpleBaryonRemnantDecayer::operator=
SimpleBaryonRemnantDecayer & operator=(const SimpleBaryonRemnantDecayer &)=delete
The assignment operator is private and must never be called.
ThePEG::SimpleBaryonRemnantDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::SimpleBaryonRemnantDecayer::theMargin
Energy theMargin
The energy margin to be added to the sum of the parent and parton masses to determine if it is possib...
Definition:
SimpleBaryonRemnantDecayer.h:244
ThePEG::SimpleBaryonRemnantDecayer::flavourGenerator
FlavourGenerator & flavourGenerator() const
Return a reference to the object responsible for handling the flavour contents of a baryon.
Definition:
SimpleBaryonRemnantDecayer.h:171
ThePEG::SimpleBaryonRemnantDecayer::decay
virtual ParticleVector decay(const DecayMode &dm, const Particle &p, Step &step) const
Perform a decay for a given DecayMode and a given Particle instance.
ThePEG::SimpleBaryonRemnantDecayer::preInitialize
virtual bool preInitialize() const
Return true if this object needs to be initialized before all other objects because it needs to extra...
ThePEG::SimpleBaryonRemnantDecayer::useSpecialValence
bool useSpecialValence
If true an extracted valens quark will always give a di-quark remnant.
Definition:
SimpleBaryonRemnantDecayer.h:249
ThePEG::SimpleBaryonRemnantDecayer::FlGPtr
Ptr< FlavourGenerator >::pointer FlGPtr
A pointer to a FlavourGenerator object.
Definition:
SimpleBaryonRemnantDecayer.h:38
ThePEG::SimpleBaryonRemnantDecayer::zGenerator
ZGenerator & zGenerator() const
Return a reference to the object responsible for generating momentum fractions in case of more than o...
Definition:
SimpleBaryonRemnantDecayer.h:165
ThePEG::SimpleBaryonRemnantDecayer::specialValence
bool specialValence() const
If true an extracted valens quark will always give a di-quark remnant.
Definition:
SimpleBaryonRemnantDecayer.h:184
ThePEG::SimpleBaryonRemnantDecayer::margin
Energy margin() const
Return the energy margin to be added to the sum of the parent and parton masses to determine if it is...
Definition:
SimpleBaryonRemnantDecayer.h:179
ThePEG::SimpleBaryonRemnantDecayer::getBaryonInfo
const BaryonContent & getBaryonInfo(tcPDPtr baryon) const
Return info about baryon quark and di-quark constituents.
ThePEG::SimpleBaryonRemnantDecayer::SimpleBaryonRemnantDecayer
SimpleBaryonRemnantDecayer(const SimpleBaryonRemnantDecayer &x)
The copy constructor.
Definition:
SimpleBaryonRemnantDecayer.h:53
ThePEG::SimpleBaryonRemnantDecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
ThePEG::SimpleBaryonRemnantDecayer::checkExtract
virtual bool checkExtract(tcPPtr parent, tcPPtr extracted, const LorentzMomentum &pnew) const
Return true if this decayer can handle the extraction of the extracted parton instance from the given...
ThePEG::SimpleBaryonRemnantDecayer::accept
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
ThePEG::SimpleBaryonRemnantDecayer::initSimpleBaryonRemnantDecayer
static ClassDescription< SimpleBaryonRemnantDecayer > initSimpleBaryonRemnantDecayer
The static object used to initialize the description of this class.
Definition:
SimpleBaryonRemnantDecayer.h:263
ThePEG::Step
The Step class contains information of all particles present after certain step in the event generati...
Definition:
Step.h:34
ThePEG::VSelector
VSelector is a templated class for storing objects associated with probabilities in a way such that,...
Definition:
VSelector.h:46
ThePEG::ZGenerator
ZGenerator is the base class for all classes implementing models to generate the momentum fraction,...
Definition:
ZGenerator.h:32
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::SimpleBaryonRemnantDecayer::BaryonContent
Simple struct to store info about baryon quark and di-quark constituents.
Definition:
SimpleBaryonRemnantDecayer.h:209
ThePEG::SimpleBaryonRemnantDecayer::BaryonContent::flav
vector< int > flav
The valence flavours of the corresponding baryon.
Definition:
SimpleBaryonRemnantDecayer.h:211
ThePEG::SimpleBaryonRemnantDecayer::BaryonContent::sign
int sign
-1 if the particle is an anti-particle.
Definition:
SimpleBaryonRemnantDecayer.h:216
ThePEG::SimpleBaryonRemnantDecayer::BaryonContent::flavsel
VSelector< pair< int, int > > flavsel
Different divisions into quark-diquark weighted by their respective probabilities.
Definition:
SimpleBaryonRemnantDecayer.h:214
ThePEG::SimpleBaryonRemnantDecayer::DecayFailed
Exception thrown if the decay of a remnant was impossible.
Definition:
SimpleBaryonRemnantDecayer.h:157
ThePEG::SimpleBaryonRemnantDecayer::NoDISRespect
Warning Exception used when DIS kinematics was not respected.
Definition:
SimpleBaryonRemnantDecayer.h:152
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6