Skip to content

Commit df895c8

Browse files
add initial answers to questions that were asked
1 parent 2f65b71 commit df895c8

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
- [Building and Installing ldmx-sw](developing/building/intro.md)
3535
- [Shared Computing Clusting](developing/building/clusters.md)
3636
- [Updating ldmx-sw](developing/building/updating.md)
37+
- [Framework Structure](developing/framework.md)
3738
- [Transition to ldmx-sw v4](developing/transition-to-ldmx-sw-v4.md)
3839
- [Tracking Performance of ldmx-sw](developing/performance.md)
3940
- [Container-Software Compatibility](developing/compatibility.md)

src/developing/framework.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# ldmx-sw Framework Structure
2+
3+
ldmx-sw is organized into "modules" that contain related code, the `Framework` module
4+
is of particular importance since it defines the core processing interfaces and handles
5+
reading/writing data from/to the ROOT files.
6+
7+
## Where is the `main`?
8+
Many developers, especially those who are more familiar with C++, will want to know
9+
where the `fire` executable is defined.
10+
`fire` is defined within `Framework/app/fire.cxx` and this file reveals the overall
11+
flow of the program.
12+
13+
1. Configure - run the provided Python script and then extract the run configuration
14+
from the Python objects that were created when the script was run.
15+
2. Run - execute the configured run. The `framework::Process` class is the main object
16+
that handles the execution.
17+
18+
## How does Python get run?
19+
We launch Python from within our C++ program by
20+
[embedding Python](https://docs.python.org/3/extending/embedding.html).
21+
In the configuration area of `Framework`, you'll see may of these calls to Python's
22+
C interface (like `Py_InitializeEx()` for example).

0 commit comments

Comments
 (0)