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
m_directions
[itPars->first] =
parToDirection
(itPars->second);
43
}
44
45
}
46
47
eflowTrackCaloPoints::eflowTrackCaloPoints
(
const
std::map<eflowCalo::LAYER, const Trk::TrackParameters*> & trackParameters,
48
std::map<CaloCell_ID::CaloSample,const Trk::TrackParameters*>& tileTrackParamaters) :
49
m_isEM1Barrel
(trackParameters.begin()->first ==
eflowCalo
::EMB1){
50
/* Fill etaPhiPositions map */
51
std::map<eflowCalo::LAYER, const Trk::TrackParameters*>::const_iterator itPars = trackParameters.begin();
52
std::map<eflowCalo::LAYER, const Trk::TrackParameters*>::const_iterator endPars = trackParameters.end();
53
m_isEM2Barrel
=
false
;
54
for
(; itPars != endPars; ++itPars) {
55
setEtaPhi
(itPars->first,
parToPosition
(itPars->second));
56
if
(itPars->first ==
eflowCalo::EMB2
)
m_isEM2Barrel
=
true
;
57
m_positions
[itPars->first] =
parToPosition
(itPars->second);
58
m_directions
[itPars->first] =
parToDirection
(itPars->second);
59
}
60
61
for
(
auto
firstTileParam : tileTrackParamaters)
setEtaPhiTile
(firstTileParam.first,
parToPosition
(firstTileParam.second));
62
63
}
64
65
eflowTrackCaloPoints::~eflowTrackCaloPoints
() =
default
;
66
67
void
eflowTrackCaloPoints::setEtaPhi
(
eflowCalo::LAYER
lay,
const
Amg::Vector3D
&
vec
) {
68
m_etaPhiPositions
[lay] = (
vec
!=
m_nullVector
) ?
eflowEtaPhiPosition
(
vec
.eta(),
vec
.phi())
69
:
m_defaultEtaPhiPosition
;
70
}
71
72
void
eflowTrackCaloPoints::setEtaPhiTile
(
CaloCell_ID::CaloSample
lay,
const
Amg::Vector3D
&
vec
) {
73
m_tileEtaPhiPositions
[lay] = (
vec
!=
m_nullVector
) ?
eflowEtaPhiPosition
(
vec
.eta(),
vec
.phi())
74
:
m_defaultEtaPhiPosition
;
75
}
76
77
//only used in eflowTrackExtrapolatorTool
78
void
eflowTrackCaloPoints::setEtaPhi
(
eflowCaloENUM
layer,
double
eta
,
double
phi
) {
79
m_etaPhiPositions
[layer] =
eflowEtaPhiPosition
(
eta
,
phi
);
80
}
81
82
const
pair<float, float>
eflowTrackCaloPoints::operator[]
(
eflowCaloENUM
layer)
const
{
83
eflowEtaPhiPosition
thisPosition =
getEtaPhiPos
(layer);
84
return
pair<float, float>(thisPosition.
getEta
(), thisPosition.
getPhiD
());
85
}
86
const
eflowEtaPhiPosition
&
eflowTrackCaloPoints::getEtaPhiPos
(
eflowCalo::LAYER
layer)
const
{
87
std::map< eflowCalo::LAYER, eflowEtaPhiPosition>::const_iterator it =
m_etaPhiPositions
.find(layer);
88
return
(it ==
m_etaPhiPositions
.end()) ?
m_defaultEtaPhiPosition
: it->second;
89
}
90
91
const
eflowEtaPhiPosition
&
eflowTrackCaloPoints::getTileEtaPhiPos
(
CaloCell_ID::CaloSample
layer)
const
{
92
std::map< CaloCell_ID::CaloSample , eflowEtaPhiPosition>::const_iterator it =
m_tileEtaPhiPositions
.find(layer);
93
return
(it ==
m_tileEtaPhiPositions
.end()) ?
m_defaultEtaPhiPosition
: it->second;
94
}
95
96
97
Amg::Vector3D
eflowTrackCaloPoints::getPosition
(
eflowCalo::LAYER
layer) {
98
std::map<eflowCalo::LAYER, Amg::Vector3D>::const_iterator it =
m_positions
.find(layer);
99
return
(it ==
m_positions
.end()) ?
m_nullVector
: it->second;
100
}
101
102
Amg::Vector3D
eflowTrackCaloPoints::getDirection
(
eflowCalo::LAYER
layer) {
103
std::map<eflowCalo::LAYER, Amg::Vector3D>::const_iterator it =
m_directions
.find(layer);
104
return
(it ==
m_directions
.end()) ?
m_nullVector
: it->second;
105
}
106
107
Amg::Vector3D
eflowTrackCaloPoints::parToPosition
(
const
Trk::TrackParameters
* trackPars) {
108
return
(trackPars !=
nullptr
) ? trackPars->
position
() :
m_nullVector
;
109
}
110
111
Amg::Vector3D
eflowTrackCaloPoints::parToDirection
(
const
Trk::TrackParameters
* trackPars) {
112
return
(trackPars !=
nullptr
) ? trackPars->
momentum
() :
m_nullVector
;
113
}
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::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
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:71
eflowTrackCaloPoints::parToDirection
static Amg::Vector3D parToDirection(const Trk::TrackParameters *extrapolatedParameters)
Definition
eflowTrackCaloPoints.cxx:111
eflowTrackCaloPoints::defaultEta
static double defaultEta()
Definition
eflowTrackCaloPoints.cxx:28
eflowTrackCaloPoints::parToPosition
static Amg::Vector3D parToPosition(const Trk::TrackParameters *extrapolatedParameters)
Definition
eflowTrackCaloPoints.cxx:107
eflowTrackCaloPoints::eflowTrackCaloPoints
eflowTrackCaloPoints()
Definition
eflowTrackCaloPoints.h:36
eflowTrackCaloPoints::defaultPhi
static double defaultPhi()
Definition
eflowTrackCaloPoints.cxx:29
eflowTrackCaloPoints::m_nullVector
static const Amg::Vector3D m_nullVector
Definition
eflowTrackCaloPoints.h:76
eflowTrackCaloPoints::m_defaultEtaPhiPair
static const std::pair< float, float > m_defaultEtaPhiPair
Definition
eflowTrackCaloPoints.h:82
eflowTrackCaloPoints::getPosition
Amg::Vector3D getPosition(eflowCalo::LAYER layer)
Definition
eflowTrackCaloPoints.cxx:97
eflowTrackCaloPoints::getEtaPhiPos
const eflowEtaPhiPosition & getEtaPhiPos(eflowCalo::LAYER layer) const
Definition
eflowTrackCaloPoints.cxx:86
eflowTrackCaloPoints::setEtaPhi
void setEtaPhi(eflowCaloENUM secondLayer, double eta, double phi)
Definition
eflowTrackCaloPoints.cxx:78
eflowTrackCaloPoints::m_isEM2Barrel
bool m_isEM2Barrel
Definition
eflowTrackCaloPoints.h:72
eflowTrackCaloPoints::getTileEtaPhiPos
const eflowEtaPhiPosition & getTileEtaPhiPos(CaloCell_ID::CaloSample layer) const
Definition
eflowTrackCaloPoints.cxx:91
eflowTrackCaloPoints::m_directions
std::map< eflowCalo::LAYER, Amg::Vector3D > m_directions
Definition
eflowTrackCaloPoints.h:86
eflowTrackCaloPoints::operator[]
const std::pair< float, float > operator[](eflowCalo::LAYER layer) const
Definition
eflowTrackCaloPoints.cxx:82
eflowTrackCaloPoints::m_tileEtaPhiPositions
std::map< CaloCell_ID::CaloSample, eflowEtaPhiPosition > m_tileEtaPhiPositions
Definition
eflowTrackCaloPoints.h:88
eflowTrackCaloPoints::getDirection
Amg::Vector3D getDirection(eflowCalo::LAYER layer)
Definition
eflowTrackCaloPoints.cxx:102
eflowTrackCaloPoints::m_defaultEtaPhiPosition
static const eflowEtaPhiPosition m_defaultEtaPhiPosition
Definition
eflowTrackCaloPoints.h:83
eflowTrackCaloPoints::setEtaPhiTile
void setEtaPhiTile(CaloCell_ID::CaloSample secondLayer, const Amg::Vector3D &vec)
Definition
eflowTrackCaloPoints.cxx:72
eflowTrackCaloPoints::m_positions
std::map< eflowCalo::LAYER, Amg::Vector3D > m_positions
Definition
eflowTrackCaloPoints.h:85
eflowTrackCaloPoints::~eflowTrackCaloPoints
~eflowTrackCaloPoints()
eflowTrackCaloPoints::m_etaPhiPositions
std::map< eflowCalo::LAYER, eflowEtaPhiPosition > m_etaPhiPositions
Definition
eflowTrackCaloPoints.h:87
eflowCaloENUM
eflowCalo::LAYER eflowCaloENUM
Definition
eflowCaloRegions.h:49
eflowTrackCaloPoints.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Generated on
for ATLAS Offline Software by
1.17.0