herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
FormFactors
BaryonFormFactor.h
1
// -*- C++ -*-
2
#ifndef HERWIG_BaryonFormFactor_H
3
#define HERWIG_BaryonFormFactor_H
4
//
5
// This is the declaration of the BaryonFormFactor class.
6
//
7
#include "ThePEG/Interface/Interfaced.h"
8
#include "BaryonFormFactor.fh"
9
#include "ThePEG/Config/Complex.h"
10
#include "Herwig/Decay/IsoSpin.h"
11
12
namespace
Herwig
{
13
using namespace
ThePEG
;
14
92
class
BaryonFormFactor
:
public
Interfaced
{
93
94
public
:
95
99
enum
Virtuality
{TimeLike, SpaceLike};
100
101
102
public
:
103
107
BaryonFormFactor
() :
_numbermodes
() {}
108
115
void
persistentOutput
(
PersistentOStream
& os)
const
;
116
122
void
persistentInput
(
PersistentIStream
& is,
int
version);
124
128
static
void
Init
();
129
130
protected
:
131
138
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
139
144
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
146
147
public
:
148
151
159
int
formFactorNumber
(
int
in,
int
out,
bool
& cc)
const
{
160
int
output(-1);
161
unsigned
int
ix(0);
162
if
(
_incomingid
.size()==0){
return
output;}
163
do
{
164
if
(
_incomingid
[ix]== in &&
_outgoingid
[ix]== out) {
165
cc=
false
;
166
output=ix;
167
}
168
else
if
(
_incomingid
[ix]==-in &&
_outgoingid
[ix]==-out) {
169
cc=
true
;
170
output=ix;
171
}
172
++ix;
173
}
174
while
(ix<
_incomingid
.size()&&output<0);
175
return
output;
176
}
177
184
void
particleID
(
int
iloc,
int
& id0,
int
& id1) {
185
id0=
_incomingid
[iloc];
186
id1=
_outgoingid
[iloc];
187
}
188
199
void
formFactorInfo
(
int
iloc,
int
& ispin,
int
& ospin,
int
& spect1,
200
int
& spect2,
int
& inquark,
int
& outquark) {
201
ispin =
_incomingJ
[iloc];
202
ospin =
_outgoingJ
[iloc];
203
spect1 =
_spectator1
[iloc];
204
spect2 =
_spectator2
[iloc];
205
inquark =
_inquark
[iloc];
206
outquark =
_outquark
[iloc];
207
}
208
220
void
formFactorInfo
(
int
in,
int
out,
int
& ispin,
int
& ospin,
int
& spect1,
221
int
& spect2,
int
& inquark,
int
& outquark) {
222
bool
dummy;
223
unsigned
int
ix=
formFactorNumber
(in,out,dummy);
224
formFactorInfo
(ix,ispin,ospin,spect1,spect2,inquark,outquark);
225
}
226
230
unsigned
int
numberOfFactors
()
const
{
return
_incomingid
.size();}
232
233
public
:
234
257
virtual
void
SpinHalfSpinHalfFormFactor
(Energy2 q2,
int
iloc,
int
id0,
int
id1,
258
Energy m0, Energy m1,
259
Complex
& f1v,
Complex
& f2v,
Complex
& f3v,
260
Complex
& f1a,
Complex
& f2a,
Complex
& f3a,
261
FlavourInfo
flavour,
262
Virtuality
virt=SpaceLike);
263
286
virtual
void
SpinHalfSpinThreeHalfFormFactor
(Energy2 q2,
int
iloc,
int
id0,
int
id1,
287
Energy m0, Energy m1,
288
Complex
& g1v,
Complex
& g2v,
Complex
& g3v,
289
Complex
& g4v,
Complex
& g1a,
Complex
& g2a,
290
Complex
& g3a,
Complex
& g4a,
291
FlavourInfo
flavour,
292
Virtuality
virt=SpaceLike);
294
301
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
302
303
protected
:
304
316
void
addFormFactor
(
int
in,
int
out,
int
inspin,
int
outspin,
int
spect1,
317
int
spect2,
int
inquark,
int
outquark) {
318
_incomingid
.push_back(in);
319
_outgoingid
.push_back(out);
320
_incomingJ
.push_back(inspin);
321
_outgoingJ
.push_back(outspin);
322
_spectator1
.push_back(spect1);
323
_spectator2
.push_back(spect2);
324
_inquark
.push_back(inquark);
325
_outquark
.push_back(outquark);
326
}
327
332
void
initialModes
(
unsigned
int
nmodes) {
_numbermodes
=nmodes;}
333
337
unsigned
int
initialModes
()
const
{
return
_numbermodes
;}
338
339
protected
:
340
348
virtual
void
doinit
();
350
351
private
:
352
356
BaryonFormFactor
&
operator=
(
const
BaryonFormFactor
&) =
delete
;
357
358
private
:
359
363
vector<int>
_incomingid
;
364
368
vector<int>
_outgoingid
;
369
373
vector<int>
_incomingJ
;
374
378
vector<int>
_outgoingJ
;
379
383
vector<int>
_spectator1
;
384
388
vector<int>
_spectator2
;
389
393
vector<int>
_inquark
;
394
398
vector<int>
_outquark
;
399
403
unsigned
int
_numbermodes
;
404
};
405
406
}
407
408
#endif
/* HERWIG_BaryonFormFactor_H */
Herwig::BaryonFormFactor
The BaryonFormFactor class is the base class for the implementation of the form-factors for the weak ...
Definition:
BaryonFormFactor.h:92
Herwig::BaryonFormFactor::_outquark
vector< int > _outquark
the id of the outgoing quark
Definition:
BaryonFormFactor.h:398
Herwig::BaryonFormFactor::_incomingJ
vector< int > _incomingJ
spin of the incoming particle
Definition:
BaryonFormFactor.h:373
Herwig::BaryonFormFactor::formFactorNumber
int formFactorNumber(int in, int out, bool &cc) const
Find the location for a given pair of particle.
Definition:
BaryonFormFactor.h:159
Herwig::BaryonFormFactor::SpinHalfSpinHalfFormFactor
virtual void SpinHalfSpinHalfFormFactor(Energy2 q2, int iloc, int id0, int id1, Energy m0, Energy m1, Complex &f1v, Complex &f2v, Complex &f3v, Complex &f1a, Complex &f2a, Complex &f3a, FlavourInfo flavour, Virtuality virt=SpaceLike)
The form factor for the weak decay of a spin baryon to a spin baryon.
Herwig::BaryonFormFactor::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
BaryonFormFactor.h:144
Herwig::BaryonFormFactor::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::BaryonFormFactor::Virtuality
Virtuality
Whether the form factor is space- or time-like.
Definition:
BaryonFormFactor.h:99
Herwig::BaryonFormFactor::_numbermodes
unsigned int _numbermodes
The initial number of modes.
Definition:
BaryonFormFactor.h:403
Herwig::BaryonFormFactor::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::BaryonFormFactor::_inquark
vector< int > _inquark
the id of the decaying quark
Definition:
BaryonFormFactor.h:393
Herwig::BaryonFormFactor::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::BaryonFormFactor::_spectator2
vector< int > _spectator2
the id of the second spectator quark
Definition:
BaryonFormFactor.h:388
Herwig::BaryonFormFactor::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
BaryonFormFactor.h:138
Herwig::BaryonFormFactor::operator=
BaryonFormFactor & operator=(const BaryonFormFactor &)=delete
Private and non-existent assignment operator.
Herwig::BaryonFormFactor::BaryonFormFactor
BaryonFormFactor()
Default constructor.
Definition:
BaryonFormFactor.h:107
Herwig::BaryonFormFactor::formFactorInfo
void formFactorInfo(int in, int out, int &ispin, int &ospin, int &spect1, int &spect2, int &inquark, int &outquark)
Information on the form factor.
Definition:
BaryonFormFactor.h:220
Herwig::BaryonFormFactor::formFactorInfo
void formFactorInfo(int iloc, int &ispin, int &ospin, int &spect1, int &spect2, int &inquark, int &outquark)
Information on the form factor.
Definition:
BaryonFormFactor.h:199
Herwig::BaryonFormFactor::initialModes
unsigned int initialModes() const
Get the initial number of modes.
Definition:
BaryonFormFactor.h:337
Herwig::BaryonFormFactor::numberOfFactors
unsigned int numberOfFactors() const
number of form factors
Definition:
BaryonFormFactor.h:230
Herwig::BaryonFormFactor::particleID
void particleID(int iloc, int &id0, int &id1)
Get the particle ids for an entry.
Definition:
BaryonFormFactor.h:184
Herwig::BaryonFormFactor::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::BaryonFormFactor::_outgoingJ
vector< int > _outgoingJ
spin of the outgoing particle
Definition:
BaryonFormFactor.h:378
Herwig::BaryonFormFactor::SpinHalfSpinThreeHalfFormFactor
virtual void SpinHalfSpinThreeHalfFormFactor(Energy2 q2, int iloc, int id0, int id1, Energy m0, Energy m1, Complex &g1v, Complex &g2v, Complex &g3v, Complex &g4v, Complex &g1a, Complex &g2a, Complex &g3a, Complex &g4a, FlavourInfo flavour, Virtuality virt=SpaceLike)
The form factor for the weak decay of a spin baryon to a spin baryon.
Herwig::BaryonFormFactor::initialModes
void initialModes(unsigned int nmodes)
Set initial number of modes.
Definition:
BaryonFormFactor.h:332
Herwig::BaryonFormFactor::_spectator1
vector< int > _spectator1
the id of the first spectator quark
Definition:
BaryonFormFactor.h:383
Herwig::BaryonFormFactor::_incomingid
vector< int > _incomingid
the id's of the incoming particles
Definition:
BaryonFormFactor.h:363
Herwig::BaryonFormFactor::_outgoingid
vector< int > _outgoingid
the id's of the outgoing particles
Definition:
BaryonFormFactor.h:368
Herwig::BaryonFormFactor::addFormFactor
void addFormFactor(int in, int out, int inspin, int outspin, int spect1, int spect2, int inquark, int outquark)
Add a form factor to the list.
Definition:
BaryonFormFactor.h:316
Herwig::BaryonFormFactor::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::FlavourInfo
Definition:
IsoSpin.h:46
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6