Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4AnalysisManagerState.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 state of the analysis manager instance.
28//
29// Author: Ivana Hrivnacova, 09/07/2013 (ivana@ipno.in2p3.fr)
30
31#ifndef G4AnalysisManagerState_h
32#define G4AnalysisManagerState_h 1
33
34#include "G4AnalysisVerbose.hh"
35#include "G4Threading.hh"
36#include "globals.hh"
37
38#include <string_view>
39
41{
42 // Only G4VAnalysisManager can change the state
43 friend class G4VAnalysisManager;
44 friend class G4VAnalysisReader;
45 friend class G4ParameterManager;
46
47 public:
49 // disabled constructors, operators
53
54 // Methods
55 void Message([[maybe_unused]] G4int level,
56 [[maybe_unused]] const G4String& action,
57 [[maybe_unused]] const G4String& objectType,
58 [[maybe_unused]] const G4String& objectName = "",
59 [[maybe_unused]] G4bool success = true) const;
60 void IncrementCycle();
61 void ResetCycle();
62
63 // get methods
64 G4String GetType() const;
65 G4bool GetIsMaster() const;
66 G4int GetThreadId() const;
67 G4bool GetIsActivation() const;
68 G4int GetVerboseLevel() const;
69 G4bool IsVerbose(G4int verboseLevel) const;
71 G4int GetCycle() const;
72
73 private:
74 // set methods
75 // (hidden from all clients except for G4VAnalysisManager friend)
76 void SetIsActivation(G4bool isActivation);
77 void SetVerboseLevel(G4int verboseLevel);
78 void SetCompressionLevel(G4int level);
79
80 // Static data members
81 static constexpr std::string_view fkClass { "G4AnalysisManagerState" };
82
83 // Data members
84 G4String fType;
85 G4bool fIsMaster;
87 G4bool fIsActivation { false };
88 G4int fVerboseLevel { 0 };
89 G4int fCompressionLevel { 1 };
90 G4int fCycle { 0 };
91 G4AnalysisVerbose fVerbose;
92};
93
94// inline functions
95
96inline void G4AnalysisManagerState::SetIsActivation(G4bool isActivation)
97{ fIsActivation = isActivation; }
98
99inline void G4AnalysisManagerState::SetCompressionLevel(G4int level)
100{ fCompressionLevel = level; }
101
103{ ++fCycle; }
104
106{ fCycle = 0; }
107
109{ return fType; }
110
112{ return fIsMaster; }
113
115{ return fThreadId; }
116
118{ return fIsActivation; }
119
121{ return fVerboseLevel; }
122
124{ return fVerboseLevel == verboseLevel; }
125
127{ return fCompressionLevel; }
128
130{ return fCycle; }
131
132#endif
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
G4bool IsVerbose(G4int verboseLevel) const
void Message(G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
G4AnalysisManagerState & operator=(const G4AnalysisManagerState &)=delete
G4AnalysisManagerState()=delete
G4AnalysisManagerState(const G4AnalysisManagerState &)=delete