Parallel / biasing world vs. G4VModularPhysicsList

Hi everyone,
I am trying to implement importance biasing with a very simple parallel world (just a G4Box, nothing else).
My Physics list:

myPhysicsList::myPhysicsList():  G4VModularPhysicsList() {
    emPhysicsList = new G4EmPenelopePhysics();
myPhysicsList::~myPhysicsList() {  delete emPhysicsList;  }
void myPhysicsList::ConstructParticle() {  emPhysicsList->ConstructParticle();  }
void myPhysicsList::ConstructProcess() {
  emPhysicsList -> ConstructProcess();

The way I create the parallel world:

auto detector = new myDetectorConstruction();

G4String parallelName("ParallelBiasingWorld");
myParallelWorld* pdet = new myParallelWorld(parallelName);
G4GeometrySampler pgs(pdet->GetWorldVolume(),"gamma");

// Physics list
G4VModularPhysicsList* physicsList = new myPhysicsList();  // IMPORTANT LINE
physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs,parallelName));
physicsList->RegisterPhysics(new G4ParallelWorldPhysics(parallelName));

Gamma particles that penetrate the “ghost box” are not importance-sampled. However, when I change the “IMPORTANT LINE” from above to

G4VModularPhysicsList* physicsList = new FTFP_BERT();

particles get multiplied when entering the box.

What am I missing here? Thanks a lot in advance for your support :slight_smile:

from FTFP_BERT.* list, I finally got inspired in the (seemingly) right way :slight_smile:
for the record:

#ifndef myPhysicsList_h
#define myPhysicsList_h 1

#include "G4VModularPhysicsList.hh"

class myPhysicsList: public G4VModularPhysicsList {
  myPhysicsList(G4int ver = 1);
  virtual ~myPhysicsList()=default;
  virtual void SetCuts();
  myPhysicsList(const myPhysicsList &) = delete;
  myPhysicsList & operator=(const myPhysicsList &)=delete;


#include "myPhysicsList.hh"

#include "G4EmPenelopePhysics.hh"
#include "G4SystemOfUnits.hh"

myPhysicsList::myPhysicsList(G4int ver) : G4VModularPhysicsList() {
    RegisterPhysics(new G4EmPenelopePhysics(ver));

void myPhysicsList::SetCuts() {
   // ...