herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
RadiativeHeavyBaryonDecayer.h
1 // -*- C++ -*-
2 #ifndef HERWIG_RadiativeHeavyBaryonDecayer_H
3 #define HERWIG_RadiativeHeavyBaryonDecayer_H
4 //
5 // This is the declaration of the RadiativeHeavyBaryonDecayer class.
6 //
7 
8 #include "Baryon1MesonDecayerBase.h"
9 
10 namespace Herwig {
11 using namespace Herwig;
12 
37 
38 public:
39 
44 
51  virtual int modeNumber(bool & cc, tcPDPtr parent,
52  const tPDVector & children) const;
53 
59  virtual void dataBaseOutput(ofstream & os,bool header) const;
60 
61 public:
62 
69  void persistentOutput(PersistentOStream & os) const;
70 
76  void persistentInput(PersistentIStream & is, int version);
78 
85  static void Init();
86 
87 protected:
88 
104  virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
105  Complex& A1,Complex& A2,
106  Complex& B1,Complex& B2) const;
107 
121  virtual void threeHalfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
122  Complex& A1,Complex& A2,Complex& A3,
123  Complex& B1,Complex& B2,Complex& B3) const;
125 
126 protected:
127 
134  virtual IBPtr clone() const {return new_ptr(*this);}
135 
140  virtual IBPtr fullclone() const {return new_ptr(*this);}
142 
143 protected:
144 
152  virtual void doinit();
153 
158  virtual void doinitrun();
160 
161 private:
162 
168 
169 private:
170 
174  vector<InvEnergy> _m1coupling;
175 
179  vector<InvEnergy2> _e1coupling;
180 
184  vector<int> _incoming;
185 
189  vector<int> _outgoingB;
190 
194  vector<int> _modetype;
195 
199  vector<double> _maxweight;
200 
204  unsigned int _initsize;
205 };
206 
207 }
208 
209 #endif /* HERWIG_RadiativeHeavyBaryonDecayer_H */
The RadiativeHeavyBaryonDecayer class is designed for the radiative decay of a baryon containing a he...
std::complex< double > Complex
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
vector< int > _incoming
PDG code for the incoming baryons.
virtual void halfHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, Complex &A1, Complex &A2, Complex &B1, Complex &B2) const
Coupling Members.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void threeHalfHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, Complex &A1, Complex &A2, Complex &A3, Complex &B1, Complex &B2, Complex &B3) const
Couplings for spin- to spin- and a vector.
RadiativeHeavyBaryonDecayer()
The default constructor.
vector< InvEnergy > _m1coupling
The coupling.
The Baryon1MesonDecayerBase class is the base class for the decay of a baryon to another baryon and a...
vector< tPDPtr > tPDVector
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
unsigned int _initsize
The initial size of the arrays.
virtual void doinitrun()
Initialize this object.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
-*- C++ -*-
vector< int > _modetype
The type of matrix element.
vector< InvEnergy2 > _e1coupling
The coupling.
RadiativeHeavyBaryonDecayer & operator=(const RadiativeHeavyBaryonDecayer &)=delete
The assignment operator is private and must never be called.
int imode() const
The mode being used for this decay.
vector< int > _outgoingB
PDG code for the outgoing baryons.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.