From 6ff12aae85aa837ec5f0aaf5923c1ffff630ca2d Mon Sep 17 00:00:00 2001 From: Udo Eisenbarth <u.eisenbarth@gsi.de> Date: Fri, 28 Jul 2023 17:04:28 +0200 Subject: [PATCH] Improve group example. Add beam splitter to group. Analysis is still Ok. Graph display still wrong. --- examples/group_test.rs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/examples/group_test.rs b/examples/group_test.rs index f79b2ef2..83e5fc39 100644 --- a/examples/group_test.rs +++ b/examples/group_test.rs @@ -5,7 +5,7 @@ use opossum::{ analyzer::AnalyzerEnergy, error::OpossumError, lightdata::{DataEnergy, LightData}, - nodes::{Detector, Dummy, NodeGroup, Source}, + nodes::{BeamSplitter, Detector, Dummy, NodeGroup, Source}, optic_node::OpticNode, optic_scenery::OpticScenery, spectrum::create_he_ne_spectrum, @@ -21,19 +21,20 @@ fn main() -> Result<(), OpossumError> { spectrum: create_he_ne_spectrum(1.0), })), ); - let i_d = scenery.add_element("Detector", Detector::default()); - + let i_d1 = scenery.add_element("Detector1", Detector::default()); + let i_d2 = scenery.add_element("Detector2", Detector::default()); let mut group = NodeGroup::new(); - let i_g_d1 = group.add_node(OpticNode::new("dummy1", Dummy)); - let i_g_d2 = group.add_node(OpticNode::new("dummy2", Dummy)); - group.connect_nodes(i_g_d1, "rear", i_g_d2, "front")?; - group.map_input_port(i_g_d1, "front", "input")?; - group.map_output_port(i_g_d2, "rear", "output")?; + let i_g_d = group.add_node(OpticNode::new("dummy1", Dummy)); + let i_g_bs = group.add_node(OpticNode::new("bs", BeamSplitter::new(0.6))); + group.connect_nodes(i_g_d, "rear", i_g_bs, "input1")?; + group.map_input_port(i_g_d, "front", "input")?; + group.map_output_port(i_g_bs, "out1_trans1_refl2", "output1")?; + group.map_output_port(i_g_bs, "out2_trans2_refl1", "output2")?; let i_g = scenery.add_element("test group", group); scenery.connect_nodes(i_s, "out1", i_g, "input")?; - scenery.connect_nodes(i_g, "output", i_d, "in1")?; - + scenery.connect_nodes(i_g, "output1", i_d1, "in1")?; + scenery.connect_nodes(i_g, "output2", i_d2, "in1")?; let path = "group_test.dot"; let mut output = File::create(path).unwrap(); write!(output, "{}", scenery.to_dot()).unwrap(); -- GitLab