ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoAlgorithms
Root
jXESort.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
// jXESort.cxx
5
6
#include "
L1TopoAlgorithms/jXESort.h
"
7
#include "
L1TopoCommon/Exception.h
"
8
#include "
L1TopoEvent/jXETOBArray.h
"
9
#include "
L1TopoEvent/GenericTOB.h
"
10
#include <algorithm>
11
#include <cmath>
12
13
// Bitwise implementation utils
14
#include "
L1TopoSimulationUtils/Trigo.h
"
15
16
REGISTER_ALG_TCS
(jXESort)
17
18
19
// constructor
20
TCS
::
jXESort
::
jXESort
(
const
std
::
string
&
name
) :
SortingAlg
(
name
) {
21
22
defineParameter
(
"InputWidth"
, 2 );
// for FW
23
defineParameter
(
"OutputWidth"
, 2 );
// for FW
24
25
}
26
27
// destructor
28
TCS::jXESort::~jXESort
() {}
29
30
31
TCS::StatusCode
32
TCS::jXESort::initialize
() {
33
return
TCS::StatusCode::SUCCESS
;
34
}
35
36
TCS::StatusCode
37
TCS::jXESort::sortBitCorrect
(
const
InputTOBArray
& input,
TOBArray
& output) {
38
39
if
(input.size()!=1) {
40
TCS_EXCEPTION
(
"jXE sort alg expects exactly single jXE TOB, got "
<< input.size());
41
}
42
43
const
jXETOBArray
& mets =
dynamic_cast<
const
jXETOBArray
&
>
(input);
44
int
missingEx = std::clamp(std::abs(mets[0].Ex()), 0, (1<<13) - 1 );
45
int
missingEy = std::clamp(std::abs(mets[0].Ey()), 0, (1<<13) - 1 );
46
int
missingET =
quadraticSumBW
(missingEx,missingEy);
47
//clamp missingET value as in FW since GenericTOBs only use 13 bits for ET values
48
//"sorted" missingET is thus far the only exception that can exceed this based on
49
//the corresponding input TOBs' possible value ranges
50
missingET = std::clamp(missingET, 0, (1<<13) - 1 );
51
52
int
metphi =
TSU::Trigo::atan2
(mets[0].Ex(),mets[0].Ey());
53
TRG_MSG_DEBUG
(
"MET phi values "
<< metphi <<
" from x/y = "
<< mets[0].Ex() <<
"/"
<< mets[0].Ey() <<
"( ET = "
<< missingET <<
")"
);
54
output.push_back(
GenericTOB
( missingET, 0, metphi ) );
55
56
return
TCS::StatusCode::SUCCESS
;
57
58
}
59
60
TCS::StatusCode
61
TCS::jXESort::sort
(
const
InputTOBArray
& input,
TOBArray
& output) {
62
//we have a bitCorrect version, so use it
63
return
this->
sortBitCorrect
(input, output);
64
65
}
66
REGISTER_ALG_TCS
#define REGISTER_ALG_TCS(CLASS)
Definition
AlgFactory.h:62
GenericTOB.h
TRG_MSG_DEBUG
#define TRG_MSG_DEBUG(x)
Definition
Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:25
Exception.h
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:15
Trigo.h
TCS::ConfigurableAlg::name
const std::string & name() const
Definition
ConfigurableAlg.h:49
TCS::ConfigurableAlg::quadraticSumBW
unsigned long quadraticSumBW(int i1, int i2)
Definition
ConfigurableAlg.cxx:162
TCS::ConfigurableAlg::defineParameter
void defineParameter(std::string_view name, TCS::parType_t value)
Definition
ConfigurableAlg.cxx:203
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::jXESort::jXESort
jXESort(const std::string &name)
Definition
jXESort.cxx:20
TCS::jXESort::sortBitCorrect
virtual TCS::StatusCode sortBitCorrect(const InputTOBArray &input, TOBArray &output)
Definition
jXESort.cxx:37
TCS::jXESort::initialize
virtual StatusCode initialize()
Definition
jXESort.cxx:32
TCS::jXESort::~jXESort
virtual ~jXESort()
Definition
jXESort.cxx:28
TCS::jXESort::sort
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output)
Definition
jXESort.cxx:61
TCS::jXETOBArray
Definition
jXETOBArray.h:14
jXESort.h
jXETOBArray.h
const
TCS
Definition
AnomalyDetectionBDT.h:18
std
STL namespace.
TSU::Trigo::atan2
static int atan2(TSU::L1TopoDataTypes< 16, 0 > x, TSU::L1TopoDataTypes< 16, 0 > y)
Definition
Trigo.cxx:512
Generated on
for ATLAS Offline Software by
1.17.0