#include <QuickTrackAssociatorByHitsImpl.h>
Public Types | |
typedef std::vector< std::pair < OmniClusterRef, TrackingParticleRef > > | ClusterTPAssociationList |
enum | SimToRecoDenomType { denomnone, denomsim, denomreco } |
Private Types | |
typedef std::pair< uint32_t, EncodedEventId > | SimTrackIdentifiers |
This is enough information to uniquely identify a sim track. More... | |
Private Member Functions | |
template<class T_TrackCollection , class T_TrackingParticleCollection , class T_hitOrClusterAssociator > | |
reco::RecoToSimCollection | associateRecoToSimImplementation (T_TrackCollection trackCollection, T_TrackingParticleCollection trackingParticleCollection, T_hitOrClusterAssociator hitOrClusterAssociator) const |
The method that does the work for both overloads of associateRecoToSim. More... | |
template<class T_TrackCollection , class T_TrackingParticleCollection , class T_hitOrClusterAssociator > | |
reco::SimToRecoCollection | associateSimToRecoImplementation (T_TrackCollection trackCollection, T_TrackingParticleCollection trackingParticleCollection, T_hitOrClusterAssociator hitOrClusterAssociator) const |
The method that does the work for both overloads of associateSimToReco. More... | |
template<typename T_TPCollection , typename iter > | |
std::vector< std::pair < edm::Ref < TrackingParticleCollection > , size_t > > | associateTrack (const TrackerHitAssociator &hitAssociator, T_TPCollection trackingParticles, iter begin, iter end) const |
Returns the TrackingParticle that has the most associated hits to the given track. More... | |
template<typename T_TPCollection , typename iter > | |
std::vector< std::pair < edm::Ref < TrackingParticleCollection > , size_t > > | associateTrack (const ClusterTPAssociationList &clusterToTPMap, T_TPCollection trackingParticles, iter begin, iter end) const |
Returns the TrackingParticle that has the most associated hits to the given track. More... | |
template<typename iter > | |
std::vector< std::pair < SimTrackIdentifiers, size_t > > | getAllSimTrackIdentifiers (const TrackerHitAssociator &hitAssociator, iter begin, iter end) const |
Returns a vector of pairs where first is a SimTrackIdentifiers (see typedef above) and second is the number of hits that came from that sim track. More... | |
template<typename iter > | |
int | getDoubleCount (const TrackerHitAssociator &hitAssociator, iter begin, iter end, TrackingParticleRef associatedTrackingParticle) const |
This method was copied almost verbatim from the standard TrackAssociatorByHits. More... | |
template<typename iter > | |
int | getDoubleCount (const ClusterTPAssociationList &clusterToTPList, iter begin, iter end, TrackingParticleRef associatedTrackingParticle) const |
Overload for when using cluster to TrackingParticle association list. More... | |
const TrackingRecHit * | getHitFromIter (trackingRecHit_iterator iter) const |
const TrackingRecHit * | getHitFromIter (TrackingRecHitCollection::const_iterator iter) const |
template<typename iter > | |
std::vector< OmniClusterRef > | getMatchedClusters (iter begin, iter end) const |
bool | trackingParticleContainsIdentifier (const TrackingParticle *pTrackingParticle, const SimTrackIdentifiers &identifier) const |
Returns true if the supplied TrackingParticle has the supplied g4 track identifiers. More... | |
Static Private Member Functions | |
static bool | tpIntPairGreater (std::pair< edm::Ref< TrackingParticleCollection >, size_t > i, std::pair< edm::Ref< TrackingParticleCollection >, size_t > j) |
Private Attributes | |
bool | absoluteNumberOfHits_ |
std::shared_ptr< const ClusterTPAssociationList > | clusterToTPMap_ |
double | cutRecoToSim_ |
std::shared_ptr< const TrackerHitAssociator > | hitAssociator_ |
creates either a ClusterTPAssociationList OR a TrackerHitAssociator and stores it in the provided unique_ptr. The other will be null. More... | |
double | puritySimToReco_ |
double | qualitySimToReco_ |
SimToRecoDenomType | simToRecoDenominator_ |
bool | threeHitTracksAreSpecial_ |
Definition at line 61 of file QuickTrackAssociatorByHitsImpl.h.
typedef std::vector<std::pair<OmniClusterRef, TrackingParticleRef> > QuickTrackAssociatorByHitsImpl::ClusterTPAssociationList |
Definition at line 64 of file QuickTrackAssociatorByHitsImpl.h.
|
private |
This is enough information to uniquely identify a sim track.
Definition at line 101 of file QuickTrackAssociatorByHitsImpl.h.
Enumerator | |
---|---|
denomnone | |
denomsim | |
denomreco |
Definition at line 65 of file QuickTrackAssociatorByHitsImpl.h.
QuickTrackAssociatorByHitsImpl::QuickTrackAssociatorByHitsImpl | ( | std::shared_ptr< const TrackerHitAssociator > | hitAssoc, |
std::shared_ptr< const ClusterTPAssociationList > | clusterToTPMap, | ||
bool | absoluteNumberOfHits, | ||
double | qualitySimToReco, | ||
double | puritySimToReco, | ||
double | cutRecoToSim, | ||
bool | threeHitTracksAreSpecial, | ||
SimToRecoDenomType | simToRecoDenominator | ||
) |
Definition at line 88 of file QuickTrackAssociatorByHitsImpl.cc.
|
overridevirtual |
compare reco to sim the handle of reco::Track and TrackingParticle collections
Reimplemented from reco::TrackToTrackingParticleAssociatorBaseImpl.
Definition at line 108 of file QuickTrackAssociatorByHitsImpl.cc.
References associateRecoToSimImplementation(), clusterToTPMap_, and hitAssociator_.
|
overridevirtual |
Association Reco To Sim with Collections.
Implements reco::TrackToTrackingParticleAssociatorBaseImpl.
Definition at line 124 of file QuickTrackAssociatorByHitsImpl.cc.
References associateRecoToSimImplementation(), clusterToTPMap_, and hitAssociator_.
|
overridevirtual |
Reimplemented from reco::TrackToTrackingParticleAssociatorBaseImpl.
Definition at line 516 of file QuickTrackAssociatorByHitsImpl.cc.
References funct::abs(), absoluteNumberOfHits_, associateTrack(), clusterToTPMap_, cutRecoToSim_, getDoubleCount(), hitAssociator_, i, edm::AssociationMap< Tag >::insert(), LogTrace, edm::AssociationMap< Tag >::post_insert(), HLT_25ns14e33_v1_cff::quality, TrajectorySeed::recHits(), edm::AssociationMap< Tag >::size(), and threeHitTracksAreSpecial_.
|
private |
The method that does the work for both overloads of associateRecoToSim.
Parts that actually rely on the type of the collections are delegated out to overloaded functions in the unnamed namespace of the .cc file. Parts that rely on the type of T_hitOrClusterAssociator are delegated out to overloaded methods.
Definition at line 142 of file QuickTrackAssociatorByHitsImpl.cc.
References funct::abs(), absoluteNumberOfHits_, associateTrack(), cutRecoToSim_, reco::Track::found(), getDoubleCount(), i, edm::AssociationMap< Tag >::insert(), HLT_25ns14e33_v1_cff::quality, reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), and threeHitTracksAreSpecial_.
Referenced by associateRecoToSim().
|
overridevirtual |
compare reco to sim the handle of reco::Track and TrackingParticle collections
Reimplemented from reco::TrackToTrackingParticleAssociatorBaseImpl.
Definition at line 116 of file QuickTrackAssociatorByHitsImpl.cc.
References associateSimToRecoImplementation(), clusterToTPMap_, and hitAssociator_.
|
overridevirtual |
Association Sim To Reco with Collections.
Implements reco::TrackToTrackingParticleAssociatorBaseImpl.
Definition at line 132 of file QuickTrackAssociatorByHitsImpl.cc.
References associateSimToRecoImplementation(), clusterToTPMap_, and hitAssociator_.
|
overridevirtual |
Reimplemented from reco::TrackToTrackingParticleAssociatorBaseImpl.
Definition at line 570 of file QuickTrackAssociatorByHitsImpl.cc.
References funct::abs(), absoluteNumberOfHits_, associateTrack(), clusterToTPMap_, denomreco, denomsim, getDoubleCount(), hitAssociator_, i, edm::AssociationMap< Tag >::insert(), LogTrace, edm::AssociationMap< Tag >::post_insert(), puritySimToReco_, HLT_25ns14e33_v1_cff::quality, qualitySimToReco_, TrajectorySeed::recHits(), simToRecoDenominator_, edm::AssociationMap< Tag >::size(), and threeHitTracksAreSpecial_.
|
private |
The method that does the work for both overloads of associateSimToReco.
Parts that actually rely on the type of the collections are delegated out to overloaded functions in the unnamed namespace of the .cc file. Parts that rely on the type of T_hitOrClusterAssociator are delegated out to overloaded methods.
Definition at line 188 of file QuickTrackAssociatorByHitsImpl.cc.
References funct::abs(), absoluteNumberOfHits_, associateTrack(), denomreco, denomsim, reco::Track::found(), getDoubleCount(), i, edm::AssociationMap< Tag >::insert(), puritySimToReco_, HLT_25ns14e33_v1_cff::quality, qualitySimToReco_, reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), simToRecoDenominator_, and threeHitTracksAreSpecial_.
Referenced by associateSimToReco().
|
private |
Returns the TrackingParticle that has the most associated hits to the given track.
Return value is a vector of pairs, where first is an edm::Ref to the associated TrackingParticle, and second is the number of associated hits.
Definition at line 245 of file QuickTrackAssociatorByHitsImpl.cc.
References getAllSimTrackIdentifiers(), i, TrackingParticle::numberOfHits(), and trackingParticleContainsIdentifier().
Referenced by associateRecoToSim(), associateRecoToSimImplementation(), associateSimToReco(), and associateSimToRecoImplementation().
|
private |
Returns the TrackingParticle that has the most associated hits to the given track.
See the notes for the other overload for the return type.
Note that the trackingParticles parameter is not actually required since all the information is in clusterToTPMap, but the method signature has to match the other overload because it is called from a templated method.
Definition at line 282 of file QuickTrackAssociatorByHitsImpl.cc.
References clusterTPAssociationListGreater(), and getMatchedClusters().
|
private |
Returns a vector of pairs where first is a SimTrackIdentifiers (see typedef above) and second is the number of hits that came from that sim track.
This is used so that the TrackingParticle collection only has to be looped over once to search for each sim track, rather than once per hit. E.g. If all the hits in the reco track come from the same sim track, then there will only be one entry with second as the number of hits in the track.
Definition at line 391 of file QuickTrackAssociatorByHitsImpl.cc.
References TrackerHitAssociator::associateHitId(), end, getHitFromIter(), and getDQMSummary::iter.
Referenced by associateTrack().
|
private |
This method was copied almost verbatim from the standard TrackAssociatorByHits.
Modified 01/May/2014 to take the TrackerHitAssociator as a parameter rather than using a member.
Definition at line 448 of file QuickTrackAssociatorByHitsImpl.cc.
References TrackerHitAssociator::associateHitId(), spr::find(), getHitFromIter(), and getDQMSummary::iter.
Referenced by associateRecoToSim(), associateRecoToSimImplementation(), associateSimToReco(), and associateSimToRecoImplementation().
|
private |
Overload for when using cluster to TrackingParticle association list.
Definition at line 480 of file QuickTrackAssociatorByHitsImpl.cc.
References clusterTPAssociationListGreater(), getMatchedClusters(), and getDQMSummary::iter.
|
inlineprivate |
Definition at line 164 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by getAllSimTrackIdentifiers(), getDoubleCount(), and getMatchedClusters().
|
inlineprivate |
Definition at line 168 of file QuickTrackAssociatorByHitsImpl.h.
|
private |
Definition at line 341 of file QuickTrackAssociatorByHitsImpl.cc.
References SiStripRecHit1D::cluster(), SiStripRecHit2D::cluster(), SiPixelRecHit::cluster(), compareJSON::const, end, TrackingRecHit::geographicalId(), getHitFromIter(), edm::Ref< C, T, F >::isNonnull(), TrackingRecHit::isValid(), getDQMSummary::iter, SiStripMatchedRecHit2D::monoClusterRef(), SiStripMatchedRecHit2D::monoHit(), TrackerSingleRecHit::omniClusterRef(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, SiStripMatchedRecHit2D::stereoClusterRef(), SiStripMatchedRecHit2D::stereoHit(), DetId::subdetId(), SiStripDetId::TEC, SiStripDetId::TIB, SiStripDetId::TID, and SiStripDetId::TOB.
Referenced by associateTrack(), and getDoubleCount().
|
inlinestaticprivate |
Definition at line 104 of file QuickTrackAssociatorByHitsImpl.h.
|
private |
Returns true if the supplied TrackingParticle has the supplied g4 track identifiers.
Definition at line 430 of file QuickTrackAssociatorByHitsImpl.cc.
References TrackingParticle::g4Track_begin(), and TrackingParticle::g4Track_end().
Referenced by associateTrack().
|
private |
Definition at line 195 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateRecoToSim(), associateRecoToSimImplementation(), associateSimToReco(), and associateSimToRecoImplementation().
|
private |
Definition at line 188 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateRecoToSim(), and associateSimToReco().
|
private |
Definition at line 192 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateRecoToSim(), and associateRecoToSimImplementation().
|
private |
creates either a ClusterTPAssociationList OR a TrackerHitAssociator and stores it in the provided unique_ptr. The other will be null.
A decision is made whether to create a ClusterTPAssociationList or a TrackerHitAssociator depending on how this track associator was configured. If the ClusterTPAssociationList couldn't be fetched from the event then it falls back to creating a TrackerHitAssociator.
Only one type will be created, never both. The other unique_ptr reference will be null so check for that and decide which to use.
N.B. The value of useClusterTPAssociation_ should not be used to decide which of the two pointers to use. If the cluster to TrackingParticle couldn't be retrieved from the event then pClusterToTPMap will be null but useClusterTPAssociation_ is no longer changed to false.
Definition at line 187 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateRecoToSim(), and associateSimToReco().
|
private |
Definition at line 191 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateSimToReco(), and associateSimToRecoImplementation().
|
private |
Definition at line 190 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateSimToReco(), and associateSimToRecoImplementation().
|
private |
Definition at line 193 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateSimToReco(), and associateSimToRecoImplementation().
|
private |
Definition at line 194 of file QuickTrackAssociatorByHitsImpl.h.
Referenced by associateRecoToSim(), associateRecoToSimImplementation(), associateSimToReco(), and associateSimToRecoImplementation().