ATLAS Offline Software
Functions
LArRodDecoder.cxx File Reference
#include "LArByteStream/LArRodDecoder.h"
#include "GaudiKernel/TypeNameString.h"
#include "GaudiKernel/MsgStream.h"
#include "GaudiKernel/Bootstrap.h"
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/IToolSvc.h"
#include "LArByteStream/LArRodBlockStructure.h"
#include "LArByteStream/LArRodBlockTransparentV0.h"
#include "LArByteStream/LArRodBlockCalibrationV0.h"
#include "LArByteStream/LArRodBlockCalibrationV1.h"
#include "LArByteStream/LArRodBlockCalibrationV2.h"
#include "LArByteStream/LArRodBlockCalibrationV3.h"
#include "LArByteStream/LArRodBlockAccumulatedV3.h"
#include "LArByteStream/LArRodBlockPhysicsV0.h"
#include "LArByteStream/LArRodBlockPhysicsV1.h"
#include "LArByteStream/LArRodBlockPhysicsV2.h"
#include "LArByteStream/LArRodBlockPhysicsV3.h"
#include "LArByteStream/LArRodBlockPhysicsV4.h"
#include "LArByteStream/LArRodBlockPhysicsV5.h"
#include "LArByteStream/LArRodBlockPhysicsV6.h"
#include <algorithm>
#include <fstream>
#include "LArRawConditions/LArCalibParams.h"
#include "LArRecConditions/LArCalibLineMapping.h"
#include "LArCabling/LArOnOffIdMapping.h"

Go to the source code of this file.

Functions

StatusCode LArRodDecoder::initialize ATLAS_NOT_THREAD_SAFE ()
 Install fatal handler with default options. More...
 

Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

StatusCode LArRodDecoder::initialize ATLAS_NOT_THREAD_SAFE ( )
inline

Install fatal handler with default options.

This is meant to be easy to call from python via ctypes.

Install fatal handler with default options.

getLorentzAngle() Read LorentzAngle from HIST and write out into local DB

getBSErrors() Read BSErrors from Monitoring HIST and write out into local DB

getEfficiency() Read Efficiency from Monitoring HIST and write out into local DB

getRawOccupancy() Read RawOccupancy from Monitoring HIST and write out into local DB

getNoiseOccupancy() Read NoiseOccupancy from HIST and write out into local DB

getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats

beginning of the loop of channels

bad bit newly found

known bad bit

for low noisy cells

for high noisy cells

0.01 is used to scale "PER" to the same order of magnitude to "SIG"

smaller deviation: distorted

checking TmaxAmp, Not mixed with MaxAmp and Width

channel information output

Only dead or distorted, or short known BCs are considered below.

index of bc

Definition at line 75 of file LArRodDecoder.cxx.

76 {
77  // Before anything, access message service
78  m_StatusNMask = !m_StatusMask;
79 
80 
81  StatusCode sc = detStore()->retrieve(m_onlineHelper, "LArOnlineID");
82  if (sc.isFailure()) {
83  msg(MSG::ERROR) << "Could not get LArOnlineID helper !" << endmsg;
84  return sc;
85  }
86 
87  ATH_CHECK( m_evt.initialize() );
88 
89  std::vector<std::string>::const_iterator it = m_LArCellCorrNames.begin();
90  std::vector<std::string>::const_iterator it_end = m_LArCellCorrNames.end();
91  for(; it!=it_end;++it)
92  {IAlgTool* tool;
93  CaloCellCorrection* corr;
94  Gaudi::Utils::TypeNameString li(*it);
95  if((toolSvc()->retrieveTool(li.type(), li.name(), tool)).isFailure() )
96  {msg(MSG::ERROR) << " Can't get AlgTool for CaloCellCorrection " << endmsg;
97  return StatusCode::FAILURE;
98  }
99 
100  corr = dynamic_cast<CaloCellCorrection*> (tool);
101  if(!corr )
102  {msg(MSG::ERROR) << " Can't d-cast to CaloCellCorrection* " << endmsg;
103  return StatusCode::FAILURE;
104  }
105  m_LArCellCorrTools.push_back(corr);
106  }
107 
108  //Build list of preselected Feedthroughs
109  if (m_vBEPreselection.size() && m_vPosNegPreselection.size() && m_vFTPreselection.size()) {
110  ATH_MSG_INFO("Building list of selected feedthroughs");
111  for (const unsigned BE : m_vBEPreselection) {
112  for (const unsigned PN : m_vPosNegPreselection) {
113  for (const unsigned FT : m_vFTPreselection) {
114  HWIdentifier finalFTId=m_onlineHelper->feedthrough_Id(BE,PN,FT);
115  unsigned int finalFTId32 = finalFTId.get_identifier32().get_compact();
116  ATH_MSG_INFO("Adding feedthrough Barrel/Endcap=" << BE << " pos/neg=" << PN << " FT=" << FT
117  << " (0x" << std::hex << finalFTId32 << std::dec << ")");
118  m_vFinalPreselection.push_back(finalFTId32);
119  }
120  }
121  }
122  std::sort(m_vFinalPreselection.begin(),m_vFinalPreselection.end());
123  }//end if something set
124  else {
125  if (m_vBEPreselection.size() || m_vPosNegPreselection.size() || m_vFTPreselection.size()) {
126  msg(MSG::ERROR) << "Feedthrough preselection: jobOption inconsistency! "<< endmsg;
127  msg(MSG::ERROR) << "Need to set all three jobOptions BEPreselection PNPreselecton and FTPreselection" << endmsg;
128  return StatusCode::FAILURE;
129  }
130  ATH_MSG_DEBUG("No feedthrough preselection by jobOptions.");
131  }
132  return sc;
133 }
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
skel.it
it
Definition: skel.GENtoEVGEN.py:396
CaloCellCorrection
Definition: CaloCellCorrection.h:51
Identifier::get_identifier32
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
HWIdentifier
Definition: HWIdentifier.h:13
Identifier32::get_compact
value_type get_compact() const
Get the compact id.
Definition: Identifier32.h:44
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
LArNewCalib_Delay_OFC_Cali.FT
FT
Definition: LArNewCalib_Delay_OFC_Cali.py:124
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7