Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4RootAnalysisReader.cc
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
// Author: Ivana Hrivnacova, 09/04/2014 (
[email protected]
)
28
29
#include "
G4RootAnalysisReader.hh
"
30
#include "
G4RootRFileManager.hh
"
31
#include "
G4RootRNtupleManager.hh
"
32
#include "
G4AnalysisUtilities.hh
"
33
#include "
G4ThreadLocalSingleton.hh
"
34
#include "
G4Threading.hh
"
35
36
using namespace
G4Analysis
;
37
38
//_____________________________________________________________________________
39
G4RootAnalysisReader
*
G4RootAnalysisReader::Instance
()
40
{
41
static
G4ThreadLocalSingleton<G4RootAnalysisReader>
instance;
42
return
instance.
Instance
();
43
}
44
45
//_____________________________________________________________________________
46
G4RootAnalysisReader::G4RootAnalysisReader
()
47
:
G4ToolsAnalysisReader
(
"Root"
)
48
{
49
if
( !
G4Threading::IsWorkerThread
() ) fgMasterInstance =
this
;
50
51
// Create managers
52
fNtupleManager = std::make_shared<G4RootRNtupleManager>(
fState
);
53
fFileManager = std::make_shared<G4RootRFileManager>(
fState
);
54
fNtupleManager->SetFileManager(fFileManager);
55
56
// Set managers to base class
57
SetNtupleManager
(fNtupleManager);
58
SetFileManager
(fFileManager);
59
}
60
61
//_____________________________________________________________________________
62
G4RootAnalysisReader::~G4RootAnalysisReader
()
63
{
64
if
(
fState
.
GetIsMaster
() ) fgMasterInstance =
nullptr
;
65
}
66
67
//
68
// private methods
69
//
70
71
//_____________________________________________________________________________
72
G4bool
G4RootAnalysisReader::Reset()
73
{
74
// Reset histograms and ntuple
75
76
auto
result =
true
;
77
78
result &=
G4ToolsAnalysisReader::Reset
();
79
result &= fNtupleManager->Reset();
80
81
return
result;
82
}
83
84
//
85
// protected methods
86
//
87
88
//_____________________________________________________________________________
89
G4bool
G4RootAnalysisReader::CloseFilesImpl
(
G4bool
reset)
90
{
91
Message
(
kVL4
,
"close"
,
"files"
);
92
93
auto
result =
true
;
94
95
if
(reset) {
96
result &= Reset();
97
}
98
99
fFileManager->CloseFiles();
100
101
Message
(
kVL2
,
"close"
,
"files"
,
""
, result);
102
103
return
result;
104
}
G4AnalysisUtilities.hh
G4RootAnalysisReader.hh
G4RootRFileManager.hh
G4RootRNtupleManager.hh
G4ThreadLocalSingleton.hh
G4Threading.hh
G4bool
bool G4bool
Definition
G4Types.hh:86
G4AnalysisManagerState::GetIsMaster
G4bool GetIsMaster() const
Definition
G4AnalysisManagerState.hh:109
G4RootAnalysisReader
Definition
G4RootAnalysisReader.hh:50
G4RootAnalysisReader::G4RootAnalysisReader
G4RootAnalysisReader()
Definition
G4RootAnalysisReader.cc:46
G4RootAnalysisReader::~G4RootAnalysisReader
~G4RootAnalysisReader() override
Definition
G4RootAnalysisReader.cc:62
G4RootAnalysisReader::Instance
static G4RootAnalysisReader * Instance()
Definition
G4RootAnalysisReader.cc:39
G4RootAnalysisReader::CloseFilesImpl
G4bool CloseFilesImpl(G4bool reset) final
Definition
G4RootAnalysisReader.cc:89
G4ThreadLocalSingleton
Definition
G4ThreadLocalSingleton.hh:146
G4ThreadLocalSingleton::Instance
T * Instance() const
Definition
G4ThreadLocalSingleton.hh:210
G4ToolsAnalysisReader
Definition
G4ToolsAnalysisReader.hh:54
G4ToolsAnalysisReader::Reset
G4bool Reset()
Definition
G4ToolsAnalysisReader.cc:106
G4VAnalysisReader::Message
void Message(G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
G4VAnalysisReader::SetNtupleManager
void SetNtupleManager(std::shared_ptr< G4VRNtupleManager > ntupleManager)
Definition
G4VAnalysisReader.cc:81
G4VAnalysisReader::fState
G4AnalysisManagerState fState
Definition
G4VAnalysisReader.hh:264
G4VAnalysisReader::SetFileManager
void SetFileManager(std::shared_ptr< G4VRFileManager > fileManager)
Definition
G4VAnalysisReader.cc:87
G4Analysis
Definition
G4AnalysisUtilities.hh:50
G4Analysis::kVL2
constexpr G4int kVL2
Definition
G4AnalysisUtilities.hh:60
G4Analysis::kVL4
constexpr G4int kVL4
Definition
G4AnalysisUtilities.hh:62
G4Threading::IsWorkerThread
G4bool IsWorkerThread()
Definition
G4Threading.cc:123
geant4-v11.2.2
source
analysis
root
src
G4RootAnalysisReader.cc
Generated by
1.12.0