Warning, file /include/Geant4/G4MCTSimVertex.hh 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
0030 #ifndef G4MCTSIMVERTEX_HH
0031 #define G4MCTSIMVERTEX_HH 1
0032
0033 #include <iostream>
0034 #include <vector>
0035 #include <string>
0036
0037 #include "G4Types.hh"
0038 #include "G4ThreeVector.hh"
0039 #include "G4MCTSimParticle.hh"
0040
0041 class G4MCTSimVertex
0042 {
0043 public:
0044
0045 G4MCTSimVertex();
0046 G4MCTSimVertex(const G4ThreeVector& x, G4double t);
0047 G4MCTSimVertex(const G4ThreeVector& x, G4double t,
0048 const G4String& vname, G4int ncopy,
0049 const G4String& pname);
0050 ~G4MCTSimVertex();
0051
0052 inline G4MCTSimVertex(const G4MCTSimVertex& right);
0053 inline G4MCTSimVertex& operator=(const G4MCTSimVertex& right);
0054
0055
0056 inline void SetID(G4int i);
0057 inline G4int GetID() const;
0058
0059 inline void SetPosition(const G4ThreeVector& x);
0060 inline const G4ThreeVector& GetPosition() const;
0061
0062 inline void SetTime(G4double t);
0063 inline G4double GetTime() const;
0064
0065 inline void SetVolumeName(const G4String& vname);
0066 inline const G4String& GetVolumeName() const;
0067
0068 inline void SetVolumeNumber(G4int n);
0069 inline G4int GetVolumeNumber() const;
0070
0071 inline void SetCreatorProcessName(const G4String& pname);
0072 inline const G4String& GetCreatorProcessName() const;
0073
0074 inline void SetStoreFlag(G4bool q);
0075 inline G4bool GetStoreFlag() const;
0076
0077 inline void SetInParticle(const G4MCTSimParticle* in);
0078 inline void SetInParticle(G4int in);
0079 inline G4int GetInParticleTrackID() const;
0080
0081 inline G4int GetNofOutParticles() const;
0082 inline G4int AddOutParticle(const G4MCTSimParticle* out);
0083 inline G4int AddOutParticle(G4int out);
0084 inline G4int GetOutParticleTrackID(G4int i) const;
0085
0086 void Print(std::ostream& ostr = std::cout) const;
0087
0088 private:
0089
0090 G4int inParticleTrackID = 0;
0091 std::vector<G4int> outParticleTrackIDList;
0092
0093 G4String volumeName = "";
0094 G4String creatorProcessName = "none";
0095 G4ThreeVector position;
0096 G4double time = 0.0;
0097 G4int id = -1;
0098 G4int volumeNumber = -1;
0099 G4bool storeFlag = false;
0100 };
0101
0102
0103
0104
0105
0106 inline G4MCTSimVertex::G4MCTSimVertex(const G4MCTSimVertex& right)
0107 {
0108 *this = right;
0109 }
0110
0111 inline G4MCTSimVertex& G4MCTSimVertex::operator=(
0112 const G4MCTSimVertex& right)
0113 {
0114 inParticleTrackID = right.inParticleTrackID;
0115 outParticleTrackIDList = right.outParticleTrackIDList;
0116
0117 id = right.id;
0118 position = right.position;
0119 time = right.time;
0120 volumeName = right.volumeName;
0121 volumeNumber = right.volumeNumber;
0122 creatorProcessName = right.creatorProcessName;
0123
0124 return *this;
0125 }
0126
0127 inline void G4MCTSimVertex::SetID(G4int i)
0128 {
0129 id = i;
0130 }
0131
0132 inline G4int G4MCTSimVertex::GetID() const
0133 {
0134 return id;
0135 }
0136
0137 inline void G4MCTSimVertex::SetPosition(const G4ThreeVector& x)
0138 {
0139 position = x;
0140 }
0141
0142 inline const G4ThreeVector& G4MCTSimVertex::GetPosition() const
0143 {
0144 return position;
0145 }
0146
0147 inline void G4MCTSimVertex::SetTime(G4double t)
0148 {
0149 time = t;
0150 }
0151
0152 inline G4double G4MCTSimVertex::GetTime() const
0153 {
0154 return time;
0155 }
0156
0157 inline void G4MCTSimVertex::SetVolumeName(const G4String& vname)
0158 {
0159 volumeName = vname;
0160 }
0161
0162 inline const G4String& G4MCTSimVertex::GetVolumeName() const
0163 {
0164 return volumeName;
0165 }
0166
0167 inline void G4MCTSimVertex::SetVolumeNumber(G4int n)
0168 {
0169 volumeNumber = n;
0170 }
0171
0172 inline G4int G4MCTSimVertex::GetVolumeNumber() const
0173 {
0174 return volumeNumber;
0175 }
0176
0177 inline void G4MCTSimVertex::SetCreatorProcessName(const G4String& pname)
0178 {
0179 creatorProcessName = pname;
0180 }
0181
0182 inline const G4String& G4MCTSimVertex::GetCreatorProcessName() const
0183 {
0184 return creatorProcessName;
0185 }
0186
0187 inline void G4MCTSimVertex::SetStoreFlag(G4bool q)
0188 {
0189 storeFlag = q;
0190 }
0191
0192 inline G4bool G4MCTSimVertex::GetStoreFlag() const
0193 {
0194 return storeFlag;
0195 }
0196
0197 inline void G4MCTSimVertex::SetInParticle(const G4MCTSimParticle* in)
0198 {
0199 inParticleTrackID = in->GetTrackID();
0200 }
0201
0202 inline void G4MCTSimVertex::SetInParticle(G4int in)
0203 {
0204 inParticleTrackID = in;
0205 }
0206
0207 inline G4int G4MCTSimVertex::GetInParticleTrackID() const
0208 {
0209 return inParticleTrackID;
0210 }
0211
0212 inline G4int G4MCTSimVertex::GetNofOutParticles() const
0213 {
0214 return (G4int)outParticleTrackIDList.size();
0215 }
0216
0217 inline G4int G4MCTSimVertex::AddOutParticle(const G4MCTSimParticle* out)
0218 {
0219 outParticleTrackIDList.push_back(out->GetTrackID());
0220 return (G4int)outParticleTrackIDList.size();
0221 }
0222
0223 inline G4int G4MCTSimVertex::AddOutParticle(G4int out)
0224 {
0225 outParticleTrackIDList.push_back(out);
0226 return (G4int)outParticleTrackIDList.size();
0227 }
0228
0229 inline G4int G4MCTSimVertex::GetOutParticleTrackID(G4int i) const
0230 {
0231 G4int size = (G4int)outParticleTrackIDList.size();
0232 if(i >= 0 && i < size)
0233 return outParticleTrackIDList[i];
0234 else
0235 return 0;
0236 }
0237
0238 #endif