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:
parent
99f7935da9
commit
0de813e1f3
BIN
doc/musrSim.pdf
BIN
doc/musrSim.pdf
Binary file not shown.
@ -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}]}\\
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user