Definition at line 450 of file EcalDumpRaw.cc.
References adc_, amplCut_, bx_, benchmark_cfg::cerr, colorNames, pyrootRender::da, dtT0WireCalibration_cfg::dataType, dccCh_, dccId_, detailedTrigNames, detailedTrigType_, dump_, dumpAdc_, ebmTcc_, ebpTcc_, eeInnerTcc_, eeOuterTcc_, feBx_, fedId_, fedStart_, feL1a_, feRuId_, g, i, iRu_, iSrWord64_, iTcc_, iTccWord64_, iTowerWord64_, prof2calltree::l, l1a_, lastOrbit_, lme(), max(), max(), maxTccsPerDcc_, maxTpgsPerTcc_, mgpaGainFactors, min(), nDccs_, nRu_, nTpgs_, nTts_, orbit0_, orbit0Set_, orbit_, asciidump::s, side_, sideOfRu(), simpleTrigType_, srpBx_, srpL1a_, srRange(), tccBlockLen64_, tccId_, tccL1a_, tccType_, towerBlockLength_, tpg_, tpgTag(), trigNames, ttfTag(), and ttsNames.
Referenced by analyze().
452 const bool d =
dump_;
475 <<
" FOV: " << ((
data[0] >>4 ) & 0xF)
476 <<
" H: " << ((
data[0] >>3 ) & 0x1);
477 }
else if((dataType>>2)==0){
482 int dccHeaderId = (
data[1] >>24) & 0x3F;
485 if(d)
out <<
"Run #: " << ((
data[1] >>0 ) & 0xFFFFFF)
486 <<
" DCC Err: " << ((
data[0] >>24) & 0xFF)
487 <<
" Evt Len: " << ((
data[0] >>0 ) & 0xFFFFFF);
493 if(d)
out <<
"DCC FOV: " << ((
data[1] >>16) & 0xF)
494 <<
" Side: " <<
side_
497 <<
" Color: " << ((
data[1] >>6 ) & 0x3)
501 if(dccId_>=10 && dccId_<=46 &&
side_ <= 1){
509 if(d)
out <<
"TCC Status ch<4..1>: 0x"
510 << hex << ((data[1]>>8) & 0xFFFF) << dec
511 <<
" SR status: " << ((
data[1] >>4 ) & 0xF)
512 <<
" TZS: " << ((
data[1] >>2 ) & 0x1)
513 <<
" ZS: " << ((
data[1] >>1 ) & 0x1)
514 <<
" SR: " << ((
data[1] >>0 ) & 0x1);
522 if((
unsigned)iDcc0<
nDccs_){
524 if(d)
out <<
" (+" << (int)orbit_-(
int)
lastOrbit_[iDcc0] <<")";
536 int chOffset = (dccHeaderId-4)*14;
537 if(d)
out <<
"FE CH status:"
538 <<
" #" << 14+chOffset <<
":" << ((
data[1] >>20) & 0xF)
539 <<
" #" << 13+chOffset <<
":" << ((
data[1] >>16) & 0xF)
540 <<
" #" << 12+chOffset <<
":" << ((
data[1] >>12) & 0xF)
541 <<
" #" << 11+chOffset <<
":" << ((
data[1] >>8 ) & 0xF)
542 <<
" #" << 10+chOffset <<
":" << ((
data[1] >>4 ) & 0xF)
543 <<
" #" << 9+chOffset <<
":" << ((
data[1] >>0) & 0xF)
544 <<
" #" << 8+chOffset <<
":" << ((
data[0] >>28) & 0xF)
545 <<
" #" << 7+chOffset <<
":" << ((
data[0] >>24) & 0xF)
546 <<
" #" << 6+chOffset <<
":" << ((
data[0] >>20) & 0xF)
547 <<
" #" << 5+chOffset <<
":" << ((
data[0] >>16) & 0xF)
548 <<
" #" << 4+chOffset <<
":" << ((
data[0] >>12) & 0xF)
549 <<
" #" << 3+chOffset <<
":" << ((
data[0] >>8 ) & 0xF)
550 <<
" #" << 2+chOffset <<
":" << ((
data[0] >>4 ) & 0xF)
551 <<
" #" << 1+chOffset <<
":" << ((
data[0] >>0 ) & 0xF);
555 if(d)
out <<
" bits<63..62>=0 (DCC header) bits<61..56>=" << dccHeaderId
556 <<
"(unknown=>ERROR?)";
558 }
else if((dataType>>1)==3){
570 if(d)
out <<
"LE1: " << ((
data[1] >>28) & 0x1)
571 <<
" LE0: " << ((
data[1] >>27) & 0x1)
572 <<
" N_samples: " << ((
data[1] >>23) & 0x1F)
573 <<
" N_TTs: " <<
nTts_
574 <<
" E1: " << ((
data[1] >>12) & 0x1)
576 <<
" '3': " << ((
data[0] >>29) & 0x7)
577 <<
" E0: " << ((
data[0] >>28) & 0x1)
578 <<
" Bx: " << ((
data[0] >>16) & 0xFFF)
583 }
else if(
nTts_ == 16){
585 }
else if(
nTts_ == 28){
588 cerr <<
"Error in #TT field of TCC block."
589 "This field is normally used to determine type of TCC "
590 "(TCC48 or TCC68). Type of TCC will be deduced from the TCC ID.\n";
598 cerr <<
"TCC ID is also invalid. EB- TCC type will be assumed.\n";
606 out <<
"Too many TCC blocks";
608 out <<
"Too many TPG in one TCC block";
618 << ((
data[1] >>25) & 0x7) <<
" "
620 << setw(3) <<
tpg_[
iTcc_-1][3+tpgOffset] <<
" "
622 << ((
data[1] >>9 ) & 0x7) <<
" "
624 << setw(3) <<
tpg_[
iTcc_-1][2+tpgOffset] <<
" "
625 <<
" '3': " << ((
data[0] >>29) & 0x7) <<
" "
627 << ((
data[0] >>25) & 0x7) <<
" "
631 << ((
data[0] >>9 ) & 0x7) <<
" "
640 }
else if((dataType>>1)==4){
648 if(d)
out <<
"LE1: " << ((
data[1] >>28) & 0x1)
649 <<
" LE0: " << ((
data[1] >>27) & 0x1)
650 <<
" N_SRFs: " << ((
data[1] >>16) & 0x7F)
651 <<
" E1: " << ((
data[1] >>12) & 0x1)
653 <<
" '4': " << ((
data[0] >>29) & 0x7)
654 <<
" E0: " << ((
data[0] >>28) & 0x1)
656 <<
" SRP ID: " << ((
data[0] >>0 ) & 0xFF);
661 out <<
"SRF# " << setw(6) << right <<
srRange(12+ttfOffset) <<
": "
662 << oct << ((data[1] >>16) & 0xFFF) << dec
663 <<
" SRF# " <<
srRange(8+ttfOffset) <<
": "
664 << oct << ((data[1] >>0 ) & 0xFFF) << dec
665 <<
" '4':" << ((
data[0] >>29) & 0x7)
666 <<
" SRF# " <<
srRange(4+ttfOffset) <<
": "
667 << oct << ((data[0] >>16) & 0xFFF) << dec;
672 << oct << ((data[0] >>0 ) & 0xFFF) << dec;
675 if(d)
out <<
"ERROR";
678 }
else if((dataType>>2)==3){
687 l1a = (
data[1] >>0 ) & 0xFFF;
688 bx = (
data[0] >>16) & 0xFFF;
691 <<
" E1: " << ((
data[1] >>12) & 0x1)
693 <<
" '3': " << ((
data[0] >>30) & 0x3)
694 <<
" E0: " << ((
data[0] >>28) & 0x1)
696 <<
" N_samples: " << ((
data[0] >>8 ) & 0x7F)
714 s[0]=(
data[0] >>16) & 0xFFF;
715 g[0]=(
data[0] >>28) & 0x3;
716 s[1]=(
data[1] >>0 ) & 0xFFF;
717 g[1]=(
data[1] >>12) & 0x3;
718 s[2]=(
data[1] >>16) & 0xFFF;
719 g[2]=(
data[1] >>28) & 0x3;
721 if(da)
out <<
"GMF: " << ((
data[0] >>11) & 0x1)
722 <<
" SMF: " << ((
data[0] >>9 ) & 0x1)
723 <<
" M: " << ((
data[0] >>8 ) & 0x1)
724 <<
" XTAL: " << ((
data[0] >>4 ) & 0x7)
725 <<
" STRIP: " << ((
data[0] >>0 ) & 0x7)
726 <<
" " << setw(4) << s[0]
728 <<
" " << setw(4) << s[1]
730 <<
" " << setw(4) << s[2]
735 s[0]=(
data[0] >>0 ) & 0xFFF;
736 g[0]=(
data[0] >>12) & 0x3;
737 s[1]=(
data[0] >>16) & 0xFFF;
738 g[1]=(
data[0] >>28) & 0x3;
739 s[2]=(
data[1] >>0 ) & 0xFFF;
740 g[2]=(
data[1] >>12) & 0x3;
741 s[3]=(
data[1] >>16) & 0xFFF;
742 g[3]=(
data[1] >>28) & 0x3;
744 <<
" " << setw(4) << s[0]
746 <<
" " << setw(4) << s[1]
748 <<
" " << setw(4) << s[2]
750 <<
" " << setw(4) << s[3]
755 if(da)
out <<
"TZS: " << ((
data[1] >>14) & 0x1);
757 s[0]=(
data[0] >>0 ) & 0xFFF;
758 g[0]=(
data[0] >>12) & 0x3;
759 s[1]=(
data[0] >>16) & 0xFFF;
760 g[1]=(
data[0] >>28) & 0x3;
761 s[2]=(
data[1] >>0 ) & 0xFFF;
762 g[2]=(
data[1] >>12) & 0x3 ;
768 if(da)
out <<
" Ampl: " << setw(4) << ampl
770 <<
" BoM:" << setw(2) << (bom0+1)
778 if(da)
out << setw(29) <<
"";
780 if(da)
out <<
" " << setw(4) << s[0]
782 <<
" " << setw(4) << s[1]
784 <<
" " << setw(4) << s[2]
791 if(d)
out <<
"ERROR";
798 }
else if(dataType==eoe){
803 int tts = (
data[0] >>4) & 0xF;
804 if(d)
out <<
"Evt Len.: " << ((
data[1] >>0 ) & 0xFFFFFF)
805 <<
" CRC16: " << ((
data[0] >>16) & 0xFFFF)
806 <<
" Evt Status: " << ((
data[0] >>8 ) & 0xF)
809 <<
" T:" << ((
data[0] >>3) & 0x1);
811 if(d)
out <<
" incorrect 64-bit word type marker (see MSBs)";
static int sideOfRu(int ru1)
std::string tpgTag(int tccType, unsigned iSeq) const
static const unsigned fedStart_
std::string ttfTag(int tccType, unsigned iSeq) const
double max(std::vector< double > a, unsigned &pos)
std::vector< double > adc_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
std::vector< uint32_t > lastOrbit_
std::vector< int > feL1a_
static const char *const ttsNames[]
static const int eeOuterTcc_
const T & max(const T &a, const T &b)
std::vector< int > nTpgs_
static const char *const detailedTrigNames[]
std::vector< std::vector< int > > tpg_
double min(std::vector< double > a)
static const char *const trigNames[]
std::string srRange(int offset) const
int tccType_
type of TCC currently parsed
static const char *const colorNames[]
static const int eeInnerTcc_
std::vector< int > feRuId_
static const int maxTpgsPerTcc_
static int lme(int dccId1, int side)
static const unsigned nDccs_
static const int maxTccsPerDcc_