1 #include "SimG4Core/PhysicsLists/interface/HadronPhysicsQGSP_BERT_NOLEP2.hh"
6 #include "G4ParticleDefinition.hh"
7 #include "G4ParticleTable.hh"
9 #include "G4MesonConstructor.hh"
10 #include "G4BaryonConstructor.hh"
11 #include "G4ShortLivedConstructor.hh"
13 HadronPhysicsQGSP_BERT_NOLEP2::HadronPhysicsQGSP_BERT_NOLEP2(
const G4String&
name, G4bool quasiElastic)
14 : G4VPhysicsConstructor(name) , QuasiElastic(quasiElastic) {
15 ProjectileDiffraction=
false;
18 void HadronPhysicsQGSP_BERT_NOLEP2::CreateModels() {
20 theNeutrons=
new G4NeutronBuilder;
21 theNeutrons->RegisterMe(theQGSPNeutron=
new G4QGSPNeutronBuilder(QuasiElastic, ProjectileDiffraction));
22 theNeutrons->RegisterMe(theLEPNeutron=
new G4LEPNeutronBuilder);
24 theLEPNeutron->SetMinInelasticEnergy(0.*eV);
25 theLEPNeutron->SetMaxInelasticEnergy(0.*eV);
26 theNeutrons->RegisterMe(theBertiniNeutron=
new G4BertiniNeutronBuilder);
27 theBertiniNeutron->SetMinEnergy(0.0*GeV);
28 theBertiniNeutron->SetMaxEnergy(14.0*GeV);
30 thePro=
new G4ProtonBuilder;
31 thePro->RegisterMe(theQGSPPro=
new G4QGSPProtonBuilder(QuasiElastic, ProjectileDiffraction));
32 thePro->RegisterMe(theBertiniPro=
new G4BertiniProtonBuilder);
33 theBertiniPro->SetMaxEnergy(14.0*GeV);
35 thePiK=
new G4PiKBuilder;
36 thePiK->RegisterMe(theQGSPPiK=
new G4QGSPPiKBuilder(QuasiElastic));
37 thePiK->RegisterMe(theBertiniPiK=
new G4BertiniPiKBuilder);
38 theBertiniPiK->SetMaxEnergy(14.0*GeV);
40 theMiscLHEP=
new G4MiscLHEPBuilder;
43 HadronPhysicsQGSP_BERT_NOLEP2::~HadronPhysicsQGSP_BERT_NOLEP2() {
45 delete theQGSPNeutron;
47 delete theBertiniNeutron;
56 void HadronPhysicsQGSP_BERT_NOLEP2::ConstructParticle() {
57 G4MesonConstructor pMesonConstructor;
58 pMesonConstructor.ConstructParticle();
60 G4BaryonConstructor pBaryonConstructor;
61 pBaryonConstructor.ConstructParticle();
63 G4ShortLivedConstructor pShortLivedConstructor;
64 pShortLivedConstructor.ConstructParticle();
67 #include "G4ProcessManager.hh"
68 void HadronPhysicsQGSP_BERT_NOLEP2::ConstructProcess() {