Back Midas Rome Roody Rootana
  Root Analyzer Framework  Not logged in ELOG logo
Entry  05 Feb 2021, Frederik Wauters, Forum, ana or manalyzer? 
    Reply  05 Feb 2021, Konstantin Olchanski, Forum, ana or manalyzer? 
       Reply  05 Feb 2021, Frederik Wauters, Forum, ana or manalyzer? 
          Reply  06 Feb 2021, Frederik Wauters, Forum, ana or manalyzer? 
Message ID: 36     Entry time: 05 Feb 2021     In reply to: 35     Reply to this: 37
Author: Frederik Wauters 
Topic: Forum 
Subject: ana or manalyzer? 
yes, thanks! 

" manalyzer has automatic per-module multithreading "for free"  "

does that mean that if one needs modules to run sequentially (think first clustering, then making higher level physics objects), the user needs to enforce that?

> > reworking our old (MuCap inherited) mana.cpp
> > To have a good start, what is advised:
> > a) following the Rootana Analyzer Framework as advertised in with the TRootanaEventLoop
> > b) The manalyzer advertised in
> > Option b) with it's module support?
> It depends on your experiment and your data. If your data is just a few numbers,
> either analyzer would do (even the old midas mana.c analyzer would do).
> But if you have complicated data, especially streaming data, where midas events
> and physics events do not have a 1-to-1 connection, the old analyzers will
> not cut the mustard. I have done this kind of processing in the old analyzers,
> came up with a generalized structure, the "m" analyzer is the result.
> Historical note: I developed rootana maybe 15 years ago to process data
> from the ALPHA experiment at CERN (anti-hydrogen trap), more recently, I developed
> manalyzer to process more complicated data from the ALPHA-g experiment at CERN (vertical
> anti-hydrogen trap, to study gravity effects). Joseph McKenna from CERN contributed
> the automatic by-module multithreading and benchmarking.
> To compare:
> - both rootana and manalyzer use the same TMidasOnline class for connecting to live MIDAS data
> - both use the same midasio classes to read and write MIDAS files
> - rootana uses the older TMidasEvent class to access MIDAS banks
> - manalyzer uses the newer TMEvent class. the main improvement is that TMEvent is
> a well-behaved C++ class with a usable assignment and copy-constructor operators.
> - graphics and web interface uses the same ROOT graphics, ROOT web server (a derivative
> of mongoose web server library) and the same JS-ROOT.
> - the manalyzer has better defined control flow and C++ object lifetime rules
> wrt run start and run end (this corrects problems with life time of C++ objects
> in the old rootana).
> - manalyzer has automatic per-module multithreading "for free" (thanks, Joseph!),
> I typically see the alphag analyzer use 8-10 CPU threads without having to use
> any threading or mutex gunk in the analysis code.
> The current plan is to include manalyzer into MIDAS as a git submodule, with luck
> it will happen for the next midas release, the hold up is with the midasio class that needs
> to be updated, git-submoduled and added to midas. Also the old TMidasOnline class needs
> updating.
> To conclude, we use manalyzer for ALPHA-2 and ALPHA-g, people who use it seem to be
> generally happy (especially with the automatic per-module multithreading), we use
> it for a couple of simpler experiments at TRIUMF.
> I hope this answers your questions?
> K.O.
ELOG V3.1.4-2e1708b5