2031 LBNEDir =
new G4UIdirectory(
"/LBNE/");
2032 LBNEDir->SetGuidance(
"UI commands for detector geometry");
2034 detDir =
new G4UIdirectory(
"/LBNE/det/");
2035 detDir->SetGuidance(
"detector control");
2038 ConstructTarget =
new G4UIcmdWithABool(
"/LBNE/det/constructTarget",
this);
2045 G4UIcmdWithADoubleAndUnit(
"/LBNE/det/setBeamlineAngle",
this);
2049 UpdateCmd =
new G4UIcmdWithoutParameter(
"/LBNE/det/update",
this);
2050 UpdateCmd->SetGuidance(
"Update or Construct LBNE geometry. Same difference ");
2051 UpdateCmd->SetGuidance(
"This command MUST be applied before \"beamOn\" ");
2052 UpdateCmd->SetGuidance(
"if you changed geometrical value(s).");
2053 UpdateCmd->AvailableForStates(G4State_PreInit);
2055 ConstructCmd =
new G4UIcmdWithoutParameter(
"/LBNE/det/construct",
this);
2056 ConstructCmd->SetGuidance(
"Construct LBNE geometry. Should be one and only time ");
2057 ConstructCmd->SetGuidance(
"This command MUST be applied before \"beamOn\" ");
2058 ConstructCmd->SetGuidance(
"if you changed geometrical value(s).");
2064 ConstructSimpAbsorber->SetGuidance(
"Set geometry of Hadron Absorber. If true simulate simple version of absorber");
2074 DisableSpoiler =
new G4UIcmdWithABool(
"/LBNE/det/DisableSpoiler",
this);
2076 DisableSpoiler->SetGuidance(
"If true simulate the 2015 Sculpted absorber without the spoiler");
2078 DisableSpoiler->AvailableForStates(G4State_PreInit,G4State_Idle);
2082 DisableSculptedLayers->SetGuidance(
"If true simulate the 2015 Sculpted absorber without the sculpting on the aluminum layers");
2086 DisableMask =
new G4UIcmdWithABool(
"/LBNE/det/DisableMask",
this);
2087 DisableMask->SetParameterName(
"Remove sculpting",
true);
2088 DisableMask->SetGuidance(
"If true simulate the 2015 Sculpted absorber without the mask layers between the spoiler and core part of the absorber");
2090 DisableMask->AvailableForStates(G4State_PreInit,G4State_Idle);
2092 ExpandAlLayers =
new G4UIcmdWithABool(
"/LBNE/det/ExpandAlLayers",
this);
2093 ExpandAlLayers->SetParameterName(
"Expand Sculpted Absorber Al layers to 2.8x2.8 m",
true);
2094 ExpandAlLayers->SetGuidance(
"If true simulate the 2015 Sculpted absorber with a core region to the size of the decay pipe");
2096 ExpandAlLayers->AvailableForStates(G4State_PreInit,G4State_Idle);
2098 RemoveLayers =
new G4UIcmdWithAnInteger(
"/LBNE/det/RemoveLayers",
this);
2099 RemoveLayers->SetParameterName(
"Number of layers to remove from the downstream end of the absorber",
true);
2100 RemoveLayers->SetGuidance(
"Simulate the 2015 Sculpted absorber with fewer layers");
2102 RemoveLayers->AvailableForStates(G4State_PreInit,G4State_Idle);
2104 DwStrAbsSteelWidth =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/DwStrAbsSteelWidth",
this);
2106 DwStrAbsSteelWidth->SetGuidance(
"Define the downstream width (m) of the steel volume in the simple geometry of absorber. Default value is ...");
2113 DwStrAbsConcreteWidth->SetGuidance(
"Define the downstream width (m) of the concrete volume in the simple geometry of absorber. Default value is ...");
2118 new G4UnitDefinition(
"kiloampere" ,
"kA",
"Electric current", 1000.*CLHEP::ampere);
2120 G4UIcmdWithADoubleAndUnit(
"/LBNE/det/seHornCurrent",
this);
2122 SetHornCurrent->SetGuidance(
" The current for the horn system. (Horn1 and Horn2 are in series.");
2129 std::string aGuidance(
"The skin depth for the inner conductor. \n ");
2130 aGuidance +=
std::string(
" The default assumes infinite. Using Zarko' thesis model, \n");
2131 aGuidance +=
std::string(
" MINOS Document 5694-v1, section 5.2.4, p150 - 156 \n");
2138 for (
size_t kH=0; kH != 3; kH++) {
2139 std::ostringstream aNStrStr; aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"DeltaEccentricityIO";
2141 G4UIcmdWithADoubleAndUnit* aGUICmd =
new G4UIcmdWithADoubleAndUnit(aNStr.c_str(),
this);
2142 std::ostringstream aNGStrStr; aNGStrStr
2143 <<
"The Eccentricity between Inner/Outer conductors for Horn number " << (kH+1) <<
"\n.";
2145 aGUICmd->SetGuidance(aNGStr.c_str());
2146 aGUICmd->SetParameterName(
"SetHornxDeltaEccentricityIO",
true);
2147 aGUICmd->SetDefaultValue (0.);
2148 aGUICmd->AvailableForStates(G4State_PreInit);
2155 for (
size_t kH=0; kH != 3; kH++) {
2156 std::ostringstream aNStrStr; aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"DeltaEllipticityI";
2158 G4UIcmdWithADoubleAndUnit* aGUICmd =
new G4UIcmdWithADoubleAndUnit(aNStr.c_str(),
this);
2159 std::ostringstream aNGStrStr; aNGStrStr
2160 <<
"The Ellipticity of the Inner conductor for Horn number " << (kH+1) <<
"\n.";
2162 aGUICmd->SetGuidance(aNGStr.c_str());
2163 aGUICmd->SetParameterName(
"SetHornxDeltaEllipticityI",
true);
2164 aGUICmd->SetDefaultValue (0.);
2165 aGUICmd->AvailableForStates(G4State_PreInit);
2170 for (
size_t kH=0; kH != 3; kH++) {
2171 std::ostringstream aNStrStr;
2172 aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"CurrentMultipiler";
2174 G4UIcmdWithADouble* aGUICmd =
new G4UIcmdWithADouble(aNStr.c_str(),
this);
2175 std::ostringstream aNGStrStr; aNGStrStr
2176 <<
"A magic current amplifier to increase/decrease the current for Horn number " << (kH+1) <<
"\n.";
2178 aGUICmd->SetGuidance(aNGStr.c_str());
2179 aGUICmd->SetParameterName(
"SetHornxCurrentMultiplier",
true);
2180 aGUICmd->SetDefaultValue (1.);
2181 aGUICmd->AvailableForStates(G4State_PreInit);
2186 for (
size_t kH=0; kH != 3; kH++) {
2187 std::ostringstream aNStrStr;
2188 aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"CurrentEqualizerLongAbsLength";
2190 G4UIcmdWithADoubleAndUnit* aGUICmd =
new G4UIcmdWithADoubleAndUnit(aNStr.c_str(),
this);
2191 std::ostringstream aNGStrStr; aNGStrStr
2192 <<
"The charact. length of the decrease of the azimuthal anisotropy \n " 2193 <<
" due imperfect current equal. section for Horn number " << (kH+1) <<
"\n.";
2195 aGUICmd->SetGuidance(aNGStr.c_str());
2196 aGUICmd->SetParameterName(
"SetHornxCurrentEqualizerLongAbsLength",
true);
2197 aGUICmd->SetDefaultValue (100.);
2198 aGUICmd->AvailableForStates(G4State_PreInit);
2203 for (
size_t kH=0; kH != 3; kH++) {
2204 std::ostringstream aNStrStr;
2205 aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"CurrentEqualizerQuadAmpl";
2207 G4UIcmdWithADouble* aGUICmd =
new G4UIcmdWithADouble(aNStr.c_str(),
this);
2208 std::ostringstream aNGStrStr; aNGStrStr
2209 <<
"The amplitude of the azimuthal, quadrupolar, anisotropy \n " 2210 <<
" due imperfect current equal. section for Horn number " << (kH+1) <<
"\n.";
2212 aGUICmd->SetGuidance(aNGStr.c_str());
2213 aGUICmd->SetParameterName(
"SetHornxCurrentEqualizerQuadAmpl",
true);
2214 aGUICmd->SetDefaultValue (0.);
2215 aGUICmd->AvailableForStates(G4State_PreInit);
2220 for (
size_t kH=0; kH != 3; kH++) {
2221 std::ostringstream aNStrStr;
2222 aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"CurrentEqualizerOctAmpl";
2224 G4UIcmdWithADouble* aGUICmd =
new G4UIcmdWithADouble(aNStr.c_str(),
this);
2225 std::ostringstream aNGStrStr; aNGStrStr
2226 <<
"The amplitude of the azimuthal, quadrupolar, anisotropy \n " 2227 <<
" due imperfect current equal. section for Horn number " << (kH+1) <<
"\n.";
2229 aGUICmd->SetGuidance(aNGStr.c_str());
2230 aGUICmd->SetParameterName(
"SetHornxCurrentEqualizerOctAmpl",
true);
2231 aGUICmd->SetDefaultValue (0.);
2232 aGUICmd->AvailableForStates(G4State_PreInit);
2237 for (
size_t kH=0; kH != 3; kH++) {
2238 std::ostringstream aNStrStr;
2239 aNStrStr <<
"/LBNE/det/SetHorn" << (kH+1) <<
"CurrentEqualizerMapFileName";
2241 G4UIcmdWithAString* aGUICmd =
new G4UIcmdWithAString(aNStr.c_str(),
this);
2242 std::ostringstream aNGStrStr; aNGStrStr
2243 <<
"The file name for the field map created from a priot run, \n " 2244 <<
" related to imperfect current equal. section for Horn number " << (kH+1) <<
"\n.";
2246 aGUICmd->SetGuidance(aNGStr.c_str());
2247 aGUICmd->SetParameterName(
"SetHornxCurrentEqualizerFileName",
true);
2248 aGUICmd->SetDefaultValue(
"?");
2249 aGUICmd->AvailableForStates(G4State_PreInit);
2255 std::string aGuidance(
"The Z-location at which the perfect focusing process set the track polar angle to zero \n ");
2256 aGuidance +=
std::string(
" If this Z is > 0. , we trigger the instantaneous foucing at this Z \n");
2257 aGuidance +=
std::string(
" else, Z < 0., we trigger the instantaneous foucing at the radius of Target Canister \n");
2258 aGuidance +=
std::string(
" which, for the LBNE 1.2 MW option is 17.6 mm \n");
G4UIcmdWithADoubleAndUnit * SetHornCurrent
LBNEDetectorConstruction * LBNEDetector
G4UIcmdWithABool * ConstructTarget
std::vector< G4UIcmdWithAString * > SetFileNameFieldMapForCE
std::vector< G4UIcmdWithADoubleAndUnit * > SetHornsDeltaEccentricityIO
G4UIcmdWithoutParameter * ConstructCmd
std::vector< G4UIcmdWithADouble * > SetHornsCurrentEqualizerOctAmpl
G4UIcmdWithADoubleAndUnit * SetSkinDepthInnerRad
G4UIcmdWithADoubleAndUnit * ZCoordForPerfectFocusing
std::vector< G4UIcmdWithADoubleAndUnit * > SetHornsDeltaEllipticityI
std::vector< G4UIcmdWithADouble * > SetHornsCurrentMultiplier
G4UIcmdWithADoubleAndUnit * SetBeamlineAngle
void SetDwStrAbsSteelWidth(G4double l)
G4UIcmdWithADoubleAndUnit * DwStrAbsConcreteWidth
G4UIcmdWithABool * ExpandAlLayers
void SetDwStrAbsConcreteWidth(G4double l)
G4UIcmdWithAnInteger * RemoveLayers
std::vector< G4UIcmdWithADoubleAndUnit * > SetHornsCurrentEqualizerLongAbsLength
G4UIcmdWithABool * DisableSpoiler
G4UIcmdWithoutParameter * UpdateCmd
G4UIcmdWithABool * ConstructSculptedAbsorber
G4UIcmdWithABool * ConstructSimpAbsorber
G4UIcmdWithABool * DisableSculptedLayers
std::vector< G4UIcmdWithADouble * > SetHornsCurrentEqualizerQuadAmpl
G4UIcmdWithABool * DisableMask
G4UIcmdWithADoubleAndUnit * DwStrAbsSteelWidth