34 for(
int i = 0; i <
hits_.size(); i++)
delete hits_.at(i);
38 UTIL::LCRelationNavigator* mcPartRel_nav;
42 EVENT::LCCollection* tracker_hits{
nullptr};
47 catch (EVENT::DataNotAvailableException e)
49 std::cout << e.what() << std::endl;
53 auto evColls =
event->getLCEvent()->getCollectionNames();
54 auto it = std::find (evColls->begin(), evColls->end(),
mcPartRelLcio_.c_str());
55 bool hasMCParts =
true;
56 EVENT::LCCollection* mcPartRel;
57 if(it == evColls->end()) hasMCParts =
false;
62 mcPartRel_nav =
new UTIL::LCRelationNavigator(mcPartRel);
69 std::map<EVENT::TrackerHit*, TrackerHit*> hit_map;
73 for (
int ihit = 0; ihit < tracker_hits->getNumberOfElements(); ++ihit) {
76 IMPL::TrackerHitImpl* lc_tracker_hit =
static_cast<IMPL::TrackerHitImpl*
>(tracker_hits->getElementAt(ihit));
84 EVENT::LCObjectVec mcPart_list
85 = mcPartRel_nav->getRelatedToObjects(lc_tracker_hit);
87 if(
debug_ > 0) std::cout <<
"Has " << mcPart_list.size() <<
" Related MC Particles" << std::endl;
89 for(
int ipart = 0; ipart < mcPart_list.size(); ipart++)
91 IMPL::MCParticleImpl* lc_particle
92 =
static_cast<IMPL::MCParticleImpl*
>(mcPart_list.at(ipart));
94 if(
debug_ > 0) std::cout <<
"Has Related MC Particle with ID " << lc_particle->id() << std::endl;
100 hit_map[lc_tracker_hit] = tracker_hit;
101 hits_.push_back(tracker_hit);
105 if(hasMCParts)
delete mcPartRel_nav;