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 <G4ParticleDefinition.hh>
12 #include <G4ThreeVector.hh>
19 AliGunParticle(G4ParticleDefinition* particleDef, G4ParticleMomentum momentum,
20 G4ThreeVector position, G4double time, G4ThreeVector polarization );
21 AliGunParticle( G4ParticleDefinition* particleDef, G4ParticleMomentum momentumDir,
22 G4double kinEnergy, G4ThreeVector position, G4double time,
23 G4ThreeVector polarization );
24 AliGunParticle(const AliGunParticle& right);
28 AliGunParticle& operator=(const AliGunParticle& right);
29 G4int operator==(const AliGunParticle& right) const;
30 G4int operator!=(const AliGunParticle& right) const;
36 void SetParticleDefinition(G4ParticleDefinition* particleDef);
37 void SetMomentum(G4ParticleMomentum momentum);
38 void SetPosition(G4ThreeVector position);
39 void SetTime(G4double time);
40 void SetPolarization(G4ThreeVector polarization);
41 void SetMomentumDirection(G4ParticleMomentum momentumDir);
42 void SetKineticEnergy(G4double kinEnergy);
45 G4ParticleDefinition* GetParticleDefinition() const;
46 G4ParticleMomentum GetMomentum() const;
47 G4ThreeVector GetPosition() const;
48 G4double GetTime() const;
49 G4ThreeVector GetPolarization() const;
50 G4ParticleMomentum GetMomentumDirection() const;
51 G4double GetKineticEnergy() const;
55 G4ParticleDefinition* fParticleDefinition; //G4ParticleDefinition
56 G4ParticleMomentum fParticleMomentum; //G4ParticleMomentum
57 G4ThreeVector fPosition; //position
58 G4double fTime; //time
59 G4ThreeVector fPolarization; //polarization
64 inline void AliGunParticle::SetParticleDefinition(G4ParticleDefinition* particleDef)
65 { fParticleDefinition = particleDef; }
67 inline void AliGunParticle::SetMomentum(G4ParticleMomentum momentum)
68 { fParticleMomentum = momentum; }
70 inline void AliGunParticle::SetPosition(G4ThreeVector position)
71 { fPosition = position; }
73 inline void AliGunParticle::SetTime(G4double time)
76 inline void AliGunParticle::SetPolarization(G4ThreeVector polarization)
77 { fPolarization = polarization; }
79 inline void AliGunParticle::SetMomentumDirection(G4ParticleMomentum momentumDir)
80 { fParticleMomentum = fParticleMomentum.mag()*momentumDir.unit(); }
82 inline G4ParticleDefinition* AliGunParticle::GetParticleDefinition() const
83 { return fParticleDefinition; }
85 inline G4ParticleMomentum AliGunParticle::GetMomentum() const
86 { return fParticleMomentum; }
88 inline G4ThreeVector AliGunParticle::GetPosition() const
91 inline G4double AliGunParticle::GetTime() const
94 inline G4ThreeVector AliGunParticle::GetPolarization() const
95 { return fPolarization; }
97 inline G4ParticleMomentum AliGunParticle::GetMomentumDirection() const
98 { return fParticleMomentum.unit(); }
100 #endif //ALI_GUN_PARTICLE_H