7.7.2011 - Kamil Sedlak

Impementation of "/musr/command process SetLossFluctuations_OFF ..." 
command (allows one to swith the statistical fluctuations in the
ionisation losses).
This commit is contained in:
sedlak 2011-07-07 14:08:45 +00:00
parent 99f7935da9
commit 0de813e1f3
3 changed files with 27 additions and 1 deletions

Binary file not shown.

View File

@ -566,6 +566,11 @@ care.
See the file musrPhysicsList.cc for the list of defined processes (e.g. G4eMultipleScattering,
G4eIonisation, ...) and Geant4 manual for the detail description of the processes.
\item{\bf /musr/command process SetLossFluctuations\_OFF \emph{particle} \emph{process}}\\
Switches off the statistical fluctuations in the ionisation losses. Can be usefull
for some technical studies. Presently works only for \emph{G4eIonisation} and
for \emph{G4MuIonisation}.
% There is one special process, combined from G4MultipleScattering and G4CoulombScattering,
% defined by the following command:\\
%{\bf /musr/command process addProcess \emph{particle} MultipleAndCoulombScattering \emph{ordAtRestDoIt} \emph{ordAlongSteptDoIt} \emph{ordPostStepDoIt} \emph{G4Region1} [\emph{G4Region2}] [\emph{G4Region3}]}\\

View File

@ -296,7 +296,8 @@ void musrPhysicsList::ConstructEM()
if (strcmp(tmpString1,"process")!=0) continue;
float tmpCutValue;
if ((strcmp(tmpString2,"addProcess")==0)||(strcmp(tmpString2,"addDiscreteProcess")==0)||(strcmp(tmpString2,"addModel")==0)) {
if ((strcmp(tmpString2,"addProcess")==0)||(strcmp(tmpString2,"addDiscreteProcess")==0)||
(strcmp(tmpString2,"addModel")==0)||(strcmp(tmpString2,"SetLossFluctuations_OFF")==0)) {
char charParticleName[100], charProcessName[100];
sscanf(&line[0],"%*s %*s %s %s %s",tmpString2,charParticleName,charProcessName);
G4cout<<"musrPhysicsList: Defining process "<<charProcessName<<" for "<<charParticleName<<G4endl;
@ -452,8 +453,28 @@ void musrPhysicsList::ConstructEM()
}
else if (strcmp(tmpString2,"SetLossFluctuations_OFF")==0) {
G4ProcessTable* processTable = G4ProcessTable::GetProcessTable();
if (strcmp(charProcessName,"G4eIonisation")==0) {
G4cout<<"musrPhysicsList.cc: Switching off loss fluctuations for "<<charParticleName<<" in "<<charProcessName<<G4endl;
G4eIonisation* mmm = (G4eIonisation*) processTable->FindProcess("eIoni",particleDefinition);
mmm->SetLossFluctuations(false);
}
else if (strcmp(charProcessName,"G4MuIonisation")==0) {
G4cout<<"musrPhysicsList.cc: Switching off loss fluctuations for "<<charParticleName<<" in "<<charProcessName<<G4endl;
G4MuIonisation* mmm = (G4MuIonisation*) processTable->FindProcess("muIoni",particleDefinition);
mmm->SetLossFluctuations(false);
}
else {
G4cout<<"musrPhysicsList.cc: Switching off loss fluctuations for "
<<charParticleName<<" in "<<charProcessName<<" NOT SUPPORTED YET"<<G4endl;
}
}
}
else if (strcmp(tmpString2,"cutForGamma")==0) {
sscanf(&line[0],"%*s %*s %*s %g",&tmpCutValue);
cutForGamma = tmpCutValue;