remage
Simulation framework for HPGe-based experiments
Toggle main menu visibility
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
26
class
G4Event
;
27
38
class
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
G4Event
RMGGeomBenchOutputScheme::AssignOutputNames
void AssignOutputNames(G4AnalysisManager *ana_man) override
Sets the names of the output columns, invoked in RMGRunAction::SetupAnalysisManager.
Definition
RMGGeomBenchOutputScheme.cc:26
RMGGeomBenchOutputScheme::StoreAlways
bool StoreAlways() const override
Always store benchmark data regardless of event filtering.
Definition
RMGGeomBenchOutputScheme.hh:51
RMGGeomBenchOutputScheme::SavePixel
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
RMGDetectorMetadata
Metadata describing one detector instance registered with RMGHardware.
Definition
RMGDetectorMetadata.hh:32
include
RMGGeomBenchOutputScheme.hh
Generated by
1.17.0