File indexing completed on 2026-08-06 09:23:59
0001
0002 #ifndef Herwig_MIPWA_H
0003 #define Herwig_MIPWA_H
0004
0005
0006
0007
0008 #include "DalitzResonance.h"
0009 #include "Herwig/Utilities/Interpolator.h"
0010
0011 namespace Herwig {
0012
0013 using namespace ThePEG;
0014
0015
0016
0017
0018 class MIPWA: public DalitzResonance {
0019
0020 public:
0021
0022
0023
0024
0025 MIPWA()
0026 {}
0027
0028
0029
0030
0031 MIPWA(long pid, ResonanceType::Type rtype, Energy m, Energy w,
0032 unsigned int d1, unsigned int d2, unsigned int s,
0033 double mag, double phi, InvEnergy rr,
0034 vector<Energy> en, vector<double> mag2, vector<double> phi2)
0035 : DalitzResonance(pid,rtype,m,w,d1,d2,s,mag,phi,rr),
0036 energy_(en), mag_(mag2), phase_(phi2)
0037 {}
0038
0039 public:
0040
0041
0042
0043
0044 virtual Complex BreitWigner(const Energy & mAB, const Energy & mA, const Energy & mB) const;
0045
0046
0047
0048
0049 virtual void dataBaseOutput(ofstream & output);
0050
0051 public:
0052
0053
0054
0055
0056
0057
0058
0059 void persistentOutput(PersistentOStream & os) const;
0060
0061
0062
0063
0064
0065
0066 void persistentInput(PersistentIStream & is, int version);
0067
0068
0069
0070
0071
0072
0073
0074
0075 static void Init();
0076
0077 private:
0078
0079
0080
0081
0082
0083 MIPWA & operator=(const MIPWA &) = delete;
0084
0085 private:
0086
0087
0088
0089
0090 vector<Energy> energy_;
0091
0092
0093
0094
0095 vector<double> mag_;
0096
0097
0098
0099
0100 vector<double> phase_;
0101
0102
0103
0104
0105
0106
0107
0108
0109 mutable Interpolator<double,Energy>::Ptr iMag_;
0110
0111
0112
0113
0114 mutable Interpolator<double,Energy>::Ptr iPhase_;
0115
0116
0117 };
0118
0119 }
0120
0121 #endif