Need example with geometry change for multithreading app

Hello all,

I am confused by lack of an official example which demonstrate correct way to change detector geometry between run for a multithreading application. What object should be persistent and re assigned between runs and which should be cleaned and recreated again…

For example, I have the geometry with few sensitive detectors, user regions with different cuts, and a relatively complex geometry where I should recalculate subtraction volumes between runs… as for me it is easiest way to erase all and recreate the World again with new dimensions. At the same time I see the following comments in G4 Forum:

the best advice : do not reinitialized geometry, especially in the MT mode. …
We removed re-initialization from many EM examples already.|

So, does any example exist which demonstrate the best practice?

Sincerely Yours,