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 "AliVerbose.h"
14 #include "AliParticleGunMessenger.h"
16 #include <G4VPrimaryGenerator.hh>
18 #include <g4std/vector>
25 class AliParticleGun : public G4VPrimaryGenerator,
28 typedef G4std::vector<AliGunParticle*> GunParticleVector;
29 typedef GunParticleVector::iterator GunParticleIterator;
30 typedef GunParticleVector::const_iterator GunParticleConstIterator;
34 AliParticleGun(const AliParticleGun &right);
35 virtual ~AliParticleGun();
38 AliParticleGun& operator=(const AliParticleGun& right);
41 void AddParticle(AliGunParticle* particle);
42 void RemoveParticle(G4int iParticle);
43 virtual void GeneratePrimaryVertex(G4Event* evt);
48 G4int GetNofGunParticles() const;
52 GunParticleVector fGunParticleVector; //vector of AliGunParticle
53 AliParticleGunMessenger fMessenger; //messenger
58 inline G4int AliParticleGun::GetNofGunParticles() const
59 { return fGunParticleVector.size(); }
61 #endif //ALI_PARTICLE_GUN_H