17#ifndef TrigInDetAnalysisUtils_Associator_DeltaR_H
18#define TrigInDetAnalysisUtils_Associator_DeltaR_H
39 ~Associator_DeltaR() { }
43 virtual void match(
const std::vector<TIDA::Track*>& referenceTracks,
44 const std::vector<TIDA::Track*>& testTracks) {
50 std::vector<TIDA::Track*>::const_iterator
reference, referenceEnd=referenceTracks.end();
51 for(reference=referenceTracks.begin(); reference!=referenceEnd; reference++) {
54 TIDA::Track* bestMatch = NULL;
55 double bestDeltaR=1000;
57 std::vector<TIDA::Track*>::const_iterator
test, testEnd=testTracks.end();
58 for(test=testTracks.begin(); test!=testEnd; test++) {
61 double deta = (*reference)->eta() - (*test)->eta();
62 double dphi = (*reference)->phi() - (*test)->phi();
65 double deltaR = deta*deta+dphi*dphi;
68 if(bestMatch==NULL ||
deltaR<bestDeltaR) {
75 if(bestMatch && bestDeltaR<m_deltaR2) {
77 mmatched.insert(map_type::value_type(*reference, bestMatch));
78 mrevmatched.insert(map_type::value_type(bestMatch, *reference));
Scalar deltaR(const MatrixBase< Derived > &vec) const
TIDA::Associator< TIDA::Track > TrackAssociator
virtual Associator * clone()=0
virtual void match(const std::vector< TIDA::Track * > &s1, const std::vector< TIDA::Track * > &s2)=0