12 #include <arich/modules/arichMCParticles/ARICHMCParticlesModule.h>
15 #include <framework/datastore/DataStore.h>
18 #include <framework/gearbox/Const.h>
19 #include <framework/logging/Logger.h>
43 setDescription(
"Creates collection of MCParticles related to tracks that hit ARICH.");
45 setPropertyFlags(c_ParallelProcessingCertified);
49 ARICHMCParticlesModule::~ARICHMCParticlesModule()
53 void ARICHMCParticlesModule::initialize()
57 m_tracks.isRequired();
58 m_extHits.isRequired();
60 m_arichMCPs.registerInDataStore();
61 m_tracks.registerRelationTo(m_arichMCPs);
65 void ARICHMCParticlesModule::beginRun()
69 void ARICHMCParticlesModule::event()
75 for (
int itrk = 0; itrk < m_tracks.getEntries(); ++itrk) {
77 const Track* track = m_tracks[itrk];
78 const TrackFitResult* fitResult = track->getTrackFitResultWithClosestMass(hypothesis);
80 B2ERROR(
"No TrackFitResult for " << hypothesis.
getPDGCode());
85 if (!particle)
continue;
89 for (
unsigned i = 0; i < extHits.
size(); i++) {
90 const ExtHit* extHit = extHits[i];
91 if (abs(extHit->
getPdgCode()) != pdgCode)
continue;
93 if (extHit->
getStatus() != EXT_EXIT)
continue;
97 MCParticle* arichP = m_arichMCPs.appendNew(*particle);
98 track->addRelationTo(arichP);
108 void ARICHMCParticlesModule::endRun()
112 void ARICHMCParticlesModule::terminate()
116 void ARICHMCParticlesModule::printModuleParams()
const