76 return StatusCode::FAILURE;
89 return StatusCode::FAILURE;
108 std::vector<std::string> part;
128 const std::vector<HWIdentifier>& noisyFEB = noisyRO->get_noisy_febs();
131 return StatusCode::SUCCESS;
174 unsigned thisl1Trig = thisEvent->level1TriggerType();
175 unsigned thisLBN = thisEvent->lumiBlock();
211 if(m_Samplenbr < 0) {
212 std::lock_guard<std::mutex> lock(
m_lock);
218 if (itDig!=itDig_e) {
234 if(m_Samplenbr == 5) {
239 if(m_Samplenbr == 7) {
244 if(m_Samplenbr == 10) {
249 if(m_Samplenbr == 32) {
255 if(m_Samplenbr < 10&&m_Samplenbr!=5&&m_Samplenbr!=7) {
260 if(m_Samplenbr <= 20&&m_Samplenbr>10) {
265 if(m_Samplenbr > 20&&m_Samplenbr!=32) {
277 ATH_MSG_DEBUG(
"Range set to "<< m_SampleRangeLow <<
" - " << m_SampleRangeUp );
280 for ( ; itDig!=itDig_e;++itDig) {
288 if (
m_bcMask.cellShouldBeMasked(bcCont,
id)) {
294 int cgain = pLArDigit->
gain();
300 float pedestal = pedestals->
pedestal(
id,cgain);
301 float pedestalRMS=pedestals->
pedestalRMS(
id,cgain);
307 if(!cabling->isOnlineConnected(
id))
continue;
313 partition = ThisPartition;
314 int subdet = ThisPartition / 2;
320 int crate=thisSlot +
m_Nslots[ThisPartition]*feedthrough;
323 const std::vector<short>* digito = &pLArDigit->
samples();
326 std::vector<short>::const_iterator maxSam = std::max_element(digito->begin(), digito->end());
327 std::vector<short>::const_iterator minSam = std::min_element(digito->begin(), digito->end());
328 int thismaxPos=(maxSam-digito->begin());
329 std::vector<short>::const_iterator iterSam= digito->begin();
335 for(
int i=0;i<pLArDigit->
nsamples();++i,++iterSam){
337 signal= (*iterSam-pedestal)/(*maxSam-pedestal);
338 weight = (*maxSam-pedestal);
346 energy=(*maxSam-pedestal);
352 if(!(thismaxPos>=m_SampleRangeLow&&thismaxPos<=m_SampleRangeUp)){
366 if(gain==0 || gain==1){
399 return StatusCode::SUCCESS;
409 if(side==0)
return 0;
412 if(side==0)
return 2;
415 if(side==0)
return 4;
418 if(side==0)
return 6;
#define ATH_CHECK
Evaluate an expression and check for errors.
LArBadXCont< LArBadChannel > LArBadChannelCont
const ServiceHandle< StoreGateSvc > & detStore() const
virtual StatusCode initialize() override
initialize
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
DataModel_detail::const_iterator< DataVector > const_iterator
virtual float pedestal(const HWIdentifier &id, int gain) const =0
virtual float pedestalRMS(const HWIdentifier &id, int gain) const =0
access to RMS of Pedestal index by Identifier, and gain setting
const LArOnlineID * m_LArOnlineIDHelper
Gaudi::Property< int > m_ExpectedSampleMax
Use the SampleMax expected and the SampleNumber from DB.
Gaudi::Property< std::vector< int > > m_Nslots
Gaudi::Property< int > m_AskedSampleRangeUp
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
const LArEM_ID * m_LArEM_IDHelper
LArBadChannelMask m_bcMask
Handle to bad-channel mask.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
LArDigitMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< int > m_ADCsatureCut
default saturation cuts
SG::ReadHandleKey< LArDigitContainer > m_digitContainerKey
Handle to digits.
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
SG::ReadCondHandleKey< ILArPedestal > m_keyPedestal
Handle to pedestal.
Gaudi::Property< bool > m_ignoreKnownBadChannels
bool use to mask the bad channels
Gaudi::Property< std::vector< std::string > > m_SubDetNames
SG::ReadHandleKey< LArNoisyROSummary > m_noisyROSummaryKey
Handle to NoisyRO info.
Gaudi::Property< int > m_SampleNumberFromDB
std::vector< std::map< std::string, int > > m_histoGroups
virtual StatusCode initialize() override
initialize
Gaudi::Property< int > m_NumberBadFebs
Number of Bad FEBs used to declare an event noisy and exclude it from monitoring.
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Gaudi::Property< std::vector< std::string > > m_streams
Give the name of the streams you want to monitor:
Gaudi::Property< int > m_AskedSampleRangeLow
Range to check for the max sample.
Gaudi::Property< std::string > m_summaryMonGroupName
virtual ~LArDigitMonAlg()
Default destructor.
Gaudi::Property< int > m_SigmaCut
default cut to select events
int WhatPartition(HWIdentifier id, int side) const
Say which partition is a channel.
Gaudi::Property< std::vector< std::string > > m_problemsToMask
Gaudi::Property< std::vector< std::string > > m_partitions
Liquid Argon digit base class.
CaloGain::CaloGain gain() const
const HWIdentifier & hardwareID() const
const std::vector< short > & samples() const
Declare a monitored scalar variable.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::vector< unsigned > trigStreamMatching(const std::vector< std::string > &streamsFromJobO, const std::vector< xAOD::EventInfo::StreamTag > &streamInEvent)
std::vector< V > buildToolMap(const ToolHandleArray< GenericMonitoringTool > &tools, const std::string &baseName, int nHist)
Builds an array of indices (base case)
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
void fill(H5::Group &out_file, size_t iterations)