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 | --------------------- |
---|
10 | This file should be used by G4 developers and category coordinators |
---|
11 | to briefly summarize all major modifications introduced in the code |
---|
12 | and keep track of all category-tags. |
---|
13 | It DOES NOT substitute the CVS log-message one should put at every |
---|
14 | committal in the CVS repository ! |
---|
15 | |
---|
16 | ---------------------------------------------------------- |
---|
17 | * Reverse chronological order (last date on top), please * |
---|
18 | ---------------------------------------------------------- |
---|
19 | |
---|
20 | November, 19th, 2008 P.Gumplinger - field-V09-01-05 |
---|
21 | - renormalize the spin to ONE in G4EqEMFieldWithSpin.cc and G4Mag_SpinEqRhs.cc |
---|
22 | |
---|
23 | November, 7th, 2008 P.Gumplinger - field-V09-01-04 |
---|
24 | ---------------------------------- |
---|
25 | - Added SetAnomaly() and GetAnomaly() accessors to G4EqEMFieldWithSpin. |
---|
26 | |
---|
27 | October, 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 | |
---|
33 | September, 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 | |
---|
39 | July, 15th, 2008 J.Apostolakis - field-V09-01-02 |
---|
40 | -------------------------------- |
---|
41 | - Revised signature of G4ChordFinder::FinderNextChord(), making 'FieldTrack' |
---|
42 | argument passed a reference. |
---|
43 | |
---|
44 | May, 28th, 2008 T.Nikitina |
---|
45 | ---------------------------- |
---|
46 | - G4ChordFinder: added new method ApproxCurvePointS() using Brent second order |
---|
47 | location mechanism. |
---|
48 | |
---|
49 | April 24th, 2008 T.Nikitina - field-V09-01-01 |
---|
50 | ----------------------------- |
---|
51 | - Fix 'unused' non-initialized values of dydx in G4EqMagElectricField |
---|
52 | and G4EqEMFieldWithSpin. |
---|
53 | |
---|
54 | January 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 | |
---|
60 | December 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 | |
---|
65 | September 9th, 2007 G.Cosmo - field-V09-00-02a |
---|
66 | ---------------------------- |
---|
67 | - Some code cleanup in G4MagHelicalStepper.cc. |
---|
68 | |
---|
69 | August 30th, 2007 P.Gumplinger - field-V09-00-02 |
---|
70 | --------------------------------- |
---|
71 | - Add G4EqEMFieldWithSpin class to allow tracking of spin also in |
---|
72 | G4ElectroMagneticFields |
---|
73 | |
---|
74 | August 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 | |
---|
87 | August 17th, 2007 G.Cosmo - field-V09-00-00 |
---|
88 | ---------------------------- |
---|
89 | - Changed FatalException to EventMustBeAborted in AccurateAdvance() |
---|
90 | if proposed integration step is negative. |
---|
91 | |
---|
92 | June 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 | |
---|
99 | May 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 | |
---|
108 | May 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 | |
---|
114 | May 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 | |
---|
120 | May 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 | |
---|
126 | April 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 | |
---|
132 | November 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 | |
---|
141 | November 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 | |
---|
149 | June 21st, 2006 J.Apostolakis - field-V08-01-00 |
---|
150 | ------------------------------ |
---|
151 | - Including the SetEquationOfMotion() method in G4MagIntegratorStepper |
---|
152 | |
---|
153 | June 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 | |
---|
160 | June 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 | |
---|
167 | May 27th, 2006 J.Apostolakis - field-V08-00-05 |
---|
168 | ----------------------------- |
---|
169 | - G4FieldTrack: Fix for simple compilation error on Sun. |
---|
170 | |
---|
171 | May 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 | |
---|
176 | May 18th, 2006 J.Apostolakis - field-V08-00-03 |
---|
177 | ----------------------------- |
---|
178 | - G4FieldTrack: Fix for issue with gcc 4.0 (mac) |
---|
179 | |
---|
180 | May 16th, 2006 J.Apostolakis - field-V08-00-02 |
---|
181 | ----------------------------- |
---|
182 | - G4ExactHelixStepper |
---|
183 | Taken out alpha version - it was included in error |
---|
184 | |
---|
185 | May 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 | |
---|
203 | Apr 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 | |
---|
211 | Nov 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 | |
---|
217 | Dec 2nd, 2004 G.Cosmo - field-V06-02-02 |
---|
218 | ---------------------- |
---|
219 | - Implemented migration to <cmath> for standard mathematical functions. |
---|
220 | |
---|
221 | Dec 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 | |
---|
239 | Oct 20th, 2004 P.Gumplinger - field-V06-02-00 |
---|
240 | ---------------------------- |
---|
241 | - Added Set/GetAnomaly() methods in G4Mag_SpinEqRhs. |
---|
242 | |
---|
243 | Feb 9th, 2004 G.Cosmo - field-V06-00-00 |
---|
244 | ---------------------- |
---|
245 | - G4UniformMagField.cc: added missing implementation for |
---|
246 | GetConstantFieldValue(). Fixes bug report #575. |
---|
247 | |
---|
248 | Nov 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 | |
---|
262 | Nov 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 | |
---|
280 | Nov 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 | |
---|
291 | Nov 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 | |
---|
299 | Nov 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 | |
---|
324 | Nov 4th, 2003 G.Cosmo - field-V05-02-03 |
---|
325 | ---------------------- |
---|
326 | Undocumented. |
---|
327 | |
---|
328 | Nov 4th, 2003 G.Cosmo - field-V05-02-02 |
---|
329 | ---------------------- |
---|
330 | - G4ChordFinder.cc: |
---|
331 | o Fixed compilation problem occuring when G4DEBUG_FIELD was set. |
---|
332 | |
---|
333 | Oct 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 | |
---|
338 | Oct 24th, 2003 G.Cosmo - field-V05-02-00 |
---|
339 | ----------------------- |
---|
340 | - Migrated to use new G4Exception scheme. |
---|
341 | - Updated outputs of unit tests. |
---|
342 | |
---|
343 | Jun 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 | |
---|
348 | Jun 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 | |
---|
356 | Jun 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 | |
---|
365 | Jun 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 | |
---|
379 | Jun 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 | |
---|
387 | Jun 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 | |
---|
393 | Jun 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 | |
---|
404 | Apr 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 | |
---|
412 | Feb 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 | |
---|
417 | Dec 12th, 2002 G. Cosmo - field-V04-01-06 |
---|
418 | --------------------------- |
---|
419 | - Moved unused variable 'nStpPr' to debug section in G4MagIntegratorDriver.cc, |
---|
420 | method AccurateAdvance(). |
---|
421 | |
---|
422 | Dec 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 | |
---|
427 | Nov 29th, 2002 J. Apostolakis - field-V04-01-04 |
---|
428 | --------------------------------- |
---|
429 | Further fixes for unitialised variable - in other steppers: |
---|
430 | G4ExplicitEuler, G4ImplicitEuler, G4ImplicitEuler |
---|
431 | |
---|
432 | Large memory leak fix for G4ImplicitEuler, small for ExplicitEuler. |
---|
433 | Test accuracy requirements for spin adjusted. |
---|
434 | |
---|
435 | Nov 20th, 2002 J. Apostolakis - field-V04-01-03 |
---|
436 | --------------------------------- |
---|
437 | Further 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 | |
---|
448 | Note: 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 | |
---|
454 | Nov 9th, 2002 J. Apostolakis - field-V04-01-02 |
---|
455 | --------------------------------- |
---|
456 | Fixes 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.) |
---|
458 | Changed: |
---|
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 | --------------------------------- |
---|
472 | G4ChordFinder.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 | |
---|
478 | G4Mag_UsualEqRhs.cc |
---|
479 | - Attempted approximations for speedup *overwritten* by full inverse sqrt. |
---|
480 | |
---|
481 | |
---|
482 | Oct 29th, 2002 J. Apostolakis - test-V04-01-02 |
---|
483 | -------------------------------- |
---|
484 | - Changed output of tests for small output change (GeV->MeV) |
---|
485 | |
---|
486 | Oct 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 | |
---|
494 | Jul 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 | |
---|
501 | Jul 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 | |
---|
507 | Jun 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 | |
---|
521 | Jun 7th, 2002 J. Apostolakis - field-V04-00-04 |
---|
522 | -------------------------------- |
---|
523 | - G4Mag_SpinEqRhs.cc |
---|
524 | o Fix to momentum component of Rhs. |
---|
525 | |
---|
526 | May 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 | |
---|
537 | May 7th, 2002 J. Apostolakis |
---|
538 | -------------------------------- |
---|
539 | - G4MagIntegratorDriver - ( on trunk ) |
---|
540 | * Fix to update the field track for steps smaller than the chord finder's |
---|
541 | minstep. |
---|
542 | |
---|
543 | |
---|
544 | April 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 | |
---|
550 | May 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 |
---|
554 | G4MagIntegratorDriver, tagging only the fix to update the field track |
---|
555 | for steps smaller than the chord finder's minstep. |
---|
556 | |
---|
557 | May 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 |
---|
561 | minstep. |
---|
562 | |
---|
563 | May 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 | |
---|
569 | Mar 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 | |
---|
579 | Mar 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 | |
---|
591 | Feb 2nd, 2002 V. Grichine |
---|
592 | ------------------------ |
---|
593 | Update 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 | |
---|
597 | Jan 10th, 2002 G. Cosmo - field-V04-00-00 |
---|
598 | ------------------------ |
---|
599 | - Activated G4DEBUG_FIELD in GNUmakefile. |
---|
600 | |
---|
601 | Jan 7th, 2002 J. Apostolakis |
---|
602 | ----------------------------- |
---|
603 | - G4MagHelicalStepper.cc: renamed local variables "*Momentum*" to "*Velocity*". |
---|
604 | |
---|
605 | Dec 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 | |
---|
617 | Nov 28th, 2001 J. Apostolakis - field-V03-02-07 |
---|
618 | ------------------------------ |
---|
619 | G4FieldManager |
---|
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 | |
---|
624 | Nov 28th, 2001 J. Apostolakis - field-V03-02-06 |
---|
625 | ------------------------------ |
---|
626 | Small fixes only: |
---|
627 | |
---|
628 | G4CashKarpRKF45 |
---|
629 | - fixed deletion of unassigned pointer/array in destructor. (-> Volodya Velev) |
---|
630 | |
---|
631 | G4EqMagElectricField |
---|
632 | - bug fixed in the formula for inverse velocity (-> V. Grichine) |
---|
633 | |
---|
634 | Nov 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 | |
---|
641 | Nov 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 | |
---|
646 | Nov 9th, 2001 J. Apostolakis - field-V03-02-03 |
---|
647 | ----------------------------- |
---|
648 | Motivated 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) |
---|
651 | we (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 | |
---|
664 | Support 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 | |
---|
673 | Nov 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 | |
---|
687 | Nov 05th, 2001 G. Cosmo - field-V03-02-01 |
---|
688 | ------------------------ |
---|
689 | - Fixed trivial warnings on Linux-g++. |
---|
690 | |
---|
691 | Aug 27th, 2001 J. Apostolakis - field-V03-02-00 |
---|
692 | ------------------------------ |
---|
693 | Tagged last change. |
---|
694 | This tag is utilised in transport-V03-02-01 (which requires it). |
---|
695 | |
---|
696 | Aug 16th, 2001 J. Apostolakis |
---|
697 | ------------------------------ |
---|
698 | G4ChordFinder: |
---|
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 | |
---|
707 | May 23rd, 2001 J. Apostolakis - field-V03-01-02 |
---|
708 | ------------------------------ |
---|
709 | - Added Exception to G4RKG3Stepper constructor: the class does not work |
---|
710 | |
---|
711 | May 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 | |
---|
720 | Apr 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 | |
---|
725 | Apr 04th, 2001 G. Cosmo - field-V03-00-05 |
---|
726 | ------------------------ |
---|
727 | - G4FieldTrack.icc: fixed pedantic warnings on Linux-g++. |
---|
728 | |
---|
729 | Mar 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 | |
---|
743 | Mar 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 | |
---|
753 | Mar 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 | |
---|
762 | Mar 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 | |
---|
772 | Feb 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 | |
---|
786 | Jan 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 | |
---|
792 | Nov 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 | |
---|
800 | Nov 9th, 2000 G. Cosmo - field-V02-00-01 |
---|
801 | |
---|
802 | - G4FieldManager: added check on existence of allocated fChordFinder |
---|
803 | in CreateChordFinder(G4MagneticField*) method. |
---|
804 | |
---|
805 | Nov 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 | |
---|
823 | Jun 2nd, 2000 J. Apostolakis |
---|
824 | - G4FieldManager[.hh.icc] |
---|
825 | o Added DeltaIntersection and DeltaOneStep to FieldManager: added |
---|
826 | Get/Set methods and SetAccuraciesWithDeltaOneStep(). |
---|
827 | |
---|
828 | May 31st, 2000 J. Apostolakis - field-V01-01-03 |
---|
829 | |
---|
830 | include/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 | |
---|
834 | May 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 | |
---|
847 | May 10th, 2000 G. Cosmo |
---|
848 | |
---|
849 | - G4MagneticField.hh: minor fix to dummy implementation of assignment |
---|
850 | operator. |
---|
851 | |
---|
852 | May 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 | |
---|
864 | April 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 | |
---|
870 | April 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 | |
---|
883 | January 19th, 2000 G. Cosmo - field-V01-00-00 |
---|
884 | |
---|
885 | Syncronized versioning of files with HEAD after ISO-C++ migration |
---|
886 | (essentially CVS header changes). |
---|
887 | |
---|
888 | December 7th, 1999 J. Apostolakis - field-V00-01-01a |
---|
889 | |
---|
890 | For negative or very small curve lengths (h) we suppress writing an error |
---|
891 | (about the distance of endpoints being further than the curve length), |
---|
892 | as it is meaningless. |
---|
893 | |
---|
894 | November 23rd, 1999 J. Apostolakis - field-V00-01-01 |
---|
895 | |
---|
896 | Tagged this sub-category's state in geometry-V00-01-01 |
---|
897 | |
---|
898 | |
---|
899 | July 6th, 1999 J. Apostolakis - field-01-00-07 |
---|
900 | |
---|
901 | These fixes and those in field-01-00-06 and field-01-00-06a all come |
---|
902 | from the need to cope with the imprecision of the integration, and its |
---|
903 | interaction with paths that are rather straight. |
---|
904 | |
---|
905 | G4MagIntegrationDriver: |
---|
906 | i) AccurateAdvance now that the chord distance is smaller than the curve len- |
---|
907 | gth (times 1+epsilon). |
---|
908 | |
---|
909 | ii) OneGoodStep and QuickAdvance considers the error of the velocity as well as |
---|
910 | the error of the position - and ensure that both relative errors are within |
---|
911 | the "eps" maximum given. |
---|
912 | |
---|
913 | G4ChordFinder: |
---|
914 | Having found that the curve_length vs ABdist disrepancy has its basis in |
---|
915 | the 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 |
---|
919 | Note that this disrepancy only happens for very straight sections of track - |
---|
920 | ie step lengths much smaller than the curvature of the track. |
---|
921 | |
---|
922 | July 1st, 1999 J. Apostolakis - field-01-00-06a |
---|
923 | |
---|
924 | In order to cope with the anomalous condition created by candidate fix |
---|
925 | in G4PropagatorInField, we ensure that the fraction_AE is always between |
---|
926 | 0 and 1.0. (giving it a default value of 0.5 whenever it is wrong). |
---|
927 | ( in G4ChordFinder::ApproxCurvePointV ) |
---|
928 | |
---|
929 | June 29th, 1999 J. Apostolakis - field-01-00-06 |
---|
930 | |
---|
931 | I re-instated a check on whether the input distance along the curve between |
---|
932 | the two input curve points is truly greater than their linear distance. |
---|
933 | ( in G4ChordFinder::ApproxCurvePointV ) |
---|
934 | |
---|
935 | The condition that prints out a warning message has been altered to |
---|
936 | take into account the case of a very small final interval. |
---|
937 | ( in G4MagInt_Driver::AccurateAdvance ) |
---|
938 | |
---|
939 | June ??th, 1999 J. Apostolakis - field-01-00-05 |
---|
940 | |
---|
941 | The condition that prints out a warning message was changed to delete |
---|
942 | an incorrect comparison. |
---|
943 | ( in G4MagInt_Driver::AccurateAdvance ) |
---|
944 | |
---|
945 | April 19th, 1999 J. Apostolakis - field-01-00-04 |
---|
946 | |
---|
947 | G4MagErrorStepper: Cosmetic changes to name of data members |
---|
948 | |
---|
949 | March 4th, 1999 J. Apostolakis - field-01-00-03 |
---|
950 | |
---|
951 | Corrected delete statement of arrays to use 'delete[]' instead of simple delete |
---|
952 | in destructors of 2 steppers (G4CashKarpRKF45, G4SimpleHeum) |
---|
953 | |
---|
954 | February 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 | |
---|
961 | February 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 |
---|
964 | directory). G4PropagateInSpin is still in this version. A small change |
---|
965 | in a branch of the header file was needed. |
---|
966 | |
---|
967 | |
---|
968 | February 10th, 1999 J. Apostolakis |
---|
969 | |
---|
970 | All the following changes are needed for energy integration also: |
---|
971 | |
---|
972 | G4ChordFinder now passes to the constructed driver the number of variables. |
---|
973 | Because 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 | |
---|
978 | As a consequense the classes that derived from G4MagIntegratorStepper directly |
---|
979 | were changed: G4CashKarpRKF45, G4MagHelicalStepper, |
---|
980 | |
---|
981 | |
---|
982 | February 9th, 1999 J. Apostolakis |
---|
983 | |
---|
984 | Equation of Motion: |
---|
985 | G4MagEqRhs.hh Made SetChargeMomentumMass virtual, so that G4Mag_SpinEqRhs |
---|
986 | can initialise its constants too. |
---|
987 | |
---|
988 | |
---|
989 | February 9th, 1999 P. Gumplinger |
---|
990 | |
---|
991 | Added Equation of Motion for Spin in Magnetic Field. |
---|
992 | |
---|
993 | |
---|
994 | February 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 | -------------------------------------------------------------------------- |
---|
1005 | Nov 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 | |
---|
1013 | Nov 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 | |
---|
1020 | Nov 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 | |
---|
1034 | Nov 19th, 1998 J. Apostolakis - field-00-03-03 |
---|
1035 | |
---|
1036 | Fixes to Propagate and Steppers |
---|
1037 | |
---|
1038 | Nov 19th, 1998 J. Apostolakis - field-00-03-02 |
---|
1039 | |
---|
1040 | Minor corrections (???) |
---|
1041 | |
---|
1042 | Nov 19th, 1998 J. Apostolakis - field-00-03-02 |
---|
1043 | |
---|
1044 | Major development to allow Electric Field |
---|
1045 | |
---|
1046 | |
---|
1047 | |
---|
1048 | June 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 |
---|
1064 | used 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 | |
---|
1072 | May 7th, 1998 J. Apostolakis - magfield-06-02-helix01 |
---|
1073 | |
---|
1074 | - Tag includes new version of G4ChordFinder (not used by W.Wander). |
---|
1075 | |
---|
1076 | |
---|
1077 | May 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 | |
---|
1103 | May 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 | |
---|