Import Geant4 10.2.0 source tree
This commit is contained in:
@@ -81,7 +81,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
rangeCmd->SetGuidance("Enable/disable CSDA range calculation");
|
||||
rangeCmd->SetParameterName("range",true);
|
||||
rangeCmd->SetDefaultValue(false);
|
||||
rangeCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
rangeCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
lpmCmd = new G4UIcmdWithABool("/process/eLoss/LPM",this);
|
||||
lpmCmd->SetGuidance("Enable/disable LPM effect calculation");
|
||||
@@ -113,12 +113,24 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
deCmd->SetDefaultValue(false);
|
||||
deCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
dirFluoCmd = new G4UIcmdWithABool("/process/em/fluoBearden",this);
|
||||
dirFluoCmd->SetGuidance("Enable/disable usage of Bearden fluorescence files");
|
||||
dirFluoCmd->SetParameterName("fluoBeardenFlag",true);
|
||||
dirFluoCmd->SetDefaultValue(false);
|
||||
dirFluoCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
auCmd = new G4UIcmdWithABool("/process/em/auger",this);
|
||||
auCmd->SetGuidance("Enable/disable Auger electrons production");
|
||||
auCmd->SetParameterName("augerFlag",true);
|
||||
auCmd->SetDefaultValue(false);
|
||||
auCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
auCascadeCmd = new G4UIcmdWithABool("/process/em/augerCascade",this);
|
||||
auCascadeCmd->SetGuidance("Enable/disable simulation of cascade of Auger electrons");
|
||||
auCascadeCmd->SetParameterName("augerCascadeFlag",true);
|
||||
auCascadeCmd->SetDefaultValue(false);
|
||||
auCascadeCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
pixeCmd = new G4UIcmdWithABool("/process/em/pixe",this);
|
||||
pixeCmd->SetGuidance("Enable/disable PIXE simulation");
|
||||
pixeCmd->SetParameterName("pixeFlag",true);
|
||||
@@ -146,7 +158,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
catCmd = new G4UIcmdWithABool("/process/msc/DisplacementBeyondSafety",this);
|
||||
catCmd->SetGuidance("Enable/disable displacement at geometry boundary");
|
||||
catCmd->SetParameterName("cat",true);
|
||||
catCmd->SetDefaultValue(true);
|
||||
catCmd->SetDefaultValue(false);
|
||||
catCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
delCmd = new G4UIcmdWithABool("/process/eLoss/UseAngularGenerator",this);
|
||||
@@ -155,6 +167,12 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
delCmd->SetDefaultValue(false);
|
||||
delCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
mottCmd = new G4UIcmdWithABool("/process/msc/UseMottCorrection",this);
|
||||
mottCmd->SetGuidance("Enable usage of Mott corrections for e- elastic scattering");
|
||||
mottCmd->SetParameterName("mott",true);
|
||||
mottCmd->SetDefaultValue(false);
|
||||
mottCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
minSubSecCmd = new G4UIcmdWithADouble("/process/eLoss/minsubsec",this);
|
||||
minSubSecCmd->SetGuidance("Set the ratio subcut/cut ");
|
||||
minSubSecCmd->SetParameterName("rcmin",true);
|
||||
@@ -178,6 +196,18 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
cenCmd->SetUnitCategory("Energy");
|
||||
cenCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
lowEnCmd = new G4UIcmdWithADoubleAndUnit("/process/em/lowestElectronEnergy",this);
|
||||
lowEnCmd->SetGuidance("Set the lowest kinetic energy for e+-");
|
||||
lowEnCmd->SetParameterName("elow",true);
|
||||
lowEnCmd->SetUnitCategory("Energy");
|
||||
lowEnCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
lowhEnCmd = new G4UIcmdWithADoubleAndUnit("/process/em/lowestMuHadEnergy",this);
|
||||
lowhEnCmd->SetGuidance("Set the lowest kinetic energy for muons and hadrons");
|
||||
lowhEnCmd->SetParameterName("elowh",true);
|
||||
lowhEnCmd->SetUnitCategory("Energy");
|
||||
lowhEnCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
lllCmd = new G4UIcmdWithADouble("/process/eLoss/linLossLimit",this);
|
||||
lllCmd->SetGuidance("Set linearLossLimit parameter");
|
||||
lllCmd->SetParameterName("linlim",true);
|
||||
@@ -208,12 +238,19 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
angCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
frCmd = new G4UIcmdWithADouble("/process/msc/RangeFactor",this);
|
||||
frCmd->SetGuidance("Set RangeFactor parameter for msc processes");
|
||||
frCmd->SetGuidance("Set RangeFactor for msc processes of e+-");
|
||||
frCmd->SetParameterName("Fr",true);
|
||||
frCmd->SetRange("Fr>0");
|
||||
frCmd->SetDefaultValue(0.04);
|
||||
frCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fr1Cmd = new G4UIcmdWithADouble("/process/msc/RangeFactorMuHad",this);
|
||||
fr1Cmd->SetGuidance("Set RangeFactor for msc processes of muons/hadrons");
|
||||
fr1Cmd->SetParameterName("Fr1",true);
|
||||
fr1Cmd->SetRange("Fr>0");
|
||||
fr1Cmd->SetDefaultValue(0.2);
|
||||
fr1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fgCmd = new G4UIcmdWithADouble("/process/msc/GeomFactor",this);
|
||||
fgCmd->SetGuidance("Set GeomFactor parameter for msc processes");
|
||||
fgCmd->SetParameterName("Fg",true);
|
||||
@@ -265,7 +302,61 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
mscCmd = new G4UIcmdWithAString("/process/msc/StepLimit",this);
|
||||
mscCmd->SetGuidance("Set msc step limitation type");
|
||||
mscCmd->SetParameterName("StepLim",true);
|
||||
mscCmd->SetCandidates("Minimal UseSafety UseSafetyPlus UseDistanceToBoundary");
|
||||
mscCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
msc1Cmd = new G4UIcmdWithAString("/process/msc/StepLimitMuHad",this);
|
||||
msc1Cmd->SetGuidance("Set msc step limitation type for muons/hadrons");
|
||||
msc1Cmd->SetParameterName("StepLim1",true);
|
||||
msc1Cmd->SetCandidates("fMinimal fUseSafety fUseSafetyPlus fUseDistanceToBoundary");
|
||||
msc1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
pixeXsCmd = new G4UIcmdWithAString("/process/em/pixeXSmodel",this);
|
||||
pixeXsCmd->SetGuidance("The name of PIXE cross section");
|
||||
pixeXsCmd->SetParameterName("pixeXS",true);
|
||||
pixeXsCmd->SetCandidates("ECPSSR_Analytical Empirical ECPSSR_FormFactor");
|
||||
pixeXsCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
pixeeXsCmd = new G4UIcmdWithAString("/process/em/pixeElecXSmodel",this);
|
||||
pixeeXsCmd->SetGuidance("The name of PIXE cross section for electron");
|
||||
pixeeXsCmd->SetParameterName("pixeEXS",true);
|
||||
pixeeXsCmd->SetCandidates("ECPSSR_Analytical Empirical Livermore Penelope");
|
||||
pixeeXsCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
paiCmd = new G4UIcommand("/process/em/AddPAIRegion",this);
|
||||
paiCmd->SetGuidance("Activate PAI in the G4Region.");
|
||||
paiCmd->SetGuidance(" partName : particle name (default - all)");
|
||||
paiCmd->SetGuidance(" regName : G4Region name");
|
||||
paiCmd->SetGuidance(" paiType : PAI, PAIphoton");
|
||||
|
||||
G4UIparameter* part = new G4UIparameter("partName",'s',false);
|
||||
paiCmd->SetParameter(part);
|
||||
|
||||
G4UIparameter* pregName = new G4UIparameter("regName",'s',false);
|
||||
paiCmd->SetParameter(pregName);
|
||||
|
||||
G4UIparameter* ptype = new G4UIparameter("type",'s',false);
|
||||
paiCmd->SetParameter(ptype);
|
||||
|
||||
meCmd = new G4UIcmdWithAString("/process/em/AddMicroElecRegion",this);
|
||||
meCmd->SetGuidance("Activate MicroElec model in the G4Region");
|
||||
meCmd->SetParameterName("MicroElec",true);
|
||||
meCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
dnaCmd = new G4UIcommand("/process/em/AddDNARegion",this);
|
||||
dnaCmd->SetGuidance("Activate DNA in the G4Region.");
|
||||
dnaCmd->SetGuidance(" regName : G4Region name");
|
||||
dnaCmd->SetGuidance(" dnaType : opt0, opt1, opt2");
|
||||
|
||||
G4UIparameter* regName = new G4UIparameter("regName",'s',false);
|
||||
dnaCmd->SetParameter(regName);
|
||||
|
||||
G4UIparameter* type = new G4UIparameter("type",'s',false);
|
||||
dnaCmd->SetParameter(type);
|
||||
|
||||
dumpCmd = new G4UIcommand("/process/em/printParameters",this);
|
||||
dumpCmd->SetGuidance("Print all EM parameters.");
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -283,24 +374,30 @@ G4EmParametersMessenger::~G4EmParametersMessenger()
|
||||
delete rsCmd;
|
||||
delete aplCmd;
|
||||
delete deCmd;
|
||||
delete dirFluoCmd;
|
||||
delete auCmd;
|
||||
delete auCascadeCmd;
|
||||
delete pixeCmd;
|
||||
delete dcutCmd;
|
||||
delete latCmd;
|
||||
delete mulatCmd;
|
||||
delete catCmd;
|
||||
delete delCmd;
|
||||
delete mottCmd;
|
||||
|
||||
delete minSubSecCmd;
|
||||
delete minEnCmd;
|
||||
delete maxEnCmd;
|
||||
delete cenCmd;
|
||||
delete lowEnCmd;
|
||||
delete lowhEnCmd;
|
||||
delete lllCmd;
|
||||
delete brCmd;
|
||||
delete labCmd;
|
||||
delete mscfCmd;
|
||||
delete angCmd;
|
||||
delete frCmd;
|
||||
delete fr1Cmd;
|
||||
delete fgCmd;
|
||||
delete skinCmd;
|
||||
|
||||
@@ -312,12 +409,21 @@ G4EmParametersMessenger::~G4EmParametersMessenger()
|
||||
delete ver2Cmd;
|
||||
|
||||
delete mscCmd;
|
||||
delete msc1Cmd;
|
||||
|
||||
delete pixeXsCmd;
|
||||
delete pixeeXsCmd;
|
||||
|
||||
delete paiCmd;
|
||||
delete meCmd;
|
||||
delete dnaCmd;
|
||||
delete dumpCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
G4String newValue)
|
||||
{
|
||||
G4bool physicsModified = false;
|
||||
if (command == flucCmd) {
|
||||
@@ -325,7 +431,6 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
physicsModified = true;
|
||||
} else if (command == rangeCmd) {
|
||||
theParameters->SetBuildCSDARange(rangeCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == lpmCmd) {
|
||||
theParameters->SetLPM(lpmCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -334,14 +439,21 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
physicsModified = true;
|
||||
} else if (command == rsCmd) {
|
||||
theParameters->SetUseCutAsFinalRange(rsCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == aplCmd) {
|
||||
theParameters->SetApplyCuts(aplCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == deCmd) {
|
||||
theParameters->SetFluo(deCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == dirFluoCmd) {
|
||||
theParameters->SetBeardenFluoDir(dirFluoCmd->GetNewBoolValue(newValue));
|
||||
} else if (command == auCmd) {
|
||||
theParameters->SetAuger(auCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == auCascadeCmd) {
|
||||
theParameters->SetAugerCascade(auCascadeCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == pixeCmd) {
|
||||
theParameters->SetPixe(pixeCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -357,9 +469,10 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
} else if (command == catCmd) {
|
||||
theParameters->SetLatDisplacementBeyondSafety(catCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
|
||||
} else if (command == catCmd) {
|
||||
theParameters->SetLatDisplacementBeyondSafety(catCmd->GetNewBoolValue(newValue));
|
||||
} else if (command == delCmd) {
|
||||
theParameters->ActivateAngularGeneratorForIonisation(delCmd->GetNewBoolValue(newValue));
|
||||
} else if (command == mottCmd) {
|
||||
theParameters->SetUseMottCorrection(mottCmd->GetNewBoolValue(newValue));
|
||||
|
||||
} else if (command == minSubSecCmd) {
|
||||
theParameters->SetMinSubRange(minSubSecCmd->GetNewDoubleValue(newValue));
|
||||
@@ -372,12 +485,21 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
} else if (command == cenCmd) {
|
||||
theParameters->SetMaxEnergyForCSDARange(cenCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == lowEnCmd) {
|
||||
theParameters->SetLowestElectronEnergy(lowEnCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == lowhEnCmd) {
|
||||
theParameters->SetLowestMuHadEnergy(lowhEnCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == lllCmd) {
|
||||
theParameters->SetLinearLossLimit(lllCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == brCmd) {
|
||||
theParameters->SetBremsstrahlungTh(brCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == labCmd) {
|
||||
theParameters->SetLambdaFactor(labCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == mscfCmd) {
|
||||
theParameters->SetFactorForAngleLimit(mscfCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -387,6 +509,9 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
} else if (command == frCmd) {
|
||||
theParameters->SetMscRangeFactor(frCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == fr1Cmd) {
|
||||
theParameters->SetMscMuHadRangeFactor(fr1Cmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == fgCmd) {
|
||||
theParameters->SetMscGeomFactor(fgCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -410,7 +535,7 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
} else if (command == ver2Cmd) {
|
||||
theParameters->SetWorkerVerbose(ver2Cmd->GetNewIntValue(newValue));
|
||||
|
||||
} else if (command == mscCmd) {
|
||||
} else if (command == mscCmd || command == msc1Cmd) {
|
||||
G4MscStepLimitType msctype = fUseSafety;
|
||||
if(newValue == "Minimal") {
|
||||
msctype = fMinimal;
|
||||
@@ -422,11 +547,35 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
msctype = fUseSafetyPlus;
|
||||
} else {
|
||||
G4cout << "### G4EmParametersMessenger WARNING: StepLimit type <"
|
||||
<< newValue << "> unknown!" << G4endl;
|
||||
<< newValue << "> unknown!" << G4endl;
|
||||
return;
|
||||
}
|
||||
theParameters->SetMscStepLimitType(msctype);
|
||||
if (command == mscCmd) {
|
||||
theParameters->SetMscStepLimitType(msctype);
|
||||
} else {
|
||||
theParameters->SetMscMuHadStepLimitType(msctype);
|
||||
}
|
||||
physicsModified = true;
|
||||
} else if (command == pixeXsCmd) {
|
||||
theParameters->SetPIXECrossSectionModel(newValue);
|
||||
physicsModified = true;
|
||||
} else if (command == pixeeXsCmd) {
|
||||
theParameters->SetPIXEElectronCrossSectionModel(newValue);
|
||||
physicsModified = true;
|
||||
} else if (command == paiCmd) {
|
||||
G4String s1(""),s2(""),s3("");
|
||||
std::istringstream is(newValue);
|
||||
is >> s1 >> s2 >> s3;
|
||||
theParameters->AddPAIModel(s1, s2, s3);
|
||||
} else if (command == meCmd) {
|
||||
theParameters->AddMicroElec(newValue);
|
||||
} else if (command == dnaCmd) {
|
||||
G4String s1(""),s2("");
|
||||
std::istringstream is(newValue);
|
||||
is >> s1 >> s2;
|
||||
theParameters->AddDNA(s1, s2);
|
||||
} else if (command == dumpCmd) {
|
||||
theParameters->Dump();
|
||||
}
|
||||
if(physicsModified) {
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified");
|
||||
|
||||
Reference in New Issue
Block a user