11#ifndef CALOCONDPHYSALGS_CaloNoiseCompCondAlg_H
12#define CALOCONDPHYSALGS_CaloNoiseCompCondAlg_H
58namespace CLHEP {
class HepRandomEngine; }
70 virtual StatusCode
initialize() override final;
72 virtual StatusCode
execute(
const EventContext& )
const override final {
return StatusCode::SUCCESS;};
74 virtual StatusCode
finalize() override final {
return StatusCode::SUCCESS;};
77 virtual StatusCode
stop() override final;
117 const float Nminbias=-1);
119 const float Nminbias=-1);
126 const float Nminbias=-1);
129 const float Nminbias=-1);
131 const float Nminbias=-1);
133 const float Nminbias=-1);
142 const float &energy);
211 BooleanProperty
m_isSC{
this,
"SuperCell",
false};
286 void commonCalculations(
float & OFC_AC_OFC,
float & OFC_OFC,
int icase,
unsigned int firstSample=0);
289 std::vector<bool> &retrieve);
291 std::vector<bool> &retrieve);
292 void updateDiagnostic(
int reason,
const std::string &reason_name,
int igain,
bool &noiseOK);
299 const float &Nminbias);
301 using AthCondAlgorithm::index;
309 const float &energy);
320 if(tested_value<
BADVALUE+1)
return true;
Base class for conditions algorithms.
Definition of CaloDetDescrManager.
CalorimeterNoiseSymmetryHandling
@ ONLYRIGHTSIDEINTEGRATION
std::vector< std::vector< float > > VectorContainer
@ ELECTRONICNOISE_HIGHESTGAIN
@ PILEUPNOISE_HIGHESTGAIN
std::vector< float > SingleContainer
defines and typedefs for IOVSvc
Base class for conditions algorithms.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Helper base class for offline cell identifiers.
CaloCell_Base_ID::SUBCALO SUBCALO
Helper class for offline supercell identifiers.
Data object for each calorimeter readout cell.
This class groups all DetDescr information related to a CaloCell.
This class initializes the Calo (LAr and Tile) offline identifiers.
virtual StatusCode stop() override final
CaloGain::CaloGain m_highestGain[m_nCalos]
const ILArNoise * m_noise
void commonCalculations(float &OFC_AC_OFC, float &OFC_OFC, int icase, unsigned int firstSample=0)
StatusCode checkCellDatabase(const Identifier &id, int igain, std::vector< bool > &retrieve)
float adc2mev(const CaloDetDescrElement *caloDDE, const CaloGain::CaloGain gain)
float pileupNoiseRMS(const CaloCell *caloCell, const float Nminbias=-1)
virtual StatusCode initialize() override final
standard Athena-Algorithm method
StatusCode initData(const LArADC2MeV *adc2mev)
BooleanProperty m_DiagnosticLG
LArVectorProxy m_AutoCorr
StatusCode retrieveCellDatabase(const IdentifierHash &idCaloHash, const Identifier &id, int igain, std::vector< bool > &retrieve)
int m_itReason[10][m_nGains]
IdentifierHash m_LArHashMax
const ILArPedestal * m_ped
std::vector< float > calculateElecNoiseForLAR(const IdentifierHash &idCaloHash)
CaloGain::CaloGain estimatedGain(const CaloCell *caloCell)
std::string m_reasonName[10]
SG::ReadCondHandleKey< CaloSuperCellDetDescrManager > m_caloSCMgrKey
StatusCode initPileUpNoise()
std::vector< float > elecNoiseRMS3gains(const CaloDetDescrElement *caloDDE)
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
void updateDiagnostic(int reason, const std::string &reason_name, int igain, bool &noiseOK)
virtual StatusCode execute(const EventContext &) const override final
standard Athena-Algorithm method
int m_reason[5000][10][m_nGains]
float totalNoiseRMS(const CaloCell *caloCell, const float Nminbias=-1)
IdentifierHash m_CaloHashMin
SG::WriteCondHandleKey< CaloNoise > m_outputPileupKey
int m_nReason[5000][m_nGains]
const ILArAutoCorr * m_acorr
VectorContainer m_elecNoiseCELLContainer
VectorContainer m_adc2mevContainer
float m_HighGainThresh[m_nCalos]
const ILArOFC * m_ofccond
StatusCode initContainers()
CaloGain::CaloGain estimatedLArGain(const CaloCell_ID::SUBCALO &iCalo, const CaloDetDescrElement *caloDDE, const float &energy)
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
BooleanProperty m_DumpDatabaseMG
IdentifierHash m_CaloHashMax
SG::ReadCondHandleKey< ILArNoise > m_noiseKey
const ILArfSampl * m_fsamplcond
SG::ReadCondHandleKey< ILArAutoCorr > m_acorrKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
int m_idHash[5000][m_nGains]
std::string m_ReturnNoiseName
BooleanProperty m_DumpDatabaseLG
const LArOnOffIdMapping * m_cabling
StatusCode initAdc2MeV(const LArADC2MeV *adc2mev)
std::vector< IdentifierHash > m_idSymmCaloHashContainer
VectorContainer m_elecNoiseRAWContainer
float m_LowGainThresh[m_nCalos]
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
UnsignedIntegerProperty m_firstSample
SG::ReadCondHandleKey< ILArOFC > m_LArOFCObjKey
int m_nCellsWithProblem[m_nGains]
const LArEM_Base_ID * m_lar_em_id
bool m_diagnostic[m_nGains]
const AtlasDetectorID * m_atlas_id
const ILArMinBias * m_minbias
BooleanProperty m_DumpDatabaseHG
virtual StatusCode finalize() override final
standard Athena-Algorithm method
static constexpr int m_nGains
SingleContainer m_pileupNoiseContainer
SG::WriteCondHandleKey< CaloNoise > m_outputElecKey
CaloCell_ID::SUBCALO caloNum(const IdentifierHash idCaloHash)
CaloNoiseCompCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
const CaloIdManager * m_calo_id_man
BooleanProperty m_DiagnosticHG
const ILArShape * m_shapecond
const CaloDetDescrManager_Base * m_calo_dd_man
float totalNoiseRMSHighestGain(const CaloCell *caloCell, const float Nminbias=-1)
static constexpr int m_nCalos
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
SG::ReadCondHandleKey< ILArMinBias > m_LArMinBiasObjKey
const LArFCAL_Base_ID * m_lar_fcal_id
bool checkIfConnected(const Identifier &id)
bool isBadValue(float tested_value)
std::vector< IdentifierHash > m_indexContainer
const CaloCell_SuperCell_ID * m_calosupercell_id
const CaloCell_Base_ID * m_calocell_id
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
StatusCode initElecNoise()
float calculatePileUpNoise(const IdentifierHash &idCaloHash, const float &Nminbias)
const LArHEC_Base_ID * m_lar_hec_id
IntegerProperty m_deltaBunch
virtual ~CaloNoiseCompCondAlg()=default
Default Destructor.
IdentifierHash m_TileHashMax
BooleanProperty m_DiagnosticMG
float elecNoiseRMS(const CaloCell *caloCell)
BooleanProperty m_UseSymmetry
This class defines the interface for accessing AutoCorrelation parameters for each channel @stereotyp...
This is a "hash" representation of an Identifier.
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
Proxy for accessing a range of float values like a vector.