From 11e988a5823da9ed6e2370a5949f66b25f9d5e49 Mon Sep 17 00:00:00 2001 From: Markus Frank <markus.frank@cern.ch> Date: Mon, 9 Mar 2015 21:55:27 +0000 Subject: [PATCH] Normalize direction vector to 1 --- DDG4/src/Geant4ParticleGenerator.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/DDG4/src/Geant4ParticleGenerator.cpp b/DDG4/src/Geant4ParticleGenerator.cpp index 2a134b855..338915db1 100644 --- a/DDG4/src/Geant4ParticleGenerator.cpp +++ b/DDG4/src/Geant4ParticleGenerator.cpp @@ -76,7 +76,7 @@ void Geant4ParticleGenerator::operator()(G4Event*) { Geant4Vertex* vtx = new Geant4Vertex(); int multiplicity = m_multiplicity; - ROOT::Math::XYZVector position = m_position; + ROOT::Math::XYZVector unit_direction, direction, position = m_position; getVertexPosition(position); getParticleMultiplicity(multiplicity); vtx->mask = m_mask; @@ -86,18 +86,18 @@ void Geant4ParticleGenerator::operator()(G4Event*) { inter->vertices.insert(make_pair(inter->vertices.size(),vtx)); for(int i=0; i<m_multiplicity; ++i) { double momentum = m_energy; - ROOT::Math::XYZVector direction = m_direction; - getParticleDirection(i, direction, momentum); - Particle* p = new Particle(); + direction = m_direction; + getParticleDirection(i, direction, momentum); + unit_direction = direction.unit(); p->id = inter->nextPID(); p->status |= G4PARTICLE_GEN_STABLE; p->mask = m_mask; p->pdgID = m_particle->GetPDGEncoding(); - p->psx = direction.X()*momentum; - p->psy = direction.Y()*momentum; - p->psz = direction.Z()*momentum; + p->psx = unit_direction.X()*momentum; + p->psy = unit_direction.Y()*momentum; + p->psz = unit_direction.Z()*momentum; p->mass = m_particle->GetPDGMass(); p->vsx = vtx->x; p->vsy = vtx->y; -- GitLab