#include <G4QGSPProtonBuilder.hh>
Inheritance diagram for G4QGSPProtonBuilder:
Public Member Functions | |
G4QGSPProtonBuilder (G4bool quasiElastic=false, G4bool projectileDiffraction=false) | |
virtual | ~G4QGSPProtonBuilder () |
virtual void | Build (G4HadronElasticProcess *aP) |
virtual void | Build (G4ProtonInelasticProcess *aP) |
void | SetMinEnergy (G4double aM) |
Definition at line 62 of file G4QGSPProtonBuilder.hh.
G4QGSPProtonBuilder::G4QGSPProtonBuilder | ( | G4bool | quasiElastic = false , |
|
G4bool | projectileDiffraction = false | |||
) |
Definition at line 50 of file G4QGSPProtonBuilder.cc.
References G4VIntraNuclearTransportModel::SetDeExcitation(), G4VPartonStringModel::SetFragmentationModel(), G4TheoFSGenerator::SetHighEnergyGenerator(), G4TheoFSGenerator::SetProjectileDiffraction(), G4TheoFSGenerator::SetQuasiElasticChannel(), and G4TheoFSGenerator::SetTransport().
00051 { 00052 theMin = 12*GeV; 00053 theModel = new G4TheoFSGenerator("QGSP"); 00054 00055 theStringModel = new G4QGSModel< G4QGSParticipants >; 00056 theStringDecay = new G4ExcitedStringDecay(theQGSM = new G4QGSMFragmentation); 00057 theStringModel->SetFragmentationModel(theStringDecay); 00058 00059 theCascade = new G4GeneratorPrecompoundInterface; 00060 thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler); 00061 theCascade->SetDeExcitation(thePreEquilib); 00062 00063 theModel->SetTransport(theCascade); 00064 theModel->SetHighEnergyGenerator(theStringModel); 00065 if (quasiElastic) 00066 { 00067 theQuasiElastic=new G4QuasiElasticChannel; 00068 theModel->SetQuasiElasticChannel(theQuasiElastic); 00069 } else 00070 { theQuasiElastic=0;} 00071 if ( projectileDiffraction ) 00072 { 00073 theProjectileDiffraction=new G4ProjectileDiffractiveChannel; 00074 theModel->SetProjectileDiffraction(theProjectileDiffraction); 00075 } else 00076 { theProjectileDiffraction=0;} 00077 }
G4QGSPProtonBuilder::~G4QGSPProtonBuilder | ( | ) | [virtual] |
Definition at line 93 of file G4QGSPProtonBuilder.cc.
00094 { 00095 delete thePreEquilib; 00096 delete theCascade; 00097 if ( theQuasiElastic ) delete theQuasiElastic; 00098 if ( theProjectileDiffraction ) delete theProjectileDiffraction; 00099 delete theStringDecay; 00100 delete theStringModel; 00101 delete theModel; 00102 delete theQGSM; 00103 //delete theHandler; 00104 }
void G4QGSPProtonBuilder::Build | ( | G4ProtonInelasticProcess * | aP | ) | [virtual] |
Implements G4VProtonBuilder.
Definition at line 80 of file G4QGSPProtonBuilder.cc.
References G4HadronicProcess::AddDataSet(), G4Proton::Proton(), G4HadronicProcess::RegisterMe(), G4HadronicInteraction::SetMaxEnergy(), and G4HadronicInteraction::SetMinEnergy().
00081 { 00082 aP->AddDataSet(new G4BGGNucleonInelasticXS(G4Proton::Proton())); 00083 theModel->SetMinEnergy(theMin); 00084 theModel->SetMaxEnergy(100*TeV); 00085 aP->RegisterMe(theModel); 00086 }
void G4QGSPProtonBuilder::Build | ( | G4HadronElasticProcess * | aP | ) | [virtual] |
void G4QGSPProtonBuilder::SetMinEnergy | ( | G4double | aM | ) | [inline] |