Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions
G4QGSBuilder Class Reference

#include <G4QGSBuilder.hh>

Inheritance diagram for G4QGSBuilder:
G4VHadronModelBuilder

Public Member Functions

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

Protected Member Functions

virtual G4HadronicInteractionBuildModel ()
 

Detailed Description

Definition at line 51 of file G4QGSBuilder.hh.

Constructor & Destructor Documentation

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

Definition at line 51 of file G4QGSBuilder.cc.

53  : G4VHadronModelBuilder(aName),
54  theQGStringModel(0), theQGStringDecay(0), theQuasiElastic(0),
55  thePreCompound(p),theQGSM(0),
56  quasielFlag(quasiel)
57 {}
G4VHadronModelBuilder(const G4String &name="")
G4QGSBuilder::~G4QGSBuilder ( )
virtual

Definition at line 59 of file G4QGSBuilder.cc.

60 {
61  delete theQuasiElastic;
62  delete theQGStringDecay;
63  delete theQGStringModel;
64  delete theQGSM;
65 }

Member Function Documentation

G4HadronicInteraction * G4QGSBuilder::BuildModel ( )
protectedvirtual

Implements G4VHadronModelBuilder.

Definition at line 67 of file G4QGSBuilder.cc.

References G4VHadronModelBuilder::GetName(), G4VIntraNuclearTransportModel::SetDeExcitation(), G4VPartonStringModel::SetFragmentationModel(), G4TheoFSGenerator::SetHighEnergyGenerator(), G4TheoFSGenerator::SetQuasiElasticChannel(), and G4TheoFSGenerator::SetTransport().

68 {
69  G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator(GetName());
70  theQGStringModel = new G4QGSModel< G4QGSParticipants >;
71  theQGSM = new G4QGSMFragmentation();
72  theQGStringDecay = new G4ExcitedStringDecay(theQGSM);
73  theQGStringModel->SetFragmentationModel(theQGStringDecay);
74  theQGSModel->SetHighEnergyGenerator(theQGStringModel);
75 
76  if(quasielFlag) {
77  theQuasiElastic = new G4QuasiElasticChannel();
78  theQGSModel->SetQuasiElasticChannel(theQuasiElastic);
79  }
80 
81  if(!thePreCompound) {
82  thePreCompound = new G4PreCompoundModel(new G4ExcitationHandler());
83  }
84 
85  if(GetName() == "QGSB") {
86  G4BinaryCascade* bic = new G4BinaryCascade();
87  bic->SetDeExcitation(thePreCompound);
88  theQGSModel->SetTransport(bic);
89 
90  } else {
92  pint->SetDeExcitation(thePreCompound);
93  theQGSModel->SetTransport(pint);
94  }
95 
96  return theQGSModel;
97 }
const G4String & GetName() const
void SetQuasiElasticChannel(G4QuasiElasticChannel *const value)
void SetFragmentationModel(G4VStringFragmentation *aModel)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetDeExcitation(G4VPreCompoundModel *ptr)
void SetTransport(G4VIntraNuclearTransportModel *const value)

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