10#include <tracking/trackFindingCDC/utilities/Range.h>
11#include <tracking/trackFindingCDC/utilities/MayBePtr.h>
25 namespace TrackFindingCDC {
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
A Class to store the Monte Carlo particle information.
Class to organize and present the Monte Carlo hit information.
auto getHits(const MCParticle *mcParticle) const
Getter for the range MCParticle to CDCHits relations which come from the given MCParticle.
MayBePtr< const CDCSimHit > getSimHit(const CDCHit *hit) const
Seeks the CDCSimHit related to the CDCHit.
const std::set< const CDCHit * > & getReassignedSecondaryHits() const
Getter for all reassigned secondary CDCHits.
std::set< const CDCHit * > m_reassignedSecondaryHits
The set of reassigned secondary CDCHits.
void fillSimHitByHitMap()
Retrieve the relations array from CDCSimHits to CDCHits and fill it in to the local map which does th...
std::set< const CDCSimHit * > m_reassignedSecondarySimHits
The set of reassigned secondary CDCSimHits.
const std::multimap< const CDCHit *, const CDCSimHit * > & getSimHitsByHit() const
Getter for the CDCHit -> CDCSimHit relations.
bool isReassignedSecondary(const CDCHit *ptrHit) const
Indicates if the CDCHit has been reassigned to a primary MCParticle.
std::multimap< const CDCHit *, const CDCSimHit * > m_simHitsByHit
Memory for a one to one relation from CDCHit to CDCSimHits.
void validateRelations() const
Checks if the relations CDCHit -> MCParticle and CDCHit -> CDCSimHit -> MCParticle commute.
void fillMCParticleByHitMap()
Retrieve the relations array from MCParticle to CDCHits and fill it in to the local map which does th...
bool isBackground(const CDCSimHit *simHit) const
Indicates if the CDCSimHit is considered background.
static bool indicatesReassignedSecondary(double weight)
Indicate if the given weight suggests that the corresponding hit to MCParticle relation has been redi...
MayBePtr< const CDCHit > getHit(const CDCSimHit *simHit) const
Seeks the CDCHit related to the CDCSimHit - nullptr if no CDCHit is related.
void fillMCParticleBySimHitMap()
Retrieve the relations array from MCParticle to CDCSimHits and fill it in to the local map which does...
MayBePtr< const MCParticle > getMCParticle(const CDCHit *hit) const
Seeks the MCParticle related to the CDCHit.
std::multimap< const MCParticle *, const CDCHit * > m_hitsByMCParticle
Memory for a one to n relation from MCParticles to CDCHit.
CDCMCMap(CDCMCMap &)=delete
For the same reason, also delete copy constructor.
bool isReassignedSecondary(const CDCSimHit *ptrSimHit) const
Indicates if the CDCSimHit has been reassigned to a primary MCParticle.
const std::multimap< const MCParticle *, const CDCHit * > & getHitsByMCParticle() const
Getter for the MCParticle -> CDCHit relations.
const std::multimap< const MCParticle *, const CDCSimHit * > & getSimHitsByMCParticle() const
Getter for the MCParticle -> CDCSimHit relations.
std::multimap< const MCParticle *, const CDCSimHit * > m_simHitsByMCParticle
Memory for a one to n relation from MCParticles to CDCSimHit.
void clear()
Clear all information from the former event.
void validateReassignedSecondaries() const
Checks if each CDCHit is marked as reassigned secondary is related to a reassigned secondary CDCSimHi...
CDCMCMap & operator=(const CDCMCMap &)=delete
Delete the assignment operator in order to avoid accidental copies.
auto getSimHits(const MCParticle *mcParticle) const
Getter for the range MCParticle to CDCSimHits relations which come from the given MCParticle.
CDCMCMap()=default
Default constructor, needs to be public for initialization in CDCMCManager.
void fill()
Fill the Monte Carlo information retrieved from the DataStore into the local multimaps.
const std::set< const CDCSimHit * > & getReassignedSecondarySimHits() const
Getter for all reassigned secondary CDCSimHits.
Abstract base class for different kinds of events.