Skip to content

Commit

Permalink
Small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
DraTeots committed Dec 7, 2024
1 parent 5381b9b commit 3f69616
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 6 deletions.
19 changes: 19 additions & 0 deletions docs/_media/data-identification.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17">
<diagram name="Page-1" id="XqF6jXGAWMoHd3vs6mjT">
<mxGraphModel dx="440" dy="396" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="jfAYyd5IPHRa1RL9PnO3-1" value="&lt;div&gt;&lt;i&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;C++ type&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;b&gt;&lt;font color=&quot;#ffffff&quot;&gt;DATA TYPE&lt;/font&gt;&lt;/b&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;e.g. tracking::TrackerHit&lt;/font&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;align=center;fillColor=#D80073;strokeColor=#660066;" vertex="1" parent="1">
<mxGeometry x="40" y="50" width="150" height="80" as="geometry" />
</mxCell>
<mxCell id="jfAYyd5IPHRa1RL9PnO3-2" value="&lt;div&gt;&lt;i&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;std::string&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;b&gt;&lt;font color=&quot;#ffffff&quot;&gt;TAG&lt;/font&gt;&lt;/b&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;e.g. BarrelTracker&lt;/font&gt;&lt;/div&gt;" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#0041C4;strokeColor=#000066;" vertex="1" parent="1">
<mxGeometry x="180" y="50" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="jfAYyd5IPHRa1RL9PnO3-3" value="&lt;i&gt;&lt;font color=&quot;#777777&quot;&gt;Data identification in JANA&lt;/font&gt;&lt;/i&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="100" y="130" width="150" height="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
4 changes: 4 additions & 0 deletions docs/_media/data-identification.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 7 additions & 6 deletions docs/concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ tools for their projects without being constrained by the framework.
### Data Identification in JANA2
![Simple Algorithms Flow](_media/data-identification.svg)
![Data Identification in JANA2](_media/data-identification.svg)
An important aspect is how data is identified within JANA2. JANA2 supports two identifiers:
Expand Down Expand Up @@ -142,8 +142,8 @@ class is the central hub of the JANA2 framework, orchestrating all aspects of a
application. It manages the initialization, configuration, and execution of the data processing workflow,
serving as the entry point for interacting with the core components of the system.
By providing access to key managers, services, and runtime controls,
JApplication ensures that the application operates smoothly from setup to shutdown.
To illustrate this, here is a code of typical standalone JANA2 application:
JApplication ensures that the application operates smoothly from setup to shut down.
To illustrate this, here is a code of a typical standalone JANA2 application:
```cpp
int main(int argc, char* argv[]) {
Expand All @@ -154,7 +154,7 @@ int main(int argc, char* argv[]) {
// Instantiate the JApplication with the parameter manager
JApplication app(params);
// Add predefined plugoms
// Add predefined plugins
app.AddPlugin("my_plugin");
// Register services:
Expand Down Expand Up @@ -188,7 +188,7 @@ JANA implements a **factory model**, where data objects are the products, and th
factories. While there are various types of factories in JANA2 (covered later in this documentation),
they all follow the same fundamental concept:

![JANA2 Factory diagram](_media/concepts-factory-diagram.png)
<img src="_media/concepts-factory-diagram.png" width="600" alt="JANA Factory Diagram" >

This diagram illustrates the analogy to industry. When a specific data object is requested for the current event in JANA,
the framework identifies the corresponding algorithm (factory) capable of producing it.
Expand Down Expand Up @@ -219,7 +219,8 @@ fully reconstructing an event within that thread. This minimizes the use of lock
to coordinate between threads and subsequently degrade performance. Factory sets are maintained in a pool and
are (optionally) assigned affinity to a specific NUMA group.

![JANA2 Factory diagram](_media/threading-schema.png)
<img src="_media/threading-schema.png" width="500" alt="JANA2 threading diagram" >


With some level of simplification, this diagram shows how sets of factories are created for each thread in the
working pool. Limited by IO operations, events usually must be read in from the source sequentially(orange)
Expand Down

0 comments on commit 3f69616

Please sign in to comment.