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 "AliGunParticle.h"
11 #include <G4VPrimaryGenerator.hh>
12 #include <G4PrimaryVertex.hh>
15 #include <g4rw/tpordvec.h>
18 class AliParticleGunMessenger;
20 class AliParticleGun : public G4VPrimaryGenerator
22 typedef G4RWTPtrOrderedVector<AliGunParticle> AliGunParticleVector;
26 AliParticleGun(const AliParticleGun &right);
27 virtual ~AliParticleGun();
30 AliParticleGun& operator=(const AliParticleGun& right);
33 void AddParticle(AliGunParticle* particle);
34 void RemoveParticle(G4int iParticle);
35 virtual void GeneratePrimaryVertex(G4Event* evt);
40 G4int GetNofGunParticles() const;
44 AliGunParticleVector fGunParticlesVector; //vector of AliGunParticle
45 AliParticleGunMessenger* fMessenger; //messenger
50 inline G4int AliParticleGun::GetNofGunParticles() const
51 { return fGunParticlesVector.entries(); }
53 #endif //ALI_PARTICLE_GUN_H