4 // Data type class that stores properties of a gun particle.
5 // Used in AliParticleGun.
7 #ifndef ALI_GUN_PARTICLE_H
8 #define ALI_GUN_PARTICLE_H
10 #include <G4ParticleMomentum.hh>
11 #include <G4ThreeVector.hh>
14 class G4ParticleDefinition;
20 AliGunParticle(G4ParticleDefinition* particleDef, G4ParticleMomentum momentum,
21 G4ThreeVector position, G4double time, G4ThreeVector polarization );
22 AliGunParticle( G4ParticleDefinition* particleDef, G4ParticleMomentum momentumDir,
23 G4double kinEnergy, G4ThreeVector position, G4double time,
24 G4ThreeVector polarization );
25 AliGunParticle(const AliGunParticle& right);
29 AliGunParticle& operator=(const AliGunParticle& right);
30 G4int operator==(const AliGunParticle& right) const;
31 G4int operator!=(const AliGunParticle& right) const;
37 void SetParticleDefinition(G4ParticleDefinition* particleDef);
38 void SetMomentum(G4ParticleMomentum momentum);
39 void SetPosition(G4ThreeVector position);
40 void SetTime(G4double time);
41 void SetPolarization(G4ThreeVector polarization);
42 void SetMomentumDirection(G4ParticleMomentum momentumDir);
43 void SetKineticEnergy(G4double kinEnergy);
46 G4ParticleDefinition* GetParticleDefinition() const;
47 G4ParticleMomentum GetMomentum() const;
48 G4ThreeVector GetPosition() const;
49 G4double GetTime() const;
50 G4ThreeVector GetPolarization() const;
51 G4ParticleMomentum GetMomentumDirection() const;
52 G4double GetKineticEnergy() const;
56 G4ParticleDefinition* fParticleDefinition; //G4ParticleDefinition
57 G4ParticleMomentum fParticleMomentum; //G4ParticleMomentum
58 G4ThreeVector fPosition; //position
59 G4double fTime; //time
60 G4ThreeVector fPolarization; //polarization
65 inline void AliGunParticle::SetParticleDefinition(G4ParticleDefinition* particleDef)
66 { fParticleDefinition = particleDef; }
68 inline void AliGunParticle::SetMomentum(G4ParticleMomentum momentum)
69 { fParticleMomentum = momentum; }
71 inline void AliGunParticle::SetPosition(G4ThreeVector position)
72 { fPosition = position; }
74 inline void AliGunParticle::SetTime(G4double time)
77 inline void AliGunParticle::SetPolarization(G4ThreeVector polarization)
78 { fPolarization = polarization; }
80 inline void AliGunParticle::SetMomentumDirection(G4ParticleMomentum momentumDir)
81 { fParticleMomentum = fParticleMomentum.mag()*momentumDir.unit(); }
83 inline G4ParticleDefinition* AliGunParticle::GetParticleDefinition() const
84 { return fParticleDefinition; }
86 inline G4ParticleMomentum AliGunParticle::GetMomentum() const
87 { return fParticleMomentum; }
89 inline G4ThreeVector AliGunParticle::GetPosition() const
92 inline G4double AliGunParticle::GetTime() const
95 inline G4ThreeVector AliGunParticle::GetPolarization() const
96 { return fPolarization; }
98 inline G4ParticleMomentum AliGunParticle::GetMomentumDirection() const
99 { return fParticleMomentum.unit(); }
101 #endif //ALI_GUN_PARTICLE_H