herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DalitzResonance.h
1// -*- C++ -*-
2#ifndef Herwig_DalitzResonance_H
3#define Herwig_DalitzResonance_H
4//
5// This is the declaration of the DalitzResonance class.
6//
7
9#include "DalitzResonance.fh"
10#include <cassert>
11
12namespace Herwig {
13
14using namespace ThePEG;
15
16namespace ResonanceType {
17
21enum Type {NonResonant=0,
22 Spin0=1,Spin1=3,Spin2=5,
23 Spin0E691=11,Spin1E691=13,Spin2E691=15,
24 BABARf0=21, Spin0Gauss=31, Flattef0=41, Spin0Complex=51,
25 Flattea0=61, FlatteKstar0=71,
26 Sigma=81,
27 Spin1GS=23,
28 Spin0NonResonant=101, Spin1NonResonant=103, Spin2NonResonant=105,
29 Spin0MIPWA=-1, PiPiI2=-11, KMatrix=-21, LASS=-31};
30}
31
36class DalitzResonance: public Base {
37
38public:
39
45 DalitzResonance() : id(0), type(ResonanceType::NonResonant),mass(ZERO),width(ZERO),
46 daughter1(0),daughter2(0),spectator(0),amp(0.),R(ZERO)
47 {}
48
52 DalitzResonance(long pid, ResonanceType::Type rtype, Energy m, Energy w,
53 unsigned int d1, unsigned int d2, unsigned int s,
54 double mag, double phi, InvEnergy rr)
55 : id(pid), type(rtype), mass(m),width(w),
56 daughter1(d1),daughter2(d2),spectator(s),
57 amp(mag*exp(Complex(0,phi))), R(rr)
58 {}
60
61public:
62
66 virtual Complex BreitWigner(const Energy & mAB, const Energy & mA, const Energy & mB) const;
67
71 virtual void dataBaseOutput(ofstream & output);
72
76 static DalitzResonancePtr readResonance(string arg, string & error);
77
78public:
79
87
93 void persistentInput(PersistentIStream & is, int version);
95
102 static void Init();
103
104private:
105
111
112public:
113
117 long id;
118
122 ResonanceType::Type type;
123
127 Energy mass;
128
132 Energy width;
133
137 unsigned int daughter1,daughter2;
138
142 unsigned int spectator;
143
148
152 InvEnergy R;
153
154};
155
156}
157
158#endif /* Herwig_DalitzResonance_H */
The DalitzResonance class provides a container class for information on resonances in multi-body dali...
long id
PID of resonant particle.
static void Init()
The standard Init function used to initialize the interfaces.
Energy mass
Mass of the resonance.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
unsigned int daughter1
The children.
DalitzResonance(long pid, ResonanceType::Type rtype, Energy m, Energy w, unsigned int d1, unsigned int d2, unsigned int s, double mag, double phi, InvEnergy rr)
Constructor specifiying the parameters.
Energy width
Width of the resonance.
DalitzResonance()
The default constructor.
Complex amp
The amplitude.
static DalitzResonancePtr readResonance(string arg, string &error)
Read the parameters for a Dalitz resonance.
virtual void dataBaseOutput(ofstream &output)
Output the parameters.
virtual Complex BreitWigner(const Energy &mAB, const Energy &mA, const Energy &mB) const
Return the Breit-Wigner times the form factor.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
unsigned int spectator
The spectactor.
InvEnergy R
Radius for the Ballt-Weisskopf formfactor.
ResonanceType::Type type
Type of the resonance.
DalitzResonance & operator=(const DalitzResonance &)=delete
The assignment operator is private and must never be called.
-*- C++ -*-
std::complex< double > Complex
constexpr ZeroUnit ZERO