thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
WeakToHadronsDecayer.h
1 // -*- C++ -*-
2 //
3 // WeakToHadronsDecayer.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_WeakToHadronsDecayer_H
10 #define THEPEG_WeakToHadronsDecayer_H
11 // This is the declaration of the WeakToHadronsDecayer class.
12 
13 #include "ThePEG/PDT/QuarksToHadronsDecayer.h"
14 
15 namespace ThePEG {
16 
32 
33 public:
34 
45  virtual bool accept(const DecayMode & dm) const;
46 
52  virtual double reweight(const Particle & parent,
53  const PVector & children) const;
54 
59  virtual PVector getHadrons(int Nh, tcPDVector quarks) const;
61 
62 public:
63 
64 
71  void persistentOutput(PersistentOStream & os) const;
72 
78  void persistentInput(PersistentIStream & is, int version);
80 
84  static void Init();
85 
86 protected:
87 
94  virtual IBPtr clone() const;
95 
100  virtual IBPtr fullclone() const;
102 
103 private:
104 
109 
114 
115 };
116 
117 }
118 
119 
120 namespace ThePEG {
121 
126 template <>
127 struct BaseClassTrait<WeakToHadronsDecayer,1>: public ClassTraitsType {
129  typedef QuarksToHadronsDecayer NthBase;
130 };
131 
135 template <>
136 struct ClassTraits<WeakToHadronsDecayer>
137  : public ClassTraitsBase<WeakToHadronsDecayer> {
139  static string className() { return "ThePEG::WeakToHadronsDecayer"; }
143  static string library() { return "WeakToHadronsDecayer.so"; }
144 };
145 
148 }
149 
150 #endif /* THEPEG_WeakToHadronsDecayer_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
static ClassDescription< WeakToHadronsDecayer > initWeakToHadronsDecayer
Describe a concrete class with persistent data.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition: Containers.h:42
virtual IBPtr clone() const
Make a simple clone of this object.
WeakToHadronsDecayer & operator=(const WeakToHadronsDecayer &)=delete
Private and non-existent assignment operator.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual PVector getHadrons(int Nh, tcPDVector quarks) const
Produce Nh hadrons from the specified quarks.
virtual double reweight(const Particle &parent, const PVector &children) const
Called by QuarksToHadronsDecayer::distribute() to reweight the default flat phase spece...
The WeakToHadronsDecayer class inherits from QuarksToHadronsDecayer and can performs weak decays of t...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
static void Init()
Standard Init function used to initialize the interfaces.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
The QuarksToHadronsDecayer class inherits from Decayer and is able to decay particles to (2 or 4) qu...
vector< PPtr > PVector
A vector of pointers to Particle objects.
Definition: Containers.h:76
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52