ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
eflowRec
src
PFMatchPositions.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/*
6
* PFMatchPositions.h
7
*
8
* Created on: 25.03.2014
9
* Author: tlodd
10
*/
11
12
#ifndef EFLOWREC_PFMATCHPOSITION_H
13
#define EFLOWREC_PFMATCHPOSITION_H
14
15
#include <vector>
16
17
#include "
eflowUtil.h
"
18
#include "
PFMatchInterfaces.h
"
19
20
namespace
PFMatch
{
21
/* Position classes */
22
23
class
EtaPhi
:
public
eflowEtaPhiPosition
{
24
public
:
25
EtaPhi
(
const
eflowEtaPhiPosition
& etaphi):
eflowEtaPhiPosition
(etaphi) { }
26
EtaPhi
() { }
27
virtual
~EtaPhi
() { }
28
};
29
30
class
AllLayersEtaPhi
{
31
public
:
32
AllLayersEtaPhi
() { }
33
virtual
~AllLayersEtaPhi
() {
34
unsigned
int
nLay =
m_etaphiInLayer
.size();
35
for
(
unsigned
int
iLay = 0; iLay < nLay; ++iLay) {
delete
m_etaphiInLayer
[iLay]; }
36
}
37
38
std::vector<EtaPhi*>
m_etaphiInLayer
;
39
};
40
41
class
EtaPhiWithVariance
:
public
EtaPhi
{
42
public
:
43
EtaPhiWithVariance
(
eflowEtaPhiPosition
etaphi,
double
etaVar,
double
phiVar):
44
EtaPhi
(etaphi),
m_etaVariance
(etaVar),
m_phiVariance
(phiVar) { }
45
EtaPhiWithVariance
():
m_etaVariance
(NAN),
m_phiVariance
(NAN) { }
46
virtual
~EtaPhiWithVariance
() { }
47
48
double
m_etaVariance
;
49
double
m_phiVariance
;
50
};
51
52
53
/* Cluster position provider classes */
54
55
class
ClusterPlainEtaPhiProvider
:
public
ClusterPositionProvider
<EtaPhi> {
56
public
:
57
ClusterPlainEtaPhiProvider
() { }
58
virtual
~ClusterPlainEtaPhiProvider
() { }
59
60
EtaPhi
getPosition
(
ICluster
* cluster)
const
;
61
};
62
63
class
ClusterGeometricalCenterProvider
:
public
ClusterPositionProvider
<EtaPhiWithVariance> {
64
public
:
65
ClusterGeometricalCenterProvider
() { }
66
virtual
~ClusterGeometricalCenterProvider
() { }
67
68
private
:
69
EtaPhiWithVariance
getPosition
(
ICluster
* cluster)
const
;
70
71
static
const
double
m_etaPhiLowerLimit
;
72
};
73
74
/* Track position provider classes */
75
76
class
TrackEtaPhiInFixedLayersProvider
:
public
TrackPositionProvider
<EtaPhi> {
77
public
:
78
TrackEtaPhiInFixedLayersProvider
(
LayerType
barrelLayer,
LayerType
endcapLayer,
LayerType
fcalLayer):
79
m_barrelLayer
(barrelLayer),
m_endcapLayer
(endcapLayer),
m_fcalLayer
(fcalLayer) { }
80
virtual
~TrackEtaPhiInFixedLayersProvider
() { }
81
82
EtaPhi
getPosition
(
ITrack
* track)
const
;
83
84
private
:
85
LayerType
m_barrelLayer
;
86
LayerType
m_endcapLayer
;
87
LayerType
m_fcalLayer
;
88
};
89
90
91
/* The position provider factories */
92
93
class
TrackPositionFactory
{
94
public
:
95
static
std::unique_ptr<IPositionProvider>
Get
(
const
std::string& positionType) {
96
if
(positionType ==
"EM1EtaPhi"
) {
97
return
std::make_unique<TrackEtaPhiInFixedLayersProvider>(TrackLayer::EMB1, TrackLayer::EME1, TrackLayer::FCAL0);
98
}
else
if
(positionType ==
"EM2EtaPhi"
) {
99
return
std::make_unique<TrackEtaPhiInFixedLayersProvider>(TrackLayer::EMB2, TrackLayer::EME2, TrackLayer::FCAL0);
100
}
else
{
101
std::cerr <<
"TrackPositionFactory\tERROR\tInvalid track position type: \""
<< positionType <<
"\""
<< std::endl;
102
assert(
false
);
103
return
0;
104
}
105
}
106
};
107
108
class
ClusterPositionFactory
{
109
public
:
110
static
std::unique_ptr<IPositionProvider>
Get
(
const
std::string& positionType) {
111
if
(positionType ==
"PlainEtaPhi"
) {
112
return
std::make_unique<ClusterPlainEtaPhiProvider>();
113
}
else
if
(positionType ==
"GeomCenterEtaPhi"
) {
114
return
std::make_unique<ClusterGeometricalCenterProvider>();
115
}
else
{
116
std::cerr <<
"ClusterPositionFactory\tERROR\tInvalid cluster position type: \""
<< positionType <<
"\""
<< std::endl;
117
assert(
false
);
118
return
0;
119
}
120
}
121
};
122
123
}
124
125
#endif
/* EFLOWREC_PFMATCHPOSITION_H */
PFMatchInterfaces.h
PFMatch::AllLayersEtaPhi::~AllLayersEtaPhi
virtual ~AllLayersEtaPhi()
Definition
PFMatchPositions.h:33
PFMatch::AllLayersEtaPhi::m_etaphiInLayer
std::vector< EtaPhi * > m_etaphiInLayer
Definition
PFMatchPositions.h:38
PFMatch::AllLayersEtaPhi::AllLayersEtaPhi
AllLayersEtaPhi()
Definition
PFMatchPositions.h:32
PFMatch::ClusterGeometricalCenterProvider::~ClusterGeometricalCenterProvider
virtual ~ClusterGeometricalCenterProvider()
Definition
PFMatchPositions.h:66
PFMatch::ClusterGeometricalCenterProvider::ClusterGeometricalCenterProvider
ClusterGeometricalCenterProvider()
Definition
PFMatchPositions.h:65
PFMatch::ClusterGeometricalCenterProvider::m_etaPhiLowerLimit
static const double m_etaPhiLowerLimit
Definition
PFMatchPositions.h:71
PFMatch::ClusterGeometricalCenterProvider::getPosition
EtaPhiWithVariance getPosition(ICluster *cluster) const
Definition
PFMatchPositions.cxx:40
PFMatch::ClusterPlainEtaPhiProvider::~ClusterPlainEtaPhiProvider
virtual ~ClusterPlainEtaPhiProvider()
Definition
PFMatchPositions.h:58
PFMatch::ClusterPlainEtaPhiProvider::getPosition
EtaPhi getPosition(ICluster *cluster) const
Definition
PFMatchPositions.cxx:33
PFMatch::ClusterPlainEtaPhiProvider::ClusterPlainEtaPhiProvider
ClusterPlainEtaPhiProvider()
Definition
PFMatchPositions.h:57
PFMatch::ClusterPositionFactory
Definition
PFMatchPositions.h:108
PFMatch::ClusterPositionFactory::Get
static std::unique_ptr< IPositionProvider > Get(const std::string &positionType)
Definition
PFMatchPositions.h:110
PFMatch::ClusterPositionProvider
Definition
PFMatchInterfaces.h:96
PFMatch::EtaPhiWithVariance
Definition
PFMatchPositions.h:41
PFMatch::EtaPhiWithVariance::m_etaVariance
double m_etaVariance
Definition
PFMatchPositions.h:48
PFMatch::EtaPhiWithVariance::m_phiVariance
double m_phiVariance
Definition
PFMatchPositions.h:49
PFMatch::EtaPhiWithVariance::~EtaPhiWithVariance
virtual ~EtaPhiWithVariance()
Definition
PFMatchPositions.h:46
PFMatch::EtaPhiWithVariance::EtaPhiWithVariance
EtaPhiWithVariance()
Definition
PFMatchPositions.h:45
PFMatch::EtaPhiWithVariance::EtaPhiWithVariance
EtaPhiWithVariance(eflowEtaPhiPosition etaphi, double etaVar, double phiVar)
Definition
PFMatchPositions.h:43
PFMatch::EtaPhi
Definition
PFMatchPositions.h:23
PFMatch::EtaPhi::~EtaPhi
virtual ~EtaPhi()
Definition
PFMatchPositions.h:27
PFMatch::EtaPhi::EtaPhi
EtaPhi()
Definition
PFMatchPositions.h:26
PFMatch::EtaPhi::EtaPhi
EtaPhi(const eflowEtaPhiPosition &etaphi)
Definition
PFMatchPositions.h:25
PFMatch::ICluster
Definition
PFMatchInterfaces.h:37
PFMatch::ITrack
Definition
PFMatchInterfaces.h:28
PFMatch::TrackEtaPhiInFixedLayersProvider::m_endcapLayer
LayerType m_endcapLayer
Definition
PFMatchPositions.h:86
PFMatch::TrackEtaPhiInFixedLayersProvider::getPosition
EtaPhi getPosition(ITrack *track) const
Definition
PFMatchPositions.cxx:19
PFMatch::TrackEtaPhiInFixedLayersProvider::~TrackEtaPhiInFixedLayersProvider
virtual ~TrackEtaPhiInFixedLayersProvider()
Definition
PFMatchPositions.h:80
PFMatch::TrackEtaPhiInFixedLayersProvider::m_fcalLayer
LayerType m_fcalLayer
Definition
PFMatchPositions.h:87
PFMatch::TrackEtaPhiInFixedLayersProvider::m_barrelLayer
LayerType m_barrelLayer
Definition
PFMatchPositions.h:85
PFMatch::TrackEtaPhiInFixedLayersProvider::TrackEtaPhiInFixedLayersProvider
TrackEtaPhiInFixedLayersProvider(LayerType barrelLayer, LayerType endcapLayer, LayerType fcalLayer)
Definition
PFMatchPositions.h:78
PFMatch::TrackPositionFactory
Definition
PFMatchPositions.h:93
PFMatch::TrackPositionFactory::Get
static std::unique_ptr< IPositionProvider > Get(const std::string &positionType)
Definition
PFMatchPositions.h:95
PFMatch::TrackPositionProvider
Definition
PFMatchInterfaces.h:99
eflowEtaPhiPosition::eflowEtaPhiPosition
eflowEtaPhiPosition()=default
eflowUtil.h
PFMatch
Definition
PFMatchDistance.cxx:15
PFMatch::LayerType
eflowCalo::LAYER LayerType
Definition
PFMatchInterfaces.h:23
Generated on
for ATLAS Offline Software by
1.17.0