Commit in slic on MAIN | |||
include/LcioHitsCollectionBuilder.hh | +8 | -5 | 1.11 -> 1.12 |
src/LcioHitsCollectionBuilder.cc | +28 | -44 | 1.30 -> 1.31 |
+36 | -49 |
udpate with minor LCDD refactoring
diff -u -r1.11 -r1.12 --- LcioHitsCollectionBuilder.hh 6 Sep 2013 22:07:47 -0000 1.11 +++ LcioHitsCollectionBuilder.hh 17 Sep 2013 00:39:21 -0000 1.12 @@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/include/LcioHitsCollectionBuilder.hh,v 1.11 2013/09/06 22:07:47 jeremy Exp $
+// $Header: /cvs/lcd/slic/include/LcioHitsCollectionBuilder.hh,v 1.12 2013/09/17 00:39:21 jeremy Exp $
#ifndef SLIC_LCIOHITSCOLLECTIONBUILDER_HH #define SLIC_LCIOHITSCOLLECTIONBUILDER_HH
@@ -22,7 +22,8 @@
// geant4 #include "G4Event.hh"
-namespace slic {
+namespace slic +{
class LcioMcpManager;
@@ -32,17 +33,19 @@
@note Makes use of LcioMcpManager for Mcp hit contributions. */ class LcioHitsCollectionBuilder: public Module {
+
public:
+
LcioHitsCollectionBuilder();
- virtual ~LcioHitsCollectionBuilder();
-public:
+ virtual ~LcioHitsCollectionBuilder();
// interface function to create an Lcio event from a G4 event EVENT::LCEvent* createHCsFromG4Event(const G4Event* g4evt, EVENT::LCEvent* lcevt); // flags for hits void setLongFlag(bool s = true);
+
void setPDGFlag(bool s = true); void setStoreMomentum(bool s = true) {
@@ -70,7 +73,7 @@
void saveHits(CalorimeterHitsCollection* calHits, IMPL::LCCollectionVec* lcioColl); // save trk hits
- void saveHits(G4TrackerHitsCollection* trkHits, IMPL::LCCollectionVec* lcioColl);
+ void saveHits(TrackerHitsCollection* trkHits, IMPL::LCCollectionVec* lcioColl);
// create cal hit from G4 cal hit IMPL::SimCalorimeterHitImpl* createHit(CalorimeterHit* calHit);
diff -u -r1.30 -r1.31 --- LcioHitsCollectionBuilder.cc 14 Sep 2013 02:08:51 -0000 1.30 +++ LcioHitsCollectionBuilder.cc 17 Sep 2013 00:39:21 -0000 1.31 @@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/src/LcioHitsCollectionBuilder.cc,v 1.30 2013/09/14 02:08:51 jeremy Exp $
+// $Header: /cvs/lcd/slic/src/LcioHitsCollectionBuilder.cc,v 1.31 2013/09/17 00:39:21 jeremy Exp $
// SLIC #include "LcioHitsCollectionBuilder.hh"
@@ -17,8 +17,7 @@
#include "IMPL/LCFlagImpl.h" #include "IMPL/MCParticleImpl.h"
-#include <iostream> -
+// LCIO
using IMPL::SimCalorimeterHitImpl; using IMPL::SimTrackerHitImpl; using IMPL::MCParticleImpl;
@@ -27,10 +26,8 @@
using IMPL::LCCollectionVec; using EVENT::LCIO;
-// FIXME: Is this dummy declaration still needed? -namespace CLHEP { -} -using namespace CLHEP;
+// STL +#include <iostream>
using std::string;
@@ -48,9 +45,8 @@
m_trkCollFlag.setBit(LCIO::THBIT_MOMENTUM); }
-LcioHitsCollectionBuilder::~LcioHitsCollectionBuilder() { - ; -}
+LcioHitsCollectionBuilder::~LcioHitsCollectionBuilder() +{}
// create the hit collections void LcioHitsCollectionBuilder::createHitCollections() {
@@ -69,20 +65,16 @@
LCCollectionVec* collVec = 0;
+ // Loop over HC IDs.
for (std::vector<int>::const_iterator iter = hcids.begin(); iter != hcids.end(); iter++) { hcid = *iter;
-#ifdef SLIC_LOG - //log().debug("Creating hits collections for HCID: " + StringUtil::toString( hcid ) ); - log() << LOG::debug << LOG::head << "Creating hits collections for HCID - " << StringUtil::toString(hcid) << LOG::done; -#endif -
// retrieve Sensitive Detector ptr SensitiveDetector *SD = static_cast<SensitiveDetector*> (G4SDManager::GetSDMpointer()->FindSensitiveDetector(HCtbl->GetSDname(hcid)));
- // get hits collection
+ // Get hits collections from SD.
for (int i = 0; i < SD->getNumberOfHitsCollections(); i++) { if (SD->getHCID(i) == hcid) { G4VHitsCollection* HC = HCE->GetHC(hcid);
@@ -98,18 +90,11 @@
// Store the cellID description into the LCIO::cellIDEncoding parameter in the collection. if (SD->getIdSpec()) { std::string id = SD->getIdSpec()->getFieldDescription();
-#if LCIO_VERSION_GE(1, 7)
collVec->parameters().setValue(LCIO::CellIDEncoding, id);
-#else - collVec->parameters().setValue("CellIDEncoding", id); -#endif
} // Check for existing collection. if (containsCollection(m_currentLCEvent, HC->GetName())) {
-#ifdef SLIC_LOG - log().debug("Adding hits to existing collection: " + HC->GetName()); -#endif
// Update existing collection. // TODO: Check for matching id scheme and flags! LCCollectionVec * collection = (LCCollectionVec*) m_currentLCEvent->getCollection(
@@ -118,11 +103,12 @@
} // No collection found. else {
-#ifdef SLIC_LOG - log().debug("Creating new hit collection: " + HC->GetName()); -#endif
// Add new collection vector to LCEvent. m_currentLCEvent->addCollection(collVec, HC->GetName());
+ +#ifdef SLIC_LOG + log() << LOG::always << HC->GetName() << " has " << collVec->size() << " hits" << LOG::done; +#endif
} }
@@ -132,14 +118,12 @@
} } }
- //std::cout << std::endl;
}
-
} // create the CollectionVec (decides which overloaded subfunction to call)
-IMPL::LCCollectionVec* LcioHitsCollectionBuilder::createCollectionVec(G4VHitsCollection* g4HC, - SensitiveDetector::EType SDtype) {
+IMPL::LCCollectionVec* LcioHitsCollectionBuilder::createCollectionVec(G4VHitsCollection* g4HC, SensitiveDetector::EType SDtype) { +
// vec to create LCCollectionVec* collVec = 0;
@@ -164,7 +148,7 @@
LCCollectionVec* collVec = new LCCollectionVec(LCIO::SIMTRACKERHIT); // cast to G4 trk HC
- G4TrackerHitsCollection* trkHits = dynamic_cast<G4TrackerHitsCollection*>(g4HC);
+ TrackerHitsCollection* trkHits = dynamic_cast<TrackerHitsCollection*>(g4HC);
// call overloaded save function for trk hits saveHits(trkHits, collVec);
@@ -228,7 +212,7 @@
} // save trk hits
-void LcioHitsCollectionBuilder::saveHits(G4TrackerHitsCollection* trkHits, IMPL::LCCollectionVec* lcioColl) {
+void LcioHitsCollectionBuilder::saveHits(TrackerHitsCollection* trkHits, IMPL::LCCollectionVec* lcioColl) {
size_t s = trkHits->GetSize(); for (size_t i = 0; i < s; i++) { TrackerHit* trkHit = static_cast<TrackerHit*>(trkHits->GetHit(i));
@@ -246,7 +230,7 @@
simCalHit->setCellID1(id64.getId1()); // position
- const Hep3Vector hitPos = calHit->getPosition();
+ const G4ThreeVector hitPos = calHit->getPosition();
float pos[3] = { hitPos.x(), hitPos.y(), hitPos.z() }; simCalHit->setPosition(pos);
@@ -282,7 +266,7 @@
SimTrackerHitImpl* simTrkHit = new SimTrackerHitImpl(); // position in mm
- const Hep3Vector hitPos = trkHit->getPos();
+ const G4ThreeVector hitPos = trkHit->getPos();
double pos[3] = { hitPos.x(), hitPos.y(), hitPos.z() }; simTrkHit->setPosition(pos);
@@ -302,13 +286,13 @@
simTrkHit->setTime(tEdep); // Cell ID.
-#if LCIO_VERSION_GE(1, 60)
+//#if LCIO_VERSION_GE(1, 60)
// New method for 64-bit IDs. simTrkHit->setCellID0(trkHit->getId());
-#else
+//#else
// Old method for 32-bit IDs.
- simTrkHit->setCellID(trkHit->getId()); -#endif
+ //simTrkHit->setCellID(trkHit->getId()); +//#endif
// MCP using McpManager MCParticleImpl* mcp = m_mcpManager->getMaps()->findMcpFromTrackID(trkHit->getTrackID());
@@ -350,7 +334,7 @@
if (contribMcp != 0) { // Add the MCParticle contribution to the hit.
-#if LCIO_VERSION_GE(1, 60)
+//#if LCIO_VERSION_GE(1, 60)
// Newer LCIO versions have the step position for contributions. simCalHit->addMCParticleContribution( contribMcp,
@@ -358,11 +342,11 @@
(float)(contrib.getGlobalTime()), contrib.getPDGID(), const_cast<float*>(contrib.getPosition()));
-#else
+//#else
// Older LCIO versions do not include the step position.
- simCalHit->addMCParticleContribution(contribMcp, (float) (contrib.getEdep() / GeV), - (float) contrib.getGlobalTime(), contrib.getPDGID()); -#endif
+// simCalHit->addMCParticleContribution(contribMcp, (float) (contrib.getEdep() / GeV), +// (float) contrib.getGlobalTime(), contrib.getPDGID()); +//#endif
++ncontrib; } // Problem! Contributing particle is missing from MCParticle list.
@@ -377,7 +361,7 @@
#ifdef SLIC_LOG if ( ncontrib == 0 ) {
- log().error("No hit contribs for sim cal hit.");
+ log().error("No hit contributions for CalorimeterHit.");
} #endif }
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1