remage
Simulation framework for HPGe-based experiments
 
Loading...
Searching...
No Matches
RMGOpticalOutputScheme.hh
1// Copyright (C) 2022 Luigi Pertoldi <https://orcid.org/0000-0002-0467-2571>
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_OPTICAL_OUTPUT_SCHEME_HH_
17#define _RMG_OPTICAL_OUTPUT_SCHEME_HH_
18
19#include <vector>
20
21#include "G4AnalysisManager.hh"
22#include "G4GenericMessenger.hh"
23
24#include "RMGVOutputScheme.hh"
25
26class G4Event;
30class RMGOpticalOutputScheme : public RMGVOutputScheme {
31
32 public:
33
34 RMGOpticalOutputScheme();
35
37 void AssignOutputNames(G4AnalysisManager*) override;
39 void StoreEvent(const G4Event*) override;
40
41 protected:
42
43 [[nodiscard]] std::string GetNtupleNameFlat() const override { return "optical"; }
44
45 private:
46
47 std::unique_ptr<G4GenericMessenger> fMessenger;
48 void DefineCommands();
49
50 bool fStoreSinglePrecisionEnergy = true;
51};
52
53#endif
54
55// vim: tabstop=2 shiftwidth=2 expandtab
void AssignOutputNames(G4AnalysisManager *) override
Register the columns of the optical ntuple with the analysis manager.
Definition RMGOpticalOutputScheme.cc:36
void StoreEvent(const G4Event *) override
Fill one row with the optical photon counts.
Definition RMGOpticalOutputScheme.cc:77