ATLAS Offline Software
Loading...
Searching...
No Matches
TrackMatchDeltaR Class Referenceabstract

#include <TrackMatchDeltaR.h>

Inheritance diagram for TrackMatchDeltaR:
Collaboration diagram for TrackMatchDeltaR:

Public Types

typedef std::map< TIDA::Track *, TIDA::Track * > map_type
typedef std::map< TIDA::Track *, TIDA::Track * > rmap_type

Public Member Functions

 TrackMatchDeltaR (const std::string &name, double R)
 ~TrackMatchDeltaR ()
virtual void match (const std::vector< TIDA::Track * > &s1, const std::vector< TIDA::Track * > &s2)
virtual double deltaR2 (const TIDA::Track *reftrack, const TIDA::Track *testtrack)
virtual Associatorclone ()=0
virtual const TIDA::Trackmatched (TIDA::Track *t)
const map_typematched () const
virtual const TIDA::Trackrevmatched (TIDA::Track *t)
const rmap_typerevmatched () const
void clear ()
unsigned size () const

Protected Attributes

std::string mname
map_type mmatched
rmap_type mrevmatched

Private Attributes

double m_R2

Detailed Description

Definition at line 25 of file TrackMatchDeltaR.h.

Member Typedef Documentation

◆ map_type

typedef std::map<TIDA::Track*, TIDA::Track*> TIDA::Associator< TIDA::Track, TIDA::Track >::map_type
inherited

Definition at line 28 of file TIDAAssociator.h.

◆ rmap_type

typedef std::map<TIDA::Track*, TIDA::Track*> TIDA::Associator< TIDA::Track, TIDA::Track >::rmap_type
inherited

Definition at line 29 of file TIDAAssociator.h.

Constructor & Destructor Documentation

◆ TrackMatchDeltaR()

TrackMatchDeltaR::TrackMatchDeltaR ( const std::string & name,
double R )
inline

Definition at line 29 of file TrackMatchDeltaR.h.

29 :
30 TrackAssociator(name), m_R2(R*R)
31 { }
TIDA::Associator< TIDA::Track > TrackAssociator

◆ ~TrackMatchDeltaR()

TrackMatchDeltaR::~TrackMatchDeltaR ( )
inline

Definition at line 33 of file TrackMatchDeltaR.h.

33{ }

Member Function Documentation

◆ clear()

void TIDA::Associator< TIDA::Track, TIDA::Track >::clear ( )
inlineinherited

Definition at line 63 of file TIDAAssociator.h.

◆ clone()

◆ deltaR2()

virtual double TrackMatchDeltaR::deltaR2 ( const TIDA::Track * reftrack,
const TIDA::Track * testtrack )
inlinevirtual

Definition at line 78 of file TrackMatchDeltaR.h.

78 {
79 double deta = reftrack->eta()-testtrack->eta();
80 double dphi = reftrack->phi()-testtrack->phi();
81 if ( dphi> M_PI ) dphi-=2*M_PI;
82 if ( dphi<-M_PI ) dphi+=2*M_PI;
83 return deta*deta+dphi*dphi;
84 }
#define M_PI

◆ match()

virtual void TrackMatchDeltaR::match ( const std::vector< TIDA::Track * > & s1,
const std::vector< TIDA::Track * > & s2 )
inlinevirtual

Implements TIDA::Associator< TIDA::Track >.

Definition at line 36 of file TrackMatchDeltaR.h.

38 {
39 clear();
40
41 const std::vector<TIDA::Track*>& ref = s1;
42 const std::vector<TIDA::Track*>& test = s2;
43
44 // loop over reference tracks
45 for ( int i=ref.size() ; i-- ; ) {
46
47 TIDA::Track* reftrack = ref[i];
48
49 // find the closest track
50 TIDA::Track* tmptrack = NULL;
51 double R2min = 0;
52
53 // loop over test tracks
54 for ( int j=test.size() ; j-- ; ) {
55
56 TIDA::Track* testtrack = test[j];
57
58 double R2tmp = deltaR2( reftrack, testtrack );
59
60 // found a close track
61 if ( tmptrack==NULL || R2tmp<R2min ) {
62 R2min = R2tmp;
63 tmptrack = testtrack;
64 }
65 }
66
67 // is this inside the delta R specification?
68 if ( tmptrack && R2min<m_R2 ) {
69 mmatched.insert( map_type::value_type(reftrack,tmptrack) );
70 mrevmatched.insert( map_type::value_type(tmptrack,reftrack) );
71
72 std::cout << "\t\tSUTT matched " << *reftrack << "\t -> \t" << *tmptrack << "\tDr=" << R2min << std::endl;
73 }
74 }
75 }
const boost::regex ref(r_ef)
virtual double deltaR2(const TIDA::Track *reftrack, const TIDA::Track *testtrack)

◆ matched() [1/2]

const map_type & TIDA::Associator< TIDA::Track, TIDA::Track >::matched ( ) const
inlineinherited

Definition at line 59 of file TIDAAssociator.h.

59{ return mmatched; }

◆ matched() [2/2]

virtual const TIDA::Track * TIDA::Associator< TIDA::Track, TIDA::Track >::matched ( TIDA::Track * t)
inlinevirtualinherited

Definition at line 45 of file TIDAAssociator.h.

45 {
46 typename map_type::const_iterator titr = mmatched.find(t);
47 if ( titr != mmatched.end() ) return titr->second;
48 else return 0;
49 }

◆ revmatched() [1/2]

const rmap_type & TIDA::Associator< TIDA::Track, TIDA::Track >::revmatched ( ) const
inlineinherited

Definition at line 60 of file TIDAAssociator.h.

60{ return mrevmatched; }

◆ revmatched() [2/2]

virtual const TIDA::Track * TIDA::Associator< TIDA::Track, TIDA::Track >::revmatched ( TIDA::Track * t)
inlinevirtualinherited

Definition at line 52 of file TIDAAssociator.h.

52 {
54 if ( titr != mrevmatched.end() ) return titr->second;
55 else return 0;
56 }

◆ size()

unsigned TIDA::Associator< TIDA::Track, TIDA::Track >::size ( ) const
inlineinherited

Definition at line 66 of file TIDAAssociator.h.

66{ return mmatched.size(); }
unsigned size() const

Member Data Documentation

◆ m_R2

double TrackMatchDeltaR::m_R2
private

Definition at line 88 of file TrackMatchDeltaR.h.

◆ mmatched

map_type TIDA::Associator< TIDA::Track, TIDA::Track >::mmatched
protectedinherited

Definition at line 73 of file TIDAAssociator.h.

◆ mname

std::string TIDA::Associator< TIDA::Track, TIDA::Track >::mname
protectedinherited

Definition at line 71 of file TIDAAssociator.h.

◆ mrevmatched

rmap_type TIDA::Associator< TIDA::Track, TIDA::Track >::mrevmatched
protectedinherited

Definition at line 74 of file TIDAAssociator.h.


The documentation for this class was generated from the following file: