Belle II Software  release-05-02-19
DataFlowVisualization.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2013 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Christian Pulvermacher *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <framework/datastore/DependencyMap.h>
14 
15 #include <iosfwd>
16 
17 namespace Belle2 {
22  class Module;
23  class Path;
24 
26  class DataFlowVisualization {
27  public:
29  explicit DataFlowVisualization(const DependencyMap* dependencyMap);
30 
36  void visualizePath(const std::string& filename, const Path& path);
37 
42  static void executeModuleAndCreateIOPlot(const std::string& module);
43  private:
45  void generateModulePlot(std::ofstream& file, const Module& mod, bool steeringFileFlow = false);
46 
48  static void plotPath(std::ofstream& file, const Path& path, const std::string& pathName = "");
49 
51  bool checkArrayUnknown(const std::string& name, const DependencyMap::ModuleInfo& info);
52 
54  const DependencyMap* m_map;
55 
56  std::set<std::string> m_allInputs;
57  std::set<std::string> m_allOutputs;
58  std::set<std::string> m_unknownArrays;
62  };
64 }
Belle2::DataFlowVisualization::executeModuleAndCreateIOPlot
static void executeModuleAndCreateIOPlot(const std::string &module)
Create independent I/O graph for a single module (without requiring a steering file).
Definition: DataFlowVisualization.cc:167
Belle2::DataFlowVisualization::visualizePath
void visualizePath(const std::string &filename, const Path &path)
Create graphs with datastore inputs/outputs of each module in path.
Definition: DataFlowVisualization.cc:40
Belle2::DataFlowVisualization::m_arrowcolor
std::string m_arrowcolor[DependencyMap::c_NEntryTypes]
arrow colors.
Definition: DataFlowVisualization.h:69
Belle2::DataFlowVisualization::DataFlowVisualization
DataFlowVisualization(const DependencyMap *dependencyMap)
Constructor.
Definition: DataFlowVisualization.cc:28
Belle2::DataFlowVisualization::m_map
const DependencyMap * m_map
Stores information on inputs/outputs of each module, as obtained by require()/createEntry();.
Definition: DataFlowVisualization.h:62
Belle2::DataFlowVisualization::m_unknownArrays
std::set< std::string > m_unknownArrays
set of array only being used in relations, for steering file visualisation.
Definition: DataFlowVisualization.h:66
Belle2::DataFlowVisualization::m_fillcolor
std::string m_fillcolor[DependencyMap::c_NEntryTypes]
fill colors.
Definition: DataFlowVisualization.h:68
Belle2::DataFlowVisualization::generateModulePlot
void generateModulePlot(std::ofstream &file, const Module &mod, bool steeringFileFlow=false)
Create I/O graph for a single module (written to file).
Definition: DataFlowVisualization.cc:108
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::DependencyMap::c_NEntryTypes
@ c_NEntryTypes
size of this enum.
Definition: DependencyMap.h:30
Belle2::DataFlowVisualization::m_allOutputs
std::set< std::string > m_allOutputs
set of all outputs, for steering file visualisation.
Definition: DataFlowVisualization.h:65
Belle2::DataFlowVisualization::checkArrayUnknown
bool checkArrayUnknown(const std::string &name, const DependencyMap::ModuleInfo &info)
If the given array name isn't found in any of info's fields, it is added to m_unknownArrays (and true...
Definition: DataFlowVisualization.cc:191
Belle2::DataFlowVisualization::m_allInputs
std::set< std::string > m_allInputs
set of all inputs (including optionals), for steering file visualisation.
Definition: DataFlowVisualization.h:64
Belle2::DataFlowVisualization::plotPath
static void plotPath(std::ofstream &file, const Path &path, const std::string &pathName="")
Create a subgraph for the given Path (including conditional paths).
Definition: DataFlowVisualization.cc:73