Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4VNtupleManager.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26
27// The pure abstract base class for Ntuple manager.
28// It defines functions independent from the output type.
29//
30// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr)
31
32#ifndef G4VNtupleManager_h
33#define G4VNtupleManager_h 1
34
36#include "globals.hh"
37
38#include <vector>
39
40struct G4NtupleBooking;
41
43{
44 // Disable using the object managers outside G4VAnalysisManager and
45 // its messenger
46 friend class G4VAnalysisManager;
47
48 public:
50 : G4BaseAnalysisManager(state) {}
51 G4VNtupleManager() = delete;
52 ~G4VNtupleManager() override = default;
53
54 // deleted copy constructor & assignment operator
55 G4VNtupleManager(const G4VNtupleManager& rhs) = delete;
57
58 protected:
59 // Methods for handling ntuples
60 virtual G4int CreateNtuple(G4NtupleBooking* booking) = 0;
61
62 // Methods to fill ntuples
63 // Methods for ntuple with id = FirstNtupleId
64 virtual G4bool FillNtupleIColumn(G4int id, G4int value) = 0;
65 virtual G4bool FillNtupleFColumn(G4int id, G4float value) = 0;
66 virtual G4bool FillNtupleDColumn(G4int id, G4double value) = 0;
67 virtual G4bool FillNtupleSColumn(G4int id, const G4String& value) = 0;
68 virtual G4bool AddNtupleRow() = 0;
69
70 // Methods for ntuple with id > FirstNtupleId (when more ntuples exist)
71 virtual G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) = 0;
72 virtual G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) = 0;
73 virtual G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) = 0;
74 virtual G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId,
75 const G4String& value) = 0;
76 virtual G4bool AddNtupleRow(G4int ntupleId) = 0;
77
78 // Activation option
79 virtual void SetActivation(G4bool activation) = 0;
80 virtual void SetActivation(G4int id, G4bool activation) = 0;
81 virtual G4bool GetActivation(G4int id) const = 0;
82
83 // New cycle option
84 virtual void SetNewCycle(G4bool value) = 0;
85 virtual G4bool GetNewCycle() const = 0;
86
87 // Set first column Id
88 virtual G4bool SetFirstNtupleColumnId(G4int firstId) = 0;
89
90 // Clear all date
91 virtual void Clear() = 0;
92
93 // Methods to delete selected ntuples
94 virtual G4bool Delete(G4int id) = 0;
95};
96
97#endif
float G4float
Definition G4Types.hh:84
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
G4VNtupleManager()=delete
G4VNtupleManager(const G4AnalysisManagerState &state)
virtual G4bool GetActivation(G4int id) const =0
virtual void SetActivation(G4bool activation)=0
virtual G4bool GetNewCycle() const =0
virtual G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value)=0
virtual G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value)=0
virtual G4bool AddNtupleRow(G4int ntupleId)=0
virtual G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value)=0
virtual G4int CreateNtuple(G4NtupleBooking *booking)=0
~G4VNtupleManager() override=default
virtual G4bool FillNtupleIColumn(G4int id, G4int value)=0
virtual G4bool SetFirstNtupleColumnId(G4int firstId)=0
G4VNtupleManager(const G4VNtupleManager &rhs)=delete
virtual void SetActivation(G4int id, G4bool activation)=0
virtual G4bool FillNtupleSColumn(G4int id, const G4String &value)=0
virtual G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, const G4String &value)=0
virtual G4bool FillNtupleFColumn(G4int id, G4float value)=0
virtual G4bool FillNtupleDColumn(G4int id, G4double value)=0
virtual void Clear()=0
virtual G4bool AddNtupleRow()=0
G4VNtupleManager & operator=(const G4VNtupleManager &rhs)=delete
virtual G4bool Delete(G4int id)=0
virtual void SetNewCycle(G4bool value)=0