G4MiscQGSCBuilder Class Reference

#include <G4MiscQGSCBuilder.hh>


Public Member Functions

 G4MiscQGSCBuilder (G4int verbose)
virtual ~G4MiscQGSCBuilder ()
void Build ()

Protected Attributes

G4ParticleTabletheParticleTable
G4ParticleTable::G4PTblDicIteratortheParticleIterator


Detailed Description

Definition at line 64 of file G4MiscQGSCBuilder.hh.


Constructor & Destructor Documentation

G4MiscQGSCBuilder::G4MiscQGSCBuilder ( G4int  verbose  ) 

Definition at line 43 of file G4MiscQGSCBuilder.cc.

References G4ParticleTable::GetIterator(), G4ParticleTable::GetParticleTable(), theParticleIterator, and theParticleTable.

00043                                              : 
00044     theModel(0),theCascade(0),theQGSCModel(0),
00045     theQGSCDecay(0),theQuasiElastic(0),
00046    verbose(ver), wasActivated(false)
00047 {
00048   // pointer to the particle table
00049   theParticleTable = G4ParticleTable::GetParticleTable();
00050   theParticleIterator = theParticleTable->GetIterator();
00051 }

G4MiscQGSCBuilder::~G4MiscQGSCBuilder (  )  [virtual]

Definition at line 53 of file G4MiscQGSCBuilder.cc.

00053 {}


Member Function Documentation

void G4MiscQGSCBuilder::Build (  ) 

Definition at line 55 of file G4MiscQGSCBuilder.cc.

References G4ProcessManager::AddDiscreteProcess(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetProcessManager(), G4VProcess::GetProcessName(), G4HadronicProcess::RegisterMe(), G4ParticleTableIterator< K, V >::reset(), G4VPartonStringModel::SetFragmentationModel(), G4TheoFSGenerator::SetHighEnergyGenerator(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), G4TheoFSGenerator::SetQuasiElasticChannel(), G4TheoFSGenerator::SetTransport(), theParticleIterator, and G4ParticleTableIterator< K, V >::value().

Referenced by HadronPhysicsQGSC_CHIPS::ConstructProcess().

00056 {
00057   wasActivated = true;
00058 
00059   //QGSC model definition
00060   theModel = new G4TheoFSGenerator("QGSC");  
00061 
00062   theQGSCModel    = new G4QGSModel< G4QGSParticipants >;
00063   theQGSCDecay    = new G4ExcitedStringDecay(new G4QGSMFragmentation);
00064   theQGSCModel->SetFragmentationModel(theQGSCDecay);
00065   theModel->SetHighEnergyGenerator(theQGSCModel);
00066 
00067   theCascade      = new G4StringChipsParticleLevelInterface;
00068   theModel->SetTransport(theCascade);
00069 
00070   theQuasiElastic = new G4QuasiElasticChannel;
00071   theModel->SetQuasiElasticChannel(theQuasiElastic);
00072 
00073   theModel->SetMinEnergy(0.);
00074   theModel->SetMaxEnergy(100*TeV);
00075 
00076 
00077   theParticleIterator->reset();
00078   while( (*theParticleIterator)() )
00079   {
00080     G4ParticleDefinition* particle = theParticleIterator->value();
00081     G4String pname = particle->GetParticleName();
00082     if(pname == "kaon-" || pname == "kaon+" || pname == "kaon0S"  ||  pname == "kaon0L" ||
00083        pname == "pi-"   || pname == "pi+"   || pname == "neutron" ||  pname == "proton" )
00084     {
00085       if(verbose>1)G4cout<<"** G4MiscQGSCBuilder: "<<pname<<" already defined"<<G4endl;
00086     }
00087     else if(
00088        pname == "anti_proton"  || pname == "anti_neutron" || pname == "anti_lambda"  ||
00089        pname == "anti_sigma+"  || pname == "anti_sigma0"  || pname == "anti_sigma-"  || 
00090        pname == "anti_xi0"     || pname == "anti_xi-"     || pname == "anti_omega-"  || 
00091        pname == "lambda"       || pname == "sigma+"       || pname == "sigma0"       ||
00092        pname == "sigma-"       || pname == "xi0" || pname == "xi-" || pname == "omega-")
00093      {
00094       if(verbose>1)G4cout<< "__ G4MiscQGSCBuilder: "<< pname <<" is defined here"<<G4endl;
00095       G4ProcessManager* pmanager = particle->GetProcessManager();
00096       G4HadronInelasticProcess* hp = new G4HadronInelasticProcess("hInelastic", particle);
00097       pmanager->AddDiscreteProcess(hp);
00098       hp->RegisterMe(theModel);
00099       if(verbose>1)
00100       G4cout<<"^^ G4MiscQGSCBuilder: "<<hp->GetProcessName()<<" added for "<<pname<<G4endl;
00101     }
00102   }
00103 }


Field Documentation

G4ParticleTable::G4PTblDicIterator* G4MiscQGSCBuilder::theParticleIterator [protected]

Definition at line 77 of file G4MiscQGSCBuilder.hh.

Referenced by Build(), and G4MiscQGSCBuilder().

G4ParticleTable* G4MiscQGSCBuilder::theParticleTable [protected]

Definition at line 76 of file G4MiscQGSCBuilder.hh.

Referenced by G4MiscQGSCBuilder().


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