4 // Particle gun that can be interactively composed by a user.
6 #ifndef ALI_PARTICLE_GUN_H
7 #define ALI_PARTICLE_GUN_H
9 #include <G4VPrimaryGenerator.hh>
12 #include <g4rw/tpordvec.h>
15 class AliParticleGunMessenger;
19 class AliParticleGun : public G4VPrimaryGenerator
21 typedef G4RWTPtrOrderedVector<AliGunParticle> AliGunParticleVector;
25 AliParticleGun(const AliParticleGun &right);
26 virtual ~AliParticleGun();
29 AliParticleGun& operator=(const AliParticleGun& right);
32 void AddParticle(AliGunParticle* particle);
33 void RemoveParticle(G4int iParticle);
34 virtual void GeneratePrimaryVertex(G4Event* evt);
39 G4int GetNofGunParticles() const;
43 AliGunParticleVector fGunParticlesVector; //vector of AliGunParticle
44 AliParticleGunMessenger* fMessenger; //messenger
49 inline G4int AliParticleGun::GetNofGunParticles() const
50 { return fGunParticlesVector.entries(); }
52 #endif //ALI_PARTICLE_GUN_H