1 #ifndef QuickTrackAssociatorByHitsImpl_h 2 #define QuickTrackAssociatorByHitsImpl_h 71 std::unique_ptr<const TrackerHitAssociator> hitAssoc,
73 bool absoluteNumberOfHits,
74 double qualitySimToReco,
75 double puritySimToReco,
77 double pixelHitWeight,
78 bool threeHitTracksAreSpecial,
110 typedef std::pair<uint32_t, EncodedEventId>
118 return (
i.first.key() >
j.first.key());
127 template <
class T_RecoToSimCollection,
128 class T_TrackCollection,
129 class T_TrackingParticleCollection,
130 class T_hitOrClusterAssociator>
134 T_hitOrClusterAssociator hitOrClusterAssociator)
const;
142 template <
class T_SimToRecoCollection,
143 class T_TrackCollection,
144 class T_TrackingParticleCollection,
145 class T_hitOrClusterAssociator>
149 T_hitOrClusterAssociator hitOrClusterAssociator)
const;
156 template <
typename T_TPCollection,
typename iter>
157 std::vector<std::pair<edm::Ref<TrackingParticleCollection>,
double> >
associateTrack(
170 template <
typename T_TPCollection,
typename iter>
171 std::vector<std::pair<edm::Ref<TrackingParticleCollection>,
double> >
associateTrack(
186 template <
typename iter>
193 template <
typename iter>
205 template <
typename iter>
210 template <
typename T_Track>
212 template <
typename T_Track>
216 template <
typename iter>
250 #endif // end of ifndef QuickTrackAssociatorByHitsImpl_h
static bool tpIntPairGreater(std::pair< edm::Ref< TrackingParticleCollection >, size_t > i, std::pair< edm::Ref< TrackingParticleCollection >, size_t > j)
std::pair< uint32_t, EncodedEventId > SimTrackIdentifiers
This is enough information to uniquely identify a sim track.
double weightedNumberOfTrackClusters(const T_Track &track, const TrackerHitAssociator &) const
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track > > &trackCollectionHandle, const edm::Handle< TrackingParticleCollection > &trackingParticleCollectionHandle) const override
trackingParticleCollection
bool threeHitTracksAreSpecial_
edm::EDProductGetter const * productGetter_
creates either a ClusterTPAssociation OR a TrackerHitAssociator and stores it in the provided unique_...
const ClusterTPAssociation * clusterToTPMap_
QuickTrackAssociatorByHitsImpl(edm::EDProductGetter const &productGetter, std::unique_ptr< const TrackerHitAssociator > hitAssoc, const ClusterTPAssociation *clusterToTPMap, bool absoluteNumberOfHits, double qualitySimToReco, double puritySimToReco, double cutRecoToSim, double pixelHitWeight, bool threeHitTracksAreSpecial, SimToRecoDenomType simToRecoDenominator)
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track > > &trackCollectionHandle, const edm::Handle< TrackingParticleCollection > &trackingParticleCollectionHandle) const override
std::vector< std::pair< edm::Ref< TrackingParticleCollection >, double > > associateTrack(const TrackerHitAssociator &hitAssociator, const T_TPCollection &trackingParticles, const TrackingParticleRefKeySet *trackingParticleKeys, iter begin, iter end) const
Returns the TrackingParticle that has the most associated hits to the given track.
SimToRecoDenomType simToRecoDenominator_
T_RecoToSimCollection associateRecoToSimImplementation(const T_TrackCollection &trackCollection, const T_TrackingParticleCollection &trackingParticleCollection, const TrackingParticleRefKeySet *trackingParticleKeys, T_hitOrClusterAssociator hitOrClusterAssociator) const
The method that does the work for both overloads of associateRecoToSim.
bool absoluteNumberOfHits_
edm::IndexSet TrackingParticleRefKeySet
Set for TrackingParticleRef keys.
std::vector< std::pair< SimTrackIdentifiers, double > > 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 ...
Monte Carlo truth information used for tracking validation.
EDProductGetter const * productGetter(std::atomic< void const *> const &iCache)
TrackToTrackingParticleAssociator that associates by hits a bit quicker than the normal TrackAssociat...
T_SimToRecoCollection associateSimToRecoImplementation(const T_TrackCollection &trackCollection, const T_TrackingParticleCollection &trackingParticleCollection, const TrackingParticleRefKeySet *trackingParticleKeys, T_hitOrClusterAssociator hitOrClusterAssociator) const
The method that does the work for both overloads of associateSimToReco.
double getDoubleCount(const TrackerHitAssociator &hitAssociator, iter begin, iter end, TrackingParticleRef associatedTrackingParticle) const
This method was copied almost verbatim from the standard TrackAssociatorByHits.
std::unique_ptr< const TrackerHitAssociator > hitAssociator_
bool trackingParticleContainsIdentifier(const TrackingParticle *pTrackingParticle, const SimTrackIdentifiers &identifier) const
Returns true if the supplied TrackingParticle has the supplied g4 track identifiers.