Wed Sep 28 11:51:48 2005 - E. Charles
- Added the ACD scalar contribution (ASC) decoding
- Added include/ASC*.h, src/ASC*.ccp sip/ASC*.sip
- Updated test/LDFdump.cpp to use the ASC decoding
- Updated LDFdumper.py to use the ASC decoding
- Updated LDFdump.py to use the ASC decoding
- Updated include/ACDmap.h to map from GEM index (0-127) to tile name
- Bumped the minor version number in LDFversion.h and configure.in.
Sun Aug 14 14:08:15 2005 - R. Claus
- Makefiles updated for rpmbuild by P. Kunz
Fri Apr 15 10:08:52 2005 - R. Claus
- Added display of CAL ADC values in decimal to LDFdumper.py and LDFdump.cpp.
- Added deadZone alias for missed in GEM contribution to .h and .sip
- Added comment for this to LDFdumper.py and LDFdump.cpp for clarity.
- Bumped the revision number in LDFversion.h and configure.in.
Fri Apr 01 16:08:11 2005 - R. Claus
Tue Mar 29 09:03:58 2005 - R. Claus
- Modified setup files and *.py to follow 'import LDF.xxx' style.
- Added evtSeqMSW() and evtSequence() to OSWtimeContribution.h.
- Added another secondary Id for the new OSWtimeContribution version.
- Updated sip to expose the additional OSWtimeContribution methods.
- Updated woefully out of date LATidentity.sip.
- Added accessor to the time contribution to OSWcontribuion.h.
- Added "copy" constructor to create an OSWtimeContribution from an OSWcontribution to make the Python interface work.
- Decided that the OSWtime() callback of the OSWcontributionIterator had the wrong interface, since it was not extendable. Created a new interface called OSW_time(), which if not implemented by the user, just calls the old OSWtime() back. This preserves backward compatibility. New code should use OSW_time(). Note that OSWtime() is not pure virtual anymore.
- Added print of the extended event number in LDFdumper.py.
- Updated LDFdump.cpp to match the above interface changes.
- Added the printing of the trigger condition names to LDFdumper.py.
- Removed the ReleaseGILs from the sip files.
- Bumped the minor version number in LDFversion.h and configure.in.
Tue Mar 15 11:00:00 2005 - J. Panetta
- Added contribution/event to all handleError calls and prototypes This allows the user to do something with the problem...
- Added implementation of handleError calls to LDFdump.py, LDFdumper.py and LDFdump.cpp
- Added check for isatty to LDFdump.py to allow streaming to a file
- Added test/data/reallyBad.ldf to test for really bad LDF problems.
- Bumped the revision number in LDFversion.h and configure.in.
Wed Feb 23 15:30:00 2005 - J. Panetta
- Fixed bug in calculation of GEMonePPStime::timebase. Off-by-one error in bit shift.
- Added call for GEMcontribution::missed() to return 8 LSB of missed events register (Feature in new GEM, not documented in LAT-TD-01545 as of 05/02/23.)
- Added missed() call to GEMcontribution.sip
- Added example missed() usage to LDFdump.cpp and LDFdumper.py
- Bumped the revision number in LDFversion.h and configure.in.
Mon Feb 14 17:45:00 2005 - J. Panetta
- Uncommented references to "diagnostic", "error" and "cleanup" in LATcomponentIterator.sip to allow subsystems to inherit directly from LDF.pyd in python rather than through LDFdumper.py
- add datum() member function to GEMcondArrivalTime as per JIRA LDF-15
- Add example of datum() usage to LDFdumper.py and LDFdump.cpp
- Bumped the revision number in LDFversion.h and configure.in.
Mon Dec 13 16:24:41 2004 - R. Claus & J. Panetta
- Added ACD ASC to ev_latID.h and LATidentity.[h, sip].
- Added CAL CEDhdr to ev_latID.h and LATidentity.[h, sip].
- Propogated CEDhdr and ASC to LATidentity.sip
- Added code in LDFdump.py to pretty-print ASC contributions
- Fixed labels in CAL diagnostic callback of LDFdumper.py.
- Modified parse of GEM contribution data as per v2.5 of LAT-TD-01545:
Overloaded old sent() word with condArrTime() in GEMcontribution.[h, sip]
Split _deltaEventTime word into two ushorts: _deltaEventTime and _deltaWindOpenTime
Added accessor deltaWindowOpenTime in GEMcontribution.[h, sip]
Added GEMcondArrivalTime to GEMcontribution.[h, sip]
Removed _pad portion of GEM data as it wasn't cell aligned - Added new accessors to GEMcontribution to LDFdumper.py and test/LDFdumper.cpp
- Bumped the revision number in LDFversion.h and configure.in.
Thu Nov 18 11:00:00 2004 - J. Panetta
- Added callback to handle errors for each iterator:
virtual int IT::handleError( code, p1=0, p2=0 )
Default behavior is to do nothing, continue iteration. - Moved all fprintf(stderr) statements into handleError, and commented them out. Users can override behavior by reimplementing handleError.
- Bumped the minor release number in LDFversion.h and configure.in.
Tue Oct 25 14:15:16 2004 - R. Claus
- Added some Python support code to LATcontribution.h and .sip.
- Added a LATtypeId constructor to create a LATtypeId from primary and secondary values.
- Added Python __eq__, __ne__, __len__ methods to LATtypeId.
- Added __len__ method to LATdatagram and LATcontribution.
- Added missing LATdataBufferIterator classes to the SIP interface.
- Added missing status methods to the SIP files that were missing them.
- Added missing 'const's to those methods missing them in TEMcontributionIterator.sip
- Added LATdatagram class to LDFdumper.py.
- Added the ability to iterate over, and dump LATdatagrams to LDFdump.py and modified datagram oriented functions to use it.
- Corrected signatures of LATcontribution.h to make length and opaque unsigned shorts.
- Fixed SIP code in which sipArgsParsed was compared to one more than the correct number of arguments everywhere. This had the effect of not being able to override defaults provided in method signatures.
- LATdatagram::identity() was returning an unsigned instead of a LATtypeId.
- Added EventSequence number printing to LDFdump.cpp.
- Changed LDFdump.cpp to read and handle one event at a time.
- Bumped the minor release number in LDFversion.h and configure.in.
Tue Aug 31 18:14:35 2004 - R. Claus
- Found more places using the event summary word that should have been using the contribution summary word.
- Added contribution packet error handling.
- Changed LDFdump.cpp and .py to not quit upon bad iteration status.
- Bumped the revision number in LDFversion.h and configure.in.
Mon Aug 02 20:15:36 2004 - R. Claus
- Fixed bug caused by my having forgotten to have updated LDFdump.cpp to use the contribution summary word instead of the event one. This affects the test code only and not the core package, but I don't have a way to release just the test code, so...
- Bumped the revision number in LDFversion.h and configure.in.
Thu Jul 08 14:32:42 2004 - R. Claus & J. Panetta
- Fixed bug in which the event summary word used every where was the version found in the first contribution. Each contribution has its own version and it turns out that they can, in fact, be different. In particular, the error bit is not global to the event, but per contribution.
- Added support for delivering LATcontributions to application code. This allows applications to handle the ACD software counter contributions, etc.
- Added some functionality to LATdatagramIterator. It's now usable from within LATTE.
- Bumped the revision number in LDFversion.h and configure.in.
Tue Tue Jun 01 18:59:21 2004 - R. Claus & J. Panetta
Tue May 04 16:09:41 2004 - R. Claus & J. Panetta
- Revised original ACDmap table for handling correctly wired GASUs. Apparently the original incarnation was wrong.
- Bumped the revision number in LDFversion.h.
Fri Apr 23 16:11:05 2004 - R. Claus & J. Panetta
- Added another ACDmap table for handling the first, miswired, GASUs.
- Added some test data and dumps for comparison in LDF/test/data.
- Bumped the revision number in LDFversion.h.
Wed Apr 14 13:29:41 2004 - R. Claus
Mon Apr 12 20:19:29 2004 - R. Claus
- Fixed GCC 3.2 complaint about ContribHandler table in EBFcontributionIterator.
- Added new EBF identity in LATidentity to support new ContribHandler table in EBFcontributionIterator with GEM and AEM source IDs at 16, 17, resp.
- Changed AEMcontributionIterator to treat only ID_EBF_1 data differently.
- Fixed private data member initialization order in DIAGcontributionIterator and ERRcontributionIterator constructors.
- Fixed missing .value() call on identity usage in various prints in LDFdump.cpp, LATcontributionIterator and EBFeventIterator.
- Removed stale 'inline' from EBFeventIterator::iterate().
- Updated obj/Makefile.am to handle new V4 files.
- Fixed bug in which the map was potentially undefined in AEMcontributionIterator.
- Commented out unused argument in LATcontributionIterator to quite GCC 3.2. Ditto ACDmap, CALmap, TKRmap, TWRmap, LATcomponentIterator, OSWcontributionIterator, DIAGcontributionIterator, ERRcontributionIterator.
- Removed stale superfluous 'AEMheader::' from AEMheader.
- Bumped minor version number in LDFversion.h.
To do:
- Fix autogen/automake to build LDF on Linux.
Wed Apr 07 20:11:23 2004 - R. Claus
- Fixed bug with default constructors setting map pointers to zero for AEM, CAL, TKR, DIAG and ERR -contributionIterators.
- Bumped revision number in LDFversion.h.
Tue Feb 10 18:25:16 PST 2004 - R. Claus
- Changed EBFeventIterator to iterate over a list of EBFevents rather than over a buffer assumed to contain a list of EBFevents. Also, a list of EBFevents is now actually supported rather than being limited to just one.
- Added LATcontributionIterator to iterate over datagram contributions. Currently the only kind of datagram contribution supported is a list of EBFevents. More kinds are likely to follow, e.g. configuration data.
- The EBFcontribution with source ID 16 is now a true GEM contribution as defined in "LAT-TD-01545: The GLT Electronics Module". The contribution containing time stamp information the Online Event Server inserts into the event with this ID has been moved into an Online SoftWare contribution (OSWcontribution) with ID 32.
- Provided GEMcontribution class for accessing GEM data.
- Provided GLTcontribution class to allow accessing time information in pre-version 0x102F0010 EBF data. This contribution used to be the GEMcontribution.
- Provided OSWtimeContribution to access time information in EBF version 0x102F0010 data.
- Introduced class LATtypeId for handling type-IDs. This class, together with those in LATidentity.h and the type-IDs stored in the data, are used to distinguish between different versions of the formats of various blocks of data.
- Provided backward compatibility so that EBF can still parse version 0x101F0010 EBFevents in addition to the current version 0x102F0010 types.
- Provided mapping classes ACDmap, CALmap and TKRmap, for mapping from electronics space to detector space and provided standard maps for the nominal LAT situation.
- Added additional iterators and constructors to allow overriding of the default map. This can be done by deriving from the supplied map classes and supplying implementations for the defaulted virtual methods. The previously existing iterators use the default, standard maps.
- Updated the AEMcontributionIterator to match the information in the latest version of "LAT-TD-00639-D1 ACD Electronics Module (AEM) - Programming ICD specification" which says that all cables don't have to be present in the AEM event contribution and adds a cable number to the cable contribution headers. These changes are backwardly compatible.
- Updated the EBFdump examples to be in line with the above changes.
- Added LATdataBufferIterator class to help users out by stringing together a bunch of iterators to the level where the user is interested again (LATcomponentIterator).
- Upgraded to SIP 4. This fixed a long outstanding problem with using this package from a LATTE RunControl script. It also caused some minor Python usage changes that required changes to EBFdumper.py.
- Fixed problem in ERRcontributionIterator in which the 5 GTFE tags for the GTFE phasing error were being reported in reverse order.
- Added doxygen comments.
- Changed the name of the package from EBF to LDF (LAT Data Format).
- Added support for Monte Carlo generated EBF data separately identified from that produced by LATTE at JJ's request.
- Updated VS.NET 7.1 (2003) project files
- Updated VS.NET 7.0 project files
- Added muon-5.arch to cvs in the test directory
Still to be done:
- Update VS files for Debug releases
- Update Unix make files
- Doxygenize the Python files
- Poor person's verification and validation: Save dumps of various kinds of events in text files for comparison against parsing results from new releases
Wed Mar 17 14:14:00 PST 2004 - J Panetta
In preparation for V4 release, jhp-040206 is being tagged as V3.3.0 for the ACD group.
Fri Feb 6 17:33:00 PST 2004 - J Panetta
Added AEMcontributionIterator to iterate over the AEM contribution of the event without user coding.
Provided pure virtual function callbacks:
- AEMcontributionIterator::header(int cable, AEMheader hdr)
- AEMcontributionIterator::pha(int cable, int channel, ACDpha p)
for the user to implement.
Thu Jan 22 15:19:00 PST 2004 - J Panetta
Modified bits in aemBuf() to match defining comment (hitMap == acceptMap)
Fixed parsing of AEM header and ordering of AEM pha values as per AEM primer, section 3.2.1 Ver 2.6. Closing LATTE Issue #37
Updated comments on location of AEM data definition
Mon Dec 15 14:05:43 PST 2003 - J Panetta
Added Linux support for EBF. See README for build instructions
Mon Dec 1 15:26:15 PST 2003 - J Panetta
Added DIAGcontributionIterator and ERRcontributionIterator to iterate over the diagnostic component of the TEM contribution and the error component respectively. Added a TKRdiagnostic object to reference into the bitfield defined in the TEM primer.
TKRdiagnostic provides the function hooks:
- GTRC(int) : return the GTRC diagnostic bit
- datum() : return the diagnostic word
DIAGcontributionIterator provides the following function hooks:
- iterateCAL() : iterate over CAL diagnostic data
- iterateTKR() : iterate over TKR diag data
- offset(unsigned) : set offset to start of diag data
- size() : return size of diag data (should be 12*sizeof(unsigned))
and callbacks:
- CALdiag(unsigned tower, unsigned layer, CALdiagnostic diag)
- TKRdiag(unsigned tower, unsigned gtcc, TKRdiagnostic diag)
The callbacks can be implemented by the user if the data is needed. By default, they are implemented as null functions.
ERRcontributionIterator provides the following function hooks:
- iterate() : iterate over error data
- offset(unsigned) : set offset to start of error data
- size() : return size of error data (computed by iterator)
and callbacks:
- gcccError (unsigned tower, unsigned gccc, GCCCerror err)
- gtccError (unsigned tower, unsigned gtcc, GTCCerror err)
- phaseError (unsigned tower, unsigned short err)
- timeoutError (unsigned tower, unsigned short err)
- gtrcPhaseError (unsigned tower, unsigned gtcc, unsigned gtrc, GTRCerror err)
- gtfePhaseError (unsigned tower, unsigned gtcc, unsigned gtr unsigned short err1, unsigned short err2, unsigned short err3, unsigned short err4, unsigned short err5) {}
- gtccFIFOerror (unsigned tower, unsigned gtcc, unsigned short err)
- gtccTMOerror (unsigned tower, unsigned gtcc)
- gtccHDRParityError (unsigned tower, unsigned gtcc)
- gtccWCParityError (unsigned tower, unsigned gtcc)
- gtrcSummaryError (unsigned tower, unsigned gtcc)
- gtccDataParityError (unsigned tower, unsigned gtcc)
As above, these callbacks may be implemented by the user if the data is needed. By default, they are implemented as null functions.
Example code for the use of these iterators is contained in the files test/EBFdump.cpp (C++) and in EBFdumper.py (python).
Thu Oct 23 2003 - J Panetta
Changed compiler flag _WIN32_STATIC to _WIN32_EBF_STATIC at request of offline. [libApiExport.h]
Tue Oct 15 15:16:20 2003 - J Panetta
Added support for statically linked EBF under Windows (Offline request). Add the compiler flag _WIN32_STATIC
to activate. [libApiExport.h]
Fixed a counting error in the calculation of the end-of-contribution. [TEMcontributionIterator.h]
Minor mods to setupEBF.sh and setupEBF.bat.
Forgot to add the sln file for EBF/test. [EBFdump.sln]
Sun Aug 31 18:17:40 2003 - R. Claus
Added support for two extra longwords added to the end of the GEM contribution. These contain the results from reading the PPC timebase register at the point that the event is first recognised by Online software in the SBC. This register counts at 16 MHz (60 ns ticks) on the MVME2306 SBCs currently supported by Online. Beware that the counting rate is implementation dependent when using PPC SBCs other than the MVME2306. See EBF/EBFdumper.py and EBF/test/EBFdump.cpp for examples on how to access this data.
Note for posterity: we observe that the minimum event spacing is about 200 uS, presumibly occuring when several events are stacked up in the various buffers (TEM and LAT COMM card) thus causing the readout software to work at the maximum rate.
Tue Aug 26 13:17:33 2003 - R. Claus
Changed the TKRcontributionIterator::strip() virtual function interface to provide layerEnd instead of layer. Affected files are TKRcontributionIterator.h, EBFdumper.py, EBFdump.cpp. Fixed various syntax problems to prevent some compilers from issuing warnings.
Wed Aug 20 10:19:00 2003 - J. Panetta
Fixed two problems in EBFdump.cpp. -#) replaced getch() with getchar(). -#) Fixed a variable out of scope problem that gcc caught and VC++ didn't.
Thu Aug 06 18:07:20 2003 - J. Panetta
Added CALcontributionIterator to EBF library to remove iteration over the CAL data from the user's hands. Provided pure virtual function log(unsigned tower, unsigned layer, CALlog theLog) for the user to implement. Modified CALlog.h to return a CALlogEnd object in place of an unsigned.
Added offsets to the end of {CAL,TKR,diag,err} data to TEMcontributionIterator. A portion of this functionality was in TKRcontributionIterator, but the diag and err data are part of the TEM contribution.
Implemented the parsing of diagnostics and errors in EBFdump.cpp. This was done a little differently from the python version, taking advantage of #defines to transparently swap bytes when needed.
Added a cleanup() method to TEMcontributionIterator. This method looks in the area between the last useful TEM data and the end of the contribution and checks whether it is both: a) less than one cell away; b) all zeroes. This checks for an error in the TEM hardware where multiples of the last TOT are written to the event stream.
Moved the dump() methods of My{TKR,CAL}contribution in the example files (EBFdump.cpp, EBFdumper.py) to the Iterators. This reverses a dependency of the contribution on the iterator.
Until a SIP error is dealt with, the cleanup(), diagnostic() and error() methods of the LATcomponentIterator class are required to be implemented in user python code. These methods are allowed to be dummies.
This release is consistent with existing data files.
Wed Jul 09 22:43:02 2003 - R. Claus
Changed the tracker iterator callback method signatures from the "electronics space" notation of v2.0.x to "detector space" notation. This is almost the same as it was for v01-00-00 except "layerEnd" is now correctly calculated. LayerEnd = layer * 2 + (1 bit indicating whether the value was read from the low or the high end of the MCM). LayerEnd is provided to the TOT virtual method where the side the TOT was read from is interesting. Layer is provided to the strip virtual method where the side the hit was read from is not interesting.
Provided geometry remapping private methods in TKRcontributionIterator.h to handle the nonstandard geometry of the first TKR Minitower. The code must be recompiled to handle different geometries. Since the data from the first minitower has already been taken and thus tagged with a particular format version number, and monte carlo data files have been generated with this same format version number, the code can't distinguish which files have which geometries. It's not clear what to do about this.
In anticipation that FSW will only one copy of the summary word, contribution signatures were changed to access the summary word through the EBFevent interface. All contributions should have been able to find the event header anyway. The contribution summary words can still be accessed through the contribution classes, but this may change in the future.
The known problem of v2.0.1 turned out to indeed be a TEM hardware error that has subsequently been fixed in the firmware.
This release is consistent with existing data files.
Thu May 08 19:54:38 2003 - R. Claus
Found that there was an alignment problem when decoding the Tracker TOTs and fixed it. One set of the error pathologies that didn't decode correctly in v2.0.0 now do. The remaining known pathology that doesn't decode correctly looks to be due to a TEM hardware error. A replicated TOT and subsequent padding appears where an error contribution is expected.
Known problems:
- One error pathology doesn't decode correctly.
Thu May 08 12:19:47 2003 - R. Claus
Changed the tracker iterator callback method signatures so that users don't have to decode layer-end into CC and RC numbers. If in the future the definition of the accepts mask changes, the change can be hidden in the EBF code so that user code does not have to change. I haven't yet updated all my Python test code to cope with these changes.
Also added the ability to dump text files using EBFdump.py. The text files contain hex dumps of an event buffer.
Known problems:
- Some of the error pathologies aren't decoded correctly.
- Not all files were updated to use the new TKR iterator signatures (e.g. eventFormat.py). I don't expect this to affect anybody but me.
Wed Mar 19 19:11:37 2003 - R. Claus
This package contains a set of C++ classes for navigating the second version of Event Builder Format (EBF) event data. It also includes code necessary for exposing these C++ classes to Python (the sip files).
The major difference between the current version (v01-00-00) of the EBF package and the previous release (v00-00-00) is that the EBF data as described by Mike Huffer's LAT Inter-module Communications document (LAT-TD-00606) is now augmented with an type/identity value and encapsulated in a "LATdatagram". The datagram has it's own type/identity value, but is of interest because it is extendable. This means that besides an EBF contribution, there may be other contributions to an "event". None are currently defined.
The type/identity value (LATidentity.h) is used to give each transmissible object a "type". Associated with the type is an identifier that is typically used as a version number of the type. A piece of software can then recognize whether it is equiped to deal with the data with which it is presented. It could either decide to bail out if it isn't or dynamically load a library that can.
The EBF format itself has changed from the previous release somewhat in that a couple of extra fields have been added to EBFcontribution and the units of the length field are now in LATp cells rather than bytes. The EBFcontribution::length() method still returns units of bytes, i.e., the change is backwardly compatible.
A program called cvtData-NoneTo1 is provided in the EBF/test directory to convert the data format v00-00-00 handles to the data format that v01-00-00 handles.
What is still needed:
- More comments
- Resolution of some class interface issues
- Resolution of the GC problem encountered in Python applications using EBF
- Resolution of how to pass buffers, rather than strings, around
- Remove or formalize dependancy on FSW's EBF_swap.*, etc.
- Provide an ACD data iterator
- Provide a diagnostic data iterator
- Provide an error data iterator
- Clean up LATidentity usage
- Clean up the build process
- Separate the core C++ into EBF.dll that is underneath the sip generated C++ that lives in libEBFc.pyd
- Provide a makefile (or whatever) for building EBFdump.exe, cvtData*.exe
Create a class derived from LATcomponentIterator, filling in those virtual functions appropriate to your application. Those you don't need can be omitted, since they are defaulted.
See EBFdump.cpp in the test directory. Read from the bottom up.
See eventFormat.py in the test directory.
Thu Feb 20 14:59:55 2003 - R. Claus
This package contains a set of C++ classes for navigating Event Builder Format (EBF) event data. It also includes code necessary for exposing these C++ classes to Python (the sip files).
What is still needed:
- More comments
- Examples
- Some way to deal with a package version number
- Some way to deal with a data format version number
- Remove or formalize dependancy on JJ's EBF_swap.*, etc.
- Provide access to diagnostic data
- Provide access to error data
- Provide an ACD data iterator
Generated on Thu Sep 29 12:13:47 2005 for LDF v05-07-00 by
1.3.9.1