slic/src
diff -N LcioMcpUtil.cc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ LcioMcpUtil.cc 14 Sep 2005 23:10:12 -0000 1.1
@@ -0,0 +1,36 @@
+// $Header: /cvs/lcd/slic/src/LcioMcpUtil.cc,v 1.1 2005/09/14 23:10:12 jeremy Exp $
+#include "LcioMcpUtil.hh"
+
+namespace slic
+{
+ // Mcp with no parents
+ bool LcioMcpUtil::isPrimary(IMPL::MCParticleImpl* mcp)
+ {
+ return ( mcp->getParents().size() == 0 );
+ }
+
+ G4double LcioMcpUtil::computeMcpDistance(IMPL::MCParticleImpl* mcp1,
+ IMPL::MCParticleImpl* mcp2 )
+ {
+ return computeDistance( mcp1->getVertex(), mcp2->getVertex() );
+ }
+
+ G4double LcioMcpUtil::computeDistance(const double *v1, const double *v2)
+ {
+ // distance = sqrt ( x^2 + y^2 + z^2 )
+
+ // x^2
+ G4double x = (v1[0] - v2[0]);
+ G4double x2 = pow( x, 2 );
+
+ // y^2
+ G4double y = (v1[1] - v2[1]);
+ G4double y2 = pow( y, 2 );
+
+ // z^2
+ G4double z = (v1[2] - v2[2]);
+ G4double z2 = pow( z, 2 );
+
+ return sqrt( x2 + y2 + z2 );
+ }
+};
slic/include
diff -N LcioMcpUtil.hh
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ LcioMcpUtil.hh 14 Sep 2005 23:10:13 -0000 1.1
@@ -0,0 +1,30 @@
+// $Header: /cvs/lcd/slic/include/LcioMcpUtil.hh,v 1.1 2005/09/14 23:10:13 jeremy Exp $
+#ifndef LcioMcpUtil_hh
+#define LcioMcpUtil_hh
+
+// lcio
+#include "IMPL/MCParticleImpl.h"
+
+// g4
+#include "globals.hh"
+
+namespace slic
+{
+ class LcioMcpUtil
+ {
+
+ private:
+ LcioMcpUtil() {}
+
+ public:
+
+ // distance computation based on Mcp 3vect positions
+ static G4double computeMcpDistance(IMPL::MCParticleImpl*, IMPL::MCParticleImpl*);
+ static G4double computeDistance(const double *v1, const double *v2);
+
+ // Mcp with no parents
+ static bool isPrimary(IMPL::MCParticleImpl* mcp);
+ };
+}
+
+#endif