GENIEGenerator
Loading...
Searching...
No Matches
genie::SppChannel Class Reference

Enumeration of single pion production channels. More...

#include <SppChannel.h>

Static Public Member Functions

static string AsString (SppChannel_t channel)
static int InitStateNucleon (SppChannel_t channel)
static int FinStateNucleon (SppChannel_t channel)
static int FinStatePion (SppChannel_t channel)
static int ResonanceCharge (SppChannel_t channel)
static int FinStateIsospin (SppChannel_t channel)
static double IsospinWeight (SppChannel_t channel, Resonance_t res)
static double Isospin3Coefficients (SppChannel_t channel)
static double Isospin1Coefficients (SppChannel_t channel)
static double BranchingRatio (Resonance_t res)
static SppChannel_t FromInteraction (const Interaction *interaction)

Detailed Description

Enumeration of single pion production channels.

Authors
Costas Andreopoulos <c.andreopoulos \at cern.ch> University of Liverpool
Igor Kakorin kakor.nosp@m.in@j.nosp@m.inr.r.nosp@m.u Joint Institute for Nuclear Research
Created:\n December 16, 2004

\update November 12, 2019 Added extra functions for MK model.
Branching ratios are looked in particle database now.

License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org

Definition at line 71 of file SppChannel.h.

Member Function Documentation

◆ AsString()

string genie::SppChannel::AsString ( SppChannel_t channel)
inlinestatic

Definition at line 76 of file SppChannel.h.

77 {
78 switch (channel) {
79
80 case (kSpp_vp_cc_10100) : return "v p -> l- p pi+"; break;
81 case (kSpp_vn_cc_10010) : return "v n -> l- p pi0"; break;
82 case (kSpp_vn_cc_01100) : return "v n -> l- n pi+"; break;
83
84 case (kSpp_vp_nc_10010) : return "v p -> v p pi0"; break;
85 case (kSpp_vp_nc_01100) : return "v p -> v n pi+"; break;
86 case (kSpp_vn_nc_01010) : return "v n -> v n pi0"; break;
87 case (kSpp_vn_nc_10001) : return "v n -> v p pi-"; break;
88
89 case (kSpp_vbn_cc_01001): return "vb n -> l+ n pi-"; break;
90 case (kSpp_vbp_cc_01010): return "vb p -> l+ n pi0"; break;
91 case (kSpp_vbp_cc_10001): return "vb p -> l+ p pi-"; break;
92
93 case (kSpp_vbp_nc_10010): return "vb p -> vb p pi0"; break;
94 case (kSpp_vbp_nc_01100): return "vb p -> vb n pi+"; break;
95 case (kSpp_vbn_nc_01010): return "vb n -> vb n pi0"; break;
96 case (kSpp_vbn_nc_10001): return "vb n -> vb p pi-"; break;
97
98 default : return "Unknown"; break;
99 }
100 return "Unknown";
101 }
@ kSpp_vp_cc_10100
Definition SppChannel.h:50
@ kSpp_vbn_nc_10001
Definition SppChannel.h:66
@ kSpp_vbp_nc_10010
Definition SppChannel.h:63
@ kSpp_vp_nc_01100
Definition SppChannel.h:55
@ kSpp_vn_nc_01010
Definition SppChannel.h:56
@ kSpp_vbn_cc_01001
Definition SppChannel.h:59
@ kSpp_vn_cc_01100
Definition SppChannel.h:52
@ kSpp_vn_nc_10001
Definition SppChannel.h:57
@ kSpp_vbp_nc_01100
Definition SppChannel.h:64
@ kSpp_vn_cc_10010
Definition SppChannel.h:51
@ kSpp_vbp_cc_01010
Definition SppChannel.h:60
@ kSpp_vbp_cc_10001
Definition SppChannel.h:61
@ kSpp_vbn_nc_01010
Definition SppChannel.h:65
@ kSpp_vp_nc_10010
Definition SppChannel.h:54

References genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.

Referenced by genie::SPPXSecWithCache::CacheBranchName(), genie::SPPXSecWithCache::CacheResExcitationXSec(), genie::ReinSehgalSPPXSec::Integrate(), genie::SPPXSec::Integrate(), genie::ReinSehgalSPPPXSec::ValidProcess(), and genie::ReinSehgalSPPPXSec::XSecNRES().

◆ BranchingRatio()

double genie::SppChannel::BranchingRatio ( Resonance_t res)
inlinestatic

Definition at line 357 of file SppChannel.h.

358 {
359 // return the BR for the decay of the input resonance to the final state: nucleon + pion.
360 // get list of TDecayChannels, match one with the input channel and get
361 // the branching ratio.
362 static std::map<Resonance_t, double> cache ;
363
364 auto it = cache.find( res ) ;
365 if ( it != cache.end() ) {
366 return it -> second ;
367 }
368
369 double BR = 0. ;
370
371 PDGLibrary * pdglib = PDGLibrary::Instance();
372 // the charge of resonance does not matter
373 int pdg = genie::utils::res::PdgCode(res, 0);
374 TParticlePDG * res_pdg = pdglib->Find( pdg );
375 if (res_pdg != 0)
376 {
377 for (int nch = 0; nch < res_pdg->NDecayChannels(); nch++)
378 {
379 TDecayChannel * ch = res_pdg->DecayChannel(nch);
380 if (ch->NDaughters() == 2)
381 {
382 int first_daughter_pdg = ch->DaughterPdgCode (0);
383 int second_daughter_pdg = ch->DaughterPdgCode (1);
384 if ((genie::pdg::IsNucleon(first_daughter_pdg ) && genie::pdg::IsPion(second_daughter_pdg)) ||
385 (genie::pdg::IsNucleon(second_daughter_pdg) && genie::pdg::IsPion(first_daughter_pdg )))
386 {
387 BR += ch->BranchingRatio();
388 }
389 }
390 }
391 cache[res] = BR;
392 return BR;
393 }
394
395 // should not be here - meaningless to return anything
396 gAbortingInErr = true;
397 LOG("SppChannel", pFATAL) << "Unknown resonance " << res;
398 exit(1);
399
400 }
#define pFATAL
Definition Messenger.h:56
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
static PDGLibrary * Instance(void)
bool IsNucleon(int pdgc)
Definition PDGUtils.cxx:346
bool IsPion(int pdgc)
Definition PDGUtils.cxx:326
int PdgCode(Resonance_t res, int Q)
(resonance id, charge) -> PDG code
bool gAbortingInErr
Definition Messenger.cxx:34

References genie::PDGLibrary::Find(), genie::gAbortingInErr, genie::PDGLibrary::Instance(), genie::pdg::IsNucleon(), genie::pdg::IsPion(), LOG, genie::utils::res::PdgCode(), and pFATAL.

Referenced by genie::ReinSehgalSPPXSec::Integrate(), genie::MKSPPPXSec2020::XSec(), and genie::ReinSehgalSPPPXSec::XSecNRES().

◆ FinStateIsospin()

int genie::SppChannel::FinStateIsospin ( SppChannel_t channel)
inlinestatic

Definition at line 211 of file SppChannel.h.

212 {
213 switch (channel) {
214
215 case (kSpp_vp_cc_10100) : return 3; break;
216 case (kSpp_vn_cc_10010) : return 1; break;
217 case (kSpp_vn_cc_01100) : return 1; break;
218
219 case (kSpp_vp_nc_10010) : return 1; break;
220 case (kSpp_vp_nc_01100) : return 1; break;
221 case (kSpp_vn_nc_01010) : return 1; break;
222 case (kSpp_vn_nc_10001) : return 1; break;
223
224 case (kSpp_vbn_cc_01001): return 3; break;
225 case (kSpp_vbp_cc_01010): return 1; break;
226 case (kSpp_vbp_cc_10001): return 1; break;
227
228 case (kSpp_vbp_nc_10010): return 1; break;
229 case (kSpp_vbp_nc_01100): return 1; break;
230 case (kSpp_vbn_nc_01010): return 1; break;
231 case (kSpp_vbn_nc_10001): return 1; break;
232
233 default : return 0; break;
234 }
235 return 0;
236 }

References genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.

Referenced by genie::MKSPPPXSec2020::XSec().

◆ FinStateNucleon()

int genie::SppChannel::FinStateNucleon ( SppChannel_t channel)
inlinestatic

Definition at line 130 of file SppChannel.h.

131 {
132 switch (channel) {
133
134 case (kSpp_vp_cc_10100) : return kPdgProton; break;
135 case (kSpp_vn_cc_10010) : return kPdgProton; break;
136 case (kSpp_vn_cc_01100) : return kPdgNeutron; break;
137
138 case (kSpp_vp_nc_10010) : return kPdgProton; break;
139 case (kSpp_vp_nc_01100) : return kPdgNeutron; break;
140 case (kSpp_vn_nc_01010) : return kPdgNeutron; break;
141 case (kSpp_vn_nc_10001) : return kPdgProton; break;
142
143 case (kSpp_vbn_cc_01001): return kPdgNeutron; break;
144 case (kSpp_vbp_cc_01010): return kPdgNeutron; break;
145 case (kSpp_vbp_cc_10001): return kPdgProton; break;
146
147 case (kSpp_vbp_nc_10010): return kPdgProton; break;
148 case (kSpp_vbp_nc_01100): return kPdgNeutron; break;
149 case (kSpp_vbn_nc_01010): return kPdgNeutron; break;
150 case (kSpp_vbn_nc_10001): return kPdgProton; break;
151
152 default : return 0; break;
153 }
154 return 0;
155 }
const int kPdgProton
Definition PDGCodes.h:81
const int kPdgNeutron
Definition PDGCodes.h:83

References genie::kPdgNeutron, genie::kPdgProton, genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.

Referenced by genie::RSPPInteractionListGenerator::AddFinalStateInfo(), genie::RSPPHadronicSystemGenerator::AddResonanceDecayProducts(), and genie::KPhaseSpace::WLim_SPP().

◆ FinStatePion()

int genie::SppChannel::FinStatePion ( SppChannel_t channel)
inlinestatic

Definition at line 157 of file SppChannel.h.

158 {
159 switch (channel) {
160
161 case (kSpp_vp_cc_10100) : return kPdgPiP; break;
162 case (kSpp_vn_cc_10010) : return kPdgPi0; break;
163 case (kSpp_vn_cc_01100) : return kPdgPiP; break;
164
165 case (kSpp_vp_nc_10010) : return kPdgPi0; break;
166 case (kSpp_vp_nc_01100) : return kPdgPiP; break;
167 case (kSpp_vn_nc_01010) : return kPdgPi0; break;
168 case (kSpp_vn_nc_10001) : return kPdgPiM; break;
169
170 case (kSpp_vbn_cc_01001): return kPdgPiM; break;
171 case (kSpp_vbp_cc_01010): return kPdgPi0; break;
172 case (kSpp_vbp_cc_10001): return kPdgPiM; break;
173
174 case (kSpp_vbp_nc_10010): return kPdgPi0; break;
175 case (kSpp_vbp_nc_01100): return kPdgPiP; break;
176 case (kSpp_vbn_nc_01010): return kPdgPi0; break;
177 case (kSpp_vbn_nc_10001): return kPdgPiM; break;
178
179 default : return 0; break;
180 }
181 return 0;
182 }
const int kPdgPiM
Definition PDGCodes.h:159
const int kPdgPi0
Definition PDGCodes.h:160
const int kPdgPiP
Definition PDGCodes.h:158

References genie::kPdgPi0, genie::kPdgPiM, genie::kPdgPiP, genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.

