Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4ParticleChangeForDecay.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28
29//
30//
31// ------------------------------------------------------------
32// GEANT 4 class header file
33//
34//
35// ------------------------------------------------------------
36// Implemented for the new scheme 23 Mar. 1998 H.Kurahige
37//
38// Class Description
39// This class is a concrete class for ParticleChange which
40// has functionality for G4Decay.
41//
42// This class contains the results after invocation of the decay process.
43// This includes secondary particles generated by the interaction.
44// ------------------------------------------------------------
45#ifndef G4ParticleChangeForDecay_h
46#define G4ParticleChangeForDecay_h 1
47
48#include "globals.hh"
49#include "G4ios.hh"
50#include "G4ThreeVector.hh"
52#include "G4VParticleChange.hh"
53
55{
56 public:
57 // default constructor
59
60 // destructor
62
63 protected:
64 // hide copy constructor and assignment operaor as protected
67
68 public:
69 // equal/unequal operator
70 G4bool operator==(const G4ParticleChangeForDecay &right) const;
71 G4bool operator!=(const G4ParticleChangeForDecay &right) const;
72
73 public: // with description
74 // ----------------------------------------------------
75 // --- the following methods are for updating G4Step -----
76 // Return the pointer to the G4Step after updating the Step information
77 // by using final state information of the track given by a physics
78 // process
79
80 // !!! No effect for AlongSteyp
81 // virtual G4Step* UpdateStepForAlongStep(G4Step* Step);
82
83 virtual G4Step* UpdateStepForAtRest(G4Step* Step);
84 virtual G4Step* UpdateStepForPostStep(G4Step* Step);
85
86 virtual void Initialize(const G4Track&);
87 // Initialize all propoerties by using G4Track information
88
91 // Get/Propose the final global/local Time
92 // NOTE: DO NOT INVOKE both methods in a step
93 // Each method affects both local and global time
94
95 G4double GetGlobalTime(G4double timeDelay=0.0) const;
96 G4double GetLocalTime(G4double timeDelay=0.0) const;
97 // Convert the time delay to the glocbal/local time.
98 // Can get the final global/local Time without argument
99
100 const G4ThreeVector* GetPolarization() const;
102 void ProposePolarization(const G4ThreeVector& finalPoralization);
103 // Get/Propose the final Polarization vector.
104
105 public:
106 virtual void DumpInfo() const;
107
108 protected:
110 // The global time at Initial.
112 // The local time at Initial.
113
115 // The change of local time of a given particle.
116
118 // The changed (final) polarization of a given track
119
120 public:
121 // for Debug
122 virtual G4bool CheckIt(const G4Track&);
123};
124
125inline
127{
129}
130
131inline
133{
134 // Convert the time delay to the global time.
135 return theGlobalTime0 + (theTimeChange-theLocalTime0) + timeDelay;
136}
137
138inline
140{
141 theTimeChange = t;
142}
143
144inline
146{
147 // Convert the time delay to the local time.
148 return theTimeChange + timeDelay;
149}
150
151inline
153{
154 return &thePolarizationChange;
155}
156
157inline
159{
160 thePolarizationChange = finalPoralization;
161}
162
163inline
165 G4double Px,
166 G4double Py,
167 G4double Pz )
168{
172}
173
174#endif
double G4double
Definition: G4Types.hh:64
bool G4bool
Definition: G4Types.hh:67
void setY(double)
void setZ(double)
void setX(double)
void ProposePolarization(G4double Px, G4double Py, G4double Pz)
virtual G4Step * UpdateStepForPostStep(G4Step *Step)
const G4ThreeVector * GetPolarization() const
G4double GetGlobalTime(G4double timeDelay=0.0) const
G4double GetLocalTime(G4double timeDelay=0.0) const
G4ParticleChangeForDecay & operator=(const G4ParticleChangeForDecay &right)
G4bool operator==(const G4ParticleChangeForDecay &right) const
virtual G4Step * UpdateStepForAtRest(G4Step *Step)
virtual void Initialize(const G4Track &)
virtual G4bool CheckIt(const G4Track &)
G4bool operator!=(const G4ParticleChangeForDecay &right) const
Definition: G4Step.hh:78