45#ifndef MOLECULEGUN_HH_
46#define MOLECULEGUN_HH_
100template<
typename TYPE>
122template<
typename TYPE>
128 output->fTime =
fTime;
199 const std::vector<G4shared_ptr<G4MoleculeShoot> >&
216 std::vector<G4shared_ptr<G4MoleculeShoot> >
fShoots;
void AddMoleculeInCMRepresentation(std::size_t n, const G4String &moleculeName, G4double time=0)
std::map< G4String, G4int > NameNumber
void AddMoleculeShoot(G4shared_ptr< G4MoleculeShoot >)
G4MoleculeGunMessenger * fpMessenger
void DefineTracks() override
void AddMoleculesRandomPositionInBox(std::size_t n, const G4String &moleculeName, const G4ThreeVector &boxCenter, const G4ThreeVector &boxExtension, G4double time=0)
std::vector< G4shared_ptr< G4MoleculeShoot > > fShoots
const std::vector< G4shared_ptr< G4MoleculeShoot > > & GetMoleculeShoot()
void AddMolecule(const G4String &moleculeName, const G4ThreeVector &position, G4double time=0)
void BuildAndPushTrack(const G4String &name, const G4ThreeVector &position, G4double time=0)
void GetNameAndNumber(NameNumber &)
~G4MoleculeGun() override
void AddNMolecules(std::size_t n, const G4String &moleculeName, const G4ThreeVector &position, G4double time=0)
virtual void Shoot(G4MoleculeGun *)=0
G4shared_ptr< G4MoleculeShoot > ChangeType()
static void RandomPosInBox(const G4ThreeVector &boxSize, G4ThreeVector &output)
virtual ~G4MoleculeShoot()
~TG4MoleculeShoot() override=default
void ShootAtRandomPosition(G4MoleculeGun *)
void ShootAtFixedPosition(G4MoleculeGun *)
void Shoot(G4MoleculeGun *) override