slic/src
diff -u -r1.2 -r1.3
--- LcioMcpMaps.cc 15 Sep 2005 04:30:52 -0000 1.2
+++ LcioMcpMaps.cc 21 Sep 2005 00:13:30 -0000 1.3
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/src/LcioMcpMaps.cc,v 1.2 2005/09/15 04:30:52 jeremy Exp $
+// $Header: /cvs/lcd/slic/src/LcioMcpMaps.cc,v 1.3 2005/09/21 00:13:30 jeremy Exp $
#include "LcioMcpMaps.hh"
// slic
@@ -20,7 +20,7 @@
{}
void LcioMcpMaps::addTrackIDToMcpLink(G4int trkID,
- MCParticleImpl* mcp)
+ MCParticleImpl* mcp)
{
assert( mcp );
assert(trkID > 0);
@@ -28,9 +28,10 @@
m_trackToMcp[ trkID ] = mcp;
}
- MCParticleImpl* LcioMcpMaps::findMcpFromTrackID( G4int trkID ) {
+ MCParticleImpl* LcioMcpMaps::findMcpFromTrackID( G4int trkID ) const
+ {
MCParticleImpl* mcp = 0;
- for ( TrackToMcpMap::iterator iter = m_trackToMcp.begin();
+ for ( TrackToMcpMap::const_iterator iter = m_trackToMcp.begin();
iter != m_trackToMcp.end();
iter++ ) {
if ( iter->first == trkID ) {
@@ -41,7 +42,22 @@
return mcp;
}
- MCParticle* LcioMcpMaps::findPrimaryInitialMcpFromTrajectory(Trajectory* trj)
+ /* Find the trackID for the final MCParticle. */
+ G4int LcioMcpMaps::findTrackIDFromFinalMcp( MCParticle* mcp) const
+ {
+ G4int trkID = -1;
+ for ( TrackToMcpMap::const_iterator iter = m_trackToMcp.begin();
+ iter != m_trackToMcp.end();
+ iter++ ) {
+ if ( iter->second == mcp ) {
+ trkID = iter->first;
+ break;
+ }
+ }
+ return trkID;
+ }
+
+ MCParticle* LcioMcpMaps::findPrimaryInitialMcpFromTrajectory(Trajectory* trj) const
{
MCParticle* mcpPrim = 0;
@@ -74,7 +90,7 @@
}
MCParticle* LcioMcpMaps::findDaughterMcpFromPrimary(MCParticle* mcpInit,
- G4PrimaryParticle* primDau)
+ G4PrimaryParticle* primDau) const
{
// loop over Mcp input particle's daughters
MCParticle* mcpDau = 0;
@@ -94,10 +110,10 @@
return mcpDau;
}
- MCParticleImpl* LcioMcpMaps::findFinalParticleFromInitial( MCParticle* mcpInit)
+ MCParticleImpl* LcioMcpMaps::findFinalParticleFromInitial( MCParticle* mcpInit) const
{
MCParticleImpl* mcpFinal = 0;
- for ( InitMcpToMcpMap::iterator iter = m_initMcpToMcp.begin();
+ for ( InitMcpToMcpMap::const_iterator iter = m_initMcpToMcp.begin();
iter != m_initMcpToMcp.end();
iter++ ) {
if ( iter->first == mcpInit ) {
@@ -109,10 +125,10 @@
return mcpFinal;
}
- G4PrimaryParticle* LcioMcpMaps::findPrimaryFromMcp(MCParticle* mcp)
+ G4PrimaryParticle* LcioMcpMaps::findPrimaryFromMcp(MCParticle* mcp) const
{
G4PrimaryParticle *pp = 0;
- for ( McpToPrimaryMap::iterator iter = m_McpToPrimary.begin();
+ for ( McpToPrimaryMap::const_iterator iter = m_McpToPrimary.begin();
iter != m_McpToPrimary.end();
iter++ ){
if ( iter->first == mcp ) {
slic/include
diff -u -r1.3 -r1.4
--- LcioMcpMaps.hh 16 Sep 2005 23:04:35 -0000 1.3
+++ LcioMcpMaps.hh 21 Sep 2005 00:13:30 -0000 1.4
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/include/LcioMcpMaps.hh,v 1.3 2005/09/16 23:04:35 jeremy Exp $
+// $Header: /cvs/lcd/slic/include/LcioMcpMaps.hh,v 1.4 2005/09/21 00:13:30 jeremy Exp $
#ifndef slic_LcioMcpMaps_hh
#define slic_LcioMcpMaps_hh 1
@@ -57,20 +57,23 @@
void addInitialMcpToFinalMcpLink( EVENT::MCParticle* mcpInit, IMPL::MCParticleImpl* mcpFinal);
// find an MCParticle from the trackID
- IMPL::MCParticleImpl* findMcpFromTrackID( G4int trkID );
+ IMPL::MCParticleImpl* findMcpFromTrackID( G4int trkID ) const;
+
+ /* Find the trackID for the final MCParticle. */
+ G4int findTrackIDFromFinalMcp( EVENT::MCParticle* ) const;
// find matching primary particle given an MCP ptr
- G4PrimaryParticle* findPrimaryFromMcp(EVENT::MCParticle* mcp);
+ G4PrimaryParticle* findPrimaryFromMcp(EVENT::MCParticle* mcp) const;
// loop over input collection to find matching Mcp primary for this trajectory
- EVENT::MCParticle* findPrimaryInitialMcpFromTrajectory(Trajectory* trj);
+ EVENT::MCParticle* findPrimaryInitialMcpFromTrajectory(Trajectory* trj) const;
// find a dau Mcp given a G4PrimaryParticle dau
EVENT::MCParticle* findDaughterMcpFromPrimary(EVENT::MCParticle* mcpInit,
- G4PrimaryParticle* primary);
+ G4PrimaryParticle* primary) const;
// given an input particle from stdhep, find the proper output particle
- IMPL::MCParticleImpl* findFinalParticleFromInitial( EVENT::MCParticle* mcpInit);
+ IMPL::MCParticleImpl* findFinalParticleFromInitial( EVENT::MCParticle* mcpInit) const;
// print maps
void printMaps();