ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
eflowRec
src
eflowTrackCaloPoints.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
/********************************************************************
7
8
NAME: eflowTrackCaloPoints.cxx
9
PACKAGE: offline/Reconstruction/eflowRec
10
11
AUTHORS: R. Duxfield
12
CREATED: 4th January, 2006
13
14
********************************************************************/
15
16
#include <utility>
17
#include <iostream>
18
#include <cmath>
19
20
#include "
eflowTrackCaloPoints.h
"
21
22
using
std::pair;
23
24
const
pair<float, float>
eflowTrackCaloPoints::m_defaultEtaPhiPair
= pair<float, float>(-999.0, -999.0);
25
const
Amg::Vector3D
eflowTrackCaloPoints::m_nullVector
=
Amg::Vector3D
(0.0, 0.0, 0.0);
26
const
eflowEtaPhiPosition
eflowTrackCaloPoints::m_defaultEtaPhiPosition
=
eflowEtaPhiPosition
(-999.,-999.);
27
28
double
eflowTrackCaloPoints::defaultEta
() {
return
(
double
)
m_defaultEtaPhiPair
.first;}
29
double
eflowTrackCaloPoints::defaultPhi
() {
return
(
double
)
m_defaultEtaPhiPair
.second;}
30
31
eflowTrackCaloPoints::eflowTrackCaloPoints
(
const
std::map<eflowCalo::LAYER, const Trk::TrackParameters*> & trackParameters):
32
m_isEM1Barrel
(trackParameters.begin()->first ==
eflowCalo
::EMB1) {
33
34
/* Fill etaPhiPositions map */
35
std::map<eflowCalo::LAYER, const Trk::TrackParameters*>::const_iterator itPars = trackParameters.begin();
36
std::map<eflowCalo::LAYER, const Trk::TrackParameters*>::const_iterator endPars = trackParameters.end();
37
m_isEM2Barrel
=
false
;
38
for
(; itPars != endPars; ++itPars) {
39
setEtaPhi
(itPars->first,
parToPosition
(itPars->second));
40
if
(itPars->first ==
eflowCalo::EMB2
)
m_isEM2Barrel
=
true
;
41
m_positions
[itPars->first] =
parToPosition
(itPars->second);
42
}
43
44
}
45
46
eflowTrackCaloPoints::eflowTrackCaloPoints
(
const
std::map<eflowCalo::LAYER, const Trk::TrackParameters*> & trackParameters,
47
std::map<CaloCell_ID::CaloSample,const Trk::TrackParameters*>& tileTrackParamaters) :
48
m_isEM1Barrel
(trackParameters.begin()->first ==
eflowCalo
::EMB1){
49
/* Fill etaPhiPositions map */
50
std::map<eflowCalo::LAYER, const Trk::TrackParameters*>::const_iterator itPars = trackParameters.begin();
51
std::map<eflowCalo::LAYER, const Trk::TrackParameters*>::const_iterator endPars = trackParameters.end();
52
m_isEM2Barrel
=
false
;
53
for
(; itPars != endPars; ++itPars) {
54
setEtaPhi
(itPars->first,
parToPosition
(itPars->second));
55
if
(itPars->first ==
eflowCalo::EMB2
)
m_isEM2Barrel
=
true
;
56
m_positions
[itPars->first] =
parToPosition
(itPars->second);
57
}
58
59
for
(
auto
firstTileParam : tileTrackParamaters)
setEtaPhiTile
(firstTileParam.first,
parToPosition
(firstTileParam.second));
60
61
}
62
63
eflowTrackCaloPoints::eflowTrackCaloPoints
(
const
std::map<eflowCalo::LAYER, const Acts::BoundTrackParameters*> & trackParameters,
64
const
Acts::GeometryContext& gctx) :
65
m_isEM1Barrel
(trackParameters.begin()->first ==
eflowCalo
::EMB1){
66
for
(
auto
keyValuePair : trackParameters) {
67
setEtaPhi
(keyValuePair.first,
parToPosition
(keyValuePair.second, gctx));
68
if
(keyValuePair.first ==
eflowCalo::EMB2
)
m_isEM2Barrel
=
true
;
69
m_positions
[keyValuePair.first] =
parToPosition
(keyValuePair.second, gctx);
70
}
71
}
72
73
eflowTrackCaloPoints::~eflowTrackCaloPoints
() =
default
;
74
75
void
eflowTrackCaloPoints::setEtaPhi
(
eflowCalo::LAYER
lay,
const
Amg::Vector3D
&
vec
) {
76
m_etaPhiPositions
[lay] = (
vec
!=
m_nullVector
) ?
eflowEtaPhiPosition
(
vec
.eta(),
vec
.phi())
77
:
m_defaultEtaPhiPosition
;
78
}
79
80
void
eflowTrackCaloPoints::setEtaPhiTile
(
CaloCell_ID::CaloSample
lay,
const
Amg::Vector3D
&
vec
) {
81
m_tileEtaPhiPositions
[lay] = (
vec
!=
m_nullVector
) ?
eflowEtaPhiPosition
(
vec
.eta(),
vec
.phi())
82
:
m_defaultEtaPhiPosition
;
83
}
84
85
//only used in eflowTrackExtrapolatorTool
86
void
eflowTrackCaloPoints::setEtaPhi
(
eflowCaloENUM
layer,
double
eta
,
double
phi
) {
87
m_etaPhiPositions
[layer] =
eflowEtaPhiPosition
(
eta
,
phi
);
88
}
89
90
const
pair<float, float>
eflowTrackCaloPoints::operator[]
(
eflowCaloENUM
layer)
const
{
91
eflowEtaPhiPosition
thisPosition =
getEtaPhiPos
(layer);
92
return
pair<float, float>(thisPosition.
getEta
(), thisPosition.
getPhiD
());
93
}
94
const
eflowEtaPhiPosition
&
eflowTrackCaloPoints::getEtaPhiPos
(
eflowCalo::LAYER
layer)
const
{
95
std::map< eflowCalo::LAYER, eflowEtaPhiPosition>::const_iterator it =
m_etaPhiPositions
.find(layer);
96
return
(it ==
m_etaPhiPositions
.end()) ?
m_defaultEtaPhiPosition
: it->second;
97
}
98
99
const
eflowEtaPhiPosition
&
eflowTrackCaloPoints::getTileEtaPhiPos
(
CaloCell_ID::CaloSample
layer)
const
{
100
std::map< CaloCell_ID::CaloSample , eflowEtaPhiPosition>::const_iterator it =
m_tileEtaPhiPositions
.find(layer);
101
return
(it ==
m_tileEtaPhiPositions
.end()) ?
m_defaultEtaPhiPosition
: it->second;
102
}
103
104
Amg::Vector3D
eflowTrackCaloPoints::getPosition
(
eflowCalo::LAYER
layer) {
105
std::map<eflowCalo::LAYER, Amg::Vector3D>::const_iterator it =
m_positions
.find(layer);
106
return
(it ==
m_positions
.end()) ?
m_nullVector
: it->second;
107
}
108
109
Amg::Vector3D
eflowTrackCaloPoints::parToPosition
(
const
Trk::TrackParameters
* trackPars) {
110
return
(trackPars !=
nullptr
) ? trackPars->
position
() :
m_nullVector
;
111
}
112
113
Amg::Vector3D
eflowTrackCaloPoints::parToPosition
(
const
Acts::BoundTrackParameters* trackPars,
const
Acts::GeometryContext& gctx) {
114
return
trackPars->position(gctx);
115
}
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
vec
std::vector< size_t > vec
Definition
CombinationsGeneratorTest.cxx:9
CaloCell_ID::CaloSample
CaloSampling::CaloSample CaloSample
Definition
CaloCell_ID.h:53
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
eflowCalo
This defines the eflowCalo enum, which is used to label calorimeter layers in a simplified scheme whi...
Definition
eflowCaloRegions.h:25
eflowCalo::LAYER
LAYER
Definition
eflowCaloRegions.h:28
eflowCalo::EMB2
@ EMB2
Definition
eflowCaloRegions.h:29
eflowEtaPhiPosition
Definition
eflowUtil.h:82
eflowEtaPhiPosition::getPhiD
double getPhiD() const
Definition
eflowUtil.h:89
eflowEtaPhiPosition::getEta
double getEta() const
Definition
eflowUtil.h:87
eflowTrackCaloPoints::m_isEM1Barrel
bool m_isEM1Barrel
Definition
eflowTrackCaloPoints.h:77
eflowTrackCaloPoints::defaultEta
static double defaultEta()
Definition
eflowTrackCaloPoints.cxx:28
eflowTrackCaloPoints::parToPosition
static Amg::Vector3D parToPosition(const Trk::TrackParameters *extrapolatedParameters)
Definition
eflowTrackCaloPoints.cxx:109
eflowTrackCaloPoints::eflowTrackCaloPoints
eflowTrackCaloPoints()
Definition
eflowTrackCaloPoints.h:43
eflowTrackCaloPoints::defaultPhi
static double defaultPhi()
Definition
eflowTrackCaloPoints.cxx:29
eflowTrackCaloPoints::m_nullVector
static const Amg::Vector3D m_nullVector
Definition
eflowTrackCaloPoints.h:82
eflowTrackCaloPoints::m_defaultEtaPhiPair
static const std::pair< float, float > m_defaultEtaPhiPair
Definition
eflowTrackCaloPoints.h:88
eflowTrackCaloPoints::getPosition
Amg::Vector3D getPosition(eflowCalo::LAYER layer)
Definition
eflowTrackCaloPoints.cxx:104
eflowTrackCaloPoints::getEtaPhiPos
const eflowEtaPhiPosition & getEtaPhiPos(eflowCalo::LAYER layer) const
Definition
eflowTrackCaloPoints.cxx:94
eflowTrackCaloPoints::setEtaPhi
void setEtaPhi(eflowCaloENUM secondLayer, double eta, double phi)
Definition
eflowTrackCaloPoints.cxx:86
eflowTrackCaloPoints::m_isEM2Barrel
bool m_isEM2Barrel
Definition
eflowTrackCaloPoints.h:78
eflowTrackCaloPoints::getTileEtaPhiPos
const eflowEtaPhiPosition & getTileEtaPhiPos(CaloCell_ID::CaloSample layer) const
Definition
eflowTrackCaloPoints.cxx:99
eflowTrackCaloPoints::operator[]
const std::pair< float, float > operator[](eflowCalo::LAYER layer) const
Definition
eflowTrackCaloPoints.cxx:90
eflowTrackCaloPoints::m_tileEtaPhiPositions
std::map< CaloCell_ID::CaloSample, eflowEtaPhiPosition > m_tileEtaPhiPositions
Eta-Phi positions per tile layer in the 3 tile calorimeters - only used for experimental DNN based e/...
Definition
eflowTrackCaloPoints.h:95
eflowTrackCaloPoints::m_defaultEtaPhiPosition
static const eflowEtaPhiPosition m_defaultEtaPhiPosition
Definition
eflowTrackCaloPoints.h:89
eflowTrackCaloPoints::setEtaPhiTile
void setEtaPhiTile(CaloCell_ID::CaloSample secondLayer, const Amg::Vector3D &vec)
Definition
eflowTrackCaloPoints.cxx:80
eflowTrackCaloPoints::m_positions
std::map< eflowCalo::LAYER, Amg::Vector3D > m_positions
Definition
eflowTrackCaloPoints.h:91
eflowTrackCaloPoints::~eflowTrackCaloPoints
~eflowTrackCaloPoints()
eflowTrackCaloPoints::m_etaPhiPositions
std::map< eflowCalo::LAYER, eflowEtaPhiPosition > m_etaPhiPositions
Eta-Phi positions per calorimeter layer using simolified particle flow naming scheme.
Definition
eflowTrackCaloPoints.h:93
eflowCaloENUM
eflowCalo::LAYER eflowCaloENUM
Definition
eflowCaloRegions.h:49
eflowTrackCaloPoints.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:48
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Generated on
for ATLAS Offline Software by
1.17.0