Geant4
11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4RegularNavigationHelper.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
// G4RegularNavigationHelper
27
//
28
// Class description:
29
//
30
// Utility class for navigation on regular structures, providing step
31
// lengths counting for each regular voxel of the structure.
32
33
// Author: Pedro Arce (CIEMAT), November 2008
34
// --------------------------------------------------------------------
35
#ifndef G4RegularNavigationHelper_HH
36
#define G4RegularNavigationHelper_HH 1
37
38
#include <vector>
39
40
#include "
globals.hh
"
41
#include "
G4ThreadLocalSingleton.hh
"
42
43
using
G4RegularNavigationHelper_theStepLengths_t
=
44
std::vector< std::pair<G4int,G4double> >;
45
46
/**
47
* @brief G4RegularNavigationHelper is a singleton utility class for navigation
48
* on regular structures, providing step lengths counting for each regular voxel
49
* of the structure.
50
*/
51
52
class
G4RegularNavigationHelper
53
{
54
friend
class
G4ThreadLocalSingleton
<G4RegularNavigationHelper>;
55
56
public
:
57
58
/**
59
* Singleton instance accessor.
60
*/
61
static
G4RegularNavigationHelper*
Instance
();
62
63
/**
64
* Default Destructor.
65
*/
66
~G4RegularNavigationHelper
() =
default
;
67
68
/**
69
* Resets the state.
70
*/
71
void
ClearStepLengths
();
72
73
/**
74
* Stores step in container, associated to given voxel.
75
* @param[in] copyNo Voxel number.
76
* @param[in] slen Value of step length to store.
77
*/
78
void
AddStepLength
(
G4int
copyNo,
G4double
slen );
79
80
/**
81
* Returns the collection of stored steps per voxels.
82
*/
83
const
std::vector< std::pair<G4int,G4double> > &
GetStepLengths
();
84
85
private
:
86
87
/**
88
* Private default Constructor.
89
*/
90
G4RegularNavigationHelper() =
default
;
91
92
private
:
93
94
/** The collection of steps associated to voxels. */
95
std::vector< std::pair<G4int,G4double> > theStepLengths;
96
};
97
98
#endif
G4RegularNavigationHelper_theStepLengths_t
std::vector< std::pair< G4int, G4double > > G4RegularNavigationHelper_theStepLengths_t
Definition
G4RegularNavigationHelper.hh:43
G4ThreadLocalSingleton.hh
G4double
double G4double
Definition
G4Types.hh:83
G4int
int G4int
Definition
G4Types.hh:85
G4RegularNavigationHelper::ClearStepLengths
void ClearStepLengths()
Definition
G4RegularNavigationHelper.cc:41
G4RegularNavigationHelper::GetStepLengths
const std::vector< std::pair< G4int, G4double > > & GetStepLengths()
Definition
G4RegularNavigationHelper.cc:56
G4RegularNavigationHelper::Instance
static G4RegularNavigationHelper * Instance()
Definition
G4RegularNavigationHelper.cc:33
G4RegularNavigationHelper::~G4RegularNavigationHelper
~G4RegularNavigationHelper()=default
G4RegularNavigationHelper::AddStepLength
void AddStepLength(G4int copyNo, G4double slen)
Definition
G4RegularNavigationHelper.cc:48
G4ThreadLocalSingleton
Definition
G4ThreadLocalSingleton.hh:145
globals.hh
geant4-v11.4.0
source
geometry
navigation
include
G4RegularNavigationHelper.hh
Generated by
1.16.1