1 #ifndef __sbnanalysis_HISTOGRAM_HH
2 #define __sbnanalysis_HISTOGRAM_HH
13 #include "../Histograms/HistoList.h"
14 #include "../Histograms/TrackHisto.h"
15 #include "../Histograms/Profile.h"
16 #include "../Histograms/InteractionHisto.h"
17 #include "../Histograms/CosmicHisto.h"
18 #include "../Histograms/CRTHisto.h"
19 #include "../Histograms/DynamicSelector.h"
27 template <
typename T, std::
size_t N1, std::
size_t N2>
28 constexpr std::array<T, N1+N2>
concat(std::array<T, N1> lhs, std::array<T, N2> rhs) {
29 std::array<T,N1+N2> result{};
31 for (
auto &el : lhs) {
32 result[index] = std::move(el);
35 for (
auto &el : rhs) {
36 result[index] = std::move(el);
52 const std::string &prefix,
53 const std::vector<std::string> &track_histo_types,
54 const std::vector<std::string> &track_profile_types,
55 const std::vector<std::tuple<unsigned, float, float>> &track_profile_xranges);
68 const std::vector<numu::TrackSelector> &selectors,
69 const std::vector<numu::TrackFunction> &xfunctions,
70 bool fill_all_tracks=
true);
110 std::array<CRTHistos, Cuts::nCuts>
fCRTs;
const geo::GeometryCore * geometry
static std::string mode2Str(const numu::InteractionMode &mode)
std::vector< std::vector< std::array< TrackProfiles, Cuts::nCuts > > > fPrimaryTrackProfiles
Profile histograms for primary tracks.
std::array< CosmicHistos, 4 > fCosmic
std::array< CRTHistos, Cuts::nCuts > fCRTs
InteractionHistos fInteraction[nHistos][nModes]
all the interaction histograms
static const unsigned nHistos
process_name opflashCryoW ana
constexpr std::array< T, N1+N2 > concat(std::array< T, N1 > lhs, std::array< T, N2 > rhs)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Access the description of detector geometry.
static const unsigned nCuts
total number of cuts
void Fill(const numu::RecoEvent &event, const event::Event &core, const Cuts &cutmaker, const std::vector< numu::TrackSelector > &selectors, const std::vector< numu::TrackFunction > &xfunctions, bool fill_all_tracks=true)
static constexpr std::array< const char *, nHistos > histoNames
Names of histograms.
static constexpr numu::InteractionMode allModes[nModes]
List of all interaction modes.
Description of geometry of one entire detector.
void Initialize(const geo::GeometryCore *geometry, const sbnd::CRTGeoAlg &crt_geo, const Cuts &cuts, const std::string &prefix, const std::vector< std::string > &track_histo_types, const std::vector< std::string > &track_profile_types, const std::vector< std::tuple< unsigned, float, float >> &track_profile_xranges)
std::vector< std::array< TrackHistos, Cuts::nCuts > > fPrimaryTracks
Track histograms for priamry tracks in a candidate neutrino interaction.
Provides a base class aware of world box coordinates.
std::vector< TrackHistos > fAllTracks
Track histograms for all tracks.
The standard event data definition.
static const unsigned nTruthCuts
Total number of truth cuts.
static const unsigned nModes
number of interaction modes
static constexpr std::array< const char *, nTruthCuts > truthCutNames
static constexpr std::array< const char *, nCuts > cutNames