-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTrReadout.cc
More file actions
63 lines (48 loc) · 1.36 KB
/
TrReadout.cc
File metadata and controls
63 lines (48 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "TrReadout.hh"
TrReadout::TrReadout() {}
TrSpillData* TrReadout::readout() {
for (unsigned int vlsb=0; vlsb<vlsbs.size(); ++vlsb) {
vlsbs[vlsb].getBankLengths();
TrSpillData boardSpill = compress(vlsbs[vlsb].readAllBanks(), vlsbs[vlsb].getTotalDataVolume(), vlsbs[vlsb].getID());
}
return ¤tSpill;
}
TrSpillData* TrReadout::readout(TrGenerator generator) {
currentSpill = generator.generateSimulated();
return ¤tSpill;
}
TrSpillData TrReadout::compress(int *dataPointer, int dataVolume, int id) {
TrSpillData spill = TrSpillData();
int channel = 0;
for (int word=0; word < dataVolume; ++word) {
int adc = ( (*dataPointer) & 0xFF );
int bank = int(channel / 128);
int realChannel = channel % 128;
TrHistogram *histogram = spill.getHistogram(id, bank, realChannel);
histogram->fill(adc);
delete histogram;
++channel;
if (channel == 512) channel = 0;
++dataPointer;
}
return spill;
}
void TrReadout::setDataMode() {
for (unsigned int vlsb=0; vlsb<vlsbs.size(); ++vlsb) {
vlsbs[vlsb].setDataMode();
}
}
void TrReadout::setReadoutMode() {
for (unsigned int vlsb=0; vlsb<vlsbs.size(); ++vlsb) {
vlsbs[vlsb].setReadoutMode();
}
}
void TrReadout::enableTrigger() {
master.enableTrigger();
}
void TrReadout::disableTrigger() {
master.disableTrigger();
}
int TrReadout::pollSpillDone() {
return master.getSpillDone();
}