ATLAS Offline Software
SortingConnector.cxx
Go to the documentation of this file.
1 // Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
4 
6 
10 
11 using namespace std;
12 using namespace TCS;
13 
14 SortingConnector::SortingConnector(const string & input,
15  const string & algorithm,
16  const string & output) :
17  Connector(output, {input}, algorithm, {output}, SORT)
18 {}
19 
20 
22  clearOutput();
23 }
24 
25 
28  delete m_outputData;
29  m_outputData = 0;
30  return StatusCode::SUCCESS;
31 }
32 
33 
36  return dynamic_cast<InputConnector*>(m_inputConnectors[0]);
37 }
38 
39 
40 void
43  m_sortingAlgorithm = dynamic_cast<SortingAlg*>(alg); // set a local copy
44  if(m_sortingAlgorithm == nullptr && alg != nullptr) {
45  TCS_EXCEPTION("Error: algorithm" << alg->name() << " is not a sorting alg");
46  }
47 }
48 
49 
50 // attaches the sorted data to the connector (does take ownership)
51 void
53  if(m_outputData != 0) {
54  TCS_EXCEPTION("Trying to attach data to input connector '" << name() << "' which has already data attached");
55  }
57 }
58 
59 
60 namespace TCS {
61 
62 
63 ostream &
64 operator<<(ostream &o, const TCS::SortingConnector & conn) {
65  o << conn.inputNames()[0] << " ---[ " << conn.algorithmName() << " ]---> " << conn.outputNames()[0];
66  return o;
67 }
68 
69 
70 }
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
checkCorrelInHIST.conn
conn
Definition: checkCorrelInHIST.py:25
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
algorithm
std::string algorithm
Definition: hcg.cxx:82
SGout2dot.alg
alg
Definition: SGout2dot.py:243
TCS::Connector::m_inputConnectors
std::vector< TCS::Connector * > m_inputConnectors
Definition: Connector.h:98
TCS::Connector
Definition: Connector.h:22
InputConnector.h
TCS::SortingConnector::setAlgorithm
void setAlgorithm(ConfigurableAlg *alg)
Definition: SortingConnector.cxx:41
TCS::SortingConnector
Definition: SortingConnector.h:24
TCS::SortingConnector::attachOutputData
void attachOutputData(const TOBArray *data)
Definition: SortingConnector.cxx:52
TCS::SortingConnector::m_outputData
TOBArray const * m_outputData
Definition: SortingConnector.h:54
TCS::SortingConnector::inputConnector
InputConnector * inputConnector() const
Definition: SortingConnector.cxx:35
TCS::InputConnector
Definition: InputConnector.h:22
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TCS::SortingConnector::~SortingConnector
virtual ~SortingConnector()
Definition: SortingConnector.cxx:21
StringUtils.h
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:14
TCS::TOBArray
Definition: TOBArray.h:24
merge.output
output
Definition: merge.py:17
SortingAlg.h
TCS::ConfigurableAlg
Definition: ConfigurableAlg.h:30
TCS::Connector::name
const std::string & name() const
Definition: Connector.h:44
TCS::SortingAlg
Definition: SortingAlg.h:18
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::SortingConnector::clearOutput
StatusCode clearOutput()
Definition: SortingConnector.cxx:27
TCS::operator<<
std::ostream & operator<<(std::ostream &, const TCS::CountingConnector &)
Definition: CountingConnector.cxx:93
TCS::SortingConnector::m_sortingAlgorithm
SortingAlg * m_sortingAlgorithm
Definition: SortingConnector.h:51
Exception.h
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::Connector::setAlgorithm
virtual void setAlgorithm(TCS::ConfigurableAlg *)
Definition: Connector.cxx:42
SortingConnector.h