elegent is hosted by Hepforge, IPPP Durham
Elegent
BHModel.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_bh_model_
23 #define _elegent_bh_model_
24 
25 #include "Model.h"
26 #include "Math.h"
27 
28 namespace Elegent
29 {
30 
38 class BHModel : public Model
39 {
40  public:
41  BHModel();
42  ~BHModel();
43 
44  void Configure();
45  virtual void Init();
46  virtual void Print() const;
47  virtual TComplex Amp(double t) const;
48  virtual TComplex Prf(double b) const;
49 
50  protected:
52  double m0, s0, al_s, Sigma_gg;
53 
55  double Cp_gg, epsilon, Ng;
56  std::vector<double> a, b;
57 
59  double C_qg_log;
60 
62  double C, C_even_regge;
63 
65  double C_odd;
66 
68  double mu_gg, mu_qg, mu_qq, mu_odd;
69 
71  TComplex sigma_gg, sigma_qq, sigma_qg, sigma_odd;
72 
74  double precision, upper_bound;
75 
76  bool integ_workspace_initialized;
77  unsigned long integ_workspace_size;
78  gsl_integration_workspace *integ_workspace;
79 
81  double W(double b, double mi) const;
82 
84  TComplex Sum(double s) const;
85 
87  TComplex chi_without_i(double b) const;
88 
89  TComplex prf0(double b) const;
90  static TComplex prf0_J0(double b, double *par, const void *vobj);
91 };
92 
93 } // namespace
94 
95 #endif
Definition: BHModel.h:28
double C_odd
parameters for sigma_qq
Definition: BHModel.h:65
TComplex Sum(double s) const
sum in Eq. (B5) in [1]
Definition: BHModel.cc:183
virtual TComplex Prf(double b) const
Profile function (amplitude in b-space).
Definition: BHModel.cc:240
TComplex chi_without_i(double b) const
the full eikonal: Eq. (1) without the leading factor i and Eq. (12)
Definition: BHModel.cc:219
virtual TComplex Amp(double t) const
Amplitude in t-space.
Definition: BHModel.cc:257
virtual void Print() const
prints model info
Definition: BHModel.cc:139
virtual void Init()
sets up model parameters and data members
Definition: BHModel.cc:58
TComplex sigma_gg
the integral cross-sections
Definition: BHModel.h:71
double W(double b, double mi) const
profile defined by Eq. (B2) in [1]
Definition: BHModel.cc:203
double m0
common parameters
Definition: BHModel.h:52
double C
parameters for sigma_qg
Definition: BHModel.h:62
Block-Halzen model of p-p and p-anti p elastic scattering.
Definition: BHModel.h:38
The base class for hadronic models of (anti)proton-proton elastic scattering.
Definition: Model.h:35
double mu_gg
effective areas
Definition: BHModel.h:68
double precision
integration parameters
Definition: BHModel.h:74
double Cp_gg
parameters for sigma_gg
Definition: BHModel.h:55
double C_qg_log
parameters for sigma_gg
Definition: BHModel.h:59