StepMax Implementation

Hello all ,

I m trying to use lowEnergy physics (Livermore / Penelope ) in nanostructure filled with Gold .
for seting stepMax i implemented following structure :slight_smile:
DetectorConstruction.hh

void SetMaxStep (G4double );
and
G4UserLimits* fUserLimits;

DetectorConstruction.cc

fLogicalNano->SetUserLimits(fUserLimits);

and

void DetectorConstruction::SetMaxStep(G4double maxStep)
{
if ((fUserLimits)&&(maxStep>0.)) fUserLimits->SetMaxAllowedStep(maxStep);
}
////…/////////…/////////////…///////////////…//////////////////////////////…
physicslist.hh
class StepMax
and
StepMax* fStepMaxProcess;

physicslist.cc

i have two different physics ( G4EmDNA for world and Penelope or Livermore for Regions)

#include “G4ProcessManager.hh”
#include “StepMax.hh”

void PhysicsList::AddStepMax()
{
// Step limitation seen as a process
StepMax* stepMaxProcess = new StepMax();

auto particleIterator=GetParticleIterator();
particleIterator->reset();
while ((particleIterator)()){
G4ParticleDefinition
particle = particleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();

  if (stepMaxProcess->IsApplicable(*particle))
    {
      pmanager ->AddDiscreteProcess(stepMaxProcess);
    }

}
}
////////////////////////////
i also attach stepMax and stepmaxmessenger to my code

but when I get result
I can see userstepmax process
but i cant see any dfference in the result for different StepMax

I have one result for all , and I think it is a little Odd .

cheers
Ebrahim

Hello,

I have the same experience. Did you found the problem?

Thank you very much!

I have the same problem too. I see larger steps taken than what I set with SetMaxAllowedStep