File indexing completed on 2026-09-27 09:14:58
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef LAGER_GEN_LA_OLEKSII_2VMp_LOADED
0021 #define LAGER_GEN_LA_OLEKSII_2VMp_LOADED
0022
0023 #include <lager/core/generator.hh>
0024 #include <lager/core/particle.hh>
0025 #include <lager/gen/lA/generator.hh>
0026 #include <lager/gen/lA_event.hh>
0027
0028 namespace lager {
0029 namespace lA {
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 class oleksii_2vmp_amplitude;
0046 class oleksii_2vmp_slope;
0047
0048 class oleksii_2vmp : public lA::generator {
0049 public:
0050 using base_type = lA::generator;
0051
0052 oleksii_2vmp(const configuration& cf, const string_path& path,
0053 std::shared_ptr<TRandom> r);
0054 virtual lA_event generate(const lA_data&);
0055 virtual double max_cross_section() const { return max_; }
0056 virtual double phase_space() const { return max_exp_b0t_range_.width(); }
0057
0058 private:
0059 double calc_min_b() const;
0060 double calc_max_b(const configuration& cf) const;
0061 interval<double> calc_max_b_range(const configuration& cf) const;
0062 double calc_max_xsec(const configuration& cf) const;
0063 interval<double> calc_max_t_range(const configuration& cf) const;
0064
0065
0066 interval<double> t_range(const double W2, const double Q2,
0067 const double Mt) const;
0068
0069 interval<double> exp_bt_range(const double W2, const double Q2,
0070 const double Mt) const;
0071
0072
0073 double dsigma_dexp_b0t(const double W2, const double t, const double b) const;
0074 double R(const double Q2) const;
0075 double dipole(const double Q2) const;
0076
0077
0078 double jacobian(const double t) const;
0079
0080
0081
0082 double threshold2(const particle& vm, const particle& recoil) const;
0083
0084
0085 lA_event make_event(const lA_data& initial, const double t,
0086 const double b, particle vm1, particle X1,
0087 const double xs, const double R);
0088
0089
0090 const particle recoil_;
0091 const particle vm_;
0092
0093
0094 class oleksii_2vmp_amplitude* ampl_;
0095 class oleksii_2vmp_slope* slope_;
0096
0097
0098 const double T0_;
0099 const double R_vm_c_;
0100 const double R_vm_n_;
0101 const double dipole_n_;
0102
0103
0104 const interval<double> max_b_range_;
0105 const interval<double> max_t_range_;
0106 const interval<double> max_exp_b0t_range_;
0107 const double max_;
0108 };
0109
0110 }
0111 }
0112
0113 #endif