|
ATLAS Offline Software
|
Go to the documentation of this file.
10 m_hasRawRampContainer(false),
11 m_rawRampContainer(0),
20 "Minimal ADC, where the RampTime is computed");
22 "Allowed deviation of ramp (%)");
24 "Allowed deviation of ramp (average over one FEB,");
26 "Allowed deviation of the reconstructed time (ns)");
34 ATH_MSG_ERROR (
"Failed to initialize CaloCellGroup of thresholds!" ) ;
35 return StatusCode::FAILURE;
39 ATH_MSG_ERROR (
"Expected three values in CaloCellGroup of thresholds for three gains!" ) ;
40 return StatusCode::FAILURE;
47 ATH_MSG_ERROR (
"Failed to initialize CaloCellGroup of thresholds!" ) ;
48 return StatusCode::FAILURE;
52 ATH_MSG_ERROR (
"Expected three values in CaloCellGroup of thresholds for three gains!" ) ;
53 return StatusCode::FAILURE;
65 for (
const std::string& key_it :
m_contKey) {
68 ATH_MSG_WARNING (
"Unable to retrieve LArRawRampContainer with key " << key_it ) ;
71 ATH_MSG_DEBUG (
"Got LArRawRampContainer with key " << key_it ) ;
76 ATH_MSG_WARNING (
"No LArRawRampContainer found. Only fitted ramp will be tested " ) ;
83 for (;cont_it!=cont_it_e;++cont_it) {
84 const std::vector<LArRawRamp::RAMPPOINT_t>& singleRamp=(*cont_it)->theRamp();
85 for (
unsigned int DACIndex=0; DACIndex<singleRamp.size(); DACIndex++) {
88 <<
" DAC value : " << singleRamp[DACIndex].DAC
89 <<
" ADC value : " << singleRamp[DACIndex].
ADC
90 <<
" Time " << singleRamp[DACIndex].
TimeMax ) ;
95 msg().setf(std::ios::fixed,std::ios::floatfield);
97 msg() <<
m_myMsgLvl <<
"Deviating! chan= " << (*cont_it)->channelID()<<
" gain= "<<(*cont_it)->gain() <<
" DeltaT=" << singleRamp[DACIndex].TimeMax <<
" DAC = " << singleRamp[DACIndex].DAC <<
endmsg;
105 return StatusCode::SUCCESS;
143 std::stringstream devMsg;
144 devMsg.setf(std::ios::fixed,std::ios::floatfield);
148 devMsg << 100*(
val.m_vRamp[1]-
ref.m_vRamp[1])/
ref.m_vRamp[1] <<
"%)";
184 msg().setf(std::ios::fixed,std::ios::floatfield);
194 <<
" FEBs deviating from reference" ) ;
198 <<
" FEBs withing given tolerance." ) ;
228 if (dataPerSector.rampVal == 0 ){
229 ATH_MSG_ERROR (
"Found Sector with Ramp Average equals to zero" ) ;
234 float ratio =
val.m_vRamp[1]/dataPerSector.rampVal;
247 sc=StatusCode::RECOVERABLE;
250 sc=StatusCode::RECOVERABLE;
267 return LArCondObj(std::vector<float>(ramp.begin(),ramp.end()));
Const iterator class for DataVector/DataList.
constexpr double tolerance
const LArOnlineID_Base * m_onlineHelper
unsigned m_nFailedValidation
Number of channels for which vaildateChannel returned false.
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
const REFCONTAINER * m_reference
Pointer to container with reference values.
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const std::vector< float > & getDefaults() const
std::unordered_map< Identifier, DataPerRegion > m_vDataPerSector
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Identifier region_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy) const
Make a region ID from constituting fields and subCalo index; for (Mini)FCAL and Tiles,...
bool msgLvl(const MSG::Level lvl) const
bool m_hasRawRampContainer
To check if Raw Ramps are found.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
float m_rawrampTimeTolerance
Raw Ramp time tolerance (in ns) (job-Property)
bool febSummary(const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont)
Method to compare FEB averages.
std::vector< std::string > m_toleranceInitFEB
Ramp tolerance (FEB average) as CaloCellGroup object (job-Property)
bool deviateFromAvg(const LArCondObj &val, const HWIdentifier chid, const int gain, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont)
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
LArRampValidationAlg(const std::string &name, ISvcLocator *pSvcLocator)
Regular algorithm constructor.
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
float m_rawrampTimeADC
Raw Ramp ADC (job-Property)
::StatusCode StatusCode
StatusCode definition for legacy code.
CaloCellGroupList m_tolerance
Ramp tolerance as CaloCellGroup object.
std::unordered_map< HWIdentifier, DataPerRegion > m_vDataPerFEB
int eta(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
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...
LArRawRampContainer * m_rawRampContainer
const CaloCell_Base_ID * m_caloId
std::vector< std::string > m_toleranceInit
Ramp tolerance as init string for CellGroupObject (job-Property)
CONDITIONSCONTAINER::LArCondObj LArCondObj
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
MSG::Level m_myMsgLvl
Message level for reporting deviations.
bool validateChannel(const LArCondObj &ref, const LArCondObj &val, const HWIdentifier chid, const int gain, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont) override final
Method to validate the ramps single readout channels.
Identifier cell_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy, const int eta, const int phi) const
Make a cell (== channel) ID from constituting fields and subCalo index; for (Mini)FCAL,...
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
#define ATH_MSG_WARNING(x)
std::vector< std::string > m_contKey
To store Gain Keys for Raw Ramps (job-Property)
const boost::regex ref(r_ef)
unsigned m_maxmessages
Limit for the number of messages about indiviual deviating channels (usd only by derived class)
Algorithm to validate LAr Autocorr;.
virtual StatusCode preLoop() override
Executed before the loop over all channels to reset global sums.
CaloCellGroupList m_toleranceFEB
Ramp tolerance (FEB average) as initializer string CaloCellGroup object.
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.
const std::vector< float > & valuesForCell(const Identifier id)
LArCondObj getRefObj(const HWIdentifier chid, const int gain) const override final
Method implmented in derived class to get the reference object from ref-container.
bool setDefinition(const CaloCell_Base_ID *caloCellId, const std::vector< std::string > &definitions, MsgStream &logStr)
unsigned m_nEntriesGlobal
bool m_doFebAverages
wether to compare feb-averages (used only by derived class)
virtual StatusCode summary(const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont) override
Summary method executed after the loop over all channels.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.