10#include <tracking/trackingUtilities/utilities/Range.h>
11#include <tracking/trackingUtilities/utilities/MayBePtr.h>
25 namespace TrackFindingCDC {
74 TrackingUtilities::MayBePtr<const CDCSimHit>
getSimHit(
const CDCHit* hit)
const;
77 TrackingUtilities::MayBePtr<const CDCHit>
getHit(
const CDCSimHit* simHit)
const;
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.
auto getHits(const MCParticle *mcParticle) const
Getter for the range MCParticle to CDCHits relations which come from the given MCParticle.
TrackingUtilities::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...
static bool indicatesReassignedSecondary(double weight)
Indicate if the given weight suggests that the corresponding hit to MCParticle relation has been redi...
TrackingUtilities::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...
TrackingUtilities::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.
static bool isBackground(const CDCSimHit *simHit)
Indicates if the CDCSimHit is considered background.
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.