GENIEGenerator
Loading...
Searching...
No Matches
RSHelicityAmplModelNCn.cxx
Go to the documentation of this file.
1//____________________________________________________________________________
2/*
3 Copyright (c) 2003-2025, The GENIE Collaboration
4 For the full text of the license visit http://copyright.genie-mc.org
5
6 Costas Andreopoulos <c.andreopoulos \at cern.ch>
7 University of Liverpool
8*/
9//____________________________________________________________________________
10
11#include <TMath.h>
12
18
19using namespace genie;
20using namespace genie::constants;
21
22//____________________________________________________________________________
24RSHelicityAmplModelI("genie::RSHelicityAmplModelNCn")
25{
26
27}
28//____________________________________________________________________________
30RSHelicityAmplModelI("genie::RSHelicityAmplModelNCn", config)
31{
32
33}
34//____________________________________________________________________________
39//____________________________________________________________________________
40const RSHelicityAmpl &
42 Resonance_t res, const FKR & fkr) const
43{
44 double xi = fSin28w;
45
46 switch(res) {
47
48 case (kP33_1232) :
49 {
50 double rx = 2 * xi * fkr.R;
51 double Rm2xiR = fkr.Rminus + rx;
52 double Rp2xiR = fkr.Rplus + rx;
53
54 fAmpl.fMinus1 = -kSqrt2 * Rm2xiR;
55 fAmpl.fPlus1 = kSqrt2 * Rp2xiR;
56 fAmpl.fMinus3 = -kSqrt6 * Rm2xiR;
57 fAmpl.fPlus3 = kSqrt6 * Rp2xiR;
58 fAmpl.f0Minus = 2*kSqrt2 * fkr.C;
59 fAmpl.f0Plus = fAmpl.f0Minus;
60 break;
61 }
62 case (kS11_1535) :
63 {
64 double xt = 2*xi*fkr.T;
65 double xr = xi*fkr.R;
66 double Tm2xiT = fkr.Tminus + xt;
67 double Tp2xiT = fkr.Tplus + xt;
68 double LRmxiR = fkr.Lamda * (fkr.Rminus + xr);
69 double LRpxiR = fkr.Lamda * (fkr.Rplus + xr);
70 double a = kSqrt3_2 * (1-2*xi) * fkr.Lamda * fkr.S;
71 double b = kSqrt2_3 * (fkr.Lamda * fkr.C - 3*fkr.B);
72
73 fAmpl.fMinus1 = -1*kSqrt3 * Tm2xiT - kSqrt2_3 * LRmxiR;
74 fAmpl.fPlus1 = kSqrt3 * Tp2xiT + kSqrt2_3 * LRpxiR;
75 fAmpl.fMinus3 = 0.;
76 fAmpl.fPlus3 = 0.;
77 fAmpl.f0Minus = a-b;
78 fAmpl.f0Plus = -a-b;
79 break;
80 }
81 case (kD13_1520) :
82 {
83 double xt = 2* xi * fkr.T;
84 double xr = xi * fkr.R;
85 double Tm2xiT = fkr.Tminus + xt;
86 double Tp2xiT = fkr.Tplus + xt;
87 double LRmxiR = fkr.Lamda * (fkr.Rminus + xr);
88 double LRpxiR = fkr.Lamda * (fkr.Rplus + xr);
89 double a = kSqrt3 * (1-2*xi) * fkr.Lamda * fkr.S;
90 double b = k2_Sqrt3 * fkr.Lamda * fkr.C;
91
92 fAmpl.fMinus1 = -kSqrt3_2 * Tm2xiT + k2_Sqrt3 * LRmxiR;
93 fAmpl.fPlus1 = -kSqrt3_2 * Tp2xiT + k2_Sqrt3 * LRpxiR;
94 fAmpl.fMinus3 = -k3_Sqrt2 * Tm2xiT;
95 fAmpl.fPlus3 = -k3_Sqrt2 * Tp2xiT;
96 fAmpl.f0Minus = a - b;
97 fAmpl.f0Plus = a + b;
98 break;
99 }
100 case (kS11_1650) :
101 {
102 double xr = 4* xi * fkr.R;
103 double LRm4xiR = fkr.Lamda * (fkr.Rminus + xr);
104 double LRp4xiR = fkr.Lamda * (fkr.Rplus + xr);
105
106 fAmpl.fMinus1 = -k1_Sqrt24 * LRm4xiR;
107 fAmpl.fPlus1 = k1_Sqrt24 * LRp4xiR;
108 fAmpl.fMinus3 = 0.;
109 fAmpl.fPlus3 = 0.;
110 fAmpl.f0Minus = k1_Sqrt6 * (fkr.Lamda * fkr.C - 3*fkr.B);
111 fAmpl.f0Plus = fAmpl.f0Minus;
112 break;
113 }
114 case (kD13_1700) :
115 {
116 double xr = 4* xi * fkr.R;
117 double LRm4xiR = fkr.Lamda * (fkr.Rminus + xr);
118 double LRp4xiR = fkr.Lamda * (fkr.Rplus + xr);
119
120 fAmpl.fMinus1 = -k1_Sqrt120 * LRm4xiR;
121 fAmpl.fPlus1 = -k1_Sqrt120 * LRp4xiR;
122 fAmpl.fMinus3 = -k3_Sqrt40 * LRm4xiR;
123 fAmpl.fPlus3 = -k3_Sqrt40 * LRp4xiR;
124 fAmpl.f0Minus = -k1_Sqrt30 * fkr.Lamda * fkr.C;
125 fAmpl.f0Plus = -1.* fAmpl.f0Minus;
126 break;
127 }
128 case (kD15_1675) :
129 {
130 double xr = 4* xi * fkr.R;
131 double LRm4xiR = fkr.Lamda * (fkr.Rminus + xr);
132 double LRp4xiR = fkr.Lamda * (fkr.Rplus + xr);
133
134 fAmpl.fMinus1 = kSqrt3_40 * LRm4xiR;
135 fAmpl.fPlus1 = -kSqrt3_40 * LRp4xiR;
136 fAmpl.fMinus3 = kSqrt3_20 * LRm4xiR;
137 fAmpl.fPlus3 = -kSqrt3_20 * LRp4xiR;
138 fAmpl.f0Minus = -kSqrt3_10 * (fkr.Lamda * fkr.C);
139 fAmpl.f0Plus = fAmpl.f0Minus;
140 break;
141 }
142 case (kS31_1620) :
143 {
144 double xt = 2*xi*fkr.T;
145 double xr = 2*xi*fkr.R;
146 double Tm2xiT = fkr.Tminus + xt;
147 double Tp2xiT = fkr.Tplus + xt;
148 double LRm2xiR = fkr.Lamda * (fkr.Rminus + xr);
149 double LRp2xiR = fkr.Lamda * (fkr.Rplus + xr);
150 double a = kSqrt3_2 * (1-2*xi) * fkr.Lamda * fkr.S;
151 double b = k1_Sqrt6 * (fkr.Lamda * fkr.C - 3*fkr.B);
152
153 fAmpl.fMinus1 = kSqrt3 * Tm2xiT - k1_Sqrt6 * LRm2xiR;
154 fAmpl.fPlus1 = -kSqrt3 * Tp2xiT + k1_Sqrt6 * LRp2xiR;
155 fAmpl.fMinus3 = 0.;
156 fAmpl.fPlus3 = 0.;
157 fAmpl.f0Minus = -a-b;
158 fAmpl.f0Plus = a-b;
159 break;
160 }
161 case (kD33_1700) :
162 {
163 double xt = 2*xi*fkr.T;
164 double xr = 2*xi*fkr.R;
165 double Tm2xiT = fkr.Tminus + xt;
166 double Tp2xiT = fkr.Tplus + xt;
167 double LRm2xiR = fkr.Lamda * (fkr.Rminus + xr);
168 double LRp2xiR = fkr.Lamda * (fkr.Rplus + xr);
169 double a = kSqrt3 * (1-2*xi) * fkr.Lamda * fkr.S;
170 double b = k1_Sqrt3 * fkr.Lamda * fkr.C;
171
172 fAmpl.fMinus1 = kSqrt3_2 * Tm2xiT + k1_Sqrt3 * LRm2xiR;
173 fAmpl.fPlus1 = kSqrt3_2 * Tp2xiT + k1_Sqrt3 * LRp2xiR;
174 fAmpl.fMinus3 = k3_Sqrt2 * Tm2xiT;
175 fAmpl.fPlus3 = k3_Sqrt2 * Tp2xiT;
176 fAmpl.f0Minus = -a-b;
177 fAmpl.f0Plus = -a+b;
178 break;
179 }
180 case (kP11_1440) :
181 {
182 double c = (5./12.)*kSqrt3;
183 double xr = (8./5.)* xi * fkr.R;
184 double L2 = TMath::Power(fkr.Lamda, 2);
185 double L2RmxiR = L2 * (fkr.Rminus + xr);
186 double L2RpxiR = L2 * (fkr.Rplus + xr);
187 double a = 0.25*kSqrt3 * L2 * fkr.S;
188 double b = c * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
189
190 fAmpl.fMinus1 = c * L2RmxiR;
191 fAmpl.fPlus1 = c * L2RpxiR;
192 fAmpl.fMinus3 = 0.;
193 fAmpl.fPlus3 = 0.;
194 fAmpl.f0Minus = a - b;
195 fAmpl.f0Plus = a + b;
196 break;
197 }
198 case (kP33_1600) :
199 {
200 double xr = 2*xi*fkr.R;
201 double L2 = TMath::Power(fkr.Lamda, 2);
202 double L2RmxiR = L2 * (fkr.Rminus + xr);
203 double L2RpxiR = L2 * (fkr.Rplus + xr);
204
205 fAmpl.fMinus1 = k1_Sqrt6 * L2RmxiR;
206 fAmpl.fPlus1 = -k1_Sqrt6 * L2RpxiR;
207 fAmpl.fMinus3 = k1_Sqrt2 * L2RmxiR;
208 fAmpl.fPlus3 = -k1_Sqrt2 * L2RpxiR;
209 fAmpl.f0Minus = -kSqrt2_3 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
210 fAmpl.f0Plus = fAmpl.f0Minus;
211 break;
212 }
213 case (kP13_1720) :
214 {
215 double L2 = TMath::Power(fkr.Lamda, 2);
216 double xr = (8./5.)*xi*fkr.R;
217 double LTm = fkr.Lamda * fkr.Tminus;
218 double LTp = fkr.Lamda * fkr.Tplus;
219 double L2RmxiR = L2 * (fkr.Rminus + xr);
220 double L2RpxiR = L2 * (fkr.Rplus + xr);
221 double a = kSqrt3_20 * L2 * fkr.S;
222 double b = kSqrt5_12 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
223
224 fAmpl.fMinus1 = kSqrt27_40 * LTm + kSqrt5_12 * L2RmxiR;
225 fAmpl.fPlus1 = -kSqrt27_40 * LTp - kSqrt5_12 * L2RpxiR;
226 fAmpl.fMinus3 = -kSqrt9_40 * LTm;
227 fAmpl.fPlus3 = kSqrt9_40 * LTp;
228 fAmpl.f0Minus = -a+b;
229 fAmpl.f0Plus = a+b;
230 break;
231 }
232 case (kF15_1680) :
233 {
234 double L2 = TMath::Power(fkr.Lamda, 2);
235 double xr = (8./5.)*xi*fkr.R;
236 double LTm = fkr.Lamda * fkr.Tminus;
237 double LTp = fkr.Lamda * fkr.Tplus;
238 double L2RmxiR = L2 * (fkr.Rminus + xr);
239 double L2RpxiR = L2 * (fkr.Rplus + xr);
240 double a = k3_Sqrt40 * L2 * fkr.S;
241 double b = kSqrt5_8 * L2 * fkr.C;
242
243 fAmpl.fMinus1 = k3_Sqrt20 * LTm - kSqrt5_8 * L2RmxiR;
244 fAmpl.fPlus1 = k3_Sqrt20 * LTp - kSqrt5_8 * L2RpxiR;
245 fAmpl.fMinus3 = kSqrt18_20 * LTm;
246 fAmpl.fPlus3 = kSqrt18_20 * LTp;
247 fAmpl.f0Minus = -a+b;
248 fAmpl.f0Plus = -a-b;
249 break;
250 }
251 case (kP31_1910) :
252 {
253 double xr = 2*xi*fkr.R;
254 double L2 = TMath::Power(fkr.Lamda, 2);
255
256 fAmpl.fMinus1 = -k1_Sqrt15 * L2 * (fkr.Rminus + xr);
257 fAmpl.fPlus1 = -k1_Sqrt15 * L2 * (fkr.Rplus + xr);
258 fAmpl.fMinus3 = 0.;
259 fAmpl.fPlus3 = 0.;
260 fAmpl.f0Minus = -kSqrt4_15 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
261 fAmpl.f0Plus = -1.* fAmpl.f0Minus;
262 break;
263 }
264 case (kP33_1920) :
265 {
266 double xr = 2*xi*fkr.R;
267 double L2 = TMath::Power(fkr.Lamda, 2);
268 double L2Rm2xiR = L2 * (fkr.Rminus + xr);
269 double L2Rp2xiR = L2 * (fkr.Rplus + xr);
270
271 fAmpl.fMinus1 = k1_Sqrt15 * L2Rm2xiR;
272 fAmpl.fPlus1 = -k1_Sqrt15 * L2Rp2xiR;
273 fAmpl.fMinus3 = -k1_Sqrt5 * L2Rm2xiR;
274 fAmpl.fPlus3 = k1_Sqrt5 * L2Rp2xiR;
275 fAmpl.f0Minus = -(2./kSqrt15) * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
276 fAmpl.f0Plus = fAmpl.f0Minus;
277 break;
278 }
279 case (kF35_1905) :
280 {
281 double xr = 2*xi*fkr.R;
282 double L2 = TMath::Power(fkr.Lamda, 2);
283 double L2Rm2xiR = L2 * (fkr.Rminus + xr);
284 double L2Rp2xiR = L2 * (fkr.Rplus + xr);
285
286 fAmpl.fMinus1 = k1_Sqrt35 * L2Rm2xiR;
287 fAmpl.fPlus1 = k1_Sqrt35 * L2Rp2xiR;
288 fAmpl.fMinus3 = kSqrt18_35 * L2Rm2xiR;
289 fAmpl.fPlus3 = kSqrt18_35 * L2Rp2xiR;
290 fAmpl.f0Minus = k2_Sqrt35 * L2 * fkr.C;
291 fAmpl.f0Plus = -1. * fAmpl.f0Minus;
292 break;
293 }
294 case (kF37_1950) :
295 {
296 double xr = 2*xi*fkr.R;
297 double L2 = TMath::Power(fkr.Lamda, 2);
298 double L2Rm2xiR = L2 * (fkr.Rminus + xr);
299 double L2Rp2xiR = L2 * (fkr.Rplus + xr);
300
301 fAmpl.fMinus1 = -kSqrt6_35 * L2Rm2xiR;
302 fAmpl.fPlus1 = kSqrt6_35 * L2Rp2xiR;
303 fAmpl.fMinus3 = -kSqrt2_7 * L2Rm2xiR;
304 fAmpl.fPlus3 = kSqrt2_7 * L2Rp2xiR;
305 fAmpl.f0Minus = 2*kSqrt6_35 * L2 * fkr.C;
306 fAmpl.f0Plus = fAmpl.f0Minus;
307 break;
308 }
309 case (kP11_1710) :
310 {
311 double L2 = TMath::Power(fkr.Lamda, 2);
312 double xr = xi*fkr.R;
313 double L2RmxiR = L2 * (fkr.Rminus + xr);
314 double L2RpxiR = L2 * (fkr.Rplus + xr);
315 double a = kSqrt3_8 * (1-2*xi) * L2 * fkr.S;
316 double b = k1_Sqrt6 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
317
318 fAmpl.fMinus1 = -k1_Sqrt6 * L2RmxiR;
319 fAmpl.fPlus1 = -k1_Sqrt6 * L2RpxiR;
320 fAmpl.fMinus3 = 0.;
321 fAmpl.fPlus3 = 0.;
322 fAmpl.f0Minus = -a+b;
323 fAmpl.f0Plus = -a-b;
324 break;
325 }
326 case (kF17_1970) :
327 {
328 fAmpl.fMinus1 = 0.;
329 fAmpl.fPlus1 = 0.;
330 fAmpl.fMinus3 = 0.;
331 fAmpl.fPlus3 = 0.;
332 fAmpl.f0Minus = 0.;
333 fAmpl.f0Plus = 0.;
334 break;
335 }
336 default:
337 {
338 LOG("RSHAmpl", pWARN) << "*** UNRECOGNIZED RESONANCE!";
339 fAmpl.fMinus1 = 0.;
340 fAmpl.fPlus1 = 0.;
341 fAmpl.fMinus3 = 0.;
342 fAmpl.fPlus3 = 0.;
343 fAmpl.f0Minus = 0.;
344 fAmpl.f0Plus = 0.;
345 break;
346 }
347
348 }//switch
349
350 return fAmpl;
351}
352//____________________________________________________________________________
354{
355 Algorithm::Configure(config);
356 this->LoadConfig();
357}
358//____________________________________________________________________________
360{
361 Algorithm::Configure(config);
362 this->LoadConfig();
363}
364//____________________________________________________________________________
366{
367 double thw ;
368 GetParam( "WeinbergAngle", thw ) ;
369 fSin28w = TMath::Power( TMath::Sin(thw), 2 );
370}
371//____________________________________________________________________________
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
#define pWARN
Definition Messenger.h:60
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
virtual void Configure(const Registry &config)
Definition Algorithm.cxx:62
Simple struct-like class holding the Feynmann-Kislinger-Ravndall (FKR) baryon excitation model parame...
Definition FKR.h:31
double C
Definition FKR.h:44
double T
Definition FKR.h:46
double Tplus
Definition FKR.h:47
double S
Definition FKR.h:40
double Tminus
Definition FKR.h:48
double Rminus
Definition FKR.h:50
double Rplus
Definition FKR.h:49
double R
Definition FKR.h:45
double Lamda
Definition FKR.h:37
double B
Definition FKR.h:43
const RSHelicityAmpl & Compute(Resonance_t res, const FKR &fkr) const
void Configure(const Registry &config)
A class holding the Rein-Sehgal's helicity amplitudes.
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
const double a
Basic constants.
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EResonance Resonance_t