]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliParticleGun.h
This commit was generated by cvs2svn to compensate for changes in r1459,
[u/mrichter/AliRoot.git] / AliGeant4 / AliParticleGun.h
diff --git a/AliGeant4/AliParticleGun.h b/AliGeant4/AliParticleGun.h
new file mode 100644 (file)
index 0000000..df96faa
--- /dev/null
@@ -0,0 +1,60 @@
+// $Id$
+// Category: event
+//
+// Particle gun that can be interactively composed by a user.
+
+#ifndef ALI_PARTICLE_GUN_H
+#define ALI_PARTICLE_GUN_H
+
+#include "AliGunParticle.h"
+
+#include <G4VPrimaryGenerator.hh>
+#include <G4PrimaryVertex.hh>
+#include <globals.hh>
+
+#include <g4rw/tpordvec.h>
+
+class G4Event;
+class AliParticleGunMessenger;
+
+class AliParticleGun : public G4VPrimaryGenerator
+{
+  typedef G4RWTPtrOrderedVector<AliGunParticle>  AliGunParticleVector;
+
+  public:
+     AliParticleGun();
+     AliParticleGun(const AliParticleGun &right);
+     virtual ~AliParticleGun();
+
+     // operators
+     AliParticleGun& operator=(const AliParticleGun& right);
+
+     // methods
+     void AddParticle(AliGunParticle* particle);
+     void RemoveParticle(G4int iParticle);
+     virtual void GeneratePrimaryVertex(G4Event* evt);
+     void Reset();
+     void List();
+
+     // get methods
+     G4int GetNofGunParticles() const;
+  
+  private:
+     // data members
+     AliGunParticleVector      fGunParticlesVector; //vector of AliGunParticle
+     AliParticleGunMessenger*  fMessenger;          //messenger
+};
+
+// inline methods
+
+inline G4int AliParticleGun::GetNofGunParticles() const
+{ return fGunParticlesVector.entries(); }
+
+#endif //ALI_PARTICLE_GUN_H
+
+
+
+
+
+
+