Message: Re: Low Energy Physics list slower than others? Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Low Energy Physics list slower than others? 

Forum: Physics List
Re: None Low Energy Physics list slower than others? (Ioannis Sechopoulos)
Date: 25 Jan, 2006
From: Vladimir IVANTCHENKO <vnivanch@mail.cern.ch>

On Wed, 25 Jan 2006, Ioannis Sechopoulos wrote:

> *** Discussion title: Physics List
> Email replies to PublicHyperNews@slac.stanford.edu must include:
>   In-Reply-To: <"/phys-list/207"@geant4-hn.slac.stanford.edu>
>   Subject: ...change this to be about your reply.
> 

Hello,

see comments below.

> Hello, sorry for the possibly very basic question, but in my simulation,
> if I change from a "Standard" physics list, e.g. the one provided in
> N02, for one with the Low Energy Processes (included below), my
> simulation slows down by a factor of 4. Is this logical?
>

Yes, in fact LowEnergy simulation is slower, because more detailed atomic 
shell effects are taken into account.
 
> My simulation concerns the transportation, absorption, and scatter of
> x-rays of 5 to 35 keV and sometimes up to 100 keV in human tissue and
> the dose to the tissue. This is the LE physics list I am using, is it
> missing something?
>

You can compare it with one from examples/extended/medical/GammaTherapy
 
> ISSPhysicsList::ISSPhysicsList():  G4VUserPhysicsList()
> {
>   defaultCutValue = 1.0*cm;
>    SetVerboseLevel(1);
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> ISSPhysicsList::~ISSPhysicsList() {}
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> void ISSPhysicsList::ConstructParticle()
> {
>   ConstructBosons();
>   ConstructLeptons();
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> void ISSPhysicsList::ConstructBosons()
> {
>   // gamma
>   G4Gamma::GammaDefinition();
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> void ISSPhysicsList::ConstructLeptons()
> {
>   //  e+/-
>   G4Electron::ElectronDefinition();
>   G4Positron::PositronDefinition();
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> void ISSPhysicsList::ConstructProcess()
> {
>   AddTransportation();
>   ConstructEM();
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> #include "G4MultipleScattering.hh" // gamma
> 
> #include "G4LowEnergyCompton.hh"
> #include "G4LowEnergyPhotoElectric.hh"
> #include "G4LowEnergyRayleigh.hh"
> #include "G4GammaConversion.hh"
> 
> // e-
> 
> #include "G4LowEnergyIonisation.hh"
> #include "G4LowEnergyBremsstrahlung.hh"
> 
> // e+
> 
> #include "G4eIonisation.hh"
> #include "G4eBremsstrahlung.hh"
> #include "G4eplusAnnihilation.hh"
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> void ISSPhysicsList::ConstructEM()
> {
>   theParticleIterator->reset();
>   while( (*theParticleIterator)() ){
>     G4ParticleDefinition* particle = theParticleIterator->value();
>     G4ProcessManager* pmanager = particle->GetProcessManager();
>     G4String particleName = particle->GetParticleName();
> 
>     if (particleName == "gamma") {
>       // gamma         
>       pmanager->AddDiscreteProcess(new G4LowEnergyCompton);
>       pmanager->AddDiscreteProcess(new G4LowEnergyPhotoElectric);
>       pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh);
>       pmanager->AddDiscreteProcess(new G4GammaConversion);
> 
>     } else if (particleName == "e-") {
>       //electron
>       loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem");
>       loweBrem->SetAngularGenerator("2bn");   // ("tsai");
>       pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
>       pmanager->AddProcess(new G4LowEnergyIonisation,     -1, 2,2);
>       pmanager->AddProcess(loweBrem,    -1, 3,3);

!!! this line need to be changed to 
    pmanager->AddProcess(loweBrem,    -1, -1,3);


> 
>     } else if (particleName == "e+") {
>       //positron
>       pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
>       pmanager->AddProcess(new G4eIonisation,       -1, 2,2);
>       pmanager->AddProcess(new G4eBremsstrahlung,   -1, 3,3);
>       pmanager->AddProcess(new G4eplusAnnihilation,  0,-1,4);
>     }
>   }
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> #include "G4Decay.hh"
> void ISSPhysicsList::ConstructGeneral()
> {
>   // Add Decay Process
>   G4Decay* theDecayProcess = new G4Decay();
>   theParticleIterator->reset();
>   while( (*theParticleIterator)() ){
>     G4ParticleDefinition* particle = theParticleIterator->value();
>     G4ProcessManager* pmanager = particle->GetProcessManager();
>     if (theDecayProcess->IsApplicable(*particle)) { 
>       pmanager ->AddProcess(theDecayProcess);
>       // set ordering for PostStepDoIt and AtRestDoIt
>       pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
>       pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
>     }
>   }
> }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> void ISSPhysicsList::SetCuts()
> {
>   SetCutsWithDefault();
> 
> if (verboseLevel>0) DumpCutValuesTable(); }
> 
> //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
> 
> Thank you!
> 

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Question: Re: Low Energy Physics list slower than others?   (Ioannis Sechopoulos - 26 Jan, 2006)
(_ None: Re: Low Energy Physics list slower than others?   (Vladimir IVANTCHENKO - 26 Jan, 2006)
 Add Message Add Message
to: "Re: Low Energy Physics list slower than others?"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]