ATLAS Offline Software
Loading...
Searching...
No Matches
CaloNoiseCompCondAlg Class Reference

algo to compute electronic and pile up noise in MeV @ based on old CaloNoiseTool, only WorkMode=1 implemented More...

#include <CaloNoiseCompCondAlg.h>

Inheritance diagram for CaloNoiseCompCondAlg:

Public Member Functions

 CaloNoiseCompCondAlg (const std::string &name, ISvcLocator *pSvcLocator)
 Standard Athena-Algorithm Constructor.
virtual ~CaloNoiseCompCondAlg ()=default
 Default Destructor.
virtual StatusCode initialize () override final
 standard Athena-Algorithm method
virtual StatusCode execute (const EventContext &) const override final
 standard Athena-Algorithm method
virtual StatusCode finalize () override final
 standard Athena-Algorithm method
virtual StatusCode stop () override final
float elecNoiseRMS (const CaloCell *caloCell)
float elecNoiseRMS (const CaloDetDescrElement *caloDDE, const CaloGain::CaloGain gain)
std::vector< float > elecNoiseRMS3gains (const CaloDetDescrElement *caloDDE)
float pileupNoiseRMS (const CaloCell *caloCell, const float Nminbias=-1)
float pileupNoiseRMS (const CaloDetDescrElement *caloDDE, const float Nminbias=-1)
float totalNoiseRMS (const CaloCell *caloCell, const float Nminbias=-1)
float totalNoiseRMS (const CaloDetDescrElement *caloDDE, const CaloGain::CaloGain gain, const float Nminbias=-1)
float totalNoiseRMSHighestGain (const CaloCell *caloCell, const float Nminbias=-1)
float totalNoiseRMSHighestGain (const CaloDetDescrElement *caloDDE, const float Nminbias=-1)
CaloGain::CaloGain estimatedGain (const CaloCell *caloCell)
CaloGain::CaloGain estimatedGain (const CaloCell *caloCell, const CaloDetDescrElement *caloDDE)
CaloGain::CaloGain estimatedGain (const CaloDetDescrElement *caloDDE, const float &energy)
float adc2mev (const CaloDetDescrElement *caloDDE, const CaloGain::CaloGain gain)
float adc2mev (const Identifier &id, const CaloGain::CaloGain gain)
virtual bool isReEntrant () const override
 Avoid scheduling algorithm multiple times.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
virtual void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode initContainers ()
StatusCode initData (const LArADC2MeV *adc2mev)
StatusCode initIndex ()
StatusCode initAdc2MeV (const LArADC2MeV *adc2mev)
StatusCode initElecNoise ()
StatusCode initPileUpNoise ()
bool checkIfConnected (const Identifier &id)
void commonCalculations (float &OFC_AC_OFC, float &OFC_OFC, int icase, unsigned int firstSample=0)
StatusCode retrieveCellDatabase (const IdentifierHash &idCaloHash, const Identifier &id, int igain, std::vector< bool > &retrieve)
StatusCode checkCellDatabase (const Identifier &id, int igain, std::vector< bool > &retrieve)
void updateDiagnostic (int reason, const std::string &reason_name, int igain, bool &noiseOK)
std::vector< float > calculateElecNoiseForLAR (const IdentifierHash &idCaloHash)
float calculatePileUpNoise (const IdentifierHash &idCaloHash, const float &Nminbias)
int index (const IdentifierHash &idCaloHash)
CaloCell_ID::SUBCALO caloNum (const IdentifierHash idCaloHash)
bool isBadValue (float tested_value)
CaloGain::CaloGain estimatedLArGain (const CaloCell_ID::SUBCALO &iCalo, const CaloDetDescrElement *caloDDE, const float &energy)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

