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
HadrontherapyDetectorHit.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file HadrontherapyDetectorHit.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
// Hadrontherapy advanced example for Geant4
27
// See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy
28
29
#ifndef HadrontherapyDetectorHit_h
30
#define HadrontherapyDetectorHit_h 1
31
32
33
#include "
G4VHit.hh
"
34
#include "G4THitsCollection.hh"
35
#include "
G4Allocator.hh
"
36
37
38
class
HadrontherapyDetectorHit
:
public
G4VHit
39
{
40
public
:
41
HadrontherapyDetectorHit
();
42
HadrontherapyDetectorHit
(
const
HadrontherapyDetectorHit
&);
43
virtual
~HadrontherapyDetectorHit
();
44
45
46
const
HadrontherapyDetectorHit
&
operator=
(
const
HadrontherapyDetectorHit
&);
47
48
G4bool
operator==
(
const
HadrontherapyDetectorHit
&)
const
;
49
50
//******************************MT
51
inline
void
*
operator
new
(size_t);
52
inline
void
operator
delete
(
void
*);
53
//******************************MT
54
55
private
:
56
G4int
xHitID
;
// Hit x voxel
57
G4int
zHitID
;
// Hit z voxel
58
G4int
yHitID
;
// Hit y voxel
59
G4double
energyDeposit
;
// Energy deposit associated with the hit
60
61
public
:
62
// Methods to get the information - energy deposit and associated
63
// position in the phantom - of the hits stored in the hits collection
64
65
inline
G4int
GetXID
()
// Get x index of the voxel
66
{
return
xHitID
;}
67
68
inline
G4int
GetZID
()
// Get y index of the voxel
69
{
return
zHitID
;}
70
71
inline
G4int
GetYID
()
// Get z index of the voxel
72
{
return
yHitID
;}
73
74
inline
G4double
GetEdep
()
// Get energy deposit
75
{
return
energyDeposit
;}
76
77
// Methods to store the information of the hit ( energy deposit, position in the phantom )
78
// in the hits collection
79
80
inline
void
SetEdepAndPosition
(
G4int
xx
,
G4int
yy,
G4int
zz
,
G4double
eDep)
81
{
82
xHitID
=
xx
;
83
yHitID
= yy;
84
zHitID
=
zz
;
85
energyDeposit
= eDep;
86
}
87
};
88
89
typedef
G4THitsCollection<HadrontherapyDetectorHit>
HadrontherapyDetectorHitsCollection
;
90
//******************************MT
91
extern
G4ThreadLocal
G4Allocator<HadrontherapyDetectorHit>
*
HadrontherapyDetectorHitAllocator
;
92
//******************************MT
93
94
inline
void
* HadrontherapyDetectorHit::operator
new
(size_t)
95
{
96
97
98
if
(!
HadrontherapyDetectorHitAllocator
)
99
HadrontherapyDetectorHitAllocator
=
new
G4Allocator<HadrontherapyDetectorHit>
;
100
void
*aHit;
101
102
aHit = (
void
*)
HadrontherapyDetectorHitAllocator
->MallocSingle();
103
return
aHit;
104
105
}
106
107
inline
void
HadrontherapyDetectorHit::operator
delete
(
void
*aHit)
108
{
109
if
(!
HadrontherapyDetectorHitAllocator
)
110
HadrontherapyDetectorHitAllocator
=
new
G4Allocator<HadrontherapyDetectorHit>
;
111
112
HadrontherapyDetectorHitAllocator
->FreeSingle((
HadrontherapyDetectorHit
*) aHit);
113
}
114
115
#endif
geant4
tree
geant4-10.6-release
examples
advanced
hadrontherapy
include
HadrontherapyDetectorHit.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:58
using
1.8.2 with
ECCE GitHub integration