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 EventsName(const FileSpec &s);
96
104 static TString FileLabel(const FileSpec &s);
105
113 static FileSpec ResolveFileSpec(const TString &file_label);
114
125 struct GateGroups {
126 std::vector<Int_t> order;
127 std::map<Int_t, TChain *> chain;
128 std::map<Int_t, TString> label;
129 std::map<TString, Int_t> key_of;
130 };
131
133
145 static Long64_t SampleStride(Long64_t n_total, Long64_t max_points);
146};
147
148#endif
Dataset configuration.
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:292
static std::vector< FileSpec > BuildFileSpecs()
Every raw input subfile for the configured runs.
Definition FileSet.cpp:266
static std::vector< TString > DiscoverSolRunSuffixes(Int_t run)
Subfile suffixes present on disk for a SOLARIS run.
Definition FileSet.cpp:144
static GateGroups GroupEventsForGating()
Build the gate groups; see GateGroups.
Definition FileSet.cpp:306
static TString FileLabel(const FileSpec &s)
Human-readable label identifying a subfile.
Definition FileSet.cpp:299
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:274
static FileSpec ResolveFileSpec(const TString &file_label)
Recover the FileSpec behind a label from FileLabel().
Definition FileSet.cpp:342
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:270
static std::vector< TString > DiscoverRunSuffixes(Int_t run)
Subfile suffixes present on disk for a CoMPASS run.
Definition FileSet.cpp:138
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:333
static std::vector< TString > DiscoverProcessedRunSuffixes(Int_t run)
Subfile suffixes for which processed output already exists.
Definition FileSet.cpp:235
The events files grouped into the units the beam gates are fitted on.
Definition FileSet.hpp:125
std::map< Int_t, TChain * > chain
Chain per key. Caller owns..
Definition FileSet.hpp:127
std::map< TString, Int_t > key_of
Group key per EventsName().
Definition FileSet.hpp:129
std::map< Int_t, TString > label
Label per key, for logs and plots.
Definition FileSet.hpp:128
std::vector< Int_t > order
Group keys in processing order.
Definition FileSet.hpp:126
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