Warning, /AID2E-framework/examples/epic/drich/README.md is written in an unsupported language. File is not indexed.
0001 # AID2E dRICH Example
0002
0003 Run dRICH detector-design optimization with AID2E. The main flow is:
0004
0005 ```
0006 workflow.yml -> aid2e optimize -> workflow stages -> objective plan -> optimizer update
0007 ```
0008
0009 ## Files
0010 - `workflow.yml`: example config optimizer, scheduler, and epic workflow
0011 - `design.params`: geometry parameters and XML edit targets
0012 - `drich_utils.py`: job payloads and objective aggregation
0013 - `script/dRICHAna_bootstrap.cpp`: per-scan analysis code used by the `ana` stage
0014
0015 ## ePIC Setup
0016 It is recommended to use the branch of the fork containing a single-mirror dRICH, which is then compatible with the already built versions of EICrecon and IRT available in eic-shell:24.11.1-stable.
0017
0018 The following repository and branch hold the recommended default geometry for the optimization of the dRICH and will need to be downloaded and built prior to running.
0019
0020 Additionally, the dRICH analysis script will need to be built from within eic-shell prior to running the optimization, located in examples/epic/drich/script
0021
0022 ```
0023 git clone -b 24.11.1-drich-singlemirror https://github.com/cpecar/epic-geom-drich-mobo.git
0024 ./build_epic.sh epic-geom-drich-mobo "$EIC_SOFTWARE"
0025 cd examples/epic/drich/script && make
0026 ```
0027
0028 ## Run
0029 ```
0030 aid2e optimize examples/epic/drich/workflow.yml
0031 ```
0032
0033 ```mermaid
0034 flowchart TB
0035 C["workflow.yml"] --> O["aid2e optimize"]
0036 O --> B["Schedule trial batch"]
0037
0038 subgraph T["Run one trial workflow"]
0039 G["geo"]
0040 G --> S1["sim + rec 1"]
0041 G --> S2["sim + rec 2"]
0042 G --> SN["... 8 jobs"]
0043
0044 S1 --> SF["sim + rec complete"]
0045 S2 --> SF
0046 SN --> SF
0047
0048 SF --> A1["ana 1"]
0049 SF --> AN["... 4 jobs"]
0050 A1 --> M["collect objectives"]
0051 AN --> M
0052 end
0053
0054 B --> T
0055 B --> N["Other trials<br/>same workflow"]
0056 M --> R["Collect batch results"]
0057 N --> R
0058 R --> U["Update optimizer"] --> O
0059 ```