]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliParticleGun.h
Removal of useless dependencies via forward declarations
[u/mrichter/AliRoot.git] / AliGeant4 / AliParticleGun.h
1 // $Id$
2 // Category: event
3 //
4 // Particle gun that can be interactively composed by a user.
5
6 #ifndef ALI_PARTICLE_GUN_H
7 #define ALI_PARTICLE_GUN_H
8
9 #include "AliGunParticle.h"
10
11 #include <G4VPrimaryGenerator.hh>
12 #include <G4PrimaryVertex.hh>
13 #include <globals.hh>
14
15 #include <g4rw/tpordvec.h>
16
17 class G4Event;
18 class AliParticleGunMessenger;
19
20 class AliParticleGun : public G4VPrimaryGenerator
21 {
22   typedef G4RWTPtrOrderedVector<AliGunParticle>  AliGunParticleVector;
23
24   public:
25      AliParticleGun();
26      AliParticleGun(const AliParticleGun &right);
27      virtual ~AliParticleGun();
28
29      // operators
30      AliParticleGun& operator=(const AliParticleGun& right);
31
32      // methods
33      void AddParticle(AliGunParticle* particle);
34      void RemoveParticle(G4int iParticle);
35      virtual void GeneratePrimaryVertex(G4Event* evt);
36      void Reset();
37      void List();
38
39      // get methods
40      G4int GetNofGunParticles() const;
41   
42   private:
43      // data members
44      AliGunParticleVector      fGunParticlesVector; //vector of AliGunParticle
45      AliParticleGunMessenger*  fMessenger;          //messenger
46 };
47
48 // inline methods
49
50 inline G4int AliParticleGun::GetNofGunParticles() const
51 { return fGunParticlesVector.entries(); }
52
53 #endif //ALI_PARTICLE_GUN_H
54
55
56
57
58
59
60