herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.4
SU3BaryonSingletOctetPhotonDecayer.h
1 // -*- C++ -*-
2 #ifndef THEPEG_SU3BaryonSingletOctetPhotonDecayer_H
3 #define THEPEG_SU3BaryonSingletOctetPhotonDecayer_H
4 // This is the declaration of the SU3BaryonSingletOctetPhotonDecayer class.
5 
6 #include "Baryon1MesonDecayerBase.h"
7 
8 namespace Herwig {
9 using namespace ThePEG;
10 
56 
57 public:
58 
63 
70  virtual int modeNumber(bool & cc, tcPDPtr parent,
71  const tPDVector & children) const;
72 
78  virtual void dataBaseOutput(ofstream & os,bool header) const;
79 
80 public:
81 
88  void persistentOutput(PersistentOStream & os) const;
89 
95  void persistentInput(PersistentIStream & is, int version);
97 
101  static void Init();
102 
103 protected:
104 
120  virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
121  Complex& A1,Complex& A2,
122  Complex& B1,Complex& B2) const;
123 
137  virtual void threeHalfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
138  Complex& A1,Complex& A2,Complex& A3,
139  Complex& B1,Complex& B2,Complex& B3) const;
141 
142 protected:
143 
150  virtual IBPtr clone() const {return new_ptr(*this);}
151 
156  virtual IBPtr fullclone() const {return new_ptr(*this);}
158 
159 protected:
160 
168  virtual void doinit();
169 
173  virtual void doinitrun();
175 
176 private:
177 
182 
187 
188 private:
189 
193  void setupModes(unsigned int) const;
194 
195 private:
196 
200  InvEnergy _c;
201 
205  bool _parity;
206 
214  int _sigma0;
215 
219  int _lambda;
220 
224  int _elambda;
225 
229  mutable vector<int> _outgoingB;
230 
234  vector<double> _maxweight;
235 
239  mutable vector<InvEnergy> _prefactor;
240 };
241 
242 }
243 
244 
245 #include "ThePEG/Utilities/ClassTraits.h"
246 
247 namespace ThePEG {
248 
255 template <>
258  typedef Herwig::Baryon1MesonDecayerBase NthBase;
259 };
260 
265 template <>
267  : public ClassTraitsBase<Herwig::SU3BaryonSingletOctetPhotonDecayer> {
269  static string className() { return "Herwig::SU3BaryonSingletOctetPhotonDecayer"; }
275  static string library() { return "HwBaryonDecay.so"; }
276 
277 };
278 
281 }
282 
283 #endif /* THEPEG_SU3BaryonSingletOctetPhotonDecayer_H */
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
int _lambda
The PDG code for the -like member of the outgoing octet.
std::complex< double > Complex
vector< int > _outgoingB
outgoing baryon for the various modes
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The SU3BaryonSingletOctetPhotonDecayer class performs the radiative decay of an singlet baryon to an...
int _sigma0
PDG codes for the lower lying baryon octet baryons.
static ClassDescription< SU3BaryonSingletOctetPhotonDecayer > initSU3BaryonSingletOctetPhotonDecayer
Describe a concrete class with persistent data.
The Baryon1MesonDecayerBase class is the base class for the decay of a baryon to another baryon and a...
vector< tPDPtr > tPDVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< double > _maxweight
the maximum weight for the various modes
int _elambda
PDG code for the various excited baryon.
vector< InvEnergy > _prefactor
The couplings for the different modes.
-*- C++ -*-
bool _parity
the relative parities of the two baryon multiplets