From 7683b94cb2ee41be186428af5ae9372479529244 Mon Sep 17 00:00:00 2001 From: Teng Jian Khoo <teng.jian.khoo@cern.ch> Date: Wed, 6 Jan 2021 21:57:23 +0000 Subject: [PATCH] Detailed formatting of flowcharts --- .../python/HLTMenuConfig/Jet/README.md | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/README.md b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/README.md index 4857f197a067..740fa1ecfdcc 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/README.md +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/README.md @@ -7,12 +7,14 @@ A typical jet trigger chain may look like: ```mermaid graph TD; + subgraph Overview L1[Step: L1 seed] --> R1(Reject):::reject L1 --> HLT1; HLT1[Step: HLT calo jet presel] --> R2(Reject):::reject; HLT1 --> HLT2; HLT2[Step: HLT track jet final] --> R3(Reject):::reject; HLT2 --> A(Accept):::accept; + end classDef reject fill:#0dd; classDef accept fill:#dd0; @@ -28,6 +30,7 @@ sequenceDiagram participant SG as Data (StoreGate) participant Reco as Reconstruction participant Hypo as Hypo selection + rect rgb(255, 255, 0); Hypo ->> Reco: L1 accept activate Reco SG -->> Reco: Topoclusters @@ -43,6 +46,7 @@ sequenceDiagram deactivate Reco SG ->> Hypo: Particle Flow Jets Hypo ->> SG: HLT Decision + end ``` In this (simplified) picture, the HLT chain is implemented as repeated interactions of the form: * Upstream hypo decision unlocks step reconstruction @@ -57,7 +61,8 @@ Although simple to understand, this linear picture may be misleading. Because th The scheduler creates a graph showing how the algorithmic flow would proceed for one chain: ```mermaid -flowchart TD; +graph TD; + subgraph Chain L1a(L1Accept):::decision --> TopoClusterMaker:::alg subgraph Step 1 @@ -76,9 +81,9 @@ flowchart TD; subgraph Step 2 - FSTrk --> Tracks:::data - Tracks --> PFlow - PFlow --> PFOs[/PFlowObjects/]:::data + FSTrk --> Tracks[/Tracks/]:::data + Tracks --> PFlowReco + PFlowReco --> PFOs[/PFlowObjects/]:::data PFOs --> PFlowJetReco:::alg PFlowJetReco --> PFlowJets[/PFlowJets/]:::data PFlowJets --> PFlowJetHypo:::alg @@ -86,6 +91,7 @@ flowchart TD; end PFlowJetHypo --> HLT2A[HLT final accept]:::decision + end classDef data fill:#dd0; classDef alg fill:#faf; @@ -95,7 +101,9 @@ The step decisions function as gates which enable the succeeding algorithms to b However, it is more interesting to consider what happens when we have many chains in parallel, e.g. some running only calo reco, some using large-radius jets and others running small-radius jets. This could expand to a situation like the following: ```mermaid -flowchart TD; +graph TD; + + subgraph Jet slice Start --> L1A(L1Accept A):::decision Start --> L1B(L1Accept B):::decision @@ -114,13 +122,13 @@ flowchart TD; Filter1b -.->|activates| CaloJetRecoA10 - TopoClusterMaker:::alg --> Topoclusters:::data + TopoClusterMaker:::alg --> Topoclusters[/Topoclusters/]:::data Topoclusters --> CaloJetRecoA4:::alg Topoclusters --> CaloJetRecoA10:::alg - CaloJetRecoA4 --> AntiKt4CaloJets:::data + CaloJetRecoA4 --> AntiKt4CaloJets[/AntiKt4CaloJets/]:::data AntiKt4CaloJets --> CaloJetHypoA4:::alg - CaloJetRecoA10 --> AntiKt10CaloJets:::data + CaloJetRecoA10 --> AntiKt10CaloJets[/AntiKt10CaloJets/]:::data AntiKt10CaloJets --> CaloJetHypoA10:::alg end @@ -132,8 +140,8 @@ flowchart TD; Topoclusters --> PFlow:::alg - HLT1A --> Filter2a - HLT1B --> Filter2b + HLT1A --> Filter2a:::filter + HLT1B --> Filter2b:::filter subgraph Step 2 @@ -144,16 +152,16 @@ flowchart TD; Filter2b -.->|activates| PFlowJetRecoA10 FSTrk --> Tracks:::data - Tracks --> PFlow + Tracks --> PFlowReco - PFlow --> PFOs[PFlowObjects]:::data + PFlowReco --> PFOs[/PFlowObjects/]:::data PFOs --> PFlowJetRecoA4:::alg PFOs --> PFlowJetRecoA10:::alg - PFlowJetRecoA4 --> AntiKt4PFlowJets:::data + PFlowJetRecoA4 --> AntiKt4PFlowJets[/AntiKt4PFlowJets/]:::data AntiKt4PFlowJets --> PFlowJetHypoA4:::alg - PFlowJetRecoA10 --> AntiKt10PFlowJets:::data + PFlowJetRecoA10 --> AntiKt10PFlowJets[/AntiKt10PFlowJets/]:::data AntiKt10PFlowJets --> PFlowJetHypoA10:::alg end @@ -161,9 +169,11 @@ flowchart TD; PFlowJetHypoA4 --> HLT2A(HLT final accept A):::decision PFlowJetHypoA10 --> HLT2B(HLT final accept B):::decision + end + classDef data fill:#dd0; classDef alg fill:#faf; - classDef filter fill:#ddd; + classDef filter fill:#bdb; classDef decision fill:#aff; ``` -- GitLab