Controlling atomic deexcitation in multiple regions

I’m using geant 10.5.p01. I am trying to set up an application with multiple regions, with strict production cuts far from the sensitive region. This is mostly straightforward, but I cannot seem to configure atomic deexcitation to obey these cuts. I’m doing the following:

  1. In my main:
  fPhysList = fFactory->GetReferencePhysList("Shielding");
  G4EmParameters* params = G4EmParameters::Instance();
  params->SetFluo(true);
  params->SetAugerCascade(false);
  params->SetAuger(false);
  params->SetPixe(false);
  //params->SetDeexActiveRegion("World", true, false, false);
  //just tune your cuts, rather than the heavy-handed stuff
  params->SetDeexcitationIgnoreCut(false);
  //make gammas follow cuts
  params->SetApplyCuts(true);
  params->Dump();
  
  //update the run manager
  fRunManager->SetUserInitialization(fPhysList);
  1. In my UserDetectorConstruction::Construct():
  G4EmParameters* params = G4EmParameters::Instance();
  params->SetDeexActiveRegion("wallregion", true, false, false);
  params->AddPhysics("wallregion", "G4EmStandard");

  params->SetDeexActiveRegion("Hires", true, true, true);
  params->SetLowestMuHadEnergy(0);
  params->SetLowestElectronEnergy(10*eV);
  params->AddPhysics("Hires", "G4EmStandard_opt4");
  params->Dump();

Both of the Dump calls give the same output:

=======================================================================
======                 Atomic Deexcitation Parameters          ========
=======================================================================
Fluorescence enabled                               1
Fluorescence Bearden data files enabled            0
Auger electron production enabled                  0
Auger cascade enabled                              0
PIXE atomic de-excitation enabled                  0
De-excitation module ignores cuts                  0
Type of PIXE cross section for hadrons             Empirical
Type of PIXE cross section for e+-                 Livermore

That’s what I expect. Great! But a few lines later in the output from initializing the run, I get

### ===  Deexcitation model UAtomDeexcitation is activated for 4 regions:
          DefaultRegionForTheWorld  0  0  0
          Hires  1  0  0
          cryoregion  0  0  0
          wallregion  1  0  0
### ===  Auger cascade flag: 1
### ===  Ignore cuts flag:   1

So something has turned on Auger cascades and set deexcitation to ignore cuts! AND the flags I gave to enable Auger and PIXE in the Hires region were apparently lost somewhere. Further down, I get

=======================================================================
======       Radioactive Decay Physics Parameters              ========
=======================================================================
Max life time                                     1.4427e+06 ps
Internal e- conversion flag                       1
Stored internal conversion coefficients           1
Enable correlated gamma emission                  0
Max 2J for sampling of angular correlations       10
Atomic de-excitation enabled                      1
Auger electron emission enabled                   1
Auger cascade enabled                             1
Check EM cuts disabled for atomic de-excitation   1
Use Bearden atomic level energies                 0
=======================================================================

further confirming that my settings have been overridden. And to confirm again, I put /process/em/printParameters right before /run/beamOn, and I get

=======================================================================
======                 Atomic Deexcitation Parameters          ========
=======================================================================
Fluorescence enabled                               1
Fluorescence Bearden data files enabled            0
Auger electron production enabled                  1
Auger cascade enabled                              1
PIXE atomic de-excitation enabled                  0
De-excitation module ignores cuts                  1
Type of PIXE cross section for hadrons             Empirical
Type of PIXE cross section for e+-                 Livermore

And unsurprisingly if I put Pb210 primaries in the wallregion, I get a bunch of Auger particles:

    :----- List of secondaries ----------------
G4WT1 >            Bi210:  energy =0.1158 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 373.1 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 55.57 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 29.92 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 12.88 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 29.92 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 52.38 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 106.3 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy =   175 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 244.4 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy =   309 eV   time =3.26e+08 s 
G4WT1 >               e-:  energy = 2.586 keV  time =3.26e+08 s 
G4WT1 >               e-:  energy = 42.53 keV  time =3.26e+08 s 
G4WT1 >     :------------------------------------------

Even worse, if I call /process/em/deexcitationIgnoreCut false in my macro after initialization, I still get these. I have to explicitly say /process/em/auger false. I can’t find any command to make the radioactive decay emissions obey cuts.

Summary

  • How do I prevent my options from being overriden? If there’s no way to set an option before initialization that will stick, is there a hook somewhere that I can add code to be called post-initialization? I really don’t want to tell my users “you have to add these 5 lines to every macro that you run after /run/initialize to make it work”.
  • Is deexcitation control by region actually possible? What is the correct recipe?

Captura de Pantalla 2021-03-24 a la(s) 19.41.34

Hello
I was reviewing the Geant4 atomic de-excitation model to implement it in a crystalline compound. Aiming to generate from protons a fluorecence process.

I am very concerned about the region where the deexcitation is generated, as you show in the image. My question is:

How do I associate the region where I want the deexcitation to exist? Do I use the solid, physical volume or do I use the logical volume?

And the second question is:

How do you make the call to the physical list to use inside the “params” since you do it with a string variable?

Is it necessary to add the physics.hh corresponding to these physics lists?

Captura de Pantalla 2021-03-24 a la(s) 19.56.59

Here I show the conditions I use in my macro commands for de-excitation.

Are they well applied to both geometries?

and the other thing is that I only need fluorescence processes, should I activate pixe and fluo? because if I activate only fluo I don’t get tracks associated to gammas or electrons, only the proton hioni steps.

Thank you very much for your help.

Hello,

“wallreagion” should be G4Region name. In geometry description you should create G4Region and attach to it needed logical volume. A simple example : $G4INSTALL/examples/extended/electromagnetic/TestEm8

VI

Thank you very much civanch

Wow interesting

But I have a question, is the emission spectrum that comes from flourescence, is it in the visible or is it totally dependent on PIXE, i.e. X-Ray emission only?