]> git.uio.no Git - u/mrichter/AliRoot.git/blame - AliGeant4/AliGunParticle.h
corrected ordering of libraries (required by HP)
[u/mrichter/AliRoot.git] / AliGeant4 / AliGunParticle.h
CommitLineData
676fb573 1// $Id$
2// Category: event
3//
4// Data type class that stores properties of a gun particle.
5// Used in AliParticleGun.
6
7#ifndef ALI_GUN_PARTICLE_H
8#define ALI_GUN_PARTICLE_H
9
10#include <G4ParticleMomentum.hh>
11#include <G4ParticleDefinition.hh>
12#include <G4ThreeVector.hh>
13#include <globals.hh>
14
15class AliGunParticle
16{
17 public:
18 AliGunParticle();
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);
25 ~AliGunParticle();
26
27 // operators
28 AliGunParticle& operator=(const AliGunParticle& right);
29 G4int operator==(const AliGunParticle& right) const;
30 G4int operator!=(const AliGunParticle& right) const;
31
32 // methods
33 void Print() const;
34
35 // set methods
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);
43
44 // get methods
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;
52
53 private:
54 // data members
55 G4ParticleDefinition* fParticleDefinition; //G4ParticleDefinition
56 G4ParticleMomentum fParticleMomentum; //G4ParticleMomentum
57 G4ThreeVector fPosition; //position
58 G4double fTime; //time
59 G4ThreeVector fPolarization; //polarization
60};
61
62// inline methods
63
64inline void AliGunParticle::SetParticleDefinition(G4ParticleDefinition* particleDef)
65{ fParticleDefinition = particleDef; }
66
67inline void AliGunParticle::SetMomentum(G4ParticleMomentum momentum)
68{ fParticleMomentum = momentum; }
69
70inline void AliGunParticle::SetPosition(G4ThreeVector position)
71{ fPosition = position; }
72
73inline void AliGunParticle::SetTime(G4double time)
74{ fTime = time; }
75
76inline void AliGunParticle::SetPolarization(G4ThreeVector polarization)
77{ fPolarization = polarization; }
78
79inline void AliGunParticle::SetMomentumDirection(G4ParticleMomentum momentumDir)
80{ fParticleMomentum = fParticleMomentum.mag()*momentumDir.unit(); }
81
82inline G4ParticleDefinition* AliGunParticle::GetParticleDefinition() const
83{ return fParticleDefinition; }
84
85inline G4ParticleMomentum AliGunParticle::GetMomentum() const
86{ return fParticleMomentum; }
87
88inline G4ThreeVector AliGunParticle::GetPosition() const
89{ return fPosition; }
90
91inline G4double AliGunParticle::GetTime() const
92{ return fTime; }
93
94inline G4ThreeVector AliGunParticle::GetPolarization() const
95{ return fPolarization; }
96
97inline G4ParticleMomentum AliGunParticle::GetMomentumDirection() const
98{ return fParticleMomentum.unit(); }
99
100#endif //ALI_GUN_PARTICLE_H
101
102