herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
ExperimentalOmnesFunction.h
1// -*- C++ -*-
2#ifndef Herwig_ExperimentalOmnesFunction_H
3#define Herwig_ExperimentalOmnesFunction_H
4//
5// This is the declaration of the ExperimentalOmnesFunction class.
6//
7
8#include "OmnesFunction.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
21
22public:
23
28
32 virtual Complex D(Energy2 s) const;
33
40 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
41
42public:
43
47 InvEnergy4 operator ()(Energy2 xpoint) const {
48 InvEnergy4 output = InvEnergy4();
49 Energy q(sqrt(xpoint));
50 if(abs(xpoint-s_)>sqr(epsCut_))
51 output= (*interpolator_)(q)/xpoint/(xpoint-s_);
52 return output;
53 }
55 typedef InvEnergy4 ValType;
57 typedef Energy2 ArgType;
58
59public:
60
68
74 void persistentInput(PersistentIStream & is, int version);
76
83 static void Init();
84
85protected:
86
93 virtual IBPtr clone() const;
94
99 virtual IBPtr fullclone() const;
101
102protected:
103
111 virtual void doinit();
113
114private:
115
121
122private:
123
127 vector<Energy> energy_;
128
132 vector<double> phase_;
133
137 vector<Energy> omnesEnergy_;
138
142 vector<double> omnesFunctionRe_;
143
147 vector<double> omnesFunctionIm_;
148
153
157 unsigned int nPoints_;
158
167
173
177 Energy epsCut_;
178
182 unsigned int nsizea_;
183
187 unsigned int nsizeb_;
188
192 //@
197
201 Energy2 s_;
203
204};
205
206}
207
208#endif /* Herwig_ExperimentalOmnesFunction_H */
Here is the documentation of the ExperimentalOmnesFunction class.
unsigned int nsizea_
Size of the vectors for the experimental data.
bool initialize_
set up of the interpolation table
vector< double > phase_
Experimental values of the phase shift.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
InvEnergy4 operator()(Energy2 xpoint) const
Integrand for the Omnes function.
virtual Complex D(Energy2 s) const
Method to return the function value.
ExperimentalOmnesFunction & operator=(const ExperimentalOmnesFunction &)=delete
The assignment operator is private and must never be called.
Interpolator< double, Energy >::Ptr interpolator_
Interpolator and scale for the Omes function integral.
Energy epsCut_
Cut-off parameter for the integral of the experimental function.
Energy2 ArgType
Argument type for the GaussianIntegrator.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ExperimentalOmnesFunction()
The default constructor.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
unsigned int nsizeb_
Size of the vectors for the interpolation tables.
unsigned int nPoints_
Number of points for the intepolation of the experimental Omnes function.
vector< double > omnesFunctionRe_
Real part of the Omnes function for the interpolation table.
vector< Energy > energy_
Energy values for the experimental data on the phase shift.
Interpolator< double, Energy >::Ptr oIm_
The interpolator for the imaginary part.
InvEnergy4 ValType
Return type for the GaussianIntegrator.
static void Init()
The standard Init function used to initialize the interfaces.
vector< Energy > omnesEnergy_
Energy values for the interpolation table for the Omnes function.
vector< double > omnesFunctionIm_
Imaginary part of the Omnes function for the interpolation table.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
Interpolator< double, Energy >::Ptr oRe_
Interpolators for the experimental Omnes function.
Ptr< Interpolator< ValT, ArgT > >::pointer Ptr
Pointer to an Interpolator.
Definition: Interpolator.h:38
The OmnesFunction class provides a base class for the implementation of the Omnes function.
Definition: OmnesFunction.h:22
-*- C++ -*-
double sqrt(int x)
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr auto sqr(const T &x) -> decltype(x *x)