9 #ifndef THEPEG_SimpleBaryonRemnantDecayer_H
10 #define THEPEG_SimpleBaryonRemnantDecayer_H
15 #include "ThePEG/PDT/RemnantDecayer.h"
16 #include "ThePEG/Handlers/ZGenerator.h"
17 #include "ThePEG/Handlers/FlavourGenerator.h"
18 #include "ThePEG/Utilities/VSelector.h"
280 #include "ThePEG/Utilities/ClassTraits.h"
289 struct BaseClassTrait<SimpleBaryonRemnantDecayer,1> {
291 typedef RemnantDecayer
NthBase;
298 struct ClassTraits<SimpleBaryonRemnantDecayer>
299 :
public ClassTraitsBase<SimpleBaryonRemnantDecayer> {
301 static string className() {
return "ThePEG::SimpleBaryonRemnantDecayer"; }
virtual ParticleVector decay(const DecayMode &dm, const Particle &p, Step &step) const
Perform a decay for a given DecayMode and a given Particle instance.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Energy margin() const
Return the energy margin to be added to the sum of the parent and parton masses to determine if it is...
bool useSpecialValence
If true an extracted valens quark will always give a di-quark remnant.
The Particle class is used to describe an instance of a particle.
bool specialValence() const
If true an extracted valens quark will always give a di-quark remnant.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
ZGenerator is the base class for all classes implementing models to generate the momentum fraction...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
FlavourGenerator & flavourGenerator() const
Return a reference to the object responsible for handling the flavour contents of a baryon...
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
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...
tcPPtr parent(tcRemPPtr remnant) const
Access the parent of a remnant.
Energy theMargin
The energy margin to be added to the sum of the parent and parton masses to determine if it is possib...
VSelector is a templated class for storing objects associated with probabilities in a way such that...
virtual IBPtr clone() const
Make a simple clone of this object.
This is the main namespace within which all identifiers in ThePEG are declared.
Warning Exception used when DIS kinematics was not respected.
The RemnantDecayer class is the base class to be used for all decayers capable of decaying a RemnantP...
SimpleBaryonRemnantDecayer & operator=(const SimpleBaryonRemnantDecayer &)
The assignment operator is private and must never be called.
The SimpleBaryonRemnantDecayer class inherits from the RemnantDecayer class and is able to decay Remn...
Ptr< ZGenerator >::pointer ZGPtr
A pointer to a ZGenerator object.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
QTY< 0, 1, 0 >::Type Energy
Energy.
FlavourGenerator is an abstract base class to be used to implement models describing the quark conten...
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...
Exception thrown if the decay of a remnant was impossible.
vector< int > flav
The valence flavours of the corresponding baryon.
FlGPtr theFlavourGenerator
The object responsible for handling the flavour contents of a baryon.
SimpleBaryonRemnantDecayer(const SimpleBaryonRemnantDecayer &x)
The copy constructor.
VSelector< pair< int, int > > flavsel
Different divisions into quark-diquark weighted by their respective probabilities.
const BaryonContent & getBaryonInfo(tcPDPtr baryon) const
Return info about baryon quark and di-quark constituents.
int sign
-1 if the particle is an anti-particle.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Ptr< FlavourGenerator >::pointer FlGPtr
A pointer to a FlavourGenerator object.
RCPtr is a reference counted (smart) pointer.
static void Init()
The standard Init function used to initialize the interfaces.
ZGenerator & zGenerator() const
Return a reference to the object responsible for generating momentum fractions in case of more than o...
const PVector & extracted(tcRemPPtr remnant) const
Access the vector of extracted particles of a remnant.
SimpleBaryonRemnantDecayer()
The default constructor.
Exception is the base class for all exceptions to be used in ThePEG.
ZGPtr theZGenerator
The object responsible for generating momentum fractions in case of more than one remnant...
static ClassDescription< SimpleBaryonRemnantDecayer > initSimpleBaryonRemnantDecayer
The static object used to initialize the description of this class.
Ptr is a templated class to provide typedefs for pointers types ThePEG should use for a given type...
The DecayMode class describes a decay channel of a particle.
static string className()
Return the name of class T.
virtual ~SimpleBaryonRemnantDecayer()
The destructor.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Simple struct to store info about baryon quark and di-quark constituents.
map< tcPDPtr, BaryonContent > baryonmap
A map of info about baryon quark and di-quark constituents.
virtual bool preInitialize() const
Return true if this object needs to be initialized before all other objects because it needs to extra...
The Step class contains information of all particles present after certain step in the event generati...