ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4ITFinder.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ITFinder.hh
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
28
29
// The code is developed in the framework of the ESA AO7146
30
//
31
// We would be very happy hearing from you, send us your feedback! :)
32
//
33
// In order for Geant4-DNA to be maintained and still open-source,
34
// article citations are crucial.
35
// If you use Geant4-DNA chemistry and you publish papers about your software,
36
// in addition to the general paper on Geant4-DNA:
37
//
38
// Int. J. Model. Simul. Sci. Comput. 1 (2010) 157–178
39
//
40
// we would be very happy if you could please also cite the following
41
// reference papers on chemistry:
42
//
43
// J. Comput. Phys. 274 (2014) 841-882
44
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
45
46
#ifndef G4ITFinder_hh
47
#define G4ITFinder_hh 1
48
49
#include <
G4AllITFinder.hh
>
50
51
#include "
globals.hh
"
52
#include <map>
53
#include "
G4KDTree.hh
"
54
#include "
G4KDTreeResult.hh
"
55
#include "
G4Track.hh
"
56
#include "
G4ITTrackHolder.hh
"
57
58
class
G4VITFinder
59
{
60
public
:
61
G4VITFinder
();
62
virtual
~G4VITFinder
(){;}
63
virtual
void
Clear
() = 0;
64
virtual
void
SetVerboseLevel
(
G4int
level) = 0;
65
virtual
G4int
GetVerboseLevel
() = 0;
66
virtual
void
Push
(
G4Track
*
track
) = 0;
67
virtual
G4ITType
GetITType
() = 0;
68
virtual
void
UpdatePositionMap
() = 0;
69
};
70
76
template
<
class
T>
//, class SearcherT = G4KDTree>
77
class
G4ITFinder
:
public
G4VITFinder
78
{
79
static
G4ThreadLocal
G4ITFinder
*
fInstance
;
80
G4ITFinder
();
81
82
typedef
std::map<int, G4KDTree*>
TreeMap
;
83
TreeMap
fTree
;
84
85
int
fVerbose
;
86
87
public
:
88
static
G4ITFinder
*
Instance
();
89
virtual
~G4ITFinder
();
90
virtual
void
Clear
();
91
92
virtual
void
SetVerboseLevel
(
G4int
level)
93
{
94
fVerbose
= level;
95
}
96
97
virtual
G4int
GetVerboseLevel
()
98
{
99
return
fVerbose
;
100
}
101
102
virtual
void
Push
(
G4Track
*
track
);
103
104
virtual
G4ITType
GetITType
()
105
{
106
return
T::ITType();
107
}
108
109
virtual
void
UpdatePositionMap
();
110
static
void
iUpdatePositionMap
();
111
112
G4KDTreeResultHandle
FindNearestInRange
(
const
T
*
point
/*from this point*/
,
113
int
key
/*for this type*/
,
114
G4double
/*range*/
);
115
G4KDTreeResultHandle
FindNearest
(
const
G4ThreeVector
&,
116
int
key
/*for this type*/
);
117
G4KDTreeResultHandle
FindNearest
(
const
T
*
/*from this point*/
,
118
int
key
/*for this type*/
);
119
G4KDTreeResultHandle
FindNearestInRange
(
const
G4ThreeVector
&
/*from this point*/
,
120
int
key
/*for this type*/
,
121
G4double
/*range*/
);
122
G4KDTreeResultHandle
FindNearest
(
const
T
*
/*from this point*/
,
123
const
T
*
/*for this type*/
);
124
};
125
126
#ifdef TEMPLATE
127
#undef TEMPLATE
128
#endif
129
130
#define TEMPLATE template<class T>
131
#define G4ITMANAGER G4ITFinder<T>
132
133
#include "G4ITFinder.icc"
134
135
#undef TEMPLATE
136
#undef G4ITMANAGER
137
138
#endif
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
dna
management
include
G4ITFinder.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:28
using
1.8.2 with
ECCE GitHub integration