GENIEGenerator
Loading...
Searching...
No Matches
RSHelicityAmplModelNCp.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::RSHelicityAmplModelNCp")
25{
26
27}
28//____________________________________________________________________________
30RSHelicityAmplModelI("genie::RSHelicityAmplModelNCp", 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 xr = 3*xi*fkr.R;
65 double xt = 2*xi*fkr.T;
66 double Tm2xiT = fkr.Tminus + xt;
67 double Tp2xiT = fkr.Tplus + xt;
68 double LRm3xiR = fkr.Lamda * (fkr.Rminus + xr);
69 double LRp3xiR = 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 = kSqrt3 * Tm2xiT + kSqrt2_3 * LRm3xiR;
74 fAmpl.fPlus1 = -1.*kSqrt3 * Tp2xiT - kSqrt2_3 * LRp3xiR;
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 xr = 3*xi*fkr.R;
84 double xt = 2*xi*fkr.T;
85 double Tm2xiT = fkr.Tminus + xt;
86 double Tp2xiT = fkr.Tplus + xt;
87 double LRm3xiR = fkr.Lamda * (fkr.Rminus + xr);
88 double LRp3xiR = fkr.Lamda * (fkr.Rplus + xr);
89 double a = kSqrt3 * (1-2*xi) * fkr.Lamda * fkr.S;
90 double b = (2./kSqrt3) * fkr.Lamda * fkr.C;
91
92 fAmpl.fMinus1 = kSqrt3_2 * Tm2xiT - k2_Sqrt3 * LRm3xiR;
93 fAmpl.fPlus1 = kSqrt3_2 * Tp2xiT - k2_Sqrt3 * LRp3xiR;
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 fAmpl.fMinus1 = k1_Sqrt24 * fkr.Lamda * fkr.Rminus;
103 fAmpl.fPlus1 = -k1_Sqrt24 * fkr.Lamda * fkr.Rplus;
104 fAmpl.fMinus3 = 0.;
105 fAmpl.fPlus3 = 0.;
106 fAmpl.f0Minus = -k1_Sqrt6 * (fkr.Lamda * fkr.C - 3*fkr.B);
107 fAmpl.f0Plus = fAmpl.f0Minus;
108 break;
109 }
110 case (kD13_1700) :
111 {
112 double LRm = fkr.Lamda * fkr.Rminus;
113 double LRp = fkr.Lamda * fkr.Rplus;
114
115 fAmpl.fMinus1 = k1_Sqrt120 * LRm;
116 fAmpl.fPlus1 = k1_Sqrt120 * LRp;
117 fAmpl.fMinus3 = k3_Sqrt40 * LRm;
118 fAmpl.fPlus3 = k3_Sqrt40 * LRp;
119 fAmpl.f0Minus = k1_Sqrt30 * fkr.Lamda * fkr.C;
120 fAmpl.f0Plus = -1.* fAmpl.f0Minus;
121 break;
122 }
123 case (kD15_1675) :
124 {
125 double LRm = fkr.Lamda * fkr.Rminus;
126 double LRp = fkr.Lamda * fkr.Rplus;
127
128 fAmpl.fMinus1 = -kSqrt3_40 * LRm;
129 fAmpl.fPlus1 = kSqrt3_40 * LRp;
130 fAmpl.fMinus3 = -kSqrt3_20 * LRm;
131 fAmpl.fPlus3 = kSqrt3_20 * LRp;
132 fAmpl.f0Minus = kSqrt3_10 * fkr.Lamda * fkr.C;
133 fAmpl.f0Plus = fAmpl.f0Minus;
134 break;
135 }
136 case (kS31_1620) :
137 {
138 double xt = 2*xi*fkr.T;
139 double xr = 2*xi*fkr.R;
140 double Tm2xiT = fkr.Tminus + xt;
141 double Tp2xiT = fkr.Tplus + xt;
142 double LRm2xiR = fkr.Lamda * (fkr.Rminus + xr);
143 double LRp2xiR = fkr.Lamda * (fkr.Rplus + xr);
144 double a = kSqrt3_2 * (1-2*xi) * fkr.Lamda * fkr.S;
145 double b = k1_Sqrt6 * (fkr.Lamda * fkr.C - 3*fkr.B);
146
147 fAmpl.fMinus1 = kSqrt3 * Tm2xiT - k1_Sqrt6 * LRm2xiR;
148 fAmpl.fPlus1 = -kSqrt3 * Tp2xiT + k1_Sqrt6 * LRp2xiR;
149 fAmpl.fMinus3 = 0.;
150 fAmpl.fPlus3 = 0.;
151 fAmpl.f0Minus = -a-b;
152 fAmpl.f0Plus = a-b;
153 break;
154 }
155 case (kD33_1700) :
156 {
157 double xt = 2*xi*fkr.T;
158 double xr = 2*xi*fkr.R;
159 double Tm2xiT = fkr.Tminus + xt;
160 double Tp2xiT = fkr.Tplus + xt;
161 double LRm2xiR = fkr.Lamda * (fkr.Rminus + xr);
162 double LRp2xiR = fkr.Lamda * (fkr.Rplus + xr);
163 double a = kSqrt3 * (1-2*xi) * fkr.Lamda * fkr.S;
164 double b = k1_Sqrt3 * fkr.Lamda * fkr.C;
165
166 fAmpl.fMinus1 = kSqrt3_2 * Tm2xiT + k1_Sqrt3 * LRm2xiR;
167 fAmpl.fPlus1 = kSqrt3_2 * Tp2xiT + k1_Sqrt3 * LRp2xiR;
168 fAmpl.fMinus3 = k3_Sqrt2 * Tm2xiT;
169 fAmpl.fPlus3 = k3_Sqrt2 * Tp2xiT;
170 fAmpl.f0Minus = -a-b;
171 fAmpl.f0Plus = -a+b;
172 break;
173 }
174 case (kP11_1440) :
175 {
176 double c = (5./12.)*kSqrt3;
177 double xr = (12./5.)*xi*fkr.R;
178 double L2 = TMath::Power(fkr.Lamda, 2);
179 double L2RmxiR = L2 * (fkr.Rminus + xr);
180 double L2RpxiR = L2 * (fkr.Rplus + xr);
181 double a = 0.25 * kSqrt3 * (1-4*xi) * L2 * fkr.S;
182 double b = c * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
183
184 fAmpl.fMinus1 = -c * L2RmxiR;
185 fAmpl.fPlus1 = -c * L2RpxiR;
186 fAmpl.fMinus3 = 0.;
187 fAmpl.fPlus3 = 0.;
188 fAmpl.f0Minus = -a+b;
189 fAmpl.f0Plus = -a-b;
190 break;
191 }
192 case (kP33_1600) :
193 {
194 double xr = 2*xi*fkr.R;
195 double L2 = TMath::Power(fkr.Lamda, 2);
196 double L2RmxiR = L2 * (fkr.Rminus + xr);
197 double L2RpxiR = L2 * (fkr.Rplus + xr);
198
199 fAmpl.fMinus1 = k1_Sqrt6 * L2RmxiR;
200 fAmpl.fPlus1 = -k1_Sqrt6 * L2RpxiR;
201 fAmpl.fMinus3 = k1_Sqrt2 * L2RmxiR;
202 fAmpl.fPlus3 = -k1_Sqrt2 * L2RpxiR;
203 fAmpl.f0Minus = -kSqrt2_3 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
204 fAmpl.f0Plus = fAmpl.f0Minus;
205 break;
206 }
207 case (kP13_1720) :
208 {
209 double xt = 4*xi*fkr.T;
210 double xr = (12./5.)*xi*fkr.R;
211 double L2 = TMath::Power(fkr.Lamda, 2);
212 double LTm4xiT = fkr.Lamda * (fkr.Tminus + xt);
213 double LTp4xiT = fkr.Lamda * (fkr.Tplus + xt);
214 double L2RmxiR = L2 * (fkr.Rminus + xr);
215 double L2RpxiR = L2 * (fkr.Rplus + xr);
216 double a = kSqrt3_20 * (1-4*xi) * L2 * fkr.S;
217 double b = kSqrt5_12 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
218
219 fAmpl.fMinus1 = -kSqrt27_40 * LTm4xiT - kSqrt5_12 * L2RmxiR;
220 fAmpl.fPlus1 = kSqrt27_40 * LTp4xiT + kSqrt5_12 * L2RpxiR;
221 fAmpl.fMinus3 = k3_Sqrt40 * LTm4xiT;
222 fAmpl.fPlus3 = -k3_Sqrt40 * LTp4xiT;
223 fAmpl.f0Minus = a-b;
224 fAmpl.f0Plus = -a-b;
225 break;
226 }
227 case (kF15_1680) :
228 {
229 double xt = 4. * xi *fkr.T;
230 double xr = (12./5.) * xi * fkr.R;
231 double L2 = TMath::Power(fkr.Lamda, 2);
232 double LTm4xiT = fkr.Lamda * (fkr.Tminus + xt);
233 double LTp4xiT = fkr.Lamda * (fkr.Tplus + xt);
234 double L2RmxiR = L2 * (fkr.Rminus + xr);
235 double L2RpxiR = L2 * (fkr.Rplus + xr);
236 double a = k3_Sqrt40 * (1-4*xi)* L2 * fkr.S;
237 double b = kSqrt5_8 * L2 * fkr.C;
238
239 fAmpl.fMinus1 = -k3_Sqrt20 * LTm4xiT + kSqrt5_8 * L2RmxiR;
240 fAmpl.fPlus1 = -k3_Sqrt20 * LTp4xiT + kSqrt5_8 * L2RpxiR;
241 fAmpl.fMinus3 = -kSqrt18_20 * LTm4xiT;
242 fAmpl.fPlus3 = -kSqrt18_20 * LTp4xiT;
243 fAmpl.f0Minus = a - b;
244 fAmpl.f0Plus = a + b;
245 break;
246 }
247 case (kP31_1910) :
248 {
249 double xr = 2*xi*fkr.R;
250 double L2 = TMath::Power(fkr.Lamda, 2);
251
252 fAmpl.fMinus1 = -k1_Sqrt15 * L2 * (fkr.Rminus + xr);
253 fAmpl.fPlus1 = -k1_Sqrt15 * L2 * (fkr.Rplus + xr);
254 fAmpl.fMinus3 = 0.;
255 fAmpl.fPlus3 = 0.;
256 fAmpl.f0Minus = -kSqrt4_15 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
257 fAmpl.f0Plus = -1.* fAmpl.f0Minus;
258 break;
259 }
260 case (kP33_1920) :
261 {
262 double xr = 2*xi*fkr.R;
263 double L2 = TMath::Power(fkr.Lamda, 2);
264 double L2Rm2xiR = L2 * (fkr.Rminus + xr);
265 double L2Rp2xiR = L2 * (fkr.Rplus + xr);
266
267 fAmpl.fMinus1 = k1_Sqrt15 * L2Rm2xiR;
268 fAmpl.fPlus1 = -k1_Sqrt15 * L2Rp2xiR;
269 fAmpl.fMinus3 = -k1_Sqrt5 * L2Rm2xiR;
270 fAmpl.fPlus3 = k1_Sqrt5 * L2Rp2xiR;
271 fAmpl.f0Minus = -(2./kSqrt15) * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
272 fAmpl.f0Plus = fAmpl.f0Minus;
273 break;
274 }
275 case (kF35_1905) :
276 {
277 double xr = 2*xi*fkr.R;
278 double L2 = TMath::Power(fkr.Lamda, 2);
279 double L2Rm2xiR = L2 * (fkr.Rminus + xr);
280 double L2Rp2xiR = L2 * (fkr.Rplus + xr);
281
282 fAmpl.fMinus1 = k1_Sqrt35 * L2Rm2xiR;
283 fAmpl.fPlus1 = k1_Sqrt35 * L2Rp2xiR;
284 fAmpl.fMinus3 = kSqrt18_35 * L2Rm2xiR;
285 fAmpl.fPlus3 = kSqrt18_35 * L2Rp2xiR;
286 fAmpl.f0Minus = k2_Sqrt35 * L2 * fkr.C;
287 fAmpl.f0Plus = -1. * fAmpl.f0Minus;
288 break;
289 }
290 case (kF37_1950) :
291 {
292 double xr = 2*xi*fkr.R;
293 double L2 = TMath::Power(fkr.Lamda, 2);
294 double L2Rm2xiR = L2 * (fkr.Rminus + xr);
295 double L2Rp2xiR = L2 * (fkr.Rplus + xr);
296
297 fAmpl.fMinus1 = -kSqrt6_35 * L2Rm2xiR;
298 fAmpl.fPlus1 = kSqrt6_35 * L2Rp2xiR;
299 fAmpl.fMinus3 = -kSqrt2_7 * L2Rm2xiR;
300 fAmpl.fPlus3 = kSqrt2_7 * L2Rp2xiR;
301 fAmpl.f0Minus = 2*kSqrt6_35 * L2 * fkr.C;
302 fAmpl.f0Plus = fAmpl.f0Minus;
303 break;
304 }
305 case (kP11_1710) :
306 {
307 double L2 = TMath::Power(fkr.Lamda, 2);
308 double Rm3xiR = fkr.Rminus + 3*xi*fkr.R;
309 double Rp3xiR = fkr.Rplus + 3*xi*fkr.R;
310 double a = kSqrt3_8 * (1-2*xi) * L2 * fkr.S;
311 double b = k1_Sqrt6 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
312
313 fAmpl.fMinus1 = k1_Sqrt6 * L2 * Rm3xiR;
314 fAmpl.fPlus1 = k1_Sqrt6 * L2 * Rp3xiR;
315 fAmpl.fMinus3 = 0.;
316 fAmpl.fPlus3 = 0.;
317 fAmpl.f0Minus = a-b;
318 fAmpl.f0Plus = a+b;
319 break;
320 }
321 case (kF17_1970) :
322 {
323 fAmpl.fMinus1 = 0.;
324 fAmpl.fPlus1 = 0.;
325 fAmpl.fMinus3 = 0.;
326 fAmpl.fPlus3 = 0.;
327 fAmpl.f0Minus = 0.;
328 fAmpl.f0Plus = 0.;
329 break;
330 }
331 default:
332 {
333 LOG("RSHAmpl", pWARN) << "*** UNRECOGNIZED RESONANCE!";
334 fAmpl.fMinus1 = 0.;
335 fAmpl.fPlus1 = 0.;
336 fAmpl.fMinus3 = 0.;
337 fAmpl.fPlus3 = 0.;
338 fAmpl.f0Minus = 0.;
339 fAmpl.f0Plus = 0.;
340 break;
341 }
342
343 }//switch
344
345 return fAmpl;
346}
347//____________________________________________________________________________
349{
350 Algorithm::Configure(config);
351 this->LoadConfig();
352}
353//____________________________________________________________________________
355{
356 Algorithm::Configure(config);
357 this->LoadConfig();
358}
359//____________________________________________________________________________
361{
362 double thw ;
363 GetParam( "WeinbergAngle", thw ) ;
364 fSin28w = TMath::Power( TMath::Sin(thw), 2 );
365}
366//____________________________________________________________________________
#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
void Configure(const Registry &config)
const RSHelicityAmpl & Compute(Resonance_t res, const FKR &fkr) const
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