[Hallcsw] [Shms_users] Hall C 12 GeV software update (mailing list & request for additional info)

Ole Hansen ole at jlab.org
Tue Aug 23 14:59:16 EDT 2011


A few more points from my experience with similar exercises:

1) Will the existing Hall C tracking code be applicable to the 12 GeV
experiments? If not, you obviously have to write new code anyway, and
might get away with sticking to the Fortran analyzer for 6 GeV analyses
- at least for a while.

2) In my experience with the Hall A code, the algorithm is the really
hard part of any tracking software. Once you have a working algorithm,
it is straightforward to port it to a different framework and
programming language. Programming skills are much easier to acquire than
analysis experience. In short: porting may be easier than you think.

3) We did "wrapping" for our FPP analysis code. It has worked at an
acceptable level, and it did save us time, BUT
(a) the time spent on writing, debugging and interfacing the wrapper was
more than expected
(b) debugging the wrapped code became very hard
(c) large pain results every time the code has to run on a new platform
(think: the farm) due to binary and even source incompatibilities. One
has to find a Fortran compiler for the new platform, and those are
apparently not as common and compatible as their C/C++ equivalents.
(d) by treating the code as a black box, one misses out on the implicit
code review and bug check that comes with porting. It really helps to go
through old code line by line and reevaluate the way things are done.
You may find small mistakes, forgotten features, or a more efficient or
transparent implementation.
(e) the static data structures of the Fortran code will eventually get
in the way of the object-oriented features in C++, and they will pretty
much kill thread safety. Several good ways to parallelize code will be
unavailable when your analyzer lugs around a static binary blob.

In short: wrapping is a crutch that will start hurting with time. You
have been warned ... ;)

Cheers,
Ole

On 8/23/2011 12:23, Edward Brash wrote:
> I think that the sentiments that Rolf expresses go to the heart of the
> point that Mark Jones made at the workshop - the most reasonable
> starting point is probably to "wrap" the Hall C tracking code.
>
> Best,
> E.
>
> On Aug 23, 2011, at 9:54 AM, Rolf Ent wrote:
>
>>> - 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.
>>
>> Ole is correct, it is a non-starter to assume the tracking codes
>> will give similar results given that the Hall A setup uses VDCs. Even
>> more, the Hall C tracking analysis has been painstakingly optimized with
>> various "pruning" additions to have a well-known tracking efficiency for
>> very high rates within the spectrometer, with many bells and whistles how
>> to check it. Given this, my point of view would be that the starting
>> point to optimize for the precision L/T program in Hall C should be the
>> robust Hall C tracking algorithm. Maybe one could argue we should update
>> the documentation if for instance Eric Christy's tracking note is not
>> readily accessible, and adding sections from Vladas Tvaskis' thesis.
>> Don Geesaman did a good job doing the initial documentation.
>>
>> best regards, Rolf
>> _______________________________________________
>> Shms_users mailing list
>> Shms_users at jlab.org <mailto:Shms_users at jlab.org>
>> https://mailman.jlab.org/mailman/listinfo/shms_users
>
> /Dr. Edward J. Brash/
>
> Chair, Department of Physics, Computer Science & Engineering
>
> Christopher Newport University
>
> p: 757-594-7451 • f: 757-594-7919
>
> www.cnu.edu/pcs <http://www.cnu.edu/pcs/index.asp> • Find us on
> Facebook <http://www.facebook.com/pages/CNU-PCSE-Department/207472702360>
>
>
>
>
>
>
>
> _______________________________________________
> Shms_users mailing list
> Shms_users at jlab.org
> https://mailman.jlab.org/mailman/listinfo/shms_users



More information about the Hallcsw mailing list