00001
00002 #include "LcioMcpUtil.hh"
00003
00004 namespace slic
00005 {
00006
00007 bool LcioMcpUtil::isPrimary(IMPL::MCParticleImpl* mcp)
00008 {
00009 return ( mcp->getParents().size() == 0 );
00010 }
00011
00012 G4double LcioMcpUtil::computeMcpDistance(IMPL::MCParticleImpl* mcp1,
00013 IMPL::MCParticleImpl* mcp2 )
00014 {
00015 return computeDistance( mcp1->getVertex(), mcp2->getVertex() );
00016 }
00017
00018 G4double LcioMcpUtil::computeDistance(const double *v1, const double *v2)
00019 {
00020
00021
00022
00023 G4double x = (v1[0] - v2[0]);
00024 G4double x2 = pow( x, 2 );
00025
00026
00027 G4double y = (v1[1] - v2[1]);
00028 G4double y2 = pow( y, 2 );
00029
00030
00031 G4double z = (v1[2] - v2[2]);
00032 G4double z2 = pow( z, 2 );
00033
00034 return sqrt( x2 + y2 + z2 );
00035 }
00036 }