Definition at line 479 of file EcalDumpRaw.cc.
References adc_, amplCut_, bx_, dtNoiseDBValidation_cfg::cerr, colorNames, gather_cfg::cout, pyrootRender::da, dtTPAnalyzer_cfg::dataType, dccCh_, dccChStatus_, dccId_, detailedTrigNames, detailedTrigType_, dump_, dumpAdc_, ebmTcc_, ebpTcc_, eeInnerTcc_, eeOuterTcc_, feBx_, fedId_, fedStart_, feL1a_, feRuId_, lumiContext::fill, g, i, iRu_, iSrWord64_, iTcc_, iTccWord64_, iTowerWord64_, l1a_, lastOrbit_, max(), max(), maxTccsPerDcc_, maxTpgsPerTcc_, mgpaGainFactors, min(), nDccs_, nRu_, nTpgs_, nTts_, orbit0_, orbit0Set_, orbit_, alignCSCRings::s, side_, sideOfRu(), simpleTrigType_, srpBx_, srpL1a_, srRange(), tccBlockLen64_, tccId_, tccL1a_, tccType_, towerBlockLength_, tpg_, tpgTag(), trigNames, ttfTag(), and ttsNames.
Referenced by BeautifulSoup.Tag::_invert(), analyze(), and BeautifulSoup.NavigableString::encode().
481 const bool d =
dump_;
504 <<
" FOV: " << ((
data[0] >>4 ) & 0xF)
505 <<
" H: " << ((
data[0] >>3 ) & 0x1);
506 }
else if((dataType>>2)==0){
511 int dccHeaderId = (
data[1] >>24) & 0x3F;
514 if(d)
out <<
"Run #: " << ((
data[1] >>0 ) & 0xFFFFFF)
515 <<
" DCC Err: " << ((
data[0] >>24) & 0xFF)
516 <<
" Evt Len: " << ((
data[0] >>0 ) & 0xFFFFFF);
522 if(d)
out <<
"DCC FOV: " << ((
data[1] >>16) & 0xF)
523 <<
" Side: " <<
side_
526 <<
" Color: " << ((
data[1] >>6 ) & 0x3)
532 if(d)
out <<
"TCC Status ch<4..1>: 0x"
533 << hex << ((data[1]>>8) & 0xFFFF) << dec
534 <<
" SR status: " << ((
data[1] >>4 ) & 0xF)
535 <<
" TZS: " << ((
data[1] >>2 ) & 0x1)
536 <<
" ZS: " << ((
data[1] >>1 ) & 0x1)
537 <<
" SR: " << ((
data[1] >>0 ) & 0x1);
545 if((
unsigned)iDcc0<
nDccs_){
547 if(d)
out <<
" (+" << (int)orbit_-(
int)
lastOrbit_[iDcc0] <<")";
559 int chOffset = (dccHeaderId-4)*14;
576 out <<
"FE CH status:";
577 for(
int i = chOffset;
i < chOffset + 14; ++
i){
584 if(d)
out <<
" bits<63..62>=0 (DCC header) bits<61..56>=" << dccHeaderId
585 <<
"(unknown=>ERROR?)";
587 }
else if((dataType>>1)==3){
599 if(d)
out <<
"LE1: " << ((
data[1] >>28) & 0x1)
600 <<
" LE0: " << ((
data[1] >>27) & 0x1)
601 <<
" N_samples: " << ((
data[1] >>23) & 0x1F)
602 <<
" N_TTs: " <<
nTts_
603 <<
" E1: " << ((
data[1] >>12) & 0x1)
605 <<
" '3': " << ((
data[0] >>29) & 0x7)
606 <<
" E0: " << ((
data[0] >>28) & 0x1)
607 <<
" Bx: " << ((
data[0] >>16) & 0xFFF)
612 }
else if(
nTts_ == 16){
614 }
else if(
nTts_ == 28){
618 cerr <<
"Error in #TT field of TCC block."
619 "This field is normally used to determine type of TCC "
620 "(TCC48 or TCC68). Type of TCC will be deduced from the TCC ID.\n";
628 cerr <<
"TCC ID is also invalid. EB- TCC type will be assumed.\n";
637 out <<
"Too many TCC blocks";
639 out <<
"Too many TPG in one TCC block";
649 << ((
data[1] >>25) & 0x7) <<
" "
651 << setw(3) <<
tpg_[
iTcc_-1][3+tpgOffset] <<
" "
653 << ((
data[1] >>9 ) & 0x7) <<
" "
655 << setw(3) <<
tpg_[
iTcc_-1][2+tpgOffset] <<
" "
656 <<
" '3': " << ((
data[0] >>29) & 0x7) <<
" "
658 << ((
data[0] >>25) & 0x7) <<
" "
662 << ((
data[0] >>9 ) & 0x7) <<
" "
671 }
else if((dataType>>1)==4){
679 if(d)
out <<
"LE1: " << ((
data[1] >>28) & 0x1)
680 <<
" LE0: " << ((
data[1] >>27) & 0x1)
681 <<
" N_SRFs: " << ((
data[1] >>16) & 0x7F)
682 <<
" E1: " << ((
data[1] >>12) & 0x1)
684 <<
" '4': " << ((
data[0] >>29) & 0x7)
685 <<
" E0: " << ((
data[0] >>28) & 0x1)
687 <<
" SRP ID: " << ((
data[0] >>0 ) & 0xFF);
692 out <<
"SRF# " << setw(6) << right <<
srRange(12+ttfOffset) <<
": "
693 << oct << ((data[1] >>16) & 0xFFF) << dec
694 <<
" SRF# " <<
srRange(8+ttfOffset) <<
": "
695 << oct << ((data[1] >>0 ) & 0xFFF) << dec
696 <<
" '4':" << ((
data[0] >>29) & 0x7)
697 <<
" SRF# " <<
srRange(4+ttfOffset) <<
": "
698 << oct << ((data[0] >>16) & 0xFFF) << dec;
703 << oct << ((data[0] >>0 ) & 0xFFF) << dec;
706 if(d)
out <<
"ERROR";
709 }
else if((dataType>>2)==3){
718 l1a = (
data[1] >>0 ) & 0xFFF;
719 bx = (
data[0] >>16) & 0xFFF;
722 <<
" E1: " << ((
data[1] >>12) & 0x1)
724 <<
" '3': " << ((
data[0] >>30) & 0x3)
725 <<
" E0: " << ((
data[0] >>28) & 0x1)
727 <<
" N_samples: " << ((
data[0] >>8 ) & 0x7F)
745 s[0]=(
data[0] >>16) & 0xFFF;
746 g[0]=(
data[0] >>28) & 0x3;
747 s[1]=(
data[1] >>0 ) & 0xFFF;
748 g[1]=(
data[1] >>12) & 0x3;
749 s[2]=(
data[1] >>16) & 0xFFF;
750 g[2]=(
data[1] >>28) & 0x3;
752 if(da)
out <<
"GMF: " << ((
data[0] >>11) & 0x1)
753 <<
" SMF: " << ((
data[0] >>9 ) & 0x1)
754 <<
" M: " << ((
data[0] >>8 ) & 0x1)
755 <<
" XTAL: " << ((
data[0] >>4 ) & 0x7)
756 <<
" STRIP: " << ((
data[0] >>0 ) & 0x7)
757 <<
" " << setw(4) << s[0]
759 <<
" " << setw(4) << s[1]
761 <<
" " << setw(4) << s[2]
766 s[0]=(
data[0] >>0 ) & 0xFFF;
767 g[0]=(
data[0] >>12) & 0x3;
768 s[1]=(
data[0] >>16) & 0xFFF;
769 g[1]=(
data[0] >>28) & 0x3;
770 s[2]=(
data[1] >>0 ) & 0xFFF;
771 g[2]=(
data[1] >>12) & 0x3;
772 s[3]=(
data[1] >>16) & 0xFFF;
773 g[3]=(
data[1] >>28) & 0x3;
775 <<
" " << setw(4) << s[0]
777 <<
" " << setw(4) << s[1]
779 <<
" " << setw(4) << s[2]
781 <<
" " << setw(4) << s[3]
786 if(da)
out <<
"TZS: " << ((
data[1] >>14) & 0x1);
788 s[0]=(
data[0] >>0 ) & 0xFFF;
789 g[0]=(
data[0] >>12) & 0x3;
790 s[1]=(
data[0] >>16) & 0xFFF;
791 g[1]=(
data[0] >>28) & 0x3;
792 s[2]=(
data[1] >>0 ) & 0xFFF;
793 g[2]=(
data[1] >>12) & 0x3 ;
799 if(da)
out <<
" Ampl: " << setw(4) << ampl
801 <<
" BoM:" << setw(2) << (bom0+1)
809 if(da)
out << setw(29) <<
"";
811 if(da)
out <<
" " << setw(4) << s[0]
813 <<
" " << setw(4) << s[1]
815 <<
" " << setw(4) << s[2]
822 if(d)
out <<
"ERROR";
829 }
else if(dataType==eoe){
834 int tts = (
data[0] >>4) & 0xF;
835 if(d)
out <<
"Evt Len.: " << ((
data[1] >>0 ) & 0xFFFFFF)
836 <<
" CRC16: " << ((
data[0] >>16) & 0xFFFF)
837 <<
" Evt Status: " << ((
data[0] >>8 ) & 0xF)
840 <<
" T:" << ((
data[0] >>3) & 0x1);
842 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
std::vector< int > dccChStatus_
static const char *const colorNames[]
static const int eeInnerTcc_
std::vector< int > feRuId_
static const int maxTpgsPerTcc_
char data[epos_bytes_allocation]
static const unsigned nDccs_
static const int maxTccsPerDcc_