diff --git a/doc/musrSim.pdf b/doc/musrSim.pdf index f2c8462..26e1340 100644 Binary files a/doc/musrSim.pdf and b/doc/musrSim.pdf differ diff --git a/doc/musrSim.tex b/doc/musrSim.tex index ec1e749..f3d9efc 100644 --- a/doc/musrSim.tex +++ b/doc/musrSim.tex @@ -620,6 +620,20 @@ Three special volumes ``Target, M0, M1 and M2''. The five last parameters correspond to the Geant4 methods ``SetMaxAllowedStep'', ``SetUserMaxTrackLength'', ``SetUserMaxTime'', ``SetUserMinEkine'' and ``SetUserMinRange''. + {\bf NOTE THAT G4StepLimiter AND/OR G4UserSpecialCuts HAS TO BE DEFINED FOR THE + REQUIRED PARTICLE TYPES BEFORE CALLING THIS COMMAND!}\\ + (E.g.:\ ``/musr/command process addProcess mu+ G4StepLimiter -1 -1 5'')\\ + See chapter ``5.7. User Limits'' (namely ``5.7.2. Processes co-working with G4UserLimits'') + of the Geant User Manual for more details about this issue. + + The user can set G4UserLimits to logical volume and/or to a region. + {\bf At the moment, ``/musr/command SetUserLimits'' in musrSim supports the G4UserLimits + in logical volumes only, not in the G4Regions.} + User limits assigned to logical volume do not propagate to daughter volumes, + while User limits assigned to region propagate to daughter volumes unless + daughters belong to another region. If both logical volume and associated + region have user limits, those of logical volume win. + \item{\bf /musr/command storeOnlyEventsWithHits false}\\ By default, only the events in which at least one hit in an active diff --git a/src/musrPhysicsList.cc b/src/musrPhysicsList.cc index d9cd25e..00a3283 100644 --- a/src/musrPhysicsList.cc +++ b/src/musrPhysicsList.cc @@ -42,6 +42,9 @@ // #include "musrParameters.hh" #include "musrErrorMessage.hh" +// cks 2009-06-08 G4StepLimiter and/or G4UserSpecialCuts are needed to activate the "G4UserLimits" +#include "G4StepLimiter.hh" +#include "G4UserSpecialCuts.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -296,6 +299,9 @@ void musrPhysicsList::ConstructEM() else if (stringProcessName=="G4MuIonisation") pManager->AddProcess(new G4MuIonisation,nr1,nr2,nr3); else if (stringProcessName=="G4MuBremsstrahlung") pManager->AddProcess(new G4MuBremsstrahlung,nr1,nr2,nr3); else if (stringProcessName=="G4MuPairProduction") pManager->AddProcess(new G4MuPairProduction,nr1,nr2,nr3); + // cks 2009-06-08 G4StepLimiter and/or G4UserSpecialCuts are needed to activate the "G4UserLimits" + else if (stringProcessName=="G4StepLimiter") pManager->AddProcess(new G4StepLimiter,nr1,nr2,nr3); + else if (stringProcessName=="G4UserSpecialCuts") pManager->AddProcess(new G4UserSpecialCuts,nr1,nr2,nr3); // else if (stringProcessName=="G4DecayWithSpin") pManager->AddProcess(new G4DecayWithSpin,nr1,nr2,nr3); // else if (stringProcessName=="G4hIonisation") pManager->AddProcess(new G4hIonisation,nr1,nr2,nr3); // else if (stringProcessName=="G4hLowEnergyIonisation") pManager->AddProcess(new G4hLowEnergyIonisation,nr1,nr2,nr3);