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
G4ScintillationTrackInformation.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ScintillationTrackInformation.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
// Author : Valentin Libioulle valentin.libioulle@usherbrooke.ca (3IT - GRAMS)
29
//
30
//---------------------------------------------------------------
31
//
32
// G4ScintillationTrackInformation
33
//
34
// Class Description:
35
//
36
// Concrete class of G4VUserTrackInformation used to store information
37
// linked to the track generated in a scintillation process.
38
//
39
40
#ifndef G4SCINTILLATIONTRACKINFORMATION_H
41
#define G4SCINTILLATIONTRACKINFORMATION_H
42
43
#include "
G4VUserTrackInformation.hh
"
44
45
// Represents the scintillation type used to create the track (opticalphoton).
46
enum
G4ScintillationType
{
Fast
,
Slow
};
47
48
class
G4ScintillationTrackInformation
:
public
G4VUserTrackInformation
49
{
50
public
:
51
52
explicit
G4ScintillationTrackInformation
(
const
G4ScintillationType
& aType =
Slow
);
53
virtual
~G4ScintillationTrackInformation
();
54
55
// Required by G4VUserTrackInformation
56
void
*
operator
new
(size_t);
57
void
operator
delete
(
void
*aScintillationTI);
58
59
// Copy Constructor/instruction
60
G4ScintillationTrackInformation
(
const
G4ScintillationTrackInformation
&);
61
G4ScintillationTrackInformation&
operator=
(
const
G4ScintillationTrackInformation&);
62
63
virtual
void
Print
()
const override
;
64
65
const
G4ScintillationType
&
GetScintillationType
()
const
{
return
scintillationType
;}
66
67
// Static class allowing to check if a G4VUserTrackInformation is a
68
// G4ScintillationTrackInformation and cast it without changing the
69
// pointer of the pointed data.
70
static
G4bool
IsScintillationTrackInformation
(
const
G4VUserTrackInformation
*
const
);
71
static
G4ScintillationTrackInformation*
Cast
(
const
G4VUserTrackInformation
*
const
);
72
73
private
:
74
75
G4ScintillationType
scintillationType
;
76
// String given to G4VUserTrackInformation to identify this concrete class
77
static
const
G4String
BaseType
;
78
};
79
81
// Inline methods
83
84
#include "
G4Allocator.hh
"
85
86
// Forward declaration for the Allocator
87
class
G4ScintillationTrackInformation
;
88
89
#if defined G4EM_ALLOC_EXPORT
90
extern
G4DLLEXPORT
G4Allocator<G4ScintillationTrackInformation>
*&
aScintillationTIAllocator
();
91
#else
92
extern
G4DLLIMPORT
G4Allocator<G4ScintillationTrackInformation>
*&
aScintillationTIAllocator
();
93
#endif
94
95
inline
void
* G4ScintillationTrackInformation::operator
new
(size_t)
96
{
97
if
(!
aScintillationTIAllocator
())
aScintillationTIAllocator
() =
new
G4Allocator<G4ScintillationTrackInformation>
;
98
return
(
void
*)
aScintillationTIAllocator
()->MallocSingle();
99
}
100
101
inline
void
G4ScintillationTrackInformation::operator
delete
(
void
*aScintillationTI)
102
{
103
aScintillationTIAllocator
()->FreeSingle((
G4ScintillationTrackInformation
*) aScintillationTI);
104
}
105
106
#endif // G4SCINTILLATIONTRACKINFORMATION_H
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
xrays
include
G4ScintillationTrackInformation.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:36
using
1.8.2 with
ECCE GitHub integration