herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
ISGW2FormFactor.h
1 // -*- C++ -*-
2 //
3 // ISGW2FormFactor.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2017 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 
183 
187  ISGW2FormFactor & operator=(const ISGW2FormFactor &) = delete;
188 
189 protected:
190 
197  double alphaS(Energy mass, Energy2 q2) const {
198  Energy2 lqcd2(0.04*GeV2);
199  double nflav(4.);
200  double output(_alphamuQM);
201  if (q2>0.36*GeV2) {
202  if(mass<_mcharm+0.03*GeV) nflav=3.0;
203  output = 12.*Constants::pi/(33.-2.*nflav)/log(q2/lqcd2);
204  }
205  return output;
206  }
207 
208 private:
209 
215  Energy _mdown;
216 
220  Energy _mup;
221 
225  Energy _mstrange;
226 
230  Energy _mcharm;
231 
235  Energy _mbottom;
236 
240  vector<Energy> _mquark;
242 
245 
249  Energy _beta1S0ud;
250 
254  Energy _beta1S0us;
255 
259  Energy _beta1S0ss;
260 
264  Energy _beta1S0cu;
265 
269  Energy _beta1S0cs;
270 
274  Energy _beta1S0ub;
275 
279  Energy _beta1S0sb;
280 
284  Energy _beta1S0cc;
285 
289  Energy _beta1S0bc;
290 
294  vector<vector<Energy> > _beta1S0;
295 
299  vector<vector<Energy> > _mass1S0;
301 
307  Energy _beta3S1ud;
308 
312  Energy _beta3S1us;
313 
317  Energy _beta3S1ss;
318 
322  Energy _beta3S1cu;
323 
327  Energy _beta3S1cs;
328 
332  Energy _beta3S1ub;
333 
337  Energy _beta3S1sb;
338 
342  Energy _beta3S1cc;
343 
347  Energy _beta3S1bc;
348 
352  vector<vector<Energy> > _beta3S1;
354 
355 
358 
362  Energy _beta1Pud;
363 
367  Energy _beta1Pus;
368 
372  Energy _beta1Pss;
373 
377  Energy _beta1Pcu;
378 
382  Energy _beta1Pcs;
383 
387  Energy _beta1Pub;
388 
392  Energy _beta1Psb;
393 
397  Energy _beta1Pcc;
398 
402  Energy _beta1Pbc;
403 
407  vector<vector<Energy> > _beta1P;
408 
412  // the 1/2 spin masses
413  vector<vector<Energy> > _massPoh;
414 
418  vector<vector<Energy> > _massPth;
420 
426  double _alphamuQM;
430  vector<double> _alphaQ;
432 
438  double _CfDrho;
439 
443  double _CfDKstar;
444 
448  double _CfDsKstar;
449 
453  double _CfDsphi;
454 
458  double _CfBrho;
459 
463  double _CfBDstar;
464 
468  double _CfBsKstar;
469 
473  double _CfBsDstar;
474 
478  double _CfBcDstar;
479 
483  double _CfBcpsi;
484 
488  double _CfBcBsstar;
489 
493  double _CfBcBstar;
495 
499  double _thetaeta;
500 
505 };
506 
507 }
508 
509 #include "ThePEG/Utilities/ClassTraits.h"
510 
511 namespace ThePEG {
512 
519 template <>
520  struct BaseClassTrait<Herwig::ISGW2FormFactor,1> {
522  typedef Herwig::ScalarFormFactor NthBase;
523 };
524 
529 template <>
530  struct ClassTraits<Herwig::ISGW2FormFactor>
531  : public ClassTraitsBase<Herwig::ISGW2FormFactor> {
533  static string className() { return "Herwig::ISGW2FormFactor"; }
538  static string library() { return "HwFormFactors.so"; }
539 };
540 
543 }
544 
545 #endif /* HERWIG_ISGW2FormFactor_H */
546 
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.
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.
std::complex< double > Complex
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.
static ClassDescription< ISGW2FormFactor > initISGW2FormFactor
Describe a concrete class with persistent data.
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.