remage
Simulation framework for HPGe-based experiments
 
Loading...
Searching...
No Matches
RMGVertexFromPoint.hh
1// Copyright (C) 2025 Manuel Huber <https://orcid.org/0009-0000-5212-2999>
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_VERTEX_FROM_POINT_HH_
17#define _RMG_VERTEX_FROM_POINT_HH_
18
19#include <memory>
20
21#include "G4GenericMessenger.hh"
22#include "G4ThreeVector.hh"
23
24#include "RMGVVertexGenerator.hh"
25
32class RMGVertexFromPoint : public RMGVVertexGenerator {
33
34 public:
35
36 RMGVertexFromPoint();
37 ~RMGVertexFromPoint() = default;
38
39 RMGVertexFromPoint(RMGVertexFromPoint const&) = delete;
40 RMGVertexFromPoint& operator=(RMGVertexFromPoint const&) = delete;
41 RMGVertexFromPoint(RMGVertexFromPoint&&) = delete;
42 RMGVertexFromPoint& operator=(RMGVertexFromPoint&&) = delete;
43
45 bool GenerateVertex(G4ThreeVector& vertex) override {
46 vertex = fVertex;
47 return true;
48 };
49
50 private:
51
52 std::unique_ptr<G4GenericMessenger> fMessenger = nullptr;
53 void DefineCommands();
54
55 G4ThreeVector fVertex = kDummyPrimaryPosition;
56};
57
58#endif
59
60// vim: tabstop=2 shiftwidth=2 expandtab
bool GenerateVertex(G4ThreeVector &vertex) override
Return the configured fixed point; always succeeds.
Definition RMGVertexFromPoint.hh:45