Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/field/field04/README

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/extended/field/field04/README (Version 11.3.0) and /examples/extended/field/field04/README (Version 10.3.p2)


  1                                                     1 
  2      =========================================      2      =========================================================
  3      Geant4 - an Object-Oriented Toolkit for S      3      Geant4 - an Object-Oriented Toolkit for Simulation in HEP
  4      =========================================      4      =========================================================
  5                                                     5 
  6                                                     6 
  7                                                     7 
  8                             field04 Example         8                             field04 Example
  9                             ---------------         9                             ---------------
 10                                                    10 
 11      This example shows how to define/use OVER <<  11      This example shows how to define/use OVERLAPPING field elements 
 12      in Geant4. Fields might be either magneti     12      in Geant4. Fields might be either magnetic, electric or both.
 13                                                    13 
 14      Credit goes to Tom Roberts and Muons Inc.     14      Credit goes to Tom Roberts and Muons Inc. since much of the code
 15      and ideas were taken at liberty from the  <<  15      and ideas were taken at liberty from the (GNU GPL) source of 
 16      G4BEAMLINE release 1.12.                      16      G4BEAMLINE release 1.12.
 17                                                    17 
 18      http://g4beamline.muonsinc.com                18      http://g4beamline.muonsinc.com
 19                                                    19 
 20 **************                                     20 **************
 21 *Classes Used*                                     21 *Classes Used*
 22 **************                                     22 **************
 23                                                    23 
 24  1 - main()                                        24  1 - main()
 25                                                    25 
 26  See field04.cc.                                   26  See field04.cc.
                                                   >>  27  
                                                   >>  28         Note:
 27                                                    29 
 28         The example can be run with the follow <<  30         //  runManager->Initialize();
 29                                                    31 
 30         % field04 [-m macro ] [-p physicsList] <<  32         is commented out and must be executed with: /run/initialize
                                                   >>  33         either in a macro or on the command line. Note: One can change
                                                   >>  34         the geometry (see below) only BEFORE the initialization!
 31                                                    35 
 32         If a macro is provided with the option <<  36         Is is possible to assign the F04PhysicsList via an argument to
 33         otherwise the program open the interac <<  37         program submission:
 34         default initialization macro init_vis. << 
 35         to start the program without initializ << 
 36                                                    38 
 37         For example:                           << 
 38         to assign the F04PhysicsList:          << 
 39         % field04 -p QGSP_BERT                     39         % field04 -p QGSP_BERT
 40                                                    40 
 41         an initial random number seed with:    <<  41         and an initial random number seed with:
 42         % field04 field04.in -r 12345          << 
 43                                                    42 
 44         to start with a macro file and an init <<  43         % field04 field04.in 12345
 45         % field04 -m field04.in -r 12345       <<  44 
                                                   >>  45         It is also possible to specify more than one macro file which are
                                                   >>  46         then executed in succession:
                                                   >>  47 
                                                   >>  48         % field04 field04.in field04.in 12345
                                                   >>  49 
                                                   >>  50         (Note, in this case the initial random # must also be provided)
                                                   >>  51 
                                                   >>  52         (1) argc holds the number of arguments on the command line. Since
                                                   >>  53             this MUST include at least the program name, argc value is >= 1!
                                                   >>  54         (2) argv[0] is always the name of the program
                                                   >>  55             argv[1] points to the first argument, and so on ...
                                                   >>  56         (3) argv[argc-1] is assumed to be the intial random # seed
                                                   >>  57         (4) the loop over macro files goes from optind = 1 to (argc-1)
 46                                                    58 
 47                                                    59 
 48  2- GEOMETRY DEFINITION                            60  2- GEOMETRY DEFINITION
 49                                                    61 
 50         The geometry consists of two solenoida     62         The geometry consists of two solenoidal magnets: a "CaptureMgnt"
 51         followed by a (blue-colored "TransferM     63         followed by a (blue-colored "TransferMgnt". By definition, the
 52         axis and center of the "CaptureMgnt" c     64         axis and center of the "CaptureMgnt" coincide with the "World". The
 53         position of the "TransferMgnt" relativ     65         position of the "TransferMgnt" relative to the downstream end of the
 54         "CaptureMgnt", as well as its axis ang     66         "CaptureMgnt", as well as its axis angle, both may vary. A cylindrical
 55         "Target" is positioned inside the "Cap     67         "Target" is positioned inside the "CaptureMgnt". Its axis can vary
 56         from 0 to 180 deg, and hence also the      68         from 0 to 180 deg, and hence also the direction of the incoming
 57         proton beam wrt the "CaptureMgnt"'s ax     69         proton beam wrt the "CaptureMgnt"'s axis. A "Degrader" is located
 58         inside the "TransferMgnt", its default     70         inside the "TransferMgnt", its default position being at the
 59         upstream end of the "TransferMgnt". Fi     71         upstream end of the "TransferMgnt". Finally, also a "TestPlane" is
 60         located inside the "TransferMgnt", by      72         located inside the "TransferMgnt", by default at its downstream end.
 61                                                    73 
 62                                                    74 
 63         The "World" consists of a solid cylind     75         The "World" consists of a solid cylinder made of a given material.
 64           (It is the responsibility of the use     76           (It is the responsibility of the user to make the world
 65            large enough to contain the rest of     77            large enough to contain the rest of the geometry!)
 66                                                    78 
 67         Three parameters define the world :        79         Three parameters define the world :
 68         - the material of the world,               80         - the material of the world,
 69         - the world radius,                        81         - the world radius,
 70         - the world length.                        82         - the world length.
 71                                                    83 
 72         Example (default values):                  84         Example (default values):
 73         /field04/SetWorldMat G4_AIR                85         /field04/SetWorldMat G4_AIR
 74         /field04/SetWorldR  5.0 m                  86         /field04/SetWorldR  5.0 m
 75         /field04/SetWorldZ 50.0 m                  87         /field04/SetWorldZ 50.0 m
 76                                                    88 
 77                                                    89 
 78         The "Target" is a solid cylinder made      90         The "Target" is a solid cylinder made of a given material.
 79                                                    91 
 80         Five parameters define the target:         92         Five parameters define the target:
 81         - the material of the target,              93         - the material of the target,
 82         - the target radius,                       94         - the target radius,
 83         - the target thickness,                    95         - the target thickness,
 84         - the target position inside the "Capt     96         - the target position inside the "CaptureMgnt",
 85         - the target axis angle relative to th     97         - the target axis angle relative to that of the "CaptureMgnt".
 86                                                    98 
 87         Example (default values):                  99         Example (default values):
 88         /field04/SetTgtMat G4_W                   100         /field04/SetTgtMat G4_W
 89         /field04/SetTgtRad    0.4 cm              101         /field04/SetTgtRad    0.4 cm
 90         /field04/SetTgtThick 16.0 cm              102         /field04/SetTgtThick 16.0 cm
 91         /field04/SetTgtPos 0.0 cm                 103         /field04/SetTgtPos 0.0 cm
 92         /field04/SetTgtAng 170                    104         /field04/SetTgtAng 170
 93                                                   105 
 94                                                   106 
 95         The "Degrader" is a solid cylinder  ma    107         The "Degrader" is a solid cylinder  made of a given material.
 96                                                   108 
 97         Four parameters define the degrader:      109         Four parameters define the degrader:
 98         - the material of the degrader,           110         - the material of the degrader,
 99         - the degrader radius,                    111         - the degrader radius,
100         - the degrader thickness,                 112         - the degrader thickness,
101         - the degrader position relative to th    113         - the degrader position relative to the "TransferMgnt" center.
102                                                   114 
103         Example (default values):                 115         Example (default values):
104         /field04/SetDgrMat G4_Pb                  116         /field04/SetDgrMat G4_Pb
105         /field04/SetDgrRad  30.0 cm               117         /field04/SetDgrRad  30.0 cm
106         /field04/SetDgrThick 0.1 cm               118         /field04/SetDgrThick 0.1 cm
107         #/field04/SetDgrPos -7.4 m                119         #/field04/SetDgrPos -7.4 m
108                                                   120 
109                                                   121 
110         The "CaptureMgnt" is a solenoid (vacuu    122         The "CaptureMgnt" is a solenoid (vacuum cylinder). It is either
111         a two-sided or a one-sided magnetic bo    123         a two-sided or a one-sided magnetic bottle with the B field
112         varying linearly from the center value    124         varying linearly from the center value B1 to the edge value B2.
113         The one-sided F04FocusSolenoid has the    125         The one-sided F04FocusSolenoid has the open end at +z and focuses
114         on the z < 0 side.                        126         on the z < 0 side.
115                                                   127 
116         Four parameters define the "CaptureMgn    128         Four parameters define the "CaptureMgnt":
117         - the magnet radius,                      129         - the magnet radius,
118         - the magnet length,                      130         - the magnet length,
119         - the weaker magnetic field at the cen    131         - the weaker magnetic field at the center B1
120         - the stronger magnetic field at the e    132         - the stronger magnetic field at the edge B2
121                                                   133 
122         Example (default values):                 134         Example (default values):
123         /field04/SetCaptureR 0.6 m             << 135         /field04/SetCaptureR 0.6 m 
124         /field04/SetCaptureZ 4.0 m                136         /field04/SetCaptureZ 4.0 m
125         /field/SetCaptureB1 2.5 tesla          << 137         /field/SetCaptureB1 2.5 tesla 
126         /field/SetCaptureB2 5.0 tesla             138         /field/SetCaptureB2 5.0 tesla
127                                                   139 
128                                                   140 
129         The "TransferMgnt" is a solenoid (vacu << 141         The "TransferMgnt" is a solenoid (vacuum cylinder) with a 
130         constant B-field. When the "TransferMg    142         constant B-field. When the "TransferMgnt" follows immediately
131         the "CaptureMgnt", its relative positi    143         the "CaptureMgnt", its relative position is at 0 cm.
132                                                   144 
133         Four parameters define the "TransferMg    145         Four parameters define the "TransferMgnt":
134         - the magnet radius,                      146         - the magnet radius,
135         - the magnet length,                      147         - the magnet length,
136         - the magnet field,                       148         - the magnet field,
137         - the magnet relative position            149         - the magnet relative position
138           (its upstream face wrt the downstrea    150           (its upstream face wrt the downstream face of the "CaptureMgnt".)
139                                                   151 
140         Example (default values):                 152         Example (default values):
141         /field04/SetTransferR  0.3 m              153         /field04/SetTransferR  0.3 m
142         /field04/SetTransferZ 15.0 m              154         /field04/SetTransferZ 15.0 m
143         /field/SetTransferB 5.0 tesla             155         /field/SetTransferB 5.0 tesla
144         /field04/SetTransferP 0.0 m               156         /field04/SetTransferP 0.0 m
145                                                   157 
146         The default geometry is constructed in    158         The default geometry is constructed in F04DetectorConstruction class,
147         but all the parameters can be changed  << 159         but all the parameters can be changed via the commands defined in 
148         the F04DetectorMessenger class.           160         the F04DetectorMessenger class.
149                                                   161 
150                                                   162 
151  3- MATERIAL DEFINITION                           163  3- MATERIAL DEFINITION
152                                                   164 
153         Material definitions are done through     165         Material definitions are done through the singleton class F04Materials
154         which keeps a pointer to the G4NistMan    166         which keeps a pointer to the G4NistManager. It has a method
155         GetMaterial by name (G4String) which i    167         GetMaterial by name (G4String) which in turn invokes the
156         G4NistManager::FindOrBuildMaterial, an    168         G4NistManager::FindOrBuildMaterial, and/or G4Material::GetMaterial
157         methods. It has also a method CreateMa    169         methods. It has also a method CreateMaterials which, for materials
158         absent from the NIST data base, shows     170         absent from the NIST data base, shows how to create them using the
159         G4NistManager::ConstructNewMaterial me    171         G4NistManager::ConstructNewMaterial method.
160                                                   172 
161                                                   173 
162  4- AN EVENT: THE PRIMARY GENERATOR               174  4- AN EVENT: THE PRIMARY GENERATOR
163                                                   175 
164         The primary kinematic consists of a si    176         The primary kinematic consists of a single particle which hits the
165         target perpendicular to its upstream f    177         target perpendicular to its upstream face. The type of the particle
166         and its energy are set in the F04Prima    178         and its energy are set in the F04PrimaryGeneratorAction class, and can
167         be changed via the G4 build-in command    179         be changed via the G4 build-in commands of the G4ParticleGun class.
168         In addition, there is a fRndmFlag, whi    180         In addition, there is a fRndmFlag, which once set allows the beam to
169         explore randomly the whole cross secti    181         explore randomly the whole cross section of the target. The default
170         beam consists of 500 MeV protons, star    182         beam consists of 500 MeV protons, starting at the upstream face of
171         the target, directed along dx = dy = 0    183         the target, directed along dx = dy = 0, dz = 1 wrt the target frame.
172         The default direction should NOT be ch    184         The default direction should NOT be changed! The arguments of the
173         x/y/zvertex commands are relative to t    185         x/y/zvertex commands are relative to the target center.
174                                                   186 
175         Example:                                  187         Example:
176         /gun/random on                            188         /gun/random on
177         #/gun/xvertex 0 mm                        189         #/gun/xvertex 0 mm
178         #/gun/yvertex 0 mm                        190         #/gun/yvertex 0 mm
179         #/gun/zvertex -100 mm                     191         #/gun/zvertex -100 mm
180                                                   192 
181                                                   193 
182  5- DETECTOR RESPONSE                             194  5- DETECTOR RESPONSE
183                                                   195 
184         Information is extracted from the prog    196         Information is extracted from the program via F04SteppingAction
185         at the TestPlane.                         197         at the TestPlane.
186                                                   198 
187                                                   199 
188  6- PHYSICS                                    << 200  6- PHYSICS 
                                                   >> 201 
                                                   >> 202         The F04PhysicsList is adopted from examples/extended/hadronic/Hadr01.
                                                   >> 203         It uses components which are distributed with Geant4 in
                                                   >> 204         /geant4/physics_lists subdirectory. So, before compiling field04
                                                   >> 205         it is necessary to compile physics_lists.
                                                   >> 206 
                                                   >> 207         There are two std::vector<G4VPhysicsConstructor*> PhysicsListVectors;
                                                   >> 208         one for EMPhysics and one for HadronPHysics and a user defined process
                                                   >> 209         F04StepMax.
                                                   >> 210 
                                                   >> 211         The choice of the physics is provided by the UI command:
                                                   >> 212 
                                                   >> 213         /exp/phys/addPhysics emstandard_opt1
                                                   >> 214         /exp/phys/addPhysics QGSP_BERT
                                                   >> 215 
                                                   >> 216         To see the list of available configurations one can use:
                                                   >> 217 
                                                   >> 218         /exp/phys/list
                                                   >> 219 
                                                   >> 220         The command:
                                                   >> 221 
                                                   >> 222         /exp/phys/addPhysics PHYSLIST
                                                   >> 223 
                                                   >> 224         allows to download a physics configuration defined by an
                                                   >> 225         environment variable PHYSLIST.
                                                   >> 226 
                                                   >> 227         The cuts for electromagnetic phsyics can be established via:
                                                   >> 228 
                                                   >> 229         /exp/phys/allCuts       1 mm
                                                   >> 230         /exp/phys/gammaCut    0.1 mm
                                                   >> 231         /exp/phys/electronCut 0.2 mm
                                                   >> 232         /exp/phys/positronCut 0.3 mm
                                                   >> 233 
                                                   >> 234         The cut for the F04StepMax process via:
                                                   >> 235 
                                                   >> 236         /exp/phys/stepMax
189                                                   237 
190         The F04PhysicsList extends a selected  << 238         The two G4PhysConstVectors can be cleared via:
191         The base physics list name is provided << 
192         constructor.                           << 
193                                                << 
194         In addition to processes defined in th << 
195         there is added the F04StepMax process  << 
196         via dedicated commands in F04PhysicsLi << 
197                                                   239 
198         The command to define maximum step:    << 240         /exp/phys/clearEMPhysics
199         /exp/phys/stepMax value unit           << 241         /exp/phys/clearHadronPhysics
                                                   >> 242 
                                                   >> 243         and individual processes can be removed from the vectors via,
                                                   >> 244         for example:
                                                   >> 245 
                                                   >> 246         /exp/phys/removeEMPhysics msc
                                                   >> 247         /exp/phys/removeHadronPhysics gamma_nuc
                                                   >> 248 
                                                   >> 249         Furthermore, the following commands are also available, but
                                                   >> 250         may only be used AFTER /run/initialize
                                                   >> 251 
                                                   >> 252         /process/inactivate msc
                                                   >> 253         /process/activate msc
200                                                   254 
201         The decay of pions can be assigned via    255         The decay of pions can be assigned via (pi -> e nu, pi -> mu nu):
202                                                   256 
203         /decay/pienu                              257         /decay/pienu
204         /decay/pimunu                             258         /decay/pimunu
205                                                   259 
206         The pienu assignment includes a small     260         The pienu assignment includes a small fraction of radiative decay:
207         e nu gamma (G4PionRadiativeDecayChanne    261         e nu gamma (G4PionRadiativeDecayChannel).
208                                                   262 
209         The standard/default muon decay chain     263         The standard/default muon decay chain is modified to be 98.6%
210         G4MuonDecayChannelWithSpin and 1.4% G4    264         G4MuonDecayChannelWithSpin and 1.4% G4MuonRadiativeDecayChannelWithSpin
211         in ConstructParticle().                   265         in ConstructParticle().
212                                                   266 
213         The pion decay process G4PolDecay inhe    267         The pion decay process G4PolDecay inherits from G4Decay and implements
214         the virtual method - empty in the base    268         the virtual method - empty in the base class - DaughterPolarization
215                                                   269 
216         The muon decay process is G4DecayWithS    270         The muon decay process is G4DecayWithSpin
217                                                   271 
218         Furthermore, the following commands ar << 
219         may only be used AFTER /run/initialize << 
220                                                << 
221         /process/inactivate msc                << 
222         /process/activate msc                  << 
223                                                   272 
224  7- Overlapping Fields                            273  7- Overlapping Fields
225                                                   274 
226         The F04GlobalField (a singleton) is in << 275         The F04GlobalField (a singleton) is instantiated in 
227         F04DetectorConstruction() and assigned << 276         F04DetectorConstruction() and assigned to the global field manager 
228         in UpdateField():                         277         in UpdateField():
229                                                   278 
230         fFieldManager = GetGlobalFieldManager(    279         fFieldManager = GetGlobalFieldManager();
231         fFieldManager->SetDetectorField(this);    280         fFieldManager->SetDetectorField(this);
232                                                   281 
233         The F04GlobalField has a std::vector<E    282         The F04GlobalField has a std::vector<ElementField*> FieldList
234                                                   283 
235         The field from each individual beamlin    284         The field from each individual beamline element is given by a
236         F04ElementField object. Any number of     285         F04ElementField object. Any number of overlapping F04ElementField
237         objects can be added to the F04GlobalF    286         objects can be added to the F04GlobalField. Any element that
238         represents an element with an EM field    287         represents an element with an EM field must add the appropriate
239         F04ElementField to the global F04Globa    288         F04ElementField to the global F04GlobalField object.
240                                                   289 
241         Of course, the F04GlobalField has the     290         Of course, the F04GlobalField has the method GetFieldValue implemented.
242                                                   291 
243         Before /run/initialize in the macro fi    292         Before /run/initialize in the macro file or command, the update
244         field command must have been issued if    293         field command must have been issued if any of the other following
245         field commands was employed:              294         field commands was employed:
246                                                   295 
247         /field/update                             296         /field/update
248                                                   297 
249         Other options are:                        298         Other options are:
250                                                   299 
251         /field/setStepperType 4                   300         /field/setStepperType 4
252         /field/setMinStep 10 mm                   301         /field/setMinStep 10 mm
253         /field/setDeltaChord 3.0 mm               302         /field/setDeltaChord 3.0 mm
254         /field/setDeltaOneStep 0.01 mm            303         /field/setDeltaOneStep 0.01 mm
255         /field/setDeltaIntersection 0.1 mm        304         /field/setDeltaIntersection 0.1 mm
256         /field/setEpsMin 2.5e-7 mm                305         /field/setEpsMin 2.5e-7 mm
257         /field/setEpsMax 0.05 mm                  306         /field/setEpsMax 0.05 mm
258                                                << 307         
259         Each field element has a rectilinear b    308         Each field element has a rectilinear bounding box in global
260         coordinate space which is checked befo    309         coordinate space which is checked before a point is verified to
261         actually be inside the F04ElementField    310         actually be inside the F04ElementField (IsWithin and IsOutside).
262         SetGlobalPoint is called 8 times for t    311         SetGlobalPoint is called 8 times for the corners of the local
263         bounding box, after a local->global co    312         bounding box, after a local->global coordinate transform.
264                                                   313 
265         The F04ElementField is the interface c << 314         The F04ElementField is the interface class used by F04GlobalField to 
266         compute the field value at a given poi    315         compute the field value at a given point[].
267                                                   316 
268         A beamline element, for example the F0    317         A beamline element, for example the F04SimpleSolenoid, will derive
269         from F04ElementField and implement the    318         from F04ElementField and implement the computation for the element.
270                                                   319 
271         simpleSolenoid                         << 320         simpleSolenoid = new F04SimpleSolenoid(B, l,
272           = new F04SimpleSolenoid(B, l, logicT << 321                                       logicTransferMgnt,TransferMgntCenter);
273                                                   322 
274         Besides the magnetic field and the len    323         Besides the magnetic field and the length of the simple solenoid,
275         the constructor needs the knowledge of    324         the constructor needs the knowledge of the G4LogicalVolume for
276         the beamline element and where its cen    325         the beamline element and where its center is located in the
277         'World'.                                  326         'World'.
278                                                   327 
279         The F04ElementField has a G4AffineTran    328         The F04ElementField has a G4AffineTransform "fGlobal2local" which
280         allows the quick computation of coordi    329         allows the quick computation of coordinate transformations. It can
281         only be determined by knowing the elem    330         only be determined by knowing the element's coordinate origin in
282         the global frame and after all of the     331         the global frame and after all of the geometry has been defined.
283         For this reason, the object is prepare    332         For this reason, the object is prepared in two stages, through the
284         constructor providing it with the coor    333         constructor providing it with the coordinate center and a pointer
285         to the G4LogicalVolume. Later the Cons    334         to the G4LogicalVolume. Later the Construct() method is called to
286         calculate the fGlobal2local and the bo    335         calculate the fGlobal2local and the bounding box. This can be done
287         from the F04RunAction::BeginOfRunActio    336         from the F04RunAction::BeginOfRunAction method, for only then are we
288         certain that the geometry has been com    337         certain that the geometry has been completely built:
289                                                   338 
290         FieldList* fields = F04GlobalField::Ge    339         FieldList* fields = F04GlobalField::GetObject()->GetFields();
291                                                   340 
292         if (fields) {                             341         if (fields) {
293            if (fields->size()>0) {                342            if (fields->size()>0) {
294               FieldList::iterator i;              343               FieldList::iterator i;
295               for (i=fields->begin(); i!=field    344               for (i=fields->begin(); i!=fields->end(); ++i)(*i)->Construct();
296            }                                      345            }
297         }                                         346         }
298                                                   347 
299         The F04ElementField constructor will a    348         The F04ElementField constructor will also add the derived object into
300         F04GlobalField. Finally, its AddFieldV    349         F04GlobalField. Finally, its AddFieldValue() will add the field value
301         for this element to field[].           << 350         for this element to field[]. 
302                                                   351 
303                                                   352 
304  8- User Action Classes                           353  8- User Action Classes
305                                                   354 
306         F04RunActionMessenger:                    355         F04RunActionMessenger:
307                                                   356 
308                      /rndm/save freq - to save    357                      /rndm/save freq - to save rndm status in external files
309                                  0 not saved      358                                  0 not saved
310                                 >0 saved on: b    359                                 >0 saved on: beginOfRun.rndm
311                                  1 saved on:      360                                  1 saved on:   endOfRun.rndm
312                                  2 saved on: e    361                                  2 saved on: endOfEvent.rndm
313                      /rndm/read random/run0evt    362                      /rndm/read random/run0evt8268.rndm
314                                                   363 
315         F04RunAction:                          << 364         F04RunAction:  
316                      BeginOfRunAction: Deal wi    365                      BeginOfRunAction: Deal with random number storage,
317                      initialization etc. Call     366                      initialization etc. Call the Construct() method of
318                      F04ElementFields in the F    367                      F04ElementFields in the FieldList of F04GlobalField object.
319                      EndOfRunAction: random nu    368                      EndOfRunAction: random number storage/status printing.
320                                                   369 
321         F04EventActionMessenger:                  370         F04EventActionMessenger:
322                      /event/setverbose            371                      /event/setverbose
323                                                   372 
324         F04EventAction(RunAction* RA):            373         F04EventAction(RunAction* RA):
325                      Customized BeginOfEvent p    374                      Customized BeginOfEvent printing
326                      EndofEvent:                  375                      EndofEvent:
327                      saveEngingStatus and show    376                      saveEngingStatus and showEngineStatus according to flag
328                      in F04RunAction              377                      in F04RunAction
329                                                   378 
330         F04TrackingAction:                        379         F04TrackingAction:
331                      PreUserTrackingAction: In    380                      PreUserTrackingAction: Instantiate F04UserTrackInformation
332                      and set the application T    381                      and set the application TrackStatus.
333                      PostUserTrackingAction: R    382                      PostUserTrackingAction: Retreive F04UserTrackInformation
334                      and decide to save random    383                      and decide to save random number status accordingly.
335                                                   384 
336         F04SteppingActionMessenger:               385         F04SteppingActionMessenger:
337                                                   386 
338         F04SteppingAction:                        387         F04SteppingAction:
339                      UserSteppingAction: Kill     388                      UserSteppingAction: Kill primary if/when outside Target
340                      volume. Diagnostic/histog    389                      volume. Diagnostic/histogram filling for particles at a
341                      TestPlane. Find decay pos    390                      TestPlane. Find decay position and when particle
342                      FIRST reverses z-momentum    391                      FIRST reverses z-momentum component via using a
343                      F04UserTrackInformation o    392                      F04UserTrackInformation object.
344                                                   393 
345         F04StackingAction:                        394         F04StackingAction:
346                      Track only primaries, pi+    395                      Track only primaries, pi+ or mu+
347                                                   396 
348         F04UserTrackInformation:                  397         F04UserTrackInformation:
349                      Keep an application F04Tr    398                      Keep an application F04TrackStatus for the track:
350                           undefined, left, rig    399                           undefined, left, right, reverse
351                                                   400 
352         F04SteppingVerbose:                       401         F04SteppingVerbose:
353                     Only print track header an    402                     Only print track header and step information for
354                     pi+ and mu+.               << 403                     pi+ and mu+
355                     Note: the information for  << 
356                                                   404 
357         F04Trajectory, TrajectoryPoint:           405         F04Trajectory, TrajectoryPoint:
358                     Example of application spe    406                     Example of application specific implementations
359                                                   407 
360  9- HOW TO START ?                                408  9- HOW TO START ?
361                                                   409 
362         - Execute field04 in 'batch' mode from << 410         - execute field04 in 'batch' mode from macro files e.g.
363                 % field04 -m field04.in        << 411                 % field04 field04.in
364                                                   412 
365         - Execute field04 in 'interactive' mod << 413         - execute field04 in 'interactive' mode with visualization e.g.
366                 % field04                         414                 % field04
367                 ....                              415                 ....
368                 Idle> type your commands       << 416                 Idle> type your commands, for example:
369                 ....                           << 417                 Idle> control/execute field04.in
370                                                << 
371         - Execute field04 in 'interactive' mod << 
372                 % field04 -s preinit           << 
373                 ....                           << 
374                 Idle> type your commands, then << 
375                 Idle> /run/initialize          << 
376                 Idle> /control/execute vis.mac << 
377                 ....                              418                 ....