Skip to content

Commit f98caa6

Browse files
Julian Myrchadavidrohr
authored andcommitted
o2-eve, o2-eve-export-workflow: fix option for not deleting a files, fix screenshots done too early (befor tracks are ready)
1 parent 8b04734 commit f98caa6

3 files changed

Lines changed: 28 additions & 15 deletions

File tree

EventVisualisation/Base/src/DirectoryLoader.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ deque<string> DirectoryLoader::load(const std::string& path, const std::string&
3939

4040
void DirectoryLoader::reduceNumberOfFiles(const std::string& path, const std::deque<std::string>& files, std::size_t filesInFolder)
4141
{
42+
if (filesInFolder == -1) {
43+
return; // do not reduce
44+
}
4245
int items = files.size() - std::min(files.size(), filesInFolder);
4346
for (int i = 0; i < items; i++) {
4447
std::remove((path + "/" + files[i]).c_str()); // delete file

EventVisualisation/View/include/EventVisualisationView/EventManagerFrame.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class EventManagerFrame : public TGMainFrame
6969
static void makeSliderRangeEntries(TGCompositeFrame* parent, int height,
7070
TGNumberEntryField*& minEntry, const TString& minToolTip,
7171
TGNumberEntryField*& maxEntry, const TString& maxToolTip);
72+
void createOutreachScreenshot();
7273

7374
protected:
7475
o2::event_visualisation::EventManager* mEventManager; // Model object.

EventVisualisation/View/src/EventManagerFrame.cxx

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
315338
void 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

Comments
 (0)