FA125 firmware check
Contents
Used the raw samples to emulated the fa125's calculated values and compared them with the fa125 output.
Runs 3293 and 4062 (first few files)
Run | total events | complete events | time | q | amplitude | pedestal | integral | overflow count |
3923 | 16582555 | 1160 | 1942 | 3547 | 15609 | 1 | ||
3923 minus 2 bad fadcs | 15914850 | 378 | 1877 | 288 | 12798 | 1 | ||
4062 file 000 | 10249118 | 10247801 | 0 | 0 | 98 (70 early hits) | 0 | 3 | 0 |
4062 file 001 | 10283167 | 10282756 | 3 | 0 | 68 (46 early hits) | 0 | 2 | 1 |
4062 file 002 | 10262816 | 10259658 | 1 | 0 | 65 (41 early hits) | 0 | 5 | 1 |
4062 file 003 | 10248768 | 10245940 | 2 | 0 | 58 (40 early hits) | 1 | 4 | 3 |
4062 file 004 | 10251199 | 10249150 | 0 | 0 | 73 (53 early hits) | 0 | 8 | 2 |
Many of the problems in 3923 were due to hardware faults in roc28 slots 5&6.
11770 of the 12798 difference in integral were due to faulty assignment of the overflow bit. This has been fixed.
There were a few problems in the firmware which Cody described & fixed before run 4062. The remaining issues are not critical.
Differences in data/emulation from run 4062
The first 4 are firmware logic, & not necessarily a mistake (could be a mistake in the emulator); the remaining 3 are more weird.
1. Integral differences - these are from very late hits where there is a small peak at the end of the hit search window that only just clears the threshold crossing, followed by a larger peak a few samples later. The timing algorithm returns the time for the larger peak and the emulated integral is 0 because it is out of the window. [Cody to fix]
2. Amplitude differences - both firmware and emulation are starting the peak search from the threshold crossing sample but it should really start from the sample containing the leading edge time, since very occasionally the search will pick up a different peak (usually a small one before a larger one). [Cody and Naomi to fix]
3. Amplitude differences - early hits - 70 of the 98 differences are where the samples at the start of the window are over threshold, decrease for one sample and then rise again, ie. hitsample==20 && (adc[20]>=adc[21]) && (adc[21]<adc[22]) where adc[20] is the first sample in the hit search window. Emulator returns maxamp = adc[20]; firmware returns amp of the following peak. [Cody to fix]
4. Amplitude differences - later hits - 28 of the 98 differences seem to have no apparent cause, no association with roc/slot/channel, in most cases the max amp reported is larger than all the sample values [???]
5. Overflow count - the firmware is counting overflows from the hit sample - PG on, but the emulator counts them for the entire data window. Naomi will change the emulator to match the firmware. [Naomi to fix]
6. Missing pulse or WRD - pulse & Window raw data are separate objects in the evio eventloop, not linked yet. One out of sync pair causes the rest of the data for that trigger to be out of step.
[from WRD without straws, all digihits have straws, David to fix w association]
fa125 object mismatches - consequence of missing pulse data
Every now and then a CDCPulseData is missing from the start of an event and then the following subsequent CDCPulseData and WindowRawData objects are out of step for a while (the mismatches continue into following events and eventually stop). The objects are kept together in the analysis code when the PulseData is associated with the WindowRawData.
In run 4731 Beni found 2 pulse data words missing from 57 files
Insufficient samples
eg eventnum 6520553 and 6520556 in Run003923. Naomi finds insufficient samples, Beni does not. and in run 4101, 3 instances of insufficient samples, in evio files 001 (86 samples), 012 (98 samples) and 020 (86 samples).
recent cosmics data
(4296 and 4593 and 4594 do not have CDC data)
4594 FDC params are FADC125_MODE 7 FADC125_W_OFFSET 430 FADC125_W_WIDTH 80 FADC125_IE 16 FADC125_NPEAK 1 FADC125_PG 4 FADC125_P1 4 FADC125_P2 4 FADC125_IBIT 4 FADC125_ABIT 0 FADC125_PBIT 3
004003 #files= 14 modes 6 (7) Config file in RCDB is outdated FADC125_W_WIDTH=180 FADC125_IE=80 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=4 from Dec 2015 CDC readout 004039 #files= 14 modes 6 (7) Config file in RCDB is outdated FADC125_W_WIDTH=180 FADC125_IE=80 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC readout 004044 #files= 2 modes 6 (7) DAQ params look ok. FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 from 8th Dec 2015 CDC readout 004062 #files= 21 modes 6 7 DAQ params look ok. FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=115 004101 #files= 22 modes 6 (7) DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=115 CDC readout 004593 #files= 2 modes 6 7 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=115 7 Jan 2016 No CDC data 004594 #files= 2 modes 6 7 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=115 No CDC data 004595 #files= 2 modes 3 4 **Short modes** FA125 params as 4594 except mode # TS_TRIG_HOLD=30 1 BLOCKLEVEL=20 BUFFERLEVEL=8 CDC_H=115 CDC+FDC readout 004597 #files= 57 modes 3 4 **Short modes** FA125 params as 4594 except mode # TS_TRIG_HOLD=30 1 BLOCKLEVEL=20 BUFFERLEVEL=8 CDC_H=115 CDC+FDC readout 004701 #files= 4 modes 6 (8) DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=120 CDC readout 004706 #files= 2 modes 6 (8) DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC readout 004710 #files= 5 modes 6 (8) DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC readout 004711 #files= 8 modes 6 (8) DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=120 CDC readout 004715 #files= 2 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 FDC PBit changed to 2 CDC+FDC readout 004717 #files= 4 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=120 FDC PBit=2 CDC+FDC readout 004718 #files= 5 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=120 FDC PBit=2 CDC+FDC readout 004731 #files= 59 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 FDC PBit=2 CDC+FDC readout 004745 #files= 2 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=120 FDC PBit=2 CDC+FDC readout 004746 #files= 8 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 CDC_H=120 FDC PBit=2 CDC+FDC readout 004747 #files= 45 modes 6 8 DAQ params look ok FADC125_W_WIDTH=200 FADC125_IE=200 TS_TRIG_HOLD=30 1 BLOCKLEVEL=1 BUFFERLEVEL=1 FDC PBit=2 CDC+FDC readout
Run | evio ok | hits | diffs | time | q | pedestal | amplitude | integral | overflow count | readout | |
4044 | y | 12593944 | 24 (+67) 0.0007% | 0 | 0 | 0 | 23 (+56) | 1 (+11) | 0 | CDC | |
4062 | y | 207661715 | 503 (+1151) total 0.0008% | 30 | 0 | 11 | 440 (+1070) | 24 (+81) | 0 | CDC | |
4101 | n | 237994979 | 560 (+1077) total 0.0007% | 61 | 0 | 13 | 473 (+989) | 13 (+88) | 1 | CDC | 3 hits with lost samples, 6 UMO |
4595 | y | 0 | no sample data | 0 | 0 | 0 | 0 (+0) | 0 (+0) | 0 | CDC&FDC? | short mode |
4701 | y | 53322126 | 1462 (+34) total 0.003% | 154 | 2 | 17 | 1297 (+20) | 24 (+14) | 0 | CDC | |
4706 | n | 21954660 | 560 (+15) total 0.003% | 54 | 0 | 3 | 494 (+13) | 15 (+2) | 1 | CDC | 1 lost pulse, 1 hit with lost samples, 4 UMO |
4710 | y | 71126614 | 1903 (+65) total 0.003% | 154 | 0 | 9 | 1730 (+37) | 24 (+28) | 0 | CDC | |
4711 | n | 133839484 | 3891 (+76) total 0.003% | 398 | 1 | 27 | 3461 (+38) | 56 (+38) | 1 | CDC | 1 hit with lost samples, 1 nasty error, 4 UMO |
4715 | n | 13973245 | 415 (+10) total 0.003% | 29 | 0 | 2 | 383 (+6) | 5 (+4) | 0 | CDC&FDC | 2 hits with lost samples (1 CDC, 1 FDC) |
4717 | y | 40104725 | 1112 (+39) total 0.003% | 91 | 0 | 8 | 1010 (+21) | 16 (+18) | 0 | CDC&FDC | |
4718 | n | 45419513 | 1227 (+31) total 0.003% | 106 | 0 | 6 | 1109 (+16) | 20 (+15) | 0 | CDC&FDC | 1 lost pulse (CDC) |
4745 | y | 16760886 | 401 (+9) total 0.0024% | 29 | 0 | 3 | 366 (+4) | 3 (+5) | 0 | CDC&FDC | |
4746 | y | 81035281 | 2149 (+53) total 0.003% | 158 | 1 | 19 | 1964 (+30) | 34 (+23) | 0 | CDC&FDC |
4593 & 4594 showed 0 pulse data
EVIO problems
4101 6 instances of Unknown module type 15; 3 instances of insufficient samples, in evio files 001 (86 samples), 012 (98 samples) and 020 (86 samples). 4706 unknown module types 15, 9, 11, 11; 1 instance of insufficient samples, in evio file 000 (104 samples), 1 missing CDCPulse in file 000 eventnum 458209 roc 26 slot 13 chan 41 trig 54590945 4711 unknown module types 15, 15, 15, 9, 11 in file 000 & 002; 2 instances of insufficent samples, in evio file 001 (84 samples) and 002 (86 samples), throws exception file 002 4715 1 instance of unknown module type 15; 2 instance of insufficient samples, for CDC in evio file 000 (104 samples/100 samples) and FDC: Found 79 WRD samples for event 1041801 roc 58 slot 15 channel 5 file 000 4718 1 missing CDCPulse in evio file 000, eventnum 683052 roc 26 slot 4 chan 17 trig 16804908 4747 unknown module type 15; 1 instance of insufficient samples in evio file 009 (84/96 samples); missing CDC Pulses from file 021 event 18544541 Insufficient samples error: The number of samples passed into the fa125_algos routine (86) is less than the minimum required by the parameters in use (171). Parameter WE (150) should be decreased to 65 or less.
Run | CDC | FDC |
4715 | Found 104 WRD samples for event 587431 roc 25 slot 17 channel 67 2708 CDC hits for this event, 93 for previous. |
Found 79 WRD samples for event 1041801 roc 58 slot 15 channel 5 There was only 1 CDC hit for this event but 191 FDC hits. |
4717 | ok | ok |
4718 | Missing CDCPulse eventnum 683052 roc 26 slot 4 channel 17 I think this is the only hit for this event |
ok |
4745 | ok | ok |
4746 | Found 199 WRD samples for event 2359304 roc 26 slot 16 channel 0 21 CDC hits and 0 FDC hits for this event, 60 hits in previous event Ch0 was the first but not last hit for roc 26 slot 16 Found 199 WRD samples for event 4493643 roc 28 slot 7 channel 34 |
ok |
4747 | not ok | ok |
10007 | Unpaired PD and WRD in eventnum 1, 2, 14, 16, 19, 27, 32, 34, 37, out of patience (file 000)
Found 199 WRD samples for event 11823875 roc 27 slot 3 channel 9 (file 007) |
magic word not valid, 1 in each of files 2, 6, 11, 12, 15, 18, 19 |
10017 | Found 79 WRD samples for event 26327465 roc 55 slot 8 channel 5 Found 79 WRD samples for event 31488581 roc 55 slot 7 channel 5 | |
10026 | 94 WRD samples for event 3420083 roc 28 slot 17 channel 71 Found 94 WRD samples for event 4047151 roc 25 slot 17 channel 64 (file 004) (3 errors for truncated CDC pulse data word in files 004 to 009) 199 WRD samples for event 9389348 roc 25 slot 13 channel 17 (file 010) |
crashed on event 3420084 (file 030) 79 WRD samples for event 27899286 roc 59 slot 5 channel 41 Several UMO (type 15) |
10036 | ok | ok |
10079 | ok | ok |
10139 | ok | ok |
10168 | ok | ok |
10172 | ok | ok |
10175 | ok | ok |
10179 | 96 WRD samples for event 1657651 roc 28 slot 17 channel 70 3471 CDCPulses in this event, no data reported for roc28 slot 17 chan71, next hit was for roc25 128 WRD samples for event 1657665 roc 28 slot 3 channel 1 |
UMO types 11 and 15 |
Run 4715 problem events: WRDcount is total of CDC+FDC WRD root [10] T->Scan("","CDCPulsecount>1800") ************************************************ * Row * eventnum * CDCPulsec * WRDcount. * ************************************************ * 169259 * 587431 * 2708 * 2779 * CDC samples were missing from this event but not the others * 242124 * 810251 * 1931 * 2265 * * 316715 * 1038575 * 1862 * 3029 * * 336316 * 1098574 * 2200 * 2505 * ************************************************ root [11] T->Scan("","eventnum==1041801") ************************************************ * Row * eventnum * CDCPulsec * WRDcount. * ************************************************ * 317745 * 1041801 * 1 * 192 * FDC samples were missing from this event. ************************************************ FDC pulse count for same event is not ridiculous ************************************************ * Row * eventnum * FDCPulsec * WRDcount. * ************************************************ * 389201 * 1041800 * 77 * 77 * earlier event is FDC only * 389202 * 1041801 * 191 * 192 * FDC samples missing eg root [5] T->Scan("","FDCPulsecount>190") ************************************************ * Row * eventnum * FDCPulsec * WRDcount. * ************************************************ * 7 * 14 * 245 * 245 * * 233 * 603 * 247 * 247 * * 251 * 649 * 265 * 274 * * 495 * 1253 * 292 * 292 * * 953 * 2452 * 199 * 199 * * 1073 * 2823 * 265 * 287 * * 1092 * 2876 * 214 * 239 * * 1098 * 2889 * 220 * 220 * * 1590 * 4242 * 347 * 347 * * 1643 * 4405 * 1370 * 1370 * Previous CDC event looks innocent root [16] T->Scan("","eventnum==1041796") ************************************************ * Row * eventnum * CDCPulsec * WRDcount. * ************************************************ * 317744 * 1041796 * 44 * 44 * ************************************************
Segfaults
Hd_root segfaults with run 4039 which had strange config parameters
4039 hd_root segfault #4 0x00007fde351937ef in TUnixSystem::DispatchSignals(ESignals) () from /home/gluex/root/v5-34-14_rhel6//lib/libCore.so #5 <signal handler called> #6 0x0000003c92b90048 in main_arena () from /lib64/libc.so.6 #7 0x000000000057d14b in MyProcessor::~MyProcessor (this=0x218e6d0, __in_chrg=<value optimized out>) at programs/Analysis/hd_root/MyProcessor.cc:51 #8 0x000000000057d419 in MyProcessor::~MyProcessor (this=0x218e6d0, __in_chrg=<value optimized out>) at programs/Analysis/hd_root/MyProcessor.cc:57 #9 0x0000000000581315 in main (narg=16, argv=0x7ffd8b606c18) at programs/Analysis/hd_root/hd_root.cc:47 =========================================================== The lines below might hint at the cause of the crash. If they do not help you then please submit a bug report at http://root.cern.ch/bugs. Please post the ENTIRE stack trace from above as an attachment in addition to anything else that might help us fixing this issue. =========================================================== #6 0x0000003c92b90048 in main_arena () from /lib64/libc.so.6 #7 0x000000000057d14b in MyProcessor::~MyProcessor (this=0x218e6d0, __in_chrg=<value optimized out>) at programs/Analysis/hd_root/MyProcessor.cc:51 #8 0x000000000057d419 in MyProcessor::~MyProcessor (this=0x218e6d0, __in_chrg=<value optimized out>) at programs/Analysis/hd_root/MyProcessor.cc:57 #9 0x0000000000581315 in main (narg=16, argv=0x7ffd8b606c18) at programs/Analysis/hd_root/hd_root.cc:47 =========================================================== Segmentation fault (core dumped)
Run 10026 FDC_scan analysis #8 0x0000000000bdda02 in jana::JEvent::GetObjects<Df125WindowRawData> (this=<value optimized out>, t=std::vector of length 0, capacity 0, factory=0x7fef2803d310) at /home/gluex/jana/jana_0.7.4p1/Linux_RHEL6-x86_64-gcc4.4.7/include/JANA/JEvent.h:97 #9 0x0000000000bf7051 in GetFromSource<Df125WindowRawData> (this=0x7fef280008c0, t=std::vector of length 0, capacity 0, tag=<value optimized out>, data_source= 0x7fef3528a9d0, allow_deftag=<value optimized out>) at /home/gluex/jana/jana_0.7.4p1/Linux_RHEL6-x86_64-gcc4.4.7/include/JANA/JEventLoop.h:479 #10 jana::JEventLoop::GetFromFactory<Df125WindowRawData> (this=0x7fef280008c0, t=std::vector of length 0, capacity 0, tag=<value optimized out>, data_source= 0x7fef3528a9d0, allow_deftag=<value optimized out>) at /home/gluex/jana/jana_0.7.4p1/Linux_RHEL6-x86_64-gcc4.4.7/include/JANA/JEventLoop.h:429 #11 0x0000000000bf7375 in jana::JEventLoop::Get<Df125WindowRawData> (this=0x7fef280008c0, t=std::vector of length 0, capacity 0, tag=0x7fef38342618 "", allow_deftag=true) at /home/gluex/jana/jana_0.7.4p1/Linux_RHEL6-x86_64-gcc4.4.7/include/JANA/JEventLoop.h:304 #12 0x00007fef382ec899 in JEventProcessor_FDC_scan::evnt (this=0x1f78210, loop=0x7fef280008c0, eventnumber=3420085) at JEventProcessor_FDC_scan.cc:224 #13 0x0000000000d01cdd in jana::JEventLoop::OneEvent (this=0x7fef280008c0) at src/JANA/JEventLoop.cc:621 #14 0x0000000000d02824 in jana::JEventLoop::Loop (this=0x7fef280008c0) at src/JANA/JEventLoop.cc:481 #15 0x0000000000ce0c3d in LaunchThread (arg=0x7ffd05b072b0) at src/JANA/JApplication.cc:1284 #16 0x0000003c92c07a51 in start_thread () from /lib64/libpthread.so.0 #17 0x0000003c928e893d in clone () from /lib64/libc.so.6
JExceptions
004711 JANA ERROR>> JANA ERROR>>Stack trace: JANA ERROR>> JANA ERROR>> jana::JException::getStackTrace(bool, unsigned long) JANA ERROR>> jana::JException::JException(std::string const&) JANA ERROR>> JEventSource_EVIO::ParseF1TDCBank(int, unsigned int const*&, unsigned int const*, std::list<JEventSource_EVIO::ObjList*, std::allocator<JEventSource_EVIO::ObjList*> >&) JANA ERROR>> JEventSource_EVIO::ParseJLabModuleData(int, unsigned int const*&, unsigned int const*, std::list<JEventSource_EVIO::ObjList*, std::allocator<JEventSource_EVIO::ObjList*> >&) JANA ERROR>> JEventSource_EVIO::ParseEVIOEvent(evio::evioDOMTree*, std::list<JEventSource_EVIO::ObjList*, std::allocator<JEventSource_EVIO::ObjList*> >&) JANA ERROR>> JEventSource_EVIO::ParseEvents(JEventSource_EVIO::ObjList*) JANA ERROR>> JEventSource_EVIO::GetObjects(jana::JEvent&, jana::JFactory_base*) JANA ERROR>> jerror_t jana::JEvent::GetObjects<DCDCDigiHit>(std::vector<DCDCDigiHit const*, std::allocator<DCDCDigiHit const*> >&, jana::JFactory_base*) JANA ERROR>> jana::JFactory<DCDCDigiHit>* jana::JEventLoop::GetFromFactory<DCDCDigiHit>(std::vector<DCDCDigiHit const*, std::allocator<DCDCDigiHit const*> >&, char const*, jana::JEventLoop::data_source_t&, bool) JANA ERROR>> jana::JFactory<DCDCDigiHit>* jana::JEventLoop::Get<DCDCDigiHit>(std::vector<DCDCDigiHit const*, std::allocator<DCDCDigiHit const*> >&, char const*, bool) JANA ERROR>> JEventProcessor_CDC_em::evnt(jana::JEventLoop*, unsigned long) JANA ERROR>> jana::JEventLoop::OneEvent() JANA ERROR>> jana::JEventLoop::Loop() JANA ERROR>> LaunchThread(void*) JANA ERROR>> LaunchThread(void*) JANA ERROR>> LaunchThread(void*) JANA ERROR>> JANA ERROR>>