elegent is hosted by Hepforge, IPPP Durham
Elegent
IslamModel.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_islam_model_
23 #define _elegent_islam_model_
24 
25 #include "Model.h"
26 #include "Math.h"
27 
28 namespace Elegent
29 {
30 
31 
43 class IslamModel : public Model
44 {
45  public:
48  {
49  vHP,
50  vLxG,
52  } variant;
53 
55  enum ModeType
56  {
62  } mode;
63 
64  IslamModel();
65  ~IslamModel();
66 
67  void Configure(VariantType _v, ModeType _m);
68 
69  virtual void Init();
70 
71  static TComplex CEF(double a, double b, double c);
72 
73  void SetUnitarizationOrders(int qq, int cgc)
74  {
75  qqMaxOrder = qq;
76  cgcMaxOrder = cgc;
77  }
78 
79  virtual void Print() const;
80 
81  virtual TComplex Amp(double t) const;
82  virtual TComplex Prf(double b) const;
83 
84  protected:
86  TComplex R, a, Diff_fac_profile, Diff_fac;
87 
89  TComplex Abs_fac;
90 
92  double beta, m_omega_sq, Core_fac;
93  bool multipleOmegaExchange;
94 
96  double m0sq;
97 
99  double r0, omega;
100  TComplex Quark_fac;
101  TComplex Quark_const;
102  int qqMaxOrder;
103 
105  double lambda, m_c;
106  TComplex cgc_fac;
107  int cgcMaxOrder;
108 
110  double precision_b, precision_t, upper_bound_b, upper_bound_t;
111 
112  bool integ_workspace_initialized;
113  unsigned long integ_workspace_size_b;
114  gsl_integration_workspace *integ_workspace_b;
115  unsigned long integ_workspace_size_t;
116  gsl_integration_workspace *integ_workspace_t;
117 
119  TComplex T_diff(double t) const;
120  TComplex GammaD(double b) const;
121  static TComplex GammaD_J0(double b, double *par, const void *vobj);
122 
124  static TComplex T_core_integ(double b, double *par, const void *vobj);
125  double F_sq(double t) const;
126  TComplex T_core(double t) const;
127 
129  TComplex T_quark(double t) const;
130  double I_integral(double qt, double al) const;
131  static double F_cal_integ(double x, double *par, const void *vobj);
132  double F_cal(int n, double qt, double om, double m0sq) const;
133 
135  static double T_hp_integ(double b, double *par, const void *vobj);
136  TComplex T_hp_n(int n, double t) const;
137  TComplex T_hp(double t) const;
138 
140  static double T_lxg_integ(double b, double *par, const void *vobj);
141  TComplex T_lxg_n(int n, double t) const;
142  TComplex T_lxg(double t) const;
143 
145  static TComplex Amp_J0(double t, double *par, const void *vobj);
146 };
147 
148 } // namespace
149 
150 #endif
double beta
core scattering variables
Definition: IslamModel.h:92
low-x gluons, version from EDS'13
Definition: IslamModel.h:51
Definition: BHModel.h:28
double precision_b
integration variables
Definition: IslamModel.h:110
TComplex T_diff(double t) const
diffraction amplitude
Definition: IslamModel.cc:282
Islam model of p-p and p-anti p elastic scattering.
Definition: IslamModel.h:43
quark-quark amplitude
Definition: IslamModel.h:59
virtual void Init()
sets up model parameters and data members
Definition: IslamModel.cc:94
double r0
"hard pomeron" scattering variables
Definition: IslamModel.h:99
double lambda
"low-x gluons" scattering
Definition: IslamModel.h:105
diffraction and core amplitude
Definition: IslamModel.h:60
static TComplex T_core_integ(double b, double *par, const void *vobj)
core amplitude
Definition: IslamModel.cc:304
low-x gluons
Definition: IslamModel.h:50
TComplex GammaD(double b) const
Definition: IslamModel.cc:263
hard Pomeron
Definition: IslamModel.h:49
static double T_hp_integ(double b, double *par, const void *vobj)
quark-quark amplitude: hard-pomeron variant
Definition: IslamModel.cc:399
static double T_lxg_integ(double b, double *par, const void *vobj)
quark-quark amplitude: low-x gluons variant
Definition: IslamModel.cc:456
static TComplex Amp_J0(double t, double *par, const void *vobj)
profile funcion methods
Definition: IslamModel.cc:530
virtual void Print() const
prints model info
Definition: IslamModel.cc:220
ModeType
mode of the model
Definition: IslamModel.h:55
diffraction, core and quark-quark amplitude
Definition: IslamModel.h:61
core amplitude
Definition: IslamModel.h:58
TComplex T_hp(double t) const
Definition: IslamModel.cc:435
VariantType
variant of the model
Definition: IslamModel.h:47
The base class for hadronic models of (anti)proton-proton elastic scattering.
Definition: Model.h:35
TComplex T_core(double t) const
Definition: IslamModel.cc:321
TComplex T_lxg(double t) const
Definition: IslamModel.cc:485
virtual TComplex Amp(double t) const
Amplitude in t-space.
Definition: IslamModel.cc:507
double m0sq
quark confinement parameters
Definition: IslamModel.h:96
virtual TComplex Prf(double b) const
Profile function (amplitude in b-space).
Definition: IslamModel.cc:540
TComplex T_quark(double t) const
quark-quark amplitude
Definition: IslamModel.cc:384
TComplex R
diffraction variables
Definition: IslamModel.h:86
double F_sq(double t) const
Definition: IslamModel.cc:296
TComplex Abs_fac
hard scattering variables
Definition: IslamModel.h:89
diffraction amplitude
Definition: IslamModel.h:57