source: trunk/source/geometry/magneticfield/History@ 1340

Last change on this file since 1340 was 1340, checked in by garnier, 15 years ago

update ti head

File size: 45.7 KB
Line 
1$Id: History,v 1.152 2010/09/10 16:02:44 japost Exp $
2-------------------------------------------------------------------
3
4 =========================================================
5 Geant4 - an Object-Oriented Toolkit for Simulation in HEP
6 =========================================================
7
8 Category History file
9 ---------------------
10This file should be used by G4 developers and category coordinators
11to briefly summarize all major modifications introduced in the code
12and keep track of all category-tags.
13It DOES NOT substitute the CVS log-message one should put at every
14committal in the CVS repository !
15
16 ----------------------------------------------------------
17 * Reverse chronological order (last date on top), please *
18 ----------------------------------------------------------
19Sep 10th, 2010 J.Apostolakis - field-V09-03-03
20-----------------------------
21- Revised constructor of G4MagErrorStepper to add number of State variables
22- Corrected MagErrorStepper to copy State Variable to output
23- Enable G4ConstRK4 to copy remaining State Variables (must integrate 6)
24
25Sep 10th, 2010 J.Apostolakis - field-V09-03-02
26-----------------------------
27- Fixed passing of time in G4NystromRK4
28
29Jul 21st, 2010 T.Nikitina - field-V09-03-01
30--------------------------
31- Fixed cases of memory corruption in G4RKG3_Stepper.
32- Fixed case of unused array data member in G4ExactHelixStepper.
33- Removed useless code never executed in G4ConstRK4::Stepper().
34- Fixed initialization in G4NystromRK4 constructor.
35
36Jul 14th, 2010 G.Cosmo - field-V09-03-00
37-----------------------
38- Added dummy initialization of members in constructors for G4CashKarpRKF45,
39 G4ConstRK4, G4EqEMFieldWithEDM, G4EqEMFieldWithSpin, G4ExactHelixStepper,
40 G4FieldTrack, G4MagHelicalStepper, G4MagInt_Driver, G4Mag_EqRhs,
41 G4Mag_SpinEqRhs, G4Mag_UsualEqRhs, G4NystromRK4, G4RKG3_Stepper,
42 G4UniformElectricField, G4UniformElectricField.
43
44Nov 12th, 2009 J.Apostolakis - field-V09-02-09
45-----------------------------
46- G4MagIntegratorDriver: activate check on integration error for spin.
47
48Nov 12th, 2009 J.Apostolakis - field-V09-02-08
49----------------------------- (fix only)
50- G4Nystrom: Corrected interface method getField: array now has explicit dimension[4]
51 (Problem found by gcc 4.3 - it checked indices used in inline method! )
52
53Nov 6th, 2009 P.Gumplinger - field-V09-02-07
54---------------------------
55- bug fix in G4EqEMFieldWithSpin and G4EqEMFieldWithEDM
56 thanks to Hiromi Iinuma (KEK) see:
57 http://hypernews.slac.stanford.edu/HyperNews/geant4/get/emfields/161.html
58
59Nov 5th, 2009 J.Apostolakis - field-V09-02-06
60----------------------------
61- G4MagIntegratorDriver.cc : Enabled call to ComputeRightHandSide
62- G4NystromRK4.cc : Disabled auxiliary code in Stepper (needed if
63 ComputeRightHandSide is not called.)
64
65Nov 5th, 2009 J.Apostolakis - field-V09-02-05
66----------------------------
67- Added new virtual method CalculateRightHandSide to G4MagIntegratorStepper for use
68 in caching momentum (and field value) by G4NystromRK4
69 Default implementation in G4MagIntegratorStepper calls RightHandSide inline method.
70- G4Nystrom: New Set/Get method for cache distance.
71 Changed private data members in G4NystromRK4.
72- G4MagIntegratorDriver: alternative call to ComputeRightHandSide is not used (in comment)
73 As a result G4NystromRK4 operates without reusing
74
75Nov 5th, 2009 J.Apostolakis - field-V09-02-04
76----------------------------
77- G4CachedMagneticField: New Simple class to cache value of Magnetic Field.
78 Speeds up code when calculation of field value is complex.
79- G4NystromRK4 : New Stepper with Nystrom for magnetic field
80 with analytic estimation of integration error.
81 Greatly reduces number of field value per step.
82- Revised testPropagateMagField to use Cached Quadrupole field,
83 and to cover G4NystromRK4 and G4ConstRK4.
84
85Nov 4th, 2009 P.Gumplinger - field-V09-02-03
86---------------------------
87- (minor change) remove comment from G4EqEMFieldWithSpin.cc
88 add G4EqEMFieldWithEDM class: this is the RHS of EofM in a combined
89 electric and magnetic field, with spin tracking for both MDM and EDM terms.
90 Thanks to Kevin Lynch, Phys. Dept. at Boston University.
91
92May 18th, 2009 T.Nikitina - field-V09-02-02
93-------------------------
94- Enhanced algorithm G4ChordFinder::ApproxCurvePointS() in order to speedup
95 BrentLocator.
96
97March 25th, 2009 G.Cosmo - field-V09-02-01
98------------------------
99- Some code cleanup and formatting...
100
101March 6th, 2009 P.Gumplinger - field-V09-02-00
102----------------------------
103- Added 3rd term of BMT equation (Spin x Beta x Efield) to G4EqEMFieldWithSpin,
104 addresses emfields forum posting #155 (bug report). Thanks to Kevin Lynch,
105 Phys. Dept. at Boston University.
106- Moved renormalization of spin from G4EqEMFieldWithSpin and G4Mag_SpinEqRhs to
107 G4ClassicalRK4 and G4SimpleHeum.
108- Added Spin propagation errors to the criteria for 'OneGoodStep' in
109 G4MagIntegratorDriver but actually don't add it (yet) to the decision logic.
110
111November, 19th, 2008 P.Gumplinger - field-V09-01-05
112----------------------------------
113- Renormalized the spin to 1 in G4EqEMFieldWithSpin and G4Mag_SpinEqRhs.
114
115November, 7th, 2008 P.Gumplinger - field-V09-01-04
116----------------------------------
117- Added SetAnomaly() and GetAnomaly() accessors to G4EqEMFieldWithSpin.
118
119October, 28th, 2008 T.Nikitina - field-V09-01-03
120--------------------------------
121- Added 'ApproxCurveV' to method G4ChordFinder::ApproxCurvePointS() in
122 order to better calculate the curve length.
123- Some code cleanup.
124
125September, 18th, 2008 T.Nikitina
126----------------------------------
127- Added new stepper class G4ConstRK4, performing integration of one step
128 with error calculation in constant magnetic field; implementation derived
129 from G4ClassicalRK4.
130
131July, 15th, 2008 J.Apostolakis - field-V09-01-02
132--------------------------------
133- Revised signature of G4ChordFinder::FinderNextChord(), making 'FieldTrack'
134 argument passed a reference.
135
136May, 28th, 2008 T.Nikitina
137----------------------------
138- G4ChordFinder: added new method ApproxCurvePointS() using Brent second order
139 location mechanism.
140
141April 24th, 2008 T.Nikitina - field-V09-01-01
142-----------------------------
143- Fix 'unused' non-initialized values of dydx in G4EqMagElectricField
144 and G4EqEMFieldWithSpin.
145
146January 17th, 2008 G.Cosmo - field-V09-01-00
147----------------------------
148- G4CashKarpRKF45: deleted un-needed duplicate (and unused) instance variable
149 'fNumberOfVariables', already defined in G4MagIntegratorStepper. (J.Ap.)
150- Some code cleanup.
151
152December 7th, 2007 J.Apostolakis & T.Nikitina - field-V09-00-03
153-----------------------------------------------
154- New class G4FieldManagerStore. It enables resetting of all chord
155 finders' state. Needed to address problem reported by user.
156
157September 9th, 2007 G.Cosmo - field-V09-00-02a
158----------------------------
159- Some code cleanup in G4MagHelicalStepper.cc.
160
161August 30th, 2007 P.Gumplinger - field-V09-00-02
162---------------------------------
163- Add G4EqEMFieldWithSpin class to allow tracking of spin also in
164 G4ElectroMagneticFields
165
166August 21st, 2007 T.Nikitina - field-V09-00-01
167-------------------------------
168- Fix to DistChord() method for Helical Steppers: adopt 'special' case
169 also for Ang<2pi not only for Ang<pi; use cos() in place of tan(), to
170 improve CPU performance.
171- Improved AdvanceHelix() to be able to make half step and full step
172 in one call.
173- In G4HelixMixedStepper added possibility to call different steppers for
174 small steps and add some statistics how offen different steppers are called.
175- G4RKG3_Stepper: improved internal algorithm to use pre-computed values;
176 the stepper now gives comparable CPU performance as ClassicalRK4.
177- Updated unit tests.
178
179August 17th, 2007 G.Cosmo - field-V09-00-00
180----------------------------
181- Changed FatalException to EventMustBeAborted in AccurateAdvance()
182 if proposed integration step is negative.
183
184June 8th, 2007 T.Nikitina - field-V08-03-03
185----------------------------
186- Relaxed FatalException to Warning in G4MagIntegratorDriver::AccurateAdvance()
187 for case of step zero and return previous value. This fixes problem
188 observed by ATLAS in release 8.3 when requiring very accurate propagation
189 -- ie using very small values for acceptable integration error.
190
191May 18th, 2007 T.Nikitina - field-V08-03-02
192----------------------------
193- New class G4HelixMixedStepper, mixing helical stepper and RK
194 G4MagHelicalStepper
195- Keep values of inverse Radius, ..
196- New calculation of DistChord for SteppingAngle > pi
197 G4RKG3Stepper
198- New calculation of DistChord for SteppingAngle > pi
199
200May 16th, 2007 G.Cosmo - field-V08-03-01
201-------------------------
202- Introduced new class G4ErrorMag_UsualEqRhs used to reverse the magnetic
203 field when propagation is backwards for error propagation (by P.Arce).
204- Coworks with tag "global-V08-03-02".
205
206May 11th, 2007 G.Cosmo - field-V08-03-00
207-------------------------
208- Use call to G4GeometryTolerance instead of kCarTolerance constant in
209 G4MagIntegratorDriver.
210- Requires tag "global-V08-03-00" and related tag set.
211
212May 10th, 2007 J.Apostolakis - field-V08-02-01
213-------------------------------
214- G4MagIntegratorDriver:
215 * added protections against zero initial or internal step h=0, (exceptions)
216 * revised (re)calculation of h, and quit loop if h/length < smallest-fraction (~ 10^-12)
217
218April 26th, 2007 T.Nikitina - field-V08-02-00
219----------------------------
220- Corrected integration constants in G4MagHelicalStepper
221- Added implementation of G4RKG3_Stepper, stepper derived from Geant3.
222- Updated NTST unit test. New unit test "field06" for comparison of steppers.
223
224November 14th, 2006 J.Apostolakis - field-V08-01-02
225----------------------------------
226- G4MagIntegratorDriver
227 * Made first argument of GetDerivatives a reference - avoid copy
228- G4MagIntegratorStepper
229 * Include the SetEquationOfMotion() method in G4MagIntegratorStepper
230 (for Geant4e, as in field-V08-01-00)
231 * Update of disclaimers.
232
233November 13th, 2006 G.Cosmo - field-V08-01-01
234----------------------------
235- G4FieldTrack:
236 o Implemented missing definition for GetCharge().
237 o Corrected 'const' qualifier for accessors in the subclass.
238 o Cleanup ...
239- NOTE: this tag is NOT including the change below in G4MagIntegratorStepper.
240
241June 21st, 2006 J.Apostolakis - field-V08-01-00
242------------------------------
243- Including the SetEquationOfMotion() method in G4MagIntegratorStepper
244
245June 22nd, 2006 J.Apostolakis - field-V08-00-07
246-----------------------------
247- G4ExactHelixStepper: reintroduced corrected class
248 --> testPropagateMagField now tests it also (added)
249- G4MagHelicalStepper: made Stepper virtual (for now)
250 to enable G4ExactHelixStepper to override it
251
252June 21st, 2006 J.Apostolakis - field-V08-00-06
253-----------------------------
254- G4ExactHelixStepper: taking out class
255 (provisional tag in case of difficulties with class, revisions)
256
257--- The field-V08-00-0x , x > 6, tags do not include the change below
258
259May 27th, 2006 J.Apostolakis - field-V08-00-05
260-----------------------------
261- G4FieldTrack: Fix for simple compilation error on Sun.
262
263May 23rd, 2006 J.Apostolakis - field-V08-00-04
264-----------------------------
265- G4FieldTrack: Fix for memory leak for ChargeState
266 Made G4ChargeState a data member (has an instance)
267
268May 18th, 2006 J.Apostolakis - field-V08-00-03
269-----------------------------
270- G4FieldTrack: Fix for issue with gcc 4.0 (mac)
271
272May 16th, 2006 J.Apostolakis - field-V08-00-02
273-----------------------------
274- G4ExactHelixStepper
275 Taken out alpha version - it was included in error
276
277May 11th, 2006 J.Apostolakis - field-V08-00-01
278-----------------------------
279- G4FieldTrack
280 Significant, provisional change:
281 * Added charge and moments to FieldTrack
282 (SetMethods, and pointer to embedded class G4ChargeState)
283 Technical revisions:
284 * New constructor, with charge and without velocity
285 * New almost-default constructor (taking a character)
286 Also:
287 * New constructor to take const reference to Spin
288 * New implementation method UpdateFourMomentum
289 * Streaming operator takes const reference,
290 and outputs momentum magnitude & direction magn.
291
292- G4ExactHelixStepper
293 Included in error
294
295Apr 6th, 2006 J.Apostolakis - field-V08-00-00
296----------------------------
297- In G4FieldManager
298 Added missing const GetChordFinder() method -- Problem report #847
299 Corrected description (at top of include file hh):
300 - It is possible to set the field manager of a logical volume (since long)
301
302
303Nov 9th, 2005 G.Cosmo - field-V07-01-00
304----------------------
305- Archived source code of field01 unit test, now moved to examples/extended.
306- Migrated unit test NTST to use <sstream> and std:: namespace. Up-to-date
307 with G4VParticleChange new interface.
308
309Dec 2nd, 2004 G.Cosmo - field-V06-02-02
310----------------------
311- Implemented migration to <cmath> for standard mathematical functions.
312
313Dec 2nd, 2004 J.Apostolakis - field-V06-02-01
314----------------------------
315- Improvements to comments in key Field classes
316- Changes to test/NTST, renaming 'main()' file & modifying input files
317- Several improvements to test files
318 testProElectroMagField.cc
319 * updating for new Electric Field inheritance (& need for
320 different ChordFinder creation )
321 * adding columns to print-outs in spin case for better diagnosis
322 testPropagateMagField.cc
323 * Added verbosity level 1 to field Propagator, relabelled old method.
324 testPropagateSpin.cc
325 * Added more printout of parameters (state) of G4PropagatorInField
326 and G4FieldManager before running each test.
327 test/NTST
328 * Renamed main() file to testNTST.cc and added G4UItcsh terminal.
329
330
331Oct 20th, 2004 P.Gumplinger - field-V06-02-00
332----------------------------
333- Added Set/GetAnomaly() methods in G4Mag_SpinEqRhs.
334
335Feb 9th, 2004 G.Cosmo - field-V06-00-00
336----------------------
337- G4UniformMagField.cc: added missing implementation for
338 GetConstantFieldValue(). Fixes bug report #575.
339
340Nov 13th, 2003 J.Apostolakis - field-V05-02-08
341-----------------------------
342- G4ChordFinder:
343 o extended the arguments of AdvanceChordLimited and FindNextChord
344 adding the current safety sphere (origin, radius), for use in optimising.
345 o fixed set functions which had side effect (on first fraction.)
346- Added new class G4ChordFinderSaf (using above)
347 o which uses safety to create longer chords, so enabling
348 propagation in fewer steps --> performance optimisation
349- G4FieldManager:
350 Changed default accuracy parameters to much better values:
351 Epsilon Min Default to 5.0e-5 from 5.0e-7 (too small)
352 Epsilon Max Default to 0.001 from 0.05 (far too big)
353
354Nov 7th, 2003 J.Apostolakis - field-V05-02-07
355-----------------------------
356- G4ChordFinder
357 o Made this a base class
358 * to enable specialised implementations
359 * virtual methods: FindNextChord, PrintStatistics)
360 * new method AccumulateStatistics to aid in this
361
362 o New default value of Accuracy!!
363 Delta Chord to 0.25 mm (from 3.00 mm) <-----
364
365- G4FieldManager
366 o Changed default values of
367 Delta One Step to 0.010 mm (from 0.25 mm) <-----
368 Delta Intersection to 0.001 mm (from 0.10 mm) <-----
369 for increased default accuracy
370 o Use field's DoesFieldChangesEnergy method to set relevant member variable
371
372Nov 7th, 2003 J.Apostolakis - field-V05-02-06
373----------------------------
374- G4ChordFinder
375 Created new class members for parameters used in heuristics:
376 fFirstFraction for first step
377 fFractionLast fraction of last step, if redoing
378 fFractionNextEstimate confidence in step est from chord
379 fMultipleRadius for small radii of curve
380 New method to Print Statistics.
381 Verbosity to enable optional printing of stats in destructor.
382
383Nov 7th, 2003 J.Apostolakis - field-V05-02-05
384----------------------------
385- G4ChordFinder
386 o Added simple statistics (with access methods)
387- test/NTST
388 o Added new test, taken from D. Williams' exampleNTST
389 modified and maintained by J. Apostolakis
390
391Nov 5th, 2003 J.Apostolakis - field-V05-02-04
392----------------------------
393- G4FieldManager
394 o Added Get/Set Min/Max imumEpsilonStep
395 o Added fEpsilonMin fEpsilonMax & default to member variables.
396 >> Now these can be tailored for different parts of a detector or setup
397
398- G4Field G4ElectroMagneticField G4MagneticField
399 o Adding the virtual method DoesFieldChangeEnergy() [to be used later]
400 o So that G4ElectroMagneticField derives from G4Field
401 and G4MagneticField derives from G4ElectroMagneticField
402
403- G4MagErrorStepper and derived classes
404 (G4ClassicalRK4 G4SimpleRunge G4ExplicitEuler G4ImplicitEuler G4SimpleHeum)
405 o the constructors take G4EquationOfMotion in place of a G4Mag_EqRhs
406 as it these applicable to all types of equations
407 (not just ones for Magnetic field)
408
409- G4EqMagElectricField
410 o derives from G4EquationOfMotion
411
412- G4ChordFinder
413 o Moved simple constructor to .cc file (together with 'complex' one)
414 o Changed fDefaultDeltaChord to a constant member variable (from class var.)
415
416Nov 4th, 2003 G.Cosmo - field-V05-02-03
417----------------------
418Undocumented.
419
420Nov 4th, 2003 G.Cosmo - field-V05-02-02
421----------------------
422- G4ChordFinder.cc:
423 o Fixed compilation problem occuring when G4DEBUG_FIELD was set.
424
425Oct 31st, 2003 G.Cosmo - field-V05-02-01
426-----------------------
427- Code cleanup and removal of redundant header includes, replaced
428 where necessary by forward declarations.
429
430Oct 24th, 2003 G.Cosmo - field-V05-02-00
431-----------------------
432- Migrated to use new G4Exception scheme.
433- Updated outputs of unit tests.
434
435Jun 25th, 2003 J.Apostolakis - field-V05-01-06
436-----------------------------
437- Suppressed printing of statistics (by default) in MagIntegrationDriver.
438- Fix for unused variables warning in ChordFinder.
439
440Jun 24th, 2003 J.Apostolakis - field-V05-01-05
441-----------------------------
442- Fix for problems introduced in field-V05-01-03:
443 o G4ChordFinder:
444 - Fixed unitialised variable for next step (now used for optimisation).
445 - Protected assignment of 'fLastStepEstimate_Unconstrained' in case of
446 unitialised value.
447
448Jun 21st, 2003 J.Apostolakis - field-V05-01-04
449-----------------------------
450- G4FieldManager:
451 o Revised into 'slightly' abstract class with one (new) virtual method:
452 ConfigureForTrack( const G4Track *)
453 to enable the user to configure it with different accuracy parameters
454 depending on energy, particle id, volume, or other track state.
455 Currently by default, no such configuration action is undertaken.
456
457Jun 21st, 2003 J.Apostolakis - field-V05-01-03
458-----------------------------
459- Revised G4ChordFinder:
460 * FindNextChord now provides next Step estimate (for accuracy in Integr.)
461 * AdvanceChordLimited to use
462 - above extra argument to FindNextChord
463 - the next Step argument as initial-step suggested to Accurate Advance
464- G4MagIntegratorDriver:
465 * Added extra argument to Accurate Advance:
466 hinitial: suggested initial step size
467- Note:
468 * Purpose: performance boost with small/limited changes,
469 including minor revisions of interfaces.
470
471Jun 20th, 2003 J.Apostolakis - field-V05-01-02
472-----------------------------
473- G4MagIntegratorDriver Quick Advance:
474 o Took out two unneccessary square roots and two divisions.
475- Notes:
476 1) Pure magnetic, electric, spin field test are completed.
477 2) Purpose: performance boost with small changes.
478
479Jun 20th, 2003 J.Apostolakis - field-V05-01-01
480-----------------------------
481- G4MagIntegratorDriver:
482 o Corrected neglected conversion to <std> from "G4std".
483- Migrated unit tests to <std>.
484
485Jun 19th, 2003 J.Apostolakis - field-V05-01-00
486-----------------------------
487- G4ChordFinder:
488 o Corrected simple constructor to initialise several member variables
489 including LastStepEstimate_Unconstrained.
490- G4MagIntegratorDriver:
491 o Keep simple statistics on number of steps, total error and step size.
492 o Took out an unneccessary square root (in loop).
493- NOTE: tests field0X are to be migrated.
494 Purpose: fixes, small performance boost, simple statistics.
495
496Apr 2nd, 2003 G. Cosmo - field-V05-00-01
497---------------------------
498- Created .cc files for G4MagneticField and G4ElecroMagneticField.
499- Fixed definition of copy constructors in fields inheritance chain.
500- Moved obsolete method StepWithEst() to private in G4RKG3_Stepper,
501 G4CashKarpRKF45 and G4ClassicalRK4.
502- Cleared strict pedantic warnings.
503
504Feb 5th, 2003 G. Cosmo - field-V05-00-00
505---------------------------
506- Removed redundant inclusions of PhysicalConstants.h or SystemOfUnits.h.
507 Now using directly CLHEP's headers.
508
509Dec 12th, 2002 G. Cosmo - field-V04-01-06
510---------------------------
511- Moved unused variable 'nStpPr' to debug section in G4MagIntegratorDriver.cc,
512 method AccurateAdvance().
513
514Dec 06th, 2002 G. Cosmo - field-V04-01-05
515---------------------------
516- Merged changes by Makoto for migration to new G4ApplicationState in
517 messengers of unit tests.
518
519Nov 29th, 2002 J. Apostolakis - field-V04-01-04
520---------------------------------
521Further fixes for unitialised variable - in other steppers:
522G4ExplicitEuler, G4ImplicitEuler, G4ImplicitEuler
523
524Large memory leak fix for G4ImplicitEuler, small for ExplicitEuler.
525Test accuracy requirements for spin adjusted.
526
527Nov 20th, 2002 J. Apostolakis - field-V04-01-03
528---------------------------------
529Further fixes for unitialised variables:
530
531* G4MagIntegratorStepper
532 - Created instance variables for number of Integration, State variables
533
534* G4MagErrorStepper
535 - Utilise number of State variables to initialise full state of Output.
536
537* G4Mag_SpinEqRhs
538 - Initialise the values of dydx that we do not update.
539
540Note: Undoing these changes and the ones below would enable the user to see
541 if undefined values are used in variables that he/she expects to
542 have integrated.
543 BUT the fix assists us to find truly undefined values elsewhere
544 -- if they exist -- using valgrind.
545
546Nov 9th, 2002 J. Apostolakis - field-V04-01-02
547---------------------------------
548Fixes to address use of uninitialised variable in seting values of FieldTrack
549(this was done by design, but was neither ideal or always well-behaved.)
550Changed:
551
552* G4MagIntegratorDriver
553 - Added instance variables for number of Integration, State variables
554 - Initialise all State variables of Output with values from initial variables.
555 - Only the Integration variables will be integrated
556
557* G4ClassicalRK4 and G4MagErrorStepper
558 - Copy the initial time to intermediate and output C-vectors,
559 in order to provide a zero-eth estimate value.
560 Note1: Should clean-up this fix, making it similar to Driver (above)
561 Note2: Should *not* be used for time varying field unless created
562 with at least 8 integration variables
563---------------------------------
564G4ChordFinder.cc
565 - Correction from zero dChord
566 which is does not update the Unconstrained step estimate (state)
567 - Added instance variables to store number of calls and chord-trials
568 and new print method for 'debugging'
569
570G4Mag_UsualEqRhs.cc
571 - Attempted approximations for speedup *overwritten* by full inverse sqrt.
572
573
574Oct 29th, 2002 J. Apostolakis - test-V04-01-02
575--------------------------------
576- Changed output of tests for small output change (GeV->MeV)
577
578Oct 29th, 2002 J. Apostolakis - test-V04-01-02
579--------------------------------
580- (Only changed and tagged test subdirectory)
581 Changed tests to use the new method SetChargeMomentumMass of
582 PropagatorInField in order to be ready for its full use in
583 G4PropagatorInField.
584 (A key problem at end-July was this non-preparedness of the unit tests.)
585
586Jul 24th, 2002 G. Cosmo - field-V04-01-01
587--------------------------
588- G4FieldManager[.hh.cc]: made fDefault_Delta_One_Step_Value and
589 fDefault_Delta_Intersection_Val normal constants (not static) to
590 resolve initialisation problems. Coworks with tag "geomvol-V04-01-01".
591 Fixes problem report #383.
592
593Jul 23rd, 2002 G. Cosmo - field-V04-01-00
594--------------------------
595- G4MagIntegratorDriver.cc: cleared warning of unused variable.
596 Protected variable 'nStpPr' with G4DEBUG_FIELD.
597- Updated reference outputs and some other updates to unit tests.
598
599Jun 25th, 2002 J. Apostolakis - field-V04-00-05
600--------------------------------
601- G4ChordFinder.cc
602 In NewStep: fixed case of stepTrial >> stepTrialOld, to take large multiple - not small;
603 (it was treated the same as stepTrial << old)
604 Added guard for stepTrial==0.0 in FindNextChord
605- G4MagIntegratorDriver.cc
606 Added protection against error of 0.0 in ComputeNewStepSize.
607
608- G4EquationOfMotion
609 Made RightHandSide an inline method
610 In GetFieldValue signature of Point is double[4], instead of double[3]
611 Defined G4maximum_number_of_field_components as enum
612
613Jun 7th, 2002 J. Apostolakis - field-V04-00-04
614--------------------------------
615 - G4Mag_SpinEqRhs.cc
616 o Fix to momentum component of Rhs.
617
618May 31st, 2002 J. Apostolakis - field-V04-00-03
619--------------------------------
620 - G4MagHelicalStepper.icc
621 o Fix to LinearStep (correcting previous fix/cosmetic)
622 - G4ChordFinder.cc
623 o Corrective behaviour for very small or large changes of 'new step'
624 [observed in complex 3-d fields (purging magnet), or
625 approximate equations of motion ]
626 - G4MagIntegratorDriver
627 o More information in debug printing (tangent cosine, norm)
628
629May 7th, 2002 J. Apostolakis
630--------------------------------
631- G4MagIntegratorDriver - ( on trunk )
632 * Fix to update the field track for steps smaller than the chord finder's
633minstep.
634
635
636April 19th, 2002 J. Apostolakis (not included in tag field-V04-00-02)
637--------------------------------
638- G4MagIntegratorDriver.hh,cc (on trunk)
639 * Bug fix: last step can now only be triggerred if x+h > x2.
640 * Debugging methods improved.
641
642May 7th, 2002 J. Apostolakis - field-V04-00-02
643--------------------------------
644 Tag including only two changes below:
645 - Putting aside the other fixes/changes (as the one above) to
646G4MagIntegratorDriver, tagging only the fix to update the field track
647for steps smaller than the chord finder's minstep.
648
649May 7th, 2002 J. Apostolakis
650--------------------------------
651- G4MagIntegratorDriver - ** branch ** on 1.20 **
652 * Fix to update the field track for steps smaller than the chord finder's
653minstep.
654
655May 7th, 2002 J. Apostolakis
656--------------------------------
657- G4MagIntegratorStepper
658 * Changed RightHandSide from a virtual method to an inline (non-virtual)
659 method -- it is not and should not be changed by derived classes.
660
661Mar 28th, 2002 J. Apostolakis - field-V04-00-01
662-----------------------
663- Fixed LinearStep in G4MagHelicalStepper (expected unit direction),
664 that had not been updated for new integration variable (momentum).
665 --> found in testing helical steppers in BaBar setup,
666 in region of negligible field.
667
668- Changed maximum number of steps in driver,
669 halving from 500/order to 250/order.
670
671Mar 28th, 2002 J. Apostolakis
672-----------------------
673- Committed directory "OtherField" with examples of fields,
674 Delphi, Quadropole etc.
675
676- Updated outputs of testPropagateMagField for new version of source,
677 that has 3rd test case.
678
679- Added new runs and outputs for testProElectroMagField, with
680 several steppers, and modified test script test.sh accordingly.
681
682
683Feb 2nd, 2002 V. Grichine
684------------------------
685Update of test/field02 to utilise new features
686 - for Electric Field, to signal that a field modifies the energy;
687 - updating of time by integration, for time dependent fields.
688
689Jan 10th, 2002 G. Cosmo - field-V04-00-00
690------------------------
691- Activated G4DEBUG_FIELD in GNUmakefile.
692
693Jan 7th, 2002 J. Apostolakis
694-----------------------------
695- G4MagHelicalStepper.cc: renamed local variables "*Momentum*" to "*Velocity*".
696
697Dec 4th, 2001 G. Cosmo - field-V03-02-08
698-----------------------
699- Fixed interface to virtual functions in the inheritance chain.
700 Added 'virtual' qualifier to destructor and GetFieldValue() for subclasses
701 of G4Field which may act as base class for user-defined fields.
702 Modified files: G4MagneticField.hh, G4UniformElectricField[.hh.cc],
703 G4UniformMagField.hh.
704- G4ChordFinder.cc: the unphysical curve length exception has been moved to
705 inside #ifdef G4DEBUG_FIELD. Other #ifdef renamed to G4DEBUG_FIELD.
706- G4LineSection[.hh.cc]: correction for A=B when the distance from P to A
707 is returned (V.Grichine).
708
709Nov 28th, 2001 J. Apostolakis - field-V03-02-07
710------------------------------
711G4FieldManager
712- Added fFieldChangesEnergy data member and get/set methods
713 ( required to allow transportation to know how to calculate end-time,
714 enabling the integration of time only for electric fields. )
715
716Nov 28th, 2001 J. Apostolakis - field-V03-02-06
717------------------------------
718Small fixes only:
719
720G4CashKarpRKF45
721- fixed deletion of unassigned pointer/array in destructor. (-> Volodya Velev)
722
723G4EqMagElectricField
724- bug fixed in the formula for inverse velocity (-> V. Grichine)
725
726Nov 21st, 2001 G. Cosmo - field-V03-02-05
727------------------------
728- Protected verbose warnings with G4FIELD_DEBUG flag in G4ChordFinder.cc
729 (V.Grichine).
730- Replaced G4DEBUG with G4DEBUG_FIELD in G4MagIntegratorDriver.cc.
731- Updates to unit test field02.
732
733Nov 13th, 2001 G. Cosmo - field-V03-02-04
734------------------------
735- Removed warnings on gcc-2.95.2.
736- Included unit tests field01, field02, field03.
737
738Nov 9th, 2001 J. Apostolakis - field-V03-02-03
739-----------------------------
740Motivated by the use case of an Electric Field,
741 - in order to achieve reasonable accuracy in time integration,
742 - and to enable fields that vary with the global time)
743we (John Ap. and V. Grichine) changed the following:
744
745- Modified G4Field to allow the time in the GetFieldValue method
746 - as 4th component of the "position" array.
747
748- Modified EquationOfMotion to provide the time to the GetFieldValue method
749 of G4Field
750 * as the 4th component of a position / time 4-array
751 * in place of only position as a 3-arry
752
753- Added the global time as variable to be integrated over in the
754 case of an Electric Field
755
756Support for these modifications is required in G4Transportation.
757
758(Better support will require either
759 - a modification in G4FieldTrack to indicate whether the time has been
760 integrated or not.
761 - or additionally making the time calculation a property of G4FieldTrack,
762 bring in code to do it in from G4Transportation.)
763
764
765Nov 8th, 2001 J. Apostolakis - field-V03-02-02
766------------------------
767- Introduced several changes in G4MagIntegratorDriver.
768
769 It now respects its minimum driver step size in AccurateAdvance.
770 * whereas before it did not.
771
772 Modified maximum number of steps, lowering by factor of 10.
773 -> it should reduce the time spent integrating low energy particles,
774 in some cases where it is unneccessary.
775
776 Protected printing of (nearly?) all warnings with a G4DEBUG_FIELD #ifdef.
777
778
779Nov 05th, 2001 G. Cosmo - field-V03-02-01
780------------------------
781- Fixed trivial warnings on Linux-g++.
782
783Aug 27th, 2001 J. Apostolakis - field-V03-02-00
784------------------------------
785Tagged last change.
786This tag is utilised in transport-V03-02-01 (which requires it).
787
788Aug 16th, 2001 J. Apostolakis
789------------------------------
790G4ChordFinder:
791 Added method to erase/reset the state of the StepEstimate.
792 This is unwanted internal state that was carried between tracks and
793 events as a side effect.
794
795 Calling this at the start of each track, it is now possible to
796 eliminate a non-repeatability that was possible due to this.
797 ( It has been observed in particular in vaccuum. )
798
799May 23rd, 2001 J. Apostolakis - field-V03-01-02
800------------------------------
801- Added Exception to G4RKG3Stepper constructor: the class does not work
802
803May 23rd, 2001 J. Apostolakis - field-V03-01-01
804------------------------------
805- Fixed G4FieldManager constructors to give default values to delta
806 parameters.
807
808- Updated testPropagateSpin (it now compiles),
809 and some outputs of testPropagateMagField (1 to 5)
810
811
812Apr 12th, 2001 P. Gumplinger - field-V03-01-00
813-----------------------------
814- Updated G4Mag_SpinEqRhs.hh and G4Mag_SpinEqRhs.cc for correction
815 to spin tracking.
816
817Apr 04th, 2001 G. Cosmo - field-V03-00-05
818------------------------
819- G4FieldTrack.icc: fixed pedantic warnings on Linux-g++.
820
821Mar 23rd, 2001 J. Apostolakis - field-V03-00-04
822------------------------------
823- Electric Field unit test now works: test runs until completion.
824 Test outputs saved (on Linux).
825
826- Fixed src/G4UniformElectricField.cc to set correct field components
827 (compatible with Equation of Motion
828 G4EqMagElectricField )
829
830- Tidied G4FieldTrack
831 * deleted obsolete methods Set/Get MomentumModulus() and its data member.
832 * in constructor to set the value of the spin to (0.0, 0.0, 0.0)
833 if pSpin is null. (It was undefined.)
834
835Mar 23rd, 2001 J. Apostolakis - field-V03-00-03
836------------------------------
837- Fixed (hacked) CashKarp to work using Auxiliary Stepper.
838
839- Modified G4MagIntegratorStepper
840 to use pointer to G4EquationOfMotion
841 instead of G4Mag_EqRhs
842
843- Design iteration appears neccessary
844
845Mar 23rd, 2001 J. Apostolakis - field-V03-00-02
846------------------------------
847- Fixed G4MagHelicalStepper::AdvanceHelix for momentum, allowing
848 the possibility of (correct) use of all Helical Steppers.
849
850- test/testProElectroMagField.cc updated for momentum.
851 (Not yet updated: Spin tests)
852
853
854Mar 19th, 2001 J. Apostolakis - field-V03-00-01
855------------------------------
856- Tagging the modification of several classes to integrate in momentum*c_light
857 instead of velocity.
858 Reason for change: Velocity integration can result in superluminar
859 velocities, due to arithmetic inaccuracies.
860 Classes modified:
861 G4FieldTrack, (Changed components 3,4,5 of SixVector to Momentum,
862 G4Mag_EqRhs, G4Mag_UsualEqRhs, G4EqMagElectricField
863
864Feb 20th, 2001 J. Apostolakis
865
866- Modified several classes to integrate in momentum instead of velocity.
867
868 G4FieldTrack:
869 Changed components 3,4,5 of SixVector to Momentum,
870 Modified constructor
871 Added energy calculation to "LoadFromArray" method
872 GetEnergy method is now implemented.
873 Deleted obsolete (old) method names for Curve and Position. New have "Get"
874
875 G4ChordFinder
876 Renamed old-method names of Field Track to new ones.
877
878Jan 29th, 2001 G. Cosmo - field-V03-00-00
879-------------------------
880
881- Minor fix to G4MagneticField.hh: added explicit call to G4Field() in
882 copy constructor. Fixes report #205.
883
884Nov 20th, 2000 G. Cosmo - field-V02-00-02
885
886- Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options:
887 o commented out variables declared and not used.
888 o fixed declaration of variables used before being initialised.
889 o fixed order of initialisation of member data in constructors.
890 o fixed usage of unsigned-int (size_t) for array indeces.
891
892Nov 9th, 2000 G. Cosmo - field-V02-00-01
893
894- G4FieldManager: added check on existence of allocated fChordFinder
895 in CreateChordFinder(G4MagneticField*) method.
896
897Nov 1st, 2000 G. Cosmo - field-V02-00-00
898
899- QA code revision and cleanup (+fixes from CodeWizard filtering):
900 o Added (private) declarations of copy constructor and assignment operator
901 where needed.
902 o Added "const" qualifier to accessor methods, wherever needed.
903 o Added equality check on operator= where needed.
904 o Made destructor "virtual" for classes having virtual methods,
905 wherever missing.
906 o Changed virtual functions to non-inline wherever's the case.
907 o Changed return value to be "const" pointer to functions:
908 - G4EquationOfMotion::GetFieldObj()
909 - G4FieldManager::GetDetectorField()
910 - G4MagIntegratorDriver::GetStepper()
911 o Fixed and corrected signature to G4MagIntegratorDriver::SetHmin().
912 o Added "inline" qualifier to methods' declarations.
913 o General cosmetics
914
915Jun 2nd, 2000 J. Apostolakis
916- G4FieldManager[.hh.icc]
917 o Added DeltaIntersection and DeltaOneStep to FieldManager: added
918 Get/Set methods and SetAccuraciesWithDeltaOneStep().
919
920May 31st, 2000 J. Apostolakis - field-V01-01-03
921
922include/G4FieldManager.hh,icc
923 o Moved Delta Intersection and Delta One Step to FieldManager
924 (from Propagator in Field), to allow them to differ over the detector.
925
926May 11th, 2000 J. Apostolakis - field-V01-01-02
927
928- G4ChordFinder[.hh.cc]
929 o Modified method for finding new trial step.
930 New method assumes a quadratic relationship between step-length and d_chord:
931 d_chord proportional to step-lenght ^ 2
932 o Added two small refinement in order to avoid unneccesary extra step due to
933 small numerical inaccuracies in estimation:
934 FindNextChord
935 to first step use (1-0.001) * last-step-estimate
936 New Step:
937 to subsequent step use trial_step = 0.98 * estimate
938
939May 10th, 2000 G. Cosmo
940
941- G4MagneticField.hh: minor fix to dummy implementation of assignment
942 operator.
943
944May 9th, 2000 J. Apostolakis - field-V01-01-01
945
946- G4MagErrorStepper:
947 Modified DistChord to check whether the chord endpoint are the same point.
948
949- G4RKG3_Stepper:
950 Deleted error message from StepNoErr, as it is used in Stepper.
951
952- G4MagIntegratorDriver:
953 Changed the condition for the debug output (~cosmetic)
954
955
956April 27th, 2000 G. Cosmo
957
958- Reorganised comments for the Software Reference Manual.
959- Moved inlined definition to .icc files, where needed.
960 Created: G4ChordFinder.icc and G4FieldManager.icc.
961
962April 13th, 2000 J. Apostolakis - field-V01-01-00
963
964- Modified signature to function DumbStepper() in classes:
965 G4HelixExplicitEuler, G4HelixHeum, G4HelixImplicitEuler,
966 G4HelixSimpleRunge and G4MagHelicalStepper.
967- Modified signature and implementation of function MagFieldEvaluate()
968 in G4MagHelicalStepper, to use Field (as ThreeVector) in place of dydx.
969- Made Richardson extrapolation optional (it is unclear if
970 it offers benefit) in G4MagHelicalStepper.
971- Updated unit test testPropagateMagField and reference output.
972- G4LineSection: fixes to prevent divisions by 0. and sqrt(<0)
973 (V.Grichine).
974
975January 19th, 2000 G. Cosmo - field-V01-00-00
976
977Syncronized versioning of files with HEAD after ISO-C++ migration
978(essentially CVS header changes).
979
980December 7th, 1999 J. Apostolakis - field-V00-01-01a
981
982For negative or very small curve lengths (h) we suppress writing an error
983(about the distance of endpoints being further than the curve length),
984as it is meaningless.
985
986November 23rd, 1999 J. Apostolakis - field-V00-01-01
987
988Tagged this sub-category's state in geometry-V00-01-01
989
990
991July 6th, 1999 J. Apostolakis - field-01-00-07
992
993These fixes and those in field-01-00-06 and field-01-00-06a all come
994from the need to cope with the imprecision of the integration, and its
995interaction with paths that are rather straight.
996
997G4MagIntegrationDriver:
998 i) AccurateAdvance now that the chord distance is smaller than the curve len-
999gth (times 1+epsilon).
1000
1001ii) OneGoodStep and QuickAdvance considers the error of the velocity as well as
1002the error of the position - and ensure that both relative errors are within
1003the "eps" maximum given.
1004
1005G4ChordFinder:
1006 Having found that the curve_length vs ABdist disrepancy has its basis in
1007the imprecision of the integration:
1008 i) Modified the exception in this case to happen only for very large
1009 relative disrepancies ( 10 * eps ).
1010 ii) Undertaken a default corrective action in all other cases
1011Note that this disrepancy only happens for very straight sections of track -
1012ie step lengths much smaller than the curvature of the track.
1013
1014July 1st, 1999 J. Apostolakis - field-01-00-06a
1015
1016In order to cope with the anomalous condition created by candidate fix
1017in G4PropagatorInField, we ensure that the fraction_AE is always between
10180 and 1.0. (giving it a default value of 0.5 whenever it is wrong).
1019( in G4ChordFinder::ApproxCurvePointV )
1020
1021June 29th, 1999 J. Apostolakis - field-01-00-06
1022
1023 I re-instated a check on whether the input distance along the curve between
1024the two input curve points is truly greater than their linear distance.
1025( in G4ChordFinder::ApproxCurvePointV )
1026
1027The condition that prints out a warning message has been altered to
1028take into account the case of a very small final interval.
1029( in G4MagInt_Driver::AccurateAdvance )
1030
1031June ??th, 1999 J. Apostolakis - field-01-00-05
1032
1033The condition that prints out a warning message was changed to delete
1034an incorrect comparison.
1035( in G4MagInt_Driver::AccurateAdvance )
1036
1037April 19th, 1999 J. Apostolakis - field-01-00-04
1038
1039G4MagErrorStepper: Cosmetic changes to name of data members
1040
1041March 4th, 1999 J. Apostolakis - field-01-00-03
1042
1043Corrected delete statement of arrays to use 'delete[]' instead of simple delete
1044in destructors of 2 steppers (G4CashKarpRKF45, G4SimpleHeum)
1045
1046February 17th, 1999 J. Apostolakis - field-01-00-02
1047
1048 Moved G4PropagatorInField files to geometry/volumes.
1049 Updated GNUmakefile not to depend on geometry/volumes anymore.
1050 -> the known circular dependency is removed
1051
1052
1053February 12th, 1999 J. Apostolakis - field-spin1-works1 (act Feb17)
1054
1055 A tag that contains the first version that worked with spin (in Peter G.'s
1056directory). G4PropagateInSpin is still in this version. A small change
1057in a branch of the header file was needed.
1058
1059
1060February 10th, 1999 J. Apostolakis
1061
1062All the following changes are needed for energy integration also:
1063
1064G4ChordFinder now passes to the constructed driver the number of variables.
1065Because of the need for the stepper to know about it in its Abstract interface
1066
1067-> Moved theNumberOfVariables from derived class G4MagErrorStepper
1068 to base class G4MagIntegratorStepper
1069
1070As a consequense the classes that derived from G4MagIntegratorStepper directly
1071were changed: G4CashKarpRKF45, G4MagHelicalStepper,
1072
1073
1074February 9th, 1999 J. Apostolakis
1075
1076Equation of Motion:
1077G4MagEqRhs.hh Made SetChargeMomentumMass virtual, so that G4Mag_SpinEqRhs
1078 can initialise its constants too.
1079
1080
1081February 9th, 1999 P. Gumplinger
1082
1083Added Equation of Motion for Spin in Magnetic Field.
1084
1085
1086February 17th, 1999 J. Apostolakis - field-01-00-01
1087 ---> date is correct, made sure that tag does not include above fixes!
1088
1089 Moved G4PropagatorInField files to geometry/volumes.
1090 Updated GNUmakefile not to depend on geometry/volumes anymore.
1091 -> the known circular dependency is removed
1092
1093
1094---------------------------------------------------------------------------
1095 ------ Geant 4 Production Release ------------
1096--------------------------------------------------------------------------
1097Nov 19th, 1998 J. Apostolakis - field-00-04-01head ===> R+D version only
1098
1099 G4PropagatorInField files modified:
1100
1101 - to store the last safety computed and its origin.
1102 - to give them to a requester
1103------------------------------------------------------------------
1104
1105Nov 19th, 1998 J. Apostolakis - field-00-03-03b
1106
1107 Subtle fix to interface of G4UniformMagField::GetFieldValue
1108 ( that tripped Visual C++ )
1109
1110 G4PropagatorInField: added printing method for verboseness.
1111
1112Nov 19th, 1998 J. Apostolakis - field-00-03-03a
1113
1114 Steppers: Fixed instance variables construction (SimpleRunge)
1115 and clash of names in CashKarp::StepWithEstimate
1116
1117 Added post-const to all Field classes for
1118 void GetFieldValue(const G4double yTrack[] ,
1119 G4double B[] ) const ;
1120
1121 Added SetFieldValue methods to UniformMagField
1122
1123 Added GetConstantFieldValue() methods to Uniform Mag & Electric Fields
1124
1125
1126Nov 19th, 1998 J. Apostolakis - field-00-03-03
1127
1128 Fixes to Propagate and Steppers
1129
1130Nov 19th, 1998 J. Apostolakis - field-00-03-02
1131
1132 Minor corrections (???)
1133
1134Nov 19th, 1998 J. Apostolakis - field-00-03-02
1135
1136 Major development to allow Electric Field
1137
1138
1139
1140June 17th, 1998 J. Apostolakis - magfield-06-03
1141
1142 Modified Files:
1143 include/G4PropagatorInField.hh
1144 src/G4PropagatorInField.cc
1145 test/testPropagateInField.cc
1146----------------------------------------------------------------------
1147
1148 1) Added an assertion after each call to LocateGlobalPointAndSetup.
1149 It checks that the located volume is equal to the current volume.
1150 If this check fails, the Propagator does not know how to continue.
1151
1152 2) Added an argument to ComputeStep method of G4PropagatorInField.
1153 The new volume argument is used to check the current volume during the step.
1154
1155 3) When G4Navigator's ComputeStep returned stepLength==stepRequested, this
1156used to be treated as a failure to intersect. This is incorrect.
1157
1158 stepLength==stepRequested is an intersection,
1159 so I am now treating it as such in each comparison (of 3).
1160 Ignoring it causes problems, including volume being skipped.
1161 --> but treating it as an intersection used to cause problems too ??
1162
1163
1164May 7th, 1998 J. Apostolakis - magfield-06-02-helix01
1165
1166- Tag includes new version of G4ChordFinder (not used by W.Wander).
1167
1168
1169May 7th, 1998 W. Wander (recorded/commited by J. Apostolakis)
1170
1171- New "helical" RK steppers that move in helical segments, not linear.
1172 * Several changes to add steppers
1173
1174 Modified Files:
1175 G4MagErrorStepper.hh
1176 G4MagErrorStepper.cc
1177 added Helical stepping methods to this general ABC.
1178
1179 G4MagIntegratorStepper.hh
1180 made RightHandSide virtual (this will be reversed very soon)
1181
1182 testPropagateMagField.cc
1183 Test of Helical stepping functionality added.
1184
1185 Added Files for new Helical RK steppers, deriving from G4MagErrorStepper:
1186 G4HelixExplicitEuler.cc ( and .hh )
1187 G4HelixHeum.cc
1188 G4HelixImplicitEuler.cc
1189 G4HelixSimpleRunge.cc
1190
1191 Added File for implementation:
1192 G4MagErrorStepper.icc
1193
1194
1195May 7th, 1998 J. Apostolakis - magfield-06-01
1196
1197- added small changes to
1198 * G4ChordFinder: methods to get/set IntegratorDriver
1199 * G4MagIntegratorDriver: made OneGoodStep method public
1200- created the file.
1201
Note: See TracBrowser for help on using the repository browser.