|  | 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.
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
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.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
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.
constexpr double tolerance
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.