ATLAS Offline Software
InnerDetector
InDetSimEvent
InDetSimEvent
SiCharge.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// SiCharge.h
7
// Header file for class SiCharge
9
// (c) ATLAS Detector software
11
// Class which contains the bare charge deposited by a single process
13
// Version 1.4 08/06/2001 David Calvet
15
16
#ifndef SITRACKEREVENT_SICHARGE_H
17
#define SITRACKEREVENT_SICHARGE_H
18
19
#include <iostream>
20
21
// Member classes
22
#include "
GeneratorObjects/HepMcParticleLink.h
"
23
24
25
class
SiCharge
{
26
27
public
:
28
enum
Process
{
no
,
track
,
diodeX_Talk
,
cellX_Talk
,
noise
,
extraNoise
,
cut_track
};
29
31
// Public methods:
33
public
:
34
35
// Constructor with parameters:
36
// deposited charge
37
// time of deposition
38
// type of process which produced this charge
39
// Particle Link to the particle generating the Charge
40
SiCharge
(
const
double
&
charge
,
const
double
&
time
,
41
const
Process
&
processType
,
const
HepMcParticleLink
& PL);
42
43
SiCharge
(
const
double
&
charge
,
const
double
&
time
,
44
const
Process
&
processType
);
45
46
// Destructor:
47
~SiCharge
() =
default
;
48
49
// Copy constructor:
50
SiCharge
(
const
SiCharge
&
charge
) =
default
;
51
52
// Assignment operator:
53
SiCharge
&
operator=
(
const
SiCharge
&
charge
) =
default
;
54
55
// Move constructor:
56
SiCharge
(
SiCharge
&&
charge
) noexcept =
default
;
57
58
//Move assignment
59
SiCharge
&
operator=
(
SiCharge
&&
charge
) noexcept =
default
;
60
62
// Const methods:
64
65
// deposited charge:
66
double
charge
()
const
;
67
68
// time of deposition:
69
double
time
()
const
;
70
71
// type of process which produced this charge:
72
Process
processType
()
const
;
73
74
// Barcode of the particle generating the charge:
75
int
trackBarcode
()
const
;
76
77
// Particle Link of the particle generating the charge
78
const
HepMcParticleLink
&
particleLink
()
const
;
79
81
// Non-const methods:
83
84
// add another charge, if the process and track are the same:
85
// returns true if the charge was added
86
bool
add
(
const
SiCharge
&
charge
);
87
89
// Private methods:
91
private
:
92
93
SiCharge
();
94
96
// Private data:
98
private
:
99
double
m_charge
;
// deposited charge
100
double
m_time
;
// time of deposition
101
Process
m_processType
;
// type of process which produced this charge
102
// int m_trackNumber; // track number in case of track process
103
HepMcParticleLink
m_partLink
;
//Replace the track number with a PL
104
};
105
107
// Inline methods:
109
inline
double
SiCharge::charge
()
const
110
{
111
return
m_charge
;
112
}
113
114
inline
double
SiCharge::time
()
const
115
{
116
return
m_time
;
117
}
118
119
inline
SiCharge::Process
SiCharge::processType
()
const
120
{
121
return
m_processType
;
122
}
123
124
inline
int
SiCharge::trackBarcode
()
const
125
{
126
return
m_partLink
.
barcode
();
127
}
128
129
inline
const
HepMcParticleLink
&
SiCharge::particleLink
()
const
130
{
131
return
m_partLink
;
132
}
133
135
// Input/Output stream functions:
137
std::ostream &
operator<<
(std::ostream &
out
,
const
SiCharge
&
charge
);
138
139
#endif // SITRACKEREVENT_SICHARGE_H
HepMcParticleLink.h
SiCharge::operator=
SiCharge & operator=(const SiCharge &charge)=default
SiCharge::charge
double charge() const
Definition:
SiCharge.h:109
SiCharge::m_charge
double m_charge
Definition:
SiCharge.h:99
SiCharge::m_processType
Process m_processType
Definition:
SiCharge.h:101
SiCharge::particleLink
const HepMcParticleLink & particleLink() const
Definition:
SiCharge.h:129
SiCharge::track
@ track
Definition:
SiCharge.h:28
python.AthDsoLogger.out
out
Definition:
AthDsoLogger.py:71
SiCharge
Definition:
SiCharge.h:25
SiCharge::diodeX_Talk
@ diodeX_Talk
Definition:
SiCharge.h:28
SiCharge::trackBarcode
int trackBarcode() const
Definition:
SiCharge.h:124
SiCharge::SiCharge
SiCharge(SiCharge &&charge) noexcept=default
HepMcParticleLink::barcode
int barcode() const
Return the barcode of the target particle.
Definition:
HepMcParticleLink.cxx:318
SiCharge::extraNoise
@ extraNoise
Definition:
SiCharge.h:28
HepMcParticleLink
a link optimized in size for a GenParticle in a McEventCollection
Definition:
HepMcParticleLink.h:72
SiCharge::noise
@ noise
Definition:
SiCharge.h:28
SiCharge::processType
Process processType() const
Definition:
SiCharge.h:119
SiCharge::m_time
double m_time
Definition:
SiCharge.h:100
SiCharge::operator=
SiCharge & operator=(SiCharge &&charge) noexcept=default
SiCharge::SiCharge
SiCharge(const SiCharge &charge)=default
SiCharge::SiCharge
SiCharge()
SiCharge::add
bool add(const SiCharge &charge)
Definition:
SiCharge.cxx:35
SiCharge::m_partLink
HepMcParticleLink m_partLink
Definition:
SiCharge.h:103
charge
double charge(const T &p)
Definition:
AtlasPID.h:756
SiCharge::Process
Process
Definition:
SiCharge.h:28
SiCharge::time
double time() const
Definition:
SiCharge.h:114
SiCharge::cut_track
@ cut_track
Definition:
SiCharge.h:28
operator<<
std::ostream & operator<<(std::ostream &out, const SiCharge &charge)
Definition:
SiCharge.cxx:51
SiCharge::no
@ no
Definition:
SiCharge.h:28
SiCharge::~SiCharge
~SiCharge()=default
SiCharge::cellX_Talk
@ cellX_Talk
Definition:
SiCharge.h:28
Generated on Sun Dec 22 2024 21:18:06 for ATLAS Offline Software by
1.8.18