remage
Simulation framework for HPGe-based experiments
 
Loading...
Searching...
No Matches
RMGGeomBenchOutputScheme.hh
1// Copyright (C) 2025 Moritz Neuberger <https://orcid.org/0009-0001-8471-9076>
2//
3// This program is free software: you can redistribute it and/or modify it under
4// the terms of the GNU Lesser General Public License as published by the Free
5// Software Foundation, either version 3 of the License, or (at your option) any
6// later version.
7//
8// This program is distributed in the hope that it will be useful, but WITHOUT
9// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11// details.
12//
13// You should have received a copy of the GNU Lesser General Public License
14// along with this program. If not, see <https://www.gnu.org/licenses/>.
15
16#ifndef _RMG_GEOMBENCH_OUTPUT_SCHEME_HH_
17#define _RMG_GEOMBENCH_OUTPUT_SCHEME_HH_
18
19#include <memory>
20
21#include "G4AnalysisManager.hh"
22#include "G4GenericMessenger.hh"
23
24#include "RMGVOutputScheme.hh"
25
26class G4Event;
27
38class RMGGeomBenchOutputScheme : public RMGVOutputScheme {
39
40 public:
41
42 RMGGeomBenchOutputScheme();
43
45 void AssignOutputNames(G4AnalysisManager* ana_man) override;
46
48 void SavePixel(int plane_id, double x, double y, double z, double time);
49
51 [[nodiscard]] bool StoreAlways() const override { return true; }
52
53 protected:
54
55 [[nodiscard]] std::string GetNtupleName(RMGDetectorMetadata) const override {
56 throw std::logic_error("benchmark output scheme has no detectors");
57 }
58
59 private:
60
61 // Ntuple IDs for the three benchmark planes (XZ, YZ, XY)
62 int fNtupleIDs[3] = {-1, -1, -1};
63};
64
65#endif
66
67// vim: tabstop=2 shiftwidth=2 expandtab
void AssignOutputNames(G4AnalysisManager *ana_man) override
Sets the names of the output columns, invoked in RMGRunAction::SetupAnalysisManager.
Definition RMGGeomBenchOutputScheme.cc:26
bool StoreAlways() const override
Always store benchmark data regardless of event filtering.
Definition RMGGeomBenchOutputScheme.hh:51
void SavePixel(int plane_id, double x, double y, double z, double time)
Store benchmark pixel data - called when a pixel completes sampling.
Definition RMGGeomBenchOutputScheme.cc:52
Metadata describing one detector instance registered with RMGHardware.
Definition RMGDetectorMetadata.hh:31