#include "AliPHOSTRURawReader.h"
#include "AliCaloRawStreamV3.h"
ClassImp(AliPHOSTRURawReader)
AliPHOSTRURawReader::AliPHOSTRURawReader()
: TObject(),
fSignals(),
fFlags(),
fFlags2x2(),
fActive(false),
fHasSignal(false),
fActiveTime(),
fHasSignalTime(),
fUse4x4Flags(false)
{
for(Int_t row = 0; row < fgkN2x2XPrTRURow; ++row) {
for(Int_t branch = 0; branch < fgkN2x2ZPrBranch; ++branch) {
for(Int_t timeBin = 0; timeBin < fgkNTimeBins; ++timeBin) {
fSignals[row][branch][timeBin] = fgkDefaultSignalValue;
fFlags2x2[row][branch][timeBin] = kFALSE;
}
}
}
for(Int_t row = 0; row < fgkN4x4XPrTRURow; ++row){
for(Int_t branch = 0; branch < fgkN4x4ZPrBranch; ++branch){
for(Int_t timeBin = 0; timeBin < fgkNTimeBins; ++timeBin){
fFlags[row][branch][timeBin] = kFALSE;
}
}
}
for(Int_t timeBin = 0; timeBin < fgkNTimeBins; ++timeBin){
fActiveTime[timeBin] = kFALSE;
fHasSignalTime[timeBin] = kFALSE;
}
}
AliPHOSTRURawReader::~AliPHOSTRURawReader()
{
}
void AliPHOSTRURawReader::ReadFromStream(AliCaloRawStreamV3* rawStream)
{
const UShort_t * const signal = rawStream->GetSignals();
const Int_t signalLength = rawStream->GetBunchLength();
const Int_t channelIndex = rawStream->GetColumn();
fActive = kTRUE;
Int_t timeBin = rawStream->GetStartTimeBin();
if(channelIndex < fgkNReadoutChannels){
fHasSignal = kTRUE;
const Int_t xBin = 7 - channelIndex % 8;
const Int_t zBin = 13 - channelIndex / 8;
for(Int_t i = 0; i < signalLength; i++){
fSignals[xBin][zBin][timeBin] = signal[i];
fActiveTime[timeBin] = kTRUE;
fHasSignalTime[timeBin] = kTRUE;
timeBin--;
}
} else {
Int_t channel, xBin, zBin;
for(Int_t i = 0; i < signalLength; i++){
fActiveTime[timeBin] = kTRUE;
if(channelIndex == fgkFinalProductionChannel){
if( (signal[i] & ( 1 << 2 )) > 0 ){
fUse4x4Flags = kTRUE;
}
}
for(Int_t bitIndex = 0; bitIndex < fgkWordLength; bitIndex++){
channel = (channelIndex - fgkNReadoutChannels) * fgkWordLength + bitIndex;
if(channel < fgkNReadoutChannels){
xBin = 7 - channel % 8;
zBin = 13 - channel / 8;
if( (signal[i] & ( 1 << bitIndex )) > 0 ){
fFlags2x2[xBin][zBin][timeBin] = kTRUE;
}
}
if(channel < fgkN4x4TriggerFlags){
xBin = 6 - channel % 7;
zBin = 12 - channel / 7;
if( (signal[i] & ( 1 << bitIndex )) > 0 ){
fFlags[xBin][zBin][timeBin] = kTRUE;
}
}
}
timeBin--;
}
}
}
void AliPHOSTRURawReader::Reset()
{
if( ! fActive )
return;
for(Int_t timeBin = 0; timeBin < fgkNTimeBins; ++timeBin) {
if( fActiveTime[timeBin] ) {
for(Int_t xIdx = 0; xIdx < fgkN2x2XPrTRURow; ++xIdx) {
for(Int_t zIdx = 0; zIdx < fgkN2x2ZPrBranch; ++zIdx) {
fSignals[xIdx][zIdx][timeBin] = fgkDefaultSignalValue;
fFlags2x2[xIdx][zIdx][timeBin] = kFALSE;
}
}
for(Int_t xIdx = 0; xIdx < fgkN4x4XPrTRURow; ++xIdx) {
for(Int_t zIdx = 0; zIdx < fgkN4x4ZPrBranch; ++zIdx) {
fFlags[xIdx][zIdx][timeBin] = false;
}
}
}
fActiveTime[timeBin] = false;
fHasSignalTime[timeBin] = false;
}
fActive = false;
fHasSignal = false;
}
Bool_t AliPHOSTRURawReader::GetTriggerFlag(Int_t xIdx, Int_t zIdx, Int_t timeBin) const {
if(fUse4x4Flags){
return fFlags[xIdx][zIdx][timeBin];
}
return fFlags2x2[xIdx][zIdx][timeBin];
}
AliPHOSTRURawReader.cxx:1 AliPHOSTRURawReader.cxx:2 AliPHOSTRURawReader.cxx:3 AliPHOSTRURawReader.cxx:4 AliPHOSTRURawReader.cxx:5 AliPHOSTRURawReader.cxx:6 AliPHOSTRURawReader.cxx:7 AliPHOSTRURawReader.cxx:8 AliPHOSTRURawReader.cxx:9 AliPHOSTRURawReader.cxx:10 AliPHOSTRURawReader.cxx:11 AliPHOSTRURawReader.cxx:12 AliPHOSTRURawReader.cxx:13 AliPHOSTRURawReader.cxx:14 AliPHOSTRURawReader.cxx:15 AliPHOSTRURawReader.cxx:16 AliPHOSTRURawReader.cxx:17 AliPHOSTRURawReader.cxx:18 AliPHOSTRURawReader.cxx:19 AliPHOSTRURawReader.cxx:20 AliPHOSTRURawReader.cxx:21 AliPHOSTRURawReader.cxx:22 AliPHOSTRURawReader.cxx:23 AliPHOSTRURawReader.cxx:24 AliPHOSTRURawReader.cxx:25 AliPHOSTRURawReader.cxx:26 AliPHOSTRURawReader.cxx:27 AliPHOSTRURawReader.cxx:28 AliPHOSTRURawReader.cxx:29 AliPHOSTRURawReader.cxx:30 AliPHOSTRURawReader.cxx:31 AliPHOSTRURawReader.cxx:32 AliPHOSTRURawReader.cxx:33 AliPHOSTRURawReader.cxx:34 AliPHOSTRURawReader.cxx:35 AliPHOSTRURawReader.cxx:36 AliPHOSTRURawReader.cxx:37 AliPHOSTRURawReader.cxx:38 AliPHOSTRURawReader.cxx:39 AliPHOSTRURawReader.cxx:40 AliPHOSTRURawReader.cxx:41 AliPHOSTRURawReader.cxx:42 AliPHOSTRURawReader.cxx:43 AliPHOSTRURawReader.cxx:44 AliPHOSTRURawReader.cxx:45 AliPHOSTRURawReader.cxx:46 AliPHOSTRURawReader.cxx:47 AliPHOSTRURawReader.cxx:48 AliPHOSTRURawReader.cxx:49 AliPHOSTRURawReader.cxx:50 AliPHOSTRURawReader.cxx:51 AliPHOSTRURawReader.cxx:52 AliPHOSTRURawReader.cxx:53 AliPHOSTRURawReader.cxx:54 AliPHOSTRURawReader.cxx:55 AliPHOSTRURawReader.cxx:56 AliPHOSTRURawReader.cxx:57 AliPHOSTRURawReader.cxx:58 AliPHOSTRURawReader.cxx:59 AliPHOSTRURawReader.cxx:60 AliPHOSTRURawReader.cxx:61 AliPHOSTRURawReader.cxx:62 AliPHOSTRURawReader.cxx:63 AliPHOSTRURawReader.cxx:64 AliPHOSTRURawReader.cxx:65 AliPHOSTRURawReader.cxx:66 AliPHOSTRURawReader.cxx:67 AliPHOSTRURawReader.cxx:68 AliPHOSTRURawReader.cxx:69 AliPHOSTRURawReader.cxx:70 AliPHOSTRURawReader.cxx:71 AliPHOSTRURawReader.cxx:72 AliPHOSTRURawReader.cxx:73 AliPHOSTRURawReader.cxx:74 AliPHOSTRURawReader.cxx:75 AliPHOSTRURawReader.cxx:76 AliPHOSTRURawReader.cxx:77 AliPHOSTRURawReader.cxx:78 AliPHOSTRURawReader.cxx:79 AliPHOSTRURawReader.cxx:80 AliPHOSTRURawReader.cxx:81 AliPHOSTRURawReader.cxx:82 AliPHOSTRURawReader.cxx:83 AliPHOSTRURawReader.cxx:84 AliPHOSTRURawReader.cxx:85 AliPHOSTRURawReader.cxx:86 AliPHOSTRURawReader.cxx:87 AliPHOSTRURawReader.cxx:88 AliPHOSTRURawReader.cxx:89 AliPHOSTRURawReader.cxx:90 AliPHOSTRURawReader.cxx:91 AliPHOSTRURawReader.cxx:92 AliPHOSTRURawReader.cxx:93 AliPHOSTRURawReader.cxx:94 AliPHOSTRURawReader.cxx:95 AliPHOSTRURawReader.cxx:96 AliPHOSTRURawReader.cxx:97 AliPHOSTRURawReader.cxx:98 AliPHOSTRURawReader.cxx:99 AliPHOSTRURawReader.cxx:100 AliPHOSTRURawReader.cxx:101 AliPHOSTRURawReader.cxx:102 AliPHOSTRURawReader.cxx:103 AliPHOSTRURawReader.cxx:104 AliPHOSTRURawReader.cxx:105 AliPHOSTRURawReader.cxx:106 AliPHOSTRURawReader.cxx:107 AliPHOSTRURawReader.cxx:108 AliPHOSTRURawReader.cxx:109 AliPHOSTRURawReader.cxx:110 AliPHOSTRURawReader.cxx:111 AliPHOSTRURawReader.cxx:112 AliPHOSTRURawReader.cxx:113 AliPHOSTRURawReader.cxx:114 AliPHOSTRURawReader.cxx:115 AliPHOSTRURawReader.cxx:116 AliPHOSTRURawReader.cxx:117 AliPHOSTRURawReader.cxx:118 AliPHOSTRURawReader.cxx:119 AliPHOSTRURawReader.cxx:120 AliPHOSTRURawReader.cxx:121 AliPHOSTRURawReader.cxx:122 AliPHOSTRURawReader.cxx:123 AliPHOSTRURawReader.cxx:124 AliPHOSTRURawReader.cxx:125 AliPHOSTRURawReader.cxx:126 AliPHOSTRURawReader.cxx:127 AliPHOSTRURawReader.cxx:128 AliPHOSTRURawReader.cxx:129 AliPHOSTRURawReader.cxx:130 AliPHOSTRURawReader.cxx:131 AliPHOSTRURawReader.cxx:132 AliPHOSTRURawReader.cxx:133 AliPHOSTRURawReader.cxx:134 AliPHOSTRURawReader.cxx:135 AliPHOSTRURawReader.cxx:136 AliPHOSTRURawReader.cxx:137 AliPHOSTRURawReader.cxx:138 AliPHOSTRURawReader.cxx:139 AliPHOSTRURawReader.cxx:140 AliPHOSTRURawReader.cxx:141 AliPHOSTRURawReader.cxx:142 AliPHOSTRURawReader.cxx:143 AliPHOSTRURawReader.cxx:144 AliPHOSTRURawReader.cxx:145 AliPHOSTRURawReader.cxx:146 AliPHOSTRURawReader.cxx:147 AliPHOSTRURawReader.cxx:148 AliPHOSTRURawReader.cxx:149 AliPHOSTRURawReader.cxx:150 AliPHOSTRURawReader.cxx:151 AliPHOSTRURawReader.cxx:152 AliPHOSTRURawReader.cxx:153 AliPHOSTRURawReader.cxx:154 AliPHOSTRURawReader.cxx:155 AliPHOSTRURawReader.cxx:156 AliPHOSTRURawReader.cxx:157 AliPHOSTRURawReader.cxx:158 AliPHOSTRURawReader.cxx:159 AliPHOSTRURawReader.cxx:160 AliPHOSTRURawReader.cxx:161 AliPHOSTRURawReader.cxx:162 AliPHOSTRURawReader.cxx:163 AliPHOSTRURawReader.cxx:164 AliPHOSTRURawReader.cxx:165 AliPHOSTRURawReader.cxx:166 AliPHOSTRURawReader.cxx:167 AliPHOSTRURawReader.cxx:168 AliPHOSTRURawReader.cxx:169 AliPHOSTRURawReader.cxx:170 AliPHOSTRURawReader.cxx:171 AliPHOSTRURawReader.cxx:172 AliPHOSTRURawReader.cxx:173 AliPHOSTRURawReader.cxx:174 AliPHOSTRURawReader.cxx:175 AliPHOSTRURawReader.cxx:176 AliPHOSTRURawReader.cxx:177 AliPHOSTRURawReader.cxx:178 AliPHOSTRURawReader.cxx:179 AliPHOSTRURawReader.cxx:180 AliPHOSTRURawReader.cxx:181 AliPHOSTRURawReader.cxx:182 AliPHOSTRURawReader.cxx:183 AliPHOSTRURawReader.cxx:184 AliPHOSTRURawReader.cxx:185 AliPHOSTRURawReader.cxx:186 AliPHOSTRURawReader.cxx:187 AliPHOSTRURawReader.cxx:188 AliPHOSTRURawReader.cxx:189 AliPHOSTRURawReader.cxx:190 AliPHOSTRURawReader.cxx:191 AliPHOSTRURawReader.cxx:192 AliPHOSTRURawReader.cxx:193 AliPHOSTRURawReader.cxx:194 AliPHOSTRURawReader.cxx:195 AliPHOSTRURawReader.cxx:196 AliPHOSTRURawReader.cxx:197 AliPHOSTRURawReader.cxx:198 AliPHOSTRURawReader.cxx:199 AliPHOSTRURawReader.cxx:200 AliPHOSTRURawReader.cxx:201 AliPHOSTRURawReader.cxx:202 AliPHOSTRURawReader.cxx:203 AliPHOSTRURawReader.cxx:204 AliPHOSTRURawReader.cxx:205 AliPHOSTRURawReader.cxx:206 AliPHOSTRURawReader.cxx:207 AliPHOSTRURawReader.cxx:208 AliPHOSTRURawReader.cxx:209 AliPHOSTRURawReader.cxx:210 AliPHOSTRURawReader.cxx:211 AliPHOSTRURawReader.cxx:212 AliPHOSTRURawReader.cxx:213 AliPHOSTRURawReader.cxx:214 AliPHOSTRURawReader.cxx:215 AliPHOSTRURawReader.cxx:216 AliPHOSTRURawReader.cxx:217 AliPHOSTRURawReader.cxx:218 AliPHOSTRURawReader.cxx:219 AliPHOSTRURawReader.cxx:220 AliPHOSTRURawReader.cxx:221 AliPHOSTRURawReader.cxx:222 AliPHOSTRURawReader.cxx:223 AliPHOSTRURawReader.cxx:224 AliPHOSTRURawReader.cxx:225 AliPHOSTRURawReader.cxx:226 AliPHOSTRURawReader.cxx:227