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

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

en test de gl2ps. Problemes de libraries

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