00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef G4ExcitedLambdaConstructor_h
00037 #define G4ExcitedLambdaConstructor_h 1
00038
00039 #include "globals.hh"
00040 #include "G4ios.hh"
00041 #include "G4ExcitedBaryonConstructor.hh"
00042
00043 class G4ExcitedLambdaConstructor: public G4ExcitedBaryonConstructor
00044 {
00045
00046
00047
00048 public:
00049 G4ExcitedLambdaConstructor();
00050 virtual ~G4ExcitedLambdaConstructor();
00051
00052 protected:
00053 virtual G4bool Exist( G4int ){return true;}
00054
00055 virtual G4int GetQuarkContents(G4int, G4int);
00056 virtual G4String GetName(G4int iIso3, G4int iState);
00057 virtual G4String GetMultipletName(G4int iState);
00058 virtual G4double GetMass( G4int state, G4int iso);
00059 virtual G4double GetWidth( G4int state, G4int iso);
00060 virtual G4int GetiSpin(G4int iState);
00061 virtual G4int GetiParity(G4int iState);
00062 virtual G4int GetEncodingOffset(G4int iState);
00063
00064 virtual G4DecayTable* CreateDecayTable(const G4String& name,
00065 G4int iIso3, G4int iState,
00066 G4bool fAnti = false);
00067 private:
00068 G4DecayTable* AddNKMode( G4DecayTable* table, const G4String& name,
00069 G4double br, G4int iIso3, G4bool fAnti);
00070 G4DecayTable* AddNKStarMode( G4DecayTable* table, const G4String& name,
00071 G4double br, G4int iIso3, G4bool fAnti);
00072 G4DecayTable* AddSigmaPiMode( G4DecayTable* table, const G4String& name,
00073 G4double br, G4int iIso3, G4bool fAnti);
00074 G4DecayTable* AddSigmaStarPiMode( G4DecayTable* table, const G4String& name,
00075 G4double br, G4int iIso3, G4bool fAnti);
00076 G4DecayTable* AddLambdaGammaMode( G4DecayTable* table, const G4String& name,
00077 G4double br, G4int iIso3, G4bool fAnti);
00078 G4DecayTable* AddLambdaEtaMode( G4DecayTable* table, const G4String& name,
00079 G4double br, G4int iIso3, G4bool fAnti);
00080 G4DecayTable* AddLambdaOmegaMode( G4DecayTable* table, const G4String& name,
00081 G4double br, G4int iIso3, G4bool fAnti);
00082
00083 public:
00084 enum { NStates = 12 };
00085 private:
00086 enum { LambdaIsoSpin = 0 };
00087
00088 private:
00089 static const char* name[ NStates ];
00090 static const G4double mass[ NStates ];
00091 static const G4double width[ NStates ];
00092 static const G4int iSpin[ NStates ];
00093 static const G4int iParity[ NStates ];
00094 static const G4int encodingOffset[ NStates ];
00095
00096 public:
00097 enum { NumberOfDecayModes = 7 };
00098 private:
00099 enum { NK=0, NKStar=1, SigmaPi=2, SigmaStarPi=3, LambdaGamma=4,
00100 LambdaEta=5, LambdaOmega=6 };
00101 private:
00102 static const G4double bRatio[ NStates ][ NumberOfDecayModes];
00103 };
00104
00105 inline
00106 G4double G4ExcitedLambdaConstructor::GetMass(G4int iState, G4int)
00107 {
00108 return mass[iState];
00109 }
00110
00111 inline
00112 G4double G4ExcitedLambdaConstructor::GetWidth(G4int iState, G4int)
00113 {
00114 return width[iState];
00115 }
00116
00117 inline
00118 G4int G4ExcitedLambdaConstructor::GetiSpin(G4int iState)
00119 {
00120 return iSpin[iState];
00121 }
00122
00123 inline
00124 G4int G4ExcitedLambdaConstructor::GetiParity(G4int iState)
00125 {
00126 return iParity[iState];
00127 }
00128
00129 inline
00130 G4int G4ExcitedLambdaConstructor::GetEncodingOffset(G4int iState)
00131 {
00132 return encodingOffset[iState];
00133 }
00134
00135 inline
00136 G4int G4ExcitedLambdaConstructor::GetQuarkContents(G4int iQ, G4int )
00137 {
00138 G4int quark=0;
00139 if ( iQ == 0 ){
00140
00141 quark = 3;
00142 } else if ( iQ == 1 ){
00143
00144 quark = 1;
00145 } else if ( iQ == 2 ){
00146
00147 quark = 2;
00148 }
00149 return quark;
00150 }
00151
00152 inline
00153 G4String G4ExcitedLambdaConstructor::GetMultipletName(G4int iState)
00154 {
00155 return name[iState];
00156 }
00157
00158 inline
00159 G4String G4ExcitedLambdaConstructor::GetName(G4int , G4int iState)
00160 {
00161 G4String particle = name[iState];
00162 return particle;
00163 }
00164 #endif
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174