ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticleChangeForDecay.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParticleChangeForDecay.hh
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 
28 //
29 //
30 // ------------------------------------------------------------
31 // GEANT 4 class header file
32 //
33 //
34 // ------------------------------------------------------------
35 // Implemented for the new scheme 23 Mar. 1998 H.Kurahige
36 //
37 // Class Description
38 // This class is a concrete class for ParticleChange which
39 // has functionality for G4Decay.
40 //
41 // This class contains the results after invocation of the decay process.
42 // This includes secondary particles generated by the interaction.
43 // ------------------------------------------------------------
44 #ifndef G4ParticleChangeForDecay_h
45 #define G4ParticleChangeForDecay_h 1
46 
47 #include "globals.hh"
48 #include "G4ios.hh"
49 #include "G4ThreeVector.hh"
50 class G4DynamicParticle;
51 #include "G4VParticleChange.hh"
52 
54 {
55  public:
56  // default constructor
58 
59  // destructor
60  virtual ~G4ParticleChangeForDecay();
61 
62  protected:
63  // hide copy constructor and assignment operaor as protected
66 
67  public:
68  // equal/unequal operator
69  G4bool operator==(const G4ParticleChangeForDecay &right) const;
70  G4bool operator!=(const G4ParticleChangeForDecay &right) const;
71 
72  public: // with description
73  // ----------------------------------------------------
74  // --- the following methods are for updating G4Step -----
75  // Return the pointer to the G4Step after updating the Step information
76  // by using final state information of the track given by a physics
77  // process
78 
79  // !!! No effect for AlongSteyp
80  // virtual G4Step* UpdateStepForAlongStep(G4Step* Step);
81 
82  virtual G4Step* UpdateStepForAtRest(G4Step* Step);
83  virtual G4Step* UpdateStepForPostStep(G4Step* Step);
84 
85  virtual void Initialize(const G4Track&);
86  // Initialize all propoerties by using G4Track information
87 
89  void ProposeLocalTime(G4double t);
90  // Get/Propose the final global/local Time
91  // NOTE: DO NOT INVOKE both methods in a step
92  // Each method affects both local and global time
93 
94  G4double GetGlobalTime(G4double timeDelay=0.0) const;
95  G4double GetLocalTime(G4double timeDelay=0.0) const;
96  // Convert the time delay to the glocbal/local time.
97  // Can get the final global/local Time without argument
98 
99  const G4ThreeVector* GetPolarization() const;
101  void ProposePolarization(const G4ThreeVector& finalPoralization);
102  // Get/Propose the final Polarization vector.
103 
104  public:
105  virtual void DumpInfo() const;
106 
107  protected:
109  // The global time at Initial.
111  // The local time at Initial.
112 
114  // The change of local time of a given particle.
115 
117  // The changed (final) polarization of a given track
118 
119  public:
120  // for Debug
121  virtual G4bool CheckIt(const G4Track&);
122 };
123 
124 inline
126 {
128 }
129 
130 inline
132 {
133  // Convert the time delay to the global time.
134  return theGlobalTime0 + (theTimeChange-theLocalTime0) + timeDelay;
135 }
136 
137 inline
139 {
140  theTimeChange = t;
141 }
142 
143 inline
145 {
146  // Convert the time delay to the local time.
147  return theTimeChange + timeDelay;
148 }
149 
150 inline
152 {
153  return &thePolarizationChange;
154 }
155 
156 inline
158 {
159  thePolarizationChange = finalPoralization;
160 }
161 
162 inline
164  G4double Px,
165  G4double Py,
166  G4double Pz )
167 {
171 }
172 
173 #endif