herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
BallZwickyScalarFormFactor.h
1 // -*- C++ -*-
2 //
3 // BallZwickyScalarFormFactor.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_BallZwickyScalarFormFactor_H
10 #define HERWIG_BallZwickyScalarFormFactor_H
11 //
12 // This is the declaration of the BallZwickyScalarFormFactor class.
13 //
14 #include "ScalarFormFactor.h"
15 
16 namespace Herwig {
17 using namespace ThePEG;
18 
31 
32 public:
33 
38 
52  virtual void ScalarScalarFormFactor(Energy2 q2,unsigned int iloc,int id0,
53  int id1, Energy m0, Energy m1,
54  Complex & f0,Complex & fp) const;
55 
66  void ScalarScalarSigmaFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1,
67  Energy m0, Energy m1,Complex & fT) const;
69 
76  virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
77 
78 public:
79 
86  void persistentOutput(PersistentOStream & os) const;
87 
93  void persistentInput(PersistentIStream & is, int version);
95 
99  static void Init();
100 
101 protected:
102 
109  virtual IBPtr clone() const {return new_ptr(*this);}
110 
115  virtual IBPtr fullclone() const {return new_ptr(*this);}
117 
118 protected:
119 
127  virtual void doinit();
129 
130 private:
131 
136 
140  BallZwickyScalarFormFactor & operator=(const BallZwickyScalarFormFactor &) = delete;
141 
142 private:
143 
146 
150  vector<double> _r10;
151 
155  vector<double> _r20;
156 
160  vector<double> _r1plus;
161 
165  vector<double> _r2plus;
166 
170  vector<double> _r1T;
171 
175  vector<double> _r2T;
177 
180 
184  vector<Energy2> _m120;
185 
189  vector<Energy2> _mfit20;
190 
194  vector<Energy2> _m12plus;
195 
199  vector<Energy2> _mfit2plus;
200 
204  vector<Energy2> _m12T;
205 
209  vector<Energy2> _mfit2T;
211 
215  double _thetaeta;
216 
217 };
218 
219 }
220 
221 #include "ThePEG/Utilities/ClassTraits.h"
222 
223 namespace ThePEG {
224 
231 template <>
232  struct BaseClassTrait<Herwig::BallZwickyScalarFormFactor,1> {
234  typedef Herwig::ScalarFormFactor NthBase;
235 };
236 
241 template <>
243  : public ClassTraitsBase<Herwig::BallZwickyScalarFormFactor> {
245  static string className() { return "Herwig::BallZwickyScalarFormFactor"; }
250  static string library() { return "HwFormFactors.so"; }
251 };
252 
255 }
256 
257 #endif /* HERWIG_BallZwickyScalarFormFactor_H */
static ClassDescription< BallZwickyScalarFormFactor > initBallZwickyScalarFormFactor
Describe a concrete class with persistent data.
The ScalarFormFactor class is the base class for the form factors for the weak decay of scalar to sca...
vector< double > _r10
The coefficient for the form factor.
vector< Energy2 > _mfit2plus
The mass form factor.
virtual IBPtr clone() const
Make a simple clone of this object.
std::complex< double > Complex
vector< Energy2 > _m12plus
The mass form factor.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< double > _r1T
The coefficient for the form factor.
vector< Energy2 > _mfit2T
The mass form factor.
vector< Energy2 > _m120
The mass form factor.
vector< double > _r2T
The coefficient for the form factor.
vector< double > _r2plus
The coefficient for the form factor.
This class is the implementation of the form-factors of PRD71 014015 (2005) for the form-factor for t...
vector< double > _r20
The coefficient for the form factor.
vector< Energy2 > _mfit20
The mass form factor.
-*- C++ -*-
vector< double > _r1plus
The coefficient for the form factor.
vector< Energy2 > _m12T
The mass form factor.