40 :PDGcode(0),G4code(0),
41 direction(0.,0.,1.),kinE(0.),
42 nextParticle(0),daughterParticle(0),trackID(-1),
43 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
44 Weight0(1.0),properTime(0.0),userInfo(0)
49 direction(0.,0.,1.),kinE(0.),
50 nextParticle(0),daughterParticle(0),trackID(-1),
51 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
52 Weight0(1.0),properTime(0.0),userInfo(0)
64 direction(0.,0.,1.),kinE(0.),
65 nextParticle(0),daughterParticle(0),trackID(-1),
66 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
67 Weight0(1.0),properTime(0.0),userInfo(0)
80 direction(0.,0.,1.),kinE(0.),
81 nextParticle(0),daughterParticle(0),trackID(-1),
82 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
83 Weight0(1.0),properTime(0.0),userInfo(0)
94 :PDGcode(0),G4code(Gcode),
95 direction(0.,0.,1.),kinE(0.),
96 nextParticle(0),daughterParticle(0),trackID(-1),
97 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
98 Weight0(1.0),properTime(0.0),userInfo(0)
109 :PDGcode(0),G4code(Gcode),
110 direction(0.,0.,1.),kinE(0.),
111 nextParticle(0),daughterParticle(0),trackID(-1),
112 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
113 Weight0(1.0),properTime(0.0),userInfo(0)
125 :PDGcode(0),G4code(Gcode),
126 direction(0.,0.,1.),kinE(0.),
127 nextParticle(0),daughterParticle(0),trackID(-1),
128 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
129 Weight0(1.0),properTime(0.0),userInfo(0)
140 :PDGcode(0),G4code(0),
141 direction(0.,0.,1.),kinE(0.),
142 nextParticle(0),daughterParticle(0),trackID(-1),
143 mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
144 Weight0(1.0),properTime(0.0),userInfo(0)
151 if (
this != &right) {
152 PDGcode = right.PDGcode;
153 G4code = right.G4code;
154 direction = right.direction;
156 if (nextParticle !=0)
delete nextParticle;
157 if ( right.nextParticle ==0 ){
162 if (daughterParticle !=0)
delete daughterParticle;
163 if ( right.daughterParticle ==0 ){
164 daughterParticle = 0;
168 trackID = right.trackID;
170 charge = right.charge;
174 Weight0 = right.Weight0;
175 properTime = right.properTime;
185 {
return (
this==&right); }
188 {
return (
this!=&right); }
192 if(nextParticle != 0){
196 if(daughterParticle != 0){
197 delete daughterParticle;
208 if ((mass<0.)&&(G4code!=0)){
211 G4double pmom = std::sqrt(px*px+py*py+pz*pz);
213 direction.
setX(px/pmom);
214 direction.
setY(py/pmom);
215 direction.
setZ(pz/pmom);
217 kinE = std::sqrt(px*px+py*py+pz*pz+mass*mass)-mass;
222 G4double pmom = std::sqrt(px*px+py*py+pz*pz);
224 direction.
setX(px/pmom);
225 direction.
setY(py/pmom);
226 direction.
setZ(pz/pmom);
230 mass = std::sqrt(mas2);
235 E = std::sqrt(pmom*pmom+mass*mass);
262 G4cout <<
"==== PDGcode " << PDGcode <<
" Particle name ";
278 G4cout <<
" Polarization ( "
285 G4cout <<
" PreAssigned proper decay time : " << properTime/
ns <<
" [ns] " <<
G4endl;
287 if(userInfo != 0) { userInfo->
Print(); }
288 if(daughterParticle != 0) {
290 daughterParticle->
Print();
292 if(nextParticle != 0) {
293 nextParticle->
Print();
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
virtual ~G4PrimaryParticle()
G4int GetPDGEncoding() const
G4double GetTotalMomentum() const
const G4String & GetParticleName() const
void SetPDGcode(G4int Pcode)
G4GLOB_DLL std::ostream G4cout
static constexpr double eplus
virtual void Print() const =0
G4PART_DLL G4ThreadLocal G4Allocator< G4PrimaryParticle > * aPrimaryParticleAllocator
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
void SetParticleDefinition(const G4ParticleDefinition *pdef)
static constexpr double GeV
G4int operator==(const G4PrimaryParticle &right) const
void Set4Momentum(G4double px, G4double py, G4double pz, G4double E)
G4PrimaryParticle & operator=(const G4PrimaryParticle &right)
G4double GetPDGCharge() const
void SetMomentum(G4double px, G4double py, G4double pz)
G4int operator!=(const G4PrimaryParticle &right) const