ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetRecTools
InDetSecVtxTrackSelectionTool
Root
InDetSecVtxTrackCut.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
//Author: Lianyou Shan <lianyou.shan@cern.ch>
5
// -*- c++ -*-
6
// InDetSecVtxTrackCuts.cxx
7
// implementations and definitions of cut objects
8
9
#include "
InDetSecVtxTrackCut.h
"
10
#include "
InDetSecVtxTrackSelectionTool/InDetSecVtxTrackSelectionTool.h
"
11
12
#include <algorithm>
13
14
15
// ---------------- SecVtxTrackCut ----------------
16
InDet::SecVtxTrackCut::SecVtxTrackCut
(
InDet::InDetSecVtxTrackSelectionTool
* tool)
17
:
asg
::
AsgMessaging
(tool)
18
,
m_trackAccessors
(nullptr)
19
,
m_selectionTool
(tool)
20
{
21
}
22
23
InDet::SecVtxTrackCut::~SecVtxTrackCut
() =
default
;
24
25
// this function is a friend of the tool
26
StatusCode
InDet::SecVtxTrackCut::initialize
()
27
{
28
if
(!
m_selectionTool
) {
29
ATH_MSG_ERROR
(
"Invalid pointer to InDetSecVtxTrackSelectionTool."
);
30
return
StatusCode::FAILURE;
31
}
32
// let the cut have a handle on the tool's accessors
33
m_trackAccessors
= &(
m_selectionTool
->m_trackAccessors);
34
return
StatusCode::SUCCESS;
35
}
36
37
// ---------------- D0minCut ----------------
38
InDet::D0minCut::D0minCut
(
InDet::InDetSecVtxTrackSelectionTool
* tool, Double_t
min
)
39
:
InDet
::
SecVtxTrackCut
(tool)
40
,
m_minValue
(
min
)
41
,
m_paramAccessor
(nullptr)
42
{
43
}
44
45
StatusCode
InDet::D0minCut::initialize
()
46
{
47
ATH_CHECK
(
SecVtxTrackCut::initialize
() );
48
ATH_CHECK
(
getAccessor
(
"d0"
,
m_paramAccessor
) );
49
return
StatusCode::SUCCESS;
50
}
51
52
bool
InDet::D0minCut::result
()
const
53
{
54
if
(!
m_paramAccessor
) {
55
ATH_MSG_WARNING
(
"Track parameter accessor not valid. Track will not pass this cut."
);
56
return
false
;
57
}
58
ATH_MSG_DEBUG
(
" trk D0 "
<<
m_paramAccessor
->getValue() <<
" vs D0minCut "
<<
m_minValue
) ;
59
return
std::fabs(
m_paramAccessor
->getValue() ) >=
m_minValue
;
60
}
61
62
// ---------------- FuncSummaryValueCut ----------------
63
template
<
size_t
N>
64
InDet::FuncSummaryValueCut<N>::FuncSummaryValueCut
(
InDet::InDetSecVtxTrackSelectionTool
* tool,
65
const
std::array<xAOD::SummaryType,N>&& sumTypes) :
InDet
::
SecVtxTrackCut
(tool)
66
,
m_summaryTypes
(sumTypes)
67
{
68
}
69
70
template
<
size_t
N>
71
StatusCode
InDet::FuncSummaryValueCut<N>::initialize
()
72
{
73
// first run the base class version to get access to the tool's accessors
74
ATH_CHECK
(
SecVtxTrackCut::initialize
() );
75
76
for
(
size_t
i=0; i<N; ++i) {
77
std::string summaryName =
"summaryType"
;
78
summaryName += std::to_string(
m_summaryTypes
[i]);
79
std::shared_ptr<SummaryAccessor> accessor;
80
//coverity[FORWARD_NULL:FALSE]
81
ATH_CHECK
(
getAccessor
(summaryName, accessor) );
82
accessor->setSummaryType(
m_summaryTypes
[i] );
83
m_summaryAccessors
[i] = std::move(accessor);
84
}
85
86
return
StatusCode::SUCCESS;
87
}
88
89
template
<
size_t
N>
90
bool
InDet::FuncSummaryValueCut<N>::result
()
const
91
{
92
std::array<uint8_t,N> results{};
// member variable to store the results
93
94
for
(
size_t
i=0; i<N; ++i) {
95
if
(!
m_summaryAccessors
[i]) {
96
ATH_MSG_WARNING
(
"Track summary accessor not valid. Track will not pass this cut."
);
97
return
false
;
98
}
99
results[i] =
m_summaryAccessors
[i]->getValue();
100
}
101
return
m_func
(results);
102
}
103
104
template
class
InDet::FuncSummaryValueCut<3>
;
105
template
class
InDet::FuncSummaryValueCut<4>
;
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
InDetSecVtxTrackCut.h
InDetSecVtxTrackSelectionTool.h
min
#define min(a, b)
Definition
cfImp.cxx:40
InDet::D0minCut::initialize
virtual StatusCode initialize()
Definition
InDetSecVtxTrackCut.cxx:45
InDet::D0minCut::result
virtual bool result() const
Definition
InDetSecVtxTrackCut.cxx:52
InDet::D0minCut::m_paramAccessor
std::shared_ptr< svParamAccessor< 0 > > m_paramAccessor
Definition
InDetSecVtxTrackCut.h:53
InDet::D0minCut::m_minValue
Double_t m_minValue
Definition
InDetSecVtxTrackCut.h:52
InDet::D0minCut::D0minCut
D0minCut(InDetSecVtxTrackSelectionTool *, Double_t min=-99.)
Definition
InDetSecVtxTrackCut.cxx:38
InDet::FuncSummaryValueCut
Definition
InDetSecVtxTrackCut.h:57
InDet::FuncSummaryValueCut::m_func
std::function< bool(const std::array< uint8_t, N > &)> m_func
Definition
InDetSecVtxTrackCut.h:64
InDet::FuncSummaryValueCut::FuncSummaryValueCut
FuncSummaryValueCut(InDetSecVtxTrackSelectionTool *, const std::array< xAOD::SummaryType, N > &&)
Definition
InDetSecVtxTrackCut.cxx:64
InDet::FuncSummaryValueCut::result
virtual bool result() const
Definition
InDetSecVtxTrackCut.cxx:90
InDet::FuncSummaryValueCut::initialize
virtual StatusCode initialize()
Definition
InDetSecVtxTrackCut.cxx:71
InDet::FuncSummaryValueCut::m_summaryTypes
std::array< xAOD::SummaryType, N > m_summaryTypes
Definition
InDetSecVtxTrackCut.h:65
InDet::FuncSummaryValueCut::m_summaryAccessors
std::array< std::shared_ptr< SummaryAccessor >, N > m_summaryAccessors
Definition
InDetSecVtxTrackCut.h:66
InDet::InDetSecVtxTrackSelectionTool
Implementation of the track selector tool.
Definition
InDetSecVtxTrackSelectionTool.h:37
InDet::SecVtxTrackCut::SecVtxTrackCut
SecVtxTrackCut(InDetSecVtxTrackSelectionTool *)
Definition
InDetSecVtxTrackCut.cxx:16
InDet::SecVtxTrackCut::m_trackAccessors
std::unordered_map< std::string, std::shared_ptr< SecVtxTrackAccessor > > * m_trackAccessors
Definition
InDetSecVtxTrackCut.h:40
InDet::SecVtxTrackCut::getAccessor
StatusCode getAccessor(const std::string &name, std::shared_ptr< AccessorType > &accessor)
Definition
InDetSecVtxTrackCut.h:72
InDet::SecVtxTrackCut::~SecVtxTrackCut
virtual ~SecVtxTrackCut()=0
InDet::SecVtxTrackCut::m_selectionTool
InDetSecVtxTrackSelectionTool * m_selectionTool
Definition
InDetSecVtxTrackCut.h:42
InDet::SecVtxTrackCut::initialize
virtual StatusCode initialize()
Definition
InDetSecVtxTrackCut.cxx:26
asg::AsgMessaging::AsgMessaging
AsgMessaging(const std::string &name)
Constructor with a name.
Definition
AsgMessaging.cxx:17
InDet
Primary Vertex Finder.
Definition
VP1ErrorUtils.h:36
asg
Definition
DataHandleTestTool.h:28
Generated on
for ATLAS Offline Software by
1.17.0