5 #include "G4UIdirectory.hh" 6 #include "G4UIcmdWithAString.hh" 7 #include "G4UIcmdWithABool.hh" 8 #include "G4UIcmdWithAnInteger.hh" 9 #include "G4UIcmdWithADoubleAndUnit.hh" 10 #include "G4UIcmdWithADouble.hh" 11 #include "G4UIcmdWithoutParameter.hh" 12 #include "G4UnitsTable.hh" 31 fDecayPipeLength =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/decayPipeLength",
this);
42 fDecayPipeLongPosition->SetGuidance(
"Longitudinal Position of the entrance window of the decay pipe with respect to target");
51 fDecayPipeRadius =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/decayPipeRadius",
this);
71 fDecayPipeGas =
new G4UIcmdWithAString(
"/LBNE/det/decayPipeGas",
this);
72 fDecayPipeGas->SetGuidance(
"Gas inside of the decay Pipe. Only two options so far, Air or Helium ");
86 fHorn1Length =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/Horn1Length",
this);
87 G4String guidance(
"Length of Horn1.\n ");
88 guidance +=
std::string(
" The length of the outer conductor, excludes the upstream transition inner/outer, \n");
89 guidance +=
std::string(
" and flanges with bolts. If extended by user, it is assumed that conductor are extended.. " );
90 guidance +=
std::string(
" NUMI Horn1, FNAL Drawing number 8875. 112-ME-363092 " );
91 guidance +=
std::string(
" Obsolete data card, use /LBNE/det/Horn1LongRescale instead ");
99 fHorn1InnerCondMat =
new G4UIcmdWithAString(
"/LBNE/det/Horn1InnerConductorMaterial",
this);
100 G4String guidance(
"Material for the inner conductor \n ");
101 guidance +=
std::string(
" Aluminum is the base line and default. This option should only be used \n");
102 guidance +=
std::string(
" for studying the relevance of the material budget. \n " );
103 guidance +=
std::string(
" That is, run with a fictious Horn with air or vacuum as material carrying 200kA \n " );
110 fHorn1AllCondMat =
new G4UIcmdWithAString(
"/LBNE/det/Horn1AllConductorMaterial",
this);
111 G4String guidance(
"Material for the All conductors in Horn1 (inner and outer) \n ");
112 guidance +=
std::string(
" Aluminum is the base line and default. This option should only be used \n");
113 guidance +=
std::string(
" for studying the relevance of the material budget. \n " );
114 guidance +=
std::string(
" That is, run with a fictious Horn with air or vacuum as material carrying 200kA \n " );
123 G4String guidance(
"Length of the Graphite Target.\n ");
124 guidance +=
std::string(
" Note: the length of the indiviudal fins are fixed to 2 cm. So, we will re-adjusted \n");
125 guidance +=
std::string(
" abit to get an integer number of fins. For details, see LBNE-Doc-6100 " );
132 fTargetFinWidth =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/GraphiteTargetFinWidth",
this);
133 G4String guidance(
"Width of the Graphite Target Fins.\n ");
134 guidance +=
std::string(
" For details, see LBNE-Doc-6100 " );
142 G4String guidance(
"Number of upstream fins with wings.\n ");
143 guidance +=
std::string(
" For details, see talk with Jim H., Alberto M., Nikolai M. etc... " );
151 fTargetMaterial =
new G4UIcmdWithAString(
"/LBNE/det/TargetMaterial",
this);
152 G4String guidance(
"Material for the target \n ");
153 guidance +=
std::string(
" Note: Only Beryllium, Graphite and Aluminum accepted for now.. \n");
154 guidance +=
std::string(
" The physical length of the target is left unchanged upon use of this data card. \n " );
155 guidance +=
std::string(
" Default value: graphite \n " );
163 fPlugMaterial =
new G4UIcmdWithAString(
"/LBNE/det/PlugMaterial",
this);
164 G4String guidance(
"Material for the 2n target or plug \n ");
166 " Note: If not usual materials (Beryllium, graphite.., please check that the material is defined in LBNEDetectorContruction \n");
167 guidance +=
std::string(
" The physical length of the this target is left unchanged upon use of this data card. \n " );
168 guidance +=
std::string(
" Default value: graphite \n " );
175 fTargetDensity =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/TargetDensity",
this);
176 G4String guidance(
"Density of the target. Only relevant for the graphite target. \n ");
187 G4String guidance(
"Length of the Graphite Target into the horn.\n ");
188 guidance +=
std::string(
" More specifically, the length of graphite from MCZERO to the dowstream tip of graphite. \n");
189 guidance +=
std::string(
" FNAL Drawing number 8875. 112-ME-363092 " );
190 guidance +=
std::string(
" !!! Judged too confusing, discontinued command !!!! " );
198 G4String guidance(
"Length of the Graphite Target outside the horn.\n ");
199 guidance +=
std::string(
" More specifically, the length of graphite from the most upstream point on \n ");
200 guidance +=
std::string(
" the 1rst vertical fin to MCZERO. \n");
201 guidance +=
std::string(
" FNAL Drawing number 8875. 112-ME-363092 " );
210 G4String guidance(
"Radius of the simple target.\n ");
211 guidance +=
std::string(
" Should the option UseSimpleCylindicalTarget be selected, \n ");
212 guidance +=
std::string(
" this command sets the radius of the target. \n");
213 guidance +=
std::string(
" No FNAL Drawing number referenced " );
221 G4String guidance(
"Length of the simple target.\n ");
222 guidance +=
std::string(
" Should the option UseSimpleCylindicalTarget (or UseSimpleBoxTarget be selected, \n ");
223 guidance +=
std::string(
" this command sets the length of the target. \n");
224 guidance +=
std::string(
" No FNAL Drawing number referenced " );
233 G4String guidance(
"Radius of the multi sphere target.\n ");
234 guidance +=
std::string(
" Should the option MultiSphereTargetRadius be selected, \n ");
235 guidance +=
std::string(
" this command sets the radius of the target. \n");
236 guidance +=
std::string(
" No FNAL Drawing number referenced " );
244 G4String guidance(
"If true, the NUMI-style target is replaced by a simple spherical. \n ");
245 guidance +=
std::string(
" See MultiSphereTargetLength(Height) for setting it's dimensions, \n ");
253 G4String guidance(
"Height of the simple box-like target.\n ");
254 guidance +=
std::string(
" Should the option UseSimpleBoxTarget be selected, \n ");
255 guidance +=
std::string(
" this command sets the height of the target. \n");
256 guidance +=
std::string(
" No FNAL Drawing number referenced " );
263 fSimpleTargetWidth =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/SimpleTargetWidth",
this);
264 G4String guidance(
"Width of the simple box-like target.\n ");
265 guidance +=
std::string(
" Should the option UseSimpleBoxTarget be selected, \n ");
266 guidance +=
std::string(
" this command sets the height of the target. \n");
267 guidance +=
std::string(
" No FNAL Drawing number referenced " );
275 G4String guidance(
"If true, the NUMI-style target is replaced by a simple box. \n ");
276 guidance +=
std::string(
" See SimpleTargetLengthWidth (Height) for setting it's dimensions, \n ");
284 G4String guidance(
"If true, the NUMI-style target is simply gone. \n ");
285 guidance +=
std::string(
" You got 3 pulses of beam to do your experiment, \n");
286 guidance +=
std::string(
" after which you'll have to rebuild the Hadron dump. \n ");
292 fConstructPlug =
new G4UIcmdWithABool(
"/LBNE/det/ConstructPlug",
this);
293 G4String guidance(
"If true, a plug (or second target) will be placed either in horn 1, or in horn2, (Optimized design) ");
301 G4String guidance(
"If true, a graphite plug will be placed in the beamline downstream of the neck of Horn1, in Horn1.");
308 fPlugLength =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/PlugLength",
this);
310 G4String guidance(
"Length of the beam plug.\n ");
311 guidance +=
std::string(
" Should the option ConstructPlug be selected, \n ");
321 fPlugOuterRadius =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/PlugOuterRadius",
this);
322 G4String guidance(
"Outer radius of the beam plug.\n ");
323 guidance +=
std::string(
" Should the option ConstructPlug be selected, \n");
324 guidance +=
std::string(
" this command sets the outer radius of the plug.\n");
325 guidance +=
std::string(
" It needs to be smaller than the hole in horn2, or Horn1 ");
335 fPlugInnerRadius =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/PlugInnerRadius",
this);
336 G4String guidance(
"Inner radius of the beam plug.\n ");
337 guidance +=
std::string(
" Should the option ConstructPlug be selected, \n");
338 guidance +=
std::string(
" this command sets the inner radius of the plug. \n");
339 guidance +=
std::string(
" In general a solid plus should have this set to zero, the default " );
349 fPlugZPosition =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/PlugZPosition",
this);
350 G4String guidance(
"The Z position of the beam plug.\n ");
351 guidance +=
std::string(
" Should the option ConstructPlug be selected, \n");
352 guidance +=
std::string(
" this is the shift upstream relative to the downstream end of horn2, or Horn1 if In Horn1 \n");
364 G4String guidance(
"If true, the NUMI-style target is replaced by a simple cylinder. \n ");
365 guidance +=
std::string(
" See SimpleTargetLengthWidth (Height) for setting it's dimensions, \n ");
374 G4String guidance(
"Thickness of the Beryllium cap, downstream end of the target Helium containment vessel .\n ");
375 guidance +=
std::string(
" Use to study the relevance of adding/removing material in the target \n");
385 G4String guidance(
"A ratio between the actual radii for this run over the nominal values for Horn1 \n ");
386 guidance +=
std::string(
" More specifically, all (excluding target elements in Horn1) will be rescale by \n");
387 guidance +=
std::string(
" that factor. Suggested value for modification: no more than 105 for a start!.. \n");
388 guidance +=
std::string(
" FNAL Drawing number 8875. 112-ME-363096, 363097,... " );
395 G4String guidance(
"A ratio between the actual lengths for this run over the nominal values for Horn1 \n ");
396 guidance +=
std::string(
" FNAL Drawing number 8875. 112-ME-363096, 363097,... " );
397 guidance +=
std::string(
" More specifically, all (excluding target elements in Horn1) will be rescale by \n");
398 guidance +=
std::string(
" that factor. Suggested value for modification: no more than a few % change for start!.. \n");
405 G4String guidance(
" A back door command to re-adjust the tolerance on the minimum distance \n ");
406 guidance +=
std::string(
" between the tip of the Target Helium tube and the Horn 1 inner conductor. " );
407 guidance +=
std::string(
" To be used exclusively for target misalignment studies. \n");
415 G4String guidance(
" A back door command to re-adjust the inner conductor radius \n ");
416 guidance +=
std::string(
" uspstream of the neck such that the 1 m. long target can be completly inserted . " );
417 guidance +=
std::string(
" in Horn1, to maximize the neutrino flux. \n");
418 guidance +=
std::string(
" The neck is left unchanged, so there is abrupt and unphysical change of ");
419 guidance +=
std::string(
" of the radius entering the neck. ");
427 G4String guidance(
"A ratio between the actual radii for this run over the nominal values for Horn2 \n ");
428 guidance +=
std::string(
" More specifically, all (excluding target elements in Horn2) will be rescale by \n");
429 guidance +=
std::string(
" that factor. Suggested value for modification: no more than 105 for a start!.. \n");
430 guidance +=
std::string(
" FNAL Drawing number 8875.112 MD-363383 " );
437 G4String guidance(
"The new radial coordinates will now be = radialRescale*r_old + RadialRescaleCst \n ");
438 guidance +=
std::string(
" More specifically, all (excluding target elements in Horn2) will be rescale by \n");
439 guidance +=
std::string(
" that linear function. \n");
440 guidance +=
std::string(
" Note: For this parameter to be effective, you must invoke Horn2RadialRescale \n");
441 guidance +=
std::string(
" FNAL Drawing number 8875.112 MD-363383 " );
450 G4String guidance(
"A ratio between the actual lengths for this run over the nominal values for Horn2 \n ");
451 guidance +=
std::string(
" More specifically, all (excluding target elements in Horn2) will be rescale by \n");
452 guidance +=
std::string(
" that factor. Suggested value for modification: no more than 105 for a start!.. \n");
453 guidance +=
std::string(
" FNAL Drawing number 8875.112 MD-363383 " );
459 fHorn2LongPosition =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/Horn2LongPosition",
this);
460 G4String guidance(
"The Z position of Horn2 with respect to the entrance of Horn1 (a.k.a MCZero) \n ");
468 fHorn2InnerCondMat =
new G4UIcmdWithAString(
"/LBNE/det/Horn2InnerConductorMaterial",
this);
469 G4String guidance(
"Material for the inner conductor \n ");
470 guidance +=
std::string(
" Aluminum is the base line and default. This option should only be used \n");
471 guidance +=
std::string(
" for studying the relevance of the material budget. \n " );
472 guidance +=
std::string(
" That is, run with a fictious Horn with air or vacuum as material carrying 200kA \n " );
479 fHorn2AllCondMat =
new G4UIcmdWithAString(
"/LBNE/det/Horn2AllConductorMaterial",
this);
480 G4String guidance(
"Material for all conductors, inner, outer, I/O transition, etc.. \n ");
481 guidance +=
std::string(
" Aluminum is the base line and default. This option should only be used \n");
482 guidance +=
std::string(
" for studying the relevance of the material budget. \n " );
483 guidance +=
std::string(
" That is, run with a fictious Horn with air or vacuum as material carrying 200kA \n " );
490 fHorn3InnerCondMat =
new G4UIcmdWithAString(
"/LBNE/det/Horn3InnerConductorMaterial",
this);
491 G4String guidance(
"Material for the inner conductor \n ");
492 guidance +=
std::string(
" Aluminum is the base line and default. This option should only be used \n");
493 guidance +=
std::string(
" for studying the relevance of the material budget. \n " );
494 guidance +=
std::string(
" That is, run with a fictious Horn with air or vacuum as material carrying 200kA \n " );
501 fHorn3AllCondMat =
new G4UIcmdWithAString(
"/LBNE/det/Horn3AllConductorMaterial",
this);
502 G4String guidance(
"Material for all conductors, inner, outer, I/O transition, etc.. \n ");
503 guidance +=
std::string(
" Aluminum is the base line and default. This option should only be used \n");
504 guidance +=
std::string(
" for studying the relevance of the material budget. \n " );
505 guidance +=
std::string(
" That is, run with a fictious Horn with air or vacuum as material carrying 200kA \n " );
514 G4String guidance(
"If true (default is false) use GDML geometry exported from MARS rather than standard G4LBNE target/horns \n ");
523 G4String guidance(
"File name generated by MARS/ROOT describing the target/horns. \n ");
524 guidance +=
std::string(
" Path name can be relative, if the executable runs from the correct directory \n");
525 guidance +=
std::string(
" Typically .../g4lbne \n " );
526 guidance +=
std::string(
" Or, absolute i.e, /scratch/.../g4blne/gdml/lbne_absorber_112912.gdml \n " );
527 guidance +=
std::string(
" The translation of an (eventual) Unix environment variable is currently not implemented \n " );
536 G4String guidance(
"File name generated by MARS/ROOT describing the Hadron absorber at the end of the beam line. \n ");
537 guidance +=
std::string(
" Path name can be relative, if the executable runs from the correct directory \n");
538 guidance +=
std::string(
" Typically .../g4lbne \n " );
539 guidance +=
std::string(
" Or, absolute i.e, /scratch/.../g4blne/gdml/lbne_absorber_112912.gdml \n " );
540 guidance +=
std::string(
" The translation of an (eventual) Unix environment variable is currently not implement \n " );
547 fInstallShield =
new G4UIcmdWithABool(
"/LBNE/det/InstallShield",
this);
548 G4String guidance(
"If true (default) install beamline rotated rectangular chunck of steel surrounding the horns \n ");
550 fInstallShield->SetParameterName(
"InstallShieldAroundHorns",
true);
556 G4String guidance(
" The length of rock downstream of the muon alcove. \n ");
566 fUse1p2MW =
new G4UIcmdWithABool(
"/LBNE/det/Use1p2MW",
this);
567 G4String guidance(
"If true, the NUMI-style target will be adapted for 1.2 MW operation, prelimnary design. \n ");
568 guidance +=
std::string(
" See DocDB note 8639-v1 by J. Hylen \n ");
570 fUse1p2MW->SetParameterName(
"Use1p2MW",
true);
576 G4String guidance(
"If true, the NUMI-style target will be adapted for 1.2 MW operation, prelimnary design. \n ");
584 fUseRALTGTv1 =
new G4UIcmdWithABool(
"/LBNE/det/UseRALTGTv1",
this);
585 G4String guidance(
"If true, the Rutherford accelerator lab target will be adapted for 1.2 MW operation, preliminary design. \n ");
594 G4String guidance(
"If true, the vertical fins will rounded. Only implemented for 1.2 MW option. Default is true. \n ");
595 guidance +=
std::string(
" See IHEP target documentation, serial number 3, received on March 26 from J. Hylen \n ");
606 G4String guidance(
"If true, Horn1 Inner conductor is a simple Polycone. See documentation on the g4lbne wiki for usage. \n ");
614 G4String guidance(
"Number of inner points defining the Inner conductor. See documentation on the g4lbne wiki for usage. \n ");
620 const size_t numCmdsHorn1PolyPts = 20;
622 G4String guidance(
"Inner Conductor pts, rInner, thicknes,, Zlocation See documentation on the g4lbne wiki for usage. \n ");
623 for (
size_t k=0;
k !=numCmdsHorn1PolyPts;
k++) {
624 std::ostringstream tmpStrStr;
625 tmpStrStr <<
"/LBNE/det/Horn1PolyPt" <<
k <<
"RinThickZ";
626 G4String tmpStr(tmpStrStr.str());
628 fHorn1PolyListRinThickZVects[
k]->SetGuidance(guidance);
629 fHorn1PolyListRinThickZVects[
k]->SetParameterName(
"Horn1PolyPtxxxRin",
"Horn1PolyPtxxxThick",
"Horn1PolyPtxxxZCoord",
true);
630 fHorn1PolyListRinThickZVects[
k]->SetDefaultUnit (
"mm");
631 fHorn1PolyListRinThickZVects[
k]->SetUnitCandidates (
"mm cm m");
636 G4String guidance(
"Horn1 Polycone Outer Radius conductor. See documentation on the g4lbne wiki for usage. \n ");
649 G4String guidance(
"Number of simplified Horns, type Polycones. See documentation on the g4lbne wiki for usage. \n ");
650 guidance +=
std::string(
".. Also used in defining the number of realistic horns, Conceptual Design, Dec. 2016 \n");
661 G4String guidance(
"Set the Polycone horn's hape to parabolic. Technically, still a G4Polycone shape \n");
662 guidance +=
std::string(
" but, linear segment radial increment of one mm, following a parabola, linear within 1 mm. \n ");
663 guidance +=
std::string(
" Valid Argument, integer, between 1 and 5 \n ");
673 G4String guidance(
"Number of inner points defining the Inner conductor, for Horn2. \n ");
679 const size_t numCmdsHorn2PolyPts = 20;
681 G4String guidance(
"Inner Conductor pts, rInner, thicknes,, for Horn2 \n ");
682 for (
size_t k=0;
k !=numCmdsHorn2PolyPts;
k++) {
683 std::ostringstream tmpStrStr;
684 tmpStrStr <<
"/LBNE/det/Horn2PolyPt" <<
k <<
"RinThickZ";
685 G4String tmpStr(tmpStrStr.str());
687 fHorn2PolyListRinThickZVects[
k]->SetGuidance(guidance);
688 fHorn2PolyListRinThickZVects[
k]->SetParameterName(
"Horn2PolyPtxxxRin",
"Horn2PolyPtxxxThick",
"Horn2PolyPtxxxZCoord",
true);
689 fHorn2PolyListRinThickZVects[
k]->SetDefaultUnit (
"mm");
690 fHorn2PolyListRinThickZVects[
k]->SetUnitCandidates (
"mm cm m");
695 G4String guidance(
"Horn2 Polycone Outer Radius conductor, for Horn2 \n ");
705 G4String guidance(
"Horn2 Polycone Starting Position (Z of the first inner coord, in G4 world syst., for Horn2 \n ");
718 G4String guidance(
"Number of inner points defining the Inner conductor, for Horn3. \n ");
724 const size_t numCmdsHorn3PolyPts = 20;
726 G4String guidance(
"Inner Conductor pts, rInner, thicknes,, for Horn3 \n ");
727 for (
size_t k=0;
k !=numCmdsHorn3PolyPts;
k++) {
728 std::ostringstream tmpStrStr;
729 tmpStrStr <<
"/LBNE/det/Horn3PolyPt" <<
k <<
"RinThickZ";
730 G4String tmpStr(tmpStrStr.str());
732 fHorn3PolyListRinThickZVects[
k]->SetGuidance(guidance);
733 fHorn3PolyListRinThickZVects[
k]->SetParameterName(
"Horn3PolyPtxxxRin",
"Horn3PolyPtxxxThick",
"Horn3PolyPtxxxZCoord",
true);
734 fHorn3PolyListRinThickZVects[
k]->SetDefaultUnit (
"mm");
735 fHorn3PolyListRinThickZVects[
k]->SetUnitCandidates (
"mm cm m");
740 G4String guidance(
"Horn3 Polycone Outer Radius conductor, for Horn3 \n ");
749 G4String guidance(
"Horn3 Polycone Starting Position (Z of the first inner coord, in G4 world syst., for Horn3 \n ");
762 G4String guidance(
"Number of inner points defining the Inner conductor, for Horn4. \n ");
768 const size_t numCmdsHorn4PolyPts = 20;
770 G4String guidance(
"Inner Conductor pts, rInner, thicknes,, for Horn4 \n ");
771 for (
size_t k=0;
k !=numCmdsHorn4PolyPts;
k++) {
772 std::ostringstream tmpStrStr;
773 tmpStrStr <<
"/LBNE/det/Horn4PolyPt" <<
k <<
"RinThickZ";
774 G4String tmpStr(tmpStrStr.str());
776 fHorn4PolyListRinThickZVects[
k]->SetGuidance(guidance);
777 fHorn4PolyListRinThickZVects[
k]->SetParameterName(
"Horn4PolyPtxxxRin",
"Horn4PolyPtxxxThick",
"Horn4PolyPtxxxZCoord",
true);
778 fHorn4PolyListRinThickZVects[
k]->SetDefaultUnit (
"mm");
779 fHorn4PolyListRinThickZVects[
k]->SetUnitCandidates (
"mm cm m");
784 G4String guidance(
"Horn4 Polycone Outer Radius conductor, for Horn4 \n ");
793 G4String guidance(
"Horn4 Polycone Starting Position (Z of the first inner coord, in G4 world syst., for Horn4 \n ");
806 G4String guidance(
"Number of inner points defining the Inner conductor, for Horn5. \n ");
812 const size_t numCmdsHorn5PolyPts = 20;
814 G4String guidance(
"Inner Conductor pts, rInner, thicknes,, for Horn5 \n ");
815 for (
size_t k=0;
k !=numCmdsHorn5PolyPts;
k++) {
816 std::ostringstream tmpStrStr;
817 tmpStrStr <<
"/LBNE/det/Horn5PolyPt" <<
k <<
"RinThickZ";
818 G4String tmpStr(tmpStrStr.str());
820 fHorn5PolyListRinThickZVects[
k]->SetGuidance(guidance);
821 fHorn5PolyListRinThickZVects[
k]->SetParameterName(
"Horn5PolyPtxxxRin",
"Horn5PolyPtxxxThick",
"Horn5PolyPtxxxZCoord",
true);
822 fHorn5PolyListRinThickZVects[
k]->SetDefaultUnit (
"mm");
823 fHorn5PolyListRinThickZVects[
k]->SetUnitCandidates (
"mm cm m");
828 G4String guidance(
"Horn5 Polycone Outer Radius conductor, for Horn5 \n ");
837 G4String guidance(
"Horn5 Polycone Starting Position (Z of the first inner coord, in G4 world syst., for Horn5 \n ");
852 G4String guidance(
"If true, We will not place the decay pipe snout in fron of the entrance of decay pipe \n ");
862 fRadiusMilindWire =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/MillindWireRadius",
this);
863 G4String guidance(
"Set the radius of the write that runs down the beam pipe. \n ");
872 fCurrentMilindWire =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/MillindWireCurrent",
this);
873 G4String guidance(
"Set the Current of the write that runs down the beam pipe. \n ");
883 fWriteGDMLFile =
new G4UIcmdWithABool(
"/LBNE/det/WriteGDMLFile",
this);
884 G4String guidance(
"Write a GDML file containing the entire tunnel geometry \n ");
894 G4String guidance(
"If true, the NuMI target is replaced by the Target Module\n");
902 G4String guidance(
"If true, the NuMI target is replaced by a 2nd Target Module\n");
909 fTargetModuleType =
new G4UIcmdWithAnInteger(
"/LBNE/det/TargetModuleType",
this);
910 G4String guidance(
"Set the type for the first target module: SAT = 0, Cylinder = 1\n");
917 G4String guidance(
"Set the type for the 2nd target module: SAT = 0, Cylinder = 1\n");
923 fTarget2Material =
new G4UIcmdWithAString(
"/LBNE/det/Target2Material",
this);
924 G4String guidance(
"Material for the 2nd target \n ");
926 guidance +=
std::string(
" The physical length of the target is left unchanged upon use of this data card. \n " );
927 guidance +=
std::string(
" Default value: graphite \n " );
934 fTargetRadius =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/TargetRadius",
this);
935 G4String guidance(
"Target object radius\n ");
936 guidance +=
std::string(
" Should the option TargetRadius be selected (UseTargetModule=true), \n ");
937 guidance +=
std::string(
" this command sets the radius of each target object. \n");
938 guidance +=
std::string(
" No FNAL Drawing number referenced " );
945 fTarget2Radius =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/Target2Radius",
this);
946 G4String guidance(
"Target 2 object radius\n ");
947 guidance +=
std::string(
" Should the option Target2Radius be selected (UseTarget2Module=true), \n ");
948 guidance +=
std::string(
" this command sets the radius of each target object. \n");
949 guidance +=
std::string(
" No FNAL Drawing number referenced " );
956 fTargetLength =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/TargetLength",
this);
957 G4String guidance(
"The length of the target object\n ");
958 guidance +=
std::string(
" Should the option TargetLength be selected (UseTargetModule=true), \n ");
959 guidance +=
std::string(
" this command sets the length of the target object.\n");
960 guidance +=
std::string(
" No FNAL Drawing number referenced " );
967 fTarget2Length =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/det/Target2Length",
this);
968 G4String guidance(
"The length of the target 2 object\n ");
969 guidance +=
std::string(
" Should the option TargetLength be selected (UseTarget2Module=true), \n ");
970 guidance +=
std::string(
" this command sets the length of the target object.\n");
971 guidance +=
std::string(
" No FNAL Drawing number referenced " );
978 fTargetNLambda =
new G4UIcmdWithADouble(
"/LBNE/det/TargetNLambda",
this);
979 G4String guidance(
"Specify the target object length using nuclear interaction length lambda\n ");
980 guidance +=
std::string(
" Should the option TargetNLambda be selected (UseTargetModule=true), \n ");
981 guidance +=
std::string(
" this command sets the length of the target object.\n");
982 guidance +=
std::string(
" No FNAL Drawing number referenced " );
989 fTarget2NLambda =
new G4UIcmdWithADouble(
"/LBNE/det/Target2NLambda",
this);
990 G4String guidance(
"Specify the target 2 object length using nuclear interaction length lambda\n ");
991 guidance +=
std::string(
" Should the option Target2NLambda be selected (UseTarget2Module=true), \n ");
992 guidance +=
std::string(
" this command sets the length of the target object.\n");
993 guidance +=
std::string(
" No FNAL Drawing number referenced " );
1001 G4String guidance(
"The fractional length of the target outside Horn1 \n ");
1002 guidance +=
std::string(
" Should the option TargetFracOutHornL be selected (UseTargetModule=true) , \n ");
1003 guidance +=
std::string(
" this command will update the length of the target outside Horn1.\n");
1004 guidance +=
std::string(
" No FNAL Drawing number referenced " );
1012 G4String guidance(
"Set TargetLengthOutsideExtra to align the target if required\n ");
1023 G4String guidance(
"If true, we will be using the Horn A LBNF Optimized, Conceptual Design, F.Y. 2016/2017 \n ");
1031 G4String guidance(
"If true, we will be using the Horn B LBNF Optimized, Conceptual Design, F.Y. 2016/2017 \n ");
1039 G4String guidance(
"If true, we will be using the Horn C LBNF Optimized, Conceptual Design, F.Y. 2016/2017 \n ");
1048 fInstallBaffle =
new G4UIcmdWithABool(
"/LBNE/det/InstallBaffle",
this);
1049 G4String guidance(
"If true (default) install the baffle that protect the horn and target agains excessive beam deflections. \n ");
1051 fInstallBaffle->SetParameterName(
"InstallBaffleUsptream of target ",
true);
1057 G4String guidance(
"If true (default) install the short target (1.5m) that does not need a downstream support. \n ");
1059 fInstallRALShortTarget->SetParameterName(
"InstallRALShortTarget (Downstream support option C from the RAL review) ",
true);
1075 G4String guidance(
"If true (default) remove the RAL bafflet that protect the horn and target agains excessive beam deflections. \n ");
1084 "If true (default) install the UpstreamHorizontalTarget that protect the horn and target agains excessive beam deflections. \n ");
1096 "If true (default) install the downstream target support, to leviate the cantilever problem for the 2m long target. \n ");
1109 "If true, we will be using the 3-horn system, optimized, engineered, Rev 2 \n ");
1121 "If true, we will be using the CDR 2015 optimized configuration (only 2 horns) \n ");
1132 cmd->SetDefaultValue (value);
1133 cmd->SetDefaultUnit (
"m");
1134 cmd->SetUnitCandidates (
"cm m");
1135 cmd->AvailableForStates(G4State_PreInit);
1140 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1145 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1149 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1153 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1157 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1164 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1165 G4Exception(
"LBNEPlacementMessenger::SetNewValue ",
" ", FatalErrorInArgument,
1166 " Obsolete data card, use Horn1LongRescale instead ");
1171 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1172 std::cerr <<
" Extending the target to L = " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1180 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1185 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1189 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1193 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1194 std::cout <<
" !!! You have chosen a unusual thickness for the target He tube cap " 1195 << newValue <<
" \n .... Please check that the volume don't overlap in the listing.. " <<
std::endl;
1199 std::cout <<
" !!! You have chosen to use " << newValue <<
" as target material " <<
std::endl;
1203 std::cout <<
" !!! You have chosen to use " << newValue <<
" as 2n target (or plug) material " <<
std::endl;
1207 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1208 std::cout <<
" !!! You have chosen the seemingly confusing way to define the length of the target which \n " 1209 <<
" the horn. This command should be deprecated. Please use TargetLengthOutsideHorn " <<
std::endl;
1214 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1258 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1260 G4String aNameM(
"Beryllium");
1265 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1270 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1276 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1281 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1283 std::cout <<
" !!! You are channging the radius of the simple cylindrical target, \n, but the " <<
1284 " NUMI-style target is still installed. Consider using first the GUI command UseSimpleCylindricalTarget \n";
1286 std::cerr <<
" Setting new target radius to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1292 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1294 std::cout <<
" !!! You are channging the length of the simple cylindrical target, \n, but the " <<
1295 " NUMI-style target is still installed. Consider using first the GUI command UseSimpleCylindricalTarget \n";
1297 std::cerr <<
" Setting new targetlength to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1303 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1305 std::cout <<
" !!! You are channging the radius of the multi sphere target, \n, but the " <<
1306 " NUMI-style target is still installed. Consider using first the GUI command UseMultiSphereTarget \n";
1308 std::cerr <<
" Setting new target sphere radii to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1314 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1316 std::cout <<
" !!! You are channging the width of the simple box-like target, \n, but the " <<
1317 " NUMI-style target is still installed. Consider using first the GUI command UseSimpleBoxTarget \n";
1323 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1325 std::cout <<
" !!! You are channging the height of the simple box-like target, \n, but the " <<
1326 " NUMI-style target is still installed. Consider using first the GUI command UseSimpleBoxTarget \n";
1333 std::cout <<
" You are now using non-standard material " << newValue
1334 <<
" for the Horn1 Inner Conductor material " <<
std::endl;
1338 std::cout <<
" You are now using non-standard material " << newValue
1339 <<
" for all of the Horn1 Conductors (inner, outer, I/O transition.. " <<
std::endl;
1344 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1345 const double val = cmdWD->GetNewDoubleValue(newValue);
1346 std::cout <<
" You are changing the safety margin in the minimum distance between \n";
1347 std::cout <<
" the downstream tip of the target and Horn1 inner conductor, from \n";
1348 std::cout <<
" the default of 2.5 mm down to " << val <<
std::endl;
1350 G4Exception(
"LBNEPlacementMessenger::SetNewValue ",
" ", FatalErrorInArgument,
1351 " The value the Horn radial safet margin can not be nergative ");
1356 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1357 const bool val = cmdWD->GetNewBoolValue(newValue);
1358 std::cout <<
" The inner conductor radius will be set large enough to accomodate \n";
1359 std::cout <<
" the Helium filled Target container vessel, up the ! 1 m. into the horn1. \n";
1360 std::cout <<
" The default is false " << val <<
std::endl;
1365 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1370 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1375 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1380 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1385 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1390 std::cout <<
" You are now using non-standard material " << newValue
1391 <<
" for the Horn2 Inner Conductor material " <<
std::endl;
1395 std::cout <<
" You are now using non-standard material " << newValue
1396 <<
" for all of the Horn2 Conductor material " <<
std::endl;
1401 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1415 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1419 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1423 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1427 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1431 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1436 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1437 volP->
SetUse1p2MW(cmdB->GetNewBoolValue(newValue.c_str()));
1438 std::cout <<
" You are now using the 1.2 MW design, new version, Nov. 2016 " <<
std::endl;
1439 std::cout <<
" Adapted from J. Hylen by Cory Crowley, Nov. 2016. " <<
std::endl;
1440 std::cout <<
" See also option Use1p2MWSmallTgt, circa Feb 2014 " <<
std::endl;
1448 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1450 std::cout <<
" You are now using the Rutherford accelerator laboratory design, first version, circa May 2017 " <<
std::endl;
1460 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1462 std::cout <<
" You are now using the 1.2 MW design, first version, circa Feb 2014 " <<
std::endl;
1469 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1471 if (cmdB->GetNewBoolValue(newValue.c_str()))
1472 std::cout <<
" You are now using the Rounded fins target, at it should be " <<
std::endl;
1473 else std::cout <<
" You are now using thestraight edge fins for the target, " << std::endl <<
1474 " .... you should probably reduce the fins width a few % (1p2MW default thickness) " <<
std::endl;
1477 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1481 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1485 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1492 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1496 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1502 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1508 G4UIcmdWith3VectorAndUnit* cmdWD =
dynamic_cast<G4UIcmdWith3VectorAndUnit*
> (
command);
1509 G4ThreeVector v = cmdWD->GetNew3VectorValue(newValue);
1519 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1520 const int nn = cmdWD->GetNewIntValue(newValue);
1521 std::cout <<
" You are now using the optimized horns. Number of them requested " << nn <<
std::endl;
1535 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1536 const int nn = cmdWD->GetNewIntValue(newValue);
1537 if ((nn < 1) || (nn > 5)) {
1538 G4Exception(
"LBNEPlacementMessenger::SetNewValue ",
" ", FatalErrorInArgument,
1539 " SetPolyconeHornParabolic, valid argument between 1 and 5 ");
1545 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1549 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1554 G4UIcmdWith3VectorAndUnit* cmdWD =
dynamic_cast<G4UIcmdWith3VectorAndUnit*
> (
command);
1555 G4ThreeVector v = cmdWD->GetNew3VectorValue(newValue);
1561 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1568 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1572 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1577 G4UIcmdWith3VectorAndUnit* cmdWD =
dynamic_cast<G4UIcmdWith3VectorAndUnit*
> (
command);
1578 G4ThreeVector v = cmdWD->GetNew3VectorValue(newValue);
1584 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1588 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1592 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1597 G4UIcmdWith3VectorAndUnit* cmdWD =
dynamic_cast<G4UIcmdWith3VectorAndUnit*
> (
command);
1598 G4ThreeVector v = cmdWD->GetNew3VectorValue(newValue);
1604 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1608 G4UIcmdWithAnInteger* cmdWD =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1612 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1617 G4UIcmdWith3VectorAndUnit* cmdWD =
dynamic_cast<G4UIcmdWith3VectorAndUnit*
> (
command);
1618 G4ThreeVector v = cmdWD->GetNew3VectorValue(newValue);
1624 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1631 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1637 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1641 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1646 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1652 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1660 G4UIcmdWithABool* cmdB =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1665 G4UIcmdWithAnInteger* cmdB =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1670 G4UIcmdWithAnInteger* cmdB =
dynamic_cast<G4UIcmdWithAnInteger*
> (
command);
1675 std::cout <<
" !!! You have chosen to use " << newValue <<
" as the 2nd target material " <<
std::endl;
1680 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1682 std::cerr <<
" !!! You are changing target object radius for the target module, \n, but the " <<
1683 " NUMI-style target is still installed. Consider using first the GUI command UseTargetModule. \n";
1685 std::cout <<
" Setting new target module object radius to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1692 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1694 std::cerr <<
" !!! You are changing target object radius for the 2nd target module, \n, but the " <<
1695 " NUMI-style target is still installed. Consider using first the GUI command UseTarget2Module. \n";
1697 std::cout <<
" Setting new 2nd target module object radius to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1704 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1706 std::cerr <<
" !!! You are changing the total length of the target module (object), \n, but the " <<
1707 " NUMI-style target is still installed. Consider using first the GUI command UseTargetModule. \n";
1709 std::cout <<
" Setting new target module object length to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1716 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1718 std::cerr <<
" !!! You are changing the total length of the 2nd target module (object), \n, but the " <<
1719 " NUMI-style target is still installed. Consider using first the GUI command UseTarget2Module. \n";
1721 std::cout <<
" Setting new 2nd target module object length to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1728 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1730 std::cerr <<
" !!! You are specifying the number of interaction lengths for the target module (object), \n, but the " <<
1731 " NUMI-style target is still installed. Consider using first the GUI command UseTargetModule. \n";
1733 std::cout <<
" Setting number of interaction lengths to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1740 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1742 std::cerr <<
" !!! You are specifying the number of interaction lengths for the 2nd target module (object), \n, but the " <<
1743 " NUMI-style target is still installed. Consider using first the GUI command UseTarget2Module. \n";
1745 std::cout <<
" Setting number of interaction lengths for 2nd module to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1752 G4UIcmdWithADouble* cmdWD =
dynamic_cast<G4UIcmdWithADouble*
> (
command);
1754 std::cerr <<
" !!! You are specifying the length fraction of the target module outside Horn1, \n, but the " <<
1755 " NUMI-style target is still installed. Consider using first the GUI command UseTargetModule. \n";
1757 std::cout <<
" Setting new length fraction of target module outside Horn1 to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1764 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1765 std::cout <<
" Setting new TargetLengthOutsideExtra shift to " << cmdWD->GetNewDoubleValue(newValue) <<
std::endl;
1771 std::cout <<
" You are now using non-standard material " << newValue
1772 <<
" for the Horn3 (HornC) Inner Conductor material " <<
std::endl;
1776 std::cout <<
" You are now using non-standard material " << newValue
1777 <<
" for all of the Horn3 Conductor material " <<
std::endl;
1784 " You haven't defined the number of Polycone Horns. \n");
1786 " Please use the infamous data card /LBNE/det/NumberOfHornsPolycone prior to set the horn style \n");
1788 G4Exception(
"LBNEPlacementMessenger::SetNewValue ",
" ", FatalErrorInArgument, msg0.c_str());
1790 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1791 const bool val = cmdWD->GetNewBoolValue(newValue);
1792 if (val) std::cout <<
" We are using the LBNF, optimized, Conceptual Design F.Y. 2016, for Horn A \n";
1794 std::cout <<
" We are NOT using the LBNF, optimized, Conceptual Design F.Y. 2016, for Horn A \n";
1795 std::cout <<
" Other data cards must be used to defined Horn1 \n";
1816 " The number of Polycone Horns is less than 2.. I am confused.... \n");
1818 " Please use the infamous data card /LBNE/det/NumberOfHornsPolycone prior to set the horn style \n");
1820 G4Exception(
"LBNEPlacementMessenger::SetNewValue ",
" ", FatalErrorInArgument, msg0.c_str());
1822 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1823 const bool val = cmdWD->GetNewBoolValue(newValue);
1824 if (val) std::cout <<
" We are using the LBNF, optimized, Conceptual Design F.Y. 2016, for Horn B \n";
1826 std::cout <<
" We are NOT using the LBNF, optimized, Conceptual Design F.Y. 2016, for Horn B \n";
1827 std::cout <<
" Other data cards must be used to defined Horn2 \n";
1838 " The number of Polycone Horns is less than 3.. I am confused.... \n");
1840 " Please use the infamous data card /LBNE/det/NumberOfHornsPolycone prior to set the horn style \n");
1842 G4Exception(
"LBNEPlacementMessenger::SetNewValue ",
" ", FatalErrorInArgument, msg0.c_str());
1844 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1845 const bool val = cmdWD->GetNewBoolValue(newValue);
1846 if (val) std::cout <<
" We are using the LBNF, optimized, Conceptual Design F.Y. 2016, for Horn C \n";
1848 std::cout <<
" We are NOT using the LBNF, optimized, Conceptual Design F.Y. 2016, for Horn C \n";
1849 std::cout <<
" Other data cards must be used to defined Horn3 \n";
1859 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1860 const bool val = cmdWD->GetNewBoolValue(newValue);
1864 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1865 const bool val = cmdWD->GetNewBoolValue(newValue);
1869 G4UIcmdWithADoubleAndUnit* cmdWD =
dynamic_cast<G4UIcmdWithADoubleAndUnit*
> (
command);
1873 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1874 const bool val = cmdWD->GetNewBoolValue(newValue);
1878 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1879 const bool val = cmdWD->GetNewBoolValue(newValue);
1883 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1884 const bool val = cmdWD->GetNewBoolValue(newValue);
1889 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1890 const bool val = cmdWD->GetNewBoolValue(newValue);
1911 G4UIcmdWithABool* cmdWD =
dynamic_cast<G4UIcmdWithABool*
> (
command);
1912 const bool val = cmdWD->GetNewBoolValue(newValue);
double GetCurrentMilindWire() const
G4UIcmdWithABool * fInstallRALShortTarget
double GetLengthOfRockDownstreamAlcove() const
void SetMultiSphereTargetLength(double r)
G4UIcmdWithABool * fHorn1RadiusBigEnough
void SegmentTargetSmallTgt()
G4UIcmdWithADoubleAndUnit * fHorn4PolyZStartPos
void SetSimpleTargetWidth(double r)
G4UIcmdWithAnInteger * fTargetNumFinsWithWings
void SetTargetNumFinsWithWings(unsigned int n)
~LBNEPlacementMessenger()
double GetSimpleTargetHeight() const
G4UIcmdWithABool * fUseSimpleTargetCylinder
G4UIcmdWithADouble * fTarget2NLambda
void SetDecayPipeUpstrWindowThick(double l)
bool GetUseTargetModule() const
double GetTargetDensity() const
G4UIcmdWithABool * fInstallDownstTargetSupport
G4UIcmdWithAnInteger * fTarget2ModuleType
G4UIcmdWithABool * fInstallShield
void SetTargetFracOutHornL(double l)
G4UIcmdWithADoubleAndUnit * fSimpleTargetHeight
double GetDecayPipeUpstrWindowThick() const
G4UIcmdWithADoubleAndUnit * fRALSimpleTargetLength
bool GetUseMultiSphereTarget() const
double GetMultiSphereTargetRadius() const
void SetPlugMaterial(std::string name)
G4UIcmdWithAString * fHorn3AllCondMat
void SetTarget2Radius(double r)
bool GetUseLBNFOptimConceptDesignHornB() const
void SetMarsTargetHornsGDMLFilename(G4String &name)
std::vector< G4UIcmdWith3VectorAndUnit * > fHorn1PolyListRinThickZVects
void SetNewValue(G4UIcommand *command, G4String cmd)
void SetNumberOfHornsPolycone(int n)
G4UIcmdWithADoubleAndUnit * fTargetLengthIntoHorn
void PreparePolyconForConceptHornB()
void SetHorn1Length(double l)
double GetPlugZPosition() const
double GetDecayPipeLongPosition() const
static LBNEVolumePlacements * Instance()
G4UIcmdWithADoubleAndUnit * fTargetBerylCapThickness
bool GetInstallUpstreamHorizontalTarget() const
G4UIcmdWithABool * fUseLBNFOptimConceptDesignHornA
double GetTarget2Length() const
void SetRALSimpleTargetLength(double l)
G4String GetMarsTargetHornsGDMLFilename() const
G4UIcmdWithADoubleAndUnit * fDecayPipeLongPosition
void SetHorn3AllConductorMaterial(G4String &name)
void SetUseLBNFOptimConceptDesignHornB(bool f)
void SetTargetNLambda(double N)
bool GetUseLBNFOptimConceptDesignHornC() const
void SetInstallBaffle(bool f)
G4UIcmdWithADouble * fHorn2LongRescale
void SetTargetFinWidth(double l)
G4UIcmdWithADoubleAndUnit * fTargetLengthOutsideExtra
double GetTargetRadius() const
G4UIcmdWithAString * fHorn2InnerCondMat
G4UIcmdWithADoubleAndUnit * fTargetDensity
double GetHorn1PolyOuterRadius() const
void SetHorn2RadialRescaleCst(double r)
void SetUseCDR2015Optimized(bool f)
G4UIcmdWithADoubleAndUnit * fHorn3PolyOuterRadius
void adaptTargetFor1p2MW()
void SetRemoveRALBafflet(bool f)
G4UIcmdWithADoubleAndUnit * fMultiSphereTargetRadius
G4UIcmdWithADouble * fHorn1LongRescale
bool GetUseHorn1Polycone() const
void RescaleHorn2Radially()
double GetTargetSLengthGraphite() const
G4UIcmdWithADoubleAndUnit * fHorn2PolyZStartPos
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
double GetSimpleTargetWidth() const
void SetMultiSphereTargetRadius(double r)
G4UIcmdWithABool * fConstructPlugInHorn1
G4UIcmdWithAnInteger * fUseNumberOfHornsPoly
void SetRemoveDecayPipeSnout(bool t)
G4String GetAbsorberGDMLFilename() const
G4UIcmdWithABool * fUse1p2MWSmallTgt
void SetTargetLengthOutsideExtra(double l)
void SetConstructPlugInHorn1(bool t)
G4UIcmdWithABool * fUseLBNFOptimConceptDesignHornB
G4UIcmdWithAnInteger * fUseHorn5PolyNumInnerPts
void SetWriteGDMLFile(bool t)
void PreparePolyconForConceptHornA()
G4UIcmdWithADoubleAndUnit * fDecayPipeLength
void SetTargetMaterialName(G4String &aName)
double GetTarget2Radius() const
bool GetUseLBNFOptimConceptDesignHornA() const
bool GetInstallBaffle() const
double GetDecayPipeLength() const
G4UIcmdWithADoubleAndUnit * fDecayPipeRadius
G4UIcmdWithADoubleAndUnit * fHorn5PolyZStartPos
G4UIcmdWithABool * fUseLBNFOptimConceptDesignHornC
bool GetUseSimpleTargetBox() const
G4UIcmdWithADoubleAndUnit * fRadiusMilindWire
G4UIcmdWithADoubleAndUnit * fPlugLength
G4double GetTarget2NLambda() const
void SetHorn1RadialRescale(double r)
void SetInstallRALShortTarget(bool f)
G4UIcmdWithAString * fHorn1AllCondMat
void SetHornsPolyZStartPos(size_t hornNumber, double z)
unsigned int GetTargetNumFinsWithWings() const
void SetTargetModuleType(int i)
G4UIcmdWithABool * fRemoveTargetAlltogether
G4UIcmdWithADoubleAndUnit * fSimpleTargetLength
void SetHorn2LongPosition(double l)
G4UIcmdWithABool * fInstallBaffle
G4UIcmdWithAnInteger * fUseHorn2PolyNumInnerPts
G4UIcmdWithADoubleAndUnit * fCurrentMilindWire
double GetPlugLength() const
G4UIcmdWithABool * fRemoveRALBafflet
void SetTargetRadius(double r)
G4UIcmdWithABool * fUseTarget2Module
G4UIcmdWithADoubleAndUnit * fLengthOfRockDownstr
double GetSimpleTargetRadius() const
G4UIcmdWithABool * fUseRALTGTv1
void SetConstructPlug(bool t)
G4UIcmdWithADoubleAndUnit * fHorn1RadialSafetyMargin
bool GetUseMarsTargetHorns() const
G4UIcmdWithADoubleAndUnit * fHorn2RadialRescaleCst
double GetTargetFinWidth() const
void SetDecayPipeRadius(double l)
void SetPolyconeHorn1Parabolic(bool t)
G4UIcmdWithABool * fUseRoundedTargetFins
void AdaptForMultiSphereTarget()
void SetUseMultiSphereTarget(bool t)
void SetHorn2AllConductorMaterial(G4String &name)
void SetUseSimpleTargetBox(bool t)
G4UIcmdWithADoubleAndUnit * fHorn4PolyOuterRadius
G4UIcmdWithADoubleAndUnit * fSimpleTargetWidth
G4UIcmdWithAString * fDecayPipeGas
void SetUseHorn1Polycone(bool t)
double GetTargetLength() const
void RescaleHorn1Radially()
void SetHorn3InnerConductorMaterial(G4String &name)
G4UIcmdWithAString * fTarget2Material
G4UIcmdWithADoubleAndUnit * fPlugInnerRadius
G4UIcmdWithADoubleAndUnit * fHorn2PolyOuterRadius
void ShiftHorn2Radially()
void SetSimpleTargetHeight(double r)
G4String GetTargetMaterialName() const
void SetDecayPipeGas(G4String &name)
void SetHorn1PolyOuterRadius(double r)
G4String GetHorn2InnerConductorMaterial() const
void SetTarget2Length(double l)
void SetCurrentMilindWire(double r)
void SetTargetDensity(double l)
G4String GetHorn2AllConductorMaterial() const
void SetPlugInnerRadius(double r)
double GetHorn1RadialSafetyMargin() const
void SetUseHorn1PolyNumInnerPts(int n)
void SetHorn2InnerConductorMaterial(G4String &name)
double GetDecayPipeRadius() const
G4UIcmdWithADoubleAndUnit * fTargetSLengthGraphite
G4UIcmdWithADouble * fHorn2RadialRescale
G4UIcmdWithAString * fHorn1InnerCondMat
G4UIcmdWithABool * fUse1p2MW
double GetTargetBerylDownstrWindowThick() const
G4UIcmdWithADoubleAndUnit * fDecayPipeUpstreamWindowThickness
void SetTargetLengthIntoHorn(double l)
G4UIcmdWithADoubleAndUnit * fHorn3PolyZStartPos
G4UIcmdWithAnInteger * fUseHorn3PolyNumInnerPts
G4double GetTargetNLambda() const
void SetSimpleTargetLength(double l)
void SetUseLBNFOptimConceptDesignHornA(bool f)
G4UIcmdWithADoubleAndUnit * fSimpleTargetRadius
G4UIcmdWithAString * fMarsTargetHornsGDMLFilename
void SetUseRALTGTv1(bool t)
std::vector< G4UIcmdWith3VectorAndUnit * > fHorn5PolyListRinThickZVects
G4UIcmdWithADoubleAndUnit * fHorn1PolyOuterRadius
G4UIcmdWithADoubleAndUnit * fTargetLengthOutsideHorn
void SetMyUnitsAndConditions(G4UIcmdWithADoubleAndUnit *cmd, double value)
bool GetRemoveDecayPipeSnout() const
G4UIcmdWithABool * fWriteGDMLFile
void RescaleHorn2Lengthwise()
bool GetDoInstallShield() const
void SetHorn1InnerConductorMaterial(G4String &name)
void SetUseLBNFOptimConceptDesignHornC(bool f)
void SetPlugZPosition(double z)
std::string GetPlugMaterial() const
void SetHorn2LongRescale(double r)
G4UIcmdWithADoubleAndUnit * fHorn1Length
G4UIcmdWithADoubleAndUnit * fTarget2Length
G4UIcmdWithAString * fHorn3InnerCondMat
void SetDecayPipeLongPosition(double l)
G4UIcmdWithADoubleAndUnit * fPlugOuterRadius
bool GetRemoveRALBafflet() const
G4UIcmdWithADoubleAndUnit * fPlugZPosition
void SetInstallDownstTargetSupport(bool t)
void SetTargetLength(double l)
G4UIcmdWithADoubleAndUnit * fTargetLength
void SetPolyconeHornParabolic(size_t hornNumber, bool t)
G4String GetHorn3AllConductorMaterial() const
void SetUseTargetModule(bool t)
void SetHorn1RadiusBigEnough(bool t)
void SetPlugOuterRadius(double r)
void SetPlugLength(double l)
const GenericPointer< typename T::ValueType > T2 value
void SetUseTarget2Module(bool t)
void SetTarget2MaterialName(G4String &aName)
void SetRemoveTargetAlltogether(bool t)
double GetHorn1Length() const
G4UIcmdWithABool * fUseHorn1Polycone
double GetRALSimpleTargetLength() const
G4UIcmdWithABool * fUseCDR2015Optimized
G4UIcmdWithAnInteger * fSetPolyconeHornParabolic
double GetRadiusMilindWire() const
double GetTargetLengthIntoHorn() const
G4UIcmdWithABool * fInstallUpstreamHorizontalTarget
std::vector< G4UIcmdWith3VectorAndUnit * > fHorn2PolyListRinThickZVects
G4UIcmdWithADoubleAndUnit * fTargetFinWidth
G4double GetTargetLengthOutsideExtra() const
void SetUseMarsTargetHorns(bool v)
G4UIcmdWithADouble * fTargetFracOutHornL
bool GetConstructPlug() const
void SetTargetSLengthGraphite(double l)
G4String GetHorn1AllConductorMaterial() const
std::vector< G4UIcmdWith3VectorAndUnit * > fHorn3PolyListRinThickZVects
void SetHornsPolyOuterRadius(size_t hornNumber, double r)
G4UIcmdWithABool * fUseMultiSphereTarget
void SetLengthOfRockDownstreamAlcove(double l)
G4UIcmdWithADouble * fTargetNLambda
bool GetConstructPlugInHorn1() const
void SetSimpleTargetRadius(double r)
G4UIcmdWithADoubleAndUnit * fTarget2Radius
bool GetUseSimpleTargetCylinder() const
void SetUseHornsPolyNumInnerPts(size_t hornNumber, size_t nElem)
void SetDecayPipeLength(double l)
void SetHorn2RadialRescale(double r)
double GetSimpleTargetLength() const
G4UIcmdWithABool * fUseMarsTargetHorns
bool GetUseRALTGTv1() const
void RescaleHorn1Lengthwise()
static LBNEPlacementMessenger * fInstance
void SetHorn1LongRescale(double r)
G4UIcmdWithABool * fUseConceptDesignOptimEngineered
void SetHornsPolyInnerThreeVect(size_t hornNumber, size_t iP, G4ThreeVector vVal)
void SetRadiusMilindWire(double r)
G4UIcmdWithABool * fUseTargetModule
void adaptTargetFor1p2MWSmallTgt()
G4UIcmdWithADoubleAndUnit * fHorn5PolyOuterRadius
G4UIcmdWithAString * fPlugMaterial
G4UIcmdWithAnInteger * fUseHorn4PolyNumInnerPts
G4String GetHorn1InnerConductorMaterial() const
void SetTargetBerylDownstrWindowThick(double t)
G4UIcmdWithAnInteger * fUseHorn1PolyNumInnerPts
bool GetUseRoundedTargetFins() const
G4UIcmdWithABool * fConstructPlug
G4UIcmdWithABool * fRemoveDecayPipeSnout
void SetTarget2ModuleType(int i)
G4UIcmdWithADouble * fHorn1RadialRescale
G4UIcmdWithAString * fHorn2AllCondMat
double GetPlugInnerRadius() const
int GetNumberOfHornsPolycone() const
std::vector< G4UIcmdWith3VectorAndUnit * > fHorn4PolyListRinThickZVects
void SetAbsorberGDMLFilename(G4String &name)
void SetHorn1PolyInnerThreeVect(size_t iP, G4ThreeVector vVal)
bool GetUseTarget2Module() const
double GetPlugOuterRadius() const
G4UIcmdWithAString * fTargetMaterial
G4double GetTargetFracOutHornL() const
G4UIcmdWithABool * fUseSimpleTargetBox
bool GetInstallRALShortTarget() const
void PreparePolyconForConceptHornC()
void SetHorn1RadialSafetyMargin(double t)
G4UIcmdWithADoubleAndUnit * fHorn2LongPosition
double GetHorn2LongPosition() const
G4UIcmdWithAnInteger * fTargetModuleType
G4UIcmdWithADoubleAndUnit * fTargetRadius
void SetUseSimpleTargetCylinder(bool t)
void SetUse1p2MWSmallTgt(bool t)
void SetTarget2NLambda(double N)
QTextStream & endl(QTextStream &s)
bool GetUse1p2MWSmallTgt() const
void SetUseRoundedTargetFins(bool t)
bool IsHorn1RadiusBigEnough() const
void SetHorn1AllConductorMaterial(G4String &name)
void SetWaterLayerThickInHorns(double l)
static LBNEPlacementMessenger * Instance()
G4UIcmdWithAString * fAbsorberGDMLFilename
void SetTargetLengthOutsideHorn(double l)
void SetInstallUpstreamHorizontalTarget(bool f)
G4UIcmdWithADoubleAndUnit * fWaterLayerThickInHorn
void SetDoInstallShield(bool v)