lcfiplus / LCFIPlus

Flavor tagging code for ILC detectors
https://confluence.slac.stanford.edu/display/ilc/LCFIPlus
GNU General Public License v3.0
6 stars 19 forks source link

remove static lciostorer to allow multi-threading #62

Open fdplacido opened 2 years ago

fdplacido commented 2 years ago

BEGINRELEASENOTES

ENDRELEASENOTES

fdplacido commented 2 years ago

With this, if two or more LCFIplus processors are used in the same event, LCIOStorer::SetEvent would be called more than once: clearing the objects and relations, and doing the conversions.

Instead of using a static object, or setting the event multiple times, one could also store the LCIOStorer object per event, and retrieve it in the following LCFIplus processors.

suehara commented 1 year ago

Sorry for not reviewing for very long time...

I don't know how multiple LCIOStorers work while the Event (and EventStore) is still a singleton. Would you explain how you consider to run multi-threading? Processing a same event in parallel or treating completely different events at the same time? If it's the first case maybe it's better to implement some signaling function to assure one event is loaded and all processors are finished before going to the next event (need some work). On the latter case everything needs to be duplicated, which may be possible but need careful consideration. At least Event class (and EventStore) should be kept one per thread and we need to ensure this.

fdplacido commented 1 year ago

@andresailer