36#ifndef G4NAVIGATIONHISTORYPOOL_HH
37#define G4NAVIGATIONHISTORYPOOL_HH
53 inline std::vector<G4NavigationLevel> *
GetLevels();
57 inline void DeRegister(std::vector<G4NavigationLevel> * pLevels);
74 inline void Register(std::vector<G4NavigationLevel> * pLevels);
84 std::vector<std::vector<G4NavigationLevel> *>
fPool;
85 std::vector<std::vector<G4NavigationLevel> *>
fFree;
93Register(std::vector<G4NavigationLevel> * pLevels)
95 fPool.push_back(pLevels);
103DeRegister(std::vector<G4NavigationLevel> * pLevels)
105 fFree.push_back(pLevels);
114 std::vector<G4NavigationLevel> * aLevelVec =
128 std::vector<G4NavigationLevel> * levels = 0;
130 if (
fFree.size() !=0)
132 levels =
fFree.back();
std::vector< G4NavigationLevel > * GetNewLevels()
static G4NavigationHistoryPool * GetInstance()
void Register(std::vector< G4NavigationLevel > *pLevels)
void DeRegister(std::vector< G4NavigationLevel > *pLevels)
~G4NavigationHistoryPool()
std::vector< G4NavigationLevel > * GetLevels()
std::vector< std::vector< G4NavigationLevel > * > fPool
static G4ThreadLocal G4NavigationHistoryPool * fgInstance
G4NavigationHistoryPool()
std::vector< std::vector< G4NavigationLevel > * > fFree
static const G4int kHistoryMax