EIC Software
Reference for
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
oncsSub_idsis3300.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file oncsSub_idsis3300.cc
1
#include "
oncsSub_idsis3300.h
"
2
#include <cstring>
3
4
oncsSub_idsis3300::oncsSub_idsis3300
(
subevtdata_ptr
data
)
5
:
oncsSubevent_w4
(data)
6
{
7
samples
= 0;
8
wraparound
= 0;
9
10
}
11
12
int
*
oncsSub_idsis3300::decode
(
int
*nwout)
13
{
14
int
*
p
;
15
16
17
int
i,j;
18
int
*SubeventData = &
SubeventHdr
->
data
;
19
20
samples
= (*SubeventData) & 0xffff;
21
wraparound
= (*SubeventData) >> 16;
22
23
// cout << "Samples: " << samples << std::endl;
24
25
p =
new
int
[
samples
*8];
26
j = 0;
27
for
( i = 0; i<
samples
*4; i++)
28
{
29
p[j++] = (SubeventData[i+1] >> 16) & 0x3fff;
30
p[j++] = SubeventData[i+1] & 0x3fff;
31
}
32
33
*nwout = j-1;
34
return
p
;
35
}
36
37
int
oncsSub_idsis3300::iValue
(
const
int
ch ,
const
int
s
)
38
{
39
40
if
(
decoded_data1
== 0 )
decoded_data1
=
decode
(&
data1_length
);
41
42
if
( ch < 0 || ch >7 )
return
0;
43
if
( s < 0 || s >=
samples
)
return
0;
44
45
return
decoded_data1
[ch + 8*
s
];
46
47
}
48
49
int
oncsSub_idsis3300::iValue
(
const
int
,
const
char
*what)
50
{
51
52
if
(
decoded_data1
== 0 )
decoded_data1
=
decode
(&
data1_length
);
53
54
if
( strcmp(what,
"SAMPLES"
) == 0 )
55
{
56
return
samples
;
57
}
58
// see if this is a "wraparound" event, where the samples cross
59
// over the end of the memory and continue a low memory. This is
60
// a debugging function since we think there might be a problem with those events.
61
if
( strcmp(what,
"WRAPAROUND"
) == 0 )
62
{
63
return
wraparound
;
64
}
65
66
return
0;
67
68
}
69
70
71
void
oncsSub_idsis3300::dump
(
OSTREAM
& os )
72
{
73
int
i,j;
74
75
os <<
"Samples: "
<<
iValue
(0,
"SAMPLES"
);
76
if
(
iValue
(0,
"WRAPAROUND"
) )
77
{
78
os <<
" - wrap-around reaodut"
;
79
}
80
os << std::endl;
81
82
for
( i = 0; i <
iValue
(0,
"SAMPLES"
); i++)
83
{
84
85
os << std::setw(6) << i <<
" | "
;
86
for
( j = 0; j < 8; j++)
87
{
88
os << std::setw(8) <<
iValue
(j,i) <<
" "
;
89
}
90
os << std::endl;
91
}
92
os << std::endl;
93
}
94
online_distribution
blob
master
newbasic
oncsSub_idsis3300.cc
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:55
using
1.8.2 with
EIC GitHub integration