Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BugFix for TwinMux unpacker - change of logic involved #13278

Merged

Conversation

jpazzini
Copy link

  • check beginning/end of AMC stream using HEX of header/trailer -> moved to 4 bit [was 6 for header, 8 for trailer]
-  int BOEevTy  = ( dataWord >> 56 ) & 0xFf;  // positions 60 -> 63
+  int BOEevTy  = ( dataWord >> 60 ) & 0xF;  // positions 60 -> 63
-  if ( (BOEevTy != 0x51) || ( TM7fedId != twinMuxFed ) ) {
+  if ( (BOEevTy != 0x5) || ( TM7fedId != twinMuxFed ) ) {
+  int chkEOE = (dataWord >> 60 ) & 0xF;  // positions 60 -> 63
+  if ( chkEOE != 0xA ) {
+      edm::LogWarning("TwinMux_unpacker") << "AMC block closing line " << std::hex << dataWord 
+                                          << std::dec << " does not start with 0xA";
+      return;
+  }
  • range of AMC blocks to be read -> changed to 1-12 [was 0-11]
-    if ( AMCno < 12 ) {
-      AMCsizes[AMCno] = ( dataWord >> 32 ) & 0xFFFFFF;  // positions 32 -> 55
+    if ( (AMCno < 1) || (AMCno > 12) ) {
+        edm::LogWarning("TwinMux_unpacker") << "AMCnumber " << std::dec << AMCno 
+                                            << " out of range (1-12)";
+        return;
+    }    
  • TM payload -> payload stored according to the expected size from the headers [was until the stream start with the trailer HEX (0xA) ]
-  while ( chkEOE != 0xA0 ) { 
[...] (store TM payloads)
-}
+  ///--> Store payloads
+  std::map<int,int>::iterator AMCiterator = AMCsizes.begin();
+  std::map<int,int>::iterator AMCitend = AMCsizes.end();  
+  for ( ; AMCiterator != AMCitend; ++AMCiterator ) {
+      
+    for ( int k=0; k<AMCiterator->second; ++k) {
+        
+       readline( nline, dataWord );
+       calcCRC( dataWord, newCRC);
+       DTTM7WordContainer.push_back( dataWord );
+     }
+  }  

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @jpazzini for CMSSW_8_0_X.

It involves the following packages:

EventFilter/L1TXRawToDigi

The following packages do not have a category, yet:

EventFilter/L1TXRawToDigi

@cmsbuild, @davidlange6 can you please review it and eventually sign? Thanks.
@Martin-Grunewald this is something you requested to watch as well.
@slava77, @Degano, @smuzaffar you are the release manager for this.

cms-bot commands are list here #13028

@mulhearn
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/11204/console

@mulhearn
Copy link
Contributor

+1

@mulhearn
Copy link
Contributor

@jpazzini: please add a summary to help this sail through.

@mulhearn
Copy link
Contributor

This will be needed during MWGR in order to unpack correctly the TwinMux for DQM.

@jpazzini
Copy link
Author

@mulhearn - added some details about the commit in the first comment

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

davidlange6 added a commit that referenced this pull request Feb 15, 2016
BugFix for TwinMux unpacker - change of logic involved
@davidlange6 davidlange6 merged commit 839f632 into cms-sw:CMSSW_8_0_X Feb 15, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants