- while (reader.Next()) {
- if ((iPrintedSlice!=-1 && iLastTime!=reader.GetTime()+1 && iLastTime!=reader.GetTime()-1) ||
- (iPrintedPad!=-1 && iPrintedPad!=reader.GetPad()) ||
- (iPrintedRow!=-1 && iPrintedRow!=reader.GetRow())) {
- dump << endl;
- }
- if (iPrintedSlice!=slice || iPrintedPart!=part) {
- iPrintedSlice=slice;
- iPrintedPart=part;
- dump << "====================================================================" << endl;
- dump << " Slice: " << iPrintedSlice << " Partition: " << iPrintedPart << endl;
- iPrintedRow=-1;
+ if (fbBulkMode) {
+ while (pReader->NextChannel()) {
+ if (PrintHeaders(slice, iPrintedSlice, part, iPrintedPart, pReader, iPrintedRow, iPrintedPad, dump)) {
+ iLastTime=-1;
+ }
+ while (pReader->NextBunch()) {
+ int bunchLength=pReader->GetBunchSize();
+
+ // Kenneth: 20-04-09. The following if have been added because of inconsistency in the 40 bit decoder and the 32 bit decoder.
+ // GetSignals() in the 40 bit decoder returns an array of UInt_t while the 32 bit one returns UShort_t
+ if(f32BitFormat == kTRUE){
+ const UShort_t* bunchData=pReader->GetSignalsShort();
+
+ // bunch data is printed in 'reverse' order in order to produce
+ // the same output as in stream reading mode
+ dump << " Time " << pReader->GetTime()+bunchLength-1 << ": ";
+ for (int bin=bunchLength-1; bin>=0; bin--) {
+ dump << " " << bunchData[bin];
+ }
+ dump << " -> Time: " << pReader->GetTime() << endl;
+ }
+ else{
+ const UInt_t* bunchData=pReader->GetSignals();
+ dump << " Time " << pReader->GetTime()+bunchLength-1 << ": ";
+ for (int bin=0; bin<bunchLength; bin++) {
+ dump << " " << bunchData[bin];
+ }
+ dump << " -> Time: " << pReader->GetTime() << endl;
+ }
+ }