herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
KornerKramerCharmDecayer.h
1// -*- C++ -*-
2#ifndef HERIWG_KornerKramerCharmDecayer_H
3#define HERIWG_KornerKramerCharmDecayer_H
4//
5// This is the declaration of the KornerKramerCharmDecayer class.
6//
7#include "Baryon1MesonDecayerBase.h"
8#include "ThePEG/StandardModel/StandardModelBase.h"
9
10namespace Herwig {
11using namespace ThePEG;
12
25
26public:
27
32
39 virtual int modeNumber(bool & cc, tcPDPtr parent,
40 const tPDVector & children) const;
41
47 virtual void dataBaseOutput(ofstream & os,bool header) const;
48
49protected:
50
64 virtual void halfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2,
65 Complex& A,Complex& B) const;
66
78 virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
79 Complex& A1,Complex& A2,
80 Complex& B1,Complex& B2) const;
81
91 virtual void halfThreeHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2,
92 Complex& A,Complex& B) const;
93
107 virtual void halfThreeHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
108 Complex& A1,Complex& A2,Complex& A3,
109 Complex& B1,Complex& B2,Complex& B3) const;
111
112public:
113
121
127 void persistentInput(PersistentIStream & is, int version);
129
133 static void Init();
134
135protected:
136
143 virtual IBPtr clone() const {return new_ptr(*this);}
144
149 virtual IBPtr fullclone() const {return new_ptr(*this);}
151
152protected:
153
161 virtual void doinit();
162
166 virtual void doinitrun();
168
169private:
170
175
176private:
177
181 double oneNC_;
182
186 Energy fpi_;
187
191 Energy fk_;
192
196 double frho_;
197
201 double fKstar_;
202
207 Energy mdcplus_;
208
213 Energy mdcminus_;
214
219 Energy mscplus_;
220
225 Energy mscminus_;
226
230 double cplus_;
231
235 double cminus_;
236
240 Energy H2_;
241
245 Energy H3_;
246
254 vector<double> I1_;
255
259 vector<double> I2_;
260
264 vector<double> I3_;
265
269 vector<double> I4_;
270
274 vector<double> I5_;
275
279 vector<double> Ihat3_;
280
284 vector<double> Ihat4_;
286
290 vector<int> incoming_;
291
295 vector<int> outgoingB_;
296
300 vector<int> outgoingM_;
301
305 vector<double> maxweight_;
306
314 vector<double> A1_;
315
319 vector<InvEnergy> A2_;
320
324 vector<InvEnergy2> A3_;
328 vector<double> B1_;
332 vector<InvEnergy> B2_;
336 vector<InvEnergy2> B3_;
338
342 unsigned int initsize_;
343
344};
345
346}
347
348
349#endif /* HERIWG_KornerKramerCharmDecayer_H */
The Baryon1MesonDecayerBase class is the base class for the decay of a baryon to another baryon and a...
int imode() const
The mode being used for this decay.
The KornerKramerCharmDecayer class implements the model of Z.Phys.C55,659 (1992) for the non-leptonic...
double cminus_
Perturbative factor, .
virtual IBPtr clone() const
Make a simple clone of this object.
vector< double > A1_
The couplings for the different modes.
vector< double > I4_
The invariant.
unsigned int initsize_
Initial size of the vectors.
KornerKramerCharmDecayer()
Default constructor.
virtual void halfHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, Complex &A1, Complex &A2, Complex &B1, Complex &B2) const
Couplings for spin- to spin- and a vector.
double cplus_
Perturbative factor, .
virtual void halfThreeHalfVectorCoupling(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.
Energy mdcminus_
Vector mass for the form factor for the factorizing diagrams for the transition.
vector< InvEnergy > A2_
The second A coupling.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
virtual void doinitrun()
Initialize this object to the begining of the run phase.
Energy H3_
factor for the non-factorizing diagrams.
vector< int > outgoingB_
The PDG code for the outgoing baryon.
vector< InvEnergy2 > B3_
The third B coupling.
vector< double > I2_
The invariant.
vector< InvEnergy > B2_
The second B coupling.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< int > incoming_
The PDG code for the incoming baryon.
vector< InvEnergy2 > A3_
The third A coupling.
vector< double > I1_
SU(4) invariants for the various modes.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy H2_
factor for the non-factorizing diagrams.
vector< double > B1_
The first B coupling.
virtual void halfHalfScalarCoupling(int imode, Energy m0, Energy m1, Energy m2, Complex &A, Complex &B) const
Coupling Members.
vector< double > Ihat3_
The invariant.
vector< int > outgoingM_
The PDG code for the outgoing meson.
virtual void halfThreeHalfScalarCoupling(int imode, Energy m0, Energy m1, Energy m2, Complex &A, Complex &B) const
Couplings for spin- to spin- and a scalar.
vector< double > I5_
The invariant.
double oneNC_
one over the number of colours
vector< double > Ihat4_
The invariant.
KornerKramerCharmDecayer & operator=(const KornerKramerCharmDecayer &)=delete
Private and non-existent assignment operator.
Energy mdcplus_
Axial-Vector mass for the form factor for the factorizing diagrams for the transition.
vector< double > I3_
The invariant.
Energy mscminus_
Vector mass for the form factor for the factorizing diagrams for the transition.
static void Init()
Standard Init function used to initialize the interfaces.
Energy mscplus_
Axial-Vector mass for the form factor for the factorizing diagrams for the transition.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
vector< double > maxweight_
The maximum weight.
-*- C++ -*-
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr