Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QGSBuilder Class Reference

#include <G4QGSBuilder.hh>

+ Inheritance diagram for G4QGSBuilder:

Public Member Functions

 G4QGSBuilder (const G4String &name="", G4PreCompoundModel *p=0, G4bool quasiElastic=true, G4bool projectileDiffraction=false)
 
virtual ~G4QGSBuilder ()
 
- Public Member Functions inherited from G4VHadronModelBuilder
 G4VHadronModelBuilder (const G4String &name="")
 
virtual ~G4VHadronModelBuilder ()
 
G4HadronicInteractionGetModel ()
 
const G4StringGetName () const
 

Protected Member Functions

virtual G4HadronicInteractionBuildModel ()
 
virtual G4HadronicInteractionBuildModel ()=0
 

Detailed Description

Definition at line 52 of file G4QGSBuilder.hh.

Constructor & Destructor Documentation

◆ G4QGSBuilder()

G4QGSBuilder::G4QGSBuilder ( const G4String name = "",
G4PreCompoundModel p = 0,
G4bool  quasiElastic = true,
G4bool  projectileDiffraction = false 
)

Definition at line 53 of file G4QGSBuilder.cc.

55 : G4VHadronModelBuilder(aName),
56 theQGStringModel(0), theQGStringDecay(0), theQuasiElastic(0),
57 theProjectileDiffraction(0),thePreCompound(p),theQGSM(0),
58 quasielFlag(quasiel), diffFlag(diff)
59{}

◆ ~G4QGSBuilder()

G4QGSBuilder::~G4QGSBuilder ( )
virtual

Definition at line 61 of file G4QGSBuilder.cc.

62{
63 delete theProjectileDiffraction;
64 delete theQuasiElastic;
65 delete theQGStringDecay;
66 delete theQGStringModel;
67 delete theQGSM;
68}

Member Function Documentation

◆ BuildModel()

G4HadronicInteraction * G4QGSBuilder::BuildModel ( )
protectedvirtual

Implements G4VHadronModelBuilder.

Definition at line 70 of file G4QGSBuilder.cc.

71{
72 G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator(GetName());
73 theQGStringModel = new G4QGSModel< G4QGSParticipants >;
74 theQGSM = new G4QGSMFragmentation();
75 theQGStringDecay = new G4ExcitedStringDecay(theQGSM);
76 theQGStringModel->SetFragmentationModel(theQGStringDecay);
77 theQGSModel->SetHighEnergyGenerator(theQGStringModel);
78
79 if(quasielFlag) {
80 theQuasiElastic = new G4QuasiElasticChannel();
81 theQGSModel->SetQuasiElasticChannel(theQuasiElastic);
82 }
83 if ( diffFlag ) {
84 theProjectileDiffraction = new G4ProjectileDiffractiveChannel();
85 theQGSModel->SetProjectileDiffraction(theProjectileDiffraction);
86 }
87
88 if(!thePreCompound) {
89 thePreCompound = new G4PreCompoundModel(new G4ExcitationHandler());
90 }
91
92 if(GetName() == "QGSC") {
94
95 } else if(GetName() == "QGSB") {
97 bic->SetDeExcitation(thePreCompound);
98 theQGSModel->SetTransport(bic);
99
100 } else {
102 pint->SetDeExcitation(thePreCompound);
103 theQGSModel->SetTransport(pint);
104 }
105
106 return theQGSModel;
107}
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetQuasiElasticChannel(G4QuasiElasticChannel *const value)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetProjectileDiffraction(G4ProjectileDiffractiveChannel *const value)
const G4String & GetName() const
void SetDeExcitation(G4VPreCompoundModel *ptr)
void SetFragmentationModel(G4VStringFragmentation *aModel)

The documentation for this class was generated from the following files: