File indexing completed on 2025-04-19 09:10:03
0001 #include "EXTAMP/CS_Dipole.H"
0002
0003 namespace EXTAMP {
0004
0005
0006
0007
0008
0009
0010
0011 struct FF_Dipole_Kinematics : public Dipole_Kinematics {
0012 ATOOLS::Vec4D m_pi;
0013 ATOOLS::Vec4D m_pj;
0014 ATOOLS::Vec4D m_pk;
0015 ATOOLS::Vec4D m_pij_tilde;
0016 ATOOLS::Vec4D m_pk_tilde;
0017 double m_zi;
0018 double m_zj;
0019 double m_y;
0020
0021 double Alpha() const { return m_y; }
0022
0023 double ShowerX() const { return m_zi; }
0024 double ShowerY() const { return m_y ; }
0025 double ShowerQ2() const { return (m_pi+m_pj+m_pk).Abs2(); }
0026 };
0027
0028
0029 class FF_Dipole : virtual public CS_Dipole {
0030
0031 public:
0032
0033 FF_Dipole(const Dipole_Info& di) : CS_Dipole(di) {};
0034 virtual ~FF_Dipole() {};
0035
0036 void CalcKinematics(const ATOOLS::Vec4D_Vector& p);
0037 const ATOOLS::Vec4D_Vector& Momenta() const { return m_kin.m_born_mom; }
0038
0039 protected:
0040
0041 double CalcB() const;
0042 double CalcA() const;
0043 double CalcKinDependentPrefac() const;
0044 ATOOLS::Vec4D CalcPtilde() const;
0045
0046 const Dipole_Kinematics* const LastKinematics() const { return &m_kin; }
0047
0048
0049
0050
0051
0052
0053
0054 FF_Dipole_Kinematics m_kin;
0055
0056 };
0057
0058
0059
0060
0061
0062
0063
0064
0065 struct FI_Dipole_Kinematics : public Dipole_Kinematics {
0066 ATOOLS::Vec4D m_pi;
0067 ATOOLS::Vec4D m_pj;
0068 ATOOLS::Vec4D m_pa;
0069 ATOOLS::Vec4D m_pij_tilde;
0070 ATOOLS::Vec4D m_pa_tilde;
0071 double m_x;
0072 double m_zi;
0073 double m_zj;
0074
0075 double Alpha() const { return 1.-m_x; }
0076
0077 double ShowerX() const { return m_zi; }
0078 double ShowerY() const { return m_x ; }
0079 double ShowerQ2() const { return (m_pi+m_pj-m_pa).Abs2(); }
0080 };
0081
0082
0083 class FI_Dipole : virtual public CS_Dipole {
0084
0085 public:
0086
0087 FI_Dipole(const Dipole_Info& di) : CS_Dipole(di) {};
0088 virtual ~FI_Dipole() {};
0089
0090 void CalcKinematics(const ATOOLS::Vec4D_Vector& p);
0091 const ATOOLS::Vec4D_Vector& Momenta() const { return m_kin.m_born_mom; }
0092
0093 protected:
0094
0095 double CalcB() const;
0096 double CalcA() const;
0097 double CalcKinDependentPrefac() const;
0098 ATOOLS::Vec4D CalcPtilde() const;
0099
0100 const Dipole_Kinematics* const LastKinematics() const { return &m_kin; }
0101
0102 FI_Dipole_Kinematics m_kin;
0103
0104 };
0105
0106
0107
0108
0109
0110
0111
0112
0113 struct IF_Dipole_Kinematics : public Dipole_Kinematics {
0114 ATOOLS::Vec4D m_pa;
0115 ATOOLS::Vec4D m_pi;
0116 ATOOLS::Vec4D m_pk;
0117 ATOOLS::Vec4D m_pai_tilde;
0118 ATOOLS::Vec4D m_pk_tilde;
0119 double m_ui;
0120 double m_x;
0121
0122 double Alpha() const { return m_ui; }
0123
0124 double ShowerX() const { return m_x; }
0125 double ShowerY() const { return m_ui; }
0126 double ShowerQ2() const { return (-m_pa+m_pi+m_pk).Abs2(); }
0127 };
0128
0129
0130 class IF_Dipole : virtual public CS_Dipole {
0131
0132 public:
0133
0134 IF_Dipole(const Dipole_Info& di) : CS_Dipole(di) {};
0135 virtual ~IF_Dipole() {};
0136
0137 void CalcKinematics(const ATOOLS::Vec4D_Vector& p);
0138 const ATOOLS::Vec4D_Vector& Momenta() const { return m_kin.m_born_mom; }
0139
0140 protected:
0141
0142 double CalcB() const;
0143 double CalcA() const;
0144 double CalcKinDependentPrefac() const;
0145 ATOOLS::Vec4D CalcPtilde() const;
0146
0147 const Dipole_Kinematics* const LastKinematics() const { return &m_kin; }
0148
0149 IF_Dipole_Kinematics m_kin;
0150
0151 };
0152
0153
0154
0155
0156
0157
0158
0159
0160 struct II_Dipole_Kinematics : public Dipole_Kinematics {
0161 ATOOLS::Vec4D m_pa;
0162 ATOOLS::Vec4D m_pi;
0163 ATOOLS::Vec4D m_pb;
0164 ATOOLS::Vec4D m_pai_tilde;
0165 ATOOLS::Vec4D m_pb_tilde;
0166 double m_ui;
0167 double m_x;
0168 double m_v;
0169
0170 double Alpha() const { return m_v; }
0171
0172 double ShowerX() const { return m_x; }
0173 double ShowerY() const { return m_v; }
0174 double ShowerQ2() const { return (-m_pa+m_pi-m_pb).Abs2(); }
0175 };
0176
0177
0178 class II_Dipole : virtual public CS_Dipole {
0179
0180 public:
0181
0182 II_Dipole(const Dipole_Info& di) : CS_Dipole(di) {};
0183 virtual ~II_Dipole() {};
0184
0185 void CalcKinematics(const ATOOLS::Vec4D_Vector& p);
0186 const ATOOLS::Vec4D_Vector& Momenta() const { return m_kin.m_born_mom; }
0187
0188 protected:
0189
0190 double CalcB() const;
0191 double CalcA() const;
0192 double CalcKinDependentPrefac() const;
0193 ATOOLS::Vec4D CalcPtilde() const;
0194
0195 const Dipole_Kinematics* const LastKinematics() const { return &m_kin; }
0196
0197 II_Dipole_Kinematics m_kin;
0198
0199 };
0200
0201 }