ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoAlgorithms
Root
jTauSort.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
// jTauSort.cxx
5
// TopoCore
6
// algorithm to make sorted jTaus lists
7
//
8
#include "
L1TopoAlgorithms/jTauSort.h
"
9
#include "
L1TopoEvent/TOBArray.h
"
10
#include "
L1TopoEvent/jTauTOBArray.h
"
11
#include "
L1TopoEvent/GenericTOB.h
"
12
#include "
L1TopoAlgorithms/jTauMultiplicity.h
"
13
#include <algorithm>
14
15
REGISTER_ALG_TCS
(jTauSort)
16
17
bool
SortByEtLargestjTau
(
TCS
::GenericTOB* tob1,
TCS
::GenericTOB* tob2)
18
{
19
return
tob1->Et() > tob2->Et();
20
}
21
22
23
// constructor
24
TCS::jTauSort::jTauSort
(
const
std::string &
name
) :
25
SortingAlg
(
name
)
26
{
27
defineParameter
(
"InputWidth"
, 120);
// for fw
28
defineParameter
(
"OutputWidth"
, 6 );
29
defineParameter
(
"MinEta"
, 0 );
30
defineParameter
(
"MaxEta"
, 196 );
31
defineParameter
(
"Isolation"
, 1024);
32
defineParameter
(
"passIsolation"
,
false
);
33
}
34
35
36
TCS::jTauSort::~jTauSort
()
37
{}
38
39
40
TCS::StatusCode
41
TCS::jTauSort::initialize
() {
42
43
m_numberOfjTaus
=
parameter
(
"OutputWidth"
).value();
44
m_minEta
=
parameter
(
"MinEta"
).value();
45
m_maxEta
=
parameter
(
"MaxEta"
).value();
46
m_iso
=
parameter
(
"Isolation"
).value();
47
m_passIsolation
=
parameter
(
"passIsolation"
).value();
48
49
return
TCS::StatusCode::SUCCESS
;
50
}
51
52
53
TCS::StatusCode
54
TCS::jTauSort::sort
(
const
InputTOBArray
& input,
TOBArray
& output) {
55
56
const
jTauTOBArray
& jtaus =
dynamic_cast<
const
jTauTOBArray
&
>
(input);
57
58
// loop over input TOBs && fill output array with GenericTOBs builds from jTaus
59
for
(
jTauTOBArray::const_iterator
jtau = jtaus.
begin
(); jtau != jtaus.
end
(); ++jtau ) {
60
if
(
parType_t
(std::abs((*jtau)->
eta
())) <
m_minEta
)
continue
;
61
if
(
parType_t
(std::abs((*jtau)->
eta
())) >
m_maxEta
)
continue
;
62
if
(! (
m_passIsolation
||
checkIsolation
(*jtau) ) )
continue
;
63
output.push_back(
GenericTOB
(**jtau) );
64
}
65
66
// sort
67
output.sort(
SortByEtLargestjTau
);
68
69
// keep only max number of jTaus
70
int
par =
m_numberOfjTaus
;
71
unsigned
int
maxNumberOfJTaus = std::clamp(par, 0, std::abs(par));
72
if
(maxNumberOfJTaus>0) {
73
while
( output.size()> maxNumberOfJTaus ) {
74
if
(output.size() == (maxNumberOfJTaus+1)) {
75
bool
isAmbiguous = output[maxNumberOfJTaus-1].Et() == output[maxNumberOfJTaus].Et();
76
if
(isAmbiguous) { output.setAmbiguityFlag(
true
); }
77
}
78
output.pop_back();
79
}
80
}
81
return
TCS::StatusCode::SUCCESS
;
82
}
83
84
85
bool
86
TCS::jTauSort::checkIsolation
(
const
TCS::jTauTOB
* jtau)
const
{
87
if
(
m_passIsolation
)
return
true
;
88
return
jtau->
EtIso
()*1024 < jtau->
Et
()*
m_iso
;
89
}
90
91
92
93
REGISTER_ALG_TCS
#define REGISTER_ALG_TCS(CLASS)
Definition
AlgFactory.h:62
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
GenericTOB.h
TOBArray.h
TCS::ConfigurableAlg::name
const std::string & name() const
Definition
ConfigurableAlg.h:49
TCS::ConfigurableAlg::parameter
const Parameter & parameter(std::string_view parameterName) const
Definition
ConfigurableAlg.cxx:245
TCS::ConfigurableAlg::defineParameter
void defineParameter(std::string_view name, TCS::parType_t value)
Definition
ConfigurableAlg.cxx:203
TCS::DataArrayImpl::begin
iterator begin()
Definition
DataArrayImpl.h:40
TCS::DataArrayImpl< jTauTOB >::const_iterator
data_t::const_iterator const_iterator
Definition
DataArrayImpl.h:18
TCS::DataArrayImpl::end
iterator end()
Definition
DataArrayImpl.h:43
TCS::GenericTOB
Definition
GenericTOB.h:35
TCS::InputTOBArray
Definition
InputTOBArray.h:15
TCS::SortingAlg::SortingAlg
SortingAlg(const std::string &name)
Definition
SortingAlg.h:21
TCS::StatusCode
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::TOBArray
Definition
TOBArray.h:24
TCS::jTauSort::m_minEta
parType_t m_minEta
Definition
jTauSort.h:32
TCS::jTauSort::m_maxEta
parType_t m_maxEta
Definition
jTauSort.h:33
TCS::jTauSort::m_numberOfjTaus
parType_t m_numberOfjTaus
Definition
jTauSort.h:31
TCS::jTauSort::initialize
virtual TCS::StatusCode initialize() override
Definition
jTauSort.cxx:41
TCS::jTauSort::checkIsolation
bool checkIsolation(const TCS::jTauTOB *jtau) const
Definition
jTauSort.cxx:86
TCS::jTauSort::m_passIsolation
parType_t m_passIsolation
Definition
jTauSort.h:35
TCS::jTauSort::m_iso
parType_t m_iso
Definition
jTauSort.h:34
TCS::jTauSort::jTauSort
jTauSort(const std::string &name)
Definition
jTauSort.cxx:24
TCS::jTauSort::sort
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output) override final
Definition
jTauSort.cxx:54
TCS::jTauSort::~jTauSort
virtual ~jTauSort()
Definition
jTauSort.cxx:36
TCS::jTauTOBArray
Definition
jTauTOBArray.h:19
TCS::jTauTOB
Definition
jTauTOB.h:19
TCS::jTauTOB::EtIso
unsigned int EtIso() const
Definition
jTauTOB.h:43
TCS::jTauTOB::Et
unsigned int Et() const
Definition
jTauTOB.h:35
jTauMultiplicity.h
SortByEtLargestjTau
bool SortByEtLargestjTau(TCS::GenericTOB *tob1, TCS::GenericTOB *tob2)
Definition
jTauSort.cxx:17
jTauSort.h
jTauTOBArray.h
TCS
Definition
AnomalyDetectionBDT.h:18
TCS::parType_t
uint32_t parType_t
Definition
Parameter.h:23
Generated on
for ATLAS Offline Software by
1.17.0