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

Last change on this file since 850 was 850, checked in by garnier, 16 years ago

geant4.8.2 beta

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