Geant4
10.03.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4NavigationHistoryPool.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
// $Id:$
28
//
29
// G4NavigationHistoryPool
30
//
31
// Implementation for singleton container
32
//
33
// History:
34
// 07.05.14 G.Cosmo Initial version
35
// --------------------------------------------------------------------
36
37
#include "
globals.hh
"
38
#include "
G4NavigationHistoryPool.hh
"
39
40
// ***************************************************************************
41
// Static class variables
42
// ***************************************************************************
43
//
44
G4ThreadLocal
G4NavigationHistoryPool
* G4NavigationHistoryPool::fgInstance = 0;
45
46
// ***************************************************************************
47
// Private constructor: Construct underlying containers
48
// ***************************************************************************
49
//
50
G4NavigationHistoryPool::G4NavigationHistoryPool()
51
{
52
fPool.reserve(512);
53
fFree.reserve(512);
54
}
55
56
// ***************************************************************************
57
// Destructor
58
// ***************************************************************************
59
//
60
G4NavigationHistoryPool::~G4NavigationHistoryPool
()
61
{
62
Clean
(); fgInstance = 0;
63
}
64
65
// ***************************************************************************
66
// Delete all elements from the pool
67
// ***************************************************************************
68
//
69
void
G4NavigationHistoryPool::Clean
()
70
{
71
for
(
size_t
i=0; i<fPool.size(); ++i)
72
{
73
delete
fPool[i];
74
}
75
fPool.clear();
76
fFree.clear();
77
}
78
79
// ***************************************************************************
80
// Print number of entries
81
// ***************************************************************************
82
//
83
void
G4NavigationHistoryPool::Print
()
const
84
{
85
#ifdef G4VERBOSE
86
G4cout
<<
"Total navigation history collections cleaned: "
87
<< fPool.size() <<
G4endl
;
88
#endif
89
}
90
91
// ***************************************************************************
92
// Delete all elements from the pool
93
// ***************************************************************************
94
//
95
void
G4NavigationHistoryPool::Reset()
96
{
97
for
(
size_t
i=0; i<fPool.size(); ++i)
98
{
99
fPool[i] = 0;
100
}
101
for
(
size_t
j=0; j<fFree.size(); ++j)
102
{
103
fFree[j] = 0;
104
}
105
}
106
107
// ***************************************************************************
108
// Return ptr to Store, setting if necessary
109
// ***************************************************************************
110
//
111
G4NavigationHistoryPool
*
G4NavigationHistoryPool::GetInstance
()
112
{
113
if
(!fgInstance)
114
{
115
fgInstance =
new
G4NavigationHistoryPool
;
116
}
117
return
fgInstance;
118
}
G4NavigationHistoryPool::~G4NavigationHistoryPool
~G4NavigationHistoryPool()
Definition:
G4NavigationHistoryPool.cc:60
G4NavigationHistoryPool::Clean
void Clean()
Definition:
G4NavigationHistoryPool.cc:69
G4NavigationHistoryPool
Definition:
G4NavigationHistoryPool.hh:47
G4ThreadLocal
#define G4ThreadLocal
Definition:
tls.hh:89
G4NavigationHistoryPool.hh
G4cout
G4GLOB_DLL std::ostream G4cout
globals.hh
G4NavigationHistoryPool::Print
void Print() const
Definition:
G4NavigationHistoryPool.cc:83
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4NavigationHistoryPool::GetInstance
static G4NavigationHistoryPool * GetInstance()
Definition:
G4NavigationHistoryPool.cc:111
source
geant4.10.03.p02
source
geometry
volumes
src
G4NavigationHistoryPool.cc
Generated on Tue Nov 28 2017 21:43:23 for Geant4 by
1.8.5