elegent is hosted by Hepforge, IPPP Durham
Elegent
DLModel.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_dl_model_
23 #define _elegent_dl_model_
24 
25 #include "Model.h"
26 #include "Math.h"
27 
28 namespace Elegent
29 {
30 
37 class DLModel : public Model
38 {
39  public:
40  DLModel();
41  ~DLModel();
42 
43  void Configure();
44 
45  virtual void Init();
46 
47  virtual void Print() const;
48 
49  virtual TComplex Amp(double t) const;
50 
52  virtual TComplex Prf(double b_fm) const;
53 
54  protected:
55  double ep_P, ep_pl, ep_mi;
56  double X_P, X_pl, X_mi;
57  double al_P_p, al_pl_p, al_mi_p;
58  double A, a, b;
59  double C, t0;
60 
62  double upper_bound_t, precision_t;
63 
64  bool integ_workspace_initialized;
65  unsigned long integ_workspace_size_t;
66  gsl_integration_workspace *integ_workspace_t;
67 
69  double Nu(double t) const;
70 
72  double F(double t) const;
73 
75  TComplex A_single(double t) const;
76 
78  TComplex A_PP(double t) const;
79 
81  TComplex A_ggg(double t) const;
82 
83  static TComplex Amp_J0(double t, double *par, const void *vobj);
84 };
85 
86 } // namespace
87 
88 #endif
Definition: BHModel.h:28
double Nu(double t) const
evaluates nu
Definition: DLModel.cc:121
double upper_bound_t
integration variables
Definition: DLModel.h:62
virtual TComplex Prf(double b_fm) const
b in fm
Definition: DLModel.cc:211
Model of elastic pp scattering by Donnachie and Landshoff.
Definition: DLModel.h:37
TComplex A_ggg(double t) const
Eqs. (3a) and (3b) in [1].
Definition: DLModel.cc:180
virtual TComplex Amp(double t) const
Amplitude in t-space.
Definition: DLModel.cc:190
TComplex A_single(double t) const
Eq. (1b) in [1].
Definition: DLModel.cc:140
virtual void Print() const
prints model info
Definition: DLModel.cc:103
The base class for hadronic models of (anti)proton-proton elastic scattering.
Definition: Model.h:35
double F(double t) const
Eq. (1c) in [1].
Definition: DLModel.cc:133
virtual void Init()
sets up model parameters and data members
Definition: DLModel.cc:64
TComplex A_PP(double t) const
Eq. (2b) in [1].
Definition: DLModel.cc:163