Referenced by genie::RSPPInteractionListGenerator::AddFinalStateInfo(), genie::RSPPHadronicSystemGenerator::AddResonanceDecayProducts(), and genie::KPhaseSpace::WLim_SPP().

◆ FromInteraction()

SppChannel_t genie::SppChannel::FromInteraction ( const Interaction * interaction)
inlinestatic

Definition at line 402 of file SppChannel.h.

403 {
404 const InitialState & init_state = interaction->InitState();
405 const ProcessInfo & proc_info = interaction->ProcInfo();
406 if ( !proc_info.IsSinglePion() ) return kSppNull;
407
408 const XclsTag & xcls_tag = interaction->ExclTag();
409 if( xcls_tag.NPions() != 1 ) return kSppNull;
410 if( xcls_tag.NNucleons() != 1 ) return kSppNull;
411
412 // get struck nucleon
413 int hit_nucl_pdgc = init_state.Tgt().HitNucPdg();
414 if( ! pdg::IsNeutronOrProton(hit_nucl_pdgc) ) return kSppNull;
415 bool hit_p = pdg::IsProton(hit_nucl_pdgc);
416 bool hit_n = !hit_p;
417
418 // the final state hadronic sytem has 1 pi and 1 nucleon
419 bool fs_pi_plus = ( xcls_tag.NPiPlus() == 1 );
420 bool fs_pi_minus = ( xcls_tag.NPiMinus() == 1 );
421 bool fs_pi_0 = ( xcls_tag.NPi0() == 1 );
422 bool fs_p = ( xcls_tag.NProtons() == 1 );
423 bool fs_n = ( xcls_tag.NNeutrons() == 1 );
424
425 // get probe
426 int probe = init_state.ProbePdg();
427
428 // figure out spp channel
429 if( pdg::IsNeutrino(probe) ) {
430
431 if ( proc_info.IsWeakCC() ) {
432 if (hit_p && fs_p && fs_pi_plus ) return kSpp_vp_cc_10100;
433 else if (hit_n && fs_p && fs_pi_0 ) return kSpp_vn_cc_10010;
434 else if (hit_n && fs_n && fs_pi_plus ) return kSpp_vn_cc_01100;
435 else return kSppNull;
436 } else if ( proc_info.IsWeakNC() ) {
437 if (hit_p && fs_p && fs_pi_0 ) return kSpp_vp_nc_10010;
438 else if (hit_p && fs_n && fs_pi_plus ) return kSpp_vp_nc_01100;
439 else if (hit_n && fs_n && fs_pi_0 ) return kSpp_vn_nc_01010;
440 else if (hit_n && fs_p && fs_pi_minus) return kSpp_vn_nc_10001;
441 else return kSppNull;
442 } else return kSppNull;
443
444 } else if( pdg::IsAntiNeutrino(probe) ) {
445
446 if ( proc_info.IsWeakCC() ) {
447 if (hit_n && fs_n && fs_pi_minus) return kSpp_vbn_cc_01001;
448 else if (hit_p && fs_n && fs_pi_0 ) return kSpp_vbp_cc_01010;
449 else if (hit_p && fs_p && fs_pi_minus) return kSpp_vbp_cc_10001;
450 else return kSppNull;
451 } else if ( proc_info.IsWeakNC() ) {
452 if (hit_p && fs_p && fs_pi_0 ) return kSpp_vbp_nc_10010;
453 else if (hit_p && fs_n && fs_pi_plus ) return kSpp_vbp_nc_01100;
454 else if (hit_n && fs_n && fs_pi_0 ) return kSpp_vbn_nc_01010;
455 else if (hit_n && fs_p && fs_pi_minus) return kSpp_vbn_nc_10001;
456 else return kSppNull;
457 } else return kSppNull;
458 }
459
460 return kSppNull;
461 }
bool IsNeutrino(int pdgc)
Definition PDGUtils.cxx:110
bool IsProton(int pdgc)
Definition PDGUtils.cxx:336
bool IsNeutronOrProton(int pdgc)
Definition PDGUtils.cxx:351
bool IsAntiNeutrino(int pdgc)
Definition PDGUtils.cxx:118
@ kSppNull
Definition SppChannel.h:46

