herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ISGW2FormFactor.h
1 // -*- C++ -*-
2 //
3 // ISGW2FormFactor.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_ISGW2FormFactor_H
10 #define HERWIG_ISGW2FormFactor_H
11 //
12 // This is the declaration of the ISGW2FormFactor class.
13 //
14 #include "ScalarFormFactor.h"
15 #include "ThePEG/StandardModel/StandardModelBase.h"
16 #include "ThePEG/PDT/EnumParticles.h"
17 #include "ThePEG/PDT/ParticleData.h"
18 #include "ThePEG/Repository/EventGenerator.h"
19 
20 namespace Herwig {
21 using namespace ThePEG;
22 
37 
38 public:
39 
44 
58  virtual void ScalarScalarFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1,
59  Energy m0,Energy m1,Complex & f0,
60  Complex & fp) const;
61 
75  virtual void ScalarVectorFormFactor(Energy2 q2, unsigned int iloc, int id0, int id1,
76  Energy m0, Energy m1, Complex & V,
77  Complex & A0,Complex & A1,Complex & A2) const;
78 
92  virtual void ScalarTensorFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1,
93  Energy m0,Energy m1, complex<InvEnergy2> & h,
94  Complex & k, complex<InvEnergy2> & bp,
95  complex<InvEnergy2> & bm) const;
97 
104  virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
105 
106 public:
107 
114  void persistentOutput(PersistentOStream & os) const;
115 
121  void persistentInput(PersistentIStream & is, int version);
123 
127  static void Init();
128 
129 protected:
130 
143  void formFactor(Energy2 q2,unsigned int iloc,int id0,int id1,Energy m0,
144  Energy m1,Complex & f1,Complex & f2,
145  Complex & f3,Complex & f4) const;
146  // general member to calculate all the form-factors
147 
148 protected:
149 
156  virtual IBPtr clone() const {return new_ptr(*this);}
157 
162  virtual IBPtr fullclone() const {return new_ptr(*this);}
164 
165 protected:
166 
174  virtual void doinit();
176 
177 private:
178 
182  ISGW2FormFactor & operator=(const ISGW2FormFactor &) = delete;
183 
184 protected:
185 
192  double alphaS(Energy mass, Energy2 q2) const {
193  Energy2 lqcd2(0.04*GeV2);
194  double nflav(4.);
195  double output(_alphamuQM);
196  if (q2>0.36*GeV2) {
197  if(mass<_mcharm+0.03*GeV) nflav=3.0;
198  output = 12.*Constants::pi/(33.-2.*nflav)/log(q2/lqcd2);
199  }
200  return output;
201  }
202 
203 private:
204 
210  Energy _mdown;
211 
215  Energy _mup;
216 
220  Energy _mstrange;
221 
225  Energy _mcharm;
226 
230  Energy _mbottom;
231 
235  vector<Energy> _mquark;
237 
240 
244  Energy _beta1S0ud;
245 
249  Energy _beta1S0us;
250 
254  Energy _beta1S0ss;
255 
259  Energy _beta1S0cu;
260 
264  Energy _beta1S0cs;
265 
269  Energy _beta1S0ub;
270 
274  Energy _beta1S0sb;
275 
279  Energy _beta1S0cc;
280 
284  Energy _beta1S0bc;
285 
289  vector<vector<Energy> > _beta1S0;
290 
294  vector<vector<Energy> > _mass1S0;
296 
302  Energy _beta3S1ud;
303 
307  Energy _beta3S1us;
308 
312  Energy _beta3S1ss;
313 
317  Energy _beta3S1cu;
318 
322  Energy _beta3S1cs;
323 
327  Energy _beta3S1ub;
328 
332  Energy _beta3S1sb;
333 
337  Energy _beta3S1cc;
338 
342  Energy _beta3S1bc;
343 
347  vector<vector<Energy> > _beta3S1;
349 
350 
353 
357  Energy _beta1Pud;
358 
362  Energy _beta1Pus;
363 
367  Energy _beta1Pss;
368 
372  Energy _beta1Pcu;
373 
377  Energy _beta1Pcs;
378 
382  Energy _beta1Pub;
383 
387  Energy _beta1Psb;
388 
392  Energy _beta1Pcc;
393 
397  Energy _beta1Pbc;
398 
402  vector<vector<Energy> > _beta1P;
403 
407  // the 1/2 spin masses
408  vector<vector<Energy> > _massPoh;
409 
413  vector<vector<Energy> > _massPth;
415 
421  double _alphamuQM;
425  vector<double> _alphaQ;
427 
433  double _CfDrho;
434 
438  double _CfDKstar;
439 
443  double _CfDsKstar;
444 
448  double _CfDsphi;
449 
453  double _CfBrho;
454 
458  double _CfBDstar;
459 
463  double _CfBsKstar;
464 
468  double _CfBsDstar;
469 
473  double _CfBcDstar;
474 
478  double _CfBcpsi;
479 
483  double _CfBcBsstar;
484 
488  double _CfBcBstar;
490 
494  double _thetaeta;
495 
500 };
501 
502 }
503 
504 #endif /* HERWIG_ISGW2FormFactor_H */
double _CfBDstar
The correction factor for .
virtual IBPtr clone() const
Make a simple clone of this object.
double _CfBcDstar
The correction factor for .
The ScalarFormFactor class is the base class for the form factors for the weak decay of scalar to sca...
Energy _beta1Pud
The wavefunction variational parameter for .
Energy _mup
The up quark mass.
std::complex< double > Complex
double _CfBsKstar
The correction factor for .
Energy _beta1S0cs
The wavefunction variational parameter for .
vector< double > _alphaQ
The values of at the quark masses.
Energy _mdown
The down quark mass.
Energy _beta1Psb
The wavefunction variational parameter for .
vector< vector< Energy > > _beta1P
The wavefunction paramaeters as an array.
Energy _beta3S1sb
The wavefunction variational parameter for .
Energy _beta1Pcc
The wavefunction variational parameter for .
Energy _beta1S0ub
The wavefunction variational parameter for .
Energy _beta3S1us
The wavefunction variational parameter for .
The ISGW2FormFactor class is the implementation of the ISGW2 model of Phys.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Energy _beta1Pub
The wavefunction variational parameter for .
Energy _beta1S0cu
The wavefunction variational parameter for .
Energy _beta1Pcs
The wavefunction variational parameter for .
double _CfBcBsstar
The correction factor for .
Energy _beta1Pbc
The wavefunction variational parameter for .
double _thetaeta
The mixing angle.
bool _includeaW
Include the piece of the factor.
vector< vector< Energy > > _beta1S0
The wavefunction parameters as an array.
Energy _beta3S1cs
The wavefunction variational parameter for .
double alphaS(Energy mass, Energy2 q2) const
The saturated used to calculate the form-factors.
double _CfBcBstar
The correction factor for .
Energy _mcharm
The charm quark mass.
Energy _beta3S1bc
The wavefunction variational parameter for .
double _CfDsphi
The correction factor for .
vector< vector< Energy > > _mass1S0
The masses as a array.
Energy _beta1S0ss
The wavefunction variational parameter for .
Energy _beta1Pss
The wavefunction variational parameter for .
double _CfDsKstar
The correction factor for .
Energy _beta3S1cu
The wavefunction variational parameter for .
double _CfDKstar
The correction factor for .
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Energy _beta1Pus
The wavefunction variational parameter for .
vector< vector< Energy > > _massPoh
The spin-1/2 masses.
Energy _beta1S0sb
The wavefunction variational parameter for .
double _CfDrho
The correction factor for .
Energy _beta3S1ud
The wavefunction variational parameter for .
Energy _beta1S0bc
The wavefunction variational parameter for .
-*- C++ -*-
double _CfBsDstar
The correction factor for .
vector< vector< Energy > > _beta3S1
The wavefunction paramaeters as an array.
Energy _beta3S1ss
The wavefunction variational parameter for .
Energy _beta1S0us
The wavefunction variational parameter for .
double _CfBcpsi
The correction factor for .
vector< vector< Energy > > _massPth
The spin-3/2 masses.
double _CfBrho
The correction factor for .
Energy _beta1S0ud
The wavefunction variational parameter for .
Energy _mstrange
The strange quark mass.
Energy _mbottom
The bottom quark mass.
Energy _beta1Pcu
The wavefunction variational parameter for .
Energy _beta3S1ub
The wavefunction variational parameter for .
Energy _beta1S0cc
The wavefunction variational parameter for .
double _alphamuQM
The cut-off value of .
Energy _beta3S1cc
The wavefunction variational parameter for .
vector< Energy > _mquark
The masses of the quarks as a vector.