ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigAnalysis
TrigInDetAnalysisUtils
TrigInDetAnalysisUtils
Associator_DeltaRCosmics.h
Go to the documentation of this file.
1
/* emacs: this is -*- c++ -*- */
10
11
12
#ifndef TrigInDetAnalysisUtils_Associator_DeltaRCosmics_H
13
#define TrigInDetAnalysisUtils_Associator_DeltaRCosmics_H
14
15
16
#include <iostream>
17
#include <string>
18
#include <cmath>
19
#include <map>
20
21
#include "
TrigInDetAnalysis/TrackAssociator.h
"
22
#include "
TrigInDetAnalysis/Track.h
"
23
24
25
class
Associator_DeltaRCosmics
:
public
TrackAssociator
{
26
27
public
:
28
29
Associator_DeltaRCosmics
(
const
std::string& name,
double
deltaR
) :
TrackAssociator
(name),
m_deltaR2
(
deltaR
*
deltaR
) {}
30
31
~Associator_DeltaRCosmics
() { }
32
33
34
virtual
void
match
(
const
std::vector<TIDA::Track*>& referenceTracks,
35
const
std::vector<TIDA::Track*>& testTracks) {
36
37
// Clear previously filled association map
38
clear
();
39
40
// Loop over reference tracks
41
std::vector<TIDA::Track*>::const_iterator
reference
, referenceEnd=referenceTracks.end();
42
for
(
reference
=referenceTracks.begin();
reference
!=referenceEnd;
reference
++) {
43
44
// Loop over test tracks and find the closest
45
TIDA::Track
* bestMatch = NULL;
46
double
bestDeltaR=1000;
47
48
std::vector<TIDA::Track*>::const_iterator test, testEnd=testTracks.end();
49
for
(test=testTracks.begin(); test!=testEnd; test++) {
50
51
// Evaluate distance between reference and test tracks
52
double
deta = (*reference)->eta() + (*test)->eta();
53
double
dphi = (*reference)->phi() - (*test)->phi() -
M_PI
;
54
if
(dphi>
M_PI
) dphi-=2*
M_PI
;
55
if
(dphi<-
M_PI
) dphi+=2*
M_PI
;
56
double
deltaR
= deta*deta+dphi*dphi;
57
58
// Check if this is the best match so far
59
if
(bestMatch==NULL ||
deltaR
<bestDeltaR) {
60
bestDeltaR =
deltaR
;
61
bestMatch = (*test);
62
}
63
}
64
65
// Check if the best match is within delta R specifications
66
if
(bestMatch && bestDeltaR<
m_deltaR2
) {
67
// Create reference->test and test->reference associations
68
mmatched
.insert(map_type::value_type(*
reference
, bestMatch));
69
mrevmatched
.insert( map_type::value_type(bestMatch, *
reference
));
70
}
71
}
72
}
73
74
private
:
75
76
double
m_deltaR2
;
77
78
};
79
80
81
#endif
// TrigInDetAnalysisUtils_Associator_DeltaRCosmics_H
M_PI
#define M_PI
Definition
ActiveFraction.h:14
deltaR
Scalar deltaR(const MatrixBase< Derived > &vec) const
Definition
AmgMatrixBasePlugin.h:105
TrackAssociator.h
TrackAssociator
TIDA::Associator< TIDA::Track > TrackAssociator
Definition
TrackAssociator.h:26
Track.h
Associator_DeltaRCosmics::m_deltaR2
double m_deltaR2
Definition
Associator_DeltaRCosmics.h:76
Associator_DeltaRCosmics::Associator_DeltaRCosmics
Associator_DeltaRCosmics(const std::string &name, double deltaR)
Definition
Associator_DeltaRCosmics.h:29
Associator_DeltaRCosmics::match
virtual void match(const std::vector< TIDA::Track * > &referenceTracks, const std::vector< TIDA::Track * > &testTracks)
Definition
Associator_DeltaRCosmics.h:34
Associator_DeltaRCosmics::~Associator_DeltaRCosmics
~Associator_DeltaRCosmics()
Definition
Associator_DeltaRCosmics.h:31
TIDA::Associator< TIDA::Track >::mmatched
map_type mmatched
Definition
TIDAAssociator.h:75
TIDA::Associator< TIDA::Track >::clear
void clear()
Definition
TIDAAssociator.h:65
TIDA::Associator< TIDA::Track >::mrevmatched
rmap_type mrevmatched
Definition
TIDAAssociator.h:76
TIDA::Track
Definition
Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/Track.h:26
reference
Definition
hcg.cxx:440
Generated on
for ATLAS Offline Software by
1.17.0