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
RE01TrackInformation.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RE01TrackInformation.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
//
28
//
29
//
30
//
31
32
#ifndef RE01TrackInformation_h
33
#define RE01TrackInformation_h 1
34
35
#include "
globals.hh
"
36
#include "
G4ThreeVector.hh
"
37
#include "
G4ParticleDefinition.hh
"
38
#include "
G4Track.hh
"
39
#include "
G4Allocator.hh
"
40
#include "
G4VUserTrackInformation.hh
"
41
42
class
RE01TrackInformation
:
public
G4VUserTrackInformation
43
{
44
public
:
45
RE01TrackInformation
();
46
RE01TrackInformation
(
const
G4Track
* aTrack);
47
RE01TrackInformation
(
const
RE01TrackInformation
* aTrackInfo);
48
virtual
~RE01TrackInformation
();
49
50
inline
void
*
operator
new
(size_t);
51
inline
void
operator
delete
(
void
*aTrackInfo);
52
53
RE01TrackInformation
&
operator =
(
const
RE01TrackInformation
&
right
);
54
55
void
SetSourceTrackInformation
(
const
G4Track
* aTrack);
56
virtual
void
Print
()
const
;
57
58
public
:
59
inline
G4int
GetTrackingStatus
()
const
{
return
fTrackingStatus
;}
60
inline
void
SetTrackingStatus
(
G4int
i) {
fTrackingStatus
= i;}
61
inline
G4int
GetSourceTrackID
()
const
{
return
fSourceTrackID
;}
62
inline
void
SetSuspendedStepID
(
G4int
i) {
fSuspendedStepID
= i;}
63
inline
G4int
GetSuspendedStepID
()
const
{
return
fSuspendedStepID
;}
64
65
private
:
66
// Information of the primary track at the primary vertex
67
G4int
fOriginalTrackID
;
// Track ID of primary particle
68
G4ParticleDefinition
*
fParticleDefinition
;
69
G4ThreeVector
fOriginalPosition
;
70
G4ThreeVector
fOriginalMomentum
;
71
G4double
fOriginalEnergy
;
72
G4double
fOriginalTime
;
73
74
G4int
fTrackingStatus
;
75
// trackingStatus = 1 : primary or secondary track which has not yet reached
76
// to calorimeter
77
// = 0 : track which or ancester of which has reached to
78
// calorimeter
79
// = 2 : track or its ancester had reached to calorimeter
80
// and then escaped from it
81
// Information of the track which reached to the calorimeter boundary at the
82
// boundary surface.
83
// This information is valid only for trackingStatus = 0 or 2
84
G4int
fSourceTrackID
;
85
G4ParticleDefinition
*
fSourceDefinition
;
86
G4ThreeVector
fSourcePosition
;
87
G4ThreeVector
fSourceMomentum
;
88
G4double
fSourceEnergy
;
89
G4double
fSourceTime
;
90
G4int
fSuspendedStepID
;
91
};
92
93
extern
G4ThreadLocal
94
G4Allocator<RE01TrackInformation>
*
aTrackInformationAllocator
;
95
96
inline
void
* RE01TrackInformation::operator
new
(size_t)
97
{
98
if
(!
aTrackInformationAllocator
)
99
aTrackInformationAllocator
=
new
G4Allocator<RE01TrackInformation>
;
100
return
(
void
*)
aTrackInformationAllocator
->MallocSingle();
101
}
102
103
inline
void
RE01TrackInformation::operator
delete
(
void
*aTrackInfo)
104
{
aTrackInformationAllocator
->FreeSingle((
RE01TrackInformation
*)aTrackInfo);}
105
106
#endif
107
geant4
tree
geant4-10.6-release
examples
extended
runAndEvent
RE01
include
RE01TrackInformation.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:10
using
1.8.2 with
ECCE GitHub integration