G4beamlinehttp://g4beamline.muonsinc.com |
G4beamline is a particle-at-a-time simulation program based on Geant4 [1] and optimized for the simulation of beamlines. See the G4beamline User's Guide at the above URL for a description of the program (it is also installed with this distribution).
This brief description only discusses how to use the program, it does not describe how to construct a simulation's input file; for that see the G4beamline User's Guide.
Select the input file using the "Browse" button above. The directory containing it will become the current directory, and the output file named above will receive the program output, as will this TextArea. Any additional Parameters used by the input file can be entered above. Pushing the "Run" button above will run the program, replacing this text with its output. While the program is running, the "Run" button above will change to "Abort" to permit you to stop the program immediately. Closing this window will also abort g4beamline. After running the simulation (with viewer=none), the simulation usually creates one or more Root files containing the NTuples. You can use the HistoRoot program to generate histograms from these files.
IMPORTANT NOTE: With a viewer selected, NTuple output files are not written. This includes both .root files and ASCII files from vitualdetector-s, zntuple-s, etc.
Several examples are provided in the distribution. They are located in the "examples" directory under the install directory. In Linux the install directory is usually in your HOME directory; in Mac OS X it is usually in /Applications; in Windows a Copy of "G4beamline examples" is placed into "My Documents" (Windows Xp) or "Documents" (Windows Vista).
viewer=best will visualize the system using OpenInventor; use its File/Escape to go to the next image (run). The OpenInventor viewer is part of the G4beamline program. For usage hints, see this Appendix.
The "Other" selection can be used to run any other viewer supported by G4beamline and installed on your system (if necessary). See the output from a G4beamline run with viewer=best to see the list of supported viewers.
viewer=Other:Wired will visualize the system using the Wired3 viewer [2]. The "Run" button will run the selected number of runs, each generating a .heprep file. When that is complete, the Wired viewer will be opened on the first file; it considers them "events". For usage hints in Wired, see this Appendix.
[1] http://geant4.cern.ch [2] http://www.slac.stanford.edu/BFROOT/www/Computing/Graphics/Wired/ [3] http://root.cern.ch
Like other X-windows programs, the OpenInventor driver of G4Beamline can operate in either local or remote (networked) mode. Both the X display client and server must have the 3-D display capabilities of OpenGL installed. Operation over a network can be slow, and a good network connection (>1 megabit/sec) is required for useful results.
The Rotx and Roty wheels at the lower left rotate the image relative to the viewer, and the Dolly wheel (Z) at the lower right moves in and out with a corresponding change of scale. The buttons along the right edge do the following:
Arrow | Select pick mode and cursor |
Hand | Select move mode and cursor (default) |
? | Help (not implemented) |
House | Restore display to Home position |
House with arrow | Set Home position to be the current display |
Eye | Zoom so everything is visible |
Gunsight | Not implemented |
Perspective box outline | Select isometric or projected display |
When the Hand cursor is active the mouse behaves like this:
Left Button | Click and drag to rotate the display. It acts as if there were an invisible sphere surrounding the image, and the mouse movements rotate that sphere in any direction. This is quite different from the Rotx and Roty wheels, and takes some getting used to. |
Middle Button | Click and drag to pan the display -- this moves the visible objects around without changing perspective. |
Right Button | Brings up a menu with various functions, Draw Styles, and other items. The most useful is DrawStyles/StillDrawStyle/Wireframe which will draw in the wireframe mode rather than as solid surfaces. This permits you to look inside objects, and is considerably faster drawing. NOTE: daughters are not necessarily visible in wireframe mode -- see the Etc. menu item that makes them visible. |
The File menu has several useful items:
PS (gl2ps) | Save the current image in PostScript (drawing) |
PS (pixmap) | Save the current image as PostScript (pixel map) |
IV | Save the current image as an OpenInventor file |
Escape | Exit the OpenInventor Viewer. This causes the program to simulate the next run and display the result. |
The Etc. menu has several useful items:
Set Solid | Set the G4 mode to Solid (default) |
Set (G4) reduced wire frame | Set the G4 mode to wireframe, real edges only |
Set (G4) full wire frame | Set the G4 mode to wireframe, including triangles to fill surfaces |
Visible mothers + invisible daughters | Daughter volumes are invisible (default) |
Visible mothers + visible daughters | Make all objects visible |
The key to understanding how objects are displayed is to know that Geant4 has a solid/wireframe choice, and OpenInventor has a solid/wireframe choice, and they are different:
G4 mode (Etc menu) | OI mode (Right click menu) | Description |
---|---|---|
Solid | Solid (as is) | Draw solid surfaces |
Solid | Wireframe | Draw wireframes with triangles filling visible surfaces |
Reduced Wireframe | Either | Draw reduced wireframes, showing only real edges |
Full Wireframe | Either | Draw wireframes with triangles filling visible surfaces |
The OpenInventor driver has many more features, but this should get you started. It will also do animation: with the hand cursor left click and drag the image, letting go of the button while moving -- the image will continue to rotate until you left click on it (works best locally).
On Windows, the Wired viewer is installed with G4beamline, and is used as the "best" viewer. On Linux and Mac OS, you must install it manually [2] and then make a symbolic link from its install directory to [g4beamline install directory]/Wired -- then you can set Other to Wired and use it.
When the Wired viewer comes up, it displays a few centimeters near the point x=0,y=0,z=0. It may happen that your system has no visible objects there and the display may look blank. On the lower left is a set of icons, and a click on the second one (a "plus sign" with 4 arrowheads) will zoom so that your entire system will be in the display.
The Wired viewer is started with the first image file loaded. At the top of the window is a toolbar with icons for "open", "reload", "previous event", "next event", "up (inactive)", "down (inactive)", "Toggle Automatic Updating (looks like a clock)", "Create New Window", and "Show/Hide Data Tree". On the right side of the window is a data visibility tree that permits you to select individual elements of the simulation and toggle their visibility.
At the bottom of the viewer subwindow are 8 icons and 2 sliders. The icons are:
R | Reset View |
+ with arrowheads | Fit in Window |
+ | Zoom In |
- | Zoom Out |
+ arrows pointing in | Reset Translation |
CCW arrow | Rotate Counter Clockwise |
CW arrow | Rotate Clockwise |
Circle | Reset Rotation |
Along the right edge of the viewer are two sliders. The upper one translates the image and the lower one rotates it. The same remarks apply to these.
A right-click on the viewer window brings up a context menu with several useful choices:
Orientation Actions | Perform the above icon actions, plus more. Includes OrientationActions such as TopView, SideView, CenterInWindow, etc. |
Orientation Toolbar | Turn the bottom icons on or off |
Projection | Select projection (Parallel is the default) |
Mouse Function | Select what mouse actions do |
Drawing Options | Various drawing options |
The help command: help provides interactive help. man Alias for 'help'. Program control commands: define defines a macro (argument-expanded set of commands). do Do loop. endgroup ends a group definition. exit exit a command file. for For loop. g4ui Accesses the Geant4 user interface geometry Arranges to perform a geometry test. group begins definition of a group. if Conditional execution of command(s), and if/elseif/else/endif. include includes a command file. list provides interactive list of interesting internal tables. output redirects stdout and stderr to a file param Defines parameter values. randomseed control pseudo random number generator seeds showmaterial Set the colors for selected materials. trackermode Sets mode for all trackers, manages track fitting. tune Tune a variable used as argument to other elements. Centerline layout commands: corner Implement a corner in the centerline. cornerarc Implement a cornerarc in the centerline. start Define the initial start of centerline coordinates. Beam definition commands: beam Define the Beam. cosmicraybeam Define a Cosmic-Ray muon 'beam'. particlesource Interface to the Geant4 General Particle Source. reference Define a reference particle. Auxiliary definition commands: material construct a new material. particlecolor Set the colors for particle tracks. trackcolor Alias for 'particlecolor'. Beamline element definition commands: absorber construct an absorber box construct a box. coil defines a coil (part of a solenoid) cylinder Alias for 'tubs'. extrusion construct a solid extrusion with axis along z fieldexpr implements a field map, E and/or B, from expressions. fieldmap implements a field map, E and/or B, from a file. genericbend construct a generic bending magnet. genericquad construct a generic quadrupole magnet. helicaldipole construct a helicaldipole magnet. helicalharmonic construct a helicalharmonic magnet. idealsectorbend construct an ideal sector bending magnet. lilens construct a simple Lithium lens. multipole construct a generic multipole magnet. particlefilter Will kill particles from a list, or force particles to decay. pillbox Defines a pillbox RF cavity polycone construct a polycone with axis along z rfdevice Defines an rfdevice (RF cavity) solenoid defines a solenoid (a coil and current) sphere construct a sphere (or section of one) torus construct a torus. trap construct a solid trapezoid with axis along z. tube Alias for 'tubs'. tubs construct a tube or cylinder with axis along z. The place command: place places an element into the current group (or world). Track and Event cuts: eventcuts Implements cuts on event number via lists in files. trackcuts Specifies per-track cuts. Data output commands: beamlossntuple NTuple containing particle tracks when lost. fieldntuple Generates an NTuple from B and E fields at specified points. newparticlentuple NTuple containing particle tracks when created. ntuple Define an NTuple containing multiple detectors. printf prints track variables and expressions printfield Prints E or B fields, or writes FieldMap file. probefield Prints B and E fields at specified points. profile write beam profile information to a file timentuple Construct an NTuple of tracks at a specified time. totalenergy Print total energy deposited in selected volumes. trace Specifies tracing of tracks. tracker Defines a tracker. trackerplane Construct a tracker plane. usertrackfilter Construct a usertrackfilter that filters tracks via user code. virtualdetector Construct a VirtualDetector that generates an NTuple. zntuple Generate an NTuple for each of a list of Z positions. Physics commands: bug1021 Workaround to improve accuracy of bug1021 in E field muminuscapturefix Fixes up the G4MuonMinusCaptureAtRest process. physics Defines the physics processes and controls them. reweightprocess modify the cross-section of a physics process. setdecay Set lifetime, decay channels, and branching ratios for a particle's decay. spacecharge Beam-frame Green's function space charge computation spacechargelw Lienard-Wiechert space charge computation Other commands: collective Monitor collective computation demo demo command. movie Generate movie NTuple. test test random number seeds. Program control Parameters: Zcl Last centerline Z position used (updated continuously) deltaChord Geant4 tracking parameter deltaIntersection Geant4 tracking parameter deltaOneStep Geant4 tracking parameter epsMax Geant4 tracking parameter epsMin Geant4 tracking parameter eventTimeLimit CPU Time Limit (sec) histoFile Default (Root) NTuple output filename histoUpdate Output update interval (events) maxStep Maximum physics step size (mm) minStep Minimum step size (mm) steppingFormat Format for printing steps steppingVerbose Set nonzero to print each step viewer Visualization driver selected (default=none) worldMaterial Material of the World volume zTolerance Tolerance for Z steps (mm) steppingFormat is a space- or comma-separated list of items: EXT toggle extended precision (3 more digits) TAG print a '>' (useful to grep output) N step number NSTEP Synonym of N GLOBAL X,Y,Z,T in global coords XYZT Synonym of GLOBAL CL X,Y,Z,dxdz,dydz in CL coords CLX extended precision CL KE kinetic energy STEP step length STEPLEN Synonym of STEP VOL volume name VOLNAME Synonym of VOL PROCESS process name B magnetic field E electric field P 3-momentum MAT material name ID event ID, track ID, parent ID PART particle name SEG centerline coord segment number WT weight POLAR polarization NL <newline> NEWLINE Synonym of NL \n Synonym of NL * * * absorber construct an absorber The absorber has two windows with beampipe and an absorber material. Optionally it has an additional two safety windows with beampipe. The WindowShape(s) are read from a file, and they determine the thickness and length of the beampipe(s). For geometry testing, acts like a cylinder enclosing the windows. For placing children, acts like a cylinder inside the central absorber. Note that section 4.5 of the User's Guide has a dimensioned drawing of an absorber. Named Arguments (#=cannot be changed in place cmd): absWindow The name of the absorber window. # safetyWindow The name of the safety window. # insideLength Absorber length inside windows (mm) # absMaterial The material of the absorber # windowMaterial The material of the window(s) # safetyMaterial The material inside the safety windows. # safetyDistance Distance between absorber and safety windows(mm) # color The color of the absorber (''=invisible) maxStep The maximum stepsize in the element (mm) beam Define the Beam. The beam command is: beam type arg1=v1 ... Types are: gaussian, rectangular, ellipse, ascii, and root. Gaussian beams are randomly generated to emanate from beamX,beamY,beamZ with the given sigmas; negative sigma means flat with |sigma| as halfwidth. Rectangular beams are randomly generated to emanate from the rectangle beamHeight by beamWidth centered at beamX,beamY,beamZ. Ellipse beams are randomly generated on the ellipses in (X,Xp), (Y,Yp), (T,E), with meanE determined from meanP and the sigmas used as half-widths; tracks are generated on the ellipse with uniform density when plotted with scales such that the ellipse is a circle. ASCII beams are read from a file using the format specified; the formats supported are: BLTrackFile Root beams are read from a .root file using the TNtuple named directory/name in the file. It must have the same fields as used in BLTrackFile format. Note that EventIDs greater than 16,777,216 will be trncated. When reading a file (ascii or root), beamX and beamY are added to input tracks; if beamZ is set it will overwrite the z of the track, but if it is not set the z of the track in the file is kept. All coordinates are centerline coordinates. Multiple beam commands can be given, and they will generate events in the order they appear in input.file. Events are generated starting at firstEvent, until either nEvents have been generated or lastEvent would be exceeded. For gaussian, rectangular, and ellipse beams, the beam particle can be given as either a particle name or its integer PDGid. Some common beam particle names are: proton, anti_proton, pi+, pi-, mu+, mu-, e+, e-, kaon+, kaon-, kaon0, nu_e, anti_nu_e. See the User's Guide for a complete list of particle names. Named Arguments: particle Beam particle name nEvents Number of events to process (default=1 for generating events, default=ALL for reading files) set to lastEvent-firstEvent+1 if both are set. firstEvent First event # to process (default is the next sequential eventID, 1 if none) lastEvent Last (highest) event # to process beamX Beam location in X (mm) beamY Beam location in Y (mm) beamZ Beam location in Z (mm) maxR Beam maximum radius (mm) rotation Rotation of the beam renumber If nonzero, renumber events sequentially. weight Weight for events, overwritten by value from input file (1.0). secondaryTrackID The next TrackID for secondaries (1001). meanMomentum Gaussian Beam mean momentum (MeV/c) meanP Synonym for meanMomentum. sigmaX Gaussian Beam sigma in X (mm) sigmaY Gaussian Beam sigma in Y (mm) sigmaZ Gaussian Beam sigma in Z (mm) sigmaXp Gaussian Beam sigma in dxdz (slope) sigmaYp Gaussian Beam sigma in dydz (slope) sigmaP Gaussian Beam sigma in P (MeV/c) sigmaT Gaussian Beam sigma in T (ns) sigmaE Elliptical Beam sigma in E (MeV) meanXp Gaussian Beam mean in Xp (slope) meanYp Gaussian Beam mean in Yp (slope) meanT Gaussian Beam mean in T (ns) polarization Polarization 3-vector (0,0,0) beamHeight Rectangular Beam height (mm) beamWidth Rectangular Beam width (mm) filename input file name file synonym for filename. directory Root-file directory of NTuple category Deprecated synonym for directory. uid HistoScope uid of NTuple name Root name of NTuple. format ASCII file format (Default=BLTrackFile) beamXp Synonym for meanXp. beamYp Synonym for meanYp. beamlossntuple NTuple containing particle tracks when lost. The NTuple contains the usual track data: The standard NTuple fields are: x,y,z (mm) Px,Py,Pz (MeV/c) t (ns) PDGid (11=e-, 13=mu-, 22=gamma, 211=pi+, 2212=proton, ...) EventID (may be inexact above 16,777,215) TrackID ParentID (0 => primary particle) Weight (defaults to 1.0) The following additional fields are appended for format=Extended, format=asciiExtended, and format=rootExtended: Bx, By, Bz (Tesla) Ex, Ey, Ez (Megavolts/meter) ProperTime (ns) PathLength (mm) PolX, PolY, PolZ (polarization) InitialKE (MeV when track was created) Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Extended asciiExtended Named Arguments (#=cannot be changed in place cmd): format The NTuple format (see above for list). filename The filename for the NTuple. file Synonym for filename. require Expression which must be nonzero to include the track (default=1) # coordinates Coordinates: global, centerline, or reference (default=c). box construct a box. This is a direct interface to G4Box. Named Arguments: height The height of the box (mm) width The width of the box (mm) length The length of the box (mm) maxStep The maximum stepsize in the element (mm) material The material of the box color The color of the box (''=invisible) kill Set nonzero to kill every track that enters. bug1021 Workaround to improve accuracy of bug1021 in E field When a charged particle turns around in an E field, a bug in the Geant4 transportation process can sometimes give it a wildly-incorrect kinetic energy. This workaround computes the distance to turn-around, and limits the step to half that vlue until minStep is reached; at that point the track is reflected. Simulations in which there are no E fields, or no charged particle ever gets below ~0.001 MeV in an E field, have no need to apply this workaround. Named Arguments: minStep Minimum step in space (mm, default=0.002) coil defines a coil (part of a solenoid) A coil is a geometrical tube that can carry current when part of a solenoid. The field is computed for a set of nSheets infinitely-thin current sheets evenly spread radially. The solenoid specifies the actual current. For tracking the computation is too slow, so a field map on a grid in r and z is computed and written to filename (defaults to coilname.dat). While there are lots of parameters specifying the field map it is recommended to simply accept the defaults for all but innerRadius, outerRadius, length, material, and possibly tolerance. The other parameters will be determined so that the largest error is less than tolerance times the value of Bz at the center of the coil. If mapFile is given, the file is read in BLFieldMap format. The cache file contains the parameters, and is a field map in a binary format; it is automatically regenerated if any parameter changes. Note that maxR and maxZ are by default determined to be large enough so that the field falls below tolerance; this can be quote large. Named Arguments (#=cannot be changed in place cmd): innerRadius Inside radius of the coil (mm) # outerRadius Outside radius of the coil (mm) # length Length of the coil along z (mm) # material The material of the conductor (default=Cu) # tolerance The acceptable tolerance of the map. # nSheets Number of sheets used in the computation # maxR Maxmum r value for the map (automatically determined by default). # maxZ Maxmum z value for the map (automatically determined by default). # dR R interval between points of the map (automatically determined by default). # dZ Z interval between points of the map (automatically determined by default). # filename Filename for cache; deaults to name.dat. # mapFile Filename for map (e.g. from TOSCA). # exactComputation Set nonzero to use the exact computation without any field map (0). collective Monitor collective computation This command computes the means and sigmas related to the time stepping in BLRunManager (global coordinates), generating a TimeStep NTuple. If the simulation has multiple bunches, this NTuple combines them all (and is thus almost useless). This command can also generate field NTuple-s at specified points in x,y,z -- unnamed parameters should be 'x,y,z' values for monitoring E and B fields (global coordinates). NOTE: This command must come AFTER other commands that compute collective fields; otherwise stale field values will be used from the previous time step. If deltaT is set > 0.0, this command will put the RunManager into collective mode and set its deltaT; otherwise the previous commands should do that, and this command won't modify deltaT. Named Arguments: deltaT Time step (-1 ns). format Format of NTuples. filenamePrefix Prefix of NTuple filenames. corner Implement a corner in the centerline. The centerline is bent by a rotation. Every track that enters the volume also gets rotated. The z value is for the corner and the front face of the volume (if any). If the corner is paired with a bending magnet or other mechanism to bend the beam, no volume should be used. NOTE: This command is self-placing, do not use the place command; it also affects all following placements, and it cannot be issued inside a group. If radius=height=width=0 then no volume is associated with the corner, and a bending magnet should be placed nearby to bend the particles around the corner. Normally the bending magnet is placed before the corner, and is rotated by half the bend angle. For a sector bend, it's usually best to use the cornerarc command rather than this one. NOTE: all placements before this command must have z values before the corner, and all placements after this command must have z values after the corner. Note also that the angle is limited to 90 degrees. Note that the radiusCut is important to reduce or eliminate ambiguities in the global to centerline coordinate transform. It can also be used to 'shield' the beamline to prevent particles from taking unusual paths around the outside of beamline elements. Named Arguments: z The centerline Z of the corner (mm). rotation The rotation of the corner (see above). radiusCut The radius cut for this following segment (mm default=previous). radius The radius of the circular corner volume (mm). height The height of the rectangular corner volume (mm). width The width of the rectangular corner volume (mm). length The length of the corner volume (mm). maxStep The maximum stepsize in the element (mm). material The material of the corner volume. color The color of the corner volume (''=invisible). cornerarc Implement a cornerarc in the centerline. The centerline is bent by a rotation. Three corners are used to approximate an arc; the total angle and path-length are equal to those for the arc. Should be used immediately after an idealsectorbend or a genericbend. The z value is for the front face of the arc. NOTE: This command is self-placing, do not use the place command; it also affects all following placements, and it cannot be issued inside a group. This command is well matched to a sector bend, but can also be used with a normal bending magnet -- normally the magnet is placed before the cornerarc and is rotated by half the bend angle. The only useful rotations are those around the centerline Z. z, angle, and centerRadius are required parameters. NOTE: all placements before this command must have z values before the corner, and all placements after this command must have z values after the corner. Note also that the angle is limited to 90 degrees. Note that the radiusCut is important to reduce or eliminate ambiguities in the global to centerline coordinate transform. It can also be used to 'shield' the beamline to prevent particles from taking unusual paths around the outside of beamline elements. Named Arguments: z The centerline Z of the cornerarc (mm). centerRadius The radius of the centerline arc (mm). angle The angle of bend, >0=left, <0=right (degrees). rotation The rotation of the cornerarc (see above). radiusCut The radius cut for this following segment (mm). cosmicraybeam Define a Cosmic-Ray muon 'beam'. The muon beam is nominally headed in the +Z direction, implying that +Z is physically DOWN. The beam intersects a box defined by beamWidth, beamHeight, and beamLength, centered at X=Y=0 and beamZ. For each event a point is selected randomly within this box, angles theta and phi and the muon momentum are generated according to a fit to their sea-level distributions, the track is extended backwards to the 'celestial sphere', and that is the initial beam position for the event. The muon flux through the rectangle at Z=beamZ is used to display an estimate of the sea-level exposure time for the run. Named Arguments: nEvents Number of events to process beamZ Beam location in Z (mm) radius Radius of celestial sphere (mm) beamHeight Rectangular Beam height (mm) beamWidth Rectangular Beam width (mm) beamLength Rectangular Beam length (mm) cylinder Alias for 'tubs'. define defines a macro (argument-expanded set of commands). The first argument is the macro name, additional arguments become lines in the body of the expanded macro. The macro name becomes a command with up to 9 positional arguments. When the command is issued, the body is expanded and executed, with these substitutions: $0 MacroName $1-$9 Positional arguments of the command $# # macro expansions (for generating unique names) NOTE: $paramname is expanded in the define command, but $$paramname is expanded when the macro is invoked. demo demo command. This demo command takes both positional and named args, and is the prototype class for all commands. All argument values are merely displayed. 'demo default name=value...' sets default values. Named Arguments: s1 a demo string argument. s2 a demo string argument. d1 a demo double argument. d2 a demo double argument. do Do loop. Syntax: do i 1 10 [1] commands ... enddo Sets the parameter i to values 1, 2, 3, ... 10, and executes the commands. The increment is 1 by default, and negative increments are allowed (with limits reversed). 'do i 1 0' and 'do i 0 1 -1' will execute no commands. After completion, i retains its last value. Do-s, for-s, and multi-line if-s can be nested in any manner. Note: the do command will not work from standard-input or as a command in a single-line if. endgroup ends a group definition. The group may then be placed as any other element. If the group was not given a length via an argument, endgroup computes the length and adjusts the offsets of all elements in the group so they refer to the center of the group. eventcuts Implements cuts on event number via lists in files. The files are ASCII, with one event number per line. If the keep file is not empty, only event numbers listed in it will be analyzed (except those listed in the skip file). The skip file lists event numbers that will be skipped, and event numbers listed in both files will be skipped. When reading the files, lines beginning with '#' are ignored; blank lines are interpreted as event 0. Named Arguments: keep The file containing a list of event numbers to analyze (default is all). skip The file containing a list of event numbers to skip. filename Synonym for keep. file Synonym for keep. exit exit a command file. The exit command ceases reading the input file, and starts the simulation immediately (ignoring the remainder of the input file). extrusion construct a solid extrusion with axis along z This is a basic interface to G4ExtrudedSolid. A simple polygon in the X-Y plane is extruded along z, with optional scales in XY at the two ends (which generate a linear scaling along z). The polygon must be simple (no two sides intersect, no two vertices are equal). The vertices are listed starting from any vertex and traversing the polygon in either direction without lifting the pencil from the paper (Geant4 requires the traversal to be clockwise but this element internally reverses it if required). For an N-sided polygon give N vertices -- a side will be added from last to first to close the polygon; N is determined by counting the entries in the vertices argument. Note that while you cannot make an extrusion with a hole, you can make such an object in two parts or by placing a daughter volume in this one. Note the position placed is x=0,y=0,z=0, which is centered along z, but need not be near the center of the polygon in XY. With scale1!=scale2 this is not really an extrusion; by making one of them 0.001 or so, you can construct a sharp apex. Any x or y value in vertices can be an expression using double constants and the usual C operators and functions. Named Arguments (#=cannot be changed in place cmd): length Length of the extrusion (mm). # vertices List of vertices of the XY polygon (mm): 'x0,y0;x1,y1;...'; a line from last to first is added. A 2 mm square is: '-1,-1;-1,1;1,1;1,-1' # scale1 The XY scale at the upstream (-z) end (1.0). # scale2 The XY scale at the downstream (+z) end (1.0). # maxStep The maximum stepsize in the element (mm) material The material of the extrusion color The color of the extrusion (''=invisible) kill Set nonzero to kill every track that enters. vertexes Synonym for vertices. # fieldexpr implements a field map, E and/or B, from expressions. A fieldexpr element can be either a box or a cylinder; set length and radius for cylinder, set length and width and height for a box. Units are Tesla, MegaVolts/meter, mm, and ns. Expressions for the field components can use {x,y,z} for a box or {z,r} for a cylinder; the time expression can use {t}. If present, the time expression multiples all components. Expressions can use all C operators except ?:, and x^n is x to the nth power (n integer). The following functions are available: abs(), min(),max(), sqrt(), pow(), sin(), cos(), tan(), asin(), acos(), atan(), atan2(), sinh(), cosh(), tanh(), exp(), log(), log10(), floor(), ceil(), if(). if(condition,a,b) replaces the C (condition? a : b). A field map is used for tracking efficiency; the number of points in the map is increased until the largest map error divided by the maximum field is smaller than tolerance, or 1M points is exceeded. Similarly for the time dependence. For time dependence: if t-timeOffset<tmin, the value at tmin is used; if t-timeOffset>tmax, the value at tmax is used. Note that divide by zero is reported as invalid expression. For a Li lens you probably want to use an expression like this: 'if(r<100,500.0*r/100,500.0*100/(r+0.000001))', where 100mm is the radius, and 500T is the field at r=100mm. Named Arguments (#=cannot be changed in place cmd) (@=Tunable): factorB Factor for the B-field (1.0). @ factorE Factor for the E-field (1.0). @ timeOffset Time offset (ns). Bx Expression for Bx (Tesla), use {x,y,z}. # By Expression for By (Tesla), use {x,y,z}. # Bz Expression for Bz (Tesla), use {x,y,z} or {r,z}. # Br Expression for Br (Tesla), use {r,z}. # Bphi Expression for Bphi (Tesla), use {r,z}. # Ex Expression for Ex (MV/m), use {x,y,z}. # Ey Expression for Ey (MV/m), use {x,y,z}. # Ez Expression for Ez (MV/m), use {x,y,z} or {r,z}. # Er Expression for Er (MV/m), use {r,z}. # time Expression for time-dependence factor, use {t}. # nX Number of grid points in x. # nY Number of grid points in y. # nZ Number of grid points in z. # nR Number of grid points in r. # nT Number of grid points in t. # tolerance Required relative accuracy (0.001). # length Length of field map (mm). # width Width of rectangular field map (mm). # height Height of rectangular field map (mm). # radius Radius of cylindrical field map (mm). # tmin Minimum value of t (ns). # tmax Maximum value of t (ns). # fieldmap implements a field map, E and/or B, from a file. Reads an input file in BLFieldMap format to define E and/or B fields, optionally with time dependence. See the Users Guide for a description of the BLFieldMap format. Named Arguments (#=cannot be changed in place cmd) (@=Tunable): filename Filename for the Field Map. # file Synonym for filename. # current Current of the B-field. @ gradient Gradient of the E-field. @ timeOffset Time offset (ns). fieldntuple Generates an NTuple from B and E fields at specified points. Intended primarily for debugging. This command makes it easy to plot fields as a function of position and time, using existing NTuple plotting tools. Outputs x,y,z,t,Bx,By,Bz,Ex,Ey,Ez into an NTuple. Units are mm, ns, Tesla, and MegaVolts/meter. Runs after the reference particle is tracked. Only global coordinates are used. The single positional argument is the name of the NTuple. Named arguments {x,y,z,t} are of two forms specifying coordinate values: x=Xmin,Xmax,dX or x=X1:X2:X3:... which generate the obvious loops (single value is OK). Expressions can be used. Omitted coordinates are held fixed at 0.0. Named Arguments: category The category of the NTuple. format NTuple format (see above for list). filename Name of file. x Loop for x values: Xmin,Xmaz,dX or X1:X2:... (mm) y Loop for y values: Ymin,Ymaz,dY or Y1:Y2:... (mm) z Loop for z values: Zmin,Zmaz,dZ or Z1:Z2:... (mm) t Loop for t values: Tmin,Tmaz,dT or T1:T2:... (ns) exit Set nonzero to exit after generating NTuple (0). file Synonym for filename. for For loop. Syntax: for i v1 v2 v3 ... commands ... endfor Sets the parameter i to values v1, v2, v3, ..., and executes the commands. Values can be any strings, including numbers, except they cannot contain an '=' (named parameter). After completion, i retains its last value. Do-s, for-s, and multi-line if-s can be nested in any manner. Note: the for command will not work from standard-input or as a command in a single-line if. g4ui Accesses the Geant4 user interface Each positional argument is executed as a Geant4 UI command, according to the when parameter. No positional arguments means open a UI session on stdout/stdin. For a given value of when, the UI commands from all g4ui commands are executed in order. Named Arguments: when 0=before reference, 1=before beam, 2=after beam, 3=cannot be used, 4=visualization. genericbend construct a generic bending magnet. The field region is a box with By specified. A fringe field computation based on the method of COSY INFINITY is included by default, extending the field in a rectangle extending the straight aperture along the local z. This is first order only, and assumes the magnet is infinitely wide; the fringe field extends outside of the magnet aperture only in a region extending the aperture in x and y. As the fringe field is first order only, it is slightly non-Maxwellian. By default, the aperture is filled with a box volume of the fieldMaterial; this prevents placing any object inside the aperture. With openAperture=1 no aperture volume is used, and objects can be placed into the parent volume that are inside the aperture. Named Arguments (#=cannot be changed in place cmd) (@=Tunable): fieldWidth The width of the field region (mm) fieldHeight The height of the field region (mm) fieldLength The length of the field region (mm) ironWidth The width of the iron region (mm) ironHeight The height of the iron region (mm) ironLength The length of the iron region (mm) By The magnetic field (Tesla) @ maxStep The maximum stepsize in the element (mm) fieldMaterial The material of the field region. fieldColor The color of the field region. ironMaterial The material of the iron region. ironColor The color of the iron region. kill Set nonzero to kill particles hitting the iron. fringe Fringe field computation, set to 0 to disable, or a comma-separated list of 6 Enge function parameters. fringeFactor Fringe depth factor (1.0). openAperture Set nonzero to omit the aperture volume. # genericquad construct a generic quadrupole magnet. The field region is a tubs with gradient specified. A positive gradient yields a horizontally-focusing quad for positive particles. If apertureRadius>0 the quad has a circular aperture. For a 'rounded +' aperture using circles for the poles, set poleTipRadius, coilRadius, coilHalfwidth. Due to visualization bugs, in the latter case you cannot see through the aperture; it is solid black. A fringe field computation based on the method of COSY INFINITY is included by default, extending the field region. This is first order only, and the fringe field extends outside of the magnet aperture only in a cylinder extending the aperture straight along local z. As the fringe field is first order only, it is slightly non-Maxwellian. Named Arguments (#=cannot be changed in place cmd): fieldLength The length of the field region (mm) ironLength The length of the iron (mm) ironRadius The outer radius of the iron (mm) apertureRadius The radius of the aperture (mm) poleTipRadius The inner radius of the pole tips (mm). coilRadius The radius of the inside of the coil (mm). coilHalfwidth The halfwidth of the coil (mm). coilHalfWidth Synonym for coilHalfwidth. gradient The magnetic field gradient, dBy/dx (Tesla/meter) maxStep The maximum stepsize in the element (mm) ironMaterial The material of the iron region. fieldMaterial The material of the field region. ironColor The color of the iron region. kill Set nonzero to kill tracks hitting the iron. fringe Fringe field computation, set to 0 to disable, or a comma-separated list of 6 Enge function parameters. fringeFactor Fringe depth factor (1.0). openAperture Set nonzero to omit the aperture volume. # geometry Arranges to perform a geometry test. The geometry test checks nPoints points on the surface of each element, verifying that they are inside the parent element and that they are not inside any sibling element. The default of 100 points is usually sufficient; 0 means omit the geometry test. The first 20-40 points (depending on element) test 'corners', the rest are randomly distributed on the surface. The default tolerance is 0.002 mm. Named Arguments: nPoints The number of surface points to test per element printGeometry Set nonzero to print the entire geometry. visual Set nonzero to display the geometry test points. tolerance Tolerance for inside/outside tests (mm). group begins definition of a group. A group is a collection of elements that can be placed together, preserving their relative positions. The group is a LogicalVolume in the geant4 geometry -- this means that a group cannot overlap any other group or object, even if the overlapping portion of the group is empty. If you need to permit overlaps, consider using a macro instead (the define command). If the group is given a length, then children can be placed at specific z offsets relative to the center of the group. If the group is not given a length, then children can only be placed sequentially along z, and the length will be computed by the endgroup command. Width and height are computed from the largest child or the argument. If radius is set to 0, the group will be a cylinder with radius determined by the largest width or height placed into it; if >0 then that is the fixed radius. If radius is not set then a box is used. Note: when placing objects into a group, if the rename argument is used, it should begin with a '+' to include the group's name in the object's name; otherwise there may be multiple objects with the same name -- this is only a major problem for virtualdetector-s and other output objects. The group's name is included by default if no rename is used on the place command. Named Arguments (#=cannot be changed in place cmd): length Overall group length along z (mm) # width Overall group width (mm) # height Overall group height (mm) # radius Radius for a cylindrical group (mm) # material Material of the volume outside children color Color of the volume of the group maxStep The maximum stepsize in the volume (mm) helicaldipole construct a helicaldipole magnet. The field region is a cylinder with a helical dipole field plus a solenoidial field. The simple model=1 provides just a sine and cosine transverse dependence, while the maxwellian model=2 has both dipole and quadrupole terms. Both the dipole scale bD [T] and quadrupole scale bQ [T/m] are now at rho=0; the user must determine the correct values externally. Note that this Element generates a magnetic field only, and only within the cylinder defined by length and radius. So it has no solid associated with it, and is invisible. Named Arguments: radius The radius of the field region (mm) model The model of field calculated(simple=1, rpj and ysd model=2, ttominaka et al model=3), modulations in bd,bq,bz= 4 length The length of the field region (mm) bD The dipole magnitude at rho=0 (Tesla). lambda Helix period along the Z axis (mm). phi0 The phase of the XY field at the entrance (deg). Bsolenoid The value of Bsolenoid (Tesla). bQ The quadrupole magnitude at rho=0 (Tesla). bs The sextupole magnitude at rho=0 (Tesla). rr Reference radius (mm) psi0 The offset between the dipole term and the quadrupole term (Degrees). ez The base electric field inside the helix channel (GV/m). helicalharmonic construct a helicalharmonic magnet. Creates a cylindrical region containing the field of a magnetic helical harmonic of given order [n]. The field is defined by the value of the (n-1) order derivative [b] of the vertical field component (when the initial phase is 0) with respect to the horizontal coordinate at the center of the helix: b=d^(n-1)B_phi/dr^(n-1) @ [r=0 & phi-k*z+phi0=0], where k=2*pi/lambda is the helix's wave number, [lambda] is the length of the helix's period, and phi0 is the initial phase. The field components in the cylindrical frame are given by: B_phi=(2/(n*k))^(n-1)*b*(I[n-1](n*k*r)-I[n+1](n*k*r))* cos(n*(phi-k*z+phi0)), B_r =(2/(n*k))^(n-1)*b*(I[n-1](n*k*r)+I[n+1](n*k*r))* sin(n*(phi-k*z+phi0)), B_z =-2*(2/(n*k))^(n-1)*b*I[n](n*k*r)*cos(n*(phi-k*z+phi0)), where I[n](x) is the modified Bessel function of the first kind of order [n]. Note that this Element generates magnetic field only, and only within the cylinder defined by length and radius. So it has no solid associated with it, and is invisible. Named Arguments: radius The radius of the field region (mm) length The length of the field region (mm) n Order of helical harmonic (i.e. n=1 for dipole) b (n-1)-order derivative of the field at the center (T/m^(n-1)) lambda Helix period along the Z axis (mm). phi0 The phase of the XY field at the entrance (rad). help provides interactive help. help with no arguments lists all commands. 'help command' gives more detailed help on that command. 'help *' gives detailed help for all commands. If the first argument is -exit the program will exit after printing the help. idealsectorbend construct an ideal sector bending magnet. The field region is a sector with By specified. Unlike most Elements, the position of the idealsectorbend is the center of the front face of its field (aperture). angle>0 bends to the left around Y; angle<0 bends right. The only useful rotations are around the centerline Z. Should be followed immediately by a cornerarc. Note that -90<angle<90 degrees. Named Arguments (@=Tunable): angle Angle of bend (degrees). fieldCenterRadius Center radius of field (mm). fieldInnerRadius Inner radius of field (mm). fieldOuterRadius Outer radius of field (mm). fieldHeight Height of field (mm). ironInnerRadius Inner radius of iron (mm). ironOuterRadius Outer radius of iron (mm). ironHeight Height of iron (mm). By Magnetic field (Tesla). @ fieldMaterial Material of field. fieldColor Color of field. ironMaterial Material of iron. ironColor Color of iron. maxStep The maximum stepsize in the element (mm) kill Set nonzero to kill particles hitting the iron. if Conditional execution of command(s), and if/elseif/else/endif. Single-line format: if $i==1 CMD1 CMD2 ... If the expression is true (nonzero), the commands are executed. The commands usually need to be quoted. Multi-line format: if $i==1 CMD1 ... elseif $i==2 CMD2 ... else CMD3 ... endif The commands are executed in the usual way; elseif and else are optional, but endif is mandatory. Any number of elseif-s and commannds can be used. Do-s, for-s, and multi-line if-s can be nested in any manner. include includes a command file. include requires one argument, the file to include. lilens construct a simple Lithium lens. This element consists of a current-carrying cylinder and its field. The field exists only between the end planes of the cylinder, out to adial infinity. Named Arguments: radius The radius of the current-carrying cylinder (5 mm) length The length of the cylinder (100 mm). current The current in the cylinder (100000 Amp). material The material of the cylinder (Li). color The color of the tube or cylinder (''=invisible) maxStep The maximum stepsize in the element (mm). list provides interactive list of interesting internal tables. list with no arguments lists all lists except processes. 'list name' lists that specific one. 'list -exit name(s)' will exit after listing. List names are: commands all commands materials currently known materials physics all physics lists particles currently known particles processes currently known physics processes *** NOTE: the particles and processes lists are not populated until the physics list is selected (via the physics command). Different physics lists use different processes and particles. ***NOTE: listing processes will prevent any simulating, as will a non-empty particle list. Named Arguments: particle Comma-separated list of particles for which details will be printed man Alias for 'help'. material construct a new material. This is an interface to G4Material. This command is rarely required, because elements and most common materials are available via the NIST database. Any material available from the NIST database can simply be used -- if it is unknown then it will be automatically defined from the database. Uncommon materials or nonstandard densities must be defined with this command. The first argument to this command is the material name, which is always required; density is also required. The command to define an element (e.g. with non-standard density) is: material H2 Z=1 A=1.01 density=0.000090 A mixture or compound is a combination of known materials and/or elements; the command is: material water H,0.1119 O,0.8881 density=1.0 The numbers following the element names are their mass fractions (note that WATER is available from the NIST db). Either type of command can optionally have: pressure, temperature, state. With no arguments, this command prints the current material table. Note that 'G4_' is prepended to the names of most materials that are obtained from the NIST database; 'G4_Al' and 'Al' refer to the same material (unless one was previously defined using this command). The following three arguments permit track filtering for all volumes made of this material: keep A comma-separated list of particle names to keep. kill A comma-separated list of particle names to kill. require An expression that must evaluate nonzero or the track is killed. The require expression uses global coordinates and can use the followng track variables: x,y,z,Px,Py,Pz,t,PDGid,EventID,TrackID,ParentID,wt The following materials are known from the NIST database, and will be automatically created on first use: H He Li Be B C N O F Ne Na Mg Al Si P S Cl Ar K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe Cs Ba La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn Fr Ra Ac Th Pa U Np Pu Am Cm Bk Cf A-150_TISSUE ACETONE ACETYLENE ADENINE ADIPOSE_TISSUE_ICRP AIR ALANINE ALUMINUM_OXIDE AMBER AMMONIA ANILINE ANTHRACENE B-100_BONE BAKELITE BARIUM_FLUORIDE BARIUM_SULFATE BENZENE BERYLLIUM_OXIDE BGO BLOOD_ICRP BONE_COMPACT_ICRU BONE_CORTICAL_ICRP BORON_CARBIDE BORON_OXIDE BRAIN_ICRP BUTANE N-BUTYL_ALCOHOL C-552 CADMIUM_TELLURIDE CADMIUM_TUNGSTATE CALCIUM_CARBONATE CALCIUM_FLUORIDE CALCIUM_OXIDE CALCIUM_SULFATE CALCIUM_TUNGSTATE CARBON_DIOXIDE CARBON_TETRACHLORIDE CELLULOSE_CELLOPHANE CELLULOSE_BUTYRATE CELLULOSE_NITRATE CERIC_SULFATE CESIUM_FLUORIDE CESIUM_IODIDE CHLOROBENZENE CHLOROFORM CONCRETE CYCLOHEXANE 1,2-DICHLOROBENZENE DICHLORODIETHYL_ETHER 1,2-DICHLOROETHANE DIETHYL_ETHER N,N-DIMETHYL_FORMAMIDE DIMETHYL_SULFOXIDE ETHANE ETHYL_ALCOHOL ETHYL_CELLULOSE ETHYLENE EYE_LENS_ICRP FERRIC_OXIDE FERROBORIDE FERROUS_OXIDE FERROUS_SULFATE FREON-12 FREON-12B2 FREON-13 FREON-13B1 FREON-13I1 GADOLINIUM_OXYSULFIDE GALLIUM_ARSENIDE GEL_PHOTO_EMULSION Pyrex_Glass GLASS_LEAD GLASS_PLATE GLUCOSE GLUTAMINE GLYCEROL GUANINE GYPSUM N-HEPTANE N-HEXANE KAPTON LANTHANUM_OXYBROMIDE LANTHANUM_OXYSULFIDE LEAD_OXIDE LITHIUM_AMIDE LITHIUM_CARBONATE LITHIUM_FLUORIDE LITHIUM_HYDRIDE LITHIUM_IODIDE LITHIUM_OXIDE LITHIUM_TETRABORATE LUNG_ICRP M3_WAX MAGNESIUM_CARBONATE MAGNESIUM_FLUORIDE MAGNESIUM_OXIDE MAGNESIUM_TETRABORATE MERCURIC_IODIDE METHANE METHANOL MIX_D_WAX MS20_TISSUE MUSCLE_SKELETAL_ICRP MUSCLE_STRIATED_ICRU MUSCLE_WITH_SUCROSE MUSCLE_WITHOUT_SUCROSE NAPHTHALENE NITROBENZENE NITROUS_OXIDE NYLON-8062 NYLON-6-6 NYLON-6-10 NYLON-11_RILSAN OCTANE PARAFFIN N-PENTANE PHOTO_EMULSION PLASTIC_SC_VINYLTOLUENE PLUTONIUM_DIOXIDE POLYACRYLONITRILE POLYCARBONATE POLYCHLOROSTYRENE POLYETHYLENE MYLAR PLEXIGLASS POLYOXYMETHYLENE POLYPROPYLENE POLYSTYRENE TEFLON POLYTRIFLUOROCHLOROETHYLENE POLYVINYL_ACETATE POLYVINYL_ALCOHOL POLYVINYL_BUTYRAL POLYVINYL_CHLORIDE POLYVINYLIDENE_CHLORIDE POLYVINYLIDENE_FLUORIDE POLYVINYL_PYRROLIDONE POTASSIUM_IODIDE POTASSIUM_OXIDE PROPANE lPROPANE N-PROPYL_ALCOHOL PYRIDINE RUBBER_BUTYL RUBBER_NATURAL RUBBER_NEOPRENE SILICON_DIOXIDE SILVER_BROMIDE SILVER_CHLORIDE SILVER_HALIDES SILVER_IODIDE SKIN_ICRP SODIUM_CARBONATE SODIUM_IODIDE SODIUM_MONOXIDE SODIUM_NITRATE STILBENE SUCROSE TERPHENYL TESTIS_ICRP TETRACHLOROETHYLENE THALLIUM_CHLORIDE TISSUE_SOFT_ICRP TISSUE_SOFT_ICRU-4 TISSUE-METHANE TISSUE-PROPANE TITANIUM_DIOXIDE TOLUENE TRICHLOROETHYLENE TRIETHYL_PHOSPHATE TUNGSTEN_HEXAFLUORIDE URANIUM_DICARBIDE URANIUM_MONOCARBIDE URANIUM_OXIDE UREA VALINE VITON WATER WATER_VAPOR XYLENE GRAPHITE lH2 lN2 lO2 lAr lKr lXe PbWO4 Galactic GRAPHITE_POROUS LUCITE BRASS BRONZE STAINLESS-STEEL CR39 OCTADECANOL KEVLAR DACRON NEOPRENE DNA_ADENINE DNA_GUANINE DNA_CYTOSINE DNA_THYMINE DNA_URACIL DNA_ADENOSINE DNA_GUANOSINE DNA_CYTIDINE DNA_URIDINE DNA_METHYLURIDINE DNA_MONOPHOSPHATE DNA_A DNA_G DNA_C DNA_U DNA_MU Stainless304 Stainless316 lHe Aliases: LHe=lHe Air=AIR, H2O=WATER, Vacuum=Galactic, LH2=lH2, Scintillator=POLYSTYRENE Named Arguments: a Effective Atomic Weight of the material (g/mole) z Effective Atomic Number of the material density Density of the material (gm/cm^3) pressure Pressure of the material (Atm) temperature Temperature of the material (K) state State of the material (g,l, or s) A Synonym for a (g/mole) Z Synonym for z keep A comma-separated list of particle names to keep (all others are killed; ignored if empty). kill A comma-separated list of particle names to kill. require An expression that must evaluate nonzero or the track is killed. movie Generate movie NTuple. This command outputs a set of NTuples suitable for generating a movie. Named Arguments: coordinates Coordinates: global, centerline, or reference (default=r). multipole construct a generic multipole magnet. Multipole magnetic fields from dipole through dodecapole are implemented with a cylindrical field region and optional surrounding iron (ironLength=0 or ironRadius=0 omits it). All fields with positive strengths are oriented so in the X-Z plane for X>0 (beam left) the field is purely By. Negative strengths are allowed and reverse the field. The fringe field computation is not implemented. Named Arguments (#=cannot be changed in place cmd): fieldLength The length of the field region (mm) ironLength The length of the iron (mm) ironRadius The outer radius of the iron (mm) apertureRadius The radius of the aperture (mm) ironMaterial The material of the iron region. fieldMaterial The material of the field region. dipole Strength of dipole (Tesla) quadrupole Strength of quadrupole (T/m) sextupole Strength of sextupole (T/m^2) octopole Strength of octopole (T/m^3) decapole Strength of decapole (T/m^4) dodecapole Strength of dodecapole (T/m^5) ironColor The color of the iron region. kill Set nonzero to kill tracks hitting the iron. maxStep The maximum stepsize in the element (mm) fringe Fringe field computation, set to 0 to disable fringeFactor Fringe depth factor (1.0). openAperture Set nonzero to omit the aperture volume. # muminuscapturefix Fixes up the G4MuonMinusCaptureAtRest process. This class adds extra neutrons to mu- capture. The neutrons are added with a Poisson distribution having a mean of neutronMeanNumber, and with an exponential distribution in kinetic energy: (1/neutronMeanEnergy)*exp(-KE/neutronMeanEnergy) As the muonic atom cascades to its ground state it forgets the incident mu- direction, so the extra neutrons are generated isotropically in the lab. The extra neutrons are added only to those captures that are hadronic (i.e. not decay in orbit). The value of neutronMeanNumber should reflect this. The default values correspond to Aluminum. Named Arguments: neutronMeanNumber Mean mumber of extra neutrons per nuclear capture (2.5). neutronMeanEnergy Mean energy of neutron spectrum (MeV) newparticlentuple NTuple containing particle tracks when created. Note that initial beam particles are included, unless require is set to 'ParentID>0'. The standard NTuple fields are: x,y,z (mm) Px,Py,Pz (MeV/c) t (ns) PDGid (11=e-, 13=mu-, 22=gamma, 211=pi+, 2212=proton, ...) EventID (may be inexact above 16,777,215) TrackID ParentID (0 => primary particle) Weight (defaults to 1.0) The following additional fields are appended for format=Extended, format=asciiExtended, and format=rootExtended: Bx, By, Bz (Tesla) Ex, Ey, Ez (Megavolts/meter) ProperTime (ns) PathLength (mm) PolX, PolY, PolZ (polarization) InitialKE (MeV when track was created) Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Extended asciiExtended Named Arguments (#=cannot be changed in place cmd): format The NTuple format (see above for list). filename The filename for the NTuple. file Synonym for filename. require Expression which must be nonzero to include the track (default=1) # coordinates Coordinates: global, centerline, or reference (default=c). kill Set nonzero to kill tracks after entering into NTuple; does not kill track if require fails (0). ntuple Define an NTuple containing multiple detectors. An ntuple holds the data from multiple detectors in a single NTuple, with one row (entry) per event or per track. This permits the generation of plots that compare different detectors. Up to 64 detectors can be used. While 'detector' is used in this description, any existing NTuple can be used, generated by any command, such as: virtualdetector, zntuple, beamlossntuple, timentuple, and newparticlentuple. There are two ways the detectors can be combined: the default method is to construct a new NTuple that combines the fields of all the detectors, each prepended with the detector name. If union=1 is given, then all detectors must have the same list of fields, and that list is used for this NTuple; any hit in any detector is simply copied to this NTuple -- this permits multiple detectors to be combined into a single NTuple (you may want noSingles=1 for the detectors). With union=1, the 'required', 'veto' and 'minHit' arguments cannot be used. By default, an entry in this ntuple is made for each event satisfying the require, veto, and minHit conditions; if perTrack=1 then an entry is made for each track that satisfies the require, veto, and minHit conditions. Any hit in any detector matching the patterns in veto will prevent the event/track from being entered into the ntuple. If multiple hits occur in a given detector during the event or track, only the first one is kept in this ntuple. Detectors are specified by patterns identical to UNIX file-matching, so '*Det*' matches any detector with 'Det' anywhere in its name, etc. The 'required' argument permits events to be omitted unless all of the matching detectors were hit at least once in the event or track. The patterns in 'required' are applied only to detectors in the ntuple, so a simple '*' only matches detectors named in the 'detectors' argument. If union is nonzero, the hits in each detector are entered into this NTuple as they occur; each hit in any detector is included as a row in this NTuple. All detectors must have the same fields, which are used for this NTuple. NOTE: the name of a detector is by default the concatenation of its ancestors' names before its own (except World), unless rename=NAME was used in its place command. The patterns are applied to the names of the virtualdetectors as they were placed (including rename), not the bare name of the virtualdetector command. If 'rename=det#' was used when placing the virtualdetector-s, you probably want a * to match the #, or list them individually (det1,det2,det3...). NOTE: This command does not work correctly in collective tracking mode, unless union=1. Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Named Arguments: category The category of the NTuple. detectors A comma-separated list of detector patterns. required A comma-separated list of required detector patterns(default=*). veto A comma-separated list of detector patterns, any hit cancels entry into the NTuple (default=''). format NTuple format (see above for list). filename Name of file. minHit Minimum number of detectors hit (default 0). perTrack Nonzero for an entry per track; 0 for an entry per event (default 0). union Set nonzero to perform a union of the detectors, rather than combining them. require Synonym for required. minHits Synonym for minHit. file Synonym for filename. output redirects stdout and stderr to a file output requires one argument, the new output file. Any output generated before this command will not appear in the file, so this command should come at the start of the input.file, preceded only by setting parameters. After the redirection, it will re-print the G4beamline version and the current parameter values to the file. The most common usage is to redirect output to a file named like the .root file, when that is determined by parameter values: param -unset param1=1.0 param2=3.0 param histofile=$param1,$param2 output $histofile.out param Defines parameter values. Parameters are named strings used to parameterize the input file; a few are used for program control. Parameters are set by the param commend, and on the command line (all program arguments after the first are interpreted as name=value). 'param name=value ...' defines parameters. If no arguments are present, all parameters are displayed. If the first argument is '-unset', this command will not overwrite parameters that are already set (e.g. from the command line - this permits the input.file to set defaults that can be overridden on the command line). Parameters are expanded only in the arguments of commands: 'cmd argname=$paramname [...]'; real-valued expressions for arguments can use $paramname as a value, as long as paramname contains a valid real expression. Parameters are most useful for setting global things like viewer and histoFile, or as parameters used in the input.file. When a parameter is used, if it has not been defined, it will be defined from the environment if possible; if it is not defined in the environment then this generates an error message. The values of parameters are strings, but if the value of a parameter is set to a valid real expression including at least one operator {+-*/^<>=()!~&%|?}, the parameter value will be set to the numerical value of the expression to 8 significant digits. NOTE: pre-defined Program control parameters (listed below) are defined before the command-line and are not affected by -unset. Program control Parameters: Zcl Last centerline Z position used (updated continuously) deltaChord Geant4 tracking parameter deltaIntersection Geant4 tracking parameter deltaOneStep Geant4 tracking parameter epsMax Geant4 tracking parameter epsMin Geant4 tracking parameter eventTimeLimit CPU Time Limit (sec) histoFile Default (Root) NTuple output filename histoUpdate Output update interval (events) maxStep Maximum physics step size (mm) minStep Minimum step size (mm) steppingFormat Format for printing steps steppingVerbose Set nonzero to print each step viewer Visualization driver selected (default=none) worldMaterial Material of the World volume zTolerance Tolerance for Z steps (mm) steppingFormat is a space- or comma-separated list of items: EXT toggle extended precision (3 more digits) TAG print a '>' (useful to grep output) N step number NSTEP Synonym of N GLOBAL X,Y,Z,T in global coords XYZT Synonym of GLOBAL CL X,Y,Z,dxdz,dydz in CL coords CLX extended precision CL KE kinetic energy STEP step length STEPLEN Synonym of STEP VOL volume name VOLNAME Synonym of VOL PROCESS process name B magnetic field E electric field P 3-momentum MAT material name ID event ID, track ID, parent ID PART particle name SEG centerline coord segment number WT weight POLAR polarization NL <newline> NEWLINE Synonym of NL \n Synonym of NL particlecolor Set the colors for particle tracks. Arguments are of the form 'name=1,1,0', where name is the standard name of a particle, and 1,1,0 is the R,G,B value desired for its color ('' for invisible) The special names plus, minus, and neutral will set colors for unnamed particles of each charge. The name reference will apply to the reference track (defaults to invisible). particlefilter Will kill particles from a list, or force particles to decay. A particlefilter will force the decay of certain particles when they enter the physical volume of the element. The list of affected particles is in the 'decay' argument, and the normal Decay process is disabled for them. In addition, the 'kill' argument is a list of particles to kill when they enter the element, and the 'keep' argument will kill all particles not named, if it is not empty. require is an expression invloving track parameters that will kill the track if it evaluates to zero (use a comparison operator). The variables available are: x,y,z,t,Px,Py,Pz,Ptot,PDGid,EventID,TrackID,ParentID Units are mm, ns, MeV/c. If nWait > 1, particles will not be killed until they hit this element nwait times; this can be used to limit the number of revolutions around a ring. Decays are unaffected by nWait. referenceWait does the same for the reference particle The element can be either a cylinder or a box: set length and radius, or set length and width and height. Named Arguments (#=cannot be changed in place cmd): radius The radius of the cylindrical particlefilter (mm). innerRadius The inner radius of the cylindrical particlefilter (0 mm, solid). height The height of the rectangular particlefilter (mm). width The width of the rectangular particlefilter (mm). length The length of the particlefilter (mm). maxStep The maximum stepsize in the element (mm). material The material (default=parent's). color The color of the particlefilter (white). decay A comma-separated list of particle names to decay. # kill A comma-separated list of particle names to kill. # keep A comma-separated list of particle names to keep. # nWait Intersection # to do the kill (default = 1) referenceWait Intersection # for reference (default = 1) require Expression which will kill the track if zero. # steppingVerbose Nonzero to display track kills. decays Synonym for decay. # particlesource Interface to the Geant4 General Particle Source. The Geant4 General Particle Source (GPS) is a very flexible and general way to generate events. It is controlled by Geant4 commands which should follow this command in the input.file. If you have a macro, you can include it using either the G4beamline 'include' command or the Geant4 command '/control/execute'. Note that G4beamline only recognizes Geant4 commands when the '/' is in column 1. Due to the design of the GPS, only one particlesource command can be used, but the GPS permits multiple sources to be combined. NOTE: the Geant4 General Particle Source inherently uses global coordinates, so this is most useful at the beginning of a beamline when global=centerline. Note also that it is very easy to generate a beam headed in the -z direction (this command will rotate to the +z direction: '/gps/ang/rot1 -1 0 0'). To use this, see the User Manual for the GPS at http://reat.space.qinetiq.com/gps Named Arguments: nEvents Number of events to process (default=1), set to lastEvent-firstEvent+1 if both are set. firstEvent First event # to process (default is the next sequential eventID, 1 if none) lastEvent Last (highest) event # to process secondaryTrackID The next TrackID for secondaries (1001). physics Defines the physics processes and controls them. Exactly one physics command must be present. This command implements the geant4 physics lists of physics processes. The command is 'physics QGSP' for the QGSP list, and similarly for the other lists. With no argument it prints the available physics lists. Note that stochastic processes are always disabled while tracking the tune and reference particles. The only non-stochastic processes are Transportation and ionization energy loss (with fluctuations disabled). For muon beam studies you may want to disable the Decay process. spinTracking=1 will enable tracking the spins of e+, e-, mu+, and mu- (only), including pion decays to polarized muons, polarized muon decays, and the force from the particle's magnetic moment. The rare pion decay to e nu is included, but the e are unpolarized. The muon decays give the correct distribution for the electron, but only approximate distributions for the neutrinos, and all are unpolarized. NOTE: this command defines the particles used throughout the simulation, so this command must come before others that use particle names. NOTE: the rare decay mode for pi+/pi- to e nu is always added, with branching ratio 1.230E-4. The default all-around physics list for HEP is called 'QGSP_BERT'. NOTE: At present there is a bug in Geant4 tracking and the magnetic moment is not used. For >~ 1 GeV muons and practical fields this is a very small error. Named Arguments: disable Comma-separated list of processes to disable (e.g. 'Decay,msc'). inactivate Synonym of disable. deactivate Synonym of disable. doStochastics Set to zero to disable all stochastic processes. minRangeCut Minimum range cut for particle production (1 mm) list Nonzero to list the processes (later in output). gammaToMuPair Nonzero to add gamma->mu+mu- (0). spinTracking Nonzero to track particle spins (0). synchrotronRadiation Nonzero to add synchrotron radiation to the physics list for e- and e+. synchrotronRadiationMuon Nonzero to add synchrotron radiation to the physics list for mu- and mu+ NOTE: This is experimental, and may not work correctly. ----- PHYSICS LISTS ----- Further guidance in selecting physics lists is available at: http://geant4.web.cern.ch/geant4/support/physicsLists/referencePL/index.shtml The default all-around physics list for HEP is called 'QGSP_BERT'. LHEP uses exclusively parameterized modeling. FTF lists use the FRITIOF description of string excitation and fragmentation. QGSP lists use the quark gluon string model QGSC are as QGSP except applying CHIPS modeling for the nuclear de-excitation. _BERT uses Geant4 Bertini cascade below ~ 10 GeV. _BIC uses Geant4 Binary cascade below ~ 10 GeV. _EMV suffix indicates a faster but less accurate EM modeling. _EMX suffix indicates the low-energy EM processes. _HP suffix uses the data driven high precision neutron package (thermal to 20 MeV). _NQE suffix indicates a list for comparison with earlier release. List of available physics lists: CHIPS No synopsis available. FTFP_BERT For calorimetry. The FTF model is based on the FRITIOF description of string excitation and fragmentation. Uses Geant4 Bertini cascade for primary protons, neutrons, pions and Kaons below ~10GeV. FTFP_BERT_TRV A variant of QGSP_BERT where the Geant4 Bertini cascade is only used for particles below ~5.5 GeV. FTF_BIC No synopsis available. LBE For low background experiments (e.g. underground) LHEP For calorimetry -- is the fastest, when it comes to CPU. It uses the LEP and HEP parametrized models for inelastic scattering. The modeling parametrizes the final states individual inelastic reactions, so you will not see resonances, and the detailed secondary angular distributions for O(100MeV) reactions may not be described perfectly. The average quantities will be well described. QBBC No synopsis available. QGSC_BERT For calorimetry and high energy physics trackers -- is as QGSP for the initial reaction, but uses chiral invariant phase-space decay (multi-quasmon fragmentation) to model the behavior of the system's fragmentation. Uses Geant4 Bertini cascade for nucleon and pion induced reactions. QGSP For calorimetry and high energy physics trackers and high-energy and medium-energy production targets -- uses theory driven modeling for the reactions of energetic pions, kaons, and nucleons. It employs quark gluon string model for the 'punch-through' interactions of the projectile with a nucleus, the string excitation cross-sections being calculated in quasi-eikonal approximation. A pre-equilibrium decay model with an extensive evaporation phase to model the behavior of the nucleus 'after the punch'. It uses current best pion cross-section. QGSP_BERT Like QGSP, but using Geant4 Bertini cascade for primary protons, neutrons, pions and Kaons below ~10GeV. In comparison to experimental data we find improved agreement to data compared to QGSP which uses the low energy parameterised (LEP) model for all particles at these energies. The Bertini model produces more secondary neutrons and protons than the LEP model, yielding a better agreement to experimental data. QGSP_BERT_CHIPS No synopsis available. QGSP_BERT_HP Like QGSP_BERT but with _HP modeling for neutrons. QGSP_BIC Like QGSP, but using Geant4 Binary cascade for primary protons and neutrons with energies below ~10GeV, thus replacing the use of the LEP model for protons and neutrons In comparison to teh LEP model, Binary cascade better describes production of secondary particles produced in interactions of protons and neutrons with nuclei. QGSP_BIC_HP Like QGSP_BIC but with _HP modeling for neutrons. QGSP_FTFP_BERT No synopsis available. QGS_BIC No synopsis available. QGSP_INCLXX No synopsis available. QGSP_INCL_ABLA No synopsis available. Shielding No synopsis available. pillbox Defines a pillbox RF cavity A Pillbox RF cavity is the basic RF element used to construct a linac. The phaseAcc parameter sets the phase of the tune particle at the center of the cavity, and the timing offset of the cavity is determined from that the first time that the Tune particle is tracked through the cavity. Zero degrees is the rising zero-crossing of the Ez field. If timeOffset is specified, it is used rather than setting it from the Tune particle. The Pipe, walls, and collars are always made of copper. Pipe, wall, collar, win1, and win2 can be omitted by setting their thickness to 0. Common usage is to set the collar values so by placing multiple pillboxes sequentially the collars form a beam pipe between them. Note that section 4.4 of the User's Guide has a dimensioned drawing of a pillbox. Named Arguments (#=cannot be changed in place cmd) (@=Tunable): maxGradient The peak gradient of the cavity (MV/m) @ color The color of the cavity frequency The frequency of the cavity (GHz) # innerLength The inside length of the cavity (mm) # innerRadius The inside radius of the cavity (mm) # pipeThick The thickness of the pipe wall (mm) # wallThick The thickness of the cavity walls (mm) # irisRadius The radius of the iris (mm) # collarRadialThick The radial thickness of the collar (mm) # collarThick The thickness of the collar along z(mm) # win1Thick The thickness of the central portion of the windows; zero for no window (mm) # win1OuterRadius The radius of the central portion of the windows (mm) # win2Thick The thickness of the outer portion of the windows; zero for no window (mm) # winMat The material of the windows phaseAcc The reference phase of the cavity (degrees) skinDepth The skin depth (mm) # timingTolerance Tolerance for timing tuning (ns) maxStep The maximum stepsize in the element (mm). cavityMaterial Material of cavity volume (Vacuum). timeOffset Time offset for cavity (default: tuned by tune particle) (ns). timeIncrement Increment to timeOffset, applied AFTER tuning. (ns). fieldMapFile Filename for BLFieldMap (pillbox if null). # kill Set nonzero to kill tracks that hit the pipe, walls, or collars (0). place places an element into the current group (or world). Every element can be placed multiple times into the beamline. For most elements the geometrical centerpoint is placed; for polycone the local x=y=z=0 point is placed. If front is nonzero then the front of the element is placed. If z is specified, then the element is placed at that z position relative to the center of the enclosing group. If z is not specified, then the element is placed immediately downstream (higher z) of the previous element in the group, or at the upstream edge of the group if this is the first element in the group. The 'rename' argument can be used to change the name of the element (applies to traces and other uses of object names, such as the NTuple name of a virtualdetector). When placing into a group or other object, the rename argument should normally begin with '+' to include the parent's name; otherwise multiple placements of the parent will generate multiple objects with identical names -- that should be avoided for output objects like virtualdetector. Without a rename argument, the parent's name is included automatically. When multiple copies are placed, z refers to the first, and the rest are placed sequentially along z. When placing an element into the World group, Centerline coordinates are used unless coordinates=global is present. When centerline coordinates are used, the parameter 'Zcl' is set to the highest Z value used; this is normally the Z value for the front of the next element when placed sequentially (i.e. with no z value given). Rotations: The rotation parameter can be used to rotate this element relative to the enclosing group. The object is rotated, not the axes. Rotations are specified as a comma-separated list of axes and angles (in degrees): rotate=Z90,X45 rotates first by 90 degrees around Z and then by 45 degrees around X. The axes are the local X,Y,Z coordinate axes of the enclosing group (centerline or global coordinate axes for the World group); groups can be rotated when placed, and are rotated as a rigid unit (including children). If parent=name is present, then the name must be an element that accepts children, and it is used as the enclosing group; in this case the size of the group is implied by the size of the parent element, and z must be given (defaults to 0). Note that a given element cannot be the parent of any other element once it has been placed, so you must place children into their parent before placing their parent. If the special element 'OFFSET' is given, x, y, and z specify offsets for every following place command into the current group (incl. World), that gives a z position. Named Arguments: z Z position of element's center relative to the center of the enclosing group (mm). x X position of element's center [default=0] (mm) y Y position of element's center [default=0] (mm) parent Parent element name (must accept children). rename Name to use for this placement; '#' will be substituted by the number of placements. If the value begins with '+', it is replaced with the parent's name. copies Number of copies (placed sequentially along z). front Nonzero to specify z for the front, not the center. rotation Rotation of this object. coordinates Coordinates: global or centerline (default=c). polycone construct a polycone with axis along z This is a direct interface to G4Polycone. For a solid polycone, omit innerRadius and it will be filled with zeroes. The number of entries in z, innerRadius, and outerRadius must be the same. Note that a polycone is placed at its z=0,r=0 point, which need not be its geometric center. Named Arguments (#=cannot be changed in place cmd): innerRadius Comma-separated list of inner radii (mm) # outerRadius Comma-separated list of outer radii (mm) # z Comma-separated list of z positions (mm) # initialPhi The initial Phi value (deg; 0 for all) finalPhi The final Phi value (deg; 360 for all) maxStep The maximum stepsize in the element (mm) material The material of the polycone color The color of the polycone (''=invisible) kill Set nonzero to kill every track that enters. printf prints track variables and expressions This is an interface to the C printf() function. The first positional argument is the format, and the following positional arguments are double expressions printed with the % fields in the format. Up to 16 expressions can be printed. The print is performed only if the 'required' expression is nonzero, as each track reaches one of the Z positions in the 'z' argument (centerline coordinates). Multiple printf commands with the same 'file' will be combined into the file as tracks reach any of their Z positions. More than 16 expressions can be broken into multiple printf-s with noNewline=1 for all but the last. The following variables can be used in expressions: x,y,z,t,Px,Py,Pz PDGid,EventID,TrackID,ParentId,Weight Bx,By,Bz, Ex,Ey,Ez tune (nonzero only for the Tune particle) reference (nonzero only for the Reference particle) beam (nonzero for any Beam particle) Each value in z and zloop can be an expression using double constants and the usual C operators and functions. Example: printf z=0 'Momentum is %.3f GeV/c' sqrt(Px*Px+Py*Py+Pz*Pz)/1000 NOTE: if format begins 'Ptot=...' the parsing will think it is a named argument; put a space before the '=' to avoid that error. Named Arguments: z Comma-separated list of Z positions for printing (mm) zloop Loop in z, first:last:incr (mm) require logical expression for cutting (default=true) file Output filename (default=stdout) filename Synonym for file noNewline set nonzero to omit final newline. coordinates Coordinates: global, centerline, or reference (default=c). printfield Prints E or B fields, or writes FieldMap file. Prints the value of the electromagnetic field components. For type=print, prints one component of the field in a 2-d table. Any coordinate plane can be printed (XY ... ZT). For type=grid or type=cylinder, writes a file in fieldmap format. Global coordinates are used. Units are Tesla for B and MV/meter for E. NOTE: This command cannot handle time dependency in the output BLFieldMap file, but can in the printout. Note: if you want to plot field vs position or time, the 'fieldntuple' command is probably better, as it is not limited to the 2-d paper, is easier to use, and lets you use existing NTuple plotting tools. If you just want to test a few points, the 'probefield' command lets you do that interactively. Named Arguments: type print, grid, or cylinder. exit Set nonzero to exit after printing field Arguments for type=print: field The field to print (Bx,By,Bz,Ex,Ey,Ez,Btot,Etot). layout Layout (RowCol) - 2 chars 'AB' each of {xyzt}. x The starting value of x (mm). y The starting value of y (mm). z The starting value of z (mm). t The starting value of time (ns). drow The incr between points in each row (mm|ns). dcol The incr between points in each column (mm|ns). nrow The number of rows. ncol The number of columns. Arguments for type=grid: file Filename to write fieldmap to. comment Comment for fieldmap. X0 Initial value of X (mm, default=0). Y0 Initial value of Y (mm, default=0). Z0 Initial value of Z (mm, default=0). nX Number of points in X. nY Number of points in Y. nZ Number of points in Z. dX Interval in X between points (mm). dY Interval in Y between points (mm). dZ Interval in Z between points (mm). Arguments for type=cylinder: file Filename to write fieldmap to. comment Comment for fieldmap. Z0 Initial value of Z (mm, default=0). nR Number of points in R. dR Interval in R between points (mm). nZ Number of points in Z. dZ Interval in Z between points (mm). probefield Prints B and E fields at specified points. Intended primarily for debugging. Prints Bx,By,Bz in Tesla, and Ex,Ey,Ez in MegaVolts/meter. Each input line is x,y,z,t separated by spaces or commas; omitted values are set to 0.0. Field Values are printed after the reference particle is tracked. Only global coordinates are used. Positional arguments are used as input lines before reading the file. Named Arguments: file Filename for reading list of points (- = stdin) outputFile Filename for output (- = stdout) exit Set nonzero to exit after printing field profile write beam profile information to a file This command accumulates the moments of the track distributions during the run, and at the end of run prints the mean, sigma, emittance, alpha, and beta (Twiss parameters) for the tracks. Each z position generates a line in the output file. Each value in z and zloop can be an expression using double constants and the usual C operators and functions. Named Arguments: z Comma-separated list of Z positions for profiling (mm) zloop Loop in z, first:last:incr (mm) require logical expression for cutting (default=true) particle Name of particle to profile (default=mu+) file Output filename (default=stdout) filename Synonym for file coordinates Coordinates: centerline or reference (default=c). randomseed control pseudo random number generator seeds This randomseed command controls the pseudo random number generator seed at the start of each event. The unnamed argument can be any of (case insensitive): EventNumber None Time Set 12345 Now 12345 EventNumber is the default and permits events to be re-run; None does not re-seed the PRNG at each event, and Time is like None after seeding with the time of day in microseconds; Set (Now) seeds the generator immediately with the value of the second argument (a long), and then acts like None. reference Define a reference particle. The reference particle is nominally headed in the +Z direction. Multiple reference particles can be defined, at different positions, momenta, particle types, etc. All coordinates are centerline coordinates. If desired, the referenceMomentum will be tuned to a specific value at a later z position in the beamline by giving values for tuneZ, and tuneMomentum; tolerance can be set if desired. Normally used in conjunction with a 'beam' command. Named Arguments: particle Reference particle name beamX Reference location in X (mm) beamY Reference location in Y (mm) beamZ Reference location in Z (mm) beamT Reference time (ns) rotation Rotation of the beam referenceMomentum Reference particle momentum (MeV/c) beamXp Reference particle Xp (radians) beamYp Reference particle Yp (radians) meanMomentum Synonymn for referenceMomentum meanXp Synonym for beamXp. meanYp Synonym for beamYp. tuneZ Z position for momentum tuning. tuneMomentum Desired momentum for momentum tuning. tolerance tolerance for momentum tuning (0.001 MeV/c). noEfield Set nonzero to make this Tune and Reference particle not respond to E fields (ICOOL style) noEloss Set nonzero to make this Tune and Reference particle not respond to ionization energy loss (ICOOL style) reweightprocess modify the cross-section of a physics process. This command will modify the cross-section of a physics process, modifying the track weights so that weighted histograms give the same statistical result as if the command were not used. Used properly, this can greatly reduce the variance of the result. Care should be taken to ensure that all regions that should be sampled actually are sampled. For instance, if ratio>1 the interaction length will be reduced, and deep inside an absorber there may be no sampling because no simulated tracks ever get there, even though real tracks will. If ratio<1 then the upstream regions of absorbers will be under sampled; this is usually OK, as the desired result is to increase the sampling deep inside the absorber. For ratio>>1 this command can be used to examine rare processes. This can induce multiple rare interactions in an event when normally none would be expected; the weights will still correctly correspond to the real interaction, even though the event topologies don't. This command cannot reweight any continuous process (e.g. multiple scattering, ionization energy loss, etc.) -- it will issue a fatal exception if applied to such a process. This command should not be applied to other processes that re-weight tracks (e.g. the neutrino command). Indeed it probably won't give the correct weights if any such process applies to the particle (except for itself, it cannot determine the unmodified interaction length of such procsses, which is needed to compute the weight). The re-weighting applies to both PostStep and AtRest processes, but some AtRest processes do not work with this re-weighting; for instance, Decay works properly in PostStep for a moving particle, but not for a stopped one AtRest. This is related to the Geant4 limitation that exactly one process be active AtRest, and exactly one step be taken. Be sure to test your use of this commnd for a simple physical situation before believing its results. Named Arguments: particle Comma-separated list of particle patterns ('' => all). process Comma-separated list of process patterns. ratio Ratio of artificial to real cross-section. rfdevice Defines an rfdevice (RF cavity) An rfdevice (RF cavity) is the basic RF element used to construct a linac. The G4beamline convention is that 0degRF is the positive going zero crossing of the electric field, so generally phaseAcc=90 (degRF) is on-crest. The timeOffset parameter, if set, fixes the overall global absolute timing of the cavity relative to time=0 of the simulation. If unspecified, 0degRF is determined via the timingMethod setting. The default, timingMethod=atZlocal, defines 0degRF such that the test particle will arrive at the timingAtZ=# location then. For longitudinal cavities, timingMethod=maxEnergyGain emulates how most cavities in linacs have their overall timing determined; while maxX would be appropriate for a horizontal transverse deflecting cavity. Independent of how 0degRF is found, exactly two of the set of maxGradient, phaseAcc, and one fixed output quantity (fixMomentum, fixEnergyGain, fixTransitTime, fixXdeflection, or fixYdeflection) must be specified to deterimine the final rfdevice timing. For example, with maxGradient and phaseAcc set, the energy gain would be determined, while if maxGradient and fixEnergyGain were set, the phaseAcc would be determined. The pipe, walls, and collars are made of copper by default. Pipe, wall, collar, win1, and win2 may be omitted by setting their thickness to 0. Common usage is to set the collar values such that, by placing multiple rfdevices sequentially, the collars form a beam pipe between them. Note that section 4.4 of the User's Guide has a dimensioned drawing of a pillbox. Due to the presence of an (usually) invisible timing volume, care must be taken when placing objects within an rfdevice. See the User's Guide for details on how to use this complex element. Named Arguments (#=cannot be changed in place cmd) (@=Tunable): maxGradient The peak gradient of the cavity (MV/m) @ color The color of the cavity frequency The frequency of the cavity (GHz) # innerLength The inside length of the cavity (mm) # innerRadius The inside radius of the cavity (mm) # pipeThick The thickness of the pipe wall (mm) # wallThick The thickness of the cavity walls (mm) # wallMat The material of all the walls [Cu] irisRadius The radius of the iris (mm) # collarRadialThick The radial thickness of the collar (mm) # collarThick The thickness of the collar along z(mm) # win1Thick The thickness of the central portion of the windows; zero for no window (mm) # win1OuterRadius The radius of the central portion of the windows (mm) # win2Thick The thickness of the outer portion of the windows; zero for no window (mm) # winMat The material of the windows [Be]. phaseAcc The reference phase of the cavity (degrees). skinDepth The skin depth (mm). # timingTolerance Tolerance for timing tuning (ns) maxStep The maximum stepsize in the element (mm). cavityMaterial Material of cavity volume [Vacuum]. timeOffset Time offset for cavity [set via timingMethod] (ns). @ timeIncrement Increment to timeOffset, applied AFTER tuning. (ns). timingMethod Method for determining the nominal timeOffset {atZ, maxE, noE, minE, maxT, nomT, minT, maxX, noX, minX, maxY, noY, minY}. timingAtZ Local Z location for timing (mm). fixMomentum Specify total output momentum (MeV/c). fixEnergyGain Specify energy gain (MeV). fixTransitTime Specify transit time (ns). fixXdeflection Specify local output XZ angle (deg). fixYdeflection Specify local output YZ angle (deg). fixTolerance Specify allowable error on fixed settings [1.e-3]. verbose Set nonzero to show timing volume and print info messages [1]. fieldMapFile Filename for BLFieldMap (pillbox if null). # kill Set nonzero to kill tracks that hit the pipe, walls, or collars [0]. setdecay Set lifetime, decay channels, and branching ratios for a particle's decay. The particle is specified by name as the first positional argument. The lifetime of the particle can be set, unless it is a short-lived particle (for which lifetime is fixed at 0 -- these are particles like quarks, Zs, and Ws). Units are ns. Decay channels are specified 'daughter1,daughter2=BR', where the daughter names are separated by commas, and the branching ratio is a value between 0 and 1 (inclusive); the order of daughters does not matter. The sum of all BRs must be 1.0. It is best to use existing channels for the particle, because the code for the decay distribution is retained; new decay channels are given a default phase-space distribution, which is probably valid only for a 2-body decay of a spin 0 particle. New channels are limited to 4 daughters. Note that all desired decay channels must be listed. Example to force fast decay (0.1 ns) of pi+ to a positron: setdecay pi+ lifetime=0.1 e+,nu_e=1.0 showmaterial Set the colors for selected materials. Arguments are of the form 'name=1,1,0', where name is the name of a material, and 1,1,0 is the R,G,B value desired for its color ('' for invisible) Set hideOthers=1 to make all other materials invisible. BEWARE: 'Vacuum' and 'vacuum' are different materials, as are 'Iron' and 'Fe'. solenoid defines a solenoid (a coil and current) A solenoid is a coil and a current. If alternate is nonzero, then each placement of the solenoid (or an enclosing group) will flip the sign of current. Named Arguments (#=cannot be changed in place cmd): coilName The name of the coil (must exist) # current The current density in the conductor (Amp/mm^2) color The color of the solenoid (''=invisible). alternate Set nonzero to alternate sign each placement. kill Set nonzero to kill all tracks that hit the coil. coil Synonym for coilName. # spacecharge Beam-frame Green's function space charge computation This is a space charge computation for bunched beams. It uses a grid in the beam frame to solve Poisson's equation via a Green's function with infinite boundary conditions; the E field is boosted back to the lab frame E and B for tracking. Macro-particles are used to enable the simulation of larger bunches than can be feasibly simulated as individual particles; the macro-particles have zero radius, but are pro-rated into the nearest eight grid points when placed into the grid. This computation can handle up to about a million macro-particles, but 100,000 is more sensible for all but the simplest physical situations. The bunch is created from the beam tracks before tracking begins. There is one bunch for each reference particle. Particles in the bunch must be the same particle as the reference, must initially be within {dx,dy,dz} of the reference particle, and when boosted to the reference particle's rest frame must initially have beta < maxBeta. After boosting the particles to the beam frame, they are placed into the grid, pro-rating to the eight nearest grid points. The grid is dynamically re-sized to keep the 99th percentile of the particles between 0.5 and 0.67 of the grid size. This maintains a reasonable balance between resolution of grid points within the bunch and covering all of the particles. Particles located at >85% of the grid size do not contribute to the field computation, but are tracked using the field of the rest of the bunch (and other bunches). The grid has {nx,ny,nz} points; there is a small computational advantage to using powers of 2, but any values >1 can be used. For efficiency, the convolution of the Green's function with the charge grid is performed using FFTs; the grid is doubled in each dimension with the proper symmetry applied to the Green's function, so the cyclical convolution of the FFTs gives the proper potential with infinite boundary conditions. Outside the grid an approximation is used. An approximation grid is constructed, with the same size of the Poisson grid, but using {nxApprox,nyApprox,nzApprox} points. Particles are placed into this approximation grid, and the mean position is kept as well as the charge. Approximation grid points with less than 1% of the total charge are consolidated with their inner neighbors. The non-zero approximation grid points are treated as point charges when computing the potential outside the grid. For reasonably Gaussian bunches, {7,7,7} are reasonable values for the approximation grid sizes. The E field in the beam frame is computed via the derivatives of the linear interpolating function using the eight nearest grid points, and is boosted back to the lab frame E and B for tracking by the usual Geant4 routines. Bunch particles that get destroyed cease contributing to the bunch. As the bunch particles are selected during start-up, no additional particles are ever added to a bunch. This algorithm handles multiple bunches of any particle types. NOTE: For now, the reference MUST be parallel to the Z axis. Named Arguments: deltaT Time step (ns). charge Charge of macro particles (times particle charge). nx Number of grid points in x (65). ny Number of grid points in y (65). nz Number of grid points in z (65). dx Max distance of particle to reference in x (mm) dy Max distance of particle to reference in y (mm) dz Max distance of particle to reference in z (mm) nxApprox # bins in x in approximation (7). nyApprox # bins in y in approximation (7). nzApprox # bins in z in approximation (7). maxBeta Max beta (v/c) of particle in beam frame (0.1). verbose Non-zero for verbose prints (0). ignoreFieldWhenTracking For testing only (0). useApproximationOnly For testing only (0). fixedGrid Nonzero prevents re-sizing the grid (0). percentile Percentile of charge distribution used for grid sizing (99). minActive Minimum # active tracks in bunch; if < 0 is % of initial bunch size (-95). spacechargelw Lienard-Wiechert space charge computation This is a space charge computation that uses macro-particles to simulate more particles than is feasible to track individually. Each macro-particle is tracked as a single particle, but its charge is multiplied by the macro-particle charge when computing the field. The radius of the macro-particle is used to avoid the singularity from a point charge; outside the radius the macro-particle is treated as a point charge; inside the radius the point-charge field is multiplied by (r/radius)^K (radius and K are parameters). The trajectory of every particle is kept, and when computing the field at a point, the intersection of the point's past lightcone with the trajectory is used to determine the field from the macro-particle; there is a loop over all particles except the one currently being tracked. This computation scales as N^2, where N is the number of macro-particles; that makes it computationally infeasible for more than a few hundred macro-particles. But for the particles used, it is correct to within the following approximations: a) using macro-particles, b) linearly interpolating between steps, c) omitting the radiation term in the L-W potential. The fields are computed using eq. 63.8-9 (p 162) of Landau and Lifshitz, _Classical_Theory_of_Fields_, ignoring the radiation term. The computed fields are used in the usual Geant4 tracking. Particle creation and destruction are handled properly. This algorithm is primarily intended to test other space charge algorithms. Named Arguments: deltaT Time step (ns). radius Radius of macro-particles (mm). charge Charge of macro-particles (times particle charge). trackTwice 0=linear extrapolation, 1=track (0) verbose Non-zero for verbose prints (0). K Exponent for macro-particle density (1). ignoreFieldWhenTracking For testing only (0). sphere construct a sphere (or section of one) This is a direct interface to G4Sphere. Named Arguments: innerRadius The inside radius of the sphere (mm) outerRadius The outer radius of the sphere (mm) initialPhi The initial Phi value (deg; 0 for all) finalPhi The final Phi value (deg; 360 for all) initialTheta The initialTheta of the sphere (deg, 0 for all) finalTheta The finalTheta of the sphere (deg, 180 for all) maxStep The maximum stepsize in the element (mm) material The material of the sphere color The color of the sphere (''=invisible) kill Set nonzero to kill every track that enters. start Define the initial start of centerline coordinates. If used, this command must come before any other command that puts an element into the world or affects the centerline coordinates (place, beam, corner, cornerarc, and reference commands). This command may not always be needed, but it is needed to eliminate the ambiguities in the global to centerline coordinate transform, and when simulating a ring to ensure that sensible values of the centerline coordinates are used. Note that the radiusCut is important to reduce or eliminate ambiguities in the global to centerline coordinate transform. It can also be used to 'shield' the beamline to prevent particles from taking unusual paths around the outside of beamline elements. Named Arguments: x The global x position of the start. y The global y position of the start. z The global z position of the start. initialZ The initial centerline z value. rotation The initial rotation of the centerline. radiusCut The radius cut for the initial segment (mm). ring Set nonzero to indicate a ring is present. test test random number seeds. Test timentuple Construct an NTuple of tracks at a specified time. A time NTuple generates an NTuple of every track at a specified global time. It uses a linear interpolation in the step that straddles the required time, so accuracy will suffer for large steps. The NTuple uses centerline coordinates, if available. The standard NTuple fields are: x,y,z (mm) Px,Py,Pz (MeV/c) t (ns) PDGid (11=e-, 13=mu-, 22=gamma, 211=pi+, 2212=proton, ...) EventID (may be inexact above 16,777,215) TrackID ParentID (0 => primary particle) Weight (defaults to 1.0) The following additional fields are appended for format=Extended, format=asciiExtended, and format=rootExtended: Bx, By, Bz (Tesla) Ex, Ey, Ez (Megavolts/meter) ProperTime (ns) PathLength (mm) PolX, PolY, PolZ (polarization) InitialKE (MeV when track was created) Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Extended asciiExtended Named Arguments (#=cannot be changed in place cmd): time The global time of the sampling (ns). format The NTuple format (see above for list). filename The filename of the NTuple. file Synonym for filename. require Expression which must be nonzero to include the track (default=1) # coordinates Coordinates: global, centerline, or reference (default=c). referenceParticle Set to 1 to include the Reference Particle. torus construct a torus. This is a direct interface to G4Torus. The major radius is in the X-Y plane, with phi=0 along X. Named Arguments: innerRadius The inner radius of the torus (mm) outerRadius The outer radius of the torus (mm) majorRadius The major radius of the torus (mm) initialPhi The initial phi around major radius (0 degrees). finalPhi The final phi around major radius (360 degrees). maxStep The maximum stepsize in the element (mm) material The material of the torus color The color of the torus (''=invisible) kill Set nonzero to kill every track that enters. totalenergy Print total energy deposited in selected volumes. At end of run, prints the total energy deposited in the selected volumes. Volume-name patterns are like UNIX filename patterns: e.g. '*[AB]*' matches any name containing an A or a B. Tracks that are killed have their kinetic energy summed into the volume where they were killed, unless they are killed because they leave the World. With ancestors=1, energy deposited in matching volumes is added into their ancestors; energy deposited directly into those ancestors is not summed into them unless their names also match. That is, if A is a child of B, but only A matches the list of volume-names, energy deposited into A will be reported in both A and B, but energy deposited directly into B is ignored. Named Arguments: volumes Comma-separated list of Volume-Name patterns (*) ancestors Set nonzero to sum energy into all ancestor (enclosing) volumess (0). enclosing Synonym for ancestors. filename Filename to write summary (stdout). file Synonym for filename. trace Specifies tracing of tracks. Generates a separate NTuple for each track, with 1 row per step, unless oneNTuple is nonzero (in which case all tracks are put into a single NTuple). So format=ascii generates one file per track with names generated by the pattern in filename (first %d is replaced by event #, second %d is replaced by trackId); for oneNTuple, the default filename is AllTracks.txt. Note that without a trace command no traces are generated, so to trace just the tune and reference particles include a trace command with no arguments. In collective tracking mode, oneNTuple must be nonzero, and the entries will be generated only at collective steps (usually at a specified deltaT). Unlike other NTuple commands, the require expression applies to entire tracks, not individual entries. The standard NTuple fields are: x,y,z (mm) Px,Py,Pz (MeV/c) t (ns) PDGid (11=e-, 13=mu-, 22=gamma, 211=pi+, 2212=proton, ...) EventID (may be inexact above 16,777,215) TrackID ParentID (0 => primary particle) Weight (defaults to 1.0) The trace includes the following fields: Bx, By, Bz (Tesla) Ex, Ey, Ez (Megavolts/meter) The following additional fields are appended for format=Extended, format=asciiExtended, and format=rootExtended: ProperTime (ns) PathLength (mm) PolX, PolY, PolZ (polarization) InitialKE (MeV when track was created) Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Extended asciiExtended Named Arguments (#=cannot be changed in place cmd): nTrace Number of tracks to trace. format Format of the NTuple (see above for list). oneNTuple Nonzero to put all traces into a single NTuple. primaryOnly Nonzero to trace only primary tracks. traceTune Nonzero to trace tune tracks (default=1). filename Filename (Ev%dTrk%d.txt or AllTracks.txt). file synonym for filename. require Expression which must be nonzero to trace the track (default=1) # coordinates Coordinates: global, centerline, or reference (default=c). trackcolor Alias for 'particlecolor'. trackcuts Specifies per-track cuts. Applied to each track before tracking, and at each step. Named Arguments: kill List of particles to kill (comma separated). keep List of particles to keep (kill all others). killSecondaries Set nonzero to kill all secondaries. kineticEnergyCut Minimum K.E. to track (0 MeV). kineticEnergyMax Maximum K.E. to track (infinite MeV). maxTime Maximum lab time to track (1000000 ns). keepPrimaries Set nonzero to keep tracks with ParentID==0 regardless of other tests. steppingVerbose Set nonzero to print kills (defaults to parameter value). tracker Defines a tracker. A tracker consists of several trackerplane-s and can fit a track to wire hits and times in the trackerplanes. This is a simple algorithm that does not handle backgrounds or multiple hits. It assumes that every track hits each trackerplane at most once. It is intended to be used to explore resolutions and the effects of survey errors. A tracker is a logical combination of its trackerplanes -- the tracker cannot be placed, but its trackerplanes must be placed into the system. The fitting algorithm used requires that all of its parameters have comparable scales, so the 'scaleX', 'scaleXp', 'scalePtot', and 'scaleT' arguments should be set to the approximate sigmas of the tracker. They should be within a factor of 10 of the actual values, but closer is better. At the end of fitting tracks a summary is printed that flags each parameter with 'RESCALE' if its scale is too different from its sigma (factor of 5 or more). NOTE: if the tracker cannot measure Ptot, then 'scalePtot' MUST be set to zero. If the tracker cannot measure T, then scaleT MUST be set to zero. Parameters with zero scales are held fixed at their true-track values. NOTE: the trackerplane-s of a tracker MUST be placed in the order that particles will hit them; the code does not sort them. Usually this means that each place command of a trackerplane must have a larger z value than the previous place command. They must also come after the trackerZ value of the tracker command. A tracker has 3 modes of operation: true Each track of each event is written to a TrackerHits NTuple if it hits all trackerplanes; the NTuple includes both the true track values and the individual wire hits for each trackerplane. fit A track is fit to the wire hits from a previous run, and the fit track is written to a TrackerFit NTuple (includes true values). ignore Any track is ignored. See the 'trackermode' command to control the mode of trackers. The TrackerHits NTuple written in 'true' mode contains: true_x, true_y, true_z, true_Px, true_Py, true_Pz, true_t, true_PDGid, true_EventID, true_TrackID, true_ParentID, true_Weight, ... plus 1 hit and 1 time per trackerplane. (the first 12 are the same as a BLTrackFile.) The TrackerFit Ntuple written in 'fit' mode contains: x, y, z, Px, Py, Pz, t, PDGid, EventID, TrackID, ParentID, Weight, ChisqPerDF, nDF, nHit, nIter, true_x, true_y, true_z, true_Px, true_Py, true_Pz, true_t. (the first 12 are from the fit and are the same as a BLTrackFile.) The parameters of the fit are: x, y, dxdz, dydz, Ptot, time. You must ensure that there are at least as many data points as free parameters (scaleT=0 fixes time; scalePtot=0 fixes Ptot). Each trackerplane with nonzero wireSpacing provides a data point; each trackerplane with nonzero sigmaT provides a data point; trackerplanes that measure both provide two data points. You must have enough trackerplanes to meet this requirement, and must set minHits large enough to meet it. The TrackerFit NTuple has a field nDF that gives the number of degrees of freedom for the fit, which is defined as (#DataPoints)-(#FreeParameters); it also has nHit which gives the number of trackerplane-s hit. Note the tracker can simulate survey errors -- see the 'trackerplane' command for details (each plane can have different errors). Both the true and the fit tracks are reported at reportZ, which defaults to the Z position of the tracker. Note that beamlossntuple and newparticlentuple will get many entries per track when used in mode=fit -- the fit runs the track many times through the tracker (30-100, up to maxIter). NOTE: the trackermode command must preceed all tracker commands in the input file, and each tracker command must preceed all of its trackerplane commands. The trackerZ value must also preceed all trackerplane-s, but reportZ can be equal to or anywhere after trackerZ. Note that each trackerplane must have a unique name. This means you should either have a separate trackerplane command for each one (with unique name), or use the rename= argument to the place command (again with unique name). If you use groups for trackerplane-s, use rename=+ in the group. NOTE: This command does not work properly in collective tracking mode. Named Arguments: trackerZ The Z position of the tracker (Centerline, mm). reportZ The Z position at which fit tracks are reported (Centerline, mm, default=trackerZ). scaleX Scale for X and Y (mm); default=1mm. scaleXp Scale for dxdz and dydz (radians), default=0.001. scalePtot Scale for Ptot (MeV), default=0. Set to 0.0 if tracker cannot determine momentum. scaleT Scale for t (ns), default=0. Set to 0.0 if tracker cannot determine time. minPz Minimum Pz for valid tracks (default=10 MeV/c) minHits Minimum number of hits for fitting (# planes). tolerance Track fitting tolerance (mm) (default=0.01 mm) maxIter Maximum iterations during fitting (default=200). verbose 0=none, 1=result, 2=iterations, 3=detail, default=0. format Format of output NTuple. filename Filename of output NTuple. for009 Set nonzero to also output TrackerFit as FOR009.Dat. file Synonym for filename. trackermode Sets mode for all trackers, manages track fitting. USAGE: trackermode mode [file=...] mode can be any of: true tracks true tracks (normal operation) fit fits tracks to previous 'true' output both does both true and fit at once 'fit' requires the filename argument to be the output of a previous 'true' run (filename is ignored in other modes); each tracker processes all of its tracks in the file. 'true' mode simply denotes the standard G4beamline operation, and the simulated tracks are taken to be the 'true' tracks of the system; the response of the tracker(s) to these tracks is then simulated in 'fit' mode. 'both' tracks a 'true' event, and then a fit is peerformed in each tracker for which its first track hit all trackerplane-s. Note that in 'true' mode every track that hits all trackerplane-s is considered, but in 'both' mode only the first track of the event can be considered. In fit mode, the filename argument MUST be different from the parameter 'histoFile', because this run must not overwrite the Root file from the previous (true) run. One trackermode command controls the mode of all trackers. 'true' mode is normal G4beamline operation, and is the same as if no trackermode command was present. Note that the geometry of the system must not change between a 'true' run and a 'fit' run. You can, however, make small variations in fields to explore how errors in setting them will affect the fitted tracks. The trackerplane command can simulate survey errors. NOTE: the trackermode command must preceed all tracker commands in the input file. Named Arguments: filename Filename to read for fitting tracks. file Synonym for filename. trackerplane Construct a tracker plane. A trackerplane belongs to a specific tracker, and represents one measuring element of the tracker. While the term 'wire' is used, a trackerplane can model any planar measuring device that measures one dimension using equally spaced detectors that are either on or off (hit or not hit). A trackerplane can be circular (specify radius and possibly innerRadius) or rectangular (specify height and width). The wires are at angle theta from the vertical, so theta=0 means vertical wires that measure x; theta=90 means horizontal wires that measure y; theta=180 also measures x, but increasing x means decreasing wire #. Setting wireSpacing=0 means there are no wires, which is useful for a trackerplane that models a scintillator used for track timing (set sigmaTime >= 0 to indicate that). sigmaTime>0 means this plane can measure the time of the track with that resolution. A Gaussian random number is added to the true track's time at this plane when reading the TrackHit NTuple. Survey errors can be modeled using the err-arguments -- the values they specify are applied during trackfitting (but not for true tracks). errType: 'fixed' means error values given are the actual values, 'gaussian' means error values are the sigma of a Gaussian random number, 'rect' means error values are the half-width of a uniform random number. The random number is picked before the run begins; the random-number seed is set from the clock so every run will have different random errors. trackerplane has 3 modes: true The trackerplane reports the hit wire and time to the tracker; fit The trackerplane reports the Chisq contribution of the fit track distance to the true track's hit wire center, plus survey errors (if any). The track time also contributes to the chisq. ignore Any track is ignored. NOTE: the trackerplane-s of a tracker MUST be placed in the order that particles will hit them; the code does not sort them. Usually this means that each place command of a trackerplane must have a larger z value than the previous place command. They must also come after the trackerZ value of the tracker command. Named Arguments: tracker The tracker to which this plane belongs; REQUIRED. radius The radius of the circular tracker plane (mm). innerRadius The inner radius of the circular tracker plane (0 mm). height The height of the rectangular tracker plane (mm). width The width of the rectangular tracker plane (mm). length The length of the tracker plane (mm). theta Wire angle in X-Y plane (deg). 0=>x, 90=>y... wireSpacing Wire spacing (mm). wireOffset Wire # 0 offset (mm). errType Error type: fixed, gaussian, rect. errTheta Error in wire angle (deg). errSpacing Error in wire spacing (mm). errOffset Error in wire offset (mm). sigmaTime Sigma for timing plane (ns), default=-1. maxStep The maximum stepsize in the element (mm). material The material of the tracker plane. color The color of the tracker plane (''=invisible). trap construct a solid trapezoid with axis along z. This is a direct interface to G4Trap. The trapezoid is symmetrical left-right, but upper or lower width can be larger or smaller. Named Arguments: height The height of the solid trapezoid (mm) upperWidth The upper width solid trapezoid (mm) lowerWidth The lowerWidth of the solid trapezoid (mm) Xul X position of upper left corner (mm) Xur X position of upper right corner (mm) Xll X position of lower left corner (mm) Xlr X position of lower right corner (mm) length The length of the solid trapezoid (mm) maxStep The maximum stepsize in the element (mm) material The material of the trapezoid color The color of the trapezoid (''=invisible) kill Set nonzero to kill every track that enters. tube Alias for 'tubs'. tubs construct a tube or cylinder with axis along z. This is a direct interface to G4Tubs, which can implement a tube or cylinder; either can subtend less than 360 degrees in phi. Named Arguments: innerRadius The inside of the tube, 0.0 for cylinder (mm) outerRadius The outer radius of the tube or cylinder (mm) initialPhi The initial Phi value (deg; 0 for all) finalPhi The final Phi value (deg; 360 for all) length The length of the tube or cylinder (mm) maxStep The maximum stepsize in the element (mm) material The material of the tube or cylinder color The color of the tube or cylinder (''=invisible) kill Set nonzero to kill every track that enters. radius Synonym for outerRadius (mm) tune Tune a variable used as argument to other elements. This command samples the Tune particle track at z0, samples it again at z1, and varies its tune variable in order to bring the expression to zero. The tune variable is the first positional argument, and can be used in the argument expression(s) for tunable arguments located after z0. Due to the simple solver used, there should be an approximately linear dependence between the tune variable and the expression. This is suitable for tuning the By field of a genericbend or the maxGradient of a pillbox. At each solver step the saved Tune particle is re-started from z0, and when it reaches z1 the next step in the solver is taken. Note that multiple tune commands can be used together, as long as their z0-z1 regions are properly nested by at least 0.5 mm (i.e. each pair of regions must either not overlap at all, or one must be wholly contained in the other). This command can be complicated to use; see the User's Guide for more description and examples. Named Arguments: z0 The starting z position in CL coordinates. z1 The ending z position in CL coordinates. initial Initial value of the variable 'name' initialStep Initial step (0 to disable tuning) step Synonym for initialStep start An expression that must be nonzero to start tuning (default=1) expr The expression to tune to zero tolerance The tolerance for expr to be zero maxIter The maximum number of iterations (10). usertrackfilter Construct a usertrackfilter that filters tracks via user code. ... Named Arguments: radius The radius of the circular element (mm). innerRadius The inner radius of the circular element (0 mm, solid). height The height of the rectangular element (mm). width The width of the rectangular element (mm). length The length of the element (mm). maxStep The maximum stepsize in the element (mm). material The material of the element. color The color of the element (''=invisible). filterName Name of the UserTrackFilter. filter Synonym for filterName. init Initialization string passed to user setup(). virtualdetector Construct a VirtualDetector that generates an NTuple. A VirtualDetector generates an NTuple of any track when it enters the physical volume of the VirtualDetector. It may be placed via multiple place commands (usually with a 'rename=det#' argument to distinguish the different placements). If material is not specified, it uses the material of the enclosing element. Every placement creates an individual NTuple. For a circular VirtualDetector give radius; for a rectangular one give height and width; length is usually left at 1 mm, but can be set to correspond to the length of a physical detector. The NTuple by default uses centerline coordinates. The NTuple of the virtualdetector can be included in an ntuple command by including a pattern that matches its name in the 'detectors' argument to the ntuple command. Note that must match the name as placed (i.e. includes rename=), not the name given to this command. The noSingles argument may be useful in this case to avoid a huge NTuple of singles (an empty NTuple may be created). Note that secondary particles created within the virtualdetector will not get an entry until they have taken one step. They are guaranteed to do so. The standard NTuple fields are: x,y,z (mm) Px,Py,Pz (MeV/c) t (ns) PDGid (11=e-, 13=mu-, 22=gamma, 211=pi+, 2212=proton, ...) EventID (may be inexact above 16,777,215) TrackID ParentID (0 => primary particle) Weight (defaults to 1.0) The following additional fields are appended for format=Extended, format=asciiExtended, and format=rootExtended: Bx, By, Bz (Tesla) Ex, Ey, Ez (Megavolts/meter) ProperTime (ns) PathLength (mm) PolX, PolY, PolZ (polarization) InitialKE (MeV when track was created) Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Extended asciiExtended Named Arguments (#=cannot be changed in place cmd): radius The radius of the circular VirtualDetector (mm). innerRadius The inner radius of the circular VirtualDetector (0 mm, solid). height The height of the rectangular VirtualDetector (mm). width The width of the rectangular VirtualDetector (mm). length The length of the VirtualDetector (mm). maxStep The maximum stepsize in the element (mm). material The material of the VirtualDetector. color The color of the VirtualDetector (''=invisible). noSingles Set to 1 to omit the NTuple for singles. format NTuple format: (see above for list). filename filename ('' uses name to determine filename) file alias for filename require Expression which must be nonzero to include the track (default=1) # referenceParticle Set to 1 to include the Reference Particle. coordinates Coordinates: global, centerline, or reference (default=c). kill Set to 1 kill all tracks after entering them into NTuple(s). zntuple Generate an NTuple for each of a list of Z positions. Generates an NTuple like a virtualdetector, but without a physical volume. Tracks are forced to take steps within 2mm surrounding each desired z position, and they are interpolated to the desired z position. Each z position generates a separate NTuple named Z123 (etc.). z accepts a list of z positions, and zloop can generate a set of equally spaced z positions; both can be used. Each value in z and zloop can be an expression using double constants and the usual C operators and functions. The standard NTuple fields are: x,y,z (mm) Px,Py,Pz (MeV/c) t (ns) PDGid (11=e-, 13=mu-, 22=gamma, 211=pi+, 2212=proton, ...) EventID (may be inexact above 16,777,215) TrackID ParentID (0 => primary particle) Weight (defaults to 1.0) The following additional fields are appended for format=Extended, format=asciiExtended, and format=rootExtended: Bx, By, Bz (Tesla) Ex, Ey, Ez (Megavolts/meter) ProperTime (ns) PathLength (mm) PolX, PolY, PolZ (polarization) InitialKE (MeV when track was created) Valid Formats (ignore case): ascii bltrackfile dummy for009 for009.dat trackfile Extended asciiExtended Named Arguments (#=cannot be changed in place cmd): z Comma-separated list of Z positions (mm) zloop Loop in z, first:last:incr (mm) noSingles Set to 1 to omit the NTuple for singles. format NTuple format (see above for list) file Output filename ('' uses name to determine filename) filename Synonym for file require Expression which must be nonzero to include the track (default=1) # referenceParticle Set to 1 to include the Reference Particle. coordinates Coordinates: global, centerline, or reference (default=c).
G4BL_DIR=/home/mice/Grid/MAUS-v2.8.5/third_party/build/G4beamline-2.12-source G4ABLADATA=/home/mice/Grid/MAUS-v2.8.5/third_party/install/share/Geant4-9.6.2/data/G4NEUTRONXS1.2/ G4LEDATA=/home/mice/Grid/MAUS-v2.8.5/third_party/install/share/Geant4-9.6.2/data/G4EMLOW6.32/ G4LEVELGAMMADATA=/home/mice/Grid/MAUS-v2.8.5/third_party/install/share/Geant4-9.6.2/data/PhotonEvaporation2.3/ G4RADIOACTIVEDATA=/home/mice/Grid/MAUS-v2.8.5/third_party/install/share/Geant4-9.6.2/data/RadioactiveDecay3.6/ LD_LIBRARY_PATH=/home/mice/Grid/MAUS-v2.8.5/third_party/build/G4beamline-2.12-source/lib:/home/mice/Grid/MAUS-v2.8.5/third_party/build/root/lib:/home/mice/Grid/MAUS-v2.8.5/third_party/install/lib64:/home/mice/Grid/MAUS-v2.8.5/src/common_py:/home/mice/Grid/MAUS-v2.8.5/build:/home/mice/Grid/MAUS-v2.8.5/build:/home/mice/Grid/MAUS-v2.8.5/third_party/install/lib G4beamline Process ID 28954 ************************************************************* g4beamline version: 2.12-mice (26-Apr-2017-16:29) Copyright : Tom Roberts, Muons, Inc. License : Gnu Public License WWW : http://g4beamline.muonsinc.com ************************************************************* Geant4 version Name: geant4-09-05-patch-01 (20-March-2012) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* *** g4beamline: invalid arg 'sed' ignored *** g4beamline: invalid arg '-e' ignored *** g4beamline: invalid arg '1,/^----/d' ignored *** g4beamline: invalid arg '-e' ignored *** g4beamline: invalid arg 's/&/\&/g' ignored *** g4beamline: invalid arg '-e' ignored *** g4beamline: invalid arg 's/>/\>/g' ignored *** g4beamline: invalid arg '-e' ignored *** g4beamline: invalid arg 's/\</g' ignored geometry nPoints=100 printGeometry=0 visual=0 tolerance=0.002 Physics list QGSP is obsolete, replaced by QGSP_BERT G4PhysListFactory::GetReferencePhysListEMoption= 0 <<< Geant4 Physics List simulation engine: QGSP_BERT 3.4 <<< Reference Physics List QGSP_BERT is built physics QGSP_BERT disable= inactivate= deactivate= doStochastics=1 minRangeCut=1 list=0 gammaToMuPair=0 spinTracking=0 synchrotronRadiation=0 synchrotronRadiationMuon=0 * * * Particles: ---------- B+ PDGid=521 B- PDGid=-521 B0 PDGid=511 Bc+ PDGid=541 Bc- PDGid=-541 Bs0 PDGid=531 D+ PDGid=411 D- PDGid=-411 D0 PDGid=421 Ds+ PDGid=431 Ds- PDGid=-431 GenericIon PDGid=0 He3 PDGid=1000020030 J/psi PDGid=443 N(1440)+ PDGid=12212 N(1440)0 PDGid=12112 N(1520)+ PDGid=2124 N(1520)0 PDGid=1214 N(1535)+ PDGid=22212 N(1535)0 PDGid=22112 N(1650)+ PDGid=32212 N(1650)0 PDGid=32112 N(1675)+ PDGid=2216 N(1675)0 PDGid=2116 N(1680)+ PDGid=12216 N(1680)0 PDGid=12116 N(1700)+ PDGid=22124 N(1700)0 PDGid=21214 N(1710)+ PDGid=42212 N(1710)0 PDGid=42112 N(1720)+ PDGid=32124 N(1720)0 PDGid=31214 N(1900)+ PDGid=42124 N(1900)0 PDGid=41214 N(1990)+ PDGid=12218 N(1990)0 PDGid=12118 N(2090)+ PDGid=52214 N(2090)0 PDGid=52114 N(2190)+ PDGid=2128 N(2190)0 PDGid=1218 N(2220)+ PDGid=100002210 N(2220)0 PDGid=100002110 N(2250)+ PDGid=100012210 N(2250)0 PDGid=100012110 Upsiron PDGid=553 a0(1450)+ PDGid=10211 a0(1450)- PDGid=-10211 a0(1450)0 PDGid=10111 a0(980)+ PDGid=9000211 a0(980)- PDGid=-9000211 a0(980)0 PDGid=9000111 a1(1260)+ PDGid=20213 a1(1260)- PDGid=-20213 a1(1260)0 PDGid=20113 a2(1320)+ PDGid=215 a2(1320)- PDGid=-215 a2(1320)0 PDGid=115 alpha PDGid=1000020040 anti_B0 PDGid=-511 anti_Bs0 PDGid=-531 anti_D0 PDGid=-421 anti_He3 PDGid=-1000020030 anti_N(1440)+ PDGid=-12212 anti_N(1440)0 PDGid=-12112 anti_N(1520)+ PDGid=-2124 anti_N(1520)0 PDGid=-1214 anti_N(1535)+ PDGid=-22212 anti_N(1535)0 PDGid=-22112 anti_N(1650)+ PDGid=-32212 anti_N(1650)0 PDGid=-32112 anti_N(1675)+ PDGid=-2216 anti_N(1675)0 PDGid=-2116 anti_N(1680)+ PDGid=-12216 anti_N(1680)0 PDGid=-12116 anti_N(1700)+ PDGid=-22124 anti_N(1700)0 PDGid=-21214 anti_N(1710)+ PDGid=-42212 anti_N(1710)0 PDGid=-42112 anti_N(1720)+ PDGid=-32124 anti_N(1720)0 PDGid=-31214 anti_N(1900)+ PDGid=-42124 anti_N(1900)0 PDGid=-41214 anti_N(1990)+ PDGid=-12218 anti_N(1990)0 PDGid=-12118 anti_N(2090)+ PDGid=-52214 anti_N(2090)0 PDGid=-52114 anti_N(2190)+ PDGid=-2128 anti_N(2190)0 PDGid=-1218 anti_N(2220)+ PDGid=-100002210 anti_N(2220)0 PDGid=-100002110 anti_N(2250)+ PDGid=-100012210 anti_N(2250)0 PDGid=-100012110 anti_alpha PDGid=-1000020040 anti_b_quark PDGid=-5 anti_c_quark PDGid=-4 anti_d_quark PDGid=-1 anti_dd1_diquark PDGid=-1103 anti_delta(1600)+ PDGid=-32214 anti_delta(1600)++ PDGid=-32224 anti_delta(1600)- PDGid=-31114 anti_delta(1600)0 PDGid=-32114 anti_delta(1620)+ PDGid=-2122 anti_delta(1620)++ PDGid=-2222 anti_delta(1620)- PDGid=-1112 anti_delta(1620)0 PDGid=-1212 anti_delta(1700)+ PDGid=-12214 anti_delta(1700)++ PDGid=-12224 anti_delta(1700)- PDGid=-11114 anti_delta(1700)0 PDGid=-12114 anti_delta(1900)+ PDGid=-12122 anti_delta(1900)++ PDGid=-12222 anti_delta(1900)- PDGid=-11112 anti_delta(1900)0 PDGid=-11212 anti_delta(1905)+ PDGid=-2126 anti_delta(1905)++ PDGid=-2226 anti_delta(1905)- PDGid=-1116 anti_delta(1905)0 PDGid=-1216 anti_delta(1910)+ PDGid=-22122 anti_delta(1910)++ PDGid=-22222 anti_delta(1910)- PDGid=-21112 anti_delta(1910)0 PDGid=-21212 anti_delta(1920)+ PDGid=-22214 anti_delta(1920)++ PDGid=-22224 anti_delta(1920)- PDGid=-21114 anti_delta(1920)0 PDGid=-22114 anti_delta(1930)+ PDGid=-12126 anti_delta(1930)++ PDGid=-12226 anti_delta(1930)- PDGid=-11116 anti_delta(1930)0 PDGid=-11216 anti_delta(1950)+ PDGid=-2218 anti_delta(1950)++ PDGid=-2228 anti_delta(1950)- PDGid=-1118 anti_delta(1950)0 PDGid=-2118 anti_delta+ PDGid=-2214 anti_delta++ PDGid=-2224 anti_delta- PDGid=-1114 anti_delta0 PDGid=-2114 anti_deuteron PDGid=-1000010020 anti_k(1460)0 PDGid=-100311 anti_k0_star(1430)0 PDGid=-10311 anti_k1(1270)0 PDGid=-10313 anti_k1(1400)0 PDGid=-20313 anti_k2(1770)0 PDGid=-10315 anti_k2_star(1430)0 PDGid=-315 anti_k2_star(1980)0 PDGid=-100315 anti_k3_star(1780)0 PDGid=-317 anti_k_star(1410)0 PDGid=-100313 anti_k_star(1680)0 PDGid=-30313 anti_k_star0 PDGid=-313 anti_kaon0 PDGid=-311 anti_lambda PDGid=-3122 anti_lambda(1405) PDGid=-13122 anti_lambda(1520) PDGid=-3124 anti_lambda(1600) PDGid=-23122 anti_lambda(1670) PDGid=-33122 anti_lambda(1690) PDGid=-13124 anti_lambda(1800) PDGid=-43122 anti_lambda(1810) PDGid=-53122 anti_lambda(1820) PDGid=-3126 anti_lambda(1830) PDGid=-13126 anti_lambda(1890) PDGid=-23124 anti_lambda(2100) PDGid=-3128 anti_lambda(2110) PDGid=-23126 anti_lambda_b PDGid=-5122 anti_lambda_c+ PDGid=-4122 anti_neutron PDGid=-2112 anti_nu_e PDGid=-12 anti_nu_mu PDGid=-14 anti_nu_tau PDGid=-16 anti_omega- PDGid=-3334 anti_omega_b- PDGid=-5332 anti_omega_c0 PDGid=-4332 anti_proton PDGid=-2212 anti_s_quark PDGid=-3 anti_sd0_diquark PDGid=-3101 anti_sd1_diquark PDGid=-3103 anti_sigma(1385)+ PDGid=-3224 anti_sigma(1385)- PDGid=-3114 anti_sigma(1385)0 PDGid=-3214 anti_sigma(1660)+ PDGid=-13222 anti_sigma(1660)- PDGid=-13112 anti_sigma(1660)0 PDGid=-13212 anti_sigma(1670)+ PDGid=-13224 anti_sigma(1670)- PDGid=-13114 anti_sigma(1670)0 PDGid=-13214 anti_sigma(1750)+ PDGid=-23222 anti_sigma(1750)- PDGid=-23112 anti_sigma(1750)0 PDGid=-23212 anti_sigma(1775)+ PDGid=-3226 anti_sigma(1775)- PDGid=-3116 anti_sigma(1775)0 PDGid=-3216 anti_sigma(1915)+ PDGid=-13226 anti_sigma(1915)- PDGid=-13116 anti_sigma(1915)0 PDGid=-13216 anti_sigma(1940)+ PDGid=-23224 anti_sigma(1940)- PDGid=-23114 anti_sigma(1940)0 PDGid=-23214 anti_sigma(2030)+ PDGid=-3228 anti_sigma(2030)- PDGid=-3118 anti_sigma(2030)0 PDGid=-3218 anti_sigma+ PDGid=-3222 anti_sigma- PDGid=-3112 anti_sigma0 PDGid=-3212 anti_sigma_b+ PDGid=-5222 anti_sigma_b- PDGid=-5112 anti_sigma_b0 PDGid=-5212 anti_sigma_c+ PDGid=-4212 anti_sigma_c++ PDGid=-4222 anti_sigma_c0 PDGid=-4112 anti_ss1_diquark PDGid=-3303 anti_su0_diquark PDGid=-3201 anti_su1_diquark PDGid=-3203 anti_t_quark PDGid=-6 anti_triton PDGid=-1000010030 anti_u_quark PDGid=-2 anti_ud0_diquark PDGid=-2101 anti_ud1_diquark PDGid=-2103 anti_uu1_diquark PDGid=-2203 anti_xi(1530)- PDGid=-3314 anti_xi(1530)0 PDGid=-3324 anti_xi(1690)- PDGid=-23314 anti_xi(1690)0 PDGid=-23324 anti_xi(1820)- PDGid=-13314 anti_xi(1820)0 PDGid=-13324 anti_xi(1950)- PDGid=-33314 anti_xi(1950)0 PDGid=-33324 anti_xi(2030)- PDGid=-13316 anti_xi(2030)0 PDGid=-13326 anti_xi- PDGid=-3312 anti_xi0 PDGid=-3322 anti_xi_b- PDGid=-5132 anti_xi_b0 PDGid=-5232 anti_xi_c+ PDGid=-4232 anti_xi_c0 PDGid=-4132 b1(1235)+ PDGid=10213 b1(1235)- PDGid=-10213 b1(1235)0 PDGid=10113 b_quark PDGid=5 c_quark PDGid=4 chargedgeantino PDGid=0 d_quark PDGid=1 dd1_diquark PDGid=1103 delta(1600)+ PDGid=32214 delta(1600)++ PDGid=32224 delta(1600)- PDGid=31114 delta(1600)0 PDGid=32114 delta(1620)+ PDGid=2122 delta(1620)++ PDGid=2222 delta(1620)- PDGid=1112 delta(1620)0 PDGid=1212 delta(1700)+ PDGid=12214 delta(1700)++ PDGid=12224 delta(1700)- PDGid=11114 delta(1700)0 PDGid=12114 delta(1900)+ PDGid=12122 delta(1900)++ PDGid=12222 delta(1900)- PDGid=11112 delta(1900)0 PDGid=11212 delta(1905)+ PDGid=2126 delta(1905)++ PDGid=2226 delta(1905)- PDGid=1116 delta(1905)0 PDGid=1216 delta(1910)+ PDGid=22122 delta(1910)++ PDGid=22222 delta(1910)- PDGid=21112 delta(1910)0 PDGid=21212 delta(1920)+ PDGid=22214 delta(1920)++ PDGid=22224 delta(1920)- PDGid=21114 delta(1920)0 PDGid=22114 delta(1930)+ PDGid=12126 delta(1930)++ PDGid=12226 delta(1930)- PDGid=11116 delta(1930)0 PDGid=11216 delta(1950)+ PDGid=2218 delta(1950)++ PDGid=2228 delta(1950)- PDGid=1118 delta(1950)0 PDGid=2118 delta+ PDGid=2214 delta++ PDGid=2224 delta- PDGid=1114 delta0 PDGid=2114 deuteron PDGid=1000010020 e+ PDGid=-11 e- PDGid=11 eta PDGid=221 eta(1295) PDGid=100221 eta(1405) PDGid=9020221 eta(1475) PDGid=100331 eta2(1645) PDGid=10225 eta2(1870) PDGid=10335 eta_prime PDGid=331 etac PDGid=441 f0(1370) PDGid=10221 f0(1500) PDGid=9030221 f0(1710) PDGid=10331 f0(600) PDGid=9000221 f0(980) PDGid=9010221 f1(1285) PDGid=20223 f1(1420) PDGid=20333 f2(1270) PDGid=225 f2(1810) PDGid=9030225 f2(2010) PDGid=9060225 f2_prime(1525) PDGid=335 gamma PDGid=22 geantino PDGid=0 gluon PDGid=21 h1(1170) PDGid=10223 h1(1380) PDGid=10333 k(1460)+ PDGid=100321 k(1460)- PDGid=-100321 k(1460)0 PDGid=100311 k0_star(1430)+ PDGid=10321 k0_star(1430)- PDGid=-10321 k0_star(1430)0 PDGid=10311 k1(1270)+ PDGid=10323 k1(1270)- PDGid=-10323 k1(1270)0 PDGid=10313 k1(1400)+ PDGid=20323 k1(1400)- PDGid=-20323 k1(1400)0 PDGid=20313 k2(1770)+ PDGid=10325 k2(1770)- PDGid=-10325 k2(1770)0 PDGid=10315 k2_star(1430)+ PDGid=325 k2_star(1430)- PDGid=-325 k2_star(1430)0 PDGid=315 k2_star(1980)+ PDGid=100325 k2_star(1980)- PDGid=-100325 k2_star(1980)0 PDGid=100315 k3_star(1780)+ PDGid=327 k3_star(1780)- PDGid=-327 k3_star(1780)0 PDGid=317 k_star(1410)+ PDGid=100323 k_star(1410)- PDGid=-100323 k_star(1410)0 PDGid=100313 k_star(1680)+ PDGid=30323 k_star(1680)- PDGid=-30323 k_star(1680)0 PDGid=30313 k_star+ PDGid=323 k_star- PDGid=-323 k_star0 PDGid=313 kaon+ PDGid=321 kaon- PDGid=-321 kaon0 PDGid=311 kaon0L PDGid=130 kaon0S PDGid=310 lambda PDGid=3122 lambda(1405) PDGid=13122 lambda(1520) PDGid=3124 lambda(1600) PDGid=23122 lambda(1670) PDGid=33122 lambda(1690) PDGid=13124 lambda(1800) PDGid=43122 lambda(1810) PDGid=53122 lambda(1820) PDGid=3126 lambda(1830) PDGid=13126 lambda(1890) PDGid=23124 lambda(2100) PDGid=3128 lambda(2110) PDGid=23126 lambda_b PDGid=5122 lambda_c+ PDGid=4122 mu+ PDGid=-13 mu- PDGid=13 neutron PDGid=2112 nu_e PDGid=12 nu_mu PDGid=14 nu_tau PDGid=16 omega PDGid=223 omega(1420) PDGid=100223 omega(1650) PDGid=30223 omega- PDGid=3334 omega3(1670) PDGid=227 omega_b- PDGid=5332 omega_c0 PDGid=4332 opticalphoton PDGid=0 phi PDGid=333 phi(1680) PDGid=100333 phi3(1850) PDGid=337 pi(1300)+ PDGid=100211 pi(1300)- PDGid=-100211 pi(1300)0 PDGid=100111 pi+ PDGid=211 pi- PDGid=-211 pi0 PDGid=111 pi2(1670)+ PDGid=10215 pi2(1670)- PDGid=-10215 pi2(1670)0 PDGid=10115 proton PDGid=2212 rho(1450)+ PDGid=100213 rho(1450)- PDGid=-100213 rho(1450)0 PDGid=100113 rho(1700)+ PDGid=30213 rho(1700)- PDGid=-30213 rho(1700)0 PDGid=30113 rho+ PDGid=213 rho- PDGid=-213 rho0 PDGid=113 rho3(1690)+ PDGid=217 rho3(1690)- PDGid=-217 rho3(1690)0 PDGid=117 s_quark PDGid=3 sd0_diquark PDGid=3101 sd1_diquark PDGid=3103 sigma(1385)+ PDGid=3224 sigma(1385)- PDGid=3114 sigma(1385)0 PDGid=3214 sigma(1660)+ PDGid=13222 sigma(1660)- PDGid=13112 sigma(1660)0 PDGid=13212 sigma(1670)+ PDGid=13224 sigma(1670)- PDGid=13114 sigma(1670)0 PDGid=13214 sigma(1750)+ PDGid=23222 sigma(1750)- PDGid=23112 sigma(1750)0 PDGid=23212 sigma(1775)+ PDGid=3226 sigma(1775)- PDGid=3116 sigma(1775)0 PDGid=3216 sigma(1915)+ PDGid=13226 sigma(1915)- PDGid=13116 sigma(1915)0 PDGid=13216 sigma(1940)+ PDGid=23224 sigma(1940)- PDGid=23114 sigma(1940)0 PDGid=23214 sigma(2030)+ PDGid=3228 sigma(2030)- PDGid=3118 sigma(2030)0 PDGid=3218 sigma+ PDGid=3222 sigma- PDGid=3112 sigma0 PDGid=3212 sigma_b+ PDGid=5222 sigma_b- PDGid=5112 sigma_b0 PDGid=5212 sigma_c+ PDGid=4212 sigma_c++ PDGid=4222 sigma_c0 PDGid=4112 ss1_diquark PDGid=3303 su0_diquark PDGid=3201 su1_diquark PDGid=3203 t_quark PDGid=6 tau+ PDGid=-15 tau- PDGid=15 triton PDGid=1000010030 u_quark PDGid=2 ud0_diquark PDGid=2101 ud1_diquark PDGid=2103 uu1_diquark PDGid=2203 xi(1530)- PDGid=3314 xi(1530)0 PDGid=3324 xi(1690)- PDGid=23314 xi(1690)0 PDGid=23324 xi(1820)- PDGid=13314 xi(1820)0 PDGid=13324 xi(1950)- PDGid=33314 xi(1950)0 PDGid=33324 xi(2030)- PDGid=13316 xi(2030)0 PDGid=13326 xi- PDGid=3312 xi0 PDGid=3322 xi_b- PDGid=5132 xi_b0 PDGid=5232 xi_c+ PDGid=4232 xi_c0 PDGid=4132