43 std::string algStreamName{
"Algorithms" + listName};
48 if (code == STATUS_CODE_SUCCESS)
53 if (!pClusterList->empty())
64 else if (code != STATUS_CODE_NOT_INITIALIZED)
75 return STATUS_CODE_SUCCESS;
86 std::cout <<
"StreamingAlgorithm::ReadSettings - Error: Only Cluster list type is supported at this time" << std::endl;
87 return STATUS_CODE_INVALID_PARAMETER;
93 std::cout <<
"StreamingAlgorithm::ReadSettings - Error: No input lists found" << std::endl;
94 return STATUS_CODE_NOT_FOUND;
102 std::cout <<
"StreamingAlgorithm::ReadSettings - Error: You must provide either a single output list name OR a list of output list names"
104 return STATUS_CODE_NOT_FOUND;
108 std::cout <<
"StreamingAlgorithm::ReadSettings - Error: When providing a list of output lists, there should be a one-to-one "
109 <<
"correspondence with the list of input lists" << std::endl;
110 return STATUS_CODE_INVALID_PARAMETER;
115 std::string algStreamName{
"Algorithms" + listName};
118 std::cout <<
"StreamingAlgorithm::ReadSettings - Error: Duplicate stream name found" << std::endl;
119 return STATUS_CODE_INVALID_PARAMETER;
125 std::cout <<
"StreamingAlgorithm::ReadSettings - Error: Found no algorithms for \'" << algStreamName <<
"\'" << std::endl;
126 return STATUS_CODE_NOT_FOUND;
130 return STATUS_CODE_SUCCESS;
Header file for the lar calo hit class.
Header file for the lar monte carlo particle helper helper class.
Header file for the lar monitoring helper helper class.
#define PANDORA_RETURN_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
#define PANDORA_RETURN_RESULT_IF(StatusCode1, Operator, Command)
static pandora::StatusCode ReplaceCurrentList(const pandora::Algorithm &algorithm, const std::string &newListName)
Replace the current list with a pre-saved list; use this new list as a permanent replacement for the ...
static pandora::StatusCode GetCurrentList(const pandora::Algorithm &algorithm, const T *&pT)
Get the current list.
static pandora::StatusCode RunDaughterAlgorithm(const pandora::Algorithm &algorithm, const std::string &daughterAlgorithmName)
Run an algorithm registered with pandora, from within a parent algorithm.
StreamingAlgorithm()
Default constructor.
pandora::StringVector m_inputListNames
The names of the input lists.
std::string m_outputListName
The name of the output list.
virtual ~StreamingAlgorithm()
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
std::string m_listType
The type of the input lists (currently only Cluster is supported)
pandora::StringVector m_outputListNames
Names of the output lists if not combining into a single list at the end.
pandora::StatusCode Run()
Run the algorithm.
StreamAlgorithmMap m_streamAlgorithmMap
A map from individual streams to the algorithms that stream should run.
static StatusCode ReadVectorOfValues(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, std::vector< T > &vector)
Read a vector of values from a (space separated) list in an xml element.
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
static StatusCode ProcessAlgorithmList(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, const std::string &listName, StringVector &algorithmNames)
Process a list of daughter algorithms in an xml file.
MANAGED_CONTAINER< const Cluster * > ClusterList
StatusCode
The StatusCode enum.