std::string m_ReturnNoiseName
float m_LowGainThresh [m_nCalos] {}
float m_HighGainThresh [m_nCalos] {}
CaloGain::CaloGain m_highestGain [m_nCalos] {}
bool m_diagnostic [m_nGains] {}
int m_nCellsWithProblem [m_nGains] {}
int m_nReason [5000][m_nGains] {}
int m_itReason [10][m_nGains] {}
int m_idHash [5000][m_nGains] {}
int m_reason [5000][10][m_nGains] {}
std::string m_reasonName [10]
const AtlasDetectorIDm_atlas_id {}
const CaloIdManagerm_calo_id_man {}
const LArEM_Base_IDm_lar_em_id {}
const LArHEC_Base_IDm_lar_hec_id {}
const LArFCAL_Base_IDm_lar_fcal_id {}
const CaloCell_Base_IDm_calocell_id {}
const CaloCell_SuperCell_IDm_calosupercell_id {}
IdentifierHash m_LArHashMax
IdentifierHash m_TileHashMax
IdentifierHash m_CaloHashMax
IdentifierHash m_CaloHashMin
IntegerProperty m_deltaBunch {this, "deltaBunch", 1}
UnsignedIntegerProperty m_firstSample {this, "firstSample", 0}
BooleanProperty m_UseSymmetry {this, "UseSymmetry", true}
BooleanProperty m_DiagnosticHG {this, "DiagnosticHG", false}
BooleanProperty m_DiagnosticMG {this, "DiagnosticMG", false}
BooleanProperty m_DiagnosticLG {this, "DiagnosticLG", false}
BooleanProperty m_DumpDatabaseHG {this, "DumpDatabaseHG", false}
BooleanProperty m_DumpDatabaseMG {this, "DumpDatabaseMG", false}
BooleanProperty m_DumpDatabaseLG {this, "DumpDatabaseLG", false}
FloatProperty m_Nminbias {this, "NMinBias", -1}
BooleanProperty m_isSC {this, "SuperCell", false}
float m_Adc2MeVFactor {}
LArVectorProxy m_OFC
LArVectorProxy m_Shape
LArVectorProxy m_AutoCorr
float m_c [32][32] {}
float m_RMSpedestal {}
int m_nsamples {}
float m_SigmaNoise {}
float m_fSampl {}
double m_AdcPerMev {}
float m_MinBiasRMS {}
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" }
SG::ReadCondHandleKey< CaloSuperCellDetDescrManagerm_caloSCMgrKey {this,"CaloSuperCellDetDescrManager", "CaloSuperCellDetDescrManager", "SG Key for CaloSuperCellDetDescrManager in the Condition Store" }
const CaloDetDescrManager_Basem_calo_dd_man =nullptr
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
const LArOnOffIdMappingm_cabling =nullptr
SG::ReadCondHandleKey< LArADC2MeVm_adc2mevKey {this, "ADC2MeVKey", "LArADC2MeV", "SG Key of the LArADC2MeV CDO" }
SG::ReadCondHandleKey< ILArPedestalm_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"}
const ILArPedestalm_ped =nullptr
SG::ReadCondHandleKey< ILArNoisem_noiseKey {this,"NoiseKey","","SG Key of LArNoise object"}
const ILArNoisem_noise =nullptr
SG::ReadCondHandleKey< ILArAutoCorrm_acorrKey {this,"AutocorrKey","LArAutoCorrSym","SG Key of LArAutoCorr object"}
const ILArAutoCorrm_acorr =nullptr
SG::ReadCondHandleKey< ILArOFCm_LArOFCObjKey {this, "OFKey","LArOFC", "SG Key of LAr OFCs"}
const ILArOFCm_ofccond =nullptr
SG::ReadCondHandleKey< ILArShapem_shapeKey {this,"ShapeKey","LArShapeSym","SG Key of Shape conditions object"}
const ILArShapem_shapecond =nullptr
SG::ReadCondHandleKey< ILArfSamplm_fSamplKey {this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"}
const ILArfSamplm_fsamplcond = nullptr
SG::ReadCondHandleKey< ILArMinBiasm_LArMinBiasObjKey {this, "LArMinBiasKey", "LArMinBiasSym", "SG Key of LArMinBias"}
const ILArMinBiasm_minbias = nullptr
SG::WriteCondHandleKey< CaloNoisem_outputElecKey {this, "OutputElecKey", "elecNoise", "SG Key of resulting noise CDO"}
SG::WriteCondHandleKey< CaloNoisem_outputPileupKey {this, "OutputPileupKey", "pileupNoise", "SG Key of resulting noise CDO"}
std::vector< IdentifierHashm_indexContainer
std::vector< IdentifierHashm_idSymmCaloHashContainer
VectorContainer m_elecNoiseRAWContainer
VectorContainer m_elecNoiseCELLContainer
SingleContainer m_pileupNoiseContainer
VectorContainer m_adc2mevContainer
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Static Private Attributes

static constexpr int m_nCalos =NCALOS
static constexpr int m_nGains =NGAINS

Detailed Description

algo to compute electronic and pile up noise in MeV @ based on old CaloNoiseTool, only WorkMode=1 implemented

Definition at line 60 of file CaloNoiseCompCondAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CaloNoiseCompCondAlg()

CaloNoiseCompCondAlg::CaloNoiseCompCondAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Standard Athena-Algorithm Constructor.

Definition at line 24 of file CaloNoiseCompCondAlg.cxx.

24 :
25 AthCondAlgorithm( name, pSvcLocator),
26 m_atlas_id(nullptr),
27 m_calo_id_man(nullptr),
28 m_lar_em_id(nullptr),
29 m_lar_hec_id(nullptr),
30 m_lar_fcal_id(nullptr),
31 m_calocell_id(nullptr),
34 m_nsamples(0),
35 m_SigmaNoise(0.),
36 m_fSampl(0),
37 m_AdcPerMev(5.*GeV),
39
40{
41}
const LArEM_Base_ID * m_lar_em_id
const AtlasDetectorID * m_atlas_id
const CaloIdManager * m_calo_id_man
const LArFCAL_Base_ID * m_lar_fcal_id
const CaloCell_Base_ID * m_calocell_id
const LArHEC_Base_ID * m_lar_hec_id

◆ ~CaloNoiseCompCondAlg()

virtual CaloNoiseCompCondAlg::~CaloNoiseCompCondAlg ( )
virtualdefault

Default Destructor.

Member Function Documentation

◆ adc2mev() [1/2]

float CaloNoiseCompCondAlg::adc2mev ( const CaloDetDescrElement * caloDDE,
const CaloGain::CaloGain gain )

Definition at line 1256 of file CaloNoiseCompCondAlg.cxx.

1258{
1259
1260 float factor=1.;
1261 IdentifierHash idCaloHash = caloDDE->calo_hash();
1262 CaloCell_ID::SUBCALO iCalo = this->caloNum(idCaloHash);
1263
1264 if(iCalo==CaloCell_ID::LAREM || iCalo==CaloCell_ID::LARHEC)
1265 {
1266 int index=this->index(idCaloHash);
1267 factor=(m_adc2mevContainer[index])[gain];
1268 }
1269 else if(iCalo==CaloCell_ID::LARFCAL)
1270 {
1271 int index=this->index(idCaloHash);
1272 factor=(m_adc2mevContainer[index])[gain];
1273 }
1274 else if(iCalo==CaloCell_ID::TILE)
1275 {
1276 //TILE_PART
1277 ATH_MSG_WARNING("CaloNoiseCompCondAlg::adc2mev(id,gain) : NOT IMPLEMENTED !" <<"for TILE (-> returns 1. for the moment)" );
1278 factor=1.;
1279 }
1280 else
1281 {
1282 MsgStream log( msgSvc(), name() );
1283 ATH_MSG_WARNING("CaloNoiseCompCondAlg::adc2mev(id,gain) wrong id ! " <<m_lar_em_id->show_to_string(caloDDE->identify()) );
1284 factor=0.;
1285 }
1286 return factor;
1287}
#define ATH_MSG_WARNING(x)
CaloCell_Base_ID::SUBCALO SUBCALO
Definition CaloCell_ID.h:50
Identifier identify() const override final
cell identifier
int index(const IdentifierHash &idCaloHash)
VectorContainer m_adc2mevContainer
CaloCell_ID::SUBCALO caloNum(const IdentifierHash idCaloHash)
msgSvc
Provide convenience handles for various services.
Definition StdJOSetup.py:36

◆ adc2mev() [2/2]

float CaloNoiseCompCondAlg::adc2mev ( const Identifier & id,
const CaloGain::CaloGain gain )

Definition at line 1292 of file CaloNoiseCompCondAlg.cxx.

1293{
1294 return adc2mev(m_calo_dd_man->get_element(id),gain);
1295}
float adc2mev(const CaloDetDescrElement *caloDDE, const CaloGain::CaloGain gain)
const CaloDetDescrManager_Base * m_calo_dd_man

◆ calculateElecNoiseForLAR()

std::vector< float > CaloNoiseCompCondAlg::calculateElecNoiseForLAR ( const IdentifierHash & idCaloHash)
private

Definition at line 593 of file CaloNoiseCompCondAlg.cxx.

594{
595 /*
596
597E=SUMi { OFCi * (short[ (PulseShapei*Ehit/Adc2MeV(gain) + Noisei(gain)
598 + pedestal) ]
599 - pedestal) * Adc2Mev(gain) ] }
600 with Noisei =SUMj { cij*Rndm } * m_SigmaNoise
601
602 NB: without short and with cij=identity (no autocorrelation)
603 E=SUMi { NOISEi(gain)*Rndm }
604 with NOISEi(gain) = Adc2MeV(gain) * OFCi * m_SigmaNoise(gain)
605
606 => Sigma^2=SUMi{NOISEi(gain)*NOISEj(gain)*cij} + quantification part
607 = NOISE(gain) + REST
608 Sigma = std::sqrt( NOISE(gain) + REST)
609
610
611*/
612
614 std::vector<float> sigmaVector (maxgain,BADVALUE);
615 float sigma;
616
617 Identifier id = m_calocell_id->cell_id(idCaloHash);
618
619 for(int igain=0;igain<maxgain;++igain)
620 {
621 bool noiseOK=true;
622 //::::::::::::::::::::::::::::::::::::::::::::::::::
623 //==== retrieve the database ====
624 //::::::::::::::::::::::::::::::::::::::::::::::::::
625
626 std::vector<bool> retrieve(nDATABASE,false);
627 retrieve[iADC2MEV]=true;
628 retrieve[iSIGMANOISE]=true;
629 retrieve[iAUTOCORR]=true;
630 retrieve[iOFC]=true;
631 //retrieve[iSHAPE]=true;
632 StatusCode sc=this->retrieveCellDatabase(idCaloHash,id,igain, retrieve);
633 //if(sc.isFailure()) continue;
634 //NOTE: if an element of the database is empty,
635 // leave the iteration (on gains) => value will be BADVALUE
636 //the interfaces take care of that !
637
638 //::::::::::::::::::::::::::::::::::::::::::::::::::
639 //==== calculations ====
640 //::::::::::::::::::::::::::::::::::::::::::::::::::
641
642 if(sc.isFailure()) {
644 }
645 else
646 {
647 float OFC_AC_OFC,OFC_OFC;
648 this->commonCalculations(OFC_AC_OFC,OFC_OFC,1);
649 //::::::::::::::::::::::::::::::::::::::
650 float NOISE= OFC_AC_OFC*m_SigmaNoise*m_SigmaNoise ;
651 float REST = OFC_OFC*(1./12.);// 12.=std::sqrt(12)*std::sqrt(12)
652 sigma=(NOISE+REST) * m_Adc2MeVFactor*m_Adc2MeVFactor;
653 //::::::::::::::::::::::::::::::::::::::
654 if(sigma>0) sigma=std::sqrt(sigma);
655 else
656 {
657 sigma=-std::sqrt(-sigma);
658 //:::::::::::::::::
659 // if(igain==0) log << MSG::ERROR
660 // <<m_lar_em_id->show_to_string(id)<<" gain "<<igain
661 // <<" : negative root square => WRONG noise "
662 // <<"(please check if OFC or AutoCorr are correct for this cell)"
663 // <<endreq;
664 }
665
666 //diagnostic
667 if(m_diagnostic[igain])
668 {
669 if(noiseOK && sigma<0)
670 this->updateDiagnostic(9,"sigma<0",igain, noiseOK);
671 if(!noiseOK)
672 {
676 }
677 }
678 //::::::::::::::::::::::::::::::::::::::
679 if(noiseOK==false || sigma<0) sigma=float(BADVALUE_TO_RETURN);
680 }
681 sigmaVector[igain]=sigma;
682
683 }//loop on gains
684
685 return sigmaVector;
686}
@ BADVALUE_TO_RETURN
@ iSIGMANOISE
static Double_t sc
void commonCalculations(float &OFC_AC_OFC, float &OFC_OFC, int icase, unsigned int firstSample=0)
StatusCode retrieveCellDatabase(const IdentifierHash &idCaloHash, const Identifier &id, int igain, std::vector< bool > &retrieve)
void updateDiagnostic(int reason, const std::string &reason_name, int igain, bool &noiseOK)
int m_nReason[5000][m_nGains]
int m_idHash[5000][m_nGains]
@ LARMEDIUMGAIN
Definition CaloGain.h:18
@ LARNGAIN
Definition CaloGain.h:19
::StatusCode StatusCode
StatusCode definition for legacy code.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ calculatePileUpNoise()

float CaloNoiseCompCondAlg::calculatePileUpNoise ( const IdentifierHash & idCaloHash,
const float & Nminbias )
private

Definition at line 692 of file CaloNoiseCompCondAlg.cxx.

694{
695 if(Nminbias<=0.000001) return 0.;
696 //only on WorkMode==1
697 if(this->caloNum(idCaloHash)==CaloCell_ID::TILE) return 0.;
698 //no pile-up for tiles, for the moment ...
699
700 /*
701 SigmaPileUp^2 = ( SigmaE * std::sqrt(Nmb) )^2 * Ipileup/Tc
702 where:
703 - Ipileup = Tc * SUM(k=1->Nb) g(tk)^2
704 - Tc is the time between bunch crossings
705 - Nb is the number of bunch crossings
706 (over which the response function is non-zero)
707 - g is the shape
708 - SigmaE is the RMS of the energy in 1 minimum bias event
709 - Nmb is the number of minimum bias events (depending on the luminosity)
710 */
711
712 Identifier id = m_calocell_id->cell_id(idCaloHash);
713
714 //::::::::::::::::::::::::::::::::::::::
715
716 std::vector<bool> retrieve(nDATABASE,false);
717 retrieve[iAUTOCORR]=true;
718 retrieve[iOFC]=true;
719 retrieve[iSHAPE]=true;
720 retrieve[iMINBIASRMS]=true;
721 retrieve[iFSAMPL]=true;
722 StatusCode sc=this->retrieveCellDatabase(idCaloHash,id,
723 CaloGain::LARHIGHGAIN,retrieve);
724 if(sc.isFailure()) return 0.;
725
726 //::::::::::::::::::::::::::::::::::::::
727
728 //in the database, RMS is at the scale of the Hits,
729 // so we need to scale it at the e.m scale using the sampling fraction ...
731
732 //::::::::::::::::::::::::::::::::::::::
733
734// overall normalization factor
735 float PileUp=m_MinBiasRMS*std::sqrt(Nminbias);
736
737 //::::::::::::::::::::::::::::::::::::::
738
739 float OFC_AC_OFC,OFC_OFC;
740 unsigned int firstSample=m_firstSample;
741 // for HEC, always use firstSample=1 when the number of samples is 4
742 if (m_lar_hec_id->is_lar_hec(id) && m_nsamples==4 && m_firstSample==0u) firstSample=1;
743 this->commonCalculations(OFC_AC_OFC,OFC_OFC,2,firstSample);
744
745 //::::::::::::::::::::::::::::::::::::::
746
747 PileUp*=std::sqrt(OFC_AC_OFC);
748
749 return PileUp;
750}
@ iMINBIASRMS
UnsignedIntegerProperty m_firstSample
@ LARHIGHGAIN
Definition CaloGain.h:18
@ PileUp
Pile-up vertex.

◆ caloNum()

CaloCell_ID::SUBCALO CaloNoiseCompCondAlg::caloNum ( const IdentifierHash idCaloHash)
inlineprivate

Definition at line 327 of file CaloNoiseCompCondAlg.h.

328{
329 return
330 static_cast<CaloCell_ID::SUBCALO>(m_calocell_id->sub_calo(idCaloHash));
331}

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ checkCellDatabase()

StatusCode CaloNoiseCompCondAlg::checkCellDatabase ( const Identifier & id,
int igain,
std::vector< bool > & retrieve )
private

Definition at line 896 of file CaloNoiseCompCondAlg.cxx.

897{
898 StatusCode StatusDatabase=StatusCode::SUCCESS;
899
900 ATH_MSG_DEBUG("checkCellDatabase starts for "<<id.get_identifier32().get_compact()<<" gain: "<<igain);
901 bool dummy=false;
902 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
903 //ADC2MEV
904 if(retrieve[iADC2MEV]) {
905 if(std::fabs(m_Adc2MeVFactor)<0.000001) {
906 StatusDatabase=StatusCode::FAILURE;
907 if(m_diagnostic[igain])
908 this->updateDiagnostic(0,"m_Adc2MeVFactor=0",igain,dummy);
909 }
910 }
911
912 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
913 //SIGMANOISE
914 if(retrieve[iSIGMANOISE]) {
915 if(std::fabs(m_SigmaNoise)<0.000001) {
916 StatusDatabase=StatusCode::FAILURE;
917 if(m_diagnostic[igain])
918 this->updateDiagnostic(1,"m_SigmaNoise=0",igain,dummy);
919 }
920 }
921
922 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
923 //AUTOCORR
924 if(retrieve[iAUTOCORR])
925 {
926 if (!m_AutoCorr.valid())
927 {
928 ATH_MSG_WARNING( " AutoCorr invalid for " <<m_lar_em_id->show_to_string(id)<<" at gain "<<igain);
929 StatusDatabase=StatusCode::FAILURE;
930 }
931 if (m_AutoCorr.size()==0)
932 {
933 StatusDatabase=StatusCode::FAILURE;
934 if(m_diagnostic[igain]) this->updateDiagnostic(2,"AC empty",igain,dummy);
935 }
936 // autocorr can be null (and it is for low-gain !), so allow it !
937 m_nsamples=m_AutoCorr.size()+1;
938 }
939
940 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
941 //OFC
942 if(retrieve[iOFC])
943 {
944 if (!m_OFC.valid())
945 {
946 ATH_MSG_WARNING( " OFC pointer null for " <<m_lar_em_id->show_to_string(id)<<" at gain "<<igain);
947 StatusDatabase=StatusCode::FAILURE;
948 }
949 if (m_OFC.size()==0)
950 {
951 StatusDatabase=StatusCode::FAILURE;
952 if(m_diagnostic[igain]) this->updateDiagnostic(4,"OFC empty",igain,dummy);
953 }
954 else
955 if(m_diagnostic[igain])
956 {
957 unsigned int n_OFCnull=0;
958 for(auto ofc : m_OFC)
959 if(std::fabs(ofc)<0.000001) ++n_OFCnull;
960 if(n_OFCnull==m_OFC.size()) this->updateDiagnostic(5,"OFC=0",igain,dummy);
961 }
962 m_nsamples=m_OFC.size();
963 }
964
965 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
966 //SHAPE
967 if(retrieve[iSHAPE])
968 {
969 if (!m_Shape.valid())
970 {
971 ATH_MSG_WARNING( " Shape pointer null -> PileUp will be 0 for " <<m_lar_em_id->show_to_string(id) );
972 StatusDatabase=StatusCode::FAILURE;
973 }
974 if (m_Shape.size()==0)
975 {
976 // log<<MSG::WARNING
977 // <<" Shape vector empty -> PileUp will be 0 for "
978 // <<m_lar_em_id->show_to_string(id)<<endreq;
979 StatusDatabase=StatusCode::FAILURE;
980 if(m_diagnostic[igain]) this->updateDiagnostic(6,"Shape empty",igain,dummy);
981 }
982 else
983 if(m_diagnostic[igain])
984 {
985 unsigned int n_SHAPEnull=0;
986 for(auto shp : m_Shape)
987 if(std::fabs(shp)<0.000001) ++n_SHAPEnull;
988 if(n_SHAPEnull==m_Shape.size())
989 this->updateDiagnostic(7,"Shape=0",igain,dummy);
990 }
991 }
992
993 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
994 //NSAMPLES
995 if(retrieve[iOFC] && retrieve[iAUTOCORR]
996 && m_OFC.size()!=m_AutoCorr.size()+1)
997 {
998 m_nsamples=std::min(m_OFC.size(),m_AutoCorr.size()+1);
999 ATH_MSG_DEBUG( "AutoCorr and OFC vectors have not the same " <<"number of elements" <<" ("<<m_AutoCorr.size()<<"/"<<m_OFC.size() <<" ) => will take into account only " << m_nsamples << " samples !" );
1000 }
1001
1002 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1003 if(retrieve[iOFC] && retrieve[iSHAPE] && m_OFC.size()==m_Shape.size())
1004 {
1005 float scalar=0;
1006 for(unsigned int i=0;i<m_Shape.size();++i)
1007 scalar+=m_Shape[i]*m_OFC[i];
1008 if((scalar-1)>0.05)
1009 this->updateDiagnostic(8,"[Shape].[OFC] not 1",igain,dummy);
1010 }
1011
1012 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1013 //SAMPLING FRACTION
1014 if(retrieve[iFSAMPL])
1015 {
1016 if (m_fSampl<0.000001)
1017 {
1018 ATH_MSG_WARNING(" fSampl null -> PileUp will be 0 for " <<m_lar_em_id->show_to_string(id) );
1019 StatusDatabase=StatusCode::FAILURE;
1020 }
1021 }
1022
1023 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1024 ATH_MSG_DEBUG("checkCellDatabase "<<id.get_identifier32().get_compact()<<" status: "<<StatusDatabase);
1025 return StatusDatabase;
1026}
#define ATH_MSG_DEBUG(x)

◆ checkIfConnected()

bool CaloNoiseCompCondAlg::checkIfConnected ( const Identifier & id)
private

Definition at line 425 of file CaloNoiseCompCondAlg.cxx.

426{
427 try
428 {
429 HWIdentifier hwid = m_cabling->createSignalChannelID(id);
430 if(!m_cabling->isOnlineConnected(hwid))
431 {
432 return false;
433 }
434 }
435 catch(LArID_Exception & except)
436 {return false;}
437 return true;
438}
const LArOnOffIdMapping * m_cabling

◆ commonCalculations()

void CaloNoiseCompCondAlg::commonCalculations ( float & OFC_AC_OFC,
float & OFC_OFC,
int icase,
unsigned int firstSample = 0 )
private

Definition at line 755 of file CaloNoiseCompCondAlg.cxx.

756{
757
758 // case 1 electronic noise
759 if (icase==1) {
760 //calculate the matrix of autocorrelation
761 for(int i=0;i<m_nsamples;++i)
762 for(int j=0;j<m_nsamples;++j)
763 {
764 if(i==j) m_c[i][j] = 1.;
765 for(int k=1;k<m_nsamples;++k)
766 if(i==j-k || i==j+k)
767 m_c[i][j] = m_AutoCorr[k-1];
768 }
769 }
770// other case: pileup noise
771 else {
772 for (int i=0;i<m_nsamples;i++) {
773 for (int j=0;j<m_nsamples;j++)
774 {
775 m_c[i][j]=0.;
776 int nsize = m_Shape.size();
777 for (int k=0;k<nsize;k++) {
778 if ((j-i+k)>=0 && (j-i+k)<nsize) {
779 int ibunch=0;
780 if ((i+firstSample-k)%m_deltaBunch == 0 ) ibunch=1;
781 m_c[i][j] += ((double) (ibunch)) * (m_Shape[k]) * (m_Shape[j-i+k]);
782 }
783 }
784 }
785 }
786 }
787
788 //::::::::::::::::::::::::::::::::::::::
789 OFC_AC_OFC=0;
790 OFC_OFC=0;
791
792 float tmp;
793 for(int i=0;i<m_nsamples;++i)
794 {
795 tmp=0.;
796 for(int j=0;j<m_nsamples;++j)
797 tmp+=m_c[i][j]*m_OFC[j];
798 tmp*=m_OFC[i];
799 OFC_AC_OFC+=tmp;
800 OFC_OFC+= m_OFC[i] * m_OFC[i];
801 }
802 //::::::::::::::::::::::::::::::::::::::
803}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ elecNoiseRMS() [1/2]

float CaloNoiseCompCondAlg::elecNoiseRMS ( const CaloCell * caloCell)

Definition at line 1150 of file CaloNoiseCompCondAlg.cxx.

1150 {
1151 const CaloDetDescrElement* caloDDE = theCell->caloDDE();
1152 CaloGain::CaloGain igain = theCell->gain();
1153 return this->elecNoiseRMS(caloDDE, igain);
1154}
float elecNoiseRMS(const CaloCell *caloCell)

◆ elecNoiseRMS() [2/2]

float CaloNoiseCompCondAlg::elecNoiseRMS ( const CaloDetDescrElement * caloDDE,
const CaloGain::CaloGain gain )

Definition at line 1053 of file CaloNoiseCompCondAlg.cxx.

1055{
1056
1057
1058 float sigma=0.;
1059
1060 const IdentifierHash idCaloHash = caloDDE->calo_hash();
1061 //CaloCell_ID::SUBCALO iCalo = this->caloNum(idCaloHash);
1062 CaloCell_ID::SUBCALO iCalo = caloDDE->getSubCalo();
1063 int index=this->index(idCaloHash);
1064
1065
1066 int igain=static_cast<int>(gain);//for LAr
1067 if(iCalo==CaloCell_ID::TILE) //for Tile
1068 {
1069 CaloGain::CaloGain convertedGain;
1070 switch(gain)
1071 {
1072 //convert Tile gain into LAr gain (the one used to store the noise in arrays)
1073 case CaloGain::TILEHIGHHIGH : convertedGain=CaloGain::LARHIGHGAIN; break;
1074 case CaloGain::TILEHIGHLOW : convertedGain=CaloGain::LARMEDIUMGAIN; break;
1075 case CaloGain::TILELOWHIGH : convertedGain=CaloGain::LARMEDIUMGAIN; break;
1076 case CaloGain::TILELOWLOW : convertedGain=CaloGain::LARLOWGAIN; break;
1077 case CaloGain::TILEONEHIGH : convertedGain=CaloGain::LARHIGHGAIN; break;
1078 case CaloGain::TILEONELOW : convertedGain=CaloGain::LARLOWGAIN; break;
1079 default: convertedGain = CaloGain::INVALIDGAIN;
1080 }
1081 igain=static_cast<int>(convertedGain);
1082 }
1083
1084 if (gain==CaloGain::INVALIDGAIN || gain==CaloGain::UNKNOWNGAIN) {
1085 ATH_MSG_WARNING( " ask noise for invalid/unknown gain, will return noise for high gain " );
1086 igain=static_cast<int>(CaloGain::LARHIGHGAIN);
1087 }
1088
1089 if (iCalo<0 || index<0)
1090 {
1091 ATH_MSG_WARNING( "CaloNoiseCompCondAlg::elecNoiseRMS wrong id ! " << "iCalo="<<iCalo << "index="<<index << "id:" << m_lar_em_id->show_to_string(caloDDE->identify()) );
1092 return 0.;
1093 }
1094 else
1095 {
1096 const std::vector<float>* sigmaVector = 0;
1097 sigmaVector = &m_elecNoiseCELLContainer[index];
1098
1099 bool retry=true;
1100 int shift_gain=0;
1101 int gain_wanted=igain;
1102 int gain_shifted=gain_wanted;
1103
1104 while(retry)
1105 {
1106 //:::::::::::::::::
1107 retry=false;
1108 //:::::::::::::::::
1109 gain_shifted=gain_wanted-shift_gain;
1110 //:::::::::::::::::
1111 sigma = (*sigmaVector)[gain_shifted];
1112 //:::::::::::::::::
1113 sigma = this->calculateElecNoiseForLAR(idCaloHash) [gain_shifted];
1114 //:::::::::::::::::
1115 if(this->isBadValue(sigma))
1116 {
1117 ++shift_gain;
1118 if(shift_gain<=igain) retry=true;
1119 ATH_MSG_WARNING( "noise is missing for this cell " << m_lar_em_id->show_to_string(caloDDE->identify()) << " at this gain (" <<gain_wanted<<"), return the noise at next gain (" <<gain_shifted<<")" );
1120 }
1121 //:::::::::::::::::
1122 }
1123 return sigma;
1124 }
1125}
std::vector< float > calculateElecNoiseForLAR(const IdentifierHash &idCaloHash)
VectorContainer m_elecNoiseCELLContainer
bool isBadValue(float tested_value)
@ TILELOWLOW
Definition CaloGain.h:12
@ INVALIDGAIN
Definition CaloGain.h:18
@ LARLOWGAIN
Definition CaloGain.h:18
@ TILEONEHIGH
Definition CaloGain.h:17
@ TILEONELOW
Definition CaloGain.h:16
@ TILELOWHIGH
Definition CaloGain.h:13
@ TILEHIGHLOW
Definition CaloGain.h:14
@ UNKNOWNGAIN
Definition CaloGain.h:21
@ TILEHIGHHIGH
Definition CaloGain.h:15

◆ elecNoiseRMS3gains()

std::vector< float > CaloNoiseCompCondAlg::elecNoiseRMS3gains ( const CaloDetDescrElement * caloDDE)

Definition at line 1131 of file CaloNoiseCompCondAlg.cxx.

1132{
1133 std::vector<float> sigma;
1135 sigma.reserve (maxgain);
1136 for(int igain=0;igain<maxgain;++igain)
1137 sigma.push_back(this->elecNoiseRMS(caloDDE,
1138 static_cast<CaloGain::CaloGain>(igain)));
1139 for(int igain=0;igain<maxgain;++igain)
1140 if(this->isBadValue(sigma[igain]) &&
1141 igain!=CaloGain::LARHIGHGAIN)
1142 sigma[igain]=sigma[igain-1];//take the next gain (low->medium->high)
1143 return sigma;
1144}

◆ estimatedGain() [1/3]

CaloGain::CaloGain CaloNoiseCompCondAlg::estimatedGain ( const CaloCell * caloCell)

◆ estimatedGain() [2/3]

CaloGain::CaloGain CaloNoiseCompCondAlg::estimatedGain ( const CaloCell * caloCell,
const CaloDetDescrElement * caloDDE )

◆ estimatedGain() [3/3]

CaloGain::CaloGain CaloNoiseCompCondAlg::estimatedGain ( const CaloDetDescrElement * caloDDE,
const float & energy )

◆ estimatedLArGain()

CaloGain::CaloGain CaloNoiseCompCondAlg::estimatedLArGain ( const CaloCell_ID::SUBCALO & iCalo,
const CaloDetDescrElement * caloDDE,
const float & energy )
private

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

virtual StatusCode CaloNoiseCompCondAlg::execute ( const EventContext & ) const
inlinefinaloverridevirtual

standard Athena-Algorithm method

Definition at line 72 of file CaloNoiseCompCondAlg.h.

72{return StatusCode::SUCCESS;};

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ finalize()

virtual StatusCode CaloNoiseCompCondAlg::finalize ( )
inlinefinaloverridevirtual

standard Athena-Algorithm method

Definition at line 74 of file CaloNoiseCompCondAlg.h.

74{return StatusCode::SUCCESS;};

◆ index()

int CaloNoiseCompCondAlg::index ( const IdentifierHash & idCaloHash)
private

Definition at line 443 of file CaloNoiseCompCondAlg.cxx.

444{
445 return m_indexContainer[idCaloHash];
446}
std::vector< IdentifierHash > m_indexContainer

◆ initAdc2MeV()

StatusCode CaloNoiseCompCondAlg::initAdc2MeV ( const LArADC2MeV * adc2mev)
private

Definition at line 494 of file CaloNoiseCompCondAlg.cxx.

495{
496 ATH_MSG_INFO( "initAdc2MeV() begin " );
497 for (unsigned int it=0; it<m_adc2mevContainer.size(); ++it)
498 {
500 Identifier id=m_calocell_id->cell_id(m_idSymmCaloHashContainer[it]);
501 //::::::::::::::::::::::::::::::::::::::
502 //::::::::::::::::::::::::::::::::::::::
503 if(iCalo!=CaloCell_ID::TILE)
504 {
505 std::vector<float>& adc2mevVector = m_adc2mevContainer[it];
506 unsigned int maxgain = m_isSC ? CaloGain::LARMEDIUMGAIN : CaloGain::LARNGAIN;
507 adc2mevVector.reserve (maxgain);
508 for(unsigned int igain=0;igain<maxgain;++igain)
509 {
510 auto polynom_adc2mev = adc2mev->ADC2MEV(id,igain);
511 if(polynom_adc2mev.size()==0)
512 adc2mevVector.push_back(0.);
513 else
514 adc2mevVector.push_back(polynom_adc2mev[1]);
515 }
516 }
517 //::::::::::::::::::::::::::::::::::::::
518 }
519 ATH_MSG_INFO( "initAdc2MeV() end " );
520 return StatusCode::SUCCESS;
521}
#define ATH_MSG_INFO(x)
std::vector< IdentifierHash > m_idSymmCaloHashContainer

◆ initContainers()

StatusCode CaloNoiseCompCondAlg::initContainers ( )
private

Definition at line 274 of file CaloNoiseCompCondAlg.cxx.

275{
276 //initialize the maps m_ElecNoiseContainer and m_ScaleContainer
277 //(assuming type of elements of the containers is the same for LAr)
278
279 ATH_MSG_INFO( "initContainers() begin " );
280
281 // intialise indices
282 ATH_CHECK(this->initIndex());
283
284 //::::::::::::::::::::::::::::::::::::::
289 //::::::::::::::::::::::::::::::::::::::
290 ATH_MSG_INFO( "initContainers() end : " <<" size of containers = " <<m_idSymmCaloHashContainer.size() );
291 return StatusCode::SUCCESS;
292}
#define ATH_CHECK
Evaluate an expression and check for errors.
VectorContainer m_elecNoiseRAWContainer
SingleContainer m_pileupNoiseContainer

◆ initData()

StatusCode CaloNoiseCompCondAlg::initData ( const LArADC2MeV * adc2mev)
private

Definition at line 452 of file CaloNoiseCompCondAlg.cxx.

453{
454
455 StatusCode sc ;
456 sc = this->initContainers();
457 if (sc.isFailure()) {
458 ATH_MSG_WARNING( "initContainers failed" ) ;
459 return sc;
460 }
461
462 // reset diagnostics
464 for(int igain=0;igain<maxgain;++igain)
465 {
467 for(int i=0;i<5000;++i) m_nReason[i][igain]=0;
468 for(int i=0;i<10;++i) m_itReason[i][igain]=0;
469 }
470
471
472 //stores the Adc2MeV factors
473 sc = this->initAdc2MeV(adc2mev);
474 if (!sc.isSuccess())
475 ATH_MSG_ERROR( "initData(): error with initAdc2MeV() " );
476
477 //calculates and stores the electronic noise
478 sc = this->initElecNoise();
479 if (!sc.isSuccess())
480 ATH_MSG_ERROR( "initData(): error with initElecNoise() " );
481
482 //calculates and stores the pileup noise
483 sc = this->initPileUpNoise();
484 if (!sc.isSuccess())
485 ATH_MSG_ERROR( "initData(): error with initPileUpNoise() ");
486
487
488 return StatusCode::SUCCESS;
489}
#define ATH_MSG_ERROR(x)
int m_itReason[10][m_nGains]
StatusCode initAdc2MeV(const LArADC2MeV *adc2mev)

◆ initElecNoise()

StatusCode CaloNoiseCompCondAlg::initElecNoise ( )
private

Definition at line 526 of file CaloNoiseCompCondAlg.cxx.

527{
528 // initialize the parameters (the same for each event for each Identifier)
529 // for the calculation of the electronic noise
530
531
532 MsgStream log( msgSvc(), name() );
533 ATH_MSG_DEBUG( "initElecNoise() begin " );
534
535 for (unsigned int it=0; it<m_elecNoiseCELLContainer.size(); ++it)
536 {
537 //::::::::::::::::::::::::::::::::::::::
540 //::::::::::::::::::::::::::::::::::::::
541 }
542 ATH_MSG_INFO("it filled");
543
544 //print diagnostic
546 for(int igain=0;igain<maxgain;++igain)
547 if(m_diagnostic[igain])
548 {
549 ATH_MSG_INFO("===== Diagnostic for gain "<<igain<<" =====");
550 for(int i=0;i<m_nCellsWithProblem[igain];++i)
551 {
552 Identifier id = m_calocell_id->cell_id(m_idHash[i][igain]);
553 log<<MSG::DEBUG<<m_idHash[i][igain]<<" "
554 <<m_lar_em_id->show_to_string(id)
555 <<" "<<m_nReason[i][igain]<<" : ";
556 for(int j=0;j<m_nReason[i][igain];++j)
557 log<<MSG::DEBUG<<m_reasonName[m_reason[i][j][igain]]<<" ";
558 log << MSG::DEBUG<<endmsg;
559 }
560 log<<MSG::DEBUG<<endmsg;
561 ATH_MSG_INFO("N cells with problem(s) = " <<m_nCellsWithProblem[igain]);
562 for(int i=0;i<10;++i)
563 if(m_itReason[i][igain]>0)
564 ATH_MSG_INFO( i<<" "<<m_reasonName[i] <<": for "<<m_itReason[i][igain]<<" cells" );
565 }
566
567 ATH_MSG_DEBUG( "initElecNoise() end " );
568 return StatusCode::SUCCESS;
569}
#define endmsg
int m_reason[5000][10][m_nGains]

◆ initialize()

StatusCode CaloNoiseCompCondAlg::initialize ( )
finaloverridevirtual

standard Athena-Algorithm method

Definition at line 46 of file CaloNoiseCompCondAlg.cxx.

46 {
47
49 m_calosupercell_id = m_calo_id_man->getCaloCell_SuperCell_ID();
50 m_lar_em_id = m_isSC ? static_cast<const LArEM_Base_ID*>(m_calosupercell_id->em_idHelper()) :
51 static_cast<const LArEM_Base_ID*>(m_calo_id_man->getEM_ID());
52 m_lar_hec_id = m_isSC ? static_cast<const LArHEC_Base_ID*>(m_calosupercell_id->hec_idHelper()) :
53 static_cast<const LArHEC_Base_ID*>(m_calo_id_man->getHEC_ID());
54 m_lar_fcal_id = m_isSC ? static_cast<const LArFCAL_Base_ID*>(m_calosupercell_id->fcal_idHelper()) :
55 static_cast<const LArFCAL_Base_ID*>(m_calo_id_man->getFCAL_ID());
56
57 ATH_CHECK(m_LArOFCObjKey.initialize());
58 ATH_CHECK(m_shapeKey.initialize());
59 ATH_CHECK(m_fSamplKey.initialize());
60 ATH_CHECK(m_LArMinBiasObjKey.initialize());
61 ATH_CHECK(m_cablingKey.initialize());
62 ATH_CHECK(m_adc2mevKey.initialize());
63 ATH_CHECK(m_pedestalKey.initialize(m_noiseKey.empty()));
64 ATH_CHECK(m_noiseKey.initialize(!m_noiseKey.empty()));
65 ATH_CHECK(m_acorrKey.initialize());
66
67 //diagnostic
71
72 //set calohash maximums
73 m_LArHashMax =0;
74 m_LArHashMax = m_lar_em_id->channel_hash_max()
75 + m_lar_hec_id->channel_hash_max()
76 + m_lar_fcal_id->channel_hash_max();
78
79 //set calohash minimum
80 m_CaloHashMin = 0;
81
82 ATH_MSG_DEBUG( " => CaloHashMin= " <<m_CaloHashMin << " CaloHashMax= " <<m_CaloHashMax );
83 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
84 //gain-thresholds
85 m_LowGainThresh[CaloCell_ID::LAREM] = 3900;//ADC counts in MediumGain
86 m_HighGainThresh[CaloCell_ID::LAREM] = 1300;//ADC counts in MediumGain
87 m_LowGainThresh[CaloCell_ID::LARHEC] = 2500;//ADC counts in MediumGain
88 m_HighGainThresh[CaloCell_ID::LARHEC] = 0;//-> high-gain never used for HEC
89
90 m_LowGainThresh[CaloCell_ID::LARFCAL] = 2000.;//ADC counts
91 m_HighGainThresh[CaloCell_ID::LARFCAL] = 1100.;//ADC counts
92
95 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
100
101 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
102
103 ATH_CHECK(m_outputElecKey.initialize());
104 ATH_CHECK(m_outputPileupKey.initialize());
105
106 ATH_CHECK( m_caloMgrKey.initialize() );
107 ATH_CHECK( m_caloSCMgrKey.initialize(m_isSC) );
108
109 return StatusCode::SUCCESS;
110}
bool const RAWDATA *ch2 const
const ServiceHandle< StoreGateSvc > & detStore() const
CaloGain::CaloGain m_highestGain[m_nCalos]
SG::ReadCondHandleKey< CaloSuperCellDetDescrManager > m_caloSCMgrKey
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
SG::WriteCondHandleKey< CaloNoise > m_outputPileupKey
float m_HighGainThresh[m_nCalos]
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
SG::ReadCondHandleKey< ILArNoise > m_noiseKey
SG::ReadCondHandleKey< ILArAutoCorr > m_acorrKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
float m_LowGainThresh[m_nCalos]
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
SG::ReadCondHandleKey< ILArOFC > m_LArOFCObjKey
SG::WriteCondHandleKey< CaloNoise > m_outputElecKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
SG::ReadCondHandleKey< ILArMinBias > m_LArMinBiasObjKey
const CaloCell_SuperCell_ID * m_calosupercell_id
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey

◆ initIndex()

StatusCode CaloNoiseCompCondAlg::initIndex ( )
private

Definition at line 297 of file CaloNoiseCompCondAlg.cxx.

297 {
298 //::::::::::::::::::::::::::::::::::::::
299 m_indexContainer.clear();
301 static_cast<unsigned int> (-1));
302
303 //maybe the other container sould be reset
305 m_idSymmCaloHashContainer.reserve(5000);
306
307
308
309 for (unsigned int intIdCaloHash=m_CaloHashMin; intIdCaloHash<m_CaloHashMax;
310 ++intIdCaloHash)
311 {
312
313
314 IdentifierHash idCaloHash=static_cast<IdentifierHash>(intIdCaloHash);
315
316 // initialize the vector of indexes (big vector without symmetry)
317
318
319
320
321 // o idCaloHash -> id -> idSymm (symmetry phi->0 and z->|z|)
322 // o idSymm -> idSymmCaloHash
323 // o idSymmCaloHash stored in m_idSymmCaloHashContainer
324 // o an index is associated to an idSymmCaloHash
325 // o index stored in m_indexContainer
326
327 CaloCell_ID::SUBCALO iCalo = this->caloNum(idCaloHash);
328 Identifier id = m_calocell_id->cell_id(idCaloHash);
329 Identifier regId;
330 Identifier idSymm;
331 IdentifierHash idSymmCaloHash;
332
333 if(m_UseSymmetry){
334 if(iCalo==CaloCell_ID::LAREM)
335 {
336 int barrel_ec = m_lar_em_id->barrel_ec(id);
337 int sampling = m_lar_em_id->sampling(id);
338 int region = m_lar_em_id->region(id);
339 int eta = m_lar_em_id->eta(id);
340 regId = m_lar_em_id->region_id(abs(barrel_ec),sampling,region);
341 idSymm = m_lar_em_id->channel_id(regId,
342 eta,
343 m_calocell_id->phi_min(regId));
344 idSymmCaloHash= m_calocell_id->calo_cell_hash(idSymm);
345 }
346 else if(iCalo==CaloCell_ID::LARHEC)
347 {
348 int pos_neg = m_lar_hec_id->pos_neg(id);
349 int sampling = m_lar_hec_id->sampling(id);
350 int region = m_lar_hec_id->region(id);
351 int eta = m_lar_hec_id->eta(id);
352 regId = m_lar_hec_id->region_id(abs(pos_neg),sampling,region);
353 idSymm = m_lar_hec_id->channel_id(regId,
354 eta,
355 m_calocell_id->phi_min(regId));
356 idSymmCaloHash= m_calocell_id->calo_cell_hash(idSymm);
357 }
358 else if(iCalo==CaloCell_ID::LARFCAL)
359 {
360 int pos_neg = m_lar_fcal_id->pos_neg(id);
361 int module = m_lar_fcal_id->module(id);
362 int eta = m_lar_fcal_id->eta(id);
363 int phi = m_lar_fcal_id->phi(id);
364 if(phi>7) phi = phi-8; //as in LArMCSymTool
365 regId = m_lar_fcal_id->module_id(abs(pos_neg),module);
366 idSymm = m_lar_fcal_id->channel_id(regId,
367 eta,
368 phi);
369 idSymmCaloHash= m_calocell_id->calo_cell_hash(idSymm);
370 }
371 else if(iCalo==CaloCell_ID::TILE)
372 {
373 idSymm = id;
374 idSymmCaloHash = m_calocell_id->calo_cell_hash(idSymm);
375 }
376 else
377 {
378 ATH_MSG_WARNING("CaloNoiseCompCondAlg::chooseIndex wrong id ! " << m_lar_em_id->show_to_string(id));
379 continue ;
380 }
381
382 assert (idSymmCaloHash < m_CaloHashMax);
383 if (m_indexContainer[idSymmCaloHash] != static_cast<unsigned int>(-1)) {
384 m_indexContainer[idCaloHash] = m_indexContainer[idSymmCaloHash];
385 continue;
386 }
387 }
388 else idSymmCaloHash=idCaloHash;// no symmetry
389
390
391 if(iCalo!=CaloCell_ID::TILE) {
392 if(this->checkIfConnected(id)==false) {
393 continue;
394 }
395 }
396
397
398 /* cabling eta= 0 -> 0.8 (for private debug)
399 int samp = m_lar_em_id->sampling(id);
400 int region= m_lar_em_id->region(id);
401 int eta = m_lar_em_id->eta(id);
402 int phi = m_lar_em_id->phi(id);
403 if(samp==1 && eta>=256) return;
404 if(samp==1 && eta==0) return;
405 if(samp==2 && eta>=32) return;
406 if(samp==3 && eta>=16) return;
407 if(region>0) return;
408 */
409
410
411 //we come here if idSymmHash is not yet indexed (and is connected)
412 m_indexContainer[idCaloHash] =
413 m_indexContainer[idSymmCaloHash] =
415
416 m_idSymmCaloHashContainer.push_back(idSymmCaloHash);
417 }// loop on all cells
418
419 return StatusCode::SUCCESS;
420}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
bool checkIfConnected(const Identifier &id)

◆ initPileUpNoise()

StatusCode CaloNoiseCompCondAlg::initPileUpNoise ( )
private

Definition at line 574 of file CaloNoiseCompCondAlg.cxx.

575{
576 // initialize the parameters (the same for each event for each Identifier)
577 // for the calculation of the PileUp noise
578
579 ATH_MSG_DEBUG( "initPileUpNoise() begin " );
580 ATH_MSG_INFO( "N events of Minimum Bias per bunch crossing = " << m_Nminbias);
581 //::::::::::::::::::::::::::::::::::::::
582 for (unsigned int it=0; it<m_pileupNoiseContainer.size(); ++it)
585 //::::::::::::::::::::::::::::::::::::::
586 ATH_MSG_DEBUG( "initPileUpNoise() end " );
587 return StatusCode::SUCCESS;
588}
float calculatePileUpNoise(const IdentifierHash &idCaloHash, const float &Nminbias)

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isBadValue()

bool CaloNoiseCompCondAlg::isBadValue ( float tested_value)
inlineprivate

Definition at line 318 of file CaloNoiseCompCondAlg.h.

319{
320 if(tested_value<BADVALUE+1) return true;
321 return false;
322}

◆ isClonable()

◆ isReEntrant()

virtual bool AthCondAlgorithm::isReEntrant ( ) const
inlineoverridevirtualinherited

