@@ -312,12 +312,36 @@ void EventManagerFrame::checkMemory()
312312 }
313313}
314314
315+ void EventManagerFrame::createOutreachScreenshot ()
316+ {
317+ if (!Options::Instance ()->imageFolder ().empty ()) {
318+ string fileName = mEventManager ->getInstance ().getDataSource ()->getEventName ();
319+ if (fileName.size () < 5 ) {
320+ return ;
321+ }
322+ string imageFolder = Options::Instance ()->imageFolder ();
323+ if (!std::filesystem::is_directory (imageFolder)) {
324+ std::filesystem::create_directory (imageFolder);
325+ }
326+ fileName = imageFolder + " /" + fileName.substr (0 , fileName.find_last_of (' .' )) + " .png" ;
327+ if (!std::filesystem::is_regular_file (fileName)) {
328+ Screenshot::perform (fileName, this ->mEventManager ->getDataSource ()->getDetectorsMask (),
329+ this ->mEventManager ->getDataSource ()->getRunNumber (),
330+ this ->mEventManager ->getDataSource ()->getFirstTForbit (),
331+ this ->mEventManager ->getDataSource ()->getCollisionTime ());
332+ DirectoryLoader::reduceNumberOfFiles (imageFolder, DirectoryLoader::load (imageFolder, " _" , " .png" ), 10 );
333+ }
334+ // LOG(info) << mEventManager->getInstance().getDataSource()->getEventName();
335+ }
336+ }
337+
315338void EventManagerFrame::DoTimeTick ()
316339{
317340 if (not setInTick ()) {
318341 return ;
319342 }
320343 checkMemory (); // exits if memory usage too high = prevents freezing long-running machine
344+ this ->createOutreachScreenshot ();
321345 bool refreshNeeded = mEventManager ->getDataSource ()->refresh ();
322346 if (this ->mDisplayMode == SequentialMode) {
323347 mEventManager ->getDataSource ()->rollToNext ();
@@ -326,21 +350,6 @@ void EventManagerFrame::DoTimeTick()
326350
327351 if (refreshNeeded) {
328352 mEventManager ->displayCurrentEvent ();
329- if (!Options::Instance ()->imageFolder ().empty ()) {
330- string fileName = mEventManager ->getInstance ().getDataSource ()->getEventName ();
331- string imageFolder = Options::Instance ()->imageFolder ();
332- if (!std::filesystem::is_directory (imageFolder)) {
333- std::filesystem::create_directory (imageFolder);
334- }
335- fileName = imageFolder + " /" + fileName.substr (0 , fileName.find_last_of (' .' )) + " .png" ;
336- Screenshot::perform (fileName, this ->mEventManager ->getDataSource ()->getDetectorsMask (),
337- this ->mEventManager ->getDataSource ()->getRunNumber (),
338- this ->mEventManager ->getDataSource ()->getFirstTForbit (),
339- this ->mEventManager ->getDataSource ()->getCollisionTime ());
340- DirectoryLoader::reduceNumberOfFiles (imageFolder, DirectoryLoader::load (imageFolder, " _" , " .png" ), 10 );
341-
342- LOG (info) << mEventManager ->getInstance ().getDataSource ()->getEventName ();
343- }
344353 }
345354 mEventId ->SetIntNumber (mEventManager ->getDataSource ()->getCurrentEvent ());
346355 clearInTick ();
0 commit comments