[Shms_users] Hall C 12 GeV software update (mailing list & request for additional info)
Brad Sawatzky
brads at jlab.org
Tue Aug 23 09:44:02 EDT 2011
This is Ole Hansen's response. It got bounced from the mailing list for
some reason (we'll get that fixed ASAP).
---------------------
On Mon, 22 Aug 2011, Ole Hansen wrote:
---------------------
Hi folks,
a few quick comments below.
On 8/22/2011 17:30, Brad Sawatzky wrote:
-------- Notes/Suggested Outline for Future Progress --------
C++ Analyzer:
- Adapt Hall A raw-decode stage to parse Hall C CODA files. (DAQ
folks should know what I mean here.)
- I had the impression that this may already be complete? If so, a
link to the code would be great!
I am curious about the differences between Hall A and Hall C CODA files. I would think that the Hall A CODA decoder should at least be able to run through a Hall C data stream, even if it doesn't actually decode module data. The CODA format (event headers, offset pointers, etc.) is well documented, and we are not doing anything non-standard in Hall A.
Whatever differences we discover would be a good starting point for generalizing the decoder logic. There is admittedly quite a bit of hardcoded stuff in there.
Of course, we have most probably not implemented all the Hall C hardware, which will cause certain decoder error messages. That brings me to the weakest point of the decoder: processing of different hardware modules (mostly VME) is coded in the bad old Fortran way - one long string of if-elseifs. This should be completely rewritten in an object-oriented way. Once that is in place, code for new electronics can be loaded dynamically from user-written shared libraries at run time, as we already do with detectors etc.
- NOTE: The 'database' backend in the Hall A analyzer has be
long-recognized as a big weakness. Multiple hacks have been
implemented to address this -- none are very satisfying. A
proper solution would greatly benefit both Halls. This would be
a clean, well-defined project for a good student to take on.
True. One staff member and one postdoc worked on a "real" database solution at different points in time, and neither attempt was successful (i.e. I never saw a line of code checked in). But before someone merrily hacks away, please let's design it first.
- compare track reconstruction event-by-event
- It would be disconcerting if there are significant differences
between what the "Hall A" tracking algorithms generate and what
the FORTRAN analyzer ends up with. I would like to think there
is minimal special case "magic" in either tracking codes.
Keep in mind that the tracking algorithm for the Hall A HRS has been specifically written for our set of VDCs. I don't think you have VDC reconstruction in your Fortran analyzer, or do you? Even if you do, I do think there may very well be "special case magic". I doubt such a comparison would work out of the box. But yes, we did the same thing, we compared Fortran and C++ tracking output in exhaustive detail - after we wrote the C++ tracking code from scratch.
Gabi and I talked at PANIC about having a meeting at JLab sometime in August/September. We should make it a plan. Hopefully, we can use the new old mailing list for further discussions. (I guess I'm waiting for moderator approval.)
Cheers,
Ole
More information about the Shms_users
mailing list