File indexing completed on 2026-09-27 09:14:58
0001 #ifndef LIEGE_GEN_LP_GAMMA_LEE_4HE_JPSI_GRID_LOADED
0002 #define LIEGE_GEN_LP_GAMMA_LEE_4HE_JPSI_GRID_LOADED
0003
0004 #include <TGraph2D.h>
0005 #include <memory>
0006 #include <lager/core/generator.hh>
0007 #include <lager/core/particle.hh>
0008 #include <lager/gen/lA/generator.hh>
0009 #include <lager/gen/lA_event.hh>
0010
0011 namespace lager {
0012 namespace lA {
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 class lee_4He_jpsi_grid : public lA::generator {
0028 public:
0029 using base_type = lA::generator;
0030
0031 lee_4He_jpsi_grid(const configuration& cf, const string_path& path,
0032 std::shared_ptr<TRandom> r);
0033 virtual lA_event generate(const lA_data&);
0034 virtual double max_cross_section() const { return max_; }
0035 virtual double phase_space() const { return max_t_range_.width(); }
0036
0037 private:
0038 double calc_max_xsec(const configuration& cf) const;
0039 interval<double> calc_max_t_range(const configuration& cf) const;
0040
0041
0042 double dsigma_dt(const double W2, const double t, const double Mt) const;
0043 double R(const double Q2) const;
0044 double dipole(const double Q2) const;
0045
0046
0047 double jacobian(const double t) const;
0048
0049
0050
0051 double threshold2(const particle& vm, const particle& recoil) const;
0052
0053
0054 lA_event make_event(const lA_data& initial, const double t,
0055 particle vm1, particle X1, const double xs,
0056 const double R);
0057
0058
0059 const particle recoil_;
0060 const particle vm_;
0061
0062
0063 std::unique_ptr<TGraph2D> grid_;
0064 const double R_vm_c_;
0065 const double R_vm_n_;
0066 const double dipole_n_;
0067
0068
0069 const interval<double> max_t_range_;
0070 const double max_;
0071 };
0072
0073 }
0074 }
0075
0076 #endif