Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4TouchableUtils.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
//
28
//
29
// John Allison 22nd August 2018
30
// Touchable utilities
31
32
#include "
G4TouchableUtils.hh
"
33
34
#include "
G4TouchablePropertiesScene.hh
"
35
#include "
G4TransportationManager.hh
"
36
37
G4PhysicalVolumeModel::TouchableProperties
G4TouchableUtils::FindTouchableProperties
38
(
G4ModelingParameters::PVNameCopyNoPath
path)
39
{
40
// If the search is not successful properties.fpTouchablePV will be null.
41
G4PhysicalVolumeModel::TouchableProperties
properties;
42
G4TransportationManager
* transportationManager =
43
G4TransportationManager::GetTransportationManager
();
44
size_t
nWorlds = transportationManager->
GetNoWorlds
();
45
std::vector<G4VPhysicalVolume*>::iterator iterWorld =
46
transportationManager->
GetWorldsIterator
();
47
for
(
size_t
i = 0; i < nWorlds; ++i, ++iterWorld) {
48
G4PhysicalVolumeModel
pvModel (*iterWorld);
// Unlimited depth.
49
G4ModelingParameters
mp;
// Default - no culling.
50
pvModel.
SetModelingParameters
(&mp);
51
G4TouchablePropertiesScene
scene (&pvModel,path);
52
pvModel.
DescribeYourselfTo
(scene);
// Initiate geometry tree traversal.
53
if
(scene.
GetFoundTouchableProperties
().
fpTouchablePV
) {
54
properties = scene.
GetFoundTouchableProperties
();
55
break
;
// Found, so no need to scan more worlds.
56
}
57
}
58
return
properties;
59
}
G4TouchablePropertiesScene.hh
G4TouchableUtils.hh
G4TransportationManager.hh
G4ModelingParameters
Definition
G4ModelingParameters.hh:52
G4ModelingParameters::PVNameCopyNoPath
std::vector< PVNameCopyNo > PVNameCopyNoPath
Definition
G4ModelingParameters.hh:99
G4PhysicalVolumeModel
Definition
G4PhysicalVolumeModel.hh:82
G4PhysicalVolumeModel::DescribeYourselfTo
void DescribeYourselfTo(G4VGraphicsScene &)
Definition
G4PhysicalVolumeModel.cc:190
G4TouchablePropertiesScene
Definition
G4TouchablePropertiesScene.hh:42
G4TouchablePropertiesScene::GetFoundTouchableProperties
const G4PhysicalVolumeModel::TouchableProperties & GetFoundTouchableProperties() const
Definition
G4TouchablePropertiesScene.hh:53
G4TransportationManager
Definition
G4TransportationManager.hh:54
G4TransportationManager::GetTransportationManager
static G4TransportationManager * GetTransportationManager()
Definition
G4TransportationManager.cc:106
G4TransportationManager::GetWorldsIterator
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator()
G4TransportationManager::GetNoWorlds
std::size_t GetNoWorlds() const
G4VModel::SetModelingParameters
void SetModelingParameters(const G4ModelingParameters *)
G4TouchableUtils::FindTouchableProperties
G4PhysicalVolumeModel::TouchableProperties FindTouchableProperties(G4ModelingParameters::PVNameCopyNoPath path)
Definition
G4TouchableUtils.cc:38
G4PhysicalVolumeModel::TouchableProperties
Definition
G4PhysicalVolumeModel.hh:143
G4PhysicalVolumeModel::TouchableProperties::fpTouchablePV
G4VPhysicalVolume * fpTouchablePV
Definition
G4PhysicalVolumeModel.hh:146
geant4-v11.2.2
source
visualization
modeling
src
G4TouchableUtils.cc
Generated by
1.12.0