$Id: History,v 1.4 1999/04/19 14:52:30 mora 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 * ---------------------------------------------------------- April 19, 1999 M. Verderi & P. Mora de Freitas Changes in G4FastStep to co-work with track-01-00-04: 1) The method void CheckIt(const G4Track&) becomes G4bool CheckIt(const G4Track&); 2) The FAST_STEP_DEBUG compiling option disappears; 3) Call to CheckIt controled by the G4VParticleChange::debugFlag attribute. Miscellaneous: the declaration "G4double mass = masss =..." in G4FastStep.hh corrected to G4double mass =...". April 15, 1999 M. Verderi & P. Mora de Freitas Tasks to decouple visualization from processes/parameterisation: 1) G4GlobalFastSimulationManager now inherites from the intercoms/ G4VGlobalFastSimulationManager to allow visualisation to get a concrete instance pointer to the G4GlobalFastSimulationManager, if any. 2) G4FlavoredParallelWorld now inherites from the intercoms/ G4VFlavoredParallelWorld, a pure virtual abstract class to interface parameterisation with visualization. Co-works with intercoms-01-00-01 tag Modified files: --------------- G4FlavoredParallelWorld.hh G4GlobalFastSimulationManager.hh G4GlobalFastSimulationManager.cc Done, tested, system-tested on HP-aCC with exemple N05. April 14, 1999 M. Verderi & P. Mora de Freitas Several consolidation tasks (thanks to G. Cosmo): 1) Warning: ----------- Pointers usage - Setting pointers to 0 after delete: delete pA; pA = 0; - Avoid to use "NULL". Modified files: --------------- G4FastSimulationManager.hh G4FastTrack.hh G4FlavoredParallelWorld.hh G4FastSimulationManager.cc G4FastSimulationMessenger.cc G4FastSimulationManagerProcess.cc G4FastTrack.cc G4GlobalFastSimulationManager.cc G4VFastSimulationModel.cc Status: ------- Done, tested, system-tested on HP-aCC with exemple N05. 2) Warning: ----------- include/G4FastSimulationManager.hh:163 Public member functions shall always return const handles to member data Severe violation: Universal Coding Standards item 18 offending code: --------------- inline G4VParticleChange* G4FastSimulationManager::GettheParticleChange() { return &fFastStep; } Diagnostic: ---------- Called by the G4FastSimulationManagerProcess to return it in the PostStepDoIt call. Action: ------- The G4FastSimulationManager::GettheParticleChange() method doesn't exist any more. The G4VParticleChange* is now returned directly when invoking the G4FastSimulationManager::InvokePostStepDoIt() and G4FastSimulationManager::InvokeAtRestDoIt() methodes. Modified files: --------------- G4FastSimulationManager.hh G4FastSimulationManager.cc G4FastSimulationManagerProcess.cc Status: ------- Done, tested, system-tested on HP-aCC with exemple N05. 3) Warning: ----------- include/G4FastSimulationManagerProcess.hh:52 If a class has virtual functions it shall have a virtual destructor Severe violation: Universal Coding Standards item 17 class G4FastSimulationManagerProcess has virtual functions without a virtual destructor. offending code: --------------- ~G4FastSimulationManagerProcess(); Diagnostic: ---------- Nobody should inherites from G4FastSimulationManagerProcess BUT for virtual is added. Action: ------- virtual ~G4FastSimulationManagerProcess(); Modified files: --------------- G4FastSimulationManagerProcess.hh Status: ------- Done. 4) Warning: ----------- include/G4FastSimulationMessenger.hh:36 If a class has virtual functions it shall have a virtual destructor Severe violation: Universal Coding Standards item 17 class G4FastSimulationMessenger has virtual functions without a virtual destructor. offending code: --------------- ~G4FastSimulationMessenger(); Diagnostic: ---------- Nobody should inherites from G4FastSimulationMessenger BUT for virtual is added. Action: ------- virtual ~G4FastSimulationMessenger(); Modified files: --------------- G4FastSimulationMessenger.hh Status: ------- Done. 5) Warning: ----------- include/G4FastStep.hh:224 Operator= should call base class operator= Possible severe violation: Effective C++ item 16 operator= in class G4FastStep, should call operator= in base class G4VParticleChange offending code: --------------- G4FastStep & G4FastStep::operator=(const G4FastStep &right) { if (this != &right) { theListOfSecondaries = right.theListOfSecondaries; theSizeOftheListOfSecondaries = right.theSizeOftheListOfSecondaries; theNumberOfSecondaries = right.theNumberOfSecondaries; theStatusChange = right.theStatusChange; theMomentumChange = right.theMomentumChange; thePolarizationChange = right.thePolarizationChange; thePositionChange = right.thePositionChange; theTimeChange = right.theTimeChange; theEnergyChange = right.theEnergyChange; theTrueStepLength = right.theTrueStepLength; theLocalEnergyDeposit = right.theLocalEnergyDeposit; theSteppingControlFlag = right.theSteppingControlFlag; theWeightChange = right.theWeightChange; } return *this; } Diagnostic: ---------- Bug detected. Action: ------- Insert the call G4VParticleChange::operator=(right); Status: ------- Done, tested, system-tested on HP-aCC with exemple N05. Modified files: --------------- G4FastStep.cc 6) Warning: ----------- include/G4FastStep.hh:59 Avoid data members in the public interface Violation: Effective C++ item 20 Public data members for class G4FastStep: debugFlag offending code: --------------- public: ... G4bool debugFlag; Diagnostic: ---------- Historical usage. Action: ------- Replaced by #ifdef FAST_STEP_DEBUG in the G4FastStep.cc file. Modified files: --------------- G4FastStep.hh, G4FastStep.cc Status: ------- Done, tested, system-tested on HP-aCC with exemple N05. 7) Warning: ----------- include/G4FastStep.hh:59 If a class has virtual functions it shall have a virtual destructor Severe violation: Universal Coding Standards item 17 class G4FastStep has virtual functions without a virtual destructor. offending code: --------------- ~G4FastStep(); Diagnostic: ---------- Nobody should inherites from G4FastStep BUT virtual added. Action: ------- virtual ~G4FastStep(); Modified files: --------------- G4FastStep.hh Status: ------- Done, tested, system-tested on HP-aCC with exemple N05. December 7, 1998 M. Verderi G4FastSimulationManagerProcess class: Fixes made for ghost navigation with mag-field: LocateGlobalPointAndUpdateTouchable is always used (in not the Locate...Setup method) In PostStepDoIt: correction of position and direction of the track are made when possible in case of mag-field. This correction comes from the fact that a small discrepancy appears on those quantities because of the numerical integration along the field on the track path: the G4FSMP proposes a curve-length, the transportation moves the track along this curve, however the end point position and direction are slightly different from those expected by the G4FSMP when it proposed the length. November 20,1998 M. Verderi G4FastStep class: Remove track/G4BiasingTag.hh dependancy (obsolete). Adapted to new shceme of Event Biasing mechanism, consistently with track-00-04-01 tag. November 11,1998 M. Verderi Merge of param-00-03-02 & param-00-03-02a into param-00-03-04a (hopefully...) The point is the chnage of signature in the LocateGlobalPointAndSetup(..) of the G4Navigator making use now of the track direction. The G4FastSimulationManagerProcess is changed accordingly: fGhostNavigator.LocateGlobalPointAndSetup(track.GetPosition(), &direction, true); November 6, 1998 M. Verderi - Extension of the G4FastStep to allow the biasing technic. Changes are made in: - G4FastStep.hh/.icc: new member G4BiasingTag fBiasTag; new method SetPrimaryTrackFinalBiasingTag ( G4BiasingTag aTag ); - G4FastStep.cc: Initialize(); operator=; UpdateForPostStep(); UpdateForAtRest(); October 26, 1998 P.Mora de Freitas - G4FastSimulationManagerProcess and G4FastSimulationManager adapted to deal with at rest parameterisations also when using parallel geometry. October 8, 1998 P.Mora de Freitas - The G4VFastSimulationModel::IsApplicable() becomes a pure virtual methode. - G4FastSimulationManager optimisation: - New G4ParticleDefinition* fLastCrossedParticle data member, keeps the last particle type with touched the envelope; - New RWTPtrOrderedVector fApplicableModelList data member, keeps the model list of the applicable models for the actual fLastCrossedParticle particle type; - Changes in the PostStepGetFastSimulationManagerTrigger() and AtRestGetFastSimulationManagerTrigger()methodes to update the fApplicableModelList when needed (fLastCrossedParticle != the actual tracked particle); - Changes in the G4FastSimulationManager() (Constructor) ActivateFastSimulationModel(), InActivateFastSimulationModel(), AtRestGetFastSimulationManagerTrigger(), AddFastSimulationModel(), RemoveFastSimulationModel() methodes to set the fLastCrossedParticle to NULL, forcing the fApplicableModelList to be rebuilt. September 22, 1998 P.Mora de Freitas Fixed bug in parallel navigation. File touched: G4FastSimulationManagerProcess.cc Tested on HP-aCC. September 17, 1998 P.Mora de Freitas G4FastSimulationManager::RemoveFastSimulationModel() updated to look for also in the fInactivatedModels list. Tested on HP-aCC. September 16, 1998 P.Mora de Freitas New /param/ control commands: /param/ActivateModel /param/InActivateModel Activate or inactivate a given parameterisation model. Tested on HP-aCC. August 21, 1998 P.Mora de Freitas G4FastSimulationManagerProcess's G4ProcessType set to fParameterisation, accordingly with procman-00-02-03. Tested on HP-aCC. August 12, 1998 P.Mora de Freitas Improved the "close parameterisation control" to 1) avoid the close looping when unnecessary (mostly cases); 2) force re-close when necessary (insert/remove ghosts). Changes: 1) the G4GlobalFastSimulationManager::fClosed is now initialised to true by the G4GlobalFastSimulationManager constructor; 2) new method void G4GlobalFastSimulationManager::FastSimulationNeedsToBeClosed(); called by the AddGhostPlacement and RemoveGhostPlacement G4FastSimulationManager methods to set false the fClosed flag; 3) changes in the G4GlobalFastSimulationManager::Notify method to deal with these changes. Tested on HP-aCC. August 11, 1998 P.Mora de Freitas Fix to the G4FastStep::KillPrimaryTrack() method to drop the nonsense line SetMomentumChange(0.,0.,0.) ; /* necessary ? */ Tested on HP-aCC. (Thanks to Willy Langeveld) August 10, 1998 P.Mora de Freitas Fix to the SetPrimaryTrackFinalKineticEnergyAndDirection() method from the G4FastStep class the SetMomentumChange() call to insure that the new momentum direction is a unit vector (as asked by the G4DynamicParticle::SetMomentumDirection method). Touched files: G4FastStep.hh (improved comments) G4FastStep.cc (fixed) Tested on HP-aCC. (Thanks to Willy Langeveld) August 7, 1998 P.Mora de Freitas New /param/ commands directory with the commands: /param/listEnvelopes [ParticleName] - List all the envelope names for a given particle (or for all particles if without parameters). /param/listModels [EnvelopeName] - List all the Model names for a given envelope (or for all envelopes if without parameters). /param/listIsApplicable [ModelName] - List all the particle names a given model is applicable (or for all models if without parameters). August 7, 1998 P.Mora de Freitas History file Created.