File indexing completed on 2026-06-02 08:51:42
0001 #ifndef DVMP_CONVOL_COEFF_FUNCTION_KINEMATIC_H
0002 #define DVMP_CONVOL_COEFF_FUNCTION_KINEMATIC_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <ElementaryUtils/parameters/GenericType.h>
0012 #include <ElementaryUtils/parameters/Parameters.h>
0013 #include <string>
0014 #include <vector>
0015
0016 #include "../../../utils/type/PhysicalType.h"
0017 #include "../../../utils/type/PhysicalUnit.h"
0018 #include "../../MesonType.h"
0019 #include "../../PolarizationType.h"
0020 #include "../ConvolCoeffFunctionKinematic.h"
0021
0022 namespace PARTONS {
0023
0024
0025
0026
0027
0028
0029
0030
0031 class DVMPConvolCoeffFunctionKinematic: public ConvolCoeffFunctionKinematic {
0032
0033 public:
0034
0035 static const std::string DVMP_CONVOL_COEFF_FUNCTION_KNEMATIC_CLASS_NAME;
0036
0037
0038
0039
0040 static const std::string KINEMATIC_PARAMETER_NAME_MESON_POLARIZATION;
0041
0042
0043
0044
0045 static const std::string KINEMATIC_PARAMETER_NAME_MESON_POLARIZATION_UNIT;
0046
0047
0048
0049
0050 DVMPConvolCoeffFunctionKinematic();
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062 DVMPConvolCoeffFunctionKinematic(double xi, double t, double Q2,
0063 double MuF2, double MuR2, MesonType::Type mesonType,
0064 PolarizationType::Type mesonPolarization);
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076 DVMPConvolCoeffFunctionKinematic(const PhysicalType<double> &xi,
0077 const PhysicalType<double> &t, const PhysicalType<double> &Q2,
0078 const PhysicalType<double> &MuF2, const PhysicalType<double> &MuR2,
0079 MesonType::Type mesonType,
0080 PolarizationType::Type mesonPolarization);
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092 DVMPConvolCoeffFunctionKinematic(const ElemUtils::GenericType &xi,
0093 const ElemUtils::GenericType &t, const ElemUtils::GenericType &Q2,
0094 const ElemUtils::GenericType &MuF2,
0095 const ElemUtils::GenericType &MuR2, MesonType::Type mesonType,
0096 PolarizationType::Type mesonPolarization);
0097
0098
0099
0100
0101
0102 DVMPConvolCoeffFunctionKinematic(
0103 const DVMPConvolCoeffFunctionKinematic &other);
0104
0105
0106
0107
0108 virtual ~DVMPConvolCoeffFunctionKinematic();
0109
0110 virtual void configure(const ElemUtils::Parameters ¶meters);
0111 virtual std::string toString() const;
0112
0113
0114
0115
0116
0117 void serialize(ElemUtils::Packet &packet) const;
0118
0119
0120
0121
0122
0123 void unserialize(ElemUtils::Packet &packet);
0124
0125
0126
0127
0128 void serializeIntoStdVector(std::vector<double>& vec) const;
0129
0130
0131
0132
0133 void unserializeFromStdVector(std::vector<double>::const_iterator& it,
0134 const std::vector<double>::const_iterator& end);
0135
0136
0137
0138
0139 bool operator ==(const DVMPConvolCoeffFunctionKinematic& other) const;
0140
0141
0142
0143
0144 bool operator !=(const DVMPConvolCoeffFunctionKinematic& other) const;
0145
0146
0147
0148
0149
0150
0151
0152
0153 const PhysicalType<double>& getQ2() const;
0154
0155
0156
0157
0158 void setQ2(const PhysicalType<double>& Q2);
0159
0160
0161
0162
0163 void setQ2(double Q2, PhysicalUnit::Type unit = PhysicalUnit::GEV2);
0164
0165
0166
0167
0168 MesonType::Type getMesonType() const;
0169
0170
0171
0172
0173 void setMesonType(MesonType::Type mesonType);
0174
0175
0176
0177
0178 PolarizationType::Type getMesonPolarization() const;
0179
0180
0181
0182
0183 void setMesonPolarization(PolarizationType::Type mesonPolarization);
0184
0185 protected:
0186
0187 virtual void updateHashSum() const;
0188
0189 private:
0190
0191
0192
0193
0194 PhysicalType<double> m_Q2;
0195
0196
0197
0198
0199 MesonType::Type m_mesonType;
0200
0201
0202
0203
0204 PolarizationType::Type m_mesonPolarization;
0205 };
0206
0207
0208
0209
0210 ElemUtils::Packet& operator <<(ElemUtils::Packet& packet,
0211 DVMPConvolCoeffFunctionKinematic& kinematic);
0212
0213
0214
0215
0216 ElemUtils::Packet& operator >>(ElemUtils::Packet& packet,
0217 DVMPConvolCoeffFunctionKinematic& kinematic);
0218
0219 }
0220
0221 #endif