MUSIC unknown
Analysis for the MUSIC active-target ionization chamber
Loading...
Searching...
No Matches
FileSet.hpp File Reference
#include "Constants.hpp"
#include "IOUtils.hpp"
#include <Rtypes.h>
#include <TChain.h>
#include <TFile.h>
#include <TString.h>
#include <TSystem.h>
#include <TTree.h>
#include <algorithm>
#include <iostream>
#include <map>
#include <mutex>
#include <vector>
Include dependency graph for FileSet.hpp:

Go to the source code of this file.

Classes

struct  FileSpec
 One input file: a run number and the subfile suffix within it. More...
class  FileSet
 Discovering input files and naming the artefacts derived from them. More...

Variables

std::mutex g_plot_mutex
 Serialises all plotting and canvas work.
std::mutex g_log_mutex
 Serialises multi-line progress logging from worker threads.

Variable Documentation

◆ g_log_mutex

std::mutex g_log_mutex
extern

Serialises multi-line progress logging from worker threads.

A streaming insertion chain is not atomic. Without this, per-run lines from concurrent workers interleave mid-line and the log stops being readable.

Definition at line 4 of file FileSet.cpp.

◆ g_plot_mutex

std::mutex g_plot_mutex
extern

Serialises all plotting and canvas work.

ROOT's global graphics state is not thread-safe and the pipeline runs file workers concurrently, so every canvas operation must hold this.

Definition at line 3 of file FileSet.cpp.

Referenced by EventBuilder::BuildEventsFromSortedHits(), EventsSummary::BuildNormedSummaryHistograms(), CalibrateBeam::CalibrateBeamOneSubfile(), Timing::PlotCostLandscape(), Timing::PlotExtremeEvents2D(), and PulseHistory::SavePlots().