References genie::Interaction::ExclTag(), genie::Target::HitNucPdg(), genie::Interaction::InitState(), genie::pdg::IsAntiNeutrino(), genie::pdg::IsNeutrino(), genie::pdg::IsNeutronOrProton(), genie::pdg::IsProton(), genie::ProcessInfo::IsSinglePion(), genie::ProcessInfo::IsWeakCC(), genie::ProcessInfo::IsWeakNC(), genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, genie::kSpp_vp_nc_10010, genie::kSppNull, genie::XclsTag::NNeutrons(), genie::XclsTag::NNucleons(), genie::XclsTag::NPi0(), genie::XclsTag::NPiMinus(), genie::XclsTag::NPions(), genie::XclsTag::NPiPlus(), genie::XclsTag::NProtons(), genie::InitialState::ProbePdg(), genie::Interaction::ProcInfo(), and genie::InitialState::Tgt().

Referenced by genie::RSPPHadronicSystemGenerator::AddResonanceDecayProducts(), genie::SPPXSecWithCache::CacheResExcitationXSec(), genie::ReinSehgalSPPXSec::Integrate(), genie::SPPXSec::Integrate(), genie::KPhaseSpace::Q2Lim_W_SPP(), genie::MKSPPPXSec2020::ValidProcess(), genie::ReinSehgalSPPPXSec::ValidProcess(), genie::KPhaseSpace::WLim_SPP(), genie::MKSPPPXSec2020::XSec(), and genie::ReinSehgalSPPPXSec::XSecNRES().

◆ InitStateNucleon()

int genie::SppChannel::InitStateNucleon ( SppChannel_t channel)
inlinestatic

Definition at line 103 of file SppChannel.h.

104 {
105 switch (channel) {
106
107 case (kSpp_vp_cc_10100) : return kPdgProton; break;
108 case (kSpp_vn_cc_10010) : return kPdgNeutron; break;
109 case (kSpp_vn_cc_01100) : return kPdgNeutron; break;
110
111 case (kSpp_vp_nc_10010) : return kPdgProton; break;
112 case (kSpp_vp_nc_01100) : return kPdgProton; break;
113 case (kSpp_vn_nc_01010) : return kPdgNeutron; break;
114 case (kSpp_vn_nc_10001) : return kPdgNeutron; break;
115
116 case (kSpp_vbn_cc_01001): return kPdgNeutron; break;
117 case (kSpp_vbp_cc_01010): return kPdgProton; break;
118 case (kSpp_vbp_cc_10001): return kPdgProton; break;
119
120 case (kSpp_vbp_nc_10010): return kPdgProton; break;
121 case (kSpp_vbp_nc_01100): return kPdgProton; break;
122 case (kSpp_vbn_nc_01010): return kPdgNeutron; break;
123 case (kSpp_vbn_nc_10001): return kPdgNeutron; break;
124
125 default : return 0; break;
126 }
127 return 0;
128 }

References genie::kPdgNeutron, genie::kPdgProton, genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.

Referenced by genie::RSPPInteractionListGenerator::CreateInteractionList(), genie::SPPXSec::Integrate(), genie::KPhaseSpace::Q2Lim_W_SPP(), and genie::MKSPPPXSec2020::XSec().

◆ Isospin1Coefficients()

double genie::SppChannel::Isospin1Coefficients ( SppChannel_t channel)
inlinestatic

Definition at line 317 of file SppChannel.h.

