--- /dev/null
+start 222533322 0 xx15029130842.hld 2015-01-29 13:08:42
+stop 222533322 0 xx15029130842.hld 2015-01-29 13:10:19 7669k 1462M
--- /dev/null
+<?xml version="1.0"?>
+
+<!--
+This is example file how HADAQ event building should be configured in DABC.
+Event building process implemented in Combiner module of hadaq::CombinerModule class.
+Module can have several inputs, each with separate port number for receiving data
+from TRB boards. In each input port configuration only port number has meaning.
+First output of combiner module reserved for the connection to
+the optional MBS transmitter module. Second output can be use to store data in hld files.
+To enable storage, one should specify two output ports and correctly configure Output1 of combiner module.
+
+Optionally one can enable MBS transmitter module, which converts HLD to LMD format.
+To enable transmitter, one should specify auto="true" in configuration which says DABC
+to automatically create module when starting application.
+First output of the module reserved for stream server, second output can be used to
+store data in lmd files.
+
+-->
+
+<dabc version="2">
+ <Context host="localhost" name="EventBuilder">
+ <Run>
+ <lib value="libDabcMbs.so"/>
+ <lib value="libDabcHadaq.so"/>
+ <logfile value="hadaqevtbuild.log"/>
+ <loglimit value="1000000"/>
+ <!--affinity value="-1"/-->
+ </Run>
+
+ <MemoryPool name="Pool">
+ <BufferSize value="200000"/>
+ <NumBuffers value="1000"/>
+ </MemoryPool>
+
+ <Module name="Combiner" class="hadaq::CombinerModule">
+ <!-- these parameters will force to create inputs/oputputs of module -->
+ <NumInputs value="1"/>
+ <NumOutputs value="1"/>
+
+ <InputPort name="Input0" url="hadaq://host:60000"/>
+ <InputPort name="Input1" url="hadaq://host:10102"/>
+ <InputPort name="Input2" url="hadaq://host:10103"/>
+ <InputPort name="Input3" url="hadaq://host:10104"/>
+ <InputPort name="Input4" url="hadaq://host:10105"/>
+
+ <InputPort name="Input*" queue="10">
+ <HadaqUdpBuffer value="200000"/>
+ <DoShmControl value="false"/>
+ <HadaqUdpMTU value="64512"/>
+ <FlushTimeout value="2.0"/>
+ </InputPort>
+
+ <OutputPort name="Output1" url="hld:///data.local2/dabc.hld?maxsize=1500"/>
+
+ <DoShmControl value="false"/>
+ <FlushTimeout value="2.0"/>
+
+ <!-- take event sequence number from vulom/roc sync message at cts -->
+ <UseSyncSequenceNumber value="false"/>
+ <SyncSubeventId value="0x8000"/>
+ <SyncTriggerMask value="0x01"/>
+ <PrintSync value="false"/>
+ <FlushBySync value="false"/>
+
+ <!-- rate meters configuration -->
+ <HadaqData width="4" prec="2" low="0" up="10" debug="1"/>
+ <HadaqEvents width="5" prec="1" low="0" up="1000" debug="1"/>
+ <HadaqDroppedData width="5" prec="3" low="0" up="1" debug="1"/>
+ <HadaqLostEvents width="4" prec="2" low="0" up="100" debug="1"/>
+ </Module>
+
+ <Module name="OnlineServer" class="hadaq::MbsTransmitterModule" auto="true">
+ <NumInputs value="1"/>
+ <NumOutputs value="1"/>
+
+ <InputPort name="Input0" url="Combiner/Output0" queue="10"/>
+
+ <OutputPort name="Output0" url="mbs://Stream:6790"/>
+ <OutputPort name="Output1" url="lmd://test.lmd?maxsize=30&log=2"/>
+
+ <!-- this is 32-bit MBS subevent id, which than can be seen in the analysis. Here procid=0x1f is configured -->
+ <SubeventFullId value="0x000001F"/>
+
+ <!-- If true, all events with the same SYNC number will be merged together into same MBS event -->
+ <DoMergeSyncedEvents value="true"/>
+
+ <TransmitData width="5" prec="3" low="0" up="50" debug="1"/>
+ <TransmitEvents width="4" prec="1" low="0" up="100" debug="1"/>
+ </Module>
+
+ </Context>
+
+ <!--Context name="*">
+ <Thread name="CombinerThrdInp" class="dabc::SocketThread" affinity="+0"/>
+ </Context-->
+
+</dabc>
--- /dev/null
+set daq_evtbuild(startdate) "2015-01-29T13:08:42"
+set daq_evtbuild(nrofmsgs) 1
+set daq_evtbuild(outpath) "/tmp/xx15029130842.hld"
+set daq_evtbuild(outdev) "file"
+set daq_evtbuild(runnr) 222533322
+set daq_evtbuild(expid) "xx"
+set daq_evtbuild(prio) 0
+set daq_evtbuild(stndln) 1
+set daq_evtbuild(qsize) 33554432
+set daq_evtbuild(verb) "info"
+set daq_netmem(startdate) "2015-01-29T13:08:43"
+set daq_netmem(inpath0) "UDP:127.0.0.1:60000"
+set daq_netmem(nrofmsgs) 1
+set daq_netmem(stndln) 1
+set daq_netmem(prio) 0
+set daq_netmem(qsize) 33554432
+set daq_netmem(verb) "info"
+set daq_netmem(pid) 31548
+set daq_netmem(pktsReceived0) 7669770
+set daq_netmem(pktsDiscarded0) 0
+set daq_netmem(msgsReceived0) 7669770
+set daq_netmem(msgsDiscarded0) 0
+set daq_netmem(bytesReceived0) 1546455656
+set daq_netmem(stopdate) "2015-01-29T13:10:18"
+set daq_evtbuild(pid) 31530
+set daq_evtbuild(stopdate) "2015-01-29T13:10:19"
--- /dev/null
+
+void first()
+{
+
+ base::ProcMgr::instance()->SetRawAnalysis(true);
+
+ // this limits used for liner calibrations when nothing else is available
+ hadaq::TdcMessage::SetFineLimits(31, 421);
+
+ // default channel numbers and edges mask
+ hadaq::TrbProcessor::SetDefaults(33, 0x1);
+
+ hadaq::HldProcessor* hld = new hadaq::HldProcessor();
+
+ // About time calibration - there are two possibilities
+ // 1) automatic calibration after N hits in every enabled channel.
+ // Just use SetAutoCalibrations method for this
+ // 2) generate calibration on base of provided data and than use it later statically for analysis
+ // Than one makes special run with SetWriteCalibrations() enabled.
+ // Later one reuse such calibrations enabling only LoadCalibrations() call
+
+ hadaq::TrbProcessor* trb3_1 = new hadaq::TrbProcessor(0x8000, hld);
+ trb3_1->SetHistFilling(4);
+ trb3_1->SetCrossProcess(true);
+ trb3_1->CreateTDC(0xC000, 0xC001, 0xC002, 0xC003);
+ // enable automatic calibration, specify required number of hits in each channel
+ trb3_1->SetAutoCalibrations(100000);
+ // calculate and write static calibration at the end of the run
+ //trb3_1->SetWriteCalibrations("run1");
+ // load static calibration at the beginning of the run
+ //trb3_1->LoadCalibrations("run1");
+
+ hadaq::TrbProcessor* trb3_2 = new hadaq::TrbProcessor(0x8001, hld);
+ trb3_2->SetHistFilling(4);
+ trb3_2->SetCrossProcess(true);
+ trb3_2->CreateTDC(0xC010, 0xC011, 0xC012, 0xC013);
+ trb3_2->SetAutoCalibrations(100000);
+ //trb3_2->SetWriteCalibrations("run1");
+ //trb3_2->LoadCalibrations("run1");
+
+ // this is array with available TDCs ids
+ int tdcmap[8] = { 0xC000, 0xC001, 0xC002, 0xC003, 0xC010, 0xC011, 0xC012, 0xC013 };
+
+ // TDC subevent header id
+
+ for (int cnt=0;cnt<8;cnt++) {
+
+ hadaq::TdcProcessor* tdc = hld->FindTDC(tdcmap[cnt]);
+ if (tdc==0) continue;
+
+ // specify reference channel
+ tdc->SetRefChannel(1, 0, 0xc003, 20000, -100., 100., true);
+ tdc->SetRefChannel(4, 0, 0xc003, 20000, -10., 10., true);
+ tdc->SetRefChannel(3, 1, 0xffff, 20000, -10., 10., true);
+ // continue;
+
+ //tdc->SetRefChannel(4, 2, 0xffff, 20000, -10., 10., true);
+// tdc->SetRefChannel(6, 4, 0xc010, 20000, -20., 20., true);
+// tdc->SetRefChannel(7, 5, 0xc010, 20000, -20., 20., true);
+// tdc->SetRefChannel(8, 0, 0xc010, 20000, -90., 80., true);
+// tdc->SetRefChannel(9, 0, 0xc010, 20000, -200., 200., true);
+
+// continue;
+ if (cnt > 0) {
+ // specify reference channel from other TDC
+ //tdc->SetRefChannel(0, 0, 0xc000, 20000, -30., 30., true);
+ tdc->SetRefChannel(5, 5, 0xc000, 20000, -20., 20., true);
+ //tdc->SetRefChannel(6, 6, 0xc000, 20000, -20., 20., true);
+ tdc->SetRefChannel(7, 7, 0xc000, 20000, -20., 20., true);
+ }
+
+ // for old FPGA code one should have epoch for each hit, no longer necessary
+ // tdc->SetEveryEpoch(true);
+
+ // When enabled, time of last hit will be used for reference calculations
+ // tdc->SetUseLastHit(true);
+
+ }
+
+}
+
+
+
--- /dev/null
+// Automatically generated startup script
+// Do not change it!
+
+go4->SetMainWindowState(4,"000000ff00000000fd0000000200000000000001b100000407fc0200000001fb0000001600420072006f00770073006500720044006f0063006b0100000055000004070000007900ffffff00000003000003d5000000d5fc0100000001fc00000000000003d50000000000fffffffa000000020200000003fb00000016004c006f00670049006e0066006f0044006f0063006b0000000000ffffffff0000005200fffffffb0000001a004d006200730056006900650077006500720044006f0063006b0000000000ffffffff0000006400fffffffb0000001e0044004100420043004d006f006e00690074006f00720044006f0063006b0000000279000000ce0000000000000000000005c90000040700000004000000040000000800000008fc0000000800000002000000050000001600460069006c00650054006f006f006c0042006100720100000000ffffffff0000000000000000000000160047006f00340054006f006f006c007300420061007201000000e7ffffffff00000000000000000000001e0041006e0061006c00790073006900730054006f006f006c004200610072010000022bffffffff00000000000000000000001a0044006900760069006400650050006100640044006f0063006b0000000395000000e40000000000000000000000240048006900730044007200610077004f007000740069006f006e00730044006f0063006b0100000350000004300000000000000000000000020000000000000002000000020000002400420072006f0077007300650072004f007000740069006f006e00730044006f0063006b01000000000000010200000000000000000000001e0044007200610077004f007000740069006f006e00730044006f0063006b01000001020000037e00000000000000000000000200000001000000180047006f0034005300740079006c00650044006f0063006b0000000000000004b10000000000000000000000020000000100000020005300630061006c0065004f007000740069006f006e00730044006f0063006b0000000000000004b10000000000000000000000030000000000000003000000010000001e0043006f006d006d0061006e0064004c0069006e00650044006f0063006b0000000000000004b1000000000000000000000003000000010000001c00540072006500650056006900650077006500720044006f0063006b0000000000000004b10000000000000000");
+go4->SetMainWindowGeometry(4,"01d9d0cb0001000000000000000000000000077f0000049500000000000000140000077f0000039e000000000200");
+
+go4->LaunchAnalysis("MyAnalysis", ".", "libGo4UserAnalysis", "localhost", Go4_sh, Go4_qt, Go4_lib);
+go4->WaitAnalysis(300);
+
+// configuration of analysis
+go4->AnalysisAutoSave("Go4AutoSave.root", 500, 5, kFALSE, kFALSE);
+go4->AnalysisConfigName("Go4AnalysisPrefs.root");
+
+// step Analysis
+go4->ConfigStep("Analysis", kTRUE, kTRUE, kFALSE);
+go4->StepMbsStreamSource("Analysis", "localhost:6790", 1);
+go4->StepFileStore("Analysis", "NoOutputDefined", kTRUE, 32000, 99, 5);
+
+go4->SubmitAnalysisConfig(20);
+
+go4->SetAnalysisConfigMode(-1);
+go4->SetAnalysisTerminalMode(0);
+
+go4->StartAnalysis();
+
+// this is possibility to get extra histograms from analysis
+// which are create shortly after analysis is started
+go4->Wait(1);
+go4->RefreshNamesList();
+
+TGo4Picture *pic1 = new TGo4Picture("pic1", "temporary object to setup viewpanel");
+pic1->SetCrosshair(false);
+pic1->SetRangeX(-10.755, -3.667);
+pic1->SetRangeY(0, 163.8);
+pic1->SetLineAtt(1, 1, 1, -1);
+pic1->SetFillAtt(10, 1001, -1);
+pic1->SetHisStats(true);
+pic1->SetStatsAttr(0.78, 0.775, 0.98, 0.935, 11111111, "6.4g", 0, "5.4g");
+pic1->SetHisTitle(true);
+pic1->SetTitleAttr(0.15, 0.932561, 0.85, 0.995);
+pic1->SetTitleTime(true);
+pic1->SetTitleDate(true);
+pic1->SetTitleItem(true);
+pic1->SetAutoScale(true);
+pic1->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic1->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic1->AddObjName("Analysis/Histograms/TDC_c010/Ch7/TDC_c010_Ch7_RisingRef", "HIST");
+pic1->SetLineAtt(602, 1, 1, 0);
+pic1->SetFillAtt(0, 1001, 0);
+pic1->SetMarkerAtt(1, 1, 1, 0);
+pic1->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(116, 310, 825, 670, Go4_normal, pic1);
+delete pic1;
+
+TGo4Picture *pic2 = new TGo4Picture("pic2", "temporary object to setup viewpanel");
+pic2->SetCrosshair(false);
+pic2->SetRangeX(-19.999, 19.999);
+pic2->SetLineAtt(1, 1, 1, -1);
+pic2->SetFillAtt(10, 1001, -1);
+pic2->SetHisStats(true);
+pic2->SetStatsAttr(0.78, 0.775, 0.98, 0.935, 11111111, "6.4g", 0, "5.4g");
+pic2->SetHisTitle(true);
+pic2->SetTitleAttr(0.15, 0.932561, 0.85, 0.995);
+pic2->SetTitleTime(true);
+pic2->SetTitleDate(true);
+pic2->SetTitleItem(true);
+pic2->SetAutoScale(true);
+pic2->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic2->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic2->AddObjName("Analysis/Histograms/TDC_c010/Ch0/TDC_c010_Ch0_RisingRef", "HIST");
+pic2->SetLineAtt(602, 1, 1, 0);
+pic2->SetFillAtt(0, 1001, 0);
+pic2->SetMarkerAtt(1, 1, 1, 0);
+pic2->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic2->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic2->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(25, 28, 825, 669, Go4_normal, pic2);
+delete pic2;
+
+TGo4Picture *pic3 = new TGo4Picture("pic3", "temporary object to setup viewpanel");
+pic3->SetCrosshair(false);
+pic3->SetRangeX(-0.615, -0.095);
+pic3->SetRangeY(0, 11243.4);
+pic3->SetLineAtt(1, 1, 1, -1);
+pic3->SetFillAtt(10, 1001, -1);
+pic3->SetHisStats(true);
+pic3->SetStatsAttr(0.78, 0.775, 0.98, 0.935, 11111111, "6.4g", 0, "5.4g");
+pic3->SetHisTitle(true);
+pic3->SetTitleAttr(0.15, 0.932561, 0.85, 0.995);
+pic3->SetTitleTime(true);
+pic3->SetTitleDate(true);
+pic3->SetTitleItem(true);
+pic3->SetAutoScale(true);
+pic3->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic3->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic3->AddObjName("Analysis/Histograms/TDC_c010/Ch3/TDC_c010_Ch3_RisingRef", "HIST");
+pic3->SetLineAtt(602, 1, 1, 0);
+pic3->SetFillAtt(0, 1001, 0);
+pic3->SetMarkerAtt(1, 1, 1, 0);
+pic3->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic3->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic3->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(150, 150, 825, 669, Go4_normal, pic3);
+delete pic3;
+
+TGo4Picture *pic4 = new TGo4Picture("pic4", "temporary object to setup viewpanel");
+pic4->SetCrosshair(false);
+pic4->SetRangeX(-0.025, 0.255);
+pic4->SetRangeY(0, 81610.2);
+pic4->SetLineAtt(1, 1, 1, -1);
+pic4->SetFillAtt(10, 1001, -1);
+pic4->SetHisStats(true);
+pic4->SetStatsAttr(0.78, 0.775, 0.98, 0.935, 11111111, "6.4g", 0, "5.4g");
+pic4->SetHisTitle(true);
+pic4->SetTitleAttr(0.15, 0.932561, 0.85, 0.995);
+pic4->SetTitleTime(true);
+pic4->SetTitleDate(true);
+pic4->SetTitleItem(true);
+pic4->SetAutoScale(true);
+pic4->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic4->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic4->AddObjName("Analysis/Histograms/TDC_c000/Ch4/TDC_c000_Ch4_RisingRef", "HIST");
+pic4->SetLineAtt(602, 1, 1, 0);
+pic4->SetFillAtt(0, 1001, 0);
+pic4->SetMarkerAtt(1, 1, 1, 0);
+pic4->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(546, 334, 825, 669, Go4_normal, pic4);
+delete pic4;
+
+go4->StartMonitoring(2);
--- /dev/null
+
+
+
+!Register table
+# Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 # C9 #
+######################################################################################################
+ 0 0x8300 0x8301 0x8302 0x8303 0x8304 0x8305 0x8307 0x8309 0x830a 0x830b
+
+
+!Value table
+# SubEvtId SubEvtDec QueDec PackSize FrameSize UseGbE MultiQueue Enable RX Add.Slw.Head TType_inserted
+# Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 # C9 #
+###################################################################################################################################################
+# 0x7999 0 0x7999 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x1
+ 0x8000 0 0x8000 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8001 0 0x8001 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8002 0 0x8002 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8003 0 0x8003 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8004 0 0x8004 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8005 0 0x8005 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8006 0 0x8006 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8007 0 0x8007 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8008 0 0x8008 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8009 0 0x8009 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8010 0 0x8010 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8011 0 0x8011 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8012 0 0x8012 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8013 0 0x8013 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8014 0 0x8014 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8015 0 0x8015 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8016 0 0x8016 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8017 0 0x8017 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8018 0 0x8018 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8019 0 0x8019 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8020 0 0x8020 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8021 0 0x8021 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8022 0 0x8022 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8023 0 0x8023 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8024 0 0x8024 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
+# 0x8025 0 0x8025 0x00020001 0x00030064 0x1DE8 0x578 1 0 1 1 0x0
--- /dev/null
+###########################################################################################
+#Eventbuilders:
+# EB 0: dircdac002 eth0 ports 50000 - 50099
+
+!Register table
+# Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
+###########################################################################################
+#new memory locations
+ 0 0x8100 0x8101 0x8102 0x8103 0x8104 0x8105 0x8106 0x8107 0x8108
+ 1 0x8110 0x8111 0x8112 0x8113 0x8114 0x8115 0x8116 0x8117 0x8118
+ 2 0x8120 0x8121 0x8122 0x8123 0x8124 0x8125 0x8126 0x8127 0x8128
+ 3 0x8130 0x8131 0x8132 0x8133 0x8134 0x8135 0x8136 0x8137 0x8138
+ 4 0x8140 0x8141 0x8142 0x8143 0x8144 0x8145 0x8146 0x8147 0x8148
+ 5 0x8150 0x8151 0x8152 0x8153 0x8154 0x8155 0x8156 0x8157 0x8158
+ 6 0x8160 0x8161 0x8162 0x8163 0x8164 0x8165 0x8166 0x8167 0x8168
+ 7 0x8170 0x8171 0x8172 0x8173 0x8174 0x8175 0x8176 0x8177 0x8178
+ 8 0x8180 0x8181 0x8182 0x8183 0x8184 0x8185 0x8186 0x8187 0x8188
+ 9 0x8190 0x8191 0x8192 0x8193 0x8194 0x8195 0x8196 0x8197 0x8198
+ 10 0x81A0 0x81A1 0x81A2 0x81A3 0x81A4 0x81A5 0x81A6 0x81A7 0x81A8
+ 11 0x81B0 0x81B1 0x81B2 0x81B3 0x81B4 0x81B5 0x81B6 0x81B7 0x81B8
+ 12 0x81C0 0x81C1 0x81C2 0x81C3 0x81C4 0x81C5 0x81C6 0x81C7 0x81C8
+ 13 0x81D0 0x81D1 0x81D2 0x81D3 0x81D4 0x81D5 0x81D6 0x81D7 0x81D8
+ 14 0x81E0 0x81E1 0x81E2 0x81E3 0x81E4 0x81E5 0x81E6 0x81E7 0x81E8
+ 15 0x81F0 0x81F1 0x81F2 0x81F3 0x81F4 0x81F5 0x81F6 0x81F7 0x81F8
+
+!Value table
+# Dest MAC Dest MAC Dest IP Dest Port Src MAC Src MAC Src IP Src Port Packet Size
+# Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
+########################################################################################################################################
+
+# 0x7999 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc350 0xdead8000 0x001b 0xc0a80000 0xc350 0x0578
+ 0x8000 0 0x214397ea 0x001b 0xc0a80101 0xea60 0xdead8001 0x001b 0xc0a80001 0xc351 0x0578
+# 0x8001 0 0x214397ea 0x001b 0xc0a80101 0xc352 0xdead8002 0x001b 0xc0a80002 0xc352 0x0578
+# 0x8002 0 0x214397ea 0x001b 0xc0a80102 0xc353 0xdead8003 0x001b 0xc0a80003 0xc353 0x0578
+# 0x8003 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc354 0xdead8004 0x001b 0xc0a80004 0xc354 0x0578
+# 0x8004 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc355 0xdead8005 0x001b 0xc0a80005 0xc355 0x0578
+# 0x8005 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc356 0xdead8006 0x001b 0xc0a80006 0xc356 0x0578
+# 0x8006 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc357 0xdead8007 0x001b 0xc0a80007 0xc357 0x0578
+# 0x8007 0 0x214397ea 0x001b 0xc0a80101 0xc358 0xdead8008 0x001b 0xc0a80008 0xc358 0x0578
+# 0x8008 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc359 0xdead8009 0x001b 0xc0a80009 0xc359 0x0578
+# 0x8009 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc35a 0xdead8010 0x001b 0xc0a80010 0xc35a 0x0578
+# 0x8010 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc35b 0xdead8011 0x001b 0xc0a80011 0xc35b 0x0578
+# 0x8011 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc35c 0xdead8012 0x001b 0xc0a80012 0xc35c 0x0578
+# 0x8012 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc35d 0xdead8013 0x001b 0xc0a80013 0xc35d 0x0578
+# 0x8013 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc35e 0xdead8014 0x001b 0xc0a80014 0xc35e 0x0578
+# 0x8014 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc35f 0xdead8015 0x001b 0xc0a80015 0xc35f 0x0578
+# 0x8015 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc360 0xdead8016 0x001b 0xc0a80016 0xc360 0x0578
+# 0x8016 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc361 0xdead8017 0x001b 0xc0a80017 0xc361 0x0578
+# 0x8017 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc362 0xdead8018 0x001b 0xc0a80018 0xc362 0x0578
+# 0x8018 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc363 0xdead8019 0x001b 0xc0a80019 0xc363 0x0578
+# 0x8019 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc364 0xdead8020 0x001b 0xc0a80020 0xc364 0x0578
+# 0x8020 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc365 0xdead8021 0x001b 0xc0a80021 0xc365 0x0578
+# 0x8021 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc366 0xdead8022 0x001b 0xc0a80022 0xc366 0x0578
+# 0x8022 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc367 0xdead8023 0x001b 0xc0a80023 0xc367 0x0578
+# 0x8023 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc368 0xdead8024 0x001b 0xc0a80024 0xc368 0x0578
+# 0x8024 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc369 0xdead8025 0x001b 0xc0a80025 0xc369 0x0578
+# 0x8025 0 0x7a0b83ca 0x0cc4 0xc0a80002 0xc36a 0xdead8026 0x001b 0xc0a80026 0xc36a 0x00cc4
+
+
+# 0x7999 0 0x1e04f330 0x000e 0xc0a80002 0xc350 0xdead8000 0x001b 0xc0a80000 0xc350 0x0578
+# 0x8000 0 0x1e04f330 0x000e 0xc0a80002 0xc351 0xdead8001 0x001b 0xc0a80001 0xc351 0x0578
+# 0x8001 0 0x1e04f330 0x000e 0xc0a80002 0xc352 0xdead8002 0x001b 0xc0a80002 0xc352 0x0578
+# 0x8002 0 0x1e04f330 0x000e 0xc0a80002 0xc353 0xdead8003 0x001b 0xc0a80003 0xc353 0x0578
+# 0x8003 0 0x1e04f330 0x000e 0xc0a80002 0xc354 0xdead8004 0x001b 0xc0a80004 0xc354 0x0578
+# 0x8004 0 0x1e04f330 0x000e 0xc0a80002 0xc355 0xdead8005 0x001b 0xc0a80005 0xc355 0x0578
+# 0x8005 0 0x1e04f330 0x000e 0xc0a80002 0xc356 0xdead8006 0x001b 0xc0a80006 0xc356 0x0578
+# 0x8006 0 0x1e04f330 0x000e 0xc0a80002 0xc357 0xdead8007 0x001b 0xc0a80007 0xc357 0x0578
+# 0x8007 0 0x1e04f330 0x000e 0xc0a80002 0xc358 0xdead8008 0x001b 0xc0a80008 0xc358 0x0578
+# 0x8008 0 0x1e04f330 0x000e 0xc0a80002 0xc359 0xdead8009 0x001b 0xc0a80009 0xc359 0x0578
+# 0x8009 0 0x1e04f330 0x000e 0xc0a80002 0xc35a 0xdead8010 0x001b 0xc0a80010 0xc35a 0x0578
+# 0x8010 0 0x1e04f330 0x000e 0xc0a80002 0xc35b 0xdead8011 0x001b 0xc0a80011 0xc35b 0x0578
+# 0x8011 0 0x1e04f330 0x000e 0xc0a80002 0xc35c 0xdead8012 0x001b 0xc0a80012 0xc35c 0x0578
+# 0x8012 0 0x1e04f330 0x000e 0xc0a80002 0xc35d 0xdead8013 0x001b 0xc0a80013 0xc35d 0x0578
+# 0x8013 0 0x1e04f330 0x000e 0xc0a80002 0xc35e 0xdead8014 0x001b 0xc0a80014 0xc35e 0x0578
+# 0x8014 0 0x1e04f330 0x000e 0xc0a80002 0xc35f 0xdead8015 0x001b 0xc0a80015 0xc35f 0x0578
+# 0x8015 0 0x1e04f330 0x000e 0xc0a80002 0xc360 0xdead8016 0x001b 0xc0a80016 0xc360 0x0578
+# 0x8016 0 0x1e04f330 0x000e 0xc0a80002 0xc361 0xdead8017 0x001b 0xc0a80017 0xc361 0x0578
+# 0x8017 0 0x1e04f330 0x000e 0xc0a80002 0xc362 0xdead8018 0x001b 0xc0a80018 0xc362 0x0578
+# 0x8018 0 0x1e04f330 0x000e 0xc0a80002 0xc363 0xdead8019 0x001b 0xc0a80019 0xc363 0x0578
+# 0x8019 0 0x1e04f330 0x000e 0xc0a80002 0xc364 0xdead8020 0x001b 0xc0a80020 0xc364 0x0578
+# 0x8020 0 0x1e04f330 0x000e 0xc0a80002 0xc365 0xdead8021 0x001b 0xc0a80021 0xc365 0x0578
+# 0x8021 0 0x1e04f330 0x000e 0xc0a80002 0xc366 0xdead8022 0x001b 0xc0a80022 0xc366 0x0578
+# #0x8022 0 0x1e04f330 0x000e 0xc0a80002 0xc367 0xdead8023 0x001b 0xc0a80023 0xc367 0x0578
+# #0x8023 0 0x1e04f330 0x000e 0xc0a80002 0xc368 0xdead8024 0x001b 0xc0a80024 0xc368 0x0578
+# #0x8024 0 0x1e04f330 0x000e 0xc0a80002 0xc369 0xdead8025 0x001b 0xc0a80025 0xc369 0x0578
+# #0x8025 0 0x1e04f330 0x000e 0xc0a80002 0xc36a 0xdead8026 0x001b 0xc0a80026 0xc36a 0x0578
+
+
--- /dev/null
+#!/bin/bash
+# PATH should already be marked as exported...
+#PATH=${HOME}/trbsoft/bin:${PATH}
+#PATH=${HOME}/trbsoft/daqdata/bin:${PATH}
+#PATH=${HOME}/trbsoft/trbnettools/bin:${PATH}
+export TRB3_SERVER=trb113:26000
+
+export TRBNETDPID=$(pgrep trbnetd)
+
+echo "- trbnetd pid: $TRBNETDPID"
+
+if [[ -z "$TRBNETDPID" ]]
+then
+ ~/bin/trbnetd -i 113
+ #~/trbsoft/trbnettools/binlocal/trbnetd -i 56
+fi
+
+#export TRB3_SERVER=trb056
+
+
+export DAQOPSERVER=localhost:113
+#export DAQOPSERVER=localhost
+
+echo -n "- number of trb endpoints in the system: "
+trbcmd i 0xffff | wc -l
+
+##################################################
+## System Reset
+##################################################
+#trbcmd reset
+
+##################################################
+## Set addresses
+##################################################
+#~/trbsoft/daqtools/merge_serial_address.pl ~/trbsoft/daqtools/base/serials_trb3.db ~/trbsoft/daqtools/users/gsi_dirc/addresses_trb3.db > /dev/null
+merge_serial_address.pl ~/trbsoft/daqtools/base/serials_trb3.db ~/trbsoft/daqtools/base/addresses_trb3.db > /dev/null
+
+##################################################
+## Configure GbE for DAQ
+##################################################
+trbcmd w 0xff7f 0x8308 0xffffff # Trigger counter
+
+trbcmd w 0xff7f 0x830e 0x10
+
+~/trbsoft/daqtools/tools/loadregisterdb.pl register_configgbe.db
+~/trbsoft/daqtools/tools/loadregisterdb.pl register_configgbe_ip.db
+
+echo "ethernet registers configured"
+
+##################################################
+## Configure TDCs
+##################################################
+#trbcmd w 0xfe48 0xc801 0x000f0005 ## trigger window enable & trigger window width
+#trbcmd w 0xfe48 0xc800 0x00002000 ## Triggered mode
+#trbcmd w 0xfe48 0xc800 0x00003000 ## Triggerless mode
+#trbcmd w 0xfe48 0xc801 0x000f0005 ## trigger window enable & trigger window width
+
+trbcmd w 0xfe4c 0xc800 0x00001001 ## logic analyser control register
+trbcmd w 0xfe4c 0xc801 0x8002000a ## triggerwindow -50/+10ns ;5ns granularity
+#trbcmd w 0xfe48 0xc801 0x801e001e ## triggerwindow +/-150ns ;5ns granularity
+trbcmd w 0xfe4c 0xc802 0x00000000 ## channel 01-32 enable
+
+trbcmd w 0xfe4c 0xc803 0x00000000 ## channel 33-64 enable
+trbcmd w 0xfe4c 0xc804 0x00000080 ## data transfer limit
+
+trbcmd w 0xc003 0xc802 0x1 ## channel 01-32 enable
+#trbcmd w 0xc001 0xc802 0xffffffff ## channel 01-32 enable
+#trbcmd w 0xc003 0xc802 0xffffffff ## channel 01-32 enable
+#trbcmd w 0xc010 0xc802 0xffffffff ## channel 01-32 enable
+#trbcmd w 0xc001 0xc802 0xffffffff ## channel 01-32 enable
+
+# timeouts
+trbcmd w 0xfffe 0xc5 0x800050ff
+
+# pulser #1 to 1k Hz
+#trbcmd w 0x8000 0xa140 0x0001869f
+
+# pulser enable
+trbcmd setbit 0x8000 0xa101 0x2
+#trbcmd clearbit 0x8000 0xa101 0x3
+
+# divert TDC inputs to the CTS for trigger
+echo "- divert TDC inputs to the CTS for trigger";
+trbcmd setbit 0xfe4c 0xcf00 0x1
+
+echo "CTS: enable trigger input0 from TDC3"
+trbcmd setbit 0x8000 0xa14d 0x10000
+
+echo "ready to go"
+
+#echo "- setting trigger rate register in TDC";
+# trigger rate 10000Hz
+trbcmd w 0x8000 0xa150 0x0000270f
--- /dev/null
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+my $c;
+
+$c=q|pkill -f "daq_evtbuild -m 1"|;
+qx($c);
+
+$c=q|pkill -f "daq_netmem -m 1"|;
+qx($c);
+
+
+$c=q|xterm -geometry 122x14-0+0 -e bash -c 'daq_evtbuild -m 1 -d file -o /tmp'|;
+system("$c &");
+sleep 1;
+$c="xterm -geometry 82x10-0+210 -e bash -c 'daq_netmem -m 1 -i UDP:127.0.0.1:60000'";
+system("$c &");
--- /dev/null
+// Automatically generated startup script
+// Do not change it!
+
+go4->SetMainWindowState(4,"000000ff00000000fd00000002000000000000014600000284fc0200000001fb0000001600420072006f00770073006500720044006f0063006b0100000055000002840000007900ffffff00000003000004da000000d5fc0100000001fc00000000000004da0000003d00fffffffa000000000200000003fb00000016004c006f00670049006e0066006f0044006f0063006b0100000000ffffffff0000005200fffffffb0000001a004d006200730056006900650077006500720044006f0063006b0000000000ffffffff0000006400fffffffb0000001e0044004100420043004d006f006e00690074006f00720044006f0063006b0000000279000000ce00000000000000000000038e0000028400000004000000040000000800000008fc0000000800000002000000040000001600460069006c00650054006f006f006c0042006100720100000000ffffffff0000000000000000000000160047006f00340054006f006f006c007300420061007201000000e7ffffffff00000000000000000000001e0041006e0061006c00790073006900730054006f006f006c004200610072010000022b0000025800000000000000000000001a0044006900760069006400650050006100640044006f0063006b0000000395000000e40000000000000000000000020000000000000002000000020000002400420072006f0077007300650072004f007000740069006f006e00730044006f0063006b01000000000000010200000000000000000000001e0044007200610077004f007000740069006f006e00730044006f0063006b01000001020000037e00000000000000000000000200000002000000240048006900730044007200610077004f007000740069006f006e00730044006f0063006b0000000000000001290000000000000000000000180047006f0034005300740079006c00650044006f0063006b0000000000000004b10000000000000000000000020000000100000020005300630061006c0065004f007000740069006f006e00730044006f0063006b0000000000000004b10000000000000000000000030000000000000003000000010000001e0043006f006d006d0061006e0064004c0069006e00650044006f0063006b0000000000000004b1000000000000000000000003000000010000001c00540072006500650056006900650077006500720044006f0063006b0000000000000004b10000000000000000");
+go4->SetMainWindowGeometry(4,"01d9d0cb00010000000000140000000c000004f1000003fb0000001600000023000004ef000003f9000000000000");
+
+go4->LaunchAnalysis("MyAnalysis", ".", "libGo4UserAnalysis", "localhost", Go4_sh, Go4_qt, Go4_lib);
+go4->WaitAnalysis(300);
+
+// configuration of analysis
+go4->AnalysisAutoSave("Go4AutoSave.root", 500, 5, kTRUE, kFALSE);
+go4->AnalysisConfigName("Go4AnalysisPrefs.root");
+
+// step Analysis
+go4->ConfigStep("Analysis", kTRUE, kTRUE, kFALSE);
+go4->StepMbsStreamSource("Analysis", "localhost:6790", 1);
+go4->StepFileStore("Analysis", "NoOutputDefined", kTRUE, 32000, 99, 5);
+
+go4->SubmitAnalysisConfig(20);
+
+go4->SetAnalysisConfigMode(-1);
+go4->SetAnalysisTerminalMode(1);
+
+go4->StartAnalysis();
+
+// this is possibility to get extra histograms from analysis
+// which are create shortly after analysis is started
+go4->Wait(1);
+go4->RefreshNamesList();
+
+TGo4Picture *pic1 = new TGo4Picture("pic1", "temporary object to setup viewpanel");
+pic1->SetCrosshair(false);
+pic1->SetRangeX(0.5, 32.5);
+pic1->SetRangeY(0, 1.01366e+07);
+pic1->SetLineAtt(1, 1, 1, -1);
+pic1->SetFillAtt(10, 1001, -1);
+pic1->SetHisStats(true);
+pic1->SetStatsAttr(0.78, 0.775, 0.98, 0.935, 11111111, "6.4g", 0, "5.4g");
+pic1->SetHisTitle(true);
+pic1->SetTitleAttr(0.15, 0.932527, 0.85, 0.995);
+pic1->SetTitleTime(true);
+pic1->SetTitleDate(true);
+pic1->SetTitleItem(true);
+pic1->SetAutoScale(true);
+pic1->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic1->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic1->AddObjName("Analysis/Histograms/TDC_c003/TDC_c003_Channels", "HIST");
+pic1->SetLineAtt(602, 1, 1, 0);
+pic1->SetFillAtt(0, 1001, 0);
+pic1->SetMarkerAtt(1, 1, 1, 0);
+pic1->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(79, 107, 728, 515, Go4_normal, pic1);
+delete pic1;
+
+go4->MonitorItem("Analysis/Histograms/HLD", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TRB_8000", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c000", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c001", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c002", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch0", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch3", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch5", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch7", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch6", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch12", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/Ch4", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/TDC_c003_Errors", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/TDC_c003_UndetectedHits", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/TDC_c003_MsgKind", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/TDC_c003_FineTm", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/TDC_c003_CoarseTm", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c003/TDC_c003_RisingCalibr", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TRB_8001", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c010", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c011", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c012", kFALSE);
+go4->MonitorItem("Analysis/Histograms/TDC_c013", kFALSE);
+go4->StartMonitoring(2);
#default cts endpoint. can be overriden by a command line parameter
sub getDefaultEndpoint {
- return 0x7005;
+ return 0x8000;
}
1;