15 unsigned long WhichHalfOffSet = 64;
16 unsigned long TypeOffSet = 256;
17 unsigned long SubTypeOffSet = 2048;
18 unsigned long SettingOffSet = 131072;
19 unsigned long GainModeOffSet = 16384;
21 unsigned long TwoBitsMask = 3;
22 unsigned long ThreeBitsMask = 7;
23 unsigned long ThirdBitMask = 4;
26 EcalDCCHeaderInfos-> setRtHalf(
int ((headerWord / WhichHalfOffSet) & TwoBitsMask) );
27 int type =
int ((headerWord / TypeOffSet) & ThreeBitsMask);
28 int sequence =
int ((headerWord / SubTypeOffSet) & ThreeBitsMask);
29 EcalDCCHeaderInfos->
setMgpaGain(
int ((headerWord / GainModeOffSet) & TwoBitsMask) );
30 EcalDCCHeaderInfos->
setMemGain(
int ((headerWord / GainModeOffSet) & ThirdBitMask)/ThirdBitMask );
37 else if (type ==0 && sequence == 2){
52 edm::LogWarning(
"EcalTBRawToDigi") <<
"@SUB=EcalDCCHeaderRuntypeDecoder::Decode unrecognized runtype and sequence: "<<type<<
" "<<
sequence;
58 DecodeSetting (
int ( headerWord / SettingOffSet),EcalDCCHeaderInfos);
88 theSettings.
delay = (Setting & 2040)/8;
91 theSettings.
MEMVinj = Setting & 511;
101 theSettings.
delay = (Setting & 255);
107 edm::LogWarning(
"EcalTBRawToDigi") <<
"@SUB=EcalDCCTBHeaderRuntypeDecoder::DecodeSettings unrecognized run type: "<<theHeader->
getRunType();
118 dummySettings->
delay =-1;