12 #include <arich/modules/arichRelate/ARICHRelateModule.h>
15 #include <framework/datastore/DataStore.h>
18 #include <framework/gearbox/Const.h>
19 #include <framework/logging/Logger.h>
42 setDescription(
"Creates relations between ARICHAeroHits and ExtHits. Allows to store simulation output without MCParticles");
44 setPropertyFlags(c_ParallelProcessingCertified);
48 ARICHRelateModule::~ARICHRelateModule()
52 void ARICHRelateModule::initialize()
56 m_mcParticles.isRequired();
57 m_mdstTracks.isRequired();
58 m_aeroHits.isRequired();
59 m_extHits.isRequired();
60 m_extHits.registerRelationTo(m_aeroHits);
63 void ARICHRelateModule::beginRun()
67 void ARICHRelateModule::event()
69 int nHits = m_aeroHits.getEntries();
70 B2DEBUG(50,
"No. of hits " << nHits);
72 for (
int iHit = 0; iHit < nHits; ++iHit) {
74 const MCParticle* particle = DataStore::getRelated<MCParticle>(aeroHit);
76 B2DEBUG(50,
"No MCParticle for AeroHit!");
83 const Track* track = DataStore::getRelated<Track>(particle);
86 const TrackFitResult* fitResult = track->getTrackFitResultWithClosestMass(Const::pion);
87 if (!fitResult)
continue;
91 for (
unsigned i = 0; i < extHits.
size(); i++) {
92 const ExtHit* extHit = extHits[i];
93 if (abs(extHit->
getPdgCode()) != pdg)
continue;
95 if (extHit->
getCopyID() != 6789)
continue;
96 if (extHit->
getStatus() != EXT_EXIT)
continue;
104 void ARICHRelateModule::endRun()
108 void ARICHRelateModule::terminate()
112 void ARICHRelateModule::printModuleParams()
const