From a8cb6e98f549a39e4a66a6fffd8b894513eb76e8 Mon Sep 17 00:00:00 2001 From: Emanuele Di Marco Date: Mon, 13 Apr 2015 19:22:18 +0200 Subject: [PATCH 1/3] consider that the histeresis of the ADC only lasts for max 5 samples --- EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc b/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc index 77f6b92884733..804dbf1e5310d 100755 --- a/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc +++ b/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc @@ -223,16 +223,21 @@ int DCCTowerBlock::unpackXtalData(unsigned int expStripID, unsigned int expXtalI short firstGainWrong=-1; short numGainWrong=0; - + double higherGain = 1.; + for (unsigned int i=1; i0 && xtalGains_[i-1]>xtalGains_[i]) { - numGainWrong++; + higherGain = xtalGains_[i]; if (firstGainWrong == -1) { firstGainWrong=i;} } + + if ( xtalGains_[i] == higherGain ) numGainWrong++; + } - if (numGainWrong > 0) { + if (numGainWrong > 0 && numGainWrong < 5) { if (! DCCDataUnpacker::silentMode_) { edm::LogWarning("IncorrectGain") << "A wrong gain transition switch was found for Tower Block in strip " << stripId << " and xtal " << xtalId From 48fdb67a791dc3b9e96fc40892ce7a0b3bac1508 Mon Sep 17 00:00:00 2001 From: Emanuele Di Marco Date: Thu, 16 Apr 2015 12:23:44 +0200 Subject: [PATCH 2/3] check if the wrong gain transition is kept for 5 consecutive samples or not --- .../EcalRawToDigi/src/DCCTowerBlock.cc | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc b/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc index 804dbf1e5310d..2f368807d5872 100755 --- a/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc +++ b/EventFilter/EcalRawToDigi/src/DCCTowerBlock.cc @@ -221,23 +221,16 @@ int DCCTowerBlock::unpackXtalData(unsigned int expStripID, unsigned int expXtalI // from here on, care about gain switches - short firstGainWrong=-1; - short numGainWrong=0; - double higherGain = 1.; + short numGain=1; + bool gainSwitchError = false; for (unsigned int i=1; i0 && xtalGains_[i-1]>xtalGains_[i]) { - higherGain = xtalGains_[i]; - if (firstGainWrong == -1) { firstGainWrong=i;} - } - - if ( xtalGains_[i] == higherGain ) numGainWrong++; - + if (xtalGains_[i-1] > xtalGains_[i] && numGain<5) gainSwitchError = true; + if (xtalGains_[i-1] == xtalGains_[i]) numGain++; + else numGain=1; } - - - if (numGainWrong > 0 && numGainWrong < 5) { + + if (gainSwitchError) { if (! DCCDataUnpacker::silentMode_) { edm::LogWarning("IncorrectGain") << "A wrong gain transition switch was found for Tower Block in strip " << stripId << " and xtal " << xtalId From aa95ff9b26a1f66ae12d9963ea032c5d810dbc6d Mon Sep 17 00:00:00 2001 From: Emanuele Di Marco Date: Thu, 16 Apr 2015 12:24:04 +0200 Subject: [PATCH 3/3] use an existing file for test --- EventFilter/EcalRawToDigi/test/testEcalUnpackerData_cfg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EventFilter/EcalRawToDigi/test/testEcalUnpackerData_cfg.py b/EventFilter/EcalRawToDigi/test/testEcalUnpackerData_cfg.py index d253082f21ba7..3583a3059c36e 100644 --- a/EventFilter/EcalRawToDigi/test/testEcalUnpackerData_cfg.py +++ b/EventFilter/EcalRawToDigi/test/testEcalUnpackerData_cfg.py @@ -7,7 +7,7 @@ process.source = cms.Source("PoolSource", fileNames = #cms.untracked.vstring('file:/tmp/nalmeida/1A1C4478-5866-DE11-A907-001D09F27067.root') - cms.untracked.vstring('/store/relval/CMSSW_3_8_0/RelValProdTTbar/GEN-SIM-RAW/MC_38Y_V7-v1/0004/306D1971-0C95-DF11-942B-002618943984.root') + cms.untracked.vstring('/store/relval/CMSSW_7_4_0/RelValProdTTbar/GEN-SIM-RAW/MCRUN1_74_V4-v1/00000/2C6CC5C9-D0DA-E411-ABF3-0025905B85EE.root') )