@@ -13,7 +13,11 @@ sbnd::DigitalNoiseChannelStatus::DigitalNoiseChannelStatus(fhicl::ParameterSet c
1313 fNBADCutRawDigit = p.get <float >(" NBADCutRawDigit" ,5 );
1414 fRawDigitLabel = p.get <std::string>(" RawDigitLabel" ," daq" );
1515 fRecobWireLabel = p.get <std::string>(" RecobWireLabel" ," caldata" );
16-
16+ fNAwayFromPedestalRawDigit = p.get <int >(" NAwayFromPedestalRawDigit" ,100 );
17+ fDistFromPedestalRawDigit = p.get <int >(" DistFromPedestalRawDigit" ,100 );
18+ fNAwayFromPedestalRecobWire = p.get <int >(" NAwayFromPedestalRecobWire" ,100 );
19+ fDistFromPedestalRecobWire = p.get <float >(" DistFromPedestalRecobWire" ,100 );
20+
1721 areg.sPreProcessEvent .watch (this , &sbnd::DigitalNoiseChannelStatus::pub_PrepEvent);
1822}
1923
@@ -52,15 +56,21 @@ void sbnd::DigitalNoiseChannelStatus::pub_PrepEvent(const art::Event& evt, art::
5256 rawadc.resize (rd.Samples ());
5357 raw::Uncompress (rd.ADCs (), rawadc, rd.GetPedestal (), rd.Compression ());
5458 bool alleven = true ;
59+ int naway = 0 ;
5560 const short adc0 = rawadc.at (0 );
5661 for (size_t i=0 ; i< rd.Samples (); ++i)
5762 {
5863 const short adc = rawadc.at (i);
5964 if (adc == 0xBAD ) ++nhexbad;
60- alleven &= ( ((adc - adc0) % 2 ) == 0 );
65+ alleven &= ( ((adc - adc0) % 2 ) == 0 );
66+ if (std::abs (adc - rd.GetPedestal ()) > fDistFromPedestalRawDigit )
67+ {
68+ ++naway;
69+ }
6170 }
6271 chanbad |= (nhexbad > fNBADCutRawDigit );
6372 chanbad |= alleven;
73+ chanbad |= (naway > fNAwayFromPedestalRawDigit );
6474 if (chanbad) fDNChannels .emplace (rd.Channel ());
6575 }
6676 }
@@ -73,6 +83,16 @@ void sbnd::DigitalNoiseChannelStatus::pub_PrepEvent(const art::Event& evt, art::
7383 bool chanbad = false ;
7484 auto rms = TMath::RMS (rw.NSignal(),rw.Signal ().data ());
7585 chanbad |= (rms > fRMSCutWire );
86+ auto mns = TMath::Mean (rw.NSignal(),rw.Signal ().data ());
87+ int naway = 0 ;
88+ for (size_t i=0 ; i<rw.NSignal(); ++i)
89+ {
90+ if (std::abs (rw.Signal ()[i] - mns) > fDistFromPedestalRecobWire )
91+ {
92+ naway ++;
93+ }
94+ }
95+ chanbad |= (naway > fNAwayFromPedestalRecobWire );
7696 if (chanbad) fDNChannels .emplace (rw.Channel ());
7797 }
7898 }
0 commit comments