herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DalitzBase.h
1// -*- C++ -*-
2#ifndef Herwig_DalitzBase_H
3#define Herwig_DalitzBase_H
4//
5// This is the declaration of the DalitzBase class.
6//
7
8#include "Herwig/Decay/DecayIntegrator.h"
9#include "Herwig/Decay/FormFactors/KMatrix.h"
10#include "DalitzResonance.h"
11
12namespace Herwig {
13
14using namespace ThePEG;
15
23
24public:
25
29 DalitzBase() : rParent_(5./GeV), useAllK0_(false),
30 maxWgt_(1.), channel1_(-1), channel2_(-1),
31 incoming_(0), outgoing_({0,0,0}) {
32 // intermediates
34 }
35
42 virtual int modeNumber(bool & cc, tcPDPtr parent,
43 const tPDVector & children) const;
44
50 virtual void dataBaseOutput(ofstream & os,bool header) const;
51
55 string addChannel(string arg);
56
60 string setExternal(string arg);
61
62public:
63
71
77 void persistentInput(PersistentIStream & is, int version);
79
86 static void Init();
87
88protected:
89
93 void addResonance(const DalitzResonancePtr & R) {resonances_.push_back(R);}
94
99
103 const vector<DalitzResonancePtr> & resonances() const {return resonances_;}
104
108 const int & channel1() const {
109 return channel1_;
110 }
111
115 const int & channel2() const {
116 return channel2_;
117 }
118
122 const InvEnergy & parentRadius() const {
123 return rParent_;
124 }
125
129 const vector<double> & weights() const {return weights_;}
130
131protected:
132
140 virtual void doinit();
141
146 virtual void doinitrun();
148
149private:
150
155 DalitzBase & operator=(const DalitzBase &) = delete;
156
157private:
158
166 InvEnergy rParent_;
168
173
177 vector<DalitzResonancePtr> resonances_;
178
182 vector<KMatrixPtr> kMatrix_;
183
191 double maxWgt_;
192
196 vector<double> weights_;
197
198private:
199
203 int channel1_, channel2_;
204
209
213 array<long,3> outgoing_;
214
215};
216
217}
218
219#endif /* Herwig_DalitzBase_H */
The DalitzBase class provides a base class for the implementation of three-body Dalitz decays.
Definition: DalitzBase.h:22
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
const vector< DalitzResonancePtr > & resonances() const
Access to the resonances.
Definition: DalitzBase.h:103
DalitzBase()
The default constructor.
Definition: DalitzBase.h:29
DalitzBase & operator=(const DalitzBase &)=delete
The assignment operator is private and must never be called.
vector< double > weights_
Weights for the phase-space channels.
Definition: DalitzBase.h:196
const vector< double > & weights() const
Weights for the phase-space channels.
Definition: DalitzBase.h:129
void createMode(tPDPtr in, tPDVector out)
Set up the phase-space.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
void addResonance(const DalitzResonancePtr &R)
Add a new resonance.
Definition: DalitzBase.h:93
long incoming_
The incoming particle.
Definition: DalitzBase.h:208
bool useAllK0_
Take all mesnos to be the same.
Definition: DalitzBase.h:172
InvEnergy rParent_
The radii for the Blatt-Weisskopf form factors.
Definition: DalitzBase.h:166
virtual void doinitrun()
Initialize this object.
vector< DalitzResonancePtr > resonances_
Vector containing the intermediate resonances.
Definition: DalitzBase.h:177
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double maxWgt_
Parameters for the phase-space sampling.
Definition: DalitzBase.h:191
string setExternal(string arg)
Set the parameters for a decay mode.
vector< KMatrixPtr > kMatrix_
Any -matrices for the decay.
Definition: DalitzBase.h:182
static void Init()
The standard Init function used to initialize the interfaces.
string addChannel(string arg)
Set the parameters for a decay mode.
int channel1_
Control over channels to check fit fractions.
Definition: DalitzBase.h:203
const int & channel1() const
Access to the first channel.
Definition: DalitzBase.h:108
array< long, 3 > outgoing_
The outgoing pairtcles.
Definition: DalitzBase.h:213
const InvEnergy & parentRadius() const
Radius of the parent.
Definition: DalitzBase.h:122
const int & channel2() const
Access to the second channel.
Definition: DalitzBase.h:115
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Main class for Decayers implementing multi-channel phase space integration.
bool generateIntermediates() const
Set whether or not the intermediates are included.
-*- C++ -*-
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
vector< tPDPtr > tPDVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr