G4QGSPPionBuilder Class Reference

#include <G4QGSPPionBuilder.hh>

Inheritance diagram for G4QGSPPionBuilder:

G4VPionBuilder

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)

Detailed Description

Definition at line 61 of file G4QGSPPionBuilder.hh.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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]

Implements G4VPionBuilder.

Definition at line 98 of file G4QGSPPionBuilder.cc.

00098 {}

void G4QGSPPionBuilder::SetMinEnergy ( G4double  aM  )  [inline]

Definition at line 73 of file G4QGSPPionBuilder.hh.

00073 {theMin = aM;}


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:08 2013 for Geant4 by  doxygen 1.4.7