4 // Author: I. Hrivnacova
6 // Class AliParticleGun
7 // --------------------
8 // Particle gun that can be interactively composed by a user.
10 #ifndef ALI_PARTICLE_GUN_H
11 #define ALI_PARTICLE_GUN_H
13 #include <G4VPrimaryGenerator.hh>
15 #include <g4std/vector>
17 #include "AliParticleGunMessenger.h"
23 class AliParticleGun : public G4VPrimaryGenerator
25 typedef G4std::vector<AliGunParticle*> GunParticleVector;
26 typedef GunParticleVector::iterator GunParticleIterator;
27 typedef GunParticleVector::const_iterator GunParticleConstIterator;
31 AliParticleGun(const AliParticleGun &right);
32 virtual ~AliParticleGun();
35 AliParticleGun& operator=(const AliParticleGun& right);
38 void AddParticle(AliGunParticle* particle);
39 void RemoveParticle(G4int iParticle);
40 virtual void GeneratePrimaryVertex(G4Event* evt);
45 G4int GetNofGunParticles() const;
49 GunParticleVector fGunParticleVector; //vector of AliGunParticle
50 AliParticleGunMessenger fMessenger; //messenger
55 inline G4int AliParticleGun::GetNofGunParticles() const
56 { return fGunParticleVector.size(); }
58 #endif //ALI_PARTICLE_GUN_H