Avoid scheduling algorithm multiple times.

With multiple concurrent events, conditions objects often expire simultaneously for all slots. To avoid that the scheduler runs the CondAlg in each slot, we declare it as "non-reentrant". This ensures that the conditions objects are only created once.

In case a particular CondAlg should behave differently, it can override this method again and return true.

See also
ATEAM-836

Definition at line 39 of file AthCondAlgorithm.h.

39{ return false; }

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ pileupNoiseRMS() [1/2]

float CaloNoiseCompCondAlg::pileupNoiseRMS ( const CaloCell * caloCell,
const float Nminbias = -1 )

Definition at line 1158 of file CaloNoiseCompCondAlg.cxx.

1159 {
1160 const CaloDetDescrElement* caloDDE = theCell->caloDDE();
1161 return this->pileupNoiseRMS(caloDDE,Nminbias);
1162}
float pileupNoiseRMS(const CaloCell *caloCell, const float Nminbias=-1)

◆ pileupNoiseRMS() [2/2]

float CaloNoiseCompCondAlg::pileupNoiseRMS ( const CaloDetDescrElement * caloDDE,
const float Nminbias = -1 )

Definition at line 1181 of file CaloNoiseCompCondAlg.cxx.

1184{
1185
1186
1187 const IdentifierHash idCaloHash = caloDDE->calo_hash();
1188 CaloCell_ID::SUBCALO iCalo = this->caloNum(idCaloHash);
1189
1190 if(iCalo!=CaloCell_ID::TILE)
1191 {
1192 int index=this->index(idCaloHash);
1193 float PileUp;
1194 // check if noise stored in container was calcualted with this Nminbias
1195 if ((Nminbias==m_Nminbias) || (Nminbias<=0)) //default
1197 else
1198 PileUp=this->calculatePileUpNoise(idCaloHash,Nminbias);//slower !!
1199 return PileUp;
1200 }
1201 else//TILE
1202 {
1203 return 0.;
1204 }
1205}

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ retrieveCellDatabase()