318 {
319 // return the isospin coefficients for the channel
320 // with final state isospin = 1/2
321
322 // [p,n,pi+,pi0,pi-]
323 switch (channel) {
324
325 //-- v CC
326 case (kSpp_vp_cc_10100) : return 0.;
327 case (kSpp_vn_cc_10010) : return k1_Sqrt3;
328 case (kSpp_vn_cc_01100) : return kSqrt2_3;
329
330 //-- v NC
331 case (kSpp_vp_nc_10010) : return -k1_Sqrt3;
332 case (kSpp_vp_nc_01100) : return -kSqrt2_3;
333 case (kSpp_vn_nc_01010) : return k1_Sqrt3;
334 case (kSpp_vn_nc_10001) : return -kSqrt2_3;
335
336
337
338 //-- vbar CC
339 case (kSpp_vbn_cc_01001): return 0.;
340 case (kSpp_vbp_cc_01010): return k1_Sqrt3;
341 case (kSpp_vbp_cc_10001): return kSqrt2_3;
342
343 //-- vbar NC
344 case (kSpp_vbp_nc_10010): return -k1_Sqrt3;
345 case (kSpp_vbp_nc_01100): return -kSqrt2_3;
346 case (kSpp_vbn_nc_01010): return k1_Sqrt3;
347 case (kSpp_vbn_nc_10001): return -kSqrt2_3;
348
349 default : return 0;
350 }
351
352 }

References genie::constants::k1_Sqrt3, genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, genie::kSpp_vp_nc_10010, and genie::constants::kSqrt2_3.

Referenced by genie::MKSPPPXSec2020::XSec().

◆ Isospin3Coefficients()

double genie::SppChannel::Isospin3Coefficients ( SppChannel_t channel)
inlinestatic

Definition at line 280 of file SppChannel.h.

281 {
282 // return the isospin coefficients for the channel
283 // with final state isospin = 3/2
284
285 // [p,n,pi+,pi0,pi-]
286 switch (channel) {
287
288 //-- v CC
289 case (kSpp_vp_cc_10100) : return kSqrt3;
290 case (kSpp_vn_cc_10010) : return -kSqrt2_3;
291 case (kSpp_vn_cc_01100) : return k1_Sqrt3;
292
293 //-- v NC
294 case (kSpp_vp_nc_10010) : return kSqrt2_3;
295 case (kSpp_vp_nc_01100) : return -k1_Sqrt3;
296 case (kSpp_vn_nc_01010) : return kSqrt2_3;
297 case (kSpp_vn_nc_10001) : return k1_Sqrt3;
298
299
300
301 //-- vbar CC
302 case (kSpp_vbn_cc_01001): return kSqrt3;
303 case (kSpp_vbp_cc_01010): return -kSqrt2_3;
304 case (kSpp_vbp_cc_10001): return k1_Sqrt3;
305
306 //-- vbar NC
307 case (kSpp_vbp_nc_10010): return kSqrt2_3;
308 case (kSpp_vbp_nc_01100): return -k1_Sqrt3;
309 case (kSpp_vbn_nc_01010): return kSqrt2_3;
310 case (kSpp_vbn_nc_10001): return k1_Sqrt3;
311
312 default : return 0;
313 }
314
315 }

References genie::constants::k1_Sqrt3, genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, genie::kSpp_vp_nc_10010, genie::constants::kSqrt2_3, and genie::constants::kSqrt3.

Referenced by genie::MKSPPPXSec2020::XSec().

◆ IsospinWeight()

double genie::SppChannel::IsospinWeight ( SppChannel_t channel,
Resonance_t res )
inlinestatic

Definition at line 238 of file SppChannel.h.

