File indexing completed on 2024-11-16 09:02:04
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef INCLUDE_EICSMEAR_ERHIC_EVENTDIS_H_
0011 #define INCLUDE_EICSMEAR_ERHIC_EVENTDIS_H_
0012
0013 #include <cmath> // For pow
0014
0015 #include <Rtypes.h> // For ClassDef
0016
0017 #include "eicsmear/erhic/VirtualEvent.h"
0018
0019 namespace erhic {
0020
0021 struct DisKinematics;
0022 class VirtualParticle;
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 class EventDis : public VirtualEvent {
0038 public:
0039
0040
0041
0042 virtual ~EventDis();
0043
0044
0045
0046
0047 EventDis();
0048
0049
0050
0051
0052 EventDis(const EventDis&);
0053
0054
0055
0056
0057 EventDis& operator=(const EventDis&);
0058
0059
0060
0061
0062
0063 virtual Double_t GetX() const;
0064
0065
0066
0067
0068
0069
0070 virtual Double_t GetQ2() const;
0071
0072
0073
0074
0075
0076 virtual Double_t GetY() const;
0077
0078
0079
0080
0081 virtual Double_t GetYPlus() const;
0082
0083
0084
0085
0086
0087 virtual Double_t GetW2() const;
0088
0089
0090
0091
0092
0093 virtual Double_t GetNu() const;
0094
0095
0096
0097 virtual double GetXDoubleAngle() const;
0098
0099
0100
0101
0102 virtual double GetQ2DoubleAngle() const;
0103
0104
0105
0106
0107 virtual double GetYDoubleAngle() const;
0108
0109
0110
0111
0112 virtual double GetW2DoubleAngle() const;
0113
0114
0115
0116
0117 virtual double GetXJacquetBlondel() const;
0118
0119
0120
0121 virtual double GetQ2JacquetBlondel() const;
0122
0123
0124
0125
0126 virtual double GetYJacquetBlondel() const;
0127
0128
0129
0130
0131 virtual double GetW2JacquetBlondel() const;
0132
0133
0134
0135
0136 virtual void SetLeptonKinematics(const DisKinematics&);
0137
0138
0139
0140
0141 virtual void SetJacquetBlondelKinematics(const DisKinematics&);
0142
0143
0144
0145
0146 virtual void SetDoubleAngleKinematics(const DisKinematics&);
0147
0148
0149
0150
0151
0152
0153 virtual const VirtualParticle* BeamLepton() const = 0;
0154
0155
0156
0157
0158
0159
0160 virtual const VirtualParticle* BeamHadron() const = 0;
0161
0162
0163
0164
0165
0166
0167 virtual const VirtualParticle* ExchangeBoson() const = 0;
0168
0169
0170
0171
0172
0173
0174 virtual const VirtualParticle* ScatteredLepton() const = 0;
0175
0176
0177
0178
0179
0180 virtual void CopyKinematics(const EventDis&);
0181 Double32_t x;
0182 Double32_t QSquared;
0183 Double32_t y;
0184 Double32_t WSquared;
0185 Double32_t nu;
0186 Double32_t yJB;
0187 Double32_t QSquaredJB;
0188 Double32_t xJB;
0189 Double32_t WSquaredJB;
0190 Double32_t yDA;
0191 Double32_t QSquaredDA;
0192 Double32_t xDA;
0193 Double32_t WSquaredDA;
0194
0195 ClassDef(erhic::EventDis, 1)
0196 };
0197
0198 inline Double_t EventDis::GetX() const {
0199 return x;
0200 }
0201
0202 inline Double_t EventDis::GetNu() const {
0203 return nu;
0204 }
0205
0206 inline Double_t EventDis::GetQ2() const {
0207 return QSquared;
0208 }
0209
0210 inline Double_t EventDis::GetW2() const {
0211 return WSquared;
0212 }
0213
0214 inline Double_t EventDis::GetY() const {
0215 return y;
0216 }
0217
0218 inline Double_t EventDis::GetYPlus() const {
0219 return pow(GetY(), 2.) / (1. + pow(1. - GetY(), 2.));
0220 }
0221
0222 inline double EventDis::GetXDoubleAngle() const {
0223 return xDA;
0224 }
0225
0226 inline double EventDis::GetQ2DoubleAngle() const {
0227 return QSquaredDA;
0228 }
0229
0230 inline double EventDis::GetYDoubleAngle() const {
0231 return yDA;
0232 }
0233
0234 inline double EventDis::GetW2DoubleAngle() const {
0235 return WSquaredDA;
0236 }
0237
0238 inline double EventDis::GetXJacquetBlondel() const {
0239 return xJB;
0240 }
0241
0242 inline double EventDis::GetQ2JacquetBlondel() const {
0243 return QSquaredJB;
0244 }
0245
0246 inline double EventDis::GetYJacquetBlondel() const {
0247 return yJB;
0248 }
0249
0250 inline double EventDis::GetW2JacquetBlondel() const {
0251 return WSquaredJB;
0252 }
0253
0254 }
0255
0256 #endif