ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoAlgorithms
Root
eEmSort.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
// eEmSort.cxx
5
// TopoCore
6
// algorithm to create sorted lists for eEMs, et order applied
7
//
8
#include "
L1TopoAlgorithms/eEmSort.h
"
9
#include "
L1TopoEvent/TOBArray.h
"
10
#include "
L1TopoEvent/eEmTOBArray.h
"
11
#include "
L1TopoEvent/GenericTOB.h
"
12
#include <algorithm>
13
14
REGISTER_ALG_TCS
(eEmSort)
15
16
bool
SortByEtLargesteEm
(
TCS
::GenericTOB* tob1,
TCS
::GenericTOB* tob2)
17
{
18
return
tob1->Et() > tob2->Et();
19
}
20
21
// constructor
22
TCS::eEmSort::eEmSort
(
const
std::string &
name
) :
SortingAlg
(
name
) {
23
defineParameter
(
"InputWidth"
, 120 );
// for FW
24
defineParameter
(
"InputWidth1stStage"
, 30 );
// for FW
25
defineParameter
(
"OutputWidth"
, 6 );
26
defineParameter
(
"REtaMin"
, 0 );
27
defineParameter
(
"RHadMin"
, 0 );
28
defineParameter
(
"WsTotMin"
, 0 );
29
defineParameter
(
"MinEta"
, 0 );
30
defineParameter
(
"MaxEta"
, 196 );
31
}
32
33
34
// destructor
35
TCS::eEmSort::~eEmSort
() {}
36
37
38
TCS::StatusCode
39
TCS::eEmSort::initialize
() {
40
m_numberOfeEms
=
parameter
(
"OutputWidth"
).value();
41
m_minREta
=
parameter
(
"REtaMin"
).value();
42
m_minRHad
=
parameter
(
"RHadMin"
).value();
43
m_minWsTot
=
parameter
(
"WsTotMin"
).value();
44
return
TCS::StatusCode::SUCCESS
;
45
}
46
47
48
TCS::StatusCode
49
TCS::eEmSort::sort
(
const
InputTOBArray
& input,
TOBArray
& output) {
50
51
const
eEmTOBArray
& eems =
dynamic_cast<
const
eEmTOBArray
&
>
(input);
52
53
// fill output array with GenericTOB buildt from eEms
54
for
(
eEmTOBArray::const_iterator
eem = eems.
begin
(); eem!= eems.
end
(); ++eem ) {
55
56
// isolation cut
57
if
( !
isocut
(
m_minREta
, (*eem)-> Reta()) ) {
continue
;}
58
if
( !
isocut
(
m_minRHad
, (*eem)-> Rhad()) ) {
continue
;}
59
if
( !
isocut
(
m_minWsTot
, (*eem)-> Wstot()) ) {
continue
;}
60
61
const
GenericTOB
gtob(**eem);
62
output.push_back( gtob );
63
}
64
65
// sort
66
output.sort(
SortByEtLargesteEm
);
67
68
69
// keep only max number of eEms
70
int
par =
m_numberOfeEms
;
71
unsigned
int
maxNumberOfeEms = std::clamp(par, 0, std::abs(par));
72
if
(maxNumberOfeEms>0) {
73
while
( output.size()> maxNumberOfeEms ) {
74
if
(output.size() == (maxNumberOfeEms+1)) {
75
bool
isAmbiguous = output[maxNumberOfeEms-1].EtDouble() == output[maxNumberOfeEms].EtDouble();
76
if
(isAmbiguous) { output.setAmbiguityFlag(
true
); }
77
}
78
output.pop_back();
79
}
80
}
81
return
TCS::StatusCode::SUCCESS
;
82
}
83
REGISTER_ALG_TCS
#define REGISTER_ALG_TCS(CLASS)
Definition
AlgFactory.h:62
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::isocut
bool isocut(const std::string &threshold, const unsigned int bit) const
Definition
ConfigurableAlg.cxx:487
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< eEmTOB >::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::eEmSort::sort
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output) override final
Definition
eEmSort.cxx:49
TCS::eEmSort::eEmSort
eEmSort(const std::string &name)
Definition
eEmSort.cxx:22
TCS::eEmSort::m_minWsTot
parType_t m_minWsTot
Definition
eEmSort.h:34
TCS::eEmSort::~eEmSort
virtual ~eEmSort()
Definition
eEmSort.cxx:35
TCS::eEmSort::m_numberOfeEms
parType_t m_numberOfeEms
Definition
eEmSort.h:31
TCS::eEmSort::initialize
virtual TCS::StatusCode initialize() override
Definition
eEmSort.cxx:39
TCS::eEmSort::m_minRHad
parType_t m_minRHad
Definition
eEmSort.h:33
TCS::eEmSort::m_minREta
parType_t m_minREta
Definition
eEmSort.h:32
TCS::eEmTOBArray
Definition
eEmTOBArray.h:14
SortByEtLargesteEm
bool SortByEtLargesteEm(TCS::GenericTOB *tob1, TCS::GenericTOB *tob2)
Definition
eEmSort.cxx:16
eEmSort.h
eEmTOBArray.h
TCS
Definition
AnomalyDetectionBDT.h:18
Generated on
for ATLAS Offline Software by
1.17.0