Skip to content

Commit

Permalink
Update dogma examples
Browse files Browse the repository at this point in the history
  • Loading branch information
linev committed May 24, 2024
1 parent 6701326 commit 3b31e6c
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 4 deletions.
4 changes: 2 additions & 2 deletions plugins/dogma/app/EventBuilder.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ When starting analysis from the go4 gui, one should specify stream server with p
<InputPort name="Input1" url="dogma://host:60679"/>
<InputPort name="Input*" queue="20" urlopt="udpbuf=400000&mtu=65507&flush=0.1&maxloop=50" resort="false"/>

<!-- this is stream server for online monitoring, normally always on -->
<OutputPort name="Output0" url="mbs://Stream:6002?iter=dogma_iter&subid=0x1f"/>
<!-- this is stream server for online monitoring, normally always on, 0x25 is DOGMA identifier -->
<OutputPort name="Output0" url="mbs://Stream:6002?iter=dogma_iter&subid=0x25"/>

<!-- this is example of DLD file storage - local, set NumOutputs=2 -->
<OutputPort name="Output1" url="dld://debug.dld?maxsize=2000"/>
Expand Down
4 changes: 2 additions & 2 deletions plugins/dogma/app/EventBuilderDebug.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ When starting analysis from the go4 gui, one should specify stream server with p

<!--InputPort name="Input*" queue="10" urlopt="udpbuf=400000&mtu=65507&flush=0.1&maxloop=50" resort="false"/-->

<!-- this is stream server for online monitoring, normally always on -->
<OutputPort name="Output0" url="mbs://Stream:6002?iter=dogma_iter&subid=0x1f"/>
<!-- this is stream server for online monitoring, normally always on, 0x25 is DOGMA identifier -->
<OutputPort name="Output0" url="mbs://Stream:6002?iter=dogma_iter&subid=0x25"/>

<!-- this is example of HLD file storage - local, set NumOutputs=2 -->
<OutputPort name="Output1" url="dld://debug.dld?maxsize=2000"/>
Expand Down
125 changes: 125 additions & 0 deletions plugins/dogma/app/build.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0"?>

<!--
This is example file how DOGMA event building should be configured in DABC.
Event building process implemented in Combiner module of dogma::CombinerModule class.
Module can have several inputs, each with separate port number for receiving data
from TRB boards. For every input one could configure only UDP port number - host name is ignored.
First output of combiner module used for delivering data to online analysis (if any).
Second output can be use to store data in hld files.
To enable HLD file storage one should specify NumOutputs for Combiner module
and provide hld file name for Output1 port
<NumOutputs value="2"/>
<OutputPort name="Output1" url="dogma://dabc.dogma?maxsize=2000"/>
File name fill be extended according to HADAQ naming convention.
By default, HTTP server is enabled. Do disable it, remove <HttpServer> section or
put <HttpServer name="http" auto="false">. One could change http port number.
When dabc runs, in any browser address like
http://your_dabc_host_name:8090 can be opened. At the moment http server provides:
- ratemeters from EventBuilder
- log fields
- commands to start/stop hld files storage from browser
There is well-known problem with using VNC viewer and mbs stream server.
Both by default are using port 6002. One could change port number for stream server.
Just set other number in configuration of first output port of combiner module, for instance:
<OutputPort name="Output0" url="mbs://Stream:6789?iter=hadaq_iter&subid=0x1f"/>
In this case one should specify that port number when starting go4 analysis like:
[shell] go4analysis -stream dabc_node:6789 -dabc dabc_node:4444
When starting analysis from the go4 gui, one should specify stream server with port number too.
-->

<dabc version="2">
<Context host="localhost" name="EventBuilder">
<Run>
<lib value="libDabcMbs.so"/>
<lib value="libDabcDogma.so"/>
<lib value="libDabcHttp.so"/>
<logfile value="hadaqevtbuild.log"/>
<loglevel value="-1"/>
<loglimit value="1000"/>
<control value="true"/>
<threads_layout value="balanced"/>
</Run>

<HttpServer name="http" port="8090"/>

<!-- If uncommented, all internal manager structures will be published in the web server -->
<!-- Publisher name="publ" manager="true"/ -->

<!-- If uncommented, profiling will be enabled for all threads -->
<!-- Thread name="*" publ="true" prof="true"/ -->

<MemoryPool name="Pool">
<BufferSize value="2000000"/>
<NumBuffers value="1000"/>
</MemoryPool>

<Module name="Combiner" class="dogma::CombinerModule">
<!-- these parameters will force to create inputs/outputs of module -->
<NumInputs value="2"/>
<NumOutputs value="2"/>

<InputPort name="Input0" url="bin://out0_0000.bin?close_on_error"/>
<InputPort name="Input1" url="bin://out1_0000.bin?close_on_error"/>

<!--InputPort name="Input*" queue="10" urlopt="udpbuf=400000&mtu=65507&flush=0.1&maxloop=50" resort="false"/-->

<!-- this is stream server for online monitoring, normally always on, 0x25 identifies DOGMA events -->
<OutputPort name="Output0" url="mbs://Stream:6002?iter=dogma_iter&subid=0x25"/>

<!-- this is example of HLD file storage - local, set NumOutputs=2 -->
<OutputPort name="Output1" url="dld://debug.dld?maxsize=2000"/>

<!-- this is example of HLD file storage, which retries to create new files in case of error (disk full).
transport runs in own thread to exclude blocking of other transports if file operation hangs -->
<!--OutputPort name="Output1" url="hld://dabc.hld?maxsize=2000" retry="5" blocking="never" thread="FileThread"/-->

<!-- this is example of HLD file storage - RFIO -->
<!--OutputPort name="Output1" url="hld:///linev/path/dabc.hld?maxsize=1900&rfio"/-->

<!-- when false, subevents without raw data will not be skipped and inserted into final event -->
<SkipEmpty value="true"/>

<!-- when true, extra debug output produced every second -->
<ExtraDebug value="false"/>

<!-- how often output will be flushed -->
<FlushTimeout value="0.5"/>

<!-- TriggerNumRange: defines when trigger sequence number wraps. only 16 bit for HADES EBs, 24 bit for trb3! -->
<TriggerNumRange value="0x1000000"/>

<!-- TriggerTollerance: defines allowed difference between events, when exceed - total reset will be performed
Default value is 1/4 of TriggerNumRange. When 0, no checks is performed -->
<!-- <TriggerTollerance value="0"/> -->

<!-- CheckTag: when true events will be discarded if tag mismatched between subevents -->
<CheckTag value="true"/>

<!-- AccountLostEventDiff: if true, missing trigger sequence number are added as lost events to stats. Disabled for multiple event builder mode! -->
<AccountLostEventDiff value="true"/>

<!-- When event cannot be build too long, complete data drop will be performed -->
<BuildDropTimeout value="20.0"/>

<!-- When non-zero value specified, event builder will stop DABC when required number of events are build -->
<MaxNumBuildEvt value="0"/>

<!-- rate meters configuration, not seen with terminal module -->
<DogmaData width="4" prec="2" low="0" up="10" debug="1"/>
<DogmaEvents width="5" prec="1" low="0" up="1000" debug="1"/>
<DogmaDroppedData width="5" prec="3" low="0" up="1" debug="1"/>
<DogmaLostEvents width="4" prec="2" low="0" up="100" debug="1"/>
</Module>

<!-- Terminal output like old event builder -->
<Module name="Term" class="dogma::TerminalModule" period="0.3" clear="false" fileport="1" servport="0" showtrig="16"/>

</Context>

</dabc>

0 comments on commit 3b31e6c

Please sign in to comment.