239 {
240 // return the square of isospin Glebsch Gordon coefficient for the input resonance
241 // contribution to the input exclusive channel
242
243 bool is_delta = utils::res::IsDelta(res);
244
245 double iw_1_3 = 1./3;
246 double iw_2_3 = 2./3;
247
248 switch (channel) {
249
250 //-- v CC
251 case (kSpp_vp_cc_10100) : return (is_delta) ? (1.0) : (0.0); break;
252 case (kSpp_vn_cc_10010) : return (is_delta) ? (iw_2_3) : (iw_1_3); break;
253 case (kSpp_vn_cc_01100) : return (is_delta) ? (iw_1_3) : (iw_2_3); break;
254
255 //-- v NC
256 case (kSpp_vp_nc_10010) : return (is_delta) ? (iw_2_3) : (iw_1_3); break;
257 case (kSpp_vp_nc_01100) : return (is_delta) ? (iw_1_3) : (iw_2_3); break;
258 case (kSpp_vn_nc_01010) : return (is_delta) ? (iw_2_3) : (iw_1_3); break;
259 case (kSpp_vn_nc_10001) : return (is_delta) ? (iw_1_3) : (iw_2_3); break;
260
261 //-- same as for neutrinos (? - check)
262
263 //-- vbar CC
264 case (kSpp_vbn_cc_01001): return (is_delta) ? (1.0) : (0.0); break;
265 case (kSpp_vbp_cc_01010): return (is_delta) ? (iw_2_3) : (iw_1_3); break;
266 case (kSpp_vbp_cc_10001): return (is_delta) ? (iw_1_3) : (iw_2_3); break;
267
268 //-- vbar NC
269 case (kSpp_vbp_nc_10010): return (is_delta) ? (iw_2_3) : (iw_1_3); break;
270 case (kSpp_vbp_nc_01100): return (is_delta) ? (iw_1_3) : (iw_2_3); break;
271 case (kSpp_vbn_nc_01010): return (is_delta) ? (iw_2_3) : (iw_1_3); break;
272 case (kSpp_vbn_nc_10001): return (is_delta) ? (iw_1_3) : (iw_2_3); break;
273
274 default : return 0; break;
275 }
276
277 return 0;
278 }
bool IsDelta(Resonance_t res)
is it a Delta resonance?

References genie::utils::res::IsDelta(), genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.

Referenced by genie::ReinSehgalSPPXSec::Integrate(), and genie::ReinSehgalSPPPXSec::XSecNRES().

◆ ResonanceCharge()

int genie::SppChannel::ResonanceCharge ( SppChannel_t channel)
inlinestatic

Definition at line 184 of file SppChannel.h.

185 {
186 switch (channel) {
187
188 case (kSpp_vp_cc_10100) : return 2; break;
189 case (kSpp_vn_cc_10010) : return 1; break;
190 case (kSpp_vn_cc_01100) : return 1; break;
191
192 case (kSpp_vp_nc_10010) : return 1; break;
193 case (kSpp_vp_nc_01100) : return 1; break;
194 case (kSpp_vn_nc_01010) : return 0; break;
195 case (kSpp_vn_nc_10001) : return 0; break;
196
197 case (kSpp_vbn_cc_01001): return -1; break;
198 case (kSpp_vbp_cc_01010): return 0; break;
199 case (kSpp_vbp_cc_10001): return 0; break;
200
201 case (kSpp_vbp_nc_10010): return 1; break;
202 case (kSpp_vbp_nc_01100): return 1; break;
203 case (kSpp_vbn_nc_01010): return 0; break;
204 case (kSpp_vbn_nc_10001): return 0; break;
205
206 default : return 0; break;
207 }
208 return 0;
209 }

References genie::kSpp_vbn_cc_01001, genie::kSpp_vbn_nc_01010, genie::kSpp_vbn_nc_10001, genie::kSpp_vbp_cc_01010, genie::kSpp_vbp_cc_10001, genie::kSpp_vbp_nc_01100, genie::kSpp_vbp_nc_10010, genie::kSpp_vn_cc_01100, genie::kSpp_vn_cc_10010, genie::kSpp_vn_nc_01010, genie::kSpp_vn_nc_10001, genie::kSpp_vp_cc_10100, genie::kSpp_vp_nc_01100, and genie::kSpp_vp_nc_10010.


The documentation for this class was generated from the following file: