Some issue or need clarification about the Geant3 and Gean4 energy loss of the Delta electrons

Geant4 Version: Geant4 11.0.3
Operating System: Ubuntu

Hello @ivana ,

I am using Geant4 through VMC in CBM-ROOT. I need help understanding a few things that look a bit strange.

I am transporting the Ni ions on the Ni target through Geant3 and Geant4 and comparing the energy loss distribution for the Delta electron generated from a target and given a MC point on the active silicon sensors of thickness 320 microns.

Below you can see the Geant 3 and Geant 4 settings I am using in the macro:

CbmGeant3Settings* geant3Settings = new CbmGeant3Settings();  // Directly allocate the object

CbmGeant4Settings geant4Settings;

if (engine == kGeant3) {
    TVirtualMC* vmc = TVirtualMC::GetMC();
    if (vmc) {

     geant3Settings->Init(vmc);

     TGeant3* vmcg3 = dynamic_cast<TGeant3*>(vmc);
      
      // Set Geant3 physics processes
      vmcg3->SetProcess("HADR", 1);
      vmcg3->SetProcess("PAIR", 1);
      vmcg3->SetProcess("COMP", 1);
      vmcg3->SetProcess("PHOT", 1);
      vmcg3->SetProcess("PFIS", 0);
      vmcg3->SetProcess("DRAY", 1);
      vmcg3->SetProcess("ANNI", 1);
      vmcg3->SetProcess("BREM", 1);
      vmcg3->SetProcess("MUNU", 1);
      vmcg3->SetProcess("DCAY", 1);
      vmcg3->SetProcess("LOSS", 1);
      vmcg3->SetProcess("MULS", 1);

      // Set Geant3 physics cuts (in GeV) default is 1.0E-3 GeV translates to 1 MeV
      double Energy_Cut = 1e-3;
      vmcg3->SetCut("CUTGAM", Energy_Cut);
      vmcg3->SetCut("CUTELE", Energy_Cut);
      vmcg3->SetCut("CUTNEU", Energy_Cut);
      vmcg3->SetCut("CUTHAD", Energy_Cut);
      vmcg3->SetCut("CUTMUO", Energy_Cut);
      vmcg3->SetCut("BCUTE", Energy_Cut);
      vmcg3->SetCut("BCUTM", Energy_Cut);
      vmcg3->SetCut("DCUTE", Energy_Cut);
      vmcg3->SetCut("DCUTM", Energy_Cut);
      vmcg3->SetCut("PPCUTM", Energy_Cut);
      vmcg3->SetCut("TOFMAX", 1.0);  // in seconds, Dault is 1.0
      
    }
    // Optional: enable detailed transport debugging for a range of events
    geant3Settings->SetDebugOutput(kFALSE, 0, 1);
} 
  else if (engine == kGeant4) { 
 geant4Settings.SetG4RunConfig("geomRoot","QGSP_BERT_EMV+optical","stepLimiter+specialCuts");
    geant4Settings.SetMaximumNumberOfSteps(10000);

    geant4Settings.SetProcessPairProduction(1);           // Default: 1 (ON)
    geant4Settings.SetProcessComptonScattering(1);        // Default: 1 (ON)
    geant4Settings.SetProcessPhotoEffect(1);              // Default: 1 (ON)
    geant4Settings.SetProcessPhotoFission(0);             // Default: 0 (OFF)
    geant4Settings.SetProcessDeltaRay(1);                 // Default: 1 (ON)
    geant4Settings.SetProcessAnnihilation(1);             // Default: 1 (ON)
    geant4Settings.SetProcessBremsstrahlung(1);           // Default: 1 (ON)
    geant4Settings.SetProcessHadronicInteraction(1);      // Default: 1 (ON)
    geant4Settings.SetProcessMuonNuclearInteraction(1);   // Default: 1 (ON)
    geant4Settings.SetProcessDecay(1);                    // Default: 1 (ON)
    geant4Settings.SetProcessEnergyLossModel(1);          // Default: 1 (Restricted fluctuations)
    geant4Settings.SetProcessMultipleScattering(1);       // Default: 1 (Moliere)
    
    double EnergyCut = 1e-3; // Set your desired value here in GeV
    std::cout << "  VMC Config: Setting ALL energy cuts to " << EnergyCut << " GeV." << std::endl;

    geant4Settings.SetEnergyCutGammas(EnergyCut);
    geant4Settings.SetEnergyCutElectrons(EnergyCut);
    geant4Settings.SetEnergyCutNeutralHadrons(EnergyCut);
    geant4Settings.SetEnergyCutChargedHadrons(EnergyCut);
    geant4Settings.SetEnergyCutMuons(EnergyCut);
    geant4Settings.SetEnergyCutElectronBremsstrahlung(EnergyCut);
    geant4Settings.SetEnergyCutMuonHadronBremsstrahlung(EnergyCut);
    geant4Settings.SetEnergyCutElectronDeltaRay(EnergyCut);
    geant4Settings.SetEnergyCutMuonDeltaRay(EnergyCut);
    geant4Settings.SetEnergyCutMuonPairProduction(EnergyCut);
    geant4Settings.SetTimeCutTof(1.0); // Set your desired value here in seconds, Dafault is 1.0
    
    TVirtualMC* vmc = TVirtualMC::GetMC();
    if (vmc){

      geant4Settings.Init(vmc);  // Initialize before applying commands

      TGeant4* vmcg4 = dynamic_cast<TGeant4*>(vmc);
      if (vmcg4) {
        std::vector<std::string> g4Commands = {
          "/process/em/fluo true",
          "/process/em/auger true",
          "/process/em/augerCascade false",
          "/process/em/pixe false"
        };

        for (const auto& cmd : g4Commands) {
          std::cout << "Applying G4 UI command: " << cmd << std::endl;
          vmcg4->ProcessGeantCommand(cmd.c_str());  // Applies the Geant4 command
        }
        
      }
    }

  
  }

Now I have a default energy cut of 1 MeV in both cases, I do not know how, in Geant4, through VMC, it translates into range cuts.

  1. How can I use range cuts in the case of Geant4 instead of the energy cut?

  2. I have produced the energy loss for the delta electron both in Geant3, see image below (Left histogram for Geant3 ),

It follows the Landau distribution, but
I see that at 0.12 MeV or 120 keV, there is a peak appearing, and then again following the trend.

However, in the case of Geant4 (Right Histogram), in all cases of EM model, emStandard, EMV, EMX, EMY, EMZ it follows the Landau distribution and there is no peak at 0.12 MeV or 120 keV, which is the case in Geant3?

So my question is, why is there a peak in Geant 3 at 0.12 MeV? What is the physics behind it, or is it an artifact of the model being used in Geant3?

Another thing which I would like to understand in the case of Gean4 is that

At 1 MeV, incase of the EMV (blue color) and EMX(Red color), there is a sharp peak and then a drop. However, in the case of the Standard (Black color), EMY(Green color), EMX(Orange color), if you look at them, then at 1 MeV there is a peak and then a kind of step function behaviour and then drops.

What is the reason behind it, and why is it not happening in EMV and EMX ElectroMagnetic process models?

Is it related to the electron-positron annihilation?

thank you.
With best regards
Mehul


Hello Mehul,

Please, see the Geant4 VMC documentation for understanding how the cuts are applied when using VMC:

I see that at 0.12 MeV or 120 keV, there is a peak appearing, and then again following the trend.

I don’t have an idea about the reason of the peak in the Geant3 simulation. I suggest to try to run simulation with lowering the cuts to see if this is a side-effect of the cut setting.

At 1 MeV, incase of the EMV (blue color) and EMX(Red color), there is a sharp peak and then a drop. However, in the case of the Standard (Black color), EMY(Green color), EMX(Orange color), if you look at them, then at 1 MeV there is a peak and then a kind of step function behaviour and then drops.

When using the EMV or EMX physics list options, the low-energy π‘’βˆ’ are cut out (and so not produced as it is the case for other EM options), and so the peak originated by 1 MeV tracking cut is much lower.

See more details about the EM options in the Geant4 physics lists documentation:

Best regards,