|
ATLAS Offline Software
|
Go to the documentation of this file.
49 m_LArOnlineIDHelper(0),
76 return StatusCode::FAILURE;
89 return StatusCode::FAILURE;
108 std::vector<std::string>
part;
127 if(noisyRO.isValid()) {
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) {
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;
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)){
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;
def retrieve(aClass, aKey=None)
SG::ReadHandleKey< LArNoisyROSummary > m_noisyROSummaryKey
Handle to NoisyRO info.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
virtual float pedestal(const HWIdentifier &id, int gain) const =0
Const iterator class for DataVector/DataList.
virtual StatusCode initialize() override
initialize
Gaudi::Property< std::vector< std::string > > m_problemsToMask
LArBadChannelMask m_bcMask
Handle to bad-channel mask.
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
const std::vector< short > & samples() const
const HWIdentifier & hardwareID() const
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
StatusCode buildBitMask(const std::vector< std::string > &problemsToMask, MsgStream &msg)
Gaudi::Property< int > m_SampleNumberFromDB
SG::ReadCondHandleKey< ILArPedestal > m_keyPedestal
Handle to pedestal.
Gaudi::Property< std::vector< int > > m_Nslots
bool cellShouldBeMasked(const LArBadChannelCont *bcCont, const HWIdentifier &hardwareId) const
LArDigitMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Base class for Athena Monitoring Algorithms.
Gaudi::Property< int > m_NumberBadFebs
Number of Bad FEBs used to declare an event noisy and exclude it from monitoring.
Gaudi::Property< std::vector< std::string > > m_partitions
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Liquid Argon digit base class.
Gaudi::Property< int > m_ExpectedSampleMax
Use the SampleMax expected and the SampleNumber from DB.
Gaudi::Property< int > m_SigmaCut
default cut to select events
::StatusCode StatusCode
StatusCode definition for legacy code.
int WhatPartition(HWIdentifier id, int side) const
Say which partition is a channel.
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
const LArEM_ID * m_LArEM_IDHelper
Gaudi::Property< std::vector< std::string > > m_streams
Give the name of the streams you want to monitor:
SG::ReadHandleKey< LArDigitContainer > m_digitContainerKey
Handle to digits.
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
Gaudi::Property< std::vector< std::string > > m_SubDetNames
Gaudi::Property< int > m_AskedSampleRangeUp
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
Gaudi::Property< std::string > m_summaryMonGroupName
StatusCode initialize(bool used=true)
virtual StatusCode initialize() override
initialize
virtual ~LArDigitMonAlg()
Default destructor.
std::vector< std::map< std::string, int > > m_histoGroups
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
CaloGain::CaloGain gain() const
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Gaudi::Property< int > m_AskedSampleRangeLow
Range to check for the max sample.
Gaudi::Property< int > m_ADCsatureCut
default saturation cuts
const LArOnlineID * m_LArOnlineIDHelper
bool isHECchannel(const HWIdentifier id) const override final
Declare a monitored scalar variable.
std::vector< unsigned > trigStreamMatching(const std::vector< std::string > &streamsFromJobO, const std::vector< xAOD::EventInfo::StreamTag > &streamInEvent)
Gaudi::Property< bool > m_ignoreKnownBadChannels
bool use to mask the bad channels
virtual float pedestalRMS(const HWIdentifier &id, int gain) const =0
access to RMS of Pedestal index by Identifier, and gain setting
bool isEmBarrelOnline(const HWIdentifier id) const
HWIdentifier feedthrough_Id(int barrel_ec, int pos_neg, int feedthrough) const
Create a feedthrough identifier from fields.