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
G4RichTrajectoryPoint.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4RichTrajectoryPoint.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
//
28
//---------------------------------------------------------------
29
//
30
// G4RichTrajectoryPoint.hh
31
//
32
// class description:
33
// This class extends G4TrajectoryPoint.
34
// From G4Trajectory, the following information is included:
35
// 1) Position (end of step).
36
// The extended information, only publicly accessible through AttValues,
37
// includes:
38
// 2) Auxiliary points, as in G4SmoothTrajectory.
39
// 3) Total energy deposit.
40
// 4) Remaining energy.
41
// 5) Process defining end of step.
42
// 6) Global time (from start of event) at pre- amd post-step.
43
// ...and more.
44
//
45
// Contact:
46
// Questions and comments to this code should be sent to
47
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
48
// Makoto Asai (e-mail: asai@kekvax.kek.jp)
49
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
50
// and on the extended code to:
51
// John Allison (e-mail: John.Allison@manchester.ac.uk)
52
// Joseph Perl (e-mail: perl@slac.stanford.edu)
53
//
54
// ---------------------------------------------------------------
55
56
#ifndef G4RICHTRAJECTORYPOINT_HH
57
#define G4RICHTRAJECTORYPOINT_HH
58
59
#include <vector>
60
61
#include "
trkgdefs.hh
"
62
#include "
G4TrajectoryPoint.hh
"
63
#include "
G4TouchableHandle.hh
"
64
#include "
G4ThreeVector.hh
"
65
#include "
G4StepStatus.hh
"
66
67
class
G4Track
;
68
class
G4Step
;
69
class
G4VProcess
;
70
71
class
G4RichTrajectoryPoint
:
public
G4TrajectoryPoint
72
{
73
74
public
:
// without description
75
76
// Constructor/Destructor
77
G4RichTrajectoryPoint
();
78
G4RichTrajectoryPoint
(
const
G4Track
*);
// For first point.
79
G4RichTrajectoryPoint
(
const
G4Step
*);
// For subsequent points.
80
G4RichTrajectoryPoint
(
const
G4RichTrajectoryPoint
&
right
);
81
virtual
~G4RichTrajectoryPoint
();
82
83
private
:
84
G4RichTrajectoryPoint
&
operator=
(
const
G4RichTrajectoryPoint
&);
85
86
public
:
87
88
// Get/Set functions
89
const
std::vector<G4ThreeVector>*
GetAuxiliaryPoints
()
const
90
{
return
fpAuxiliaryPointVector
; }
91
92
// Operators
93
inline
void
*
operator
new
(size_t);
94
inline
void
operator
delete
(
void
*aRichTrajectoryPoint);
95
inline
G4bool
operator==
(
const
G4RichTrajectoryPoint
& right)
const
96
{
return
(
this
==&right); }
97
98
// Get methods for HepRep style attributes
99
virtual
const
std::map<G4String,G4AttDef>*
GetAttDefs
()
const
;
100
virtual
std::vector<G4AttValue>*
CreateAttValues
()
const
;
101
102
private
:
103
104
// Extended member data
105
std::vector<G4ThreeVector>*
fpAuxiliaryPointVector
;
106
G4double
fTotEDep
;
107
G4double
fRemainingEnergy
;
108
const
G4VProcess
*
fpProcess
;
109
G4StepStatus
fPreStepPointStatus
;
110
G4StepStatus
fPostStepPointStatus
;
111
G4double
fPreStepPointGlobalTime
;
112
G4double
fPostStepPointGlobalTime
;
113
G4TouchableHandle
fpPreStepPointVolume
;
114
G4TouchableHandle
fpPostStepPointVolume
;
115
G4double
fPreStepPointWeight
;
116
G4double
fPostStepPointWeight
;
117
};
118
119
extern
G4TRACKING_DLL
G4Allocator<G4RichTrajectoryPoint>
*&
aRichTrajectoryPointAllocator
();
120
121
inline
void
* G4RichTrajectoryPoint::operator
new
(size_t)
122
{
123
if
(!
aRichTrajectoryPointAllocator
())
124
{
aRichTrajectoryPointAllocator
() =
new
G4Allocator<G4RichTrajectoryPoint>
; }
125
return
(
void
*)
aRichTrajectoryPointAllocator
()->MallocSingle();
126
}
127
128
inline
void
G4RichTrajectoryPoint::operator
delete
(
void
*aRichTrajectoryPoint)
129
{
130
aRichTrajectoryPointAllocator
()->FreeSingle
131
((
G4RichTrajectoryPoint
*) aRichTrajectoryPoint);
132
}
133
134
#endif
geant4
tree
geant4-10.6-release
source
tracking
include
G4RichTrajectoryPoint.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration