15 unpacker_(u), mapper_(m), headerUnpacking_(hU), srpUnpacking_(srpU), tccUnpacking_(tccU), feUnpacking_(feU),memUnpacking_(memU), forceToKeepFRdata_(forceToKeepFRdata)
22 for(
int feChannel=1; feChannel <= 70; feChannel++) {
feChStatus_.push_back(0);
hlt_.push_back(1);}
23 for(
int tccChannel=1; tccChannel <= 4 ; tccChannel++){
tccChStatus_.push_back(0);}
26 for(
int feChannel=1; feChannel <= 70; feChannel++) {
feBx_.push_back(-1);
feLv1_.push_back(-1); }
27 for(
int tccChannel=1; tccChannel <= 4 ; tccChannel++){
tccBx_.push_back(-1);
tccLv1_.push_back(-1);}
37 for(
int feChannel=1; feChannel <= 70; feChannel++) {
feBx_[feChannel-1]=-1;
feLv1_[feChannel-1]=-1; }
38 for(
int tccChannel=1; tccChannel <= 4 ; tccChannel++){
tccBx_[tccChannel-1]=-1;
tccLv1_[tccChannel-1]=-1;}
63 const unsigned int prev_dwToEnd =
dwToEnd_;
66 const uint32_t lv1 = ((
l1_ - 1) & 0xFFF);
67 const uint32_t
bx = (
bx_ != 3564) ?
bx_ : 0;
71 const uint64_t s_hi = 0xC0000000 + lv1;
72 const uint64_t s_lo = 0xC0000000 + (bx << 16) + (ts << 8);
74 const uint64_t sign = (s_hi << 32) + s_lo;
75 const uint64_t mask = 0xC0001FFFDFFF7F00;
91 if ((*
data_ & mask) == sign) {
92 const unsigned int next_tower_id = (*data_) & 0xFF;
94 if (next_tower_id <= current_tower_id)
continue;
102 return next_tower_id;
142 theDCCheader.
setId(dccId);
170 theRuntypeDecoder.
Decode(
triggerType_, DCCdetTriggerType , DCCruntype, &theDCCheader);
173 (*dccHeaders_)->push_back(theDCCheader);
178 o<<
"\n Unpacked Info for DCC Event Class"
179 <<
"\n DW1 ============================="
184 <<
"\n DW2 ============================="
188 <<
"\n DW3 ============================="
194 std::vector<short>::iterator it;
197 o<<
"\n TCCStatus#"<<
i<<
" "<<(*it);
202 if(!(
i%14)){ o<<
"\n DW"<<(k+3)<<
" ============================="; k++; }
203 o<<
"\n FEStatus#"<<
i<<
" "<<(*it);
222 const unsigned int bx,
223 const unsigned int dccL1,
224 const unsigned int l1,
226 const unsigned int fov)
230 if ( fov < 1 )
return true;
238 const bool bxSynced =
239 ((type ==
FE_MEM) && (bx == 0) && (dccBx == 3564)) ||
240 ((type ==
FE_MEM) && (bx == dccBx) && (dccBx != 3564)) ||
241 ((type ==
TCC_SRP) && (bx == dccBx));
249 const bool l1Synced =
250 ((type ==
FE_MEM) && (l1 == ((dccL1 - 1) & 0xFFF))) ||
251 ((type ==
TCC_SRP) && (l1 == ( dccL1 & 0xFFF)));
253 return (bxSynced && l1Synced);
bool isSynced(const unsigned int dccBx, const unsigned int bx, const unsigned int dccL1, const unsigned int l1, const BlockType type, const unsigned int fov)
DCCEventBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, bool hU, bool srpU, bool tccU, bool feU, bool memU, bool forceToKeepFRdata)
EcalElectronicsMapper * mapper_
std::auto_ptr< EcalRawDataCollection > * dccHeaders_
unsigned dccId(const DetId &)
virtual void updateCollectors()
unsigned int detailedTriggerType_
std::vector< short > hlt_
unsigned int blockLength_
unsigned int triggerType_
DCCDataUnpacker * unpacker_
virtual void updateCollectors()
std::vector< short > tccBx_
std::auto_ptr< EcalRawDataCollection > * dccHeadersCollection()
std::vector< short > tccLv1_
std::vector< short > feBx_
unsigned int orbitCounter_
unsigned int numbXtalTSamples()
std::vector< short > feChStatus_
unsigned long long uint64_t
std::vector< short > feLv1_
void addHeaderToCollection()
unsigned int next_tower_search(const unsigned int current_tower_id)
void display(std::ostream &o)
unsigned int getActiveSM()
std::vector< short > tccChStatus_