MUSIC unknown
Analysis for the MUSIC active-target ionization chamber
Loading...
Searching...
No Matches
FileSet.hpp
Go to the documentation of this file.
1#ifndef FILE_SET_HPP
2#define FILE_SET_HPP
3
4#include "Constants.hpp"
5#include "IOUtils.hpp"
6#include <Rtypes.h>
7#include <TChain.h>
8#include <TFile.h>
9#include <TString.h>
10#include <TSystem.h>
11#include <TTree.h>
12#include <algorithm>
13#include <iostream>
14#include <map>
15#include <mutex>
16#include <vector>
17
24extern std::mutex g_plot_mutex;
25
32extern std::mutex g_log_mutex;
33
40struct FileSpec {
41 Int_t run;
42 TString suffix;
43};
44
51class FileSet {
52public:
55 static TString CompassBinPath(const FileSpec &s);
56
60 static std::vector<TString> DiscoverRunSuffixes(Int_t run);
61
64 static TString SolBinPath(const FileSpec &s);
65
68 static std::vector<TString> DiscoverSolRunSuffixes(Int_t run);
69
72 static std::vector<TString> DiscoverProcessedRunSuffixes(Int_t run);
73
79 static std::vector<FileSpec> BuildFileSpecs();
80
82 static std::vector<FileSpec> BuildProcessedFileSpecs();
83
92 static std::vector<FileSpec> BuildRawOrProcessedFileSpecs();
93
95 static TString RawRootName(const FileSpec &s);
96
98 static TString ShiftFriendName(const FileSpec &s);
99
101 static TString EventsName(const FileSpec &s);
102
110 static TString FileLabel(const FileSpec &s);
111
119 static FileSpec ResolveFileSpec(const TString &file_label);
120
129 static std::map<Int_t, TChain *>
130 GroupEventsByRun(std::vector<Int_t> &run_order);
131
143 static Long64_t SampleStride(Long64_t n_total, Long64_t max_points);
144};
145
146#endif
The dataset configuration, and how it is layered.
std::mutex g_plot_mutex
Serialises all plotting and canvas work.
Definition FileSet.cpp:3
std::mutex g_log_mutex
Serialises multi-line progress logging from worker threads.
Definition FileSet.cpp:4
Discovering input files and naming the artefacts derived from them.
Definition FileSet.hpp:51
static TString EventsName(const FileSpec &s)
Filename of the built-events ROOT file for a subfile.
Definition FileSet.cpp:289
static std::map< Int_t, TChain * > GroupEventsByRun(std::vector< Int_t > &run_order)
Chain every run's events files, grouped by run.
Definition FileSet.cpp:304
static std::vector< FileSpec > BuildFileSpecs()
Every raw input subfile for the configured runs.
Definition FileSet.cpp:255
static std::vector< TString > DiscoverSolRunSuffixes(Int_t run)
Subfile suffixes present on disk for a SOLARIS run.
Definition FileSet.cpp:117
static TString FileLabel(const FileSpec &s)
Human-readable label identifying a subfile.
Definition FileSet.cpp:296
static TString CompassBinPath(const FileSpec &s)
Path to a CoMPASS binary subfile.
Definition FileSet.cpp:6
static std::vector< FileSpec > BuildRawOrProcessedFileSpecs()
The union of raw and processed subfiles, without duplicates.
Definition FileSet.cpp:263
static FileSpec ResolveFileSpec(const TString &file_label)
Recover the FileSpec behind a label from FileLabel().
Definition FileSet.cpp:332
static TString SolBinPath(const FileSpec &s)
Path to a SOLARIS .sol subfile.
Definition FileSet.cpp:11
static std::vector< FileSpec > BuildProcessedFileSpecs()
Every subfile that already has processed output.
Definition FileSet.cpp:259
static std::vector< TString > DiscoverRunSuffixes(Int_t run)
Subfile suffixes present on disk for a CoMPASS run.
Definition FileSet.cpp:111
static TString RawRootName(const FileSpec &s)
Filename of the raw converted ROOT file for a subfile.
Definition FileSet.cpp:281
static TString ShiftFriendName(const FileSpec &s)
Filename of the timing-shift friend tree for a subfile.
Definition FileSet.cpp:285
static Long64_t SampleStride(Long64_t n_total, Long64_t max_points)
Stride that visits at most max_points of n_total entries.
Definition FileSet.cpp:323
static std::vector< TString > DiscoverProcessedRunSuffixes(Int_t run)
Subfile suffixes for which processed output already exists.
Definition FileSet.cpp:205
One input file: a run number and the subfile suffix within it.
Definition FileSet.hpp:40
TString suffix
Subfile suffix, empty for the first subfile.
Definition FileSet.hpp:42
Int_t run
Run number.
Definition FileSet.hpp:41