]> git.uio.no Git - u/mrichter/AliRoot.git/blame - AliGeant4/AliGunParticle.h
fConfigCmd attribute (command: setConfig) added
[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>
676fb573 11#include <G4ThreeVector.hh>
12#include <globals.hh>
13
c97337f9 14class G4ParticleDefinition;
15
676fb573 16class AliGunParticle
17{
18 public:
19 AliGunParticle();
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);
26 ~AliGunParticle();
27
28 // operators
29 AliGunParticle& operator=(const AliGunParticle& right);
30 G4int operator==(const AliGunParticle& right) const;
31 G4int operator!=(const AliGunParticle& right) const;
32
33 // methods
34 void Print() const;
35
36 // set methods
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);
44
45 // get methods
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;
53
54 private:
55 // data members
56 G4ParticleDefinition* fParticleDefinition; //G4ParticleDefinition
57 G4ParticleMomentum fParticleMomentum; //G4ParticleMomentum
58 G4ThreeVector fPosition; //position
59 G4double fTime; //time
60 G4ThreeVector fPolarization; //polarization
61};
62
63// inline methods
64
65inline void AliGunParticle::SetParticleDefinition(G4ParticleDefinition* particleDef)
66{ fParticleDefinition = particleDef; }
67
68inline void AliGunParticle::SetMomentum(G4ParticleMomentum momentum)
69{ fParticleMomentum = momentum; }
70
71inline void AliGunParticle::SetPosition(G4ThreeVector position)
72{ fPosition = position; }
73
74inline void AliGunParticle::SetTime(G4double time)
75{ fTime = time; }
76
77inline void AliGunParticle::SetPolarization(G4ThreeVector polarization)
78{ fPolarization = polarization; }
79
80inline void AliGunParticle::SetMomentumDirection(G4ParticleMomentum momentumDir)
81{ fParticleMomentum = fParticleMomentum.mag()*momentumDir.unit(); }
82
83inline G4ParticleDefinition* AliGunParticle::GetParticleDefinition() const
84{ return fParticleDefinition; }
85
86inline G4ParticleMomentum AliGunParticle::GetMomentum() const
87{ return fParticleMomentum; }
88
89inline G4ThreeVector AliGunParticle::GetPosition() const
90{ return fPosition; }
91
92inline G4double AliGunParticle::GetTime() const
93{ return fTime; }
94
95inline G4ThreeVector AliGunParticle::GetPolarization() const
96{ return fPolarization; }
97
98inline G4ParticleMomentum AliGunParticle::GetMomentumDirection() const
99{ return fParticleMomentum.unit(); }
100
101#endif //ALI_GUN_PARTICLE_H
102
103