ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEvent
TrkParametersIdentificationHelpers
TrkParametersIdentificationHelpers
TrackParametersIdHelper.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TRK_TRACKPARAMETERSIDHELPER_H
6
#define TRK_TRACKPARAMETERSIDHELPER_H
7
8
#include "
TrkParametersIdentificationHelpers/BitField.h
"
9
10
#include "CaloGeoHelpers/CaloSampling.h"
11
#include "
AtlasDetDescr/AtlasDetTechnology.h
"
12
13
typedef
unsigned
int
TrackParametersIdentifier
;
14
15
namespace
Trk
{
16
18
class
TrackParametersIdHelper
{
19
public
:
20
// Avoid cppcheck warnings.
21
TrackParametersIdHelper
() =
default
;
22
28
TrackParametersIdentifier
encode
(
AtlasDetDescr::AtlasDetTechnology
,
CaloSampling::CaloSample
,
29
bool
isEntryToVolume
)
const
;
30
32
TrackParametersIdentifier
encodeInValidIdentifier
()
const
;
33
35
bool
isValid
(
TrackParametersIdentifier
id
)
const
;
36
38
bool
isEntryToVolume
(
TrackParametersIdentifier
id
)
const
;
39
41
AtlasDetDescr::AtlasDetTechnology
technology
(
TrackParametersIdentifier
id
)
const
;
42
44
CaloSampling::CaloSample
caloSample
(
TrackParametersIdentifier
id
)
const
;
45
46
private
:
48
void
setVersion
(
TrackParametersIdentifier
&
id
)
const
;
49
50
static
const
unsigned
int
m_version
;
51
static
const
BitField<unsigned int>
m_validField
;
52
static
const
BitField<unsigned int>
m_versionField
;
53
static
const
BitField<unsigned int>
m_technologyField
;
54
55
static
const
BitField<unsigned int>
m_isEntryToLayerField
;
56
static
const
BitField<unsigned int>
m_caloSamplingField
;
57
58
};
59
60
inline
TrackParametersIdentifier
TrackParametersIdHelper::encode
(
AtlasDetDescr::AtlasDetTechnology
tech,
61
CaloSampling::CaloSample
sample,
62
bool
isEntryToVolume
)
const
{
63
TrackParametersIdentifier
id
= 0;
64
// check whether techology matches calo
65
if
( tech < AtlasDetDescr::fFirstAtlasCaloTechnology || tech >
AtlasDetDescr::fLastAtlasCaloTechnology
){
66
m_validField
.encode(1,
id
);
67
}
else
{
68
m_technologyField
.encode(tech,
id
);
69
unsigned
int
ientry =
isEntryToVolume
? 1 : 0;
70
m_isEntryToLayerField
.encode(ientry,
id
);
71
m_caloSamplingField
.encode(sample,
id
);
72
setVersion
(
id
);
73
}
74
return
id;
75
}
76
77
inline
bool
TrackParametersIdHelper::isValid
(
TrackParametersIdentifier
id
)
const
{
78
return
!
m_validField
.decode(
id
);
79
}
80
81
inline
bool
TrackParametersIdHelper::isEntryToVolume
(
TrackParametersIdentifier
id
)
const
{
82
return
m_isEntryToLayerField
.decode(
id
);
83
}
84
85
inline
AtlasDetDescr::AtlasDetTechnology
TrackParametersIdHelper::technology
(
TrackParametersIdentifier
id
)
const
{
86
// check if identifier is valid
87
if
( !
isValid
(
id
) ) {
return
AtlasDetDescr::fUndefined
;}
88
return
static_cast<
AtlasDetDescr::AtlasDetTechnology
>
(
m_technologyField
.decode(
id
));
89
}
90
91
inline
CaloSampling::CaloSample
TrackParametersIdHelper::caloSample
(
TrackParametersIdentifier
id
)
const
{
92
// check if identifier is valid
93
if
( !
isValid
(
id
) ) {
return
CaloSampling::Unknown;}
94
return
static_cast<
CaloSampling::CaloSample
>
(
m_caloSamplingField
.decode(
id
));
95
}
96
97
inline
void
TrackParametersIdHelper::setVersion
(
TrackParametersIdentifier
&
id
)
const
{
98
m_versionField
.encode(
m_version
,
id
);
99
}
100
101
inline
TrackParametersIdentifier
TrackParametersIdHelper::encodeInValidIdentifier
()
const
{
102
TrackParametersIdentifier
id(0);
103
m_validField
.encode(1,
id
);
104
return
id;
105
}
106
107
}
108
109
#endif
isValid
bool isValid() const
Test to see if the link can be dereferenced.
AtlasDetTechnology.h
BitField.h
TrackParametersIdentifier
unsigned int TrackParametersIdentifier
Definition
TrackParametersIdHelper.h:13
CaloSampling::CaloSample
CaloSample
Definition
Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
Trk::BitField
A class managing bits belonging to a range of bits.
Definition
BitField.h:14
Trk::TrackParametersIdHelper::m_version
static const unsigned int m_version
Definition
TrackParametersIdHelper.h:50
Trk::TrackParametersIdHelper::m_caloSamplingField
static const BitField< unsigned int > m_caloSamplingField
Definition
TrackParametersIdHelper.h:56
Trk::TrackParametersIdHelper::isEntryToVolume
bool isEntryToVolume(TrackParametersIdentifier id) const
returns true if the id belongs to the volume entrance
Definition
TrackParametersIdHelper.h:81
Trk::TrackParametersIdHelper::TrackParametersIdHelper
TrackParametersIdHelper()=default
Trk::TrackParametersIdHelper::setVersion
void setVersion(TrackParametersIdentifier &id) const
set version bits
Definition
TrackParametersIdHelper.h:97
Trk::TrackParametersIdHelper::isValid
bool isValid(TrackParametersIdentifier id) const
returns true if the id is valid
Definition
TrackParametersIdHelper.h:77
Trk::TrackParametersIdHelper::encode
TrackParametersIdentifier encode(AtlasDetDescr::AtlasDetTechnology, CaloSampling::CaloSample, bool isEntryToVolume) const
Encodes a TrackParametersIdentifier from AtlasDetDescr::AtlasDetTechnology and CaloSampling::CaloSamp...
Definition
TrackParametersIdHelper.h:60
Trk::TrackParametersIdHelper::caloSample
CaloSampling::CaloSample caloSample(TrackParametersIdentifier id) const
CaloSample encoded in id, returns CaloSampling::Unknown if id is not valid.
Definition
TrackParametersIdHelper.h:91
Trk::TrackParametersIdHelper::m_technologyField
static const BitField< unsigned int > m_technologyField
Definition
TrackParametersIdHelper.h:53
Trk::TrackParametersIdHelper::encodeInValidIdentifier
TrackParametersIdentifier encodeInValidIdentifier() const
create invalid identifier
Definition
TrackParametersIdHelper.h:101
Trk::TrackParametersIdHelper::technology
AtlasDetDescr::AtlasDetTechnology technology(TrackParametersIdentifier id) const
AtlasDetTechnology encoded in id, returns AtlasDetDescr::fUndefined if id is not valid.
Definition
TrackParametersIdHelper.h:85
Trk::TrackParametersIdHelper::m_versionField
static const BitField< unsigned int > m_versionField
Definition
TrackParametersIdHelper.h:52
Trk::TrackParametersIdHelper::m_validField
static const BitField< unsigned int > m_validField
Definition
TrackParametersIdHelper.h:51
Trk::TrackParametersIdHelper::m_isEntryToLayerField
static const BitField< unsigned int > m_isEntryToLayerField
Definition
TrackParametersIdHelper.h:55
AtlasDetDescr::AtlasDetTechnology
AtlasDetTechnology
A simple enum of ATLAS detector technologies.
Definition
AtlasDetTechnology.h:28
AtlasDetDescr::fUndefined
@ fUndefined
Definition
AtlasDetTechnology.h:30
AtlasDetDescr::fLastAtlasCaloTechnology
@ fLastAtlasCaloTechnology
Definition
AtlasDetTechnology.h:46
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Generated on
for ATLAS Offline Software by
1.17.0