elegent is hosted by Hepforge, IPPP Durham
Elegent
GodizovModel.h
1 /********************************************************************************
2 
3  Copyright 2013 Jan Kašpar
4 
5  This file is part of Elegent (http://elegent.hepforge.org/).
6 
7  Elegent is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Elegent is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Elegent. If not, see <http://www.gnu.org/licenses/>.
19 
20 ********************************************************************************/
21 
22 #ifndef _elegent_godizov_model_
23 #define _elegent_godizov_model_
24 
25 #include "Model.h"
26 #include "Math.h"
27 
28 namespace Elegent
29 {
30 
38 class GodizovModel : public Model
39 {
40  public:
41  GodizovModel();
42  ~GodizovModel();
43 
44  void Configure(bool _presampled = true);
45 
46  virtual void Init();
47 
48  virtual void Print() const;
49 
50  virtual TComplex Amp(double t) const;
51 
53  virtual TComplex Prf(double b) const;
54 
55  protected:
56  double De;
57  double ta_a;
58  double Ga_P0;
59  double ta_g;
60  double s0;
61 
63  bool presampled;
64 
65  virtual void ForcePresampling(bool value)
66  {
67  presampled = value;
68  }
69 
71  TComplex delta_t(double t) const;
72 
73  static TComplex delta_t_J0(double t, double *par, const void *obj);
74 
76  TComplex delta_b(double b) const;
77 
79  TComplex prf0(double b) const;
80 
81  static TComplex prf_J0(double b, double *par, const void *obj);
82 
84  double upper_bound_t, precision_t;
85  double upper_bound_b, precision_b;
86 
87  bool integ_workspace_initialized;
88  unsigned long integ_workspace_size_b;
89  gsl_integration_workspace *integ_workspace_b;
90  unsigned long integ_workspace_size_t;
91  gsl_integration_workspace *integ_workspace_t;
92 
95 
97  unsigned int prf0_sample_N;
98 
100  std::vector<double> prf0_sample_re, prf0_sample_im;
101 
103  void Prf0SampleBuild(unsigned int samples);
104 
106  TComplex Prf0SampleEval(double b) const;
107 };
108 
109 } // namespace
110 
111 #endif
bool presampled
flag whether the profile function is presampled
Definition: GodizovModel.h:63
TComplex prf0(double b) const
profile function, b in GeV^-1, see Eq. (1) in [2]
Definition: GodizovModel.cc:157
Definition: BHModel.h:28
virtual TComplex Prf(double b) const
b in fm
Definition: GodizovModel.cc:164
void Prf0SampleBuild(unsigned int samples)
samples the prf0 function
Definition: GodizovModel.cc:193
TComplex Prf0SampleEval(double b) const
interpolates (linearly) the sample at point b
Definition: GodizovModel.cc:218
double De
al_P(0) - 1
Definition: GodizovModel.h:56
unsigned int prf0_sample_N
the number of sampled points
Definition: GodizovModel.h:97
std::vector< double > prf0_sample_re
the sampled real and imaginary values of prf0(b)
Definition: GodizovModel.h:100
virtual TComplex Amp(double t) const
Amplitude in t-space.
Definition: GodizovModel.cc:182
The base class for hadronic models of (anti)proton-proton elastic scattering.
Definition: Model.h:35
double upper_bound_t
integration variables
Definition: GodizovModel.h:84
Model of elastic pp scattering by Anton Godizov.
Definition: GodizovModel.h:38
virtual void Print() const
prints model info
Definition: GodizovModel.cc:101
virtual void Init()
sets up model parameters and data members
Definition: GodizovModel.cc:67
virtual void ForcePresampling(bool value)
Sets the presampling option, if available.
Definition: GodizovModel.h:65
double prf0_sample_db
the sampling-step size
Definition: GodizovModel.h:94
TComplex delta_t(double t) const
Eq. (3) in [2].
Definition: GodizovModel.cc:124
TComplex delta_b(double b) const
bottom relation from Eq. (1) in [2]
Definition: GodizovModel.cc:146