Warning, file /include/Geant4/G4ExcitedDeltaConstructor.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #ifndef G4ExcitedDeltaConstructor_h
0033 #define G4ExcitedDeltaConstructor_h 1
0034
0035 #include "G4ExcitedBaryonConstructor.hh"
0036 #include "globals.hh"
0037
0038 class G4ExcitedDeltaConstructor : public G4ExcitedBaryonConstructor
0039 {
0040
0041
0042 public:
0043 enum
0044 {
0045 NStates = 9
0046 };
0047
0048 enum
0049 {
0050 NumberOfDecayModes = 5
0051 };
0052
0053 public:
0054 G4ExcitedDeltaConstructor();
0055 ~G4ExcitedDeltaConstructor() override = default;
0056
0057 protected:
0058 G4int GetEncoding(G4int iIsoSpin3, G4int idxState) override;
0059
0060 G4bool Exist(G4int) override { return true; }
0061
0062 G4int GetQuarkContents(G4int, G4int) override;
0063 G4String GetName(G4int iIso3, G4int iState) override;
0064 G4String GetMultipletName(G4int iState) override;
0065
0066 G4double GetMass(G4int state, G4int iso) override;
0067 G4double GetWidth(G4int state, G4int iso) override;
0068 G4int GetiSpin(G4int iState) override;
0069 G4int GetiParity(G4int iState) override;
0070 G4int GetEncodingOffset(G4int iState) override;
0071
0072 G4DecayTable* CreateDecayTable(const G4String& name, G4int iIso3, G4int iState,
0073 G4bool fAnti = false) override;
0074
0075 private:
0076 G4DecayTable* AddNGammaMode(G4DecayTable* table, const G4String& name, G4double br, G4int iIso3,
0077 G4bool fAnti);
0078 G4DecayTable* AddNPiMode(G4DecayTable* table, const G4String& name, G4double br, G4int iIso3,
0079 G4bool fAnti);
0080 G4DecayTable* AddNRhoMode(G4DecayTable* table, const G4String& name, G4double br, G4int iIso3,
0081 G4bool fAnti);
0082 G4DecayTable* AddDeltaPiMode(G4DecayTable* table, const G4String& name, G4double br,
0083 G4int iIso3, G4bool fAnti);
0084 G4DecayTable* AddNStarPiMode(G4DecayTable* table, const G4String& name, G4double br,
0085 G4int iIso3, G4bool fAnti);
0086
0087 private:
0088 enum
0089 {
0090 DeltaIsoSpin = 3
0091 };
0092
0093 static const char* name[NStates];
0094 static const G4double mass[NStates];
0095 static const G4double width[NStates];
0096 static const G4int iSpin[NStates];
0097 static const G4int iParity[NStates];
0098 static const G4int encodingOffset[NStates];
0099
0100 enum
0101 {
0102 NGamma = 0,
0103 NPi = 1,
0104 NRho = 2,
0105 DeltaPi = 3,
0106 NStarPi = 4
0107 };
0108
0109 static const G4double bRatio[NStates][NumberOfDecayModes];
0110 };
0111
0112 inline G4double G4ExcitedDeltaConstructor::GetMass(G4int iState, G4int)
0113 {
0114 return mass[iState];
0115 }
0116
0117 inline G4double G4ExcitedDeltaConstructor::GetWidth(G4int iState, G4int)
0118 {
0119 return width[iState];
0120 }
0121
0122 inline G4int G4ExcitedDeltaConstructor::GetiSpin(G4int iState)
0123 {
0124 return iSpin[iState];
0125 }
0126
0127 inline G4int G4ExcitedDeltaConstructor::GetiParity(G4int iState)
0128 {
0129 return iParity[iState];
0130 }
0131
0132 inline G4int G4ExcitedDeltaConstructor::GetEncodingOffset(G4int iState)
0133 {
0134 return encodingOffset[iState];
0135 }
0136
0137 inline G4int G4ExcitedDeltaConstructor::GetQuarkContents(G4int iQ, G4int iIso3)
0138 {
0139
0140
0141
0142
0143
0144 G4int quark = 0;
0145 if (iQ == 0) {
0146 if (iIso3 == -3) {
0147
0148 quark = 1;
0149 }
0150 else {
0151
0152 quark = 2;
0153 }
0154 }
0155 else if (iQ == 2) {
0156 if (iIso3 == +3) {
0157
0158 quark = 2;
0159 }
0160 else {
0161
0162 quark = 1;
0163 }
0164 }
0165 else {
0166 if ((iIso3 == -1) || (iIso3 == -3)) {
0167
0168 quark = 1;
0169 }
0170 else {
0171
0172 quark = 2;
0173 }
0174 }
0175 return quark;
0176 }
0177
0178 inline G4String G4ExcitedDeltaConstructor::GetMultipletName(G4int iState)
0179 {
0180 return name[iState];
0181 }
0182
0183 inline G4String G4ExcitedDeltaConstructor::GetName(G4int iIso3, G4int iState)
0184 {
0185 G4String particle = name[iState];
0186 if (iIso3 == -3) {
0187 particle += "-";
0188 }
0189 else if (iIso3 == -1) {
0190 particle += "0";
0191 }
0192 else if (iIso3 == +1) {
0193 particle += "+";
0194 }
0195 else {
0196 particle += "++";
0197 }
0198 return particle;
0199 }
0200 #endif