[Halla12_software] Fun4Spin slides, topNode

Ole Hansen ole at jlab.org
Wed Apr 1 00:31:48 EDT 2015


Hi Tom,

I finally had some time to browse the slides of the presentation you
sent last week. It's definitely interesting.

About the "topNode", I can see two reasons why one might want to pass a
pointer like that to user code. First, on slide 6, there is a comment
"Fun4All can keep multiple nodes trees" (but "not mainstream yet"). So
this pointer would then select the appropriate tree. Second, and perhaps
more importantly, if this is multithreaded code, with each analysis
thread working on a separate event, there will presumably be one node
tree per thread, so user code in different threads would need to be
given different pointers.

Just a few more questions:

1) On page 10 an example is given how to retrieve an object from the
node tree:

PHCentralTrack* cnt =
findNode::getClass<PHCentralTrack>(topNode,"PHCentralTrack");

I'm puzzled why the getClass method is templated and /also/ given the
class name as a string. Could the two ever be different? What would that
mean?

2) The example analysis macro on page 11 does not seem to set up any
output manager. Where would the output from that example analysis go?
How would a user select what goes into the output? There is an example
of how to write histograms to a separate file, and a brief discussion
that it is possible to add user-defined objects to the output node tree.
But I assume that DST -> DST processing is not encouraged because, as
you mentioned, DSTs are big, and bandwidth is limited. What output do
users typically write? Histograms?

3) Does the "node tree for real" on slide 6 reflect the contents of a
typical DST file? Is this tree built "from scratch" from the raw data?
Is this step (raw data -> DST) what you call "reconstruction"? What
analysis would users typically do in their Analysis Modules? Some type
of physics analysis, or more "reconstruction"? Basically, a more
complete overview of the data flow would be interesting.

4) Where is the PID done?

5) On slide 4, I'm puzzled to see "Simulated PRDF" on the output side. I
can only guess: are these simulation data generated from the "PISA
Hits", which in turn come from some kind of simulation engine? So the
Fun4All server may act as both a reconstruction and a digitization
framework?

6) Slide 7 mentions "reading simulated data together with real data".
How does one distinguish between the two in the analysis code? Can one
reconstruct simulated and real data simultaneously? Are reconstructed
simulated data included in DSTs optionally/routinely?

You'll probably cover some or all of this at one of the upcoming
meetings, but I'm sure it may help preparations to have a list of
questions beforehand.

Ole

On 03/24/2015 03:45 PM, Thomas K Hemmick wrote:
> Hi guys
> 
> Last time there was a request for more info on Fun4All for our next
> chat.  Chris Pinkenburg (author of Fun4All) sent me these (old) slides
> that give a little more detail.  I'll also give a presentation during
> our next meeting, since these slides are a user-oriented presentation
> while our task is more architect-oriented.
> 
> The one design feature implemented here that I would change is having
> the so-called "topNode" is passed around from place-to-place as an
> argument.  In my opinion, singletons inherently don't need to pass
> arguments since you can always wake up clueless, grab a pointer to the
> instance of the singleton, and then learn ANYTHING AND EVERYTHING (not
> just the selected info passed around via arguments).  Indeed, the
> current implementation of Fun4All *does* have a function that returns
> the topNode and I encourage my students as they write layers of code to
> *NOT* keep passing the pointer to this node around to each level of
> their own code, but instead get the topNode when & if they need it.
> 
> Overall that is a pretty short list of complaints (for me).
> 
> Enjoy!
> Tom
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ole.vcf
Type: text/x-vcard
Size: 321 bytes
Desc: not available
Url : https://mailman.jlab.org/pipermail/halla12_software/attachments/20150401/1d3c2aea/attachment.vcf 


More information about the Halla12_software mailing list