File indexing completed on 2025-04-19 09:10:12
0001 #ifndef PHOTONS_Main_Photons_H
0002 #define PHOTONS_Main_Photons_H
0003
0004 #include "MODEL/Main/Running_AlphaQED.H"
0005 #include "PHOTONS++/Main/Dipole_Type.H"
0006 #include "PHOTONS++/PhotonSplitter/Photon_Splitter.H"
0007
0008 namespace ATOOLS {
0009 class Blob;
0010 #ifdef PHOTONS_DEBUG
0011 class Histogram_2D;
0012 #endif
0013 }
0014
0015 namespace PHOTONS {
0016 struct yfsmode {
0017 enum code {
0018 off = 0,
0019 soft = 1,
0020 full = 2
0021 };
0022 };
0023
0024 std::ostream &operator<<(std::ostream &str,const yfsmode::code &ym);
0025 std::istream &operator>>(std::istream &str,yfsmode::code &ym);
0026
0027
0028 class Photons {
0029 private:
0030 std::string m_name;
0031 bool m_photonsadded;
0032 bool m_success;
0033 Photon_Splitter m_photonsplitter;
0034 int m_splitphotons;
0035 void RegisterDefaults();
0036 public:
0037 Photons();
0038 ~Photons();
0039 bool AddRadiation(ATOOLS::Blob *);
0040 bool CheckStateBeforeTreatment(ATOOLS::Blob *);
0041
0042 inline bool DoneSuccessfully() { return m_success; }
0043 inline bool AddedAnything() { return m_photonsadded; }
0044 inline std::string Name() { return m_name; }
0045
0046 static double s_alpha,s_alpha_input;
0047 static bool s_userunningparameters;
0048 static inline void ResetAlphaQED()
0049 { s_alpha=s_alpha_input; }
0050 static inline void SetAlphaQED(const double& scale)
0051 { if (s_userunningparameters) s_alpha=(*MODEL::aqed)(scale); }
0052
0053 static yfsmode::code s_mode;
0054 static bool s_useme;
0055 static double s_ircutoff;
0056 static double s_uvcutoff;
0057 static int s_ircutoffframe;
0058 static double s_accu;
0059 static int s_nmax;
0060 static int s_nmin;
0061 static double s_drcut;
0062 static bool s_strict;
0063 static double s_increasemaxweight;
0064 static double s_reducemaxenergy;
0065 static bool s_checkfirst;
0066 static int s_ffrecscheme;
0067 static int s_firecscheme;
0068
0069 #ifdef PHOTONS_DEBUG
0070 static std::string s_histo_base_name;
0071 static ATOOLS::Histogram_2D s_histo_dipole;
0072 static ATOOLS::Histogram_2D s_histo_jacobianM;
0073 static ATOOLS::Histogram_2D s_histo_jacobianL;
0074 static ATOOLS::Histogram_2D s_histo_higher;
0075 static ATOOLS::Histogram_2D s_histo_yfs;
0076 static ATOOLS::Histogram_2D s_histo_total;
0077 static ATOOLS::Histogram_2D s_histo_t_dipole;
0078 static ATOOLS::Histogram_2D s_histo_t_jacobianM;
0079 static ATOOLS::Histogram_2D s_histo_t_jacobianL;
0080 static ATOOLS::Histogram_2D s_histo_t_higher;
0081 static ATOOLS::Histogram_2D s_histo_t_yfs;
0082 static ATOOLS::Histogram_2D s_histo_t_total;
0083 #endif
0084 };
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143 }
0144 #endif