-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evt.c,v 6.11 2001-11-18 11:56:21 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evt.c,v 6.12 2002-11-22 21:54:37 hadaq Exp $";
#define _ANSI_C_SOURCE
return buf;
}
-void *newEvt(uint32_t decoding, uint32_t id, uint32_t runNr, const char *expId)
+void *newEvt(uint32_t decoding, uint32_t id)
{
void *my;
- static uint32_t seqNr = 0;
time_t tempo;
struct tm *gmTime;
uint32_t dummy;
Evt_setSize(my, Evt_hdrSize());
Evt_setDecoding(my, decoding);
Evt_setId(my, id);
- Evt_setRunNr(my, runNr);
- Evt_setExpIdCharP(my, expId);
-
- Evt_setSeqNr(my, seqNr++);
tempo = time(NULL);
gmTime = gmtime(&tempo);
void Evt_setRunNr(void *my, uint32_t runNr);
void Evt_setExpId(void *my, uint32_t expId);
-void *newEvt(uint32_t decoding, uint32_t id, uint32_t runNr, const char *expId);
+void *newEvt(uint32_t decoding, uint32_t id);
void deleteEvt(void *my);
void *Evt_fget(FILE * file);
void *Evt_appendSubEvt(void *my, void *subEvt);
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.57 2002-11-22 18:15:20 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.58 2002-11-22 21:54:37 hadaq Exp $";
#define _POSIX_C_SOURCE 199309L
#include "ansiTape.h"
#include "genid32.h"
-#define NTRIGTYPES 64UL /* must be 2^n */
-#define NTRIGTYPES_IN_FILE 0UL /* must be 2^n */
+#define NEVTIDS 64UL /* must be 2^n */
+#define NEVTIDS_IN_FILE 0UL /* must be 2^n */
static FILE *outFile;
static AnsiTape *outTape;
+static uint32_t seqNr;
+static uint32_t runNr;
static time_t ourTime;
typedef struct TheArgsS {
unsigned long *evtsDataError;
unsigned long *evtsTagError;
unsigned long *bytesWritten;
- unsigned long *triggerType[NTRIGTYPES];
+ unsigned long *evtId[NEVTIDS];
unsigned long *trigNr[32];
}
fputs("------------------------------------------------------------------------------\n", stderr);
col = 0;
- for (i = 0; i < NTRIGTYPES; i++) {
- if (*my->triggerType[i] != 0) {
- fprintf(stderr, "%17s%02x:%6s", "triggerType", i, unit(*my->triggerType[i]));
+ for (i = 0; i < NEVTIDS; i++) {
+ if (*my->evtId[i] != 0) {
+ fprintf(stderr, "%17s%02x:%6s", "evtId", i, unit(*my->evtId[i]));
if (++col == 3) {
fputc('\n', stderr);
col = 0;
static char outPath[_POSIX_PATH_MAX];
static once = 1;
- theArgs->runNr = genId32();
+ runNr = genId32();
+ seqNr = 0;
+
+ theArgs->runNr = runNr;
if (once) {
strcpy(outPath, theArgs->outPath);
static int writeFile(void *evt) {
int writeFileR;
+ Evt_setSeqNr(evt, seqNr++);
+ Evt_setRunNr(evt, runNr);
+
if (outFile != NULL) {
writeFileR = fwrite(evt, 1, Evt_paddedSize(evt), outFile);
} else if (outTape != NULL) {
theStats->evtsDataError = Worker_addStatistic(worker, "evtsDataError");
theStats->evtsTagError = Worker_addStatistic(worker, "evtsTagError");
theStats->bytesWritten = Worker_addStatistic(worker, "bytesWritten");
- for (i = 0; i < NTRIGTYPES; i++) {
+ for (i = 0; i < NEVTIDS; i++) {
char buf[WORKER_MAX_NAME_LEN];
- sprintf(buf, "triggerType%d", i);
- theStats->triggerType[i] = Worker_addStatistic(worker, buf);
+ sprintf(buf, "evtId%d", i);
+ theStats->evtId[i] = Worker_addStatistic(worker, buf);
}
for (i = 0; i < theArgs->nrOfMsgs; i++) {
char buf[WORKER_MAX_NAME_LEN];
storeInfoStart(argv[0], ourTime, theArgs);
- evt = newEvt(EvtDecoding_64bitAligned, EvtId_runStart, theArgs->runNr, theArgs->expId);
+ evt = newEvt(EvtDecoding_64bitAligned, EvtId_runStart);
for (i = 0; i < theArgs->slowCtrlFileCnt; i++) {
evt = appendFile(evt, theArgs->slowCtrlFiles[i]);
}
deleteEvt(evt);
}
- evt = newEvt(EvtDecoding_64bitAligned, EvtId_data, theArgs->runNr, theArgs->expId);
+ evt = newEvt(EvtDecoding_64bitAligned, EvtId_data);
for (i = 0; i < theArgs->nrOfMsgs && !evtIsBroken; i += step) {
uint32_t trigNr;
uint32_t trigTag;
if (!evtIsBroken) {
(*theStats->evtsComplete)++;
- (*theStats->triggerType[currId & (NTRIGTYPES - 1)])++;
- Evt_setId(evt, currId & (NTRIGTYPES_IN_FILE - 1));
+ (*theStats->evtId[currId & (NEVTIDS - 1)])++;
+ Evt_setId(evt, currId & (NEVTIDS_IN_FILE - 1));
if (dataError) {
Evt_setDataError(evt);
}
deleteEvt(evt);
if (*theStats->bytesWritten >= maxFileSize) {
- evt = newEvt(EvtDecoding_64bitAligned, EvtId_runStop, theArgs->runNr, theArgs->expId);
+ evt = newEvt(EvtDecoding_64bitAligned, EvtId_runStop);
for (i = 0; i < theArgs->slowCtrlFileCnt; i++) {
evt = appendFile(evt, theArgs->slowCtrlFiles[i]);
}
# watermark for mdc0 is calculated independently
set watermark [expr 12 * 1024]
+set bandwidth(0) 27000
+set bandwidth(1) 30000
+set bandwidth(2) 16000
+set bandwidth(3) 16000
+set bandwidth(4) 16000
+set bandwidth(5) 30000
+set bandwidth(6) 20000
if {$evtBuilder == "hadeb01"} {
set atmBase 50
group create acquisition
group create run
-set vcc [expr $atmBase + 0]
+set atmOffset 0
+set vcc [expr $atmBase + $atmOffset]
agent create r2-35 hades /hades/usr/hades/$beamTime/trig/hadaq
-worker create r2-35:memnet -a -p -1 -w 27000 -o ATM:0:$vcc
+worker create r2-35:memnet -a -p -1 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-35:readout -s trigconc -a -p -2 -w $watermark -v notice
group add acquisition r2-35:memnet
group add acquisition r2-35:readout
lappend inPaths "-i ATM:0:$vcc"
if {[lsearch $subSystems rich0] >= 0} {
- set vcc [expr $atmBase + 2]
+ set atmOffset 2
+ set vcc [expr $atmBase + $atmOffset]
agent create r2-24 hades /hades/usr/hades/$beamTime/rich/hadaq
- worker create r2-24:memnet -a -p -2 -w 16000 -o ATM:0:$vcc
+ worker create r2-24:memnet -a -p -2 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-24:readout -s rich0 -a -p -1 -w $watermark -v notice
group add acquisition r2-24:memnet
group add acquisition r2-24:readout
}
if {[lsearch $subSystems rich1] >= 0} {
- set vcc [expr $atmBase + 3]
+ set atmOffset 3
+ set vcc [expr $atmBase + $atmOffset]
agent create r2-28 hades /hades/usr/hades/$beamTime/rich/hadaq
- worker create r2-28:memnet -a -p -2 -w 16000 -o ATM:0:$vcc
+ worker create r2-28:memnet -a -p -2 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-28:readout -s rich1 -a -p -1 -w $watermark -v notice
group add acquisition r2-28:memnet
group add acquisition r2-28:readout
}
if {[lsearch $subSystems rich2] >= 0} {
- set vcc [expr $atmBase + 4]
+ set atmOffset 4
+ set vcc [expr $atmBase + $atmOffset]
agent create r2-27 hades /hades/usr/hades/$beamTime/rich/hadaq
- worker create r2-27:memnet -a -p -2 -w 16000 -o ATM:0:$vcc
+ worker create r2-27:memnet -a -p -2 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-27:readout -s rich2 -a -p -1 -w $watermark -v notice
group add acquisition r2-27:memnet
group add acquisition r2-27:readout
}
if {[lsearch $subSystems mdc0] >= 0} {
- set vcc [expr $atmBase + 5]
+ set atmOffset 5
+ set vcc [expr $atmBase + $atmOffset]
agent create r2-8 hades /hades/usr/hades/$beamTime/mdc/hadaq
- worker create r2-8:memnet -a -p -1 -w 30000 -o ATM:0:$vcc
+ worker create r2-8:memnet -a -p -1 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-8:readout -s mdc0 -a -p -2 -w 24576 -v notice
group add acquisition r2-8:memnet
group add acquisition r2-8:readout
}
if {[lsearch $subSystems mdc1] >= 0} {
- set vcc [expr $atmBase + 6]
+ set atmOffset 6
+ set vcc [expr $atmBase + $atmOffset]
agent create r2-32 hades /hades/usr/hades/$beamTime/mdc/hadaq
- worker create r2-32:memnet -a -p -1 -w 20000 -o ATM:0:$vcc
+ worker create r2-32:memnet -a -p -1 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-32:readout -s mdc1 -a -p -2 -w $watermark -v notice
group add acquisition r2-32:memnet
group add acquisition r2-32:readout
}
if {[lsearch $subSystems shw] >= 0} {
- set vcc [expr $atmBase + 1]
+ set atmOffset 1
+ set vcc [expr $atmBase + $atmOffset]
agent create r2-14 hades /hades/usr/hades/$beamTime/shw/hadaq
- worker create r2-14:memnet -a -p -1 -w 30000 -o ATM:0:$vcc
+ worker create r2-14:memnet -a -p -1 -w $bandwidth($atmOffset) -o ATM:0:$vcc
worker create r2-14:readout -s show -a -p -2 -w $watermark -v notice
group add acquisition r2-14:memnet
group add acquisition r2-14:readout
}
if {[lsearch $subSystems tof1] >= 0} {
- set vcc [expr $atmBase + 0]
agent create e7_25 hades /hades/usr/hades/$beamTime/tof/hadaq
lappend init e7_25:tof1:init
lappend reset [ list e7_25 "cd; . bin/daqenv $beamTime; cd $beamTime/slow; ./tof1 reset" ]
}
if {[lsearch $subSystems tof2] >= 0} {
- set vcc [expr $atmBase + 0]
agent create e7_21 hades /hades/usr/hades/$beamTime/tof/hadaq
lappend init e7_21:tof2:init
lappend reset [ list e7_21 "cd; . bin/daqenv $beamTime; cd $beamTime/slow; ./tof2 reset" ]
}
if {[lsearch $subSystems tof3] >= 0} {
- set vcc [expr $atmBase + 0]
agent create e7_41 hades /hades/usr/hades/$beamTime/tof/hadaq
lappend init e7_41:tof3:init
lappend reset [ list e7_41 "cd; . bin/daqenv $beamTime; cd $beamTime/slow; ./tof3 reset" ]