#include <G4QGSPPionBuilder.hh>
Inheritance diagram for G4QGSPPionBuilder:
Public Member Functions | |
G4QGSPPionBuilder (G4bool quasiElastic=false, G4bool projectileDiffraction=false) | |
virtual | ~G4QGSPPionBuilder () |
virtual void | Build (G4HadronElasticProcess *aP) |
virtual void | Build (G4PionPlusInelasticProcess *aP) |
virtual void | Build (G4PionMinusInelasticProcess *aP) |
void | SetMinEnergy (G4double aM) |
Definition at line 61 of file G4QGSPPionBuilder.hh.
G4QGSPPionBuilder::G4QGSPPionBuilder | ( | G4bool | quasiElastic = false , |
|
G4bool | projectileDiffraction = false | |||
) |
Definition at line 51 of file G4QGSPPionBuilder.cc.
References G4VIntraNuclearTransportModel::SetDeExcitation(), G4VPartonStringModel::SetFragmentationModel(), G4TheoFSGenerator::SetHighEnergyGenerator(), G4TheoFSGenerator::SetProjectileDiffraction(), G4TheoFSGenerator::SetQuasiElasticChannel(), and G4TheoFSGenerator::SetTransport().
00052 { 00053 thePiData = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV); 00054 theMin = 12*GeV; 00055 theModel = new G4TheoFSGenerator("QGSP"); 00056 00057 theStringModel = new G4QGSModel< G4QGSParticipants >; 00058 theStringDecay = new G4ExcitedStringDecay(theQGSM = new G4QGSMFragmentation); 00059 theStringModel->SetFragmentationModel(theStringDecay); 00060 00061 00062 theCascade = new G4GeneratorPrecompoundInterface; 00063 thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler); 00064 theCascade->SetDeExcitation(thePreEquilib); 00065 00066 theModel->SetHighEnergyGenerator(theStringModel); 00067 if (quasiElastic) 00068 { 00069 theQuasiElastic=new G4QuasiElasticChannel; 00070 theModel->SetQuasiElasticChannel(theQuasiElastic); 00071 } else 00072 { theQuasiElastic=0;} 00073 if ( projectileDiffraction ) 00074 { 00075 theProjectileDiffraction=new G4ProjectileDiffractiveChannel; 00076 theModel->SetProjectileDiffraction(theProjectileDiffraction); 00077 } else 00078 { theProjectileDiffraction=0;} 00079 00080 theModel->SetTransport(theCascade); 00081 }
G4QGSPPionBuilder::~G4QGSPPionBuilder | ( | ) | [virtual] |
Definition at line 84 of file G4QGSPPionBuilder.cc.
00085 { 00086 delete theCascade; 00087 delete thePreEquilib; 00088 if ( theQuasiElastic ) delete theQuasiElastic; 00089 if ( theProjectileDiffraction ) delete theProjectileDiffraction; 00090 delete theStringDecay; 00091 delete theStringModel; 00092 delete theModel; 00093 delete theQGSM; 00094 //delete theHandler; 00095 }
void G4QGSPPionBuilder::Build | ( | G4PionMinusInelasticProcess * | aP | ) | [virtual] |
Implements G4VPionBuilder.
Definition at line 110 of file G4QGSPPionBuilder.cc.
References G4HadronicProcess::AddDataSet(), G4HadronicProcess::RegisterMe(), G4HadronicInteraction::SetMaxEnergy(), and G4HadronicInteraction::SetMinEnergy().
00111 { 00112 theModel->SetMinEnergy(theMin); 00113 theModel->SetMaxEnergy(100*TeV); 00114 aP->AddDataSet(thePiData); 00115 aP->RegisterMe(theModel); 00116 }
void G4QGSPPionBuilder::Build | ( | G4PionPlusInelasticProcess * | aP | ) | [virtual] |
Implements G4VPionBuilder.
Definition at line 101 of file G4QGSPPionBuilder.cc.
References G4HadronicProcess::AddDataSet(), G4HadronicProcess::RegisterMe(), G4HadronicInteraction::SetMaxEnergy(), and G4HadronicInteraction::SetMinEnergy().
00102 { 00103 theModel->SetMinEnergy(theMin); 00104 theModel->SetMaxEnergy(100*TeV); 00105 aP->AddDataSet(thePiData); 00106 aP->RegisterMe(theModel); 00107 }
void G4QGSPPionBuilder::Build | ( | G4HadronElasticProcess * | aP | ) | [virtual] |
void G4QGSPPionBuilder::SetMinEnergy | ( | G4double | aM | ) | [inline] |