Warning, file /geant4/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #include "RE01TrackInformation.hh"
0030
0031 #include "G4SystemOfUnits.hh"
0032 #include "G4ios.hh"
0033
0034 G4ThreadLocal G4Allocator<RE01TrackInformation>* aTrackInformationAllocator = 0;
0035
0036
0037 RE01TrackInformation::RE01TrackInformation() : G4VUserTrackInformation()
0038 {
0039 fOriginalTrackID = 0;
0040 fParticleDefinition = 0;
0041 fOriginalPosition = G4ThreeVector(0., 0., 0.);
0042 fOriginalMomentum = G4ThreeVector(0., 0., 0.);
0043 fOriginalEnergy = 0.;
0044 fOriginalTime = 0.;
0045 fTrackingStatus = 1;
0046 fSourceTrackID = -1;
0047 fSourceDefinition = 0;
0048 fSourcePosition = G4ThreeVector(0., 0., 0.);
0049 fSourceMomentum = G4ThreeVector(0., 0., 0.);
0050 fSourceEnergy = 0.;
0051 fSourceTime = 0.;
0052 fSuspendedStepID = -1;
0053 }
0054
0055
0056 RE01TrackInformation::RE01TrackInformation(const G4Track* aTrack) : G4VUserTrackInformation()
0057 {
0058 fOriginalTrackID = aTrack->GetTrackID();
0059 fParticleDefinition = aTrack->GetDefinition();
0060 fOriginalPosition = aTrack->GetPosition();
0061 fOriginalMomentum = aTrack->GetMomentum();
0062 fOriginalEnergy = aTrack->GetTotalEnergy();
0063 fOriginalTime = aTrack->GetGlobalTime();
0064 fTrackingStatus = 1;
0065 fSourceTrackID = -1;
0066 fSourceDefinition = 0;
0067 fSourcePosition = G4ThreeVector(0., 0., 0.);
0068 fSourceMomentum = G4ThreeVector(0., 0., 0.);
0069 fSourceEnergy = 0.;
0070 fSourceTime = 0.;
0071 fSuspendedStepID = -1;
0072 }
0073
0074
0075 RE01TrackInformation ::RE01TrackInformation(const RE01TrackInformation* aTrackInfo)
0076 : G4VUserTrackInformation()
0077 {
0078 fOriginalTrackID = aTrackInfo->fOriginalTrackID;
0079 fParticleDefinition = aTrackInfo->fParticleDefinition;
0080 fOriginalPosition = aTrackInfo->fOriginalPosition;
0081 fOriginalMomentum = aTrackInfo->fOriginalMomentum;
0082 fOriginalEnergy = aTrackInfo->fOriginalEnergy;
0083 fOriginalTime = aTrackInfo->fOriginalTime;
0084 fTrackingStatus = aTrackInfo->fTrackingStatus;
0085 fSourceTrackID = aTrackInfo->fSourceTrackID;
0086 fSourceDefinition = aTrackInfo->fSourceDefinition;
0087 fSourcePosition = aTrackInfo->fSourcePosition;
0088 fSourceMomentum = aTrackInfo->fSourceMomentum;
0089 fSourceEnergy = aTrackInfo->fSourceEnergy;
0090 fSourceTime = aTrackInfo->fSourceTime;
0091 fSuspendedStepID = -1;
0092 }
0093
0094
0095 RE01TrackInformation::~RE01TrackInformation()
0096 {
0097 ;
0098 }
0099
0100
0101 RE01TrackInformation& RE01TrackInformation ::operator=(const RE01TrackInformation& aTrackInfo)
0102 {
0103 fOriginalTrackID = aTrackInfo.fOriginalTrackID;
0104 fParticleDefinition = aTrackInfo.fParticleDefinition;
0105 fOriginalPosition = aTrackInfo.fOriginalPosition;
0106 fOriginalMomentum = aTrackInfo.fOriginalMomentum;
0107 fOriginalEnergy = aTrackInfo.fOriginalEnergy;
0108 fOriginalTime = aTrackInfo.fOriginalTime;
0109 fTrackingStatus = aTrackInfo.fTrackingStatus;
0110 fSourceTrackID = aTrackInfo.fSourceTrackID;
0111 fSourceDefinition = aTrackInfo.fSourceDefinition;
0112 fSourcePosition = aTrackInfo.fSourcePosition;
0113 fSourceMomentum = aTrackInfo.fSourceMomentum;
0114 fSourceEnergy = aTrackInfo.fSourceEnergy;
0115 fSourceTime = aTrackInfo.fSourceTime;
0116 fSuspendedStepID = -1;
0117
0118 return *this;
0119 }
0120
0121
0122 void RE01TrackInformation::SetSourceTrackInformation(const G4Track* aTrack)
0123 {
0124 fSourceTrackID = aTrack->GetTrackID();
0125 fSourceDefinition = aTrack->GetDefinition();
0126 fSourcePosition = aTrack->GetPosition();
0127 fSourceMomentum = aTrack->GetMomentum();
0128 fSourceEnergy = aTrack->GetTotalEnergy();
0129 fSourceTime = aTrack->GetGlobalTime();
0130 }
0131
0132
0133 void RE01TrackInformation::Print() const
0134 {
0135 G4cout << "Source track ID " << fSourceTrackID << " (" << fSourceDefinition->GetParticleName()
0136 << "," << fSourceEnergy / GeV << "[GeV]) at " << fSourcePosition << G4endl;
0137 G4cout << "Original primary track ID " << fOriginalTrackID << " ("
0138 << fParticleDefinition->GetParticleName() << "," << fOriginalEnergy / GeV << "[GeV])"
0139 << G4endl;
0140 }