StatusCode CaloNoiseCompCondAlg::retrieveCellDatabase ( const IdentifierHash & idCaloHash,
const Identifier & id,
int igain,
std::vector< bool > & retrieve )
private

Definition at line 808 of file CaloNoiseCompCondAlg.cxx.

812{
813 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
814 //ADC2MEV
815 if(retrieve[iADC2MEV])
816 {
817 {
818 int index=this->index(idCaloHash);
820 }
821 }
822
823 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
824 //SIGMANOISE
825 if(retrieve[iSIGMANOISE])
826 {
827 if(m_ped) {
828 m_RMSpedestal = m_ped->pedestalRMS(m_cabling->createSignalChannelID(id),igain);
831 else
832 {
833 m_SigmaNoise = 0.;
834 }
835 } else {
836 m_SigmaNoise = m_noise->noise(m_cabling->createSignalChannelID(id),igain);
837
838 }
839 }
840
841 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
842 //AUTOCORR
843 if(retrieve[iAUTOCORR])
844 {
845 m_AutoCorr = m_acorr->autoCorr(m_cabling->createSignalChannelID(id),igain);
847 ATH_MSG_VERBOSE("AutoCorr= ");
848 for(unsigned int i=0;i<m_AutoCorr.size();++i)
850 }
851
852 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
853 //OFC
854 if(retrieve[iOFC])
855 {
856 m_OFC = m_ofccond->OFC_a(m_cabling->createSignalChannelID(id), igain) ;
858 ATH_MSG_VERBOSE("OFC= ");
859 for(unsigned int i=0;i<m_OFC.size();++i)
860 ATH_MSG_VERBOSE(m_OFC[i]<<" ");
861 }
862
863 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
864 //SHAPE
865 if(retrieve[iSHAPE])
866 {
867 m_Shape = m_shapecond->Shape(m_cabling->createSignalChannelID(id),0);
869 ATH_MSG_VERBOSE("Shape= ");
870 for(unsigned int i=0;i<m_Shape.size();++i)
871 ATH_MSG_VERBOSE(m_Shape[i]<<" ");
872 }
873
874 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
875 //MinimumBias RMS
876 if(retrieve[iMINBIASRMS])
877 {
878 m_MinBiasRMS = m_minbias->minBiasRMS(m_cabling->createSignalChannelID(id));
879 ATH_MSG_VERBOSE("MinBiasRMS="<<m_MinBiasRMS);
880 }
881
882 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
883 //SAMPLING FRACTION
884 if(retrieve[iFSAMPL])
885 {
886 m_fSampl = m_fsamplcond->FSAMPL(m_cabling->createSignalChannelID(id));
887 ATH_MSG_VERBOSE("fSampl="<<m_fSampl);
888 }
889
890 return this->checkCellDatabase(id,igain, retrieve);
891}
#define ATH_MSG_VERBOSE(x)
StatusCode checkCellDatabase(const Identifier &id, int igain, std::vector< bool > &retrieve)
const ILArPedestal * m_ped
const ILArAutoCorr * m_acorr
const ILArfSampl * m_fsamplcond
const ILArMinBias * m_minbias
const ILArShape * m_shapecond

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ stop()

StatusCode CaloNoiseCompCondAlg::stop ( )
finaloverridevirtual

Definition at line 115 of file CaloNoiseCompCondAlg.cxx.

115 {
116
117 const EventContext& ctx = Gaudi::Hive::currentContext();
118
119 if(m_isSC) {
120 SG::ReadCondHandle<CaloSuperCellDetDescrManager> caloSCMgrHandle{m_caloSCMgrKey};
121 if(!caloSCMgrHandle.isValid()) {
122 ATH_MSG_ERROR( "Do not have CaloSuperCellDetDescrMgr");
123 return StatusCode::FAILURE;
124 }
125
126 m_calo_dd_man = static_cast<const CaloDetDescrManager_Base*>(*caloSCMgrHandle);
127
128 } else {
129 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{m_caloMgrKey};
130 if(!caloMgrHandle.isValid()) {
131 ATH_MSG_ERROR( "Do not have CaloDetDescrMgr");
132 return StatusCode::FAILURE;
133 }
134
135 m_calo_dd_man = static_cast<const CaloDetDescrManager_Base*>(*caloMgrHandle);
136 }
137 m_calocell_id = m_calo_dd_man->getCaloCell_ID();
138
139
140 //Set up write handles
141 SG::WriteCondHandle<CaloNoise> writeElecHandle{m_outputElecKey,ctx};
142 SG::WriteCondHandle<CaloNoise> writePileupHandle{m_outputPileupKey,ctx};
143
144 if (writeElecHandle.isValid() && writePileupHandle.isValid()) {
145 ATH_MSG_DEBUG("Found valid write handles");
146 return StatusCode::SUCCESS;
147 }
148
149 //Start with infinite range and narrow it down
150 const EventIDRange fullRange=IOVInfiniteRange::infiniteMixed();
151 writeElecHandle.addDependency (fullRange);
152 writePileupHandle.addDependency (fullRange);
153
154 // Read input conditions
155 auto cablingHdl = SG::ReadCondHandle<LArOnOffIdMapping>(m_cablingKey, ctx);
156 if(!cablingHdl.isValid()) {
157 ATH_MSG_ERROR( "Do not have cabling");
158 return StatusCode::FAILURE;
159 }
160 m_cabling=*cablingHdl;
161 writeElecHandle.addDependency (cablingHdl);
162 writePileupHandle.addDependency (cablingHdl);
163
164 SG::ReadCondHandle<LArADC2MeV> adc2mevHdl (m_adc2mevKey, ctx);
165 const LArADC2MeV* adc2mev{*adc2mevHdl};
166 if(!adc2mev) {
167 ATH_MSG_ERROR( "Do not have adc2mev");
168 return StatusCode::FAILURE;
169 }
170 writeElecHandle.addDependency (adc2mevHdl);
171 writePileupHandle.addDependency (adc2mevHdl);
172
173 if(m_noiseKey.empty()) {
174 auto pedHdl=SG::ReadCondHandle<ILArPedestal>(m_pedestalKey, ctx);
175 if(!pedHdl.isValid()){
176 ATH_MSG_ERROR( "Do not have pedestals");
177 return StatusCode::FAILURE;
178 }
179 m_ped=*pedHdl;
180 writeElecHandle.addDependency (pedHdl);
181 } else {
182 auto noiseHdl=SG::ReadCondHandle<ILArNoise>(m_noiseKey, ctx);
183 if(!noiseHdl.isValid()){
184 ATH_MSG_ERROR( "Do not have noise");
185 return StatusCode::FAILURE;
186 }
187 m_noise=*noiseHdl;
188 writeElecHandle.addDependency (noiseHdl);
189
190 }
191
192 auto acorrHdl=SG::ReadCondHandle<ILArAutoCorr>(m_acorrKey, ctx);
193 if(!acorrHdl.isValid()){
194 ATH_MSG_ERROR( "Do not have autocorr");
195 return StatusCode::FAILURE;
196 }
197 m_acorr=*acorrHdl;
198 writeElecHandle.addDependency (acorrHdl);
199
200 auto ofcHdl=SG::ReadCondHandle<ILArOFC>(m_LArOFCObjKey, ctx);
201 if(!ofcHdl.isValid()){
202 ATH_MSG_ERROR( "Do not have ofc");
203 return StatusCode::FAILURE;
204 }
205 m_ofccond=*ofcHdl;
206 writeElecHandle.addDependency (ofcHdl);
207 writePileupHandle.addDependency (ofcHdl);
208
209 auto shapeHdl=SG::ReadCondHandle<ILArShape>(m_shapeKey, ctx);
210 if(!shapeHdl.isValid()){
211 ATH_MSG_ERROR( "Do not have shape");
212 return StatusCode::FAILURE;
213 }
214 m_shapecond=*shapeHdl;
215 writeElecHandle.addDependency (shapeHdl);
216 writePileupHandle.addDependency (shapeHdl);
217
218 auto fsamplHdl=SG::ReadCondHandle<ILArfSampl>(m_fSamplKey, ctx);
219 if(!fsamplHdl.isValid()){
220 ATH_MSG_ERROR( "Do not have fSampl");
221 return StatusCode::FAILURE;
222 }
223 m_fsamplcond=*fsamplHdl;
224 writePileupHandle.addDependency (fsamplHdl);
225
226
227 auto minbiasHdl=SG::ReadCondHandle<ILArMinBias>(m_LArMinBiasObjKey, ctx);
228 if(!minbiasHdl.isValid()){
229 ATH_MSG_ERROR( "Do not have minbias");
230 return StatusCode::FAILURE;
231 }
232 m_minbias=*minbiasHdl;
233 writePileupHandle.addDependency (minbiasHdl);
234
235 ATH_CHECK(this->initData(adc2mev));
236
237 //Create the CaloNoise CDO:
238 std::unique_ptr<CaloNoise> elecNoiseObj=std::make_unique<CaloNoise>(m_LArHashMax,m_nGains, 0,4,
240 std::unique_ptr<CaloNoise> pileupNoiseObj=std::make_unique<CaloNoise>(m_LArHashMax,m_nGains, 0,4,
242 //Get writeable access to underlying storage (boost::multi_array)
243 auto& elecnoise = elecNoiseObj->larStorage();
244 auto& pileupnoise = pileupNoiseObj->larStorage();
245
246 for(unsigned ihash=m_CaloHashMin; ihash < m_CaloHashMax; ++ihash) {
247
248 Identifier id=m_calocell_id->cell_id(ihash);
249 auto dde=m_calo_dd_man->get_element(id);
250 auto elec3gains = elecNoiseRMS3gains(dde);
251 auto pns = pileupNoiseRMS(dde,m_Nminbias);
252
253 for (unsigned igain=0;igain<m_nGains;++igain) {
254 elecnoise[igain][ihash] = elec3gains[igain];
255 pileupnoise[igain][ihash] = pns;
256 }
257 }
258
259 // store output
260 ATH_CHECK(writeElecHandle.record(std::move(elecNoiseObj)));
261 ATH_MSG_INFO("recorded new CaloNoise object with key " << writeElecHandle.key() << " and range " << writeElecHandle.getRange());
262
263 ATH_CHECK(writePileupHandle.record(std::move(pileupNoiseObj)));
264 ATH_MSG_INFO("recorded new CaloNoise object with key " << writePileupHandle.key() << " and range " << writePileupHandle.getRange());
265
266 return StatusCode::SUCCESS;
267}
StatusCode initData(const LArADC2MeV *adc2mev)
std::vector< float > elecNoiseRMS3gains(const CaloDetDescrElement *caloDDE)
static constexpr int m_nGains
static EventIDRange infiniteMixed()
Produces an mixed EventIDRange that is infinite in Time and RunLumi.
const std::string & key() const
void addDependency(const EventIDRange &range)
const EventIDRange & getRange() const
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ totalNoiseRMS() [1/2]

float CaloNoiseCompCondAlg::totalNoiseRMS ( const CaloCell * caloCell,
const float Nminbias = -1 )

Definition at line 1166 of file CaloNoiseCompCondAlg.cxx.

1167 {
1168 float elecNoiseRMS_tmp = this->elecNoiseRMS(theCell);
1169 float pileupNoiseRMS_tmp = this->pileupNoiseRMS(theCell,Nminbias);
1170
1171 if(elecNoiseRMS_tmp>=0)
1172 return std::sqrt((elecNoiseRMS_tmp*elecNoiseRMS_tmp) + (pileupNoiseRMS_tmp*pileupNoiseRMS_tmp));
1173 return(-1);
1174}

◆ totalNoiseRMS() [2/2]

float CaloNoiseCompCondAlg::totalNoiseRMS ( const CaloDetDescrElement * caloDDE,
const CaloGain::CaloGain gain,
const float Nminbias = -1 )

Definition at line 1211 of file CaloNoiseCompCondAlg.cxx.

1214{
1215 float elecNoiseRMS_tmp = this->elecNoiseRMS(caloDDE,gain);
1216 float pileupNoiseRMS_tmp = this->pileupNoiseRMS(caloDDE,Nminbias);
1217
1218 float totalNoiseRMS = -1;
1219
1220 // checks that elecNoise is valid
1221 if(elecNoiseRMS_tmp>0)
1222 totalNoiseRMS= std::sqrt((elecNoiseRMS_tmp*elecNoiseRMS_tmp) + (pileupNoiseRMS_tmp*pileupNoiseRMS_tmp) );
1223
1224 return totalNoiseRMS;
1225}
float totalNoiseRMS(const CaloCell *caloCell, const float Nminbias=-1)

◆ totalNoiseRMSHighestGain() [1/2]

float CaloNoiseCompCondAlg::totalNoiseRMSHighestGain ( const CaloCell * caloCell,
const float Nminbias = -1 )

Definition at line 1230 of file CaloNoiseCompCondAlg.cxx.

1232{
1233 return this->totalNoiseRMSHighestGain(caloCell->caloDDE(),Nminbias);
1234}
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition CaloCell.h:321
float totalNoiseRMSHighestGain(const CaloCell *caloCell, const float Nminbias=-1)

◆ totalNoiseRMSHighestGain() [2/2]

float CaloNoiseCompCondAlg::totalNoiseRMSHighestGain ( const CaloDetDescrElement * caloDDE,
const float Nminbias = -1 )

Definition at line 1239 of file CaloNoiseCompCondAlg.cxx.

1241{
1242 //getSubCalo can return 999999 (CaloCell_ID::SUBCALO::NOT_VALID)
1243 CaloCell_ID::SUBCALO iCalo = caloDDE->getSubCalo();
1244 if (iCalo == CaloCell_ID::SUBCALO::NOT_VALID){
1245 throw std::runtime_error("Invalid CaloID in CaloNoiseCompCondAlg::totalNoiseRMSHighestGain");
1246 }
1247 CaloGain::CaloGain highestGain=m_highestGain[iCalo];
1248 return this->totalNoiseRMS(caloDDE,highestGain,Nminbias);
1249}

◆ updateDiagnostic()

void CaloNoiseCompCondAlg::updateDiagnostic ( int reason,
const std::string & reason_name,
int igain,
bool & noiseOK )
private

Definition at line 1031 of file CaloNoiseCompCondAlg.cxx.

1032{
1033 int nTmp=m_nCellsWithProblem[igain];
1034 if (nTmp >= 5000) return;
1035 int nr = m_nReason[nTmp][igain];
1036 if (nr >= 10) return;
1037 m_reason[nTmp][nr][igain]=ireason;
1038 m_reasonName[ireason]=nameReason;
1039 ++m_nReason[nTmp][igain];
1040 ++m_itReason[ireason][igain];
1041 noiseOK=false;
1042}

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ m_acorr

const ILArAutoCorr* CaloNoiseCompCondAlg::m_acorr =nullptr
private

Definition at line 244 of file CaloNoiseCompCondAlg.h.

◆ m_acorrKey

SG::ReadCondHandleKey<ILArAutoCorr> CaloNoiseCompCondAlg::m_acorrKey {this,"AutocorrKey","LArAutoCorrSym","SG Key of LArAutoCorr object"}
private

Definition at line 243 of file CaloNoiseCompCondAlg.h.

243{this,"AutocorrKey","LArAutoCorrSym","SG Key of LArAutoCorr object"};

◆ m_adc2mevContainer

VectorContainer CaloNoiseCompCondAlg::m_adc2mevContainer
private

Definition at line 274 of file CaloNoiseCompCondAlg.h.

◆ m_Adc2MeVFactor

float CaloNoiseCompCondAlg::m_Adc2MeVFactor {}
private

Definition at line 216 of file CaloNoiseCompCondAlg.h.

216{};

◆ m_adc2mevKey

SG::ReadCondHandleKey<LArADC2MeV> CaloNoiseCompCondAlg::m_adc2mevKey {this, "ADC2MeVKey", "LArADC2MeV", "SG Key of the LArADC2MeV CDO" }
private

Definition at line 235 of file CaloNoiseCompCondAlg.h.

235{this, "ADC2MeVKey", "LArADC2MeV", "SG Key of the LArADC2MeV CDO" };

◆ m_AdcPerMev

double CaloNoiseCompCondAlg::m_AdcPerMev {}
private

Definition at line 225 of file CaloNoiseCompCondAlg.h.

225{};

◆ m_atlas_id

const AtlasDetectorID* CaloNoiseCompCondAlg::m_atlas_id {}
private

Definition at line 182 of file CaloNoiseCompCondAlg.h.

182{};

◆ m_AutoCorr

LArVectorProxy CaloNoiseCompCondAlg::m_AutoCorr
private

Definition at line 219 of file CaloNoiseCompCondAlg.h.

◆ m_c

float CaloNoiseCompCondAlg::m_c[32][32] {}
private

Definition at line 220 of file CaloNoiseCompCondAlg.h.

220{};

◆ m_cabling

const LArOnOffIdMapping* CaloNoiseCompCondAlg::m_cabling =nullptr
private

Definition at line 233 of file CaloNoiseCompCondAlg.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> CaloNoiseCompCondAlg::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 232 of file CaloNoiseCompCondAlg.h.

232{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};

◆ m_calo_dd_man

const CaloDetDescrManager_Base* CaloNoiseCompCondAlg::m_calo_dd_man =nullptr
private

Definition at line 230 of file CaloNoiseCompCondAlg.h.

◆ m_calo_id_man

const CaloIdManager* CaloNoiseCompCondAlg::m_calo_id_man {}
private

Definition at line 184 of file CaloNoiseCompCondAlg.h.

184{};

◆ m_calocell_id

const CaloCell_Base_ID* CaloNoiseCompCondAlg::m_calocell_id {}
private

Definition at line 190 of file CaloNoiseCompCondAlg.h.

190{};

◆ m_CaloHashMax

IdentifierHash CaloNoiseCompCondAlg::m_CaloHashMax
private

Definition at line 195 of file CaloNoiseCompCondAlg.h.

◆ m_CaloHashMin

IdentifierHash CaloNoiseCompCondAlg::m_CaloHashMin
private

Definition at line 196 of file CaloNoiseCompCondAlg.h.

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> CaloNoiseCompCondAlg::m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" }
private

Definition at line 228 of file CaloNoiseCompCondAlg.h.

228{this,"CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" };

◆ m_caloSCMgrKey

SG::ReadCondHandleKey<CaloSuperCellDetDescrManager> CaloNoiseCompCondAlg::m_caloSCMgrKey {this,"CaloSuperCellDetDescrManager", "CaloSuperCellDetDescrManager", "SG Key for CaloSuperCellDetDescrManager in the Condition Store" }
private

Definition at line 229 of file CaloNoiseCompCondAlg.h.

229{this,"CaloSuperCellDetDescrManager", "CaloSuperCellDetDescrManager", "SG Key for CaloSuperCellDetDescrManager in the Condition Store" };

◆ m_calosupercell_id

const CaloCell_SuperCell_ID* CaloNoiseCompCondAlg::m_calosupercell_id {}
private

Definition at line 191 of file CaloNoiseCompCondAlg.h.

191{};

◆ m_deltaBunch

IntegerProperty CaloNoiseCompCondAlg::m_deltaBunch {this, "deltaBunch", 1}
private

Definition at line 201 of file CaloNoiseCompCondAlg.h.

201{this, "deltaBunch", 1};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_diagnostic

bool CaloNoiseCompCondAlg::m_diagnostic[m_nGains] {}
private

Definition at line 172 of file CaloNoiseCompCondAlg.h.

172{};

◆ m_DiagnosticHG

BooleanProperty CaloNoiseCompCondAlg::m_DiagnosticHG {this, "DiagnosticHG", false}
private

Definition at line 204 of file CaloNoiseCompCondAlg.h.

204{this, "DiagnosticHG", false};

◆ m_DiagnosticLG

BooleanProperty CaloNoiseCompCondAlg::m_DiagnosticLG {this, "DiagnosticLG", false}
private

Definition at line 206 of file CaloNoiseCompCondAlg.h.

206{this, "DiagnosticLG", false};

◆ m_DiagnosticMG

BooleanProperty CaloNoiseCompCondAlg::m_DiagnosticMG {this, "DiagnosticMG", false}
private

Definition at line 205 of file CaloNoiseCompCondAlg.h.

205{this, "DiagnosticMG", false};

◆ m_DumpDatabaseHG

BooleanProperty CaloNoiseCompCondAlg::m_DumpDatabaseHG {this, "DumpDatabaseHG", false}
private

Definition at line 207 of file CaloNoiseCompCondAlg.h.

207{this, "DumpDatabaseHG", false};

◆ m_DumpDatabaseLG

BooleanProperty CaloNoiseCompCondAlg::m_DumpDatabaseLG {this, "DumpDatabaseLG", false}
private

Definition at line 209 of file CaloNoiseCompCondAlg.h.

209{this, "DumpDatabaseLG", false};

◆ m_DumpDatabaseMG

BooleanProperty CaloNoiseCompCondAlg::m_DumpDatabaseMG {this, "DumpDatabaseMG", false}
private

Definition at line 208 of file CaloNoiseCompCondAlg.h.

208{this, "DumpDatabaseMG", false};

◆ m_elecNoiseCELLContainer

VectorContainer CaloNoiseCompCondAlg::m_elecNoiseCELLContainer
private

Definition at line 272 of file CaloNoiseCompCondAlg.h.

◆ m_elecNoiseRAWContainer

VectorContainer CaloNoiseCompCondAlg::m_elecNoiseRAWContainer
private

Definition at line 271 of file CaloNoiseCompCondAlg.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_firstSample

UnsignedIntegerProperty CaloNoiseCompCondAlg::m_firstSample {this, "firstSample", 0}
private

Definition at line 202 of file CaloNoiseCompCondAlg.h.

202{this, "firstSample", 0};

◆ m_fSampl

float CaloNoiseCompCondAlg::m_fSampl {}
private

Definition at line 224 of file CaloNoiseCompCondAlg.h.

224{};

◆ m_fsamplcond

const ILArfSampl* CaloNoiseCompCondAlg::m_fsamplcond = nullptr
private

Definition at line 253 of file CaloNoiseCompCondAlg.h.

◆ m_fSamplKey

SG::ReadCondHandleKey<ILArfSampl> CaloNoiseCompCondAlg::m_fSamplKey {this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"}
private

Definition at line 252 of file CaloNoiseCompCondAlg.h.

252{this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"};

◆ m_highestGain

CaloGain::CaloGain CaloNoiseCompCondAlg::m_highestGain[m_nCalos] {}
private

Definition at line 170 of file CaloNoiseCompCondAlg.h.

170{};

◆ m_HighGainThresh

float CaloNoiseCompCondAlg::m_HighGainThresh[m_nCalos] {}
private

Definition at line 169 of file CaloNoiseCompCondAlg.h.

169{};

◆ m_idHash

int CaloNoiseCompCondAlg::m_idHash[5000][m_nGains] {}
private

Definition at line 176 of file CaloNoiseCompCondAlg.h.

176{};

◆ m_idSymmCaloHashContainer

std::vector<IdentifierHash> CaloNoiseCompCondAlg::m_idSymmCaloHashContainer
private

Definition at line 267 of file CaloNoiseCompCondAlg.h.

◆ m_indexContainer

std::vector<IdentifierHash> CaloNoiseCompCondAlg::m_indexContainer
private

Definition at line 264 of file CaloNoiseCompCondAlg.h.

◆ m_isSC

BooleanProperty CaloNoiseCompCondAlg::m_isSC {this, "SuperCell", false}
private

Definition at line 211 of file CaloNoiseCompCondAlg.h.

211{this, "SuperCell", false};

◆ m_itReason

int CaloNoiseCompCondAlg::m_itReason[10][m_nGains] {}
private

Definition at line 175 of file CaloNoiseCompCondAlg.h.

175{};

◆ m_lar_em_id

const LArEM_Base_ID* CaloNoiseCompCondAlg::m_lar_em_id {}
private

Definition at line 186 of file CaloNoiseCompCondAlg.h.

186{};

◆ m_lar_fcal_id

const LArFCAL_Base_ID* CaloNoiseCompCondAlg::m_lar_fcal_id {}
private

Definition at line 188 of file CaloNoiseCompCondAlg.h.

188{};

◆ m_lar_hec_id

const LArHEC_Base_ID* CaloNoiseCompCondAlg::m_lar_hec_id {}
private

Definition at line 187 of file CaloNoiseCompCondAlg.h.

187{};

◆ m_LArHashMax

IdentifierHash CaloNoiseCompCondAlg::m_LArHashMax
private

Definition at line 193 of file CaloNoiseCompCondAlg.h.

◆ m_LArMinBiasObjKey

SG::ReadCondHandleKey<ILArMinBias> CaloNoiseCompCondAlg::m_LArMinBiasObjKey {this, "LArMinBiasKey", "LArMinBiasSym", "SG Key of LArMinBias"}
private

Definition at line 255 of file CaloNoiseCompCondAlg.h.

255{this, "LArMinBiasKey", "LArMinBiasSym", "SG Key of LArMinBias"};

◆ m_LArOFCObjKey

SG::ReadCondHandleKey<ILArOFC> CaloNoiseCompCondAlg::m_LArOFCObjKey {this, "OFKey","LArOFC", "SG Key of LAr OFCs"}
private

Definition at line 246 of file CaloNoiseCompCondAlg.h.

246{this, "OFKey","LArOFC", "SG Key of LAr OFCs"};

◆ m_LowGainThresh

float CaloNoiseCompCondAlg::m_LowGainThresh[m_nCalos] {}
private

Definition at line 168 of file CaloNoiseCompCondAlg.h.

168{};

◆ m_minbias

const ILArMinBias* CaloNoiseCompCondAlg::m_minbias = nullptr
private

Definition at line 256 of file CaloNoiseCompCondAlg.h.

◆ m_MinBiasRMS

float CaloNoiseCompCondAlg::m_MinBiasRMS {}
private

Definition at line 226 of file CaloNoiseCompCondAlg.h.

226{};

◆ m_nCalos

int CaloNoiseCompCondAlg::m_nCalos =NCALOS
staticconstexprprivate

Definition at line 166 of file CaloNoiseCompCondAlg.h.

◆ m_nCellsWithProblem

int CaloNoiseCompCondAlg::m_nCellsWithProblem[m_nGains] {}
private

Definition at line 173 of file CaloNoiseCompCondAlg.h.

173{};

◆ m_nGains

int CaloNoiseCompCondAlg::m_nGains =NGAINS
staticconstexprprivate

Definition at line 167 of file CaloNoiseCompCondAlg.h.

◆ m_Nminbias

FloatProperty CaloNoiseCompCondAlg::m_Nminbias {this, "NMinBias", -1}
private

Definition at line 210 of file CaloNoiseCompCondAlg.h.

210{this, "NMinBias", -1};

◆ m_noise

const ILArNoise* CaloNoiseCompCondAlg::m_noise =nullptr
private

Definition at line 241 of file CaloNoiseCompCondAlg.h.

◆ m_noiseKey

SG::ReadCondHandleKey<ILArNoise> CaloNoiseCompCondAlg::m_noiseKey {this,"NoiseKey","","SG Key of LArNoise object"}
private

Definition at line 240 of file CaloNoiseCompCondAlg.h.

240{this,"NoiseKey","","SG Key of LArNoise object"};

◆ m_nReason

int CaloNoiseCompCondAlg::m_nReason[5000][m_nGains] {}
private

Definition at line 174 of file CaloNoiseCompCondAlg.h.

174{};

◆ m_nsamples

int CaloNoiseCompCondAlg::m_nsamples {}
private

Definition at line 222 of file CaloNoiseCompCondAlg.h.

222{};

◆ m_OFC

LArVectorProxy CaloNoiseCompCondAlg::m_OFC
private

Definition at line 217 of file CaloNoiseCompCondAlg.h.

◆ m_ofccond

const ILArOFC* CaloNoiseCompCondAlg::m_ofccond =nullptr
private

Definition at line 247 of file CaloNoiseCompCondAlg.h.

◆ m_outputElecKey

SG::WriteCondHandleKey<CaloNoise> CaloNoiseCompCondAlg::m_outputElecKey {this, "OutputElecKey", "elecNoise", "SG Key of resulting noise CDO"}
private

Definition at line 259 of file CaloNoiseCompCondAlg.h.

259{this, "OutputElecKey", "elecNoise", "SG Key of resulting noise CDO"};

◆ m_outputPileupKey

SG::WriteCondHandleKey<CaloNoise> CaloNoiseCompCondAlg::m_outputPileupKey {this, "OutputPileupKey", "pileupNoise", "SG Key of resulting noise CDO"}
private

Definition at line 260 of file CaloNoiseCompCondAlg.h.

260{this, "OutputPileupKey", "pileupNoise", "SG Key of resulting noise CDO"};

◆ m_ped

const ILArPedestal* CaloNoiseCompCondAlg::m_ped =nullptr
private

Definition at line 238 of file CaloNoiseCompCondAlg.h.

◆ m_pedestalKey

SG::ReadCondHandleKey<ILArPedestal> CaloNoiseCompCondAlg::m_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"}
private

Definition at line 237 of file CaloNoiseCompCondAlg.h.

237{this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"};

◆ m_pileupNoiseContainer

SingleContainer CaloNoiseCompCondAlg::m_pileupNoiseContainer
private

Definition at line 273 of file CaloNoiseCompCondAlg.h.

◆ m_reason

int CaloNoiseCompCondAlg::m_reason[5000][10][m_nGains] {}
private

Definition at line 177 of file CaloNoiseCompCondAlg.h.

177{};

◆ m_reasonName

std::string CaloNoiseCompCondAlg::m_reasonName[10]
private

Definition at line 179 of file CaloNoiseCompCondAlg.h.

◆ m_ReturnNoiseName

std::string CaloNoiseCompCondAlg::m_ReturnNoiseName
private

Definition at line 162 of file CaloNoiseCompCondAlg.h.

◆ m_RMSpedestal

float CaloNoiseCompCondAlg::m_RMSpedestal {}
private

Definition at line 221 of file CaloNoiseCompCondAlg.h.

221{};

◆ m_Shape

LArVectorProxy CaloNoiseCompCondAlg::m_Shape
private

Definition at line 218 of file CaloNoiseCompCondAlg.h.

◆ m_shapecond

const ILArShape* CaloNoiseCompCondAlg::m_shapecond =nullptr
private

Definition at line 250 of file CaloNoiseCompCondAlg.h.

◆ m_shapeKey

SG::ReadCondHandleKey<ILArShape> CaloNoiseCompCondAlg::m_shapeKey {this,"ShapeKey","LArShapeSym","SG Key of Shape conditions object"}
private

Definition at line 249 of file CaloNoiseCompCondAlg.h.

249{this,"ShapeKey","LArShapeSym","SG Key of Shape conditions object"};

◆ m_SigmaNoise

float CaloNoiseCompCondAlg::m_SigmaNoise {}
private

Definition at line 223 of file CaloNoiseCompCondAlg.h.

223{};

◆ m_TileHashMax

IdentifierHash CaloNoiseCompCondAlg::m_TileHashMax
private

Definition at line 194 of file CaloNoiseCompCondAlg.h.

◆ m_UseSymmetry

BooleanProperty CaloNoiseCompCondAlg::m_UseSymmetry {this, "UseSymmetry", true}
private

Definition at line 203 of file CaloNoiseCompCondAlg.h.

203{this, "UseSymmetry", true};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: