#include <ESDataFormatterV1_1.h>
Public Types | |
typedef ESDataFormatter::DetDigis | DetDigis |
typedef ESDataFormatter::Digis | Digis |
typedef ESDataFormatter::Word16 | Word16 |
typedef ESDataFormatter::Word32 | Word32 |
typedef ESDataFormatter::Word64 | Word64 |
typedef ESDataFormatter::Word8 | Word8 |
Public Member Functions | |
void | DigiToRaw (int fedId, Digis &digis, FEDRawData &fedRawData) |
ESDataFormatterV1_1 (const edm::ParameterSet &ps) | |
~ESDataFormatterV1_1 () | |
Protected Attributes | |
static const int | bADC0 = 16 |
static const int | bADC1 = 16 |
static const int | bADC2 = 16 |
static const int | bDCH = 4 |
static const int | bDCOMFLAG = 8 |
static const int | bDEL = 24 |
static const int | bDERR = 8 |
static const int | bDH = 6 |
static const int | bDOPTO = 8 |
static const int | bDORBIT = 32 |
static const int | bDRUN = 24 |
static const int | bDRUNTYPE = 32 |
static const int | bDTRGTYPE = 16 |
static const int | bDVMAJOR = 8 |
static const int | bE0 = 1 |
static const int | bE1 = 1 |
static const int | bFIBER = 6 |
static const int | bKBC = 12 |
static const int | bKCE = 1 |
static const int | bKCRC = 1 |
static const int | bKET = 1 |
static const int | bKFLAG1 = 4 |
static const int | bKFLAG2 = 8 |
static const int | bKHEAD1 = 2 |
static const int | bKHEAD2 = 2 |
static const int | bKID = 11 |
static const int | bPACE = 2 |
static const int | bSTRIP = 5 |
static const int | sADC0 = 0 |
static const int | sADC1 = bADC0 + sADC0 |
static const int | sADC2 = 0 |
static const int | sDCH = 0 |
static const int | sDCOMFLAG = bDTRGTYPE + sDTRGTYPE |
static const int | sDEL = 0 |
static const int | sDERR = bDEL + sDEL |
static const int | sDH = 24 |
static const int | sDOPTO = 16 |
static const int | sDORBIT = 0 |
static const int | sDRUN = 0 |
static const int | sDRUNTYPE = 0 |
static const int | sDTRGTYPE = 0 |
static const int | sDVMAJOR = bDVMINOR + sDVMINOR |
static const int | sE0 = bSTRIP + sSTRIP + 1 |
static const int | sE1 = bE0 + sE0 |
static const int | sFIBER = bKID + sKID + 1 |
static const int | sKBC = bKFLAG2 + sKFLAG2 |
static const int | sKCE = bKCRC + sKCRC |
static const int | sKCRC = bKET + sKET |
static const int | sKET = 0 |
static const int | sKFLAG1 = bKBC + sKBC |
static const int | sKFLAG2 = bKEC + sKEC |
static const int | sKHEAD1 = bFIBER + sFIBER + 2 |
static const int | sKHEAD2 = bKHEAD1 + sKHEAD1 |
static const int | sKID = bKCE + sKCE + 5 |
static const int | sPACE = bADC2 + sADC2 |
static const int | sSTRIP = bPACE + sPACE |
Static Protected Attributes | |
static const int | bDHEAD = 2 |
static const int | bDVMINOR = 8 |
static const int | bHEAD = 2 |
static const int | bKEC = 8 |
static const int | sDHEAD = 26 |
static const int | sDVMINOR = 8 |
static const int | sHEAD = bE1 + sE1 + 4 |
static const int | sKEC = 0 |
Definition at line 20 of file ESDataFormatterV1_1.h.
Reimplemented from ESDataFormatter.
Definition at line 24 of file ESDataFormatterV1_1.h.
Reimplemented from ESDataFormatter.
Definition at line 25 of file ESDataFormatterV1_1.h.
Reimplemented from ESDataFormatter.
Definition at line 28 of file ESDataFormatterV1_1.h.
Reimplemented from ESDataFormatter.
Definition at line 29 of file ESDataFormatterV1_1.h.
Reimplemented from ESDataFormatter.
Definition at line 30 of file ESDataFormatterV1_1.h.
Reimplemented from ESDataFormatter.
Definition at line 27 of file ESDataFormatterV1_1.h.
ESDataFormatterV1_1::ESDataFormatterV1_1 | ( | const edm::ParameterSet & | ps | ) |
Definition at line 84 of file ESDataFormatterV1_1.cc.
: ESDataFormatter(ps) { }
ESDataFormatterV1_1::~ESDataFormatterV1_1 | ( | ) |
Definition at line 88 of file ESDataFormatterV1_1.cc.
{ }
void ESDataFormatterV1_1::DigiToRaw | ( | int | fedId, |
Digis & | digis, | ||
FEDRawData & | fedRawData | ||
) | [virtual] |
Implements ESDataFormatter.
Definition at line 128 of file ESDataFormatterV1_1.cc.
References ESSample::adc(), ESDataFormatter::bx_, evf::compute_crc(), gather_cfg::cout, FEDRawData::data(), runTheMatrix::data, ESDataFormatter::debug_, i, ESDataFrame::id(), ESDataFormatter::lv1_, ESDataFormatter::orbit_number_, ESDetId::plane(), ESDataFormatter::print(), FEDRawData::resize(), ESDataFormatter::run_number_, sADC0, sADC1, sADC2, ESDataFrame::sample(), sDEL, sDH, sDHEAD, sDORBIT, sDRUN, sDVMAJOR, sDVMINOR, sE0, sE1, FEDTrailer::set(), FEDHeader::set(), sFIBER, sHEAD, ESDetId::six(), ESDetId::siy(), ESDataFrame::size(), sKBC, sKCE, sKCRC, sKEC, sKET, sKFLAG1, sKFLAG2, sKHEAD1, sKHEAD2, sKID, sPACE, sSTRIP, ESDetId::strip(), ESDataFormatter::trgtype_, and ESDetId::zside().
{ map<int, vector<Word64> > map_data; map_data.clear(); int ts[3] = {0, 0, 0}; Word32 word1, word2; Word64 word; vector<Word64> words; const DetDigis& detDigis = digis[fedId]; // if (detDigis==digis.end()) { // cout << "ESDataFormatterV1_1::DigiToRaw : could not find digi vector in digis map for fedID: " // << fedId << endl ; // return 0; // } for (DetDigis::const_iterator it = detDigis.begin(); it != detDigis.end(); ++it) { const ESDataFrame& dataframe = (*it); const ESDetId& detId = dataframe.id(); for (int is=0; is<dataframe.size(); ++is) ts[is] = dataframe.sample(is).adc(); // calculate fake kchip and pace id int kchip = -1; int pace = -1; int ix = -1; int iy = -1; ix = detId.six() % 2; iy = detId.siy() % 2; if (ix == 1 && iy == 1) pace = 0; else if (ix == 0 && iy == 1) pace = 1; else if (ix == 1 && iy == 0) pace = 2; else if (ix == 0 && iy == 0) pace = 3; ix = (1 + detId.six()) / 2; iy = (1 + detId.siy()) / 2; if (detId.zside() == 1 && detId.plane() == 1) kchip = ix + (iy-1)*20 - 1; else if (detId.zside() == 1 && detId.plane() == 2) kchip = ix + (iy-1)*20 + 399; else if (detId.zside() == -1 && detId.plane() == 1) kchip = ix + (iy-1)*20 + 799; else if (detId.zside() == -1 && detId.plane() == 2) kchip = ix + (iy-1)*20 + 1199; if (debug_) cout<<"Si : "<<detId.zside()<<" "<<detId.plane()<<" "<<detId.six()<<" "<<detId.siy()<<" "<<detId.strip()<<" ("<<kchip<<","<<pace<<") "<<ts[2]<<" "<<ts[1]<<" "<<ts[0]<<endl; word1 = (ts[1] << sADC1) | (ts[0] << sADC0); word2 = (2 << sHEAD) | (0 << sE1) | (0 << sE0) | ((detId.strip()-1) << sSTRIP) | (pace << sPACE) | (ts[2] << sADC2); word = (Word64(word2) << 32 ) | Word64(word1); map_data[kchip].push_back(word); } map<int, vector<Word64> >::const_iterator kit; for (kit=map_data.begin(); kit!=map_data.end(); ++kit) { if (debug_) cout<<"KCHIP : "<<kit->first<<endl; word1 = (0 << sKFLAG1) | (0 << sKBC) | (0 << sKFLAG2) | (0 << sKEC); word2 = (1 << sKHEAD2) | (0 << sKHEAD1) | (0 << sFIBER) | (kit->first << sKID) | (0 << sKCE) | (0 << sKCRC) | (0 << sKET); word = (Word64(word2) << 32 ) | Word64(word1); if (debug_) cout<<"KCHIP : "<<print(word)<<endl; words.push_back(word); const vector<Word64> & data = kit->second; for (unsigned int id=0; id<data.size(); ++id) { if (debug_) cout<<"Data : "<<print(data[id])<<endl; words.push_back(data[id]); } } int dataSize = (words.size() + 8) * sizeof(Word64); // DCC words vector<Word64> DCCwords; word2 = (0 << sDHEAD) | (1 <<sDH) | (run_number_ << sDRUN); word1 = (dataSize << sDEL); word = (Word64(word2) << 32 ) | Word64(word1); DCCwords.push_back(word); word2 = (0 << sDHEAD) | (2 <<sDH); word1 = 0; word = (Word64(word2) << 32 ) | Word64(word1); DCCwords.push_back(word); word2 = (0 << sDHEAD) | (3 <<sDH) | (1 << sDVMAJOR) | (1 << sDVMINOR); word1 = (orbit_number_ << sDORBIT); word = (Word64(word2) << 32 ) | Word64(word1); DCCwords.push_back(word); word2 = (0 << sDHEAD) | (4 <<sDH); word1 = 0; word = (Word64(word2) << 32 ) | Word64(word1); DCCwords.push_back(word); word2 = (0 << sDHEAD) | (5 <<sDH); word1 = 0; word = (Word64(word2) << 32 ) | Word64(word1); DCCwords.push_back(word); word2 = (0 << sDHEAD) | (6 <<sDH); word1 = 0; word = (Word64(word2) << 32 ) | Word64(word1); DCCwords.push_back(word); // Output (data size in Bytes) fedRawData.resize(dataSize); Word64 * w = reinterpret_cast<Word64* >(fedRawData.data()); // header FEDHeader::set( reinterpret_cast<unsigned char*>(w), trgtype_, lv1_, bx_, fedId); w++; // ES-DCC for (unsigned int i=0; i<DCCwords.size(); ++i) { if (debug_) cout<<"DCC : "<<print(DCCwords[i])<<endl; *w = DCCwords[i]; w++; } // event data for (unsigned int i=0; i<words.size(); ++i) { *w = words[i]; w++; } // trailer FEDTrailer::set( reinterpret_cast<unsigned char*>(w), dataSize/sizeof(Word64), evf::compute_crc(fedRawData.data(), dataSize), 0, 0); w++; }
const int ESDataFormatterV1_1::bADC0 = 16 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bADC1 = 16 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bADC2 = 16 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDCH = 4 [protected] |
Definition at line 45 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDCOMFLAG = 8 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDEL = 24 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDERR = 8 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDH = 6 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDHEAD = 2 [static, protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDOPTO = 8 [protected] |
Definition at line 45 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDORBIT = 32 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDRUN = 24 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDRUNTYPE = 32 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDTRGTYPE = 16 [protected] |
Definition at line 44 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDVMAJOR = 8 [protected] |
Definition at line 45 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bDVMINOR = 8 [static, protected] |
Definition at line 45 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bE0 = 1 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bE1 = 1 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bFIBER = 6 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bHEAD = 2 [static, protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKBC = 12 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKCE = 1 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKCRC = 1 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKEC = 8 [static, protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKET = 1 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKFLAG1 = 4 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKFLAG2 = 8 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKHEAD1 = 2 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKHEAD2 = 2 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bKID = 11 [protected] |
Definition at line 48 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bPACE = 2 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::bSTRIP = 5 [protected] |
Definition at line 50 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sADC0 = 0 [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sADC1 = bADC0 + sADC0 [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sADC2 = 0 [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDCH = 0 [protected] |
Definition at line 47 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sDCOMFLAG = bDTRGTYPE + sDTRGTYPE [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sDEL = 0 [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDERR = bDEL + sDEL [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sDH = 24 [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDHEAD = 26 [static, protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDOPTO = 16 [protected] |
Definition at line 47 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sDORBIT = 0 [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDRUN = 0 [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDRUNTYPE = 0 [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sDTRGTYPE = 0 [protected] |
Definition at line 46 of file ESDataFormatterV1_1.h.
const int ESDataFormatterV1_1::sDVMAJOR = bDVMINOR + sDVMINOR [protected] |
Definition at line 47 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sDVMINOR = 8 [static, protected] |
Definition at line 47 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sE0 = bSTRIP + sSTRIP + 1 [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sE1 = bE0 + sE0 [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sFIBER = bKID + sKID + 1 [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sHEAD = bE1 + sE1 + 4 [static, protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKBC = bKFLAG2 + sKFLAG2 [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKCE = bKCRC + sKCRC [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKCRC = bKET + sKET [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKEC = 0 [static, protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKET = 0 [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKFLAG1 = bKBC + sKBC [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKFLAG2 = bKEC + sKEC [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKHEAD1 = bFIBER + sFIBER + 2 [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKHEAD2 = bKHEAD1 + sKHEAD1 [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sKID = bKCE + sKCE + 5 [protected] |
Definition at line 49 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sPACE = bADC2 + sADC2 [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().
const int ESDataFormatterV1_1::sSTRIP = bPACE + sPACE [protected] |
Definition at line 51 of file ESDataFormatterV1_1.h.
Referenced by DigiToRaw().