![]() |
![]() |
00001 #include "SimG4Core/PhysicsLists/interface/G4RPGPiKBuilder.hh" 00002 00003 #include "globals.hh" 00004 #include "G4ios.hh" 00005 #include "G4ParticleDefinition.hh" 00006 #include "G4ParticleTable.hh" 00007 #include "G4MesonConstructor.hh" 00008 #include "G4BaryonConstructor.hh" 00009 #include "G4ProcessManager.hh" 00010 00011 G4RPGPiKBuilder::G4RPGPiKBuilder(): theRPGPiPlusModel(0),theRPGPiMinusModel(0), 00012 theRPGKPlusModel(0), theRPGKMinusModel(0), 00013 theRPGKLongModel(0), theRPGKShortModel(0) { 00014 theMin = 0; 00015 theMax = 55*GeV; 00016 } 00017 00018 G4RPGPiKBuilder::~G4RPGPiKBuilder() { 00019 if (theRPGPiPlusModel) delete theRPGPiPlusModel; 00020 if (theRPGPiMinusModel) delete theRPGPiMinusModel; 00021 if (theRPGKPlusModel) delete theRPGKPlusModel; 00022 if (theRPGKMinusModel) delete theRPGKMinusModel; 00023 if (theRPGKLongModel) delete theRPGKShortModel; 00024 if (theRPGKShortModel) delete theRPGKLongModel; 00025 } 00026 00027 void G4RPGPiKBuilder::Build(G4HadronElasticProcess *) { 00028 G4cout << "Info - G4RPGPiKBuilder::Build() not adding elastic" << G4endl; 00029 } 00030 00031 void G4RPGPiKBuilder::Build(G4PionPlusInelasticProcess * aP) { 00032 theRPGPiPlusModel = new G4RPGPiPlusInelastic(); 00033 theRPGPiPlusModel->SetMinEnergy(theMin); 00034 theRPGPiPlusModel->SetMaxEnergy(theMax); 00035 aP->RegisterMe(theRPGPiPlusModel); 00036 } 00037 00038 void G4RPGPiKBuilder::Build(G4PionMinusInelasticProcess * aP) { 00039 theRPGPiMinusModel = new G4RPGPiMinusInelastic(); 00040 theRPGPiMinusModel->SetMinEnergy(theMin); 00041 theRPGPiMinusModel->SetMaxEnergy(theMax); 00042 aP->RegisterMe(theRPGPiMinusModel); 00043 } 00044 00045 void G4RPGPiKBuilder::Build(G4KaonPlusInelasticProcess * aP) { 00046 theRPGKPlusModel = new G4RPGKPlusInelastic(); 00047 theRPGKPlusModel->SetMinEnergy(theMin); 00048 theRPGKPlusModel->SetMaxEnergy(theMax); 00049 aP->RegisterMe(theRPGKPlusModel); 00050 } 00051 00052 void G4RPGPiKBuilder::Build(G4KaonMinusInelasticProcess * aP) { 00053 theRPGKMinusModel = new G4RPGKMinusInelastic(); 00054 theRPGKMinusModel->SetMaxEnergy(theMax); 00055 theRPGKMinusModel->SetMinEnergy(theMin); 00056 aP->RegisterMe(theRPGKMinusModel); 00057 } 00058 00059 void G4RPGPiKBuilder::Build(G4KaonZeroLInelasticProcess * aP) { 00060 theRPGKLongModel = new G4RPGKLongInelastic(); 00061 theRPGKLongModel->SetMaxEnergy(theMax); 00062 theRPGKLongModel->SetMinEnergy(theMin); 00063 aP->RegisterMe(theRPGKLongModel); 00064 } 00065 00066 void G4RPGPiKBuilder::Build(G4KaonZeroSInelasticProcess * aP) { 00067 theRPGKShortModel = new G4RPGKShortInelastic(); 00068 theRPGKShortModel->SetMaxEnergy(theMax); 00069 theRPGKShortModel->SetMinEnergy(theMin); 00070 aP->RegisterMe(theRPGKShortModel); 00071 }