1009 lines
37 KiB
Plaintext
1009 lines
37 KiB
Plaintext
$Id: History,v 1.117 2007/05/10 10:11:08 japost Exp $
|
|
-------------------------------------------------------------------
|
|
|
|
=========================================================
|
|
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
|
=========================================================
|
|
|
|
Category History file
|
|
---------------------
|
|
This file should be used by G4 developers and category coordinators
|
|
to briefly summarize all major modifications introduced in the code
|
|
and keep track of all category-tags.
|
|
It DOES NOT substitute the CVS log-message one should put at every
|
|
committal in the CVS repository !
|
|
|
|
----------------------------------------------------------
|
|
* Reverse chronological order (last date on top), please *
|
|
----------------------------------------------------------
|
|
May 10th, 2007 J.Apostolakis - field-V08-02-01
|
|
-------------------------------
|
|
- G4MagIntegratorDriver:
|
|
* added protections against zero initial or internal step h=0, (exceptions)
|
|
* revised (re)calculation of h, and quit loop if h/length < smallest-fraction (~ 10^-12)
|
|
|
|
April 26th, 2007 T.Nikitina - field-V08-02-00
|
|
----------------------------
|
|
- Corrected integration constants in G4MagHelicalStepper
|
|
- Added implementation of G4RKG3_Stepper, stepper derived from Geant3.
|
|
- Updated NTST unit test. New unit test "field06" for comparison of steppers.
|
|
|
|
November 14th, 2006 J.Apostolakis - field-V08-01-02
|
|
----------------------------------
|
|
- G4MagIntegratorDriver
|
|
* Made first argument of GetDerivatives a reference - avoid copy
|
|
- G4MagIntegratorStepper
|
|
* Include the SetEquationOfMotion() method in G4MagIntegratorStepper
|
|
(for Geant4e, as in field-V08-01-00)
|
|
* Update of disclaimers.
|
|
|
|
November 13th, 2006 G.Cosmo - field-V08-01-01
|
|
----------------------------
|
|
- G4FieldTrack:
|
|
o Implemented missing definition for GetCharge().
|
|
o Corrected 'const' qualifier for accessors in the subclass.
|
|
o Cleanup ...
|
|
- NOTE: this tag is NOT including the change below in G4MagIntegratorStepper.
|
|
|
|
June 21st, 2006 J.Apostolakis - field-V08-01-00
|
|
------------------------------
|
|
- Including the SetEquationOfMotion() method in G4MagIntegratorStepper
|
|
|
|
June 22nd, 2006 J.Apostolakis - field-V08-00-07
|
|
-----------------------------
|
|
- G4ExactHelixStepper: reintroduced corrected class
|
|
--> testPropagateMagField now tests it also (added)
|
|
- G4MagHelicalStepper: made Stepper virtual (for now)
|
|
to enable G4ExactHelixStepper to override it
|
|
|
|
June 21st, 2006 J.Apostolakis - field-V08-00-06
|
|
-----------------------------
|
|
- G4ExactHelixStepper: taking out class
|
|
(provisional tag in case of difficulties with class, revisions)
|
|
|
|
--- The field-V08-00-0x , x > 6, tags do not include the change below
|
|
|
|
May 27th, 2006 J.Apostolakis - field-V08-00-05
|
|
-----------------------------
|
|
- G4FieldTrack: Fix for simple compilation error on Sun.
|
|
|
|
May 23rd, 2006 J.Apostolakis - field-V08-00-04
|
|
-----------------------------
|
|
- G4FieldTrack: Fix for memory leak for ChargeState
|
|
Made G4ChargeState a data member (has an instance)
|
|
|
|
May 18th, 2006 J.Apostolakis - field-V08-00-03
|
|
-----------------------------
|
|
- G4FieldTrack: Fix for issue with gcc 4.0 (mac)
|
|
|
|
May 16th, 2006 J.Apostolakis - field-V08-00-02
|
|
-----------------------------
|
|
- G4ExactHelixStepper
|
|
Taken out alpha version - it was included in error
|
|
|
|
May 11th, 2006 J.Apostolakis - field-V08-00-01
|
|
-----------------------------
|
|
- G4FieldTrack
|
|
Significant, provisional change:
|
|
* Added charge and moments to FieldTrack
|
|
(SetMethods, and pointer to embedded class G4ChargeState)
|
|
Technical revisions:
|
|
* New constructor, with charge and without velocity
|
|
* New almost-default constructor (taking a character)
|
|
Also:
|
|
* New constructor to take const reference to Spin
|
|
* New implementation method UpdateFourMomentum
|
|
* Streaming operator takes const reference,
|
|
and outputs momentum magnitude & direction magn.
|
|
|
|
- G4ExactHelixStepper
|
|
Included in error
|
|
|
|
Apr 6th, 2006 J.Apostolakis - field-V08-00-00
|
|
----------------------------
|
|
- In G4FieldManager
|
|
Added missing const GetChordFinder() method -- Problem report #847
|
|
Corrected description (at top of include file hh):
|
|
- It is possible to set the field manager of a logical volume (since long)
|
|
|
|
|
|
Nov 9th, 2005 G.Cosmo - field-V07-01-00
|
|
----------------------
|
|
- Archived source code of field01 unit test, now moved to examples/extended.
|
|
- Migrated unit test NTST to use <sstream> and std:: namespace. Up-to-date
|
|
with G4VParticleChange new interface.
|
|
|
|
Dec 2nd, 2004 G.Cosmo - field-V06-02-02
|
|
----------------------
|
|
- Implemented migration to <cmath> for standard mathematical functions.
|
|
|
|
Dec 2nd, 2004 J.Apostolakis - field-V06-02-01
|
|
----------------------------
|
|
- Improvements to comments in key Field classes
|
|
- Changes to test/NTST, renaming 'main()' file & modifying input files
|
|
- Several improvements to test files
|
|
testProElectroMagField.cc
|
|
* updating for new Electric Field inheritance (& need for
|
|
different ChordFinder creation )
|
|
* adding columns to print-outs in spin case for better diagnosis
|
|
testPropagateMagField.cc
|
|
* Added verbosity level 1 to field Propagator, relabelled old method.
|
|
testPropagateSpin.cc
|
|
* Added more printout of parameters (state) of G4PropagatorInField
|
|
and G4FieldManager before running each test.
|
|
test/NTST
|
|
* Renamed main() file to testNTST.cc and added G4UItcsh terminal.
|
|
|
|
|
|
Oct 20th, 2004 P.Gumplinger - field-V06-02-00
|
|
----------------------------
|
|
- Added Set/GetAnomaly() methods in G4Mag_SpinEqRhs.
|
|
|
|
Feb 9th, 2004 G.Cosmo - field-V06-00-00
|
|
----------------------
|
|
- G4UniformMagField.cc: added missing implementation for
|
|
GetConstantFieldValue(). Fixes bug report #575.
|
|
|
|
Nov 13th, 2003 J.Apostolakis - field-V05-02-08
|
|
-----------------------------
|
|
- G4ChordFinder:
|
|
o extended the arguments of AdvanceChordLimited and FindNextChord
|
|
adding the current safety sphere (origin, radius), for use in optimising.
|
|
o fixed set functions which had side effect (on first fraction.)
|
|
- Added new class G4ChordFinderSaf (using above)
|
|
o which uses safety to create longer chords, so enabling
|
|
propagation in fewer steps --> performance optimisation
|
|
- G4FieldManager:
|
|
Changed default accuracy parameters to much better values:
|
|
Epsilon Min Default to 5.0e-5 from 5.0e-7 (too small)
|
|
Epsilon Max Default to 0.001 from 0.05 (far too big)
|
|
|
|
Nov 7th, 2003 J.Apostolakis - field-V05-02-07
|
|
-----------------------------
|
|
- G4ChordFinder
|
|
o Made this a base class
|
|
* to enable specialised implementations
|
|
* virtual methods: FindNextChord, PrintStatistics)
|
|
* new method AccumulateStatistics to aid in this
|
|
|
|
o New default value of Accuracy!!
|
|
Delta Chord to 0.25 mm (from 3.00 mm) <-----
|
|
|
|
- G4FieldManager
|
|
o Changed default values of
|
|
Delta One Step to 0.010 mm (from 0.25 mm) <-----
|
|
Delta Intersection to 0.001 mm (from 0.10 mm) <-----
|
|
for increased default accuracy
|
|
o Use field's DoesFieldChangesEnergy method to set relevant member variable
|
|
|
|
Nov 7th, 2003 J.Apostolakis - field-V05-02-06
|
|
----------------------------
|
|
- G4ChordFinder
|
|
Created new class members for parameters used in heuristics:
|
|
fFirstFraction for first step
|
|
fFractionLast fraction of last step, if redoing
|
|
fFractionNextEstimate confidence in step est from chord
|
|
fMultipleRadius for small radii of curve
|
|
New method to Print Statistics.
|
|
Verbosity to enable optional printing of stats in destructor.
|
|
|
|
Nov 7th, 2003 J.Apostolakis - field-V05-02-05
|
|
----------------------------
|
|
- G4ChordFinder
|
|
o Added simple statistics (with access methods)
|
|
- test/NTST
|
|
o Added new test, taken from D. Williams' exampleNTST
|
|
modified and maintained by J. Apostolakis
|
|
|
|
Nov 5th, 2003 J.Apostolakis - field-V05-02-04
|
|
----------------------------
|
|
- G4FieldManager
|
|
o Added Get/Set Min/Max imumEpsilonStep
|
|
o Added fEpsilonMin fEpsilonMax & default to member variables.
|
|
>> Now these can be tailored for different parts of a detector or setup
|
|
|
|
- G4Field G4ElectroMagneticField G4MagneticField
|
|
o Adding the virtual method DoesFieldChangeEnergy() [to be used later]
|
|
o So that G4ElectroMagneticField derives from G4Field
|
|
and G4MagneticField derives from G4ElectroMagneticField
|
|
|
|
- G4MagErrorStepper and derived classes
|
|
(G4ClassicalRK4 G4SimpleRunge G4ExplicitEuler G4ImplicitEuler G4SimpleHeum)
|
|
o the constructors take G4EquationOfMotion in place of a G4Mag_EqRhs
|
|
as it these applicable to all types of equations
|
|
(not just ones for Magnetic field)
|
|
|
|
- G4EqMagElectricField
|
|
o derives from G4EquationOfMotion
|
|
|
|
- G4ChordFinder
|
|
o Moved simple constructor to .cc file (together with 'complex' one)
|
|
o Changed fDefaultDeltaChord to a constant member variable (from class var.)
|
|
|
|
Nov 4th, 2003 G.Cosmo - field-V05-02-03
|
|
----------------------
|
|
Undocumented.
|
|
|
|
Nov 4th, 2003 G.Cosmo - field-V05-02-02
|
|
----------------------
|
|
- G4ChordFinder.cc:
|
|
o Fixed compilation problem occuring when G4DEBUG_FIELD was set.
|
|
|
|
Oct 31st, 2003 G.Cosmo - field-V05-02-01
|
|
-----------------------
|
|
- Code cleanup and removal of redundant header includes, replaced
|
|
where necessary by forward declarations.
|
|
|
|
Oct 24th, 2003 G.Cosmo - field-V05-02-00
|
|
-----------------------
|
|
- Migrated to use new G4Exception scheme.
|
|
- Updated outputs of unit tests.
|
|
|
|
Jun 25th, 2003 J.Apostolakis - field-V05-01-06
|
|
-----------------------------
|
|
- Suppressed printing of statistics (by default) in MagIntegrationDriver.
|
|
- Fix for unused variables warning in ChordFinder.
|
|
|
|
Jun 24th, 2003 J.Apostolakis - field-V05-01-05
|
|
-----------------------------
|
|
- Fix for problems introduced in field-V05-01-03:
|
|
o G4ChordFinder:
|
|
- Fixed unitialised variable for next step (now used for optimisation).
|
|
- Protected assignment of 'fLastStepEstimate_Unconstrained' in case of
|
|
unitialised value.
|
|
|
|
Jun 21st, 2003 J.Apostolakis - field-V05-01-04
|
|
-----------------------------
|
|
- G4FieldManager:
|
|
o Revised into 'slightly' abstract class with one (new) virtual method:
|
|
ConfigureForTrack( const G4Track *)
|
|
to enable the user to configure it with different accuracy parameters
|
|
depending on energy, particle id, volume, or other track state.
|
|
Currently by default, no such configuration action is undertaken.
|
|
|
|
Jun 21st, 2003 J.Apostolakis - field-V05-01-03
|
|
-----------------------------
|
|
- Revised G4ChordFinder:
|
|
* FindNextChord now provides next Step estimate (for accuracy in Integr.)
|
|
* AdvanceChordLimited to use
|
|
- above extra argument to FindNextChord
|
|
- the next Step argument as initial-step suggested to Accurate Advance
|
|
- G4MagIntegratorDriver:
|
|
* Added extra argument to Accurate Advance:
|
|
hinitial: suggested initial step size
|
|
- Note:
|
|
* Purpose: performance boost with small/limited changes,
|
|
including minor revisions of interfaces.
|
|
|
|
Jun 20th, 2003 J.Apostolakis - field-V05-01-02
|
|
-----------------------------
|
|
- G4MagIntegratorDriver Quick Advance:
|
|
o Took out two unneccessary square roots and two divisions.
|
|
- Notes:
|
|
1) Pure magnetic, electric, spin field test are completed.
|
|
2) Purpose: performance boost with small changes.
|
|
|
|
Jun 20th, 2003 J.Apostolakis - field-V05-01-01
|
|
-----------------------------
|
|
- G4MagIntegratorDriver:
|
|
o Corrected neglected conversion to <std> from "G4std".
|
|
- Migrated unit tests to <std>.
|
|
|
|
Jun 19th, 2003 J.Apostolakis - field-V05-01-00
|
|
-----------------------------
|
|
- G4ChordFinder:
|
|
o Corrected simple constructor to initialise several member variables
|
|
including LastStepEstimate_Unconstrained.
|
|
- G4MagIntegratorDriver:
|
|
o Keep simple statistics on number of steps, total error and step size.
|
|
o Took out an unneccessary square root (in loop).
|
|
- NOTE: tests field0X are to be migrated.
|
|
Purpose: fixes, small performance boost, simple statistics.
|
|
|
|
Apr 2nd, 2003 G. Cosmo - field-V05-00-01
|
|
---------------------------
|
|
- Created .cc files for G4MagneticField and G4ElecroMagneticField.
|
|
- Fixed definition of copy constructors in fields inheritance chain.
|
|
- Moved obsolete method StepWithEst() to private in G4RKG3_Stepper,
|
|
G4CashKarpRKF45 and G4ClassicalRK4.
|
|
- Cleared strict pedantic warnings.
|
|
|
|
Feb 5th, 2003 G. Cosmo - field-V05-00-00
|
|
---------------------------
|
|
- Removed redundant inclusions of PhysicalConstants.h or SystemOfUnits.h.
|
|
Now using directly CLHEP's headers.
|
|
|
|
Dec 12th, 2002 G. Cosmo - field-V04-01-06
|
|
---------------------------
|
|
- Moved unused variable 'nStpPr' to debug section in G4MagIntegratorDriver.cc,
|
|
method AccurateAdvance().
|
|
|
|
Dec 06th, 2002 G. Cosmo - field-V04-01-05
|
|
---------------------------
|
|
- Merged changes by Makoto for migration to new G4ApplicationState in
|
|
messengers of unit tests.
|
|
|
|
Nov 29th, 2002 J. Apostolakis - field-V04-01-04
|
|
---------------------------------
|
|
Further fixes for unitialised variable - in other steppers:
|
|
G4ExplicitEuler, G4ImplicitEuler, G4ImplicitEuler
|
|
|
|
Large memory leak fix for G4ImplicitEuler, small for ExplicitEuler.
|
|
Test accuracy requirements for spin adjusted.
|
|
|
|
Nov 20th, 2002 J. Apostolakis - field-V04-01-03
|
|
---------------------------------
|
|
Further fixes for unitialised variables:
|
|
|
|
* G4MagIntegratorStepper
|
|
- Created instance variables for number of Integration, State variables
|
|
|
|
* G4MagErrorStepper
|
|
- Utilise number of State variables to initialise full state of Output.
|
|
|
|
* G4Mag_SpinEqRhs
|
|
- Initialise the values of dydx that we do not update.
|
|
|
|
Note: Undoing these changes and the ones below would enable the user to see
|
|
if undefined values are used in variables that he/she expects to
|
|
have integrated.
|
|
BUT the fix assists us to find truly undefined values elsewhere
|
|
-- if they exist -- using valgrind.
|
|
|
|
Nov 9th, 2002 J. Apostolakis - field-V04-01-02
|
|
---------------------------------
|
|
Fixes to address use of uninitialised variable in seting values of FieldTrack
|
|
(this was done by design, but was neither ideal or always well-behaved.)
|
|
Changed:
|
|
|
|
* G4MagIntegratorDriver
|
|
- Added instance variables for number of Integration, State variables
|
|
- Initialise all State variables of Output with values from initial variables.
|
|
- Only the Integration variables will be integrated
|
|
|
|
* G4ClassicalRK4 and G4MagErrorStepper
|
|
- Copy the initial time to intermediate and output C-vectors,
|
|
in order to provide a zero-eth estimate value.
|
|
Note1: Should clean-up this fix, making it similar to Driver (above)
|
|
Note2: Should *not* be used for time varying field unless created
|
|
with at least 8 integration variables
|
|
---------------------------------
|
|
G4ChordFinder.cc
|
|
- Correction from zero dChord
|
|
which is does not update the Unconstrained step estimate (state)
|
|
- Added instance variables to store number of calls and chord-trials
|
|
and new print method for 'debugging'
|
|
|
|
G4Mag_UsualEqRhs.cc
|
|
- Attempted approximations for speedup *overwritten* by full inverse sqrt.
|
|
|
|
|
|
Oct 29th, 2002 J. Apostolakis - test-V04-01-02
|
|
--------------------------------
|
|
- Changed output of tests for small output change (GeV->MeV)
|
|
|
|
Oct 29th, 2002 J. Apostolakis - test-V04-01-02
|
|
--------------------------------
|
|
- (Only changed and tagged test subdirectory)
|
|
Changed tests to use the new method SetChargeMomentumMass of
|
|
PropagatorInField in order to be ready for its full use in
|
|
G4PropagatorInField.
|
|
(A key problem at end-July was this non-preparedness of the unit tests.)
|
|
|
|
Jul 24th, 2002 G. Cosmo - field-V04-01-01
|
|
--------------------------
|
|
- G4FieldManager[.hh.cc]: made fDefault_Delta_One_Step_Value and
|
|
fDefault_Delta_Intersection_Val normal constants (not static) to
|
|
resolve initialisation problems. Coworks with tag "geomvol-V04-01-01".
|
|
Fixes problem report #383.
|
|
|
|
Jul 23rd, 2002 G. Cosmo - field-V04-01-00
|
|
--------------------------
|
|
- G4MagIntegratorDriver.cc: cleared warning of unused variable.
|
|
Protected variable 'nStpPr' with G4DEBUG_FIELD.
|
|
- Updated reference outputs and some other updates to unit tests.
|
|
|
|
Jun 25th, 2002 J. Apostolakis - field-V04-00-05
|
|
--------------------------------
|
|
- G4ChordFinder.cc
|
|
In NewStep: fixed case of stepTrial >> stepTrialOld, to take large multiple - not small;
|
|
(it was treated the same as stepTrial << old)
|
|
Added guard for stepTrial==0.0 in FindNextChord
|
|
- G4MagIntegratorDriver.cc
|
|
Added protection against error of 0.0 in ComputeNewStepSize.
|
|
|
|
- G4EquationOfMotion
|
|
Made RightHandSide an inline method
|
|
In GetFieldValue signature of Point is double[4], instead of double[3]
|
|
Defined G4maximum_number_of_field_components as enum
|
|
|
|
Jun 7th, 2002 J. Apostolakis - field-V04-00-04
|
|
--------------------------------
|
|
- G4Mag_SpinEqRhs.cc
|
|
o Fix to momentum component of Rhs.
|
|
|
|
May 31st, 2002 J. Apostolakis - field-V04-00-03
|
|
--------------------------------
|
|
- G4MagHelicalStepper.icc
|
|
o Fix to LinearStep (correcting previous fix/cosmetic)
|
|
- G4ChordFinder.cc
|
|
o Corrective behaviour for very small or large changes of 'new step'
|
|
[observed in complex 3-d fields (purging magnet), or
|
|
approximate equations of motion ]
|
|
- G4MagIntegratorDriver
|
|
o More information in debug printing (tangent cosine, norm)
|
|
|
|
May 7th, 2002 J. Apostolakis
|
|
--------------------------------
|
|
- G4MagIntegratorDriver - ( on trunk )
|
|
* Fix to update the field track for steps smaller than the chord finder's
|
|
minstep.
|
|
|
|
|
|
April 19th, 2002 J. Apostolakis (not included in tag field-V04-00-02)
|
|
--------------------------------
|
|
- G4MagIntegratorDriver.hh,cc (on trunk)
|
|
* Bug fix: last step can now only be triggerred if x+h > x2.
|
|
* Debugging methods improved.
|
|
|
|
May 7th, 2002 J. Apostolakis - field-V04-00-02
|
|
--------------------------------
|
|
Tag including only two changes below:
|
|
- Putting aside the other fixes/changes (as the one above) to
|
|
G4MagIntegratorDriver, tagging only the fix to update the field track
|
|
for steps smaller than the chord finder's minstep.
|
|
|
|
May 7th, 2002 J. Apostolakis
|
|
--------------------------------
|
|
- G4MagIntegratorDriver - ** branch ** on 1.20 **
|
|
* Fix to update the field track for steps smaller than the chord finder's
|
|
minstep.
|
|
|
|
May 7th, 2002 J. Apostolakis
|
|
--------------------------------
|
|
- G4MagIntegratorStepper
|
|
* Changed RightHandSide from a virtual method to an inline (non-virtual)
|
|
method -- it is not and should not be changed by derived classes.
|
|
|
|
Mar 28th, 2002 J. Apostolakis - field-V04-00-01
|
|
-----------------------
|
|
- Fixed LinearStep in G4MagHelicalStepper (expected unit direction),
|
|
that had not been updated for new integration variable (momentum).
|
|
--> found in testing helical steppers in BaBar setup,
|
|
in region of negligible field.
|
|
|
|
- Changed maximum number of steps in driver,
|
|
halving from 500/order to 250/order.
|
|
|
|
Mar 28th, 2002 J. Apostolakis
|
|
-----------------------
|
|
- Committed directory "OtherField" with examples of fields,
|
|
Delphi, Quadropole etc.
|
|
|
|
- Updated outputs of testPropagateMagField for new version of source,
|
|
that has 3rd test case.
|
|
|
|
- Added new runs and outputs for testProElectroMagField, with
|
|
several steppers, and modified test script test.sh accordingly.
|
|
|
|
|
|
Feb 2nd, 2002 V. Grichine
|
|
------------------------
|
|
Update of test/field02 to utilise new features
|
|
- for Electric Field, to signal that a field modifies the energy;
|
|
- updating of time by integration, for time dependent fields.
|
|
|
|
Jan 10th, 2002 G. Cosmo - field-V04-00-00
|
|
------------------------
|
|
- Activated G4DEBUG_FIELD in GNUmakefile.
|
|
|
|
Jan 7th, 2002 J. Apostolakis
|
|
-----------------------------
|
|
- G4MagHelicalStepper.cc: renamed local variables "*Momentum*" to "*Velocity*".
|
|
|
|
Dec 4th, 2001 G. Cosmo - field-V03-02-08
|
|
-----------------------
|
|
- Fixed interface to virtual functions in the inheritance chain.
|
|
Added 'virtual' qualifier to destructor and GetFieldValue() for subclasses
|
|
of G4Field which may act as base class for user-defined fields.
|
|
Modified files: G4MagneticField.hh, G4UniformElectricField[.hh.cc],
|
|
G4UniformMagField.hh.
|
|
- G4ChordFinder.cc: the unphysical curve length exception has been moved to
|
|
inside #ifdef G4DEBUG_FIELD. Other #ifdef renamed to G4DEBUG_FIELD.
|
|
- G4LineSection[.hh.cc]: correction for A=B when the distance from P to A
|
|
is returned (V.Grichine).
|
|
|
|
Nov 28th, 2001 J. Apostolakis - field-V03-02-07
|
|
------------------------------
|
|
G4FieldManager
|
|
- Added fFieldChangesEnergy data member and get/set methods
|
|
( required to allow transportation to know how to calculate end-time,
|
|
enabling the integration of time only for electric fields. )
|
|
|
|
Nov 28th, 2001 J. Apostolakis - field-V03-02-06
|
|
------------------------------
|
|
Small fixes only:
|
|
|
|
G4CashKarpRKF45
|
|
- fixed deletion of unassigned pointer/array in destructor. (-> Volodya Velev)
|
|
|
|
G4EqMagElectricField
|
|
- bug fixed in the formula for inverse velocity (-> V. Grichine)
|
|
|
|
Nov 21st, 2001 G. Cosmo - field-V03-02-05
|
|
------------------------
|
|
- Protected verbose warnings with G4FIELD_DEBUG flag in G4ChordFinder.cc
|
|
(V.Grichine).
|
|
- Replaced G4DEBUG with G4DEBUG_FIELD in G4MagIntegratorDriver.cc.
|
|
- Updates to unit test field02.
|
|
|
|
Nov 13th, 2001 G. Cosmo - field-V03-02-04
|
|
------------------------
|
|
- Removed warnings on gcc-2.95.2.
|
|
- Included unit tests field01, field02, field03.
|
|
|
|
Nov 9th, 2001 J. Apostolakis - field-V03-02-03
|
|
-----------------------------
|
|
Motivated by the use case of an Electric Field,
|
|
- in order to achieve reasonable accuracy in time integration,
|
|
- and to enable fields that vary with the global time)
|
|
we (John Ap. and V. Grichine) changed the following:
|
|
|
|
- Modified G4Field to allow the time in the GetFieldValue method
|
|
- as 4th component of the "position" array.
|
|
|
|
- Modified EquationOfMotion to provide the time to the GetFieldValue method
|
|
of G4Field
|
|
* as the 4th component of a position / time 4-array
|
|
* in place of only position as a 3-arry
|
|
|
|
- Added the global time as variable to be integrated over in the
|
|
case of an Electric Field
|
|
|
|
Support for these modifications is required in G4Transportation.
|
|
|
|
(Better support will require either
|
|
- a modification in G4FieldTrack to indicate whether the time has been
|
|
integrated or not.
|
|
- or additionally making the time calculation a property of G4FieldTrack,
|
|
bring in code to do it in from G4Transportation.)
|
|
|
|
|
|
Nov 8th, 2001 J. Apostolakis - field-V03-02-02
|
|
------------------------
|
|
- Introduced several changes in G4MagIntegratorDriver.
|
|
|
|
It now respects its minimum driver step size in AccurateAdvance.
|
|
* whereas before it did not.
|
|
|
|
Modified maximum number of steps, lowering by factor of 10.
|
|
-> it should reduce the time spent integrating low energy particles,
|
|
in some cases where it is unneccessary.
|
|
|
|
Protected printing of (nearly?) all warnings with a G4DEBUG_FIELD #ifdef.
|
|
|
|
|
|
Nov 05th, 2001 G. Cosmo - field-V03-02-01
|
|
------------------------
|
|
- Fixed trivial warnings on Linux-g++.
|
|
|
|
Aug 27th, 2001 J. Apostolakis - field-V03-02-00
|
|
------------------------------
|
|
Tagged last change.
|
|
This tag is utilised in transport-V03-02-01 (which requires it).
|
|
|
|
Aug 16th, 2001 J. Apostolakis
|
|
------------------------------
|
|
G4ChordFinder:
|
|
Added method to erase/reset the state of the StepEstimate.
|
|
This is unwanted internal state that was carried between tracks and
|
|
events as a side effect.
|
|
|
|
Calling this at the start of each track, it is now possible to
|
|
eliminate a non-repeatability that was possible due to this.
|
|
( It has been observed in particular in vaccuum. )
|
|
|
|
May 23rd, 2001 J. Apostolakis - field-V03-01-02
|
|
------------------------------
|
|
- Added Exception to G4RKG3Stepper constructor: the class does not work
|
|
|
|
May 23rd, 2001 J. Apostolakis - field-V03-01-01
|
|
------------------------------
|
|
- Fixed G4FieldManager constructors to give default values to delta
|
|
parameters.
|
|
|
|
- Updated testPropagateSpin (it now compiles),
|
|
and some outputs of testPropagateMagField (1 to 5)
|
|
|
|
|
|
Apr 12th, 2001 P. Gumplinger - field-V03-01-00
|
|
-----------------------------
|
|
- Updated G4Mag_SpinEqRhs.hh and G4Mag_SpinEqRhs.cc for correction
|
|
to spin tracking.
|
|
|
|
Apr 04th, 2001 G. Cosmo - field-V03-00-05
|
|
------------------------
|
|
- G4FieldTrack.icc: fixed pedantic warnings on Linux-g++.
|
|
|
|
Mar 23rd, 2001 J. Apostolakis - field-V03-00-04
|
|
------------------------------
|
|
- Electric Field unit test now works: test runs until completion.
|
|
Test outputs saved (on Linux).
|
|
|
|
- Fixed src/G4UniformElectricField.cc to set correct field components
|
|
(compatible with Equation of Motion
|
|
G4EqMagElectricField )
|
|
|
|
- Tidied G4FieldTrack
|
|
* deleted obsolete methods Set/Get MomentumModulus() and its data member.
|
|
* in constructor to set the value of the spin to (0.0, 0.0, 0.0)
|
|
if pSpin is null. (It was undefined.)
|
|
|
|
Mar 23rd, 2001 J. Apostolakis - field-V03-00-03
|
|
------------------------------
|
|
- Fixed (hacked) CashKarp to work using Auxiliary Stepper.
|
|
|
|
- Modified G4MagIntegratorStepper
|
|
to use pointer to G4EquationOfMotion
|
|
instead of G4Mag_EqRhs
|
|
|
|
- Design iteration appears neccessary
|
|
|
|
Mar 23rd, 2001 J. Apostolakis - field-V03-00-02
|
|
------------------------------
|
|
- Fixed G4MagHelicalStepper::AdvanceHelix for momentum, allowing
|
|
the possibility of (correct) use of all Helical Steppers.
|
|
|
|
- test/testProElectroMagField.cc updated for momentum.
|
|
(Not yet updated: Spin tests)
|
|
|
|
|
|
Mar 19th, 2001 J. Apostolakis - field-V03-00-01
|
|
------------------------------
|
|
- Tagging the modification of several classes to integrate in momentum*c_light
|
|
instead of velocity.
|
|
Reason for change: Velocity integration can result in superluminar
|
|
velocities, due to arithmetic inaccuracies.
|
|
Classes modified:
|
|
G4FieldTrack, (Changed components 3,4,5 of SixVector to Momentum,
|
|
G4Mag_EqRhs, G4Mag_UsualEqRhs, G4EqMagElectricField
|
|
|
|
Feb 20th, 2001 J. Apostolakis
|
|
|
|
- Modified several classes to integrate in momentum instead of velocity.
|
|
|
|
G4FieldTrack:
|
|
Changed components 3,4,5 of SixVector to Momentum,
|
|
Modified constructor
|
|
Added energy calculation to "LoadFromArray" method
|
|
GetEnergy method is now implemented.
|
|
Deleted obsolete (old) method names for Curve and Position. New have "Get"
|
|
|
|
G4ChordFinder
|
|
Renamed old-method names of Field Track to new ones.
|
|
|
|
Jan 29th, 2001 G. Cosmo - field-V03-00-00
|
|
-------------------------
|
|
|
|
- Minor fix to G4MagneticField.hh: added explicit call to G4Field() in
|
|
copy constructor. Fixes report #205.
|
|
|
|
Nov 20th, 2000 G. Cosmo - field-V02-00-02
|
|
|
|
- Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options:
|
|
o commented out variables declared and not used.
|
|
o fixed declaration of variables used before being initialised.
|
|
o fixed order of initialisation of member data in constructors.
|
|
o fixed usage of unsigned-int (size_t) for array indeces.
|
|
|
|
Nov 9th, 2000 G. Cosmo - field-V02-00-01
|
|
|
|
- G4FieldManager: added check on existence of allocated fChordFinder
|
|
in CreateChordFinder(G4MagneticField*) method.
|
|
|
|
Nov 1st, 2000 G. Cosmo - field-V02-00-00
|
|
|
|
- QA code revision and cleanup (+fixes from CodeWizard filtering):
|
|
o Added (private) declarations of copy constructor and assignment operator
|
|
where needed.
|
|
o Added "const" qualifier to accessor methods, wherever needed.
|
|
o Added equality check on operator= where needed.
|
|
o Made destructor "virtual" for classes having virtual methods,
|
|
wherever missing.
|
|
o Changed virtual functions to non-inline wherever's the case.
|
|
o Changed return value to be "const" pointer to functions:
|
|
- G4EquationOfMotion::GetFieldObj()
|
|
- G4FieldManager::GetDetectorField()
|
|
- G4MagIntegratorDriver::GetStepper()
|
|
o Fixed and corrected signature to G4MagIntegratorDriver::SetHmin().
|
|
o Added "inline" qualifier to methods' declarations.
|
|
o General cosmetics
|
|
|
|
Jun 2nd, 2000 J. Apostolakis
|
|
- G4FieldManager[.hh.icc]
|
|
o Added DeltaIntersection and DeltaOneStep to FieldManager: added
|
|
Get/Set methods and SetAccuraciesWithDeltaOneStep().
|
|
|
|
May 31st, 2000 J. Apostolakis - field-V01-01-03
|
|
|
|
include/G4FieldManager.hh,icc
|
|
o Moved Delta Intersection and Delta One Step to FieldManager
|
|
(from Propagator in Field), to allow them to differ over the detector.
|
|
|
|
May 11th, 2000 J. Apostolakis - field-V01-01-02
|
|
|
|
- G4ChordFinder[.hh.cc]
|
|
o Modified method for finding new trial step.
|
|
New method assumes a quadratic relationship between step-length and d_chord:
|
|
d_chord proportional to step-lenght ^ 2
|
|
o Added two small refinement in order to avoid unneccesary extra step due to
|
|
small numerical inaccuracies in estimation:
|
|
FindNextChord
|
|
to first step use (1-0.001) * last-step-estimate
|
|
New Step:
|
|
to subsequent step use trial_step = 0.98 * estimate
|
|
|
|
May 10th, 2000 G. Cosmo
|
|
|
|
- G4MagneticField.hh: minor fix to dummy implementation of assignment
|
|
operator.
|
|
|
|
May 9th, 2000 J. Apostolakis - field-V01-01-01
|
|
|
|
- G4MagErrorStepper:
|
|
Modified DistChord to check whether the chord endpoint are the same point.
|
|
|
|
- G4RKG3_Stepper:
|
|
Deleted error message from StepNoErr, as it is used in Stepper.
|
|
|
|
- G4MagIntegratorDriver:
|
|
Changed the condition for the debug output (~cosmetic)
|
|
|
|
|
|
April 27th, 2000 G. Cosmo
|
|
|
|
- Reorganised comments for the Software Reference Manual.
|
|
- Moved inlined definition to .icc files, where needed.
|
|
Created: G4ChordFinder.icc and G4FieldManager.icc.
|
|
|
|
April 13th, 2000 J. Apostolakis - field-V01-01-00
|
|
|
|
- Modified signature to function DumbStepper() in classes:
|
|
G4HelixExplicitEuler, G4HelixHeum, G4HelixImplicitEuler,
|
|
G4HelixSimpleRunge and G4MagHelicalStepper.
|
|
- Modified signature and implementation of function MagFieldEvaluate()
|
|
in G4MagHelicalStepper, to use Field (as ThreeVector) in place of dydx.
|
|
- Made Richardson extrapolation optional (it is unclear if
|
|
it offers benefit) in G4MagHelicalStepper.
|
|
- Updated unit test testPropagateMagField and reference output.
|
|
- G4LineSection: fixes to prevent divisions by 0. and sqrt(<0)
|
|
(V.Grichine).
|
|
|
|
January 19th, 2000 G. Cosmo - field-V01-00-00
|
|
|
|
Syncronized versioning of files with HEAD after ISO-C++ migration
|
|
(essentially CVS header changes).
|
|
|
|
December 7th, 1999 J. Apostolakis - field-V00-01-01a
|
|
|
|
For negative or very small curve lengths (h) we suppress writing an error
|
|
(about the distance of endpoints being further than the curve length),
|
|
as it is meaningless.
|
|
|
|
November 23rd, 1999 J. Apostolakis - field-V00-01-01
|
|
|
|
Tagged this sub-category's state in geometry-V00-01-01
|
|
|
|
|
|
July 6th, 1999 J. Apostolakis - field-01-00-07
|
|
|
|
These fixes and those in field-01-00-06 and field-01-00-06a all come
|
|
from the need to cope with the imprecision of the integration, and its
|
|
interaction with paths that are rather straight.
|
|
|
|
G4MagIntegrationDriver:
|
|
i) AccurateAdvance now that the chord distance is smaller than the curve len-
|
|
gth (times 1+epsilon).
|
|
|
|
ii) OneGoodStep and QuickAdvance considers the error of the velocity as well as
|
|
the error of the position - and ensure that both relative errors are within
|
|
the "eps" maximum given.
|
|
|
|
G4ChordFinder:
|
|
Having found that the curve_length vs ABdist disrepancy has its basis in
|
|
the imprecision of the integration:
|
|
i) Modified the exception in this case to happen only for very large
|
|
relative disrepancies ( 10 * eps ).
|
|
ii) Undertaken a default corrective action in all other cases
|
|
Note that this disrepancy only happens for very straight sections of track -
|
|
ie step lengths much smaller than the curvature of the track.
|
|
|
|
July 1st, 1999 J. Apostolakis - field-01-00-06a
|
|
|
|
In order to cope with the anomalous condition created by candidate fix
|
|
in G4PropagatorInField, we ensure that the fraction_AE is always between
|
|
0 and 1.0. (giving it a default value of 0.5 whenever it is wrong).
|
|
( in G4ChordFinder::ApproxCurvePointV )
|
|
|
|
June 29th, 1999 J. Apostolakis - field-01-00-06
|
|
|
|
I re-instated a check on whether the input distance along the curve between
|
|
the two input curve points is truly greater than their linear distance.
|
|
( in G4ChordFinder::ApproxCurvePointV )
|
|
|
|
The condition that prints out a warning message has been altered to
|
|
take into account the case of a very small final interval.
|
|
( in G4MagInt_Driver::AccurateAdvance )
|
|
|
|
June ??th, 1999 J. Apostolakis - field-01-00-05
|
|
|
|
The condition that prints out a warning message was changed to delete
|
|
an incorrect comparison.
|
|
( in G4MagInt_Driver::AccurateAdvance )
|
|
|
|
April 19th, 1999 J. Apostolakis - field-01-00-04
|
|
|
|
G4MagErrorStepper: Cosmetic changes to name of data members
|
|
|
|
March 4th, 1999 J. Apostolakis - field-01-00-03
|
|
|
|
Corrected delete statement of arrays to use 'delete[]' instead of simple delete
|
|
in destructors of 2 steppers (G4CashKarpRKF45, G4SimpleHeum)
|
|
|
|
February 17th, 1999 J. Apostolakis - field-01-00-02
|
|
|
|
Moved G4PropagatorInField files to geometry/volumes.
|
|
Updated GNUmakefile not to depend on geometry/volumes anymore.
|
|
-> the known circular dependency is removed
|
|
|
|
|
|
February 12th, 1999 J. Apostolakis - field-spin1-works1 (act Feb17)
|
|
|
|
A tag that contains the first version that worked with spin (in Peter G.'s
|
|
directory). G4PropagateInSpin is still in this version. A small change
|
|
in a branch of the header file was needed.
|
|
|
|
|
|
February 10th, 1999 J. Apostolakis
|
|
|
|
All the following changes are needed for energy integration also:
|
|
|
|
G4ChordFinder now passes to the constructed driver the number of variables.
|
|
Because of the need for the stepper to know about it in its Abstract interface
|
|
|
|
-> Moved theNumberOfVariables from derived class G4MagErrorStepper
|
|
to base class G4MagIntegratorStepper
|
|
|
|
As a consequense the classes that derived from G4MagIntegratorStepper directly
|
|
were changed: G4CashKarpRKF45, G4MagHelicalStepper,
|
|
|
|
|
|
February 9th, 1999 J. Apostolakis
|
|
|
|
Equation of Motion:
|
|
G4MagEqRhs.hh Made SetChargeMomentumMass virtual, so that G4Mag_SpinEqRhs
|
|
can initialise its constants too.
|
|
|
|
|
|
February 9th, 1999 P. Gumplinger
|
|
|
|
Added Equation of Motion for Spin in Magnetic Field.
|
|
|
|
|
|
February 17th, 1999 J. Apostolakis - field-01-00-01
|
|
---> date is correct, made sure that tag does not include above fixes!
|
|
|
|
Moved G4PropagatorInField files to geometry/volumes.
|
|
Updated GNUmakefile not to depend on geometry/volumes anymore.
|
|
-> the known circular dependency is removed
|
|
|
|
|
|
---------------------------------------------------------------------------
|
|
------ Geant 4 Production Release ------------
|
|
--------------------------------------------------------------------------
|
|
Nov 19th, 1998 J. Apostolakis - field-00-04-01head ===> R+D version only
|
|
|
|
G4PropagatorInField files modified:
|
|
|
|
- to store the last safety computed and its origin.
|
|
- to give them to a requester
|
|
------------------------------------------------------------------
|
|
|
|
Nov 19th, 1998 J. Apostolakis - field-00-03-03b
|
|
|
|
Subtle fix to interface of G4UniformMagField::GetFieldValue
|
|
( that tripped Visual C++ )
|
|
|
|
G4PropagatorInField: added printing method for verboseness.
|
|
|
|
Nov 19th, 1998 J. Apostolakis - field-00-03-03a
|
|
|
|
Steppers: Fixed instance variables construction (SimpleRunge)
|
|
and clash of names in CashKarp::StepWithEstimate
|
|
|
|
Added post-const to all Field classes for
|
|
void GetFieldValue(const G4double yTrack[] ,
|
|
G4double B[] ) const ;
|
|
|
|
Added SetFieldValue methods to UniformMagField
|
|
|
|
Added GetConstantFieldValue() methods to Uniform Mag & Electric Fields
|
|
|
|
|
|
Nov 19th, 1998 J. Apostolakis - field-00-03-03
|
|
|
|
Fixes to Propagate and Steppers
|
|
|
|
Nov 19th, 1998 J. Apostolakis - field-00-03-02
|
|
|
|
Minor corrections (???)
|
|
|
|
Nov 19th, 1998 J. Apostolakis - field-00-03-02
|
|
|
|
Major development to allow Electric Field
|
|
|
|
|
|
|
|
June 17th, 1998 J. Apostolakis - magfield-06-03
|
|
|
|
Modified Files:
|
|
include/G4PropagatorInField.hh
|
|
src/G4PropagatorInField.cc
|
|
test/testPropagateInField.cc
|
|
----------------------------------------------------------------------
|
|
|
|
1) Added an assertion after each call to LocateGlobalPointAndSetup.
|
|
It checks that the located volume is equal to the current volume.
|
|
If this check fails, the Propagator does not know how to continue.
|
|
|
|
2) Added an argument to ComputeStep method of G4PropagatorInField.
|
|
The new volume argument is used to check the current volume during the step.
|
|
|
|
3) When G4Navigator's ComputeStep returned stepLength==stepRequested, this
|
|
used to be treated as a failure to intersect. This is incorrect.
|
|
|
|
stepLength==stepRequested is an intersection,
|
|
so I am now treating it as such in each comparison (of 3).
|
|
Ignoring it causes problems, including volume being skipped.
|
|
--> but treating it as an intersection used to cause problems too ??
|
|
|
|
|
|
May 7th, 1998 J. Apostolakis - magfield-06-02-helix01
|
|
|
|
- Tag includes new version of G4ChordFinder (not used by W.Wander).
|
|
|
|
|
|
May 7th, 1998 W. Wander (recorded/commited by J. Apostolakis)
|
|
|
|
- New "helical" RK steppers that move in helical segments, not linear.
|
|
* Several changes to add steppers
|
|
|
|
Modified Files:
|
|
G4MagErrorStepper.hh
|
|
G4MagErrorStepper.cc
|
|
added Helical stepping methods to this general ABC.
|
|
|
|
G4MagIntegratorStepper.hh
|
|
made RightHandSide virtual (this will be reversed very soon)
|
|
|
|
testPropagateMagField.cc
|
|
Test of Helical stepping functionality added.
|
|
|
|
Added Files for new Helical RK steppers, deriving from G4MagErrorStepper:
|
|
G4HelixExplicitEuler.cc ( and .hh )
|
|
G4HelixHeum.cc
|
|
G4HelixImplicitEuler.cc
|
|
G4HelixSimpleRunge.cc
|
|
|
|
Added File for implementation:
|
|
G4MagErrorStepper.icc
|
|
|
|
|
|
May 7th, 1998 J. Apostolakis - magfield-06-01
|
|
|
|
- added small changes to
|
|
* G4ChordFinder: methods to get/set IntegratorDriver
|
|
* G4MagIntegratorDriver: made OneGoodStep method public
|
|
- created the file.
|
|
|