ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoCoreSim
Root
CountingConnector.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
#include "
L1TopoCoreSim/CountingConnector.h
"
7
8
#include "
L1TopoCoreSim/InputConnector.h
"
9
10
#include "
L1TopoCommon/StringUtils.h
"
11
#include "
L1TopoCommon/Exception.h
"
12
#include "
L1TopoInterfaces/CountingAlg.h
"
13
14
using namespace
std
;
15
using namespace
TCS
;
16
17
CountingConnector::CountingConnector
(
const
string
&
name
,
18
const
string
& input,
19
const
string
&
algorithm
,
20
const
string
&
output
) :
21
Connector
(
name
, {input},
algorithm
, {output}, COUNT),
22
m_countingAlgorithm(0)
23
{}
24
25
CountingConnector::~CountingConnector
() {
26
CountingConnector::clearOutput
();
27
}
28
29
// TO-DO: Add function to return the counts, but format?
30
31
32
33
TCS::TOBArray
const
*
34
TCS::CountingConnector::output
(
const
std::string & trigger)
const
{
35
unsigned
int
index
(0);
36
for
(
const
TrigConf::TriggerLine
& tl :
m_triggers
) {
37
if
(tl.name() == trigger)
38
return
m_outputData
[
index
];
39
++
index
;
40
}
41
TCS_EXCEPTION
(
"Counting connector '"
<<
name
() <<
"' has no output trigger '"
<< trigger <<
"'"
);
42
return
nullptr
;
43
}
44
45
46
TCS::StatusCode
47
TCS::CountingConnector::clearOutput
() {
48
for
(
TOBArray
const
*
x
:
m_outputData
) {
49
delete
x
;
50
}
51
m_outputData
.clear();
52
53
// set counting to 0
54
m_count
.reset();
55
56
return
StatusCode::SUCCESS
;
57
}
58
59
InputConnector
*
60
CountingConnector::inputConnector
()
const
{
61
return
dynamic_cast<
InputConnector
*
>
(
m_inputConnectors
[0]);
62
}
63
64
void
65
CountingConnector::setAlgorithm
(
TCS::ConfigurableAlg
* alg) {
66
Connector::setAlgorithm
(alg);
67
m_countingAlgorithm
=
dynamic_cast<
CountingAlg
*
>
(alg);
68
if
(
m_countingAlgorithm
==
nullptr
&& alg !=
nullptr
) {
69
TCS_EXCEPTION
(
"Error: algorithm "
<< alg->name() <<
" is not a CountingAlg"
);
70
}
71
}
72
73
// attaches the selected data to the connector (does take ownership)
74
void
75
CountingConnector::attachOutputData
(
const
std::vector<TOBArray *>& data) {
76
if
(
m_outputData
.size() != 0) {
77
TCS_EXCEPTION
(
"Trying to attach data to multiplicity connector '"
<<
name
() <<
"' which has already data attached"
);
78
}
79
80
for
(
TOBArray
*
x
: data)
81
m_outputData
.push_back(
dynamic_cast<
const
TOBArray
*
>
(
x
) );
82
}
83
84
85
void
86
CountingConnector::setFirstOutputBit
(
unsigned
int
firstOutputBit) {
87
m_count
.setFirstBit(firstOutputBit);
88
}
89
90
namespace
TCS
{
91
92
ostream &
93
operator<<
(ostream&o,
const
TCS::CountingConnector
& conn) {
94
o <<
"("
<<
join
(conn.inputNames()) <<
") ---["
<< conn.algorithmName() <<
"]---> ("
<<
join
(conn.outputNames()) <<
")"
;
95
return
o;
96
97
}
98
}
CountingAlg.h
CountingConnector.h
InputConnector.h
Exception.h
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:15
StringUtils.h
x
#define x
TCS::ConfigurableAlg
Definition
ConfigurableAlg.h:31
TCS::Connector::Connector
Connector(const std::string &name, ConnectorType conntype)
Definition
Connector.cxx:31
TCS::Connector::m_inputConnectors
std::vector< TCS::Connector * > m_inputConnectors
Definition
Connector.h:98
TCS::Connector::name
const std::string & name() const
Definition
Connector.h:44
TCS::Connector::setAlgorithm
virtual void setAlgorithm(TCS::ConfigurableAlg *)
Definition
Connector.cxx:42
TCS::Connector::algorithm
const TCS::ConfigurableAlg * algorithm() const
Definition
Connector.h:50
TCS::CountingAlg
Definition
CountingAlg.h:25
TCS::CountingConnector
Definition
CountingConnector.h:26
TCS::CountingConnector::output
TOBArray const * output(const std::string &trigger) const
Definition
CountingConnector.cxx:34
TCS::CountingConnector::attachOutputData
void attachOutputData(const std::vector< TOBArray * > &)
Definition
CountingConnector.cxx:75
TCS::CountingConnector::CountingConnector
CountingConnector(const std::string &name, const std::string &input, const std::string &algorithm, const std::string &output)
Definition
CountingConnector.cxx:17
TCS::CountingConnector::m_countingAlgorithm
TCS::CountingAlg * m_countingAlgorithm
Definition
CountingConnector.h:70
TCS::CountingConnector::m_triggers
std::vector< TrigConf::TriggerLine > m_triggers
Definition
CountingConnector.h:72
TCS::CountingConnector::setFirstOutputBit
void setFirstOutputBit(unsigned int firstOutputBit)
Definition
CountingConnector.cxx:86
TCS::CountingConnector::~CountingConnector
virtual ~CountingConnector()
Definition
CountingConnector.cxx:25
TCS::CountingConnector::setAlgorithm
void setAlgorithm(TCS::ConfigurableAlg *alg)
Definition
CountingConnector.cxx:65
TCS::CountingConnector::m_outputData
std::vector< TOBArray const * > m_outputData
Definition
CountingConnector.h:75
TCS::CountingConnector::inputConnector
InputConnector * inputConnector() const
Definition
CountingConnector.cxx:60
TCS::CountingConnector::clearOutput
virtual StatusCode clearOutput()
Definition
CountingConnector.cxx:47
TCS::CountingConnector::m_count
Count m_count
Definition
CountingConnector.h:68
TCS::InputConnector
Definition
InputConnector.h:22
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
TrigConf::TriggerLine
a TriggerLine entry describes the location of a threshold multiplicity on a cable (connector)
Definition
L1Connector.h:22
algorithm
std::string algorithm
Definition
hcg.cxx:87
TCS
Definition
AnomalyDetectionBDT.h:18
TCS::operator<<
std::ostream & operator<<(std::ostream &os, const TCS::Bin &bin)
Definition
AnomalyDetectionBDT.cxx:50
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
index
Definition
index.py:1
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0