Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/track/include/G4VParticleChange.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /track/include/G4VParticleChange.hh (Version 11.3.0) and /track/include/G4VParticleChange.hh (Version 11.1.1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 // G4VParticleChange                               26 // G4VParticleChange
 27 //                                                 27 //
 28 // Class description:                              28 // Class description:
 29 //                                                 29 //
 30 // Abstract class for "Particle Change".           30 // Abstract class for "Particle Change".
 31 //                                                 31 //
 32 // The ParticleChange class contains the resul     32 // The ParticleChange class contains the results after invocation
 33 // of a physics process. This includes final s     33 // of a physics process. This includes final states of parent particle
 34 // (momentum, energy, etc) and secondary parti     34 // (momentum, energy, etc) and secondary particles generated by the
 35 // interaction.                                    35 // interaction.
 36 // The tracking assumes that all the values of     36 // The tracking assumes that all the values of energy and momentum are
 37 // in global reference system, therefore all t     37 // in global reference system, therefore all the needed Lorentz
 38 // transformations must have been already comp     38 // transformations must have been already computed when filling the
 39 // data-members of this class.                     39 // data-members of this class.
 40 //                                                 40 //
 41 // This abstract class has following four virt     41 // This abstract class has following four virtual methods:
 42 //     virtual G4Step* UpdateStepForAtRest(G4S     42 //     virtual G4Step* UpdateStepForAtRest(G4Step* Step);
 43 //     virtual G4Step* UpdateStepForAlongStep(     43 //     virtual G4Step* UpdateStepForAlongStep(G4Step* Step);
 44 //     virtual G4Step* UpdateStepForPostStep(G     44 //     virtual G4Step* UpdateStepForPostStep(G4Step* Step);
 45 //     virtual void Initialize(const G4Track&)     45 //     virtual void Initialize(const G4Track&);
 46 // The UpdateStep methods return the pointer t     46 // The UpdateStep methods return the pointer to the G4Step after updating
 47 // the given Step information by using final s     47 // the given Step information by using final state information of the track
 48 // given by a physics process.                     48 // given by a physics process.
 49 // User must add methods to keep the final sta     49 // User must add methods to keep the final state information in the derived
 50 // class as well as implement UpdateStep() met     50 // class as well as implement UpdateStep() methods wished to use.
 51 //                                                 51 //
 52 // The Initialize() methods are provided to re     52 // The Initialize() methods are provided to refresh the final state
 53 // information and should be called by each pr     53 // information and should be called by each process at the beginning of DoIt().
 54                                                    54 
 55 // Author: Hisaya Kurashige, 23 March 1998         55 // Author: Hisaya Kurashige, 23 March 1998
 56 // -------------------------------------------     56 // --------------------------------------------------------------------
 57 #ifndef G4VParticleChange_hh                       57 #ifndef G4VParticleChange_hh
 58 #define G4VParticleChange_hh 1                     58 #define G4VParticleChange_hh 1
 59                                                    59 
 60 #include <vector>                                  60 #include <vector>
 61 #include "globals.hh"                              61 #include "globals.hh"
 62 #include "G4ios.hh"                                62 #include "G4ios.hh"
 63 #include "G4TrackStatus.hh"                        63 #include "G4TrackStatus.hh"
 64 #include "G4SteppingControl.hh"                    64 #include "G4SteppingControl.hh"
 65 #include "G4Step.hh"                               65 #include "G4Step.hh"
 66 #include "G4Track.hh"                              66 #include "G4Track.hh"
 67                                                    67 
 68 class G4VParticleChange                            68 class G4VParticleChange
 69 {                                                  69 {
 70   public:                                          70   public:
 71                                                    71 
 72     G4VParticleChange();                           72     G4VParticleChange();
 73                                                    73 
 74     virtual ~G4VParticleChange() = default;        74     virtual ~G4VParticleChange() = default;
 75                                                    75 
 76     G4VParticleChange(const G4VParticleChange&     76     G4VParticleChange(const G4VParticleChange& right) = delete;
 77     G4VParticleChange& operator=(const G4VPart     77     G4VParticleChange& operator=(const G4VParticleChange& right) = delete;
 78                                                    78 
 79   // --- the following methods are for updatin     79   // --- the following methods are for updating G4Step ---
 80                                                    80 
 81     virtual G4Step* UpdateStepForAtRest(G4Step     81     virtual G4Step* UpdateStepForAtRest(G4Step* Step);
 82     virtual G4Step* UpdateStepForAlongStep(G4S     82     virtual G4Step* UpdateStepForAlongStep(G4Step* Step);
 83     virtual G4Step* UpdateStepForPostStep(G4St     83     virtual G4Step* UpdateStepForPostStep(G4Step* Step);
 84       // Return the pointer to the G4Step afte     84       // Return the pointer to the G4Step after updating the Step information
 85       // by using final state information of t     85       // by using final state information of the track given by a physics
 86       // process                                   86       // process
 87                                                    87 
 88     virtual void Initialize(const G4Track&);       88     virtual void Initialize(const G4Track&);
 89       // This methods will be called by each p     89       // This methods will be called by each process at the beginning
 90       // of DoIt() if necessary                    90       // of DoIt() if necessary
 91                                                    91 
 92   // --- the following methods are for TruePat     92   // --- the following methods are for TruePathLength ---
 93                                                    93 
 94     inline G4double GetTrueStepLength() const;     94     inline G4double GetTrueStepLength() const;
 95     inline void ProposeTrueStepLength(G4double     95     inline void ProposeTrueStepLength(G4double truePathLength);
 96       // Get/Propose theTrueStepLength             96       // Get/Propose theTrueStepLength
 97                                                    97 
 98   // --- the following methods are for LocalEn     98   // --- the following methods are for LocalEnergyDeposit ---
 99                                                    99 
100     inline G4double GetLocalEnergyDeposit() co    100     inline G4double GetLocalEnergyDeposit() const;
101     inline void ProposeLocalEnergyDeposit(G4do    101     inline void ProposeLocalEnergyDeposit(G4double anEnergyPart);
102       // Get/Propose the locally deposited ene    102       // Get/Propose the locally deposited energy
103                                                   103 
104   // --- the following methods are for nonIoni    104   // --- the following methods are for nonIonizingEnergyDeposit  ---
105                                                   105 
106     inline G4double GetNonIonizingEnergyDeposi    106     inline G4double GetNonIonizingEnergyDeposit() const;
107     inline void ProposeNonIonizingEnergyDeposi    107     inline void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart);
108       // Get/Propose the non-ionizing deposite    108       // Get/Propose the non-ionizing deposited energy
109                                                   109 
110   // --- the following methods are for TrackSt    110   // --- the following methods are for TrackStatus ---
111                                                   111 
112     inline G4TrackStatus GetTrackStatus() cons    112     inline G4TrackStatus GetTrackStatus() const;
113     inline void ProposeTrackStatus(G4TrackStat    113     inline void ProposeTrackStatus(G4TrackStatus status);
114       // Get/Propose the final TrackStatus of     114       // Get/Propose the final TrackStatus of the current particle
115                                                   115 
116     inline const G4Track* GetCurrentTrack() co    116     inline const G4Track* GetCurrentTrack() const;
117       // Get primary track pointer                117       // Get primary track pointer
118                                                   118 
119   // --- the following methods are for managem    119   // --- the following methods are for management of SteppingControl ---
120                                                   120 
121     inline G4SteppingControl GetSteppingContro    121     inline G4SteppingControl GetSteppingControl() const;
122     inline void ProposeSteppingControl(G4Stepp    122     inline void ProposeSteppingControl(G4SteppingControl StepControlFlag);
123       // Set/Propose a flag to control steppin    123       // Set/Propose a flag to control stepping manager behaviour
124                                                   124 
125   // --- the following methods are for managem    125   // --- the following methods are for management of initial/last step
126                                                   126 
127     inline G4bool GetFirstStepInVolume() const    127     inline G4bool GetFirstStepInVolume() const;
128     inline G4bool GetLastStepInVolume() const;    128     inline G4bool GetLastStepInVolume() const;
129     inline void ProposeFirstStepInVolume(G4boo    129     inline void ProposeFirstStepInVolume(G4bool flag);
130     inline void ProposeLastStepInVolume(G4bool    130     inline void ProposeLastStepInVolume(G4bool flag);
131                                                   131 
132   // --- the following methods are for managem    132   // --- the following methods are for management of secondaries ---
133                                                   133 
134     inline void Clear();                          134     inline void Clear();
135       // Clear the contents of this objects       135       // Clear the contents of this objects
136       // This method should be called after th    136       // This method should be called after the Tracking(Stepping)
137       // manager removes all secondaries in th    137       // manager removes all secondaries in theListOfSecondaries
138                                                   138 
139     inline void SetNumberOfSecondaries(G4int t    139     inline void SetNumberOfSecondaries(G4int totSecondaries);
140       // SetNumberOfSecondaries must be called    140       // SetNumberOfSecondaries must be called just before AddSecondary()
141       // in order to secure memory space for t    141       // in order to secure memory space for theListOfSecondaries
142       // This method resets theNumberOfSeconda    142       // This method resets theNumberOfSecondaries to zero
143       // (that will be incremented at every Ad    143       // (that will be incremented at every AddSecondary() call)
144                                                   144 
145     inline G4int GetNumberOfSecondaries() cons    145     inline G4int GetNumberOfSecondaries() const;
146       // Returns the number of secondaries cur    146       // Returns the number of secondaries current stored in G4TrackFastVector
147                                                   147 
148     inline G4Track* GetSecondary(G4int anIndex    148     inline G4Track* GetSecondary(G4int anIndex) const;
149       // Returns the pointer to the generated     149       // Returns the pointer to the generated secondary particle,
150       // which is specified by an Index, no ch    150       // which is specified by an Index, no check on boundary is performed
151                                                   151 
152     void AddSecondary(G4Track* aSecondary);       152     void AddSecondary(G4Track* aSecondary);
153       // Adds a secondary particle to theListO    153       // Adds a secondary particle to theListOfSecondaries
154                                                   154 
155   // --- the following methods are for managem    155   // --- the following methods are for management of weights ---
156                                                   156 
157     inline G4double GetWeight() const;            157     inline G4double GetWeight() const;
158     inline G4double GetParentWeight() const;      158     inline G4double GetParentWeight() const;
159       // Get weight of the parent (i.e. curren    159       // Get weight of the parent (i.e. current) track
160                                                   160 
161     inline void ProposeWeight(G4double finalWe    161     inline void ProposeWeight(G4double finalWeight);
162     inline void ProposeParentWeight(G4double f    162     inline void ProposeParentWeight(G4double finalWeight);
163       // Propose new weight of the parent (i.e    163       // Propose new weight of the parent (i.e. current) track
164       // As for AlongStepDoIt, the parent weig    164       // As for AlongStepDoIt, the parent weight will be set
165       // in accumulated manner, i.e. - If two     165       // in accumulated manner, i.e. - If two processes propose
166       // weight of W1 and W2 respectively for     166       // weight of W1 and W2 respectively for the track with initial
167       // weight of W0 the final weight is set     167       // weight of W0 the final weight is set to: (W1/W0) * (W2/W0) * W0
168                                                   168 
169     inline void SetSecondaryWeightByProcess(G4    169     inline void SetSecondaryWeightByProcess(G4bool);
170     inline G4bool IsSecondaryWeightSetByProces    170     inline G4bool IsSecondaryWeightSetByProcess() const;
171       // In default (fSecondaryWeightByProcess    171       // In default (fSecondaryWeightByProcess flag is false),
172       // the weight of secondary tracks will b    172       // the weight of secondary tracks will be set to the parent weight
173       // If fSecondaryWeightByProcess flag is     173       // If fSecondaryWeightByProcess flag is true, the weight of secondary
174       // tracks will not be changed by the Par    174       // tracks will not be changed by the ParticleChange (i.e. the process
175       // determine the secondary weight)          175       // determine the secondary weight)
176       // NOTE:                                    176       // NOTE:
177       // Make sure that only one process in Al    177       // Make sure that only one process in AlongStepDoIt() proposes the
178       // parent weight; if several processes i    178       // parent weight; if several processes in AlongStepDoIt() propose
179       // the parent weight and add secondaties    179       // the parent weight and add secondaties with fSecondaryWeightByProcess
180       // is set to false, secondary weights ma    180       // is set to false, secondary weights may be wrong
181                                                   181 
182     void SetParentWeightByProcess(G4bool);        182     void SetParentWeightByProcess(G4bool);
183     G4bool IsParentWeightSetByProcess() const;    183     G4bool IsParentWeightSetByProcess() const;
184       // Obsolete                                 184       // Obsolete
185                                                   185 
186   // --- Dump and debug methods ---               186   // --- Dump and debug methods ---
187                                                   187 
188     virtual void DumpInfo() const;                188     virtual void DumpInfo() const;
189       // Print out information                    189       // Print out information
190                                                   190 
191     inline void SetVerboseLevel(G4int vLevel);    191     inline void SetVerboseLevel(G4int vLevel);
192     inline G4int GetVerboseLevel() const;         192     inline G4int GetVerboseLevel() const;
193                                                   193 
194     virtual G4bool CheckIt(const G4Track&);       194     virtual G4bool CheckIt(const G4Track&);
195       // CheckIt method for general control in    195       // CheckIt method for general control in debug regime
196                                                   196 
197     inline void ClearDebugFlag();                 197     inline void ClearDebugFlag();
198     inline void SetDebugFlag();                   198     inline void SetDebugFlag();
199     inline G4bool GetDebugFlag() const;           199     inline G4bool GetDebugFlag() const;
200       // CheckIt method is activated if debug     200       // CheckIt method is activated if debug flag is set
201       // and 'G4VERBOSE' is defined               201       // and 'G4VERBOSE' is defined
202                                                   202 
203   protected:                                      203   protected:
204                                                   204 
205     G4Step* UpdateStepInfo(G4Step* Step);         205     G4Step* UpdateStepInfo(G4Step* Step);
206       // Update the G4Step specific attributes    206       // Update the G4Step specific attributes
207       // (i.e. SteppingControl, LocalEnergyDep    207       // (i.e. SteppingControl, LocalEnergyDeposit, and TrueStepLength)
208                                                   208 
209     inline void InitializeLocalEnergyDeposit()    209     inline void InitializeLocalEnergyDeposit();
210     inline void InitializeSteppingControl();      210     inline void InitializeSteppingControl();
211     inline void InitializeParentWeight(const G    211     inline void InitializeParentWeight(const G4Track&);
212     inline void InitializeStatusChange(const G    212     inline void InitializeStatusChange(const G4Track&);
213     inline void InitializeSecondaries();          213     inline void InitializeSecondaries();
214     inline void InitializeFromStep(const G4Ste    214     inline void InitializeFromStep(const G4Step*);
215                                                   215 
216     inline G4double ComputeBeta(G4double kinEn    216     inline G4double ComputeBeta(G4double kinEnergy); 
217                                                   217 
218     G4bool CheckSecondary(G4Track&);              218     G4bool CheckSecondary(G4Track&);
219       // CheckSecondary method is provided to     219       // CheckSecondary method is provided to control secondary track 
220       // in debug regime                          220       // in debug regime
221                                                   221 
222     G4double GetAccuracyForWarning() const;       222     G4double GetAccuracyForWarning() const;
223     G4double GetAccuracyForException() const;     223     G4double GetAccuracyForException() const;
224                                                   224 
225   protected:                                      225   protected:
226                                                   226 
227     static const G4double accuracyForWarning;     227     static const G4double accuracyForWarning;
228     static const G4double accuracyForException    228     static const G4double accuracyForException;
229     static const G4int maxError;                  229     static const G4int maxError;
230       // accuracy levels                          230       // accuracy levels
231                                                   231 
232     const G4Track* theCurrentTrack = nullptr;     232     const G4Track* theCurrentTrack = nullptr;
233                                                   233 
                                                   >> 234     std::vector<G4Track*> theListOfSecondaries;
                                                   >> 235       // The vector of secondaries
                                                   >> 236 
234     G4TrackStatus theStatusChange = fAlive;       237     G4TrackStatus theStatusChange = fAlive;
235       // The changed (final) track status of a    238       // The changed (final) track status of a given particle
236                                                   239 
237     G4SteppingControl theSteppingControlFlag =    240     G4SteppingControl theSteppingControlFlag = NormalCondition;
238       // A flag to control stepping manager be    241       // A flag to control stepping manager behavior
239                                                   242 
240     G4double theLocalEnergyDeposit = 0.0;         243     G4double theLocalEnergyDeposit = 0.0;
241       // It represents the part of the energy     244       // It represents the part of the energy lost for discrete
242       // or semi-continuous processes which is    245       // or semi-continuous processes which is due to secondaries
243       // not generated because they would have    246       // not generated because they would have been below their cut
244       // threshold.                               247       // threshold.
245       // The sum of the locally deposited ener    248       // The sum of the locally deposited energy + the delta-energy
246       // coming from the continuous processes     249       // coming from the continuous processes gives the
247       // total energy loss localized in the cu    250       // total energy loss localized in the current Step
248                                                   251 
249     G4double theNonIonizingEnergyDeposit = 0.0    252     G4double theNonIonizingEnergyDeposit = 0.0;
250       // Non-ionizing energu deposit is define    253       // Non-ionizing energu deposit is defined as a part of local
251       // energy deposit, which does not cause     254       // energy deposit, which does not cause ionization of atoms
252                                                   255 
253     G4double theTrueStepLength = 0.0;             256     G4double theTrueStepLength = 0.0;
254       // The value of "True" Step Length          257       // The value of "True" Step Length
255                                                   258 
256     G4double theParentWeight = 1.0;               259     G4double theParentWeight = 1.0;
257       // Weight ofparent track                    260       // Weight ofparent track
258                                                   261 
259     G4double theParentGlobalTime = 0.0;           262     G4double theParentGlobalTime = 0.0;
260       // Global time of the parent.               263       // Global time of the parent.
261       // This is used only for checking           264       // This is used only for checking
262                                                   265 
263     G4int theNumberOfSecondaries = 0;             266     G4int theNumberOfSecondaries = 0;
264       // The total number of secondaries produ    267       // The total number of secondaries produced by each process.
265                                                   268 
266     G4int theSizeOftheListOfSecondaries = 0;      269     G4int theSizeOftheListOfSecondaries = 0;
267       // TheSizeOftheListOfSecondaries;           270       // TheSizeOftheListOfSecondaries;
268                                                   271 
269     G4int verboseLevel = 1;                       272     G4int verboseLevel = 1;
270       // The Verbose level                        273       // The Verbose level
271                                                   274 
272     G4int nError = 0;                             275     G4int nError = 0;
273                                                   276 
274     G4bool theFirstStepInVolume = false;          277     G4bool theFirstStepInVolume = false;
275     G4bool theLastStepInVolume = false;           278     G4bool theLastStepInVolume = false;
276       // Flag for initial/last step               279       // Flag for initial/last step
277                                                   280 
278     G4bool isParentWeightProposed = false;        281     G4bool isParentWeightProposed = false;
279       // Flag for Weight of parent track          282       // Flag for Weight of parent track
280     G4bool fSetSecondaryWeightByProcess = fals    283     G4bool fSetSecondaryWeightByProcess = false;
281       // Flag for setting weight of secondarie    284       // Flag for setting weight of secondaries
282                                                   285 
283     G4bool debugFlag = false;                     286     G4bool debugFlag = false;
284                                                << 
285     std::vector<G4Track*> theListOfSecondaries << 
286       // The vector of secondaries             << 
287 };                                                287 };
288                                                   288 
289 #include "G4VParticleChange.icc"                  289 #include "G4VParticleChange.icc"
290                                                   290 
291 #endif                                            291 #endif
292                                                   292