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, 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. 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, % There is one special process, combined from G4MultipleScattering and G4CoulombScattering,
% defined by the following command:\\ % 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}]}\\ %{\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; if (strcmp(tmpString1,"process")!=0) continue;
float tmpCutValue; 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]; char charParticleName[100], charProcessName[100];
sscanf(&line[0],"%*s %*s %s %s %s",tmpString2,charParticleName,charProcessName); sscanf(&line[0],"%*s %*s %s %s %s",tmpString2,charParticleName,charProcessName);
G4cout<<"musrPhysicsList: Defining process "<<charProcessName<<" for "<<charParticleName<<G4endl; 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) { else if (strcmp(tmpString2,"cutForGamma")==0) {
sscanf(&line[0],"%*s %*s %*s %g",&tmpCutValue); sscanf(&line[0],"%*s %*s %*s %g",&tmpCutValue);
cutForGamma = tmpCutValue; cutForGamma = tmpCutValue;