#include <HadronPhysicsQGSP_BERT_95.hh>
Inheritance diagram for HadronPhysicsQGSP_BERT_95:
Public Member Functions | |
HadronPhysicsQGSP_BERT_95 (G4int verbose=1) | |
HadronPhysicsQGSP_BERT_95 (const G4String &name, G4bool quasiElastic=true) | |
virtual | ~HadronPhysicsQGSP_BERT_95 () |
virtual void | ConstructParticle () |
virtual void | ConstructProcess () |
void | SetQuasiElastic (G4bool value) |
void | SetProjectileDiffraction (G4bool value) |
Definition at line 66 of file HadronPhysicsQGSP_BERT_95.hh.
HadronPhysicsQGSP_BERT_95::HadronPhysicsQGSP_BERT_95 | ( | G4int | verbose = 1 |
) |
Definition at line 62 of file HadronPhysicsQGSP_BERT_95.cc.
00063 : G4VPhysicsConstructor("hInelastic QGSP_BERT_95") 00064 , theNeutrons(0) 00065 , theLEPNeutron(0) 00066 , theQGSPNeutron(0) 00067 , theBertiniNeutron(0) 00068 , thePiK(0) 00069 , theLEPPiK(0) 00070 , theQGSPPiK(0) 00071 , theBertiniPiK(0) 00072 , thePro(0) 00073 , theLEPPro(0) 00074 , theQGSPPro(0) 00075 , theBertiniPro(0) 00076 , theMiscLHEP(0) 00077 , QuasiElastic(true) 00078 , ProjectileDiffraction(false) 00079 , xsBarashenkovGGPion(0) 00080 , xsGeisha(0) 00081 , xsAxenWellischGGProton(0) 00082 , xsLaidlawWellischGGNeutron(0) 00083 { 00084 }
HadronPhysicsQGSP_BERT_95::HadronPhysicsQGSP_BERT_95 | ( | const G4String & | name, | |
G4bool | quasiElastic = true | |||
) |
Definition at line 86 of file HadronPhysicsQGSP_BERT_95.cc.
00087 : G4VPhysicsConstructor(name) 00088 , theNeutrons(0) 00089 , theLEPNeutron(0) 00090 , theQGSPNeutron(0) 00091 , theBertiniNeutron(0) 00092 , thePiK(0) 00093 , theLEPPiK(0) 00094 , theQGSPPiK(0) 00095 , theBertiniPiK(0) 00096 , thePro(0) 00097 , theLEPPro(0) 00098 , theQGSPPro(0) 00099 , theBertiniPro(0) 00100 , theMiscLHEP(0) 00101 , QuasiElastic(quasiElastic) 00102 , ProjectileDiffraction(false) 00103 , xsBarashenkovGGPion(0) 00104 , xsGeisha(0) 00105 , xsAxenWellischGGProton(0) 00106 , xsLaidlawWellischGGNeutron(0) 00107 { 00108 }
HadronPhysicsQGSP_BERT_95::~HadronPhysicsQGSP_BERT_95 | ( | ) | [virtual] |
Definition at line 143 of file HadronPhysicsQGSP_BERT_95.cc.
00144 { 00145 delete theMiscLHEP; 00146 delete theQGSPNeutron; 00147 delete theLEPNeutron; 00148 delete theNeutrons; 00149 delete theBertiniNeutron; 00150 delete theQGSPPro; 00151 delete theLEPPro; 00152 delete thePro; 00153 delete theBertiniPro; 00154 delete theQGSPPiK; 00155 delete theLEPPiK; 00156 delete theBertiniPiK; 00157 delete thePiK; 00158 00159 delete xsBarashenkovGGPion; 00160 delete xsGeisha; 00161 delete xsAxenWellischGGProton; 00162 delete xsLaidlawWellischGGNeutron; 00163 }
void HadronPhysicsQGSP_BERT_95::ConstructParticle | ( | ) | [virtual] |
Implements G4VPhysicsConstructor.
Definition at line 165 of file HadronPhysicsQGSP_BERT_95.cc.
References G4ShortLivedConstructor::ConstructParticle(), G4BaryonConstructor::ConstructParticle(), and G4MesonConstructor::ConstructParticle().
00166 { 00167 G4MesonConstructor pMesonConstructor; 00168 pMesonConstructor.ConstructParticle(); 00169 00170 G4BaryonConstructor pBaryonConstructor; 00171 pBaryonConstructor.ConstructParticle(); 00172 00173 G4ShortLivedConstructor pShortLivedConstructor; 00174 pShortLivedConstructor.ConstructParticle(); 00175 }
void HadronPhysicsQGSP_BERT_95::ConstructProcess | ( | ) | [virtual] |
Implements G4VPhysicsConstructor.
Definition at line 178 of file HadronPhysicsQGSP_BERT_95.cc.
References G4HadronicProcess::AddDataSet(), G4AntiLambda::AntiLambda(), G4AntiNeutron::AntiNeutron(), G4AntiOmegaMinus::AntiOmegaMinus(), G4AntiProton::AntiProton(), G4AntiSigmaMinus::AntiSigmaMinus(), G4AntiSigmaPlus::AntiSigmaPlus(), G4AntiXiMinus::AntiXiMinus(), G4AntiXiZero::AntiXiZero(), G4MiscLHEPBuilder::Build(), G4PiKBuilder::Build(), G4ProtonBuilder::Build(), G4NeutronBuilder::Build(), G4PhysListUtil::FindInelasticProcess(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4KaonZeroLong::KaonZeroLong(), G4KaonZeroShort::KaonZeroShort(), G4Lambda::Lambda(), G4Neutron::Neutron(), G4OmegaMinus::OmegaMinus(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), G4Proton::Proton(), G4SigmaMinus::SigmaMinus(), G4SigmaPlus::SigmaPlus(), G4XiMinus::XiMinus(), and G4XiZero::XiZero().
00179 { 00180 CreateModels(); 00181 theNeutrons->Build(); 00182 thePro->Build(); 00183 thePiK->Build(); 00184 theMiscLHEP->Build(); 00185 00186 // Inelastic cross sections 00187 00188 // --- Pions --- 00189 // Use Barashenkov inelastic pion cross section up to 91 GeV, 00190 // and Glauber-Gribov above 00191 xsBarashenkovGGPion = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV); 00192 G4PhysListUtil::FindInelasticProcess(G4PionPlus::PionPlus())->AddDataSet(xsBarashenkovGGPion); 00193 G4PhysListUtil::FindInelasticProcess(G4PionMinus::PionMinus())->AddDataSet(xsBarashenkovGGPion); 00194 00195 // --- Kaons --- 00196 // Use Geisha inelastic cross sections 00197 xsGeisha = new G4HadronInelasticDataSet(); 00198 G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(xsGeisha); 00199 G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(xsGeisha); 00200 G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(xsGeisha); 00201 G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(xsGeisha); 00202 00203 // --- Protons --- 00204 // Use Axen-Wellisch inelastic proton cross section up to 91 GeV, 00205 // and Glauber-Gribov above 00206 xsAxenWellischGGProton = new G4CrossSectionPairGG(new G4ProtonInelasticCrossSection(), 91*GeV); 00207 G4PhysListUtil::FindInelasticProcess(G4Proton::Proton())->AddDataSet(xsAxenWellischGGProton); 00208 00209 // --- Neutrons --- 00210 // Use Laidlaw-Wellisch inelastic neutron cross section up to 91 GeV, 00211 // and Glauber-Gribov above 00212 xsLaidlawWellischGGNeutron = new G4CrossSectionPairGG(new G4NeutronInelasticCrossSection(), 91*GeV); 00213 G4PhysListUtil::FindInelasticProcess(G4Neutron::Neutron())->AddDataSet(xsLaidlawWellischGGNeutron); 00214 00215 // --- Hyperons --- 00216 // Use Geisha inelastic cross sections 00217 G4PhysListUtil::FindInelasticProcess(G4Lambda::Lambda())->AddDataSet(xsGeisha); 00218 G4PhysListUtil::FindInelasticProcess(G4AntiLambda::AntiLambda())->AddDataSet(xsGeisha); 00219 G4PhysListUtil::FindInelasticProcess(G4SigmaMinus::SigmaMinus())->AddDataSet(xsGeisha); 00220 G4PhysListUtil::FindInelasticProcess(G4AntiSigmaMinus::AntiSigmaMinus())->AddDataSet(xsGeisha); 00221 G4PhysListUtil::FindInelasticProcess(G4SigmaPlus::SigmaPlus())->AddDataSet(xsGeisha); 00222 G4PhysListUtil::FindInelasticProcess(G4AntiSigmaPlus::AntiSigmaPlus())->AddDataSet(xsGeisha); 00223 G4PhysListUtil::FindInelasticProcess(G4XiMinus::XiMinus())->AddDataSet(xsGeisha); 00224 G4PhysListUtil::FindInelasticProcess(G4AntiXiMinus::AntiXiMinus())->AddDataSet(xsGeisha); 00225 G4PhysListUtil::FindInelasticProcess(G4XiZero::XiZero())->AddDataSet(xsGeisha); 00226 G4PhysListUtil::FindInelasticProcess(G4AntiXiZero::AntiXiZero())->AddDataSet(xsGeisha); 00227 G4PhysListUtil::FindInelasticProcess(G4OmegaMinus::OmegaMinus())->AddDataSet(xsGeisha); 00228 G4PhysListUtil::FindInelasticProcess(G4AntiOmegaMinus::AntiOmegaMinus())->AddDataSet(xsGeisha); 00229 00230 // --- AntiBaryons --- 00231 // Use Geisha inelastic cross sections 00232 G4PhysListUtil::FindInelasticProcess(G4AntiProton::AntiProton())->AddDataSet(xsGeisha); 00233 G4PhysListUtil::FindInelasticProcess(G4AntiNeutron::AntiNeutron())->AddDataSet(xsGeisha); 00234 00235 }
void HadronPhysicsQGSP_BERT_95::SetProjectileDiffraction | ( | G4bool | value | ) | [inline] |
void HadronPhysicsQGSP_BERT_95::SetQuasiElastic | ( | G4bool | value | ) | [inline] |