Geant4.10
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4.10.00.p01
source
processes
electromagnetic
dna
molecules
management
include
G4MoleculeHandleManager.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
//
27
// Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr)
28
//
29
// WARNING : This class is released as a prototype.
30
// It might strongly evolve or even disapear in the next releases.
31
//
32
// History:
33
// -----------
34
// 10 Oct 2011 M.Karamitros created
35
//
36
// -------------------------------------------------------------------
37
38
#ifndef G4MOLECULEHANDLEMANAGER_HH
39
#define G4MOLECULEHANDLEMANAGER_HH
40
41
#include "
globals.hh
"
42
#include "
G4ReferenceCountedHandle.hh
"
43
#include <map>
44
#include <
CLHEP/Utility/memory.h
>
45
46
class
G4Molecule
;
47
48
typedef
CLHEP::shared_ptr<const G4Molecule>
G4MoleculeHandle
;
49
50
class
G4MoleculeHandleManager
51
{
52
public
:
53
static
G4MoleculeHandleManager
*
Instance
();
54
~G4MoleculeHandleManager
();
55
G4MoleculeHandle
GetMoleculeHandle
(
const
G4Molecule
*);
56
57
static
void
DeleteInstance
();
58
59
private
:
60
G4MoleculeHandleManager
();
61
static
G4ThreadLocal
G4MoleculeHandleManager
* fInstance;
62
63
struct
CompMoleculePointer
64
{
65
G4bool
operator()(
const
G4Molecule
* mol1,
const
G4Molecule
* mol2)
const
;
66
};
67
68
typedef
std::map<const G4Molecule*, G4MoleculeHandle, G4MoleculeHandleManager::CompMoleculePointer> MoleculeHandleMap;
69
MoleculeHandleMap fMoleculeHandle;
70
};
71
72
#endif // G4MOLECULEHANDLEMANAGER_HH
memory.h
G4MoleculeHandle
CLHEP::shared_ptr< const G4Molecule > G4MoleculeHandle
Definition:
G4MoleculeHandleManager.hh:46
G4MoleculeHandleManager::GetMoleculeHandle
G4MoleculeHandle GetMoleculeHandle(const G4Molecule *)
Definition:
G4MoleculeHandleManager.cc:75
G4MoleculeHandleManager::~G4MoleculeHandleManager
~G4MoleculeHandleManager()
Definition:
G4MoleculeHandleManager.cc:45
G4ThreadLocal
#define G4ThreadLocal
Definition:
tls.hh:52
G4MoleculeHandleManager::DeleteInstance
static void DeleteInstance()
Definition:
G4MoleculeHandleManager.cc:57
G4bool
bool G4bool
Definition:
G4Types.hh:79
globals.hh
G4MoleculeHandleManager
Definition:
G4MoleculeHandleManager.hh:50
G4ReferenceCountedHandle.hh
CLHEP::shared_ptr< const G4Molecule >
G4Molecule
Definition:
G4Molecule.hh:76
G4MoleculeHandleManager::Instance
static G4MoleculeHandleManager * Instance()
Definition:
G4MoleculeHandleManager.cc:66
Generated on Wed Apr 30 2014 15:54:53 for Geant4.10 by
1.8.7