31 using namespace genie;
32 using namespace genie::constants;
38 case kP33_1232 :
return "P33(1232)" ;
break;
39 case kS11_1535 :
return "S11(1535)" ;
break;
40 case kD13_1520 :
return "D13(1520)" ;
break;
41 case kS11_1650 :
return "S11(1650)" ;
break;
42 case kD13_1700 :
return "D13(1700)" ;
break;
43 case kD15_1675 :
return "D15(1675)" ;
break;
44 case kS31_1620 :
return "S31(1620)" ;
break;
45 case kD33_1700 :
return "D33(1700)" ;
break;
46 case kP11_1440 :
return "P11(1440)" ;
break;
47 case kP33_1600 :
return "P33(1600)" ;
break;
48 case kP13_1720 :
return "P13(1720)" ;
break;
49 case kF15_1680 :
return "F15(1680)" ;
break;
50 case kP31_1910 :
return "P31(1910)" ;
break;
51 case kP33_1920 :
return "P33(1920)" ;
break;
52 case kF35_1905 :
return "F35(1905)" ;
break;
53 case kF37_1950 :
return "F37(1950)" ;
break;
54 case kP11_1710 :
return "P11(1710)" ;
break;
55 case kF17_1970 :
return "F17(1970)" ;
break;
58 return "unknown resonance!";
63 if ( strcmp( res,
"P33(1232)" ) == 0 )
return kP33_1232;
64 else if( strcmp( res,
"S11(1535)" ) == 0 )
return kS11_1535;
65 else if( strcmp( res,
"D13(1520)" ) == 0 )
return kD13_1520;
66 else if( strcmp( res,
"S11(1650)" ) == 0 )
return kS11_1650;
67 else if( strcmp( res,
"D13(1700)" ) == 0 )
return kD13_1700;
68 else if( strcmp( res,
"D15(1675)" ) == 0 )
return kD15_1675;
69 else if( strcmp( res,
"S31(1620)" ) == 0 )
return kS31_1620;
70 else if( strcmp( res,
"D33(1700)" ) == 0 )
return kD33_1700;
71 else if( strcmp( res,
"P11(1440)" ) == 0 )
return kP11_1440;
72 else if( strcmp( res,
"P33(1600)" ) == 0 )
return kP33_1600;
73 else if( strcmp( res,
"P13(1720)" ) == 0 )
return kP13_1720;
74 else if( strcmp( res,
"F15(1680)" ) == 0 )
return kF15_1680;
75 else if( strcmp( res,
"P31(1910)" ) == 0 )
return kP31_1910;
76 else if( strcmp( res,
"P33(1920)" ) == 0 )
return kP33_1920;
77 else if( strcmp( res,
"F35(1905)" ) == 0 )
return kF35_1905;
78 else if( strcmp( res,
"F37(1950)" ) == 0 )
return kF37_1950;
79 else if( strcmp( res,
"P11(1710)" ) == 0 )
return kP11_1710;
80 else if( strcmp( res,
"F17(1970)" ) == 0 )
return kF17_1970;
423 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
442 static std::map<Resonance_t, double> cache ;
444 auto it = cache.find( res ) ;
445 if ( it != cache.end() )
450 TParticlePDG * res_pdg = pdglib->
Find( pdg );
454 return cache[res] = mass;
459 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
469 static std::map<Resonance_t, double> cache ;
471 auto it = cache.find( res ) ;
472 if ( it != cache.end() )
477 TParticlePDG * res_pdg = pdglib->
Find( pdg );
480 return cache[res] = width;
485 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
491 double N0ResMaxNWidths,
double N2ResMaxNWidths,
double GnResMaxNWidths) {
496 static std::map<Resonance_t, double> cache ;
498 auto it = cache.find( res ) ;
499 if ( it != cache.end() )
510 double NW = GnResMaxNWidths;
511 if(IR==2) NW = N2ResMaxNWidths;
512 if(IR==0) NW = N0ResMaxNWidths;
515 double Wmax = MR + NW*WR;
516 int N = 1000* TMath::Nint( (Wmax-Wmin)/WR );
519 double dW = (Wmax-Wmin)/(N-1);
523 for(
int i=1; i<N-1; i++) {
524 double W = Wmin + i*dW;
528 return cache[res] = norm;
555 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
585 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
615 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
646 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
678 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
710 LOG(
"BaryonResUtils",
pFATAL) <<
"Unknown resonance " << res;
bool IsDelta(Resonance_t res)
is it a Delta resonance?
const int kPdgP31m1910_DeltaP
const int kPdgS31m1620_DeltaM
const int kPdgP33m1232_DeltaPP
Resonance_t FromString(const char *res)
string -> resonance id
const int kPdgF35m1905_DeltaM
const int kPdgD15m1675_N0
const int kPdgF35m1905_Delta0
const int kPdgF15m1680_NP
const int kPdgD33m1700_Delta0
const int kPdgD13m1700_NP
const int kPdgP33m1600_DeltaP
double Mass(Resonance_t res)
resonance mass (GeV)
const int kPdgS11m1650_N0
double Width(Resonance_t res)
resonance width (GeV)
const int kPdgF37m1950_DeltaM
const int kPdgF37m1950_DeltaP
int AngularMom(Resonance_t res)
double BreitWignerL(double W, int L, double mass, double width0, double norm)
const int kPdgP33m1600_Delta0
const int kPdgS11m1535_N0
double BWNorm(Resonance_t res, double N0ResMaxNWidths=6, double N2ResMaxNWidths=2, double GnResMaxNWidths=4)
breit-wigner normalization factor
enum genie::EResonance Resonance_t
bool IsN(Resonance_t res)
is it an N resonance?
const int kPdgP33m1232_DeltaP
const int kPdgP33m1232_DeltaM
const int kPdgP31m1910_DeltaM
int Cjsgn_plus(Resonance_t res)
double W(const Interaction *const i)
const int kPdgP33m1600_DeltaPP
const int kPdgF37m1950_Delta0
const int kPdgD33m1700_DeltaPP
const int kPdgF35m1905_DeltaP
static constexpr double second
int PdgCode(Resonance_t res, int Q)
(resonance id, charge) -> PDG code
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
const int kPdgD15m1675_NP
static constexpr double GeV
const int kPdgF35m1905_DeltaPP
const int kPdgS31m1620_DeltaPP
const int kPdgP31m1910_DeltaPP
const int kPdgP33m1920_DeltaPP
const int kPdgP31m1910_Delta0
int OrbitalAngularMom(Resonance_t res)
orbital angular momentum
const int kPdgP33m1920_DeltaP
const int kPdgD33m1700_DeltaM
const int kPdgP33m1920_DeltaM
const int kPdgF37m1950_DeltaPP
const int kPdgD13m1520_NP
const int kPdgF15m1680_N0
const int kPdgP11m1710_N0
const int kPdgS11m1650_NP
Resonance_t FromPdgCode(int pdgc)
PDG code -> resonance id.
const int kPdgP33m1600_DeltaM
const int kPdgP33m1232_Delta0
const int kPdgP13m1720_N0
const int kPdgP11m1440_N0
int Dsgn(Resonance_t res)
const int kPdgP33m1920_Delta0
const int kPdgD13m1520_N0
const int kPdgP11m1440_NP
const int kPdgS31m1620_Delta0
static PDGLibrary * Instance(void)
Singleton class to load & serve a TDatabasePDG.
const char * AsString(Resonance_t res)
resonance id -> string
bool IsBaryonResonance(int pdgc)
is input a baryon resonance?
TParticlePDG * Find(int pdgc, bool must_exist=true)
const int kPdgP11m1710_NP
const int kPdgF17m1970_N0
const int kPdgF17m1970_NP
const int kPdgS11m1535_NP
const int kPdgS31m1620_DeltaP
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
const int kPdgP13m1720_NP
int Isospin(Resonance_t res)
int ResonanceIndex(Resonance_t res)
resonance idx, quark model / SU(6)
const int kPdgD13m1700_N0
const int kPdgD33m1700_DeltaP