slic/include
diff -u -r1.38 -r1.39
--- LcioMcpManager.hh 14 Sep 2005 23:59:44 -0000 1.38
+++ LcioMcpManager.hh 15 Sep 2005 04:31:39 -0000 1.39
@@ -37,15 +37,6 @@
// Mcp collections
typedef std::map<std::string, EVENT::LCCollection*> McpCollectionMap;
- // track to Mcp
- typedef std::map<G4int, IMPL::MCParticleImpl*> TrackToMcpMap;
-
- // Mcp to primary particle
- typedef std::map<EVENT::MCParticle*, G4PrimaryParticle*> McpToPrimaryMap;
-
- // initial Mcp from StdHep to final Mcp
- typedef std::map<EVENT::MCParticle*, IMPL::MCParticleImpl*> InitMcpToMcpMap;
-
public:
virtual ~LcioMcpManager();
static LcioMcpManager* instance();
@@ -58,31 +49,6 @@
// action at end of event
void endEvent(const G4Event* anEvent);
- // connect an initial Mcp to a primary
- void addMcpToPrimaryLink(EVENT::MCParticle* mcp, G4PrimaryParticle* primary);
-
- // connect track to MCParticle via track ID
- void addTrackIDToMcpLink(G4int trkID, IMPL::MCParticleImpl* mcp);
-
- // connect initial Mcp to final Mcp
- void addInitialMcpToFinalMcpLink( EVENT::MCParticle* mcpInit, IMPL::MCParticleImpl* mcpFinal);
-
- // find an MCParticle from the trackID
- IMPL::MCParticleImpl* findMcpFromTrackID( G4int trkID );
-
- // find matching primary particle given an MCP ptr
- G4PrimaryParticle* findPrimaryFromMcp(EVENT::MCParticle* mcp);
-
- // loop over input collection to find matching Mcp primary for this trajectory
- EVENT::MCParticle* findPrimaryInitialMcpFromTrajectory(Trajectory* trj);
-
- // find a dau Mcp given a G4PrimaryParticle dau
- EVENT::MCParticle* findDaughterMcpFromPrimary(EVENT::MCParticle* mcpInit,
- G4PrimaryParticle* primary);
-
- // given an input particle from stdhep, find the proper output particle
- IMPL::MCParticleImpl* findFinalParticleFromInitial( EVENT::MCParticle* mcpInit);
-
/*
* Create an empty MCParticle collection indexed by collName.
* SIDE EFFECT: Automatically registers collection into the map.
@@ -104,12 +70,6 @@
void setMinimumTrackingDistance(double minDist);
double getMinimumTrackingDistance();
- // print maps
- void printMaps();
- void printTrackToMcpMap();
- void printMcpToPrimaryMap();
- void printInitMcpToMcpMap();
-
// reset the manager at the end of event
void reset();
@@ -129,7 +89,7 @@
EVENT::LCCollection* findMcpCollection(const std::string& collName);
// get the Mcp printer
- LcioMcpPrinter* getMcpPrinter();
+ LcioMcpPrinter* getPrinter();
/* Get the MCParticle data maps. */
LcioMcpMaps* getMaps();
@@ -150,15 +110,6 @@
// current LCEvent
IMPL::LCEventImpl* m_currentLCEvent;
- // trackID -> MCP
- TrackToMcpMap m_trackToMcp;
-
- // MCP -> G4PrimaryParticle
- McpToPrimaryMap m_McpToPrimary;
-
- // initial Mcp -> final Mcp
- InitMcpToMcpMap m_initMcpToMcp;
-
// printer for MCP debugging
LcioMcpPrinter* m_mcpPrinter;
slic/src
diff -u -r1.51 -r1.52
--- LcioMcpManager.cc 14 Sep 2005 23:59:44 -0000 1.51
+++ LcioMcpManager.cc 15 Sep 2005 04:31:40 -0000 1.52
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/src/LcioMcpManager.cc,v 1.51 2005/09/14 23:59:44 jeremy Exp $
+// $Header: /cvs/lcd/slic/src/LcioMcpManager.cc,v 1.52 2005/09/15 04:31:40 jeremy Exp $
#include "LcioMcpManager.hh"
// SLIC
@@ -70,7 +70,7 @@
#ifdef SLIC_VERBOSE
if ( verbose() > 2 ) {
// print out Mcp processing maps
- printMaps();
+ m_maps->printMaps();
}
// print input and output Mcp coll
@@ -159,82 +159,6 @@
}
}
- void LcioMcpManager::addTrackIDToMcpLink(G4int trkID,
- IMPL::MCParticleImpl* mcp)
- {
-
- assert( mcp );
- assert(trkID > 0);
-
- m_trackToMcp[ trkID ] = mcp;
- }
-
- IMPL::MCParticleImpl* LcioMcpManager::findMcpFromTrackID( G4int trkID ) {
- IMPL::MCParticleImpl* mcp = 0;
- for ( TrackToMcpMap::iterator iter = m_trackToMcp.begin();
- iter != m_trackToMcp.end();
- iter++ ) {
- if ( iter->first == trkID ) {
- mcp = iter->second;
- break;
- }
- }
- return mcp;
- }
-
- EVENT::MCParticle* LcioMcpManager::findPrimaryInitialMcpFromTrajectory(Trajectory* trj)
- {
- EVENT::MCParticle* mcpPrim = 0;
-
- G4int trjTrkID = trj->GetTrackID();
-
- /* Get initial collection. */
- LCCollection* initMcpColl = getInitialMcpCollection();
-
- // loop over input collection
- int numPrePart = initMcpColl->getNumberOfElements();
- for( int k=0; k < numPrePart; k++ ) {
-
- // current MCP
- MCParticle* mcpPre = static_cast<MCParticle*> ( initMcpColl->getElementAt( k ) );
-
- // do we have matching primary for this Mcp?
- G4PrimaryParticle* primaryMatch = findPrimaryFromMcp( mcpPre );
- if ( primaryMatch ) {
-
- // found matching primary to this input trajectory
- if ( primaryMatch->GetTrackID() == trjTrkID ) {
- mcpPrim = mcpPre;
- break;
- }
-
- }
- }
-
- return mcpPrim;
- }
-
- EVENT::MCParticle* LcioMcpManager::findDaughterMcpFromPrimary(EVENT::MCParticle* mcpInit,
- G4PrimaryParticle* primDau)
- {
- // loop over Mcp input particle's daughters
- MCParticle* mcpDau = 0;
- int numMcpDau = mcpInit->getDaughters().size();
- for ( int i=0; i < numMcpDau; i++ ) {
-
- // does ith Mcp dau match this primary?
- if ( findPrimaryFromMcp( mcpInit->getDaughters()[i] ) == primDau ) {
-
- // found it
- mcpDau = mcpInit->getDaughters()[i];
- break;
- }
- }
-
- // return dau
- return mcpDau;
- }
-
void LcioMcpManager::deleteInitialMcpCollection()
{
LCCollection* mcpVec = getInitialMcpCollection();
@@ -249,7 +173,11 @@
{
deleteInitialMcpCollection();
- clearMaps();
+ /* Clear the map of MCParticle collections. */
+ m_mcpColls.clear();
+
+ /* Clear the maps of MCParticle runtime data for this event. */
+ m_maps->clear();
}
// verbosity
@@ -261,36 +189,6 @@
m_mcpPrinter->setVerbose( lt );
}
- IMPL::MCParticleImpl* LcioMcpManager::findFinalParticleFromInitial( EVENT::MCParticle* mcpInit)
- {
- IMPL::MCParticleImpl* mcpFinal = 0;
- for ( InitMcpToMcpMap::iterator iter = m_initMcpToMcp.begin();
- iter != m_initMcpToMcp.end();
- iter++ ) {
- if ( iter->first == mcpInit ) {
- mcpFinal = iter->second;
- break;
- }
- }
-
- return mcpFinal;
- }
-
- G4PrimaryParticle* LcioMcpManager::findPrimaryFromMcp(EVENT::MCParticle* mcp)
- {
- G4PrimaryParticle *pp = 0;
- for ( McpToPrimaryMap::iterator iter = m_McpToPrimary.begin();
- iter != m_McpToPrimary.end();
- iter++ ){
- if ( iter->first == mcp ) {
- pp = iter->second;
- break;
- }
- }
-
- return pp;
- }
-
// get MCP collection generated at EndOfEvent
inline EVENT::LCCollection* LcioMcpManager::getFinalMcpCollection()
{
@@ -320,27 +218,7 @@
return m_minimumTrackingDistance;
}
- void LcioMcpManager::addMcpToPrimaryLink(EVENT::MCParticle* mcp,
- G4PrimaryParticle* primary)
- {
- m_McpToPrimary[ mcp ] = primary;
- }
-
- void LcioMcpManager::addInitialMcpToFinalMcpLink(EVENT::MCParticle* mcpInit,
- IMPL::MCParticleImpl* mcpFinal)
- {
- m_initMcpToMcp[ mcpInit ] = mcpFinal;
- }
-
- void LcioMcpManager::clearMaps()
- {
- m_trackToMcp.clear();
- m_McpToPrimary.clear();
- m_initMcpToMcp.clear();
- m_mcpColls.clear();
- }
-
- LcioMcpPrinter* LcioMcpManager::getMcpPrinter()
+ LcioMcpPrinter* LcioMcpManager::getPrinter()
{
return m_mcpPrinter;
}
@@ -349,60 +227,4 @@
{
return m_maps;
}
-
- void LcioMcpManager::printMaps()
- {
- std::cout << "Printing maps..." << std::endl;
-
- printTrackToMcpMap();
- printMcpToPrimaryMap();
- printInitMcpToMcpMap();
- TrajectoryManager::instance()->printTrackIDToTrajectoryMap();
- }
-
- void LcioMcpManager::printTrackToMcpMap()
- {
- std::cout << "Printing track to Mcp map..." << std::endl;
-
- std::cout << "*** TrackToMcpMap ***" << std::endl;
- std::cout << "trkID | McpPtr" << std::endl;
- for ( TrackToMcpMap::iterator iter = m_trackToMcp.begin();
- iter != m_trackToMcp.end();
- iter++ ) {
- std::cout << iter->first << " " << iter->second << std::endl;
- }
- std::cout << std::endl;
- }
-
- void LcioMcpManager::printMcpToPrimaryMap()
- {
- std::cout << "Printing Mcp to primary map..." << std::endl;
-
- std::cout << std::endl;
- std::cout << "*** McpToPrimaryMap ***" << std::endl;
- std::cout << "McpPtr | PrimaryPtr" << std::endl;
-
- for ( McpToPrimaryMap::iterator iter = m_McpToPrimary.begin();
- iter != m_McpToPrimary.end();
- iter++ ) {
- std::cout << iter->first << " " << iter->second << std::endl;
- }
- std::cout << std::endl;
- }
-
- void LcioMcpManager::printInitMcpToMcpMap()
- {
- std::cout << "Printing InitMcp to Mcp map..." << std::endl;
-
- std::cout << std::endl;
- std::cout << "*** McpToMcpMap ***" << std::endl;
- std::cout << "McpPtrInit | McpPtrFinal" << std::endl;
-
- for ( InitMcpToMcpMap::iterator iter = m_initMcpToMcp.begin();
- iter != m_initMcpToMcp.end();
- iter++ ) {
- std::cout << iter->first << " " << iter->second << std::endl;
- }
- std::cout << std::endl;
- }
};