|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #ifndef LARCALIBVALIDATIONALG_H
17 #define LARCALIBVALIDATIONALG_H
25 #include "GaudiKernel/ToolHandle.h"
46 template<
class CONDITIONSCONTAINER,
class REFCONTAINER>
79 typedef typename CONDITIONSCONTAINER::ConstConditionsMapIterator
CONTIT;
80 typedef typename CONDITIONSCONTAINER::LArCondObj
LArCondObj;
171 Gaudi::Property<std::vector<std::string> >
m_problemsToMask{
this,
"ProblemsToMask",{},
"Bad-Channel categories to mask"};
172 Gaudi::Property<std::vector<unsigned int> >
m_patchCBs{
this,
"PatchCBs", {},
"List of missing CalibBoards to patch using values from reference container."};
173 BooleanProperty
m_isSC{
this,
"SuperCells",
false,
"Working on SuperCells ?"};
bool m_patchMissingFEBs
wether missing FEBS (incomplete COOL channels) should be patched
SG::ReadCondHandleKey< REFCONTAINER > m_referenceKey
SG key of the reference container (job-property)
const CONDITIONSCONTAINER * m_validation
Pointer to container to be validated.
const LArOnlineID_Base * m_onlineHelper
unsigned m_nFailedValidation
Number of channels for which vaildateChannel returned false.
std::vector< std::string > m_gainMap
const REFCONTAINER * m_reference
Pointer to container with reference values.
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_CLKey
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
std::vector< std::pair< std::pair< HWIdentifier, unsigned >, unsigned > > CBANDCHANANDGAIN_t
StatusCode stop()
Standard finalize method Loops over all channels and all gains and calls the validateChannel method.
Gaudi::Property< std::vector< unsigned int > > m_patchCBs
bool patchMissingFEBs(const FEBANDGAIN_t &febAndGain, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont)
Fills channels of missing FEBs.
std::vector< std::pair< HWIdentifier, unsigned > > FEBANDGAIN_t
bool m_printFailedPattern
wether to check for FEBs and Calib-lines with many deviating channels
std::vector< std::pair< HWIdentifier, bool > > CHECKEDID_t
Keeping track of channels failing the validation criteria (per gain)
CONDITIONSCONTAINER::MultChanCollection MULTICHANCOLL
std::ofstream m_chanFile
File name to store list of deviating channels.
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
unsigned m_nValidated
Number of channels for which vaildateChannel returned true.
void findFailedPatterns(const LArOnOffIdMapping *cabling, const LArCalibLineMapping *clCont, const LArBadChannelCont *bcCont)
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual LArCondObj getRefObj(const HWIdentifier chid, const int gain) const =0
Method implmented in derived class to get the reference object from ref-container.
StatusCode execute()
Standard execute method This method has to be emtpy since all the job is done in stop()
CONDITIONSCONTAINER * m_nc_validation
Non-const pointer to container to be validated (for FEB patching)
virtual bool validateChannel(const LArCondObj &ref, const LArCondObj &val, const HWIdentifier chid, const int gain, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont)=0
Abstract method to validate a single readout channels.
std::string m_febFileName
File name to store list of FEBs with deviating channels.
virtual StatusCode summary(const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont)
Method executed after the loop over all channels The implementation in the base class writes out only...
LArCalibValidationAlg(const std::string &name, ISvcLocator *pSvcLocator)
Regular algorithm constructor.
std::ofstream m_febFile
File name to store list of FEBs with deviating channels.
const CaloCell_Base_ID * m_caloId
CONDITIONSCONTAINER::LArCondObj LArCondObj
std::string m_chanFileName
File name to store list of deviating channels.
unsigned m_nNoReference
Number of channels for which not reference channel could be found.
Helper for the Liquid Argon Calorimeter cell identifiers.
std::vector< CHECKEDID_t > m_checkedIds
unsigned m_nChecked
Number of channels that where checked (grand-total)
MSG::Level m_myMsgLvl
Message level for reporting deviations.
bool m_checkCompleteness
wether completeness shall be checked or not (job-property)
bool patchMissingCalibBoards(const CBANDCHANANDGAIN_t &CBAndGain, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont)
Fills channels of missing calib boards.
StatusCode initialize()
Standard initialization method.
void febOutput(const HWIdentifier &febid, const unsigned gain, const unsigned nGood, const unsigned nBad)
const boost::regex ref(r_ef)
bool checkCoolChannelCompleteness(const LArOnOffIdMapping *cabling, const LArCalibLineMapping *clCont, const LArBadChannelCont *bcCont)
Verify if all FEBs of each Cool-Channel is present.
bool m_useBCInfo
Flag set to true in order to use bad-channel info for the channel description as well as to ingore so...
unsigned m_maxmessages
Limit for the number of messages about indiviual deviating channels (usd only by derived class)
Algorithm to validate LAr Autocorr;.
std::string m_validationKey
SG key of the container to be validated (job-property)
virtual StatusCode preLoop()
Method executed before the loop over all channels This method can be implemented by the deriving algo...
CONDITIONSCONTAINER::ConstConditionsMapIterator CONTIT
const std::string channelDescription(const HWIdentifier &chid, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont, const unsigned gain=99, bool isFeb=false) const
Textual representation of gain and location of a certain cell or FEB.
unsigned m_nBad
Number of channels known to be bad according to the bad-channel tool.
Helper base class for offline cell identifiers.
bool m_doFebAverages
wether to compare feb-averages (used only by derived class)
~LArCalibValidationAlg()
Destructor.
Gaudi::Property< std::vector< std::string > > m_problemsToMask
LArBadChannelMask m_bcMask