File indexing completed on 2026-08-06 09:23:59
0001
0002 #ifndef Herwig_DalitzSigma_H
0003 #define Herwig_DalitzSigma_H
0004
0005
0006
0007
0008 #include "DalitzResonance.h"
0009
0010 namespace Herwig {
0011
0012 using namespace ThePEG;
0013
0014
0015
0016
0017 class DalitzSigma: public DalitzResonance {
0018
0019 public:
0020
0021
0022
0023
0024
0025
0026 DalitzSigma()
0027 {}
0028
0029
0030
0031
0032 DalitzSigma(long pid, ResonanceType::Type rtype, Energy m, Energy w,
0033 unsigned int d1, unsigned int d2, unsigned int s,
0034 double mag, double phi, InvEnergy rr,
0035 Energy2 a, Energy b1, InvEnergy b2, Energy g4pi)
0036 : DalitzResonance(pid,rtype,m,w,d1,d2,s,mag,phi,rr),
0037 a_(a), b1_(b1),b2_(b2), g4Pi_(g4pi)
0038 {}
0039
0040 public:
0041
0042
0043
0044
0045 virtual Complex BreitWigner(const Energy & mAB, const Energy & mA, const Energy & mB) const;
0046
0047
0048
0049
0050 virtual void dataBaseOutput(ofstream & output);
0051
0052 public:
0053
0054
0055
0056
0057
0058
0059
0060 void persistentOutput(PersistentOStream & os) const;
0061
0062
0063
0064
0065
0066
0067 void persistentInput(PersistentIStream & is, int version);
0068
0069
0070
0071
0072
0073
0074
0075
0076 static void Init();
0077
0078 private:
0079
0080
0081
0082
0083
0084 DalitzSigma & operator=(const DalitzSigma &) = delete;
0085
0086 private :
0087
0088
0089
0090
0091 double rho4pi(const Energy2 &s,const Energy & mpi) const {
0092 static const InvEnergy2 c1(3.5/GeV2);
0093 static const Energy2 c2(2.8*GeV2);
0094 return sqrt(1.-16.*sqr(mpi)/s)/(1.+exp(c1*(c2-s)));
0095 }
0096
0097 private:
0098
0099
0100
0101
0102
0103
0104
0105
0106 Energy2 a_;
0107
0108
0109
0110
0111 Energy b1_;
0112
0113
0114
0115
0116 InvEnergy b2_;
0117
0118
0119
0120
0121 Energy g4Pi_;
0122
0123
0124 };
0125
0126 }
0127
0128 #endif