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
MarshaledExN04MuonHit.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file MarshaledExN04MuonHit.h
1
// This file was generated automatically by marshalgen.
2
3
#ifndef MarshaledExN04MuonHit_H
4
#define MarshaledExN04MuonHit_H
5
6
7
#include <
ExN04MuonHit.hh
>
8
//MSH_include_begin
9
#include "
MarshaledG4String.h
"
10
//MSH_include_end
11
12
#include <stdio.h>
13
#include <string.h>
14
#include "
MarshaledObj.h
"
15
16
class
MarshaledExN04MuonHit
;
17
18
class
ShadowedMarshaledExN04MuonHit
:
public
ExN04MuonHit
{
19
friend
class
MarshaledExN04MuonHit
;
20
};
21
22
class
MarshaledExN04MuonHit
:
public
MarshaledObj
{
23
public
:
24
ExN04MuonHit
*
param
;
25
ShadowedMarshaledExN04MuonHit
*
Shadowed_param
;
26
public
:
27
28
29
// Function implementations
30
31
MarshaledExN04MuonHit
(
ExN04MuonHit
* objptr) :
MarshaledObj
() {
32
msh_isUnmarshalDone
=
false
;
33
this->
param
= objptr;
34
this->
Shadowed_param
= (
ShadowedMarshaledExN04MuonHit
*)this->
param
;
35
if
(objptr == NULL)
36
return
;
37
38
marshal1
();
39
marshal2
();
40
}
41
42
MarshaledExN04MuonHit
(
void
*buf,
char
chIsUnmarshaling =
'u'
)
43
:
MarshaledObj
(buf, chIsUnmarshaling) {
44
msh_isUnmarshalDone
=
false
;
45
}
46
47
~MarshaledExN04MuonHit
() {
48
//if(msh_isUnmarshalDone && this->param != NULL) {
49
//delete this->param;
50
//}
51
}
52
53
ExN04MuonHit
*
unmarshal
() {
54
//We don't want to unmarshal the buffer is empty.
55
if
(
msh_size
<=
MSH_HEADER_SIZE
) {
56
//This is buggy, we can't always assume that
57
//obj == NULL <==> List is empty.
58
return
NULL;
59
}
else
{
60
{
61
param
=
new
ExN04MuonHit
();
62
}
63
this->
Shadowed_param
= (
ShadowedMarshaledExN04MuonHit
*)this->
param
;
64
this->
msh_isUnmarshalDone
=
true
;
65
unmarshal1
();
66
unmarshal2
();
67
return
this->
param
;
68
}
69
}
70
71
void
unmarshalTo
(
ExN04MuonHit
* obj) {
72
//We don't want to unmarshal the buffer is empty.
73
if
(
msh_size
<=
MSH_HEADER_SIZE
) {
74
//This is buggy, we can't always assume that
75
//obj == NULL <==> List is empty.
76
return
;
77
}
else
{
78
this->
param
= obj;
79
this->
Shadowed_param
= (
ShadowedMarshaledExN04MuonHit
*)this->
param
;
80
this->
msh_isUnmarshalDone
=
true
;
81
unmarshal1
();
82
unmarshal2
();
83
}
84
}
85
86
void
marshal1
() {
87
//declare field_size to be the size of this field
88
int
msh_currentSize = 0;
89
if
(
isUnmarshaling
())
90
throw
"Tried to marshal in obj marked isUnmarshaling == true"
;
91
92
//Copy the sizespec into msh_currentSize here:
93
{
94
msh_currentSize =
sizeof
(
G4double
);
95
96
}
97
98
//Increase the size of buffer if needed
99
EXTEND_BUFFER
(msh_currentSize +
sizeof
(
int
) +
sizeof
(
int
));
100
// 4 bytes for the total size of field, 4 bytes for the number of
101
// elements in the array (in the case of array marshaling)
102
//Mark the beginning position for this field, will write the total size
103
//of this field here later
104
msh_field_begin
=
msh_cursor
;
105
106
//Advance cursor of distance = sizeof(int)
107
msh_cursor
+=
sizeof
(
int
);
108
109
//Now just copy "get" functions here
110
{
111
G4double
anElement;
112
anElement =
param
->
GetEdep
();
113
memcpy(
msh_cursor
, &anElement,
sizeof
(
G4double
));
114
}
115
//Now advance the cursor
116
msh_cursor
+= msh_currentSize;
117
//Now set the size of this field
118
int
tmp
;
//use memcpy instead of *(int*)... =... to prevent bus error
119
tmp = (
msh_cursor
-
msh_field_begin
) -
sizeof
(
int
);
120
memcpy(
msh_field_begin
, &tmp,
sizeof
(
int
));
121
122
//Now set msh_size
123
msh_size
=
msh_cursor
-
msh_buffer
;
124
MSH_SET_TOTALSIZE
(
msh_size
);
MSH_SET_TYPECHOICE
(
msh_typechoice
);
125
}
126
127
void
unmarshal1
() {
128
//declare currentSize to be the size of this field
129
int
msh_currentSize = 0;
130
//copy the size of the current field into currentSize
131
memcpy(&msh_currentSize,
msh_cursor
,
sizeof
(
int
));
132
msh_cursor
+=
sizeof
(
int
);
133
//Now copy the setspec here
134
{
135
G4double
anElement;
136
memcpy(&anElement,
msh_cursor
,
sizeof
(
G4double
));
137
param
->
SetEdep
(anElement);
138
139
}
140
msh_cursor
+= msh_currentSize;
141
}
142
143
void
marshal2
() {
144
//declare field_size to be the size of this field
145
int
msh_currentSize = 0;
146
if
(
isUnmarshaling
())
147
throw
"Tried to marshal in obj marked isUnmarshaling == true"
;
148
149
//Copy the sizespec into msh_currentSize here:
150
{
151
msh_currentSize =
sizeof
(
G4ThreeVector
);
152
153
}
154
155
//Increase the size of buffer if needed
156
EXTEND_BUFFER
(msh_currentSize +
sizeof
(
int
) +
sizeof
(
int
));
157
// 4 bytes for the total size of field, 4 bytes for the number of
158
// elements in the array (in the case of array marshaling)
159
//Mark the beginning position for this field, will write the total size
160
//of this field here later
161
msh_field_begin
=
msh_cursor
;
162
163
//Advance cursor of distance = sizeof(int)
164
msh_cursor
+=
sizeof
(
int
);
165
166
//Now just copy "get" functions here
167
{
168
G4ThreeVector
anElement;
169
anElement =
param
->
GetPos
();
170
memcpy(
msh_cursor
, &anElement,
sizeof
(
G4ThreeVector
));
171
}
172
//Now advance the cursor
173
msh_cursor
+= msh_currentSize;
174
//Now set the size of this field
175
int
tmp
;
//use memcpy instead of *(int*)... =... to prevent bus error
176
tmp = (
msh_cursor
-
msh_field_begin
) -
sizeof
(
int
);
177
memcpy(
msh_field_begin
, &tmp,
sizeof
(
int
));
178
179
//Now set msh_size
180
msh_size
=
msh_cursor
-
msh_buffer
;
181
MSH_SET_TOTALSIZE
(
msh_size
);
MSH_SET_TYPECHOICE
(
msh_typechoice
);
182
}
183
184
void
unmarshal2
() {
185
//declare currentSize to be the size of this field
186
int
msh_currentSize = 0;
187
//copy the size of the current field into currentSize
188
memcpy(&msh_currentSize,
msh_cursor
,
sizeof
(
int
));
189
msh_cursor
+=
sizeof
(
int
);
190
//Now copy the setspec here
191
{
192
G4ThreeVector
anElement;
193
memcpy(&anElement,
msh_cursor
,
sizeof
(
G4ThreeVector
));
194
param
->
SetPos
(anElement);
195
196
}
197
msh_cursor
+= msh_currentSize;
198
}
199
200
};
201
#endif
202
geant4
tree
geant4-10.6-release
examples
extended
parallel
TopC
ParN04
include
MarshaledExN04MuonHit.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:09
using
1.8.2 with
ECCE GitHub integration