 |
ATLAS Offline Software
|
algo to compute electronic and pile up noise in MeV @ based on old CaloNoiseTool, only WorkMode=1 implemented
More...
#include <CaloNoiseCompCondAlg.h>
|
| CaloNoiseCompCondAlg (const std::string &name, ISvcLocator *pSvcLocator) |
| Standard Athena-Algorithm Constructor. More...
|
|
virtual | ~CaloNoiseCompCondAlg ()=default |
| Default Destructor. More...
|
|
virtual StatusCode | initialize () override final |
| standard Athena-Algorithm method More...
|
|
virtual StatusCode | execute () override final |
| standard Athena-Algorithm method More...
|
|
virtual StatusCode | finalize () override final |
| standard Athena-Algorithm method More...
|
|
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 StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
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> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
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 AtlasDetectorID * | m_atlas_id {} |
|
const CaloIdManager * | m_calo_id_man {} |
|
const LArEM_Base_ID * | m_lar_em_id {} |
|
const LArHEC_Base_ID * | m_lar_hec_id {} |
|
const LArFCAL_Base_ID * | m_lar_fcal_id {} |
|
const CaloCell_ID * | m_calocell_id {} |
|
const CaloCell_SuperCell_ID * | m_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} |
|
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< CaloDetDescrManager > | m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" } |
|
const CaloDetDescrManager * | m_calo_dd_man =nullptr |
|
SG::ReadCondHandleKey< LArOnOffIdMapping > | m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"} |
|
const LArOnOffIdMapping * | m_cabling =nullptr |
|
SG::ReadCondHandleKey< LArADC2MeV > | m_adc2mevKey {this, "ADC2MeVKey", "LArADC2MeV", "SG Key of the LArADC2MeV CDO" } |
|
SG::ReadCondHandleKey< ILArPedestal > | m_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"} |
|
const ILArPedestal * | m_ped =nullptr |
|
SG::ReadCondHandleKey< ILArNoise > | m_noiseKey {this,"NoiseKey","","SG Key of LArNoise object"} |
|
const ILArNoise * | m_noise =nullptr |
|
SG::ReadCondHandleKey< ILArAutoCorr > | m_acorrKey {this,"AutocorrKey","LArAutoCorrSym","SG Key of LArAutoCorr object"} |
|
const ILArAutoCorr * | m_acorr =nullptr |
|
SG::ReadCondHandleKey< ILArOFC > | m_LArOFCObjKey {this, "OFKey","LArOFC", "SG Key of LAr OFCs"} |
|
const ILArOFC * | m_ofccond =nullptr |
|
SG::ReadCondHandleKey< ILArShape > | m_shapeKey {this,"ShapeKey","LArShapeSym","SG Key of Shape conditions object"} |
|
const ILArShape * | m_shapecond =nullptr |
|
SG::ReadCondHandleKey< ILArfSampl > | m_fSamplKey {this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"} |
|
const ILArfSampl * | m_fsamplcond = nullptr |
|
SG::ReadCondHandleKey< ILArMinBias > | m_LArMinBiasObjKey {this, "LArMinBiasKey", "LArMinBiasSym", "SG Key of LArMinBias"} |
|
const ILArMinBias * | m_minbias = nullptr |
|
SG::WriteCondHandleKey< CaloNoise > | m_outputElecKey {this, "OutputElecKey", "elecNoise", "SG Key of resulting noise CDO"} |
|
SG::WriteCondHandleKey< CaloNoise > | m_outputPileupKey {this, "OutputPileupKey", "pileupNoise", "SG Key of resulting noise CDO"} |
|
std::vector< IdentifierHash > | m_indexContainer |
|
std::vector< IdentifierHash > | m_idSymmCaloHashContainer |
|
VectorContainer | m_elecNoiseRAWContainer |
|
VectorContainer | m_elecNoiseCELLContainer |
|
SingleContainer | m_pileupNoiseContainer |
|
VectorContainer | m_adc2mevContainer |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
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.
◆ StoreGateSvc_t
◆ CaloNoiseCompCondAlg()
CaloNoiseCompCondAlg::CaloNoiseCompCondAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~CaloNoiseCompCondAlg()
virtual CaloNoiseCompCondAlg::~CaloNoiseCompCondAlg |
( |
| ) |
|
|
virtualdefault |
◆ adc2mev() [1/2]
◆ adc2mev() [2/2]
◆ calculateElecNoiseForLAR()
std::vector< float > CaloNoiseCompCondAlg::calculateElecNoiseForLAR |
( |
const IdentifierHash & |
idCaloHash | ) |
|
|
private |
◆ calculatePileUpNoise()
Definition at line 677 of file CaloNoiseCompCondAlg.cxx.
680 if(Nminbias<=0.000001)
return 0.;
709 if(
sc.isFailure())
return 0.;
724 float OFC_AC_OFC,OFC_OFC;
732 PileUp*=std::sqrt(OFC_AC_OFC);
◆ caloNum()
◆ checkCellDatabase()
StatusCode CaloNoiseCompCondAlg::checkCellDatabase |
( |
const Identifier & |
id, |
|
|
int |
igain, |
|
|
std::vector< bool > & |
retrieve |
|
) |
| |
|
private |
Definition at line 881 of file CaloNoiseCompCondAlg.cxx.
883 StatusCode StatusDatabase=StatusCode::SUCCESS;
890 StatusDatabase=StatusCode::FAILURE;
900 StatusDatabase=StatusCode::FAILURE;
913 StatusDatabase=StatusCode::FAILURE;
917 StatusDatabase=StatusCode::FAILURE;
931 StatusDatabase=StatusCode::FAILURE;
935 StatusDatabase=StatusCode::FAILURE;
941 unsigned int n_OFCnull=0;
943 if(std::fabs(
ofc)<0.000001) ++n_OFCnull;
957 StatusDatabase=StatusCode::FAILURE;
965 StatusDatabase=StatusCode::FAILURE;
971 unsigned int n_SHAPEnull=0;
973 if(std::fabs(shp)<0.000001) ++n_SHAPEnull;
974 if(n_SHAPEnull==
m_Shape.size())
986 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 !" );
1007 StatusDatabase=StatusCode::FAILURE;
1012 return StatusDatabase;
◆ checkIfConnected()
◆ commonCalculations()
void CaloNoiseCompCondAlg::commonCalculations |
( |
float & |
OFC_AC_OFC, |
|
|
float & |
OFC_OFC, |
|
|
int |
icase, |
|
|
unsigned int |
firstSample = 0 |
|
) |
| |
|
private |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ elecNoiseRMS() [1/2]
float CaloNoiseCompCondAlg::elecNoiseRMS |
( |
const CaloCell * |
caloCell | ) |
|
◆ elecNoiseRMS() [2/2]
Definition at line 1040 of file CaloNoiseCompCondAlg.cxx.
1068 igain=
static_cast<int>(convertedGain);
1073 ATH_MSG_WARNING(
" ask noise for invalid/unknown gain, will return noise for high gain " );
1077 if (iCalo<0 ||
index<0)
1085 const std::vector<float>* sigmaVector = 0;
1090 int gain_wanted=
igain;
1091 int gain_shifted=gain_wanted;
1098 gain_shifted=gain_wanted-shift_gain;
1100 sigma = (*sigmaVector)[gain_shifted];
1107 if(shift_gain<=
igain) retry=
true;
◆ elecNoiseRMS3gains()
◆ estimatedGain() [1/3]
◆ estimatedGain() [2/3]
◆ estimatedGain() [3/3]
◆ estimatedLArGain()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode CaloNoiseCompCondAlg::execute |
( |
| ) |
|
|
finaloverridevirtual |
standard Athena-Algorithm method
Definition at line 110 of file CaloNoiseCompCondAlg.cxx.
112 const EventContext& ctx = Gaudi::Hive::currentContext();
115 if(!caloMgrHandle.isValid()) {
117 return StatusCode::FAILURE;
128 if (writeElecHandle.isValid() && writePileupHandle.isValid()) {
130 return StatusCode::SUCCESS;
135 writeElecHandle.addDependency (fullRange);
136 writePileupHandle.addDependency (fullRange);
140 if(!cablingHdl.isValid()) {
142 return StatusCode::FAILURE;
145 writeElecHandle.addDependency (cablingHdl);
146 writePileupHandle.addDependency (cablingHdl);
152 return StatusCode::FAILURE;
154 writeElecHandle.addDependency (adc2mevHdl);
155 writePileupHandle.addDependency (adc2mevHdl);
159 if(!pedHdl.isValid()){
161 return StatusCode::FAILURE;
164 writeElecHandle.addDependency (pedHdl);
167 if(!noiseHdl.isValid()){
169 return StatusCode::FAILURE;
172 writeElecHandle.addDependency (noiseHdl);
177 if(!acorrHdl.isValid()){
179 return StatusCode::FAILURE;
182 writeElecHandle.addDependency (acorrHdl);
185 if(!ofcHdl.isValid()){
187 return StatusCode::FAILURE;
190 writeElecHandle.addDependency (ofcHdl);
191 writePileupHandle.addDependency (ofcHdl);
194 if(!shapeHdl.isValid()){
196 return StatusCode::FAILURE;
199 writeElecHandle.addDependency (shapeHdl);
200 writePileupHandle.addDependency (shapeHdl);
203 if(!fsamplHdl.isValid()){
205 return StatusCode::FAILURE;
208 writePileupHandle.addDependency (fsamplHdl);
212 if(!minbiasHdl.isValid()){
214 return StatusCode::FAILURE;
217 writePileupHandle.addDependency (minbiasHdl);
224 std::unique_ptr<CaloNoise> pileupNoiseObj=std::make_unique<CaloNoise>(
m_LArHashMax,
m_nGains, 0,4,
228 auto& pileupnoise = pileupNoiseObj->
larStorage();
239 pileupnoise[
igain][ihash] = pns;
244 ATH_CHECK(writeElecHandle.record(std::move(elecNoiseObj)));
245 ATH_MSG_INFO(
"recorded new CaloNoise object with key " << writeElecHandle.key() <<
" and range " << writeElecHandle.getRange());
247 ATH_CHECK(writePileupHandle.record(std::move(pileupNoiseObj)));
248 ATH_MSG_INFO(
"recorded new CaloNoise object with key " << writePileupHandle.key() <<
" and range " << writePileupHandle.getRange());
250 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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 & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
virtual StatusCode CaloNoiseCompCondAlg::finalize |
( |
| ) |
|
|
inlinefinaloverridevirtual |
standard Athena-Algorithm method
Definition at line 74 of file CaloNoiseCompCondAlg.h.
74 {
return StatusCode::SUCCESS;};
◆ index()
◆ initAdc2MeV()
Definition at line 480 of file CaloNoiseCompCondAlg.cxx.
497 if(polynom_adc2mev.size()==0)
498 adc2mevVector.push_back(0.);
500 adc2mevVector.push_back(polynom_adc2mev[1]);
506 return StatusCode::SUCCESS;
◆ initContainers()
StatusCode CaloNoiseCompCondAlg::initContainers |
( |
| ) |
|
|
private |
◆ initData()
◆ initElecNoise()
StatusCode CaloNoiseCompCondAlg::initElecNoise |
( |
| ) |
|
|
private |
◆ initialize()
StatusCode CaloNoiseCompCondAlg::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ initIndex()
StatusCode CaloNoiseCompCondAlg::initIndex |
( |
| ) |
|
|
private |
Definition at line 282 of file CaloNoiseCompCondAlg.cxx.
286 static_cast<unsigned int> (-1));
374 else idSymmCaloHash=idCaloHash;
405 return StatusCode::SUCCESS;
◆ initPileUpNoise()
StatusCode CaloNoiseCompCondAlg::initPileUpNoise |
( |
| ) |
|
|
private |
◆ inputHandles()
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 |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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 |
|
) |
| |
◆ pileupNoiseRMS() [2/2]
◆ renounce()
◆ renounceArray()
◆ retrieveCellDatabase()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
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 1155 of file CaloNoiseCompCondAlg.cxx.
1158 float pileupNoiseRMS_tmp = this->
pileupNoiseRMS(theCell,Nminbias);
1160 if(elecNoiseRMS_tmp>=0)
1161 return std::sqrt((elecNoiseRMS_tmp*elecNoiseRMS_tmp) + (pileupNoiseRMS_tmp*pileupNoiseRMS_tmp));
◆ totalNoiseRMS() [2/2]
◆ totalNoiseRMSHighestGain() [1/2]
float CaloNoiseCompCondAlg::totalNoiseRMSHighestGain |
( |
const CaloCell * |
caloCell, |
|
|
const float |
Nminbias = -1 |
|
) |
| |
◆ totalNoiseRMSHighestGain() [2/2]
Definition at line 1228 of file CaloNoiseCompCondAlg.cxx.
1234 throw std::runtime_error(
"Invalid CaloID in CaloNoiseCompCondAlg::totalNoiseRMSHighestGain");
◆ updateDiagnostic()
void CaloNoiseCompCondAlg::updateDiagnostic |
( |
int |
reason, |
|
|
const std::string & |
reason_name, |
|
|
int |
igain, |
|
|
bool & |
noiseOK |
|
) |
| |
|
private |
◆ updateVHKA()
◆ m_acorr
◆ m_acorrKey
◆ m_adc2mevContainer
◆ m_Adc2MeVFactor
float CaloNoiseCompCondAlg::m_Adc2MeVFactor {} |
|
private |
◆ m_adc2mevKey
◆ m_AdcPerMev
double CaloNoiseCompCondAlg::m_AdcPerMev {} |
|
private |
◆ m_atlas_id
◆ m_AutoCorr
◆ m_c
float CaloNoiseCompCondAlg::m_c[32][32] {} |
|
private |
◆ m_cabling
◆ m_cablingKey
◆ m_calo_dd_man
◆ m_calo_id_man
◆ m_calocell_id
◆ m_CaloHashMax
◆ m_CaloHashMin
◆ m_caloMgrKey
◆ m_calosupercell_id
◆ m_deltaBunch
IntegerProperty CaloNoiseCompCondAlg::m_deltaBunch {this, "deltaBunch", 1} |
|
private |
◆ m_detStore
◆ m_diagnostic
bool CaloNoiseCompCondAlg::m_diagnostic[m_nGains] {} |
|
private |
◆ m_DiagnosticHG
BooleanProperty CaloNoiseCompCondAlg::m_DiagnosticHG {this, "DiagnosticHG", false} |
|
private |
◆ m_DiagnosticLG
BooleanProperty CaloNoiseCompCondAlg::m_DiagnosticLG {this, "DiagnosticLG", false} |
|
private |
◆ m_DiagnosticMG
BooleanProperty CaloNoiseCompCondAlg::m_DiagnosticMG {this, "DiagnosticMG", false} |
|
private |
◆ m_DumpDatabaseHG
BooleanProperty CaloNoiseCompCondAlg::m_DumpDatabaseHG {this, "DumpDatabaseHG", false} |
|
private |
◆ m_DumpDatabaseLG
BooleanProperty CaloNoiseCompCondAlg::m_DumpDatabaseLG {this, "DumpDatabaseLG", false} |
|
private |
◆ m_DumpDatabaseMG
BooleanProperty CaloNoiseCompCondAlg::m_DumpDatabaseMG {this, "DumpDatabaseMG", false} |
|
private |
◆ m_elecNoiseCELLContainer
◆ m_elecNoiseRAWContainer
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_firstSample
UnsignedIntegerProperty CaloNoiseCompCondAlg::m_firstSample {this, "firstSample", 0} |
|
private |
◆ m_fSampl
float CaloNoiseCompCondAlg::m_fSampl {} |
|
private |
◆ m_fsamplcond
◆ m_fSamplKey
◆ m_highestGain
◆ m_HighGainThresh
float CaloNoiseCompCondAlg::m_HighGainThresh[m_nCalos] {} |
|
private |
◆ m_idHash
int CaloNoiseCompCondAlg::m_idHash[5000][m_nGains] {} |
|
private |
◆ m_idSymmCaloHashContainer
std::vector<IdentifierHash> CaloNoiseCompCondAlg::m_idSymmCaloHashContainer |
|
private |
◆ m_indexContainer
◆ m_itReason
int CaloNoiseCompCondAlg::m_itReason[10][m_nGains] {} |
|
private |
◆ m_lar_em_id
◆ m_lar_fcal_id
◆ m_lar_hec_id
◆ m_LArHashMax
◆ m_LArMinBiasObjKey
◆ m_LArOFCObjKey
◆ m_LowGainThresh
float CaloNoiseCompCondAlg::m_LowGainThresh[m_nCalos] {} |
|
private |
◆ m_minbias
◆ m_MinBiasRMS
float CaloNoiseCompCondAlg::m_MinBiasRMS {} |
|
private |
◆ m_nCalos
constexpr int CaloNoiseCompCondAlg::m_nCalos =NCALOS |
|
staticconstexprprivate |
◆ m_nCellsWithProblem
int CaloNoiseCompCondAlg::m_nCellsWithProblem[m_nGains] {} |
|
private |
◆ m_nGains
constexpr int CaloNoiseCompCondAlg::m_nGains =NGAINS |
|
staticconstexprprivate |
◆ m_Nminbias
FloatProperty CaloNoiseCompCondAlg::m_Nminbias {this, "NMinBias", -1} |
|
private |
◆ m_noise
◆ m_noiseKey
◆ m_nReason
int CaloNoiseCompCondAlg::m_nReason[5000][m_nGains] {} |
|
private |
◆ m_nsamples
int CaloNoiseCompCondAlg::m_nsamples {} |
|
private |
◆ m_OFC
◆ m_ofccond
◆ m_outputElecKey
◆ m_outputPileupKey
◆ m_ped
◆ m_pedestalKey
◆ m_pileupNoiseContainer
◆ m_reason
int CaloNoiseCompCondAlg::m_reason[5000][10][m_nGains] {} |
|
private |
◆ m_reasonName
std::string CaloNoiseCompCondAlg::m_reasonName[10] |
|
private |
◆ m_ReturnNoiseName
std::string CaloNoiseCompCondAlg::m_ReturnNoiseName |
|
private |
◆ m_RMSpedestal
float CaloNoiseCompCondAlg::m_RMSpedestal {} |
|
private |
◆ m_Shape
◆ m_shapecond
◆ m_shapeKey
◆ m_SigmaNoise
float CaloNoiseCompCondAlg::m_SigmaNoise {} |
|
private |
◆ m_TileHashMax
◆ m_UseSymmetry
BooleanProperty CaloNoiseCompCondAlg::m_UseSymmetry {this, "UseSymmetry", true} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
SG::ReadCondHandleKey< ILArNoise > m_noiseKey
const ILArOFC * m_ofccond
bool valid() const
Test to see if the proxy has been initialized.
float adc2mev(const CaloDetDescrElement *caloDDE, const CaloGain::CaloGain gain)
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
void updateDiagnostic(int reason, const std::string &reason_name, int igain, bool &noiseOK)
CaloGain::CaloGain m_highestGain[m_nCalos]
void commonCalculations(float &OFC_AC_OFC, float &OFC_OFC, int icase, unsigned int firstSample=0)
const ILArNoise * m_noise
int eta(const Identifier id) const
return eta [0,9] outer part [0,3] inner part
Scalar phi() const
phi method
int phi_min(const Identifier regId) const
min value of phi index (-999 == failure)
int pos_neg(const Identifier id) const
pos_neg : +/- 2 (A/C side)
std::vector< IdentifierHash > m_indexContainer
size_type channel_hash_max() const
One more than the largest channel (cell) hash code.
StatusCode initPileUpNoise()
Scalar eta() const
pseudorapidity method
SG::ReadCondHandleKey< ILArOFC > m_LArOFCObjKey
const ILArShape * m_shapecond
const LArHEC_Base_ID * m_lar_hec_id
Identifier region_id(const ExpandedIdentifier &exp_id) const
Build a cell identifier from an expanded identifier.
const LArFCAL_Base_ID * m_lar_fcal_id
VectorContainer m_elecNoiseRAWContainer
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
const LArEM_ID * getEM_ID(void) const
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
bool m_diagnostic[m_nGains]
static EventIDRange infiniteMixed()
Produces an mixed EventIDRange that is infinite in Time and RunLumi.
VectorContainer m_adc2mevContainer
BooleanProperty m_DiagnosticLG
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
BooleanProperty m_UseSymmetry
std::vector< SG::VarHandleKeyArray * > m_vhka
int module(const Identifier id) const
module [1,3]
SingleContainer m_pileupNoiseContainer
int region(const Identifier id) const
return region according to :
int sampling(const Identifier id) const
return sampling according to :
int m_nReason[5000][m_nGains]
const LArOnOffIdMapping * m_cabling
#define ATH_MSG_VERBOSE(x)
bool empty() const
Test if the key is blank.
float calculatePileUpNoise(const IdentifierHash &idCaloHash, const float &Nminbias)
Identifier region_id(const ExpandedIdentifier &exp_id) const
region identifier for a channel from ExpandedIdentifier
Identifier channel_id(const ExpandedIdentifier &exp_id) const
Build a cell identifier from an expanded identifier.
const LArEM_Base_ID * m_lar_em_id
@ u
Enums for curvilinear frames.
int eta(const Identifier id) const
return eta according to :
virtual AutoCorrRef_t autoCorr(const HWIdentifier &CellID, int gain) const =0
int eta(const Identifier id) const
eta [0,63] module 1 ; [0,31] module 2 ; [0,15] module 3
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
LArVectorProxy m_AutoCorr
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadCondHandleKey< ILArShape > m_shapeKey
CaloCell_ID::SUBCALO getSubCalo() const
cell subcalo
StatusCode retrieveCellDatabase(const IdentifierHash &idCaloHash, const Identifier &id, int igain, std::vector< bool > &retrieve)
UnsignedIntegerProperty m_firstSample
int m_reason[5000][10][m_nGains]
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
int phi(const Identifier id) const
phi [0,15]
StatusCode initAdc2MeV(const LArADC2MeV *adc2mev)
Identifier identify() const override final
cell identifier
int index(const IdentifierHash &idCaloHash)
float m_LowGainThresh[m_nCalos]
IdentifierHash m_CaloHashMin
const LArHEC_ID * getHEC_ID(void) const
IdentifierHash calo_hash() const
cell calo hash
virtual StatusCode sysInitialize() override
Override sysInitialize.
const AtlasDetectorID * m_atlas_id
StatusCode initElecNoise()
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
msgSvc
Provide convenience handles for various services.
StatusCode checkCellDatabase(const Identifier &id, int igain, std::vector< bool > &retrieve)
bool checkIfConnected(const Identifier &id)
::StatusCode StatusCode
StatusCode definition for legacy code.
const CaloIdManager * m_calo_id_man
virtual const float & FSAMPL(const HWIdentifier &id) const =0
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
float elecNoiseRMS(const CaloCell *caloCell)
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Identifier channel_id(const ExpandedIdentifier &exp_id) const
cell identifier for a channel from ExpandedIdentifier
SUBCALO
enumeration of sub calorimeters
float pileupNoiseRMS(const CaloCell *caloCell, const float Nminbias=-1)
std::vector< float > elecNoiseRMS3gains(const CaloDetDescrElement *caloDDE)
const LArFCAL_ID * getFCAL_ID(void) const
virtual const float & noise(const HWIdentifier &id, int gain) const =0
const CaloDetDescrManager * m_calo_dd_man
int sub_calo(const Identifier id) const
returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs.
Identifier module_id(const ExpandedIdentifier &exp_id) const
module identifier for a channel from ExpandedIdentifier
IdentifierHash m_LArHashMax
StatusCode initContainers()
bool is_lar_hec(Identifier id) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
const ILArPedestal * m_ped
SG::WriteCondHandleKey< CaloNoise > m_outputElecKey
HWIdentifier createSignalChannelID(const Identifier &id) const
create a HWIdentifier from an Identifier (not inline)
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
BooleanProperty m_DiagnosticMG
virtual void renounce()=0
SG::ReadCondHandleKey< ILArMinBias > m_LArMinBiasObjKey
float totalNoiseRMS(const CaloCell *caloCell, const float Nminbias=-1)
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
BooleanProperty m_DiagnosticHG
float m_HighGainThresh[m_nCalos]
int barrel_ec(const Identifier id) const
return barrel_ec according to :
int m_idHash[5000][m_nGains]
Identifier channel_id(const ExpandedIdentifier &exp_id) const
channel identifier for a channel from ExpandedIdentifier
StatusCode initialize(bool used=true)
const ILArMinBias * m_minbias
std::string m_reasonName[10]
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,...
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
StatusCode initData(const LArADC2MeV *adc2mev)
float totalNoiseRMSHighestGain(const CaloCell *caloCell, const float Nminbias=-1)
DataObjIDColl m_extendedExtraObjects
int m_nCellsWithProblem[m_nGains]
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
SG::ReadCondHandleKey< ILArAutoCorr > m_acorrKey
#define ATH_MSG_WARNING(x)
boost::multi_array< float, 2 > & larStorage()
Non-const accessor to underlying storage for filling:
virtual const float & minBiasRMS(const HWIdentifier &id) const =0
access to RMS of E in minimum bias events index by Identifier
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
const CaloCell_SuperCell_ID * getCaloCell_SuperCell_ID(void) const
int pos_neg(const Identifier id) const
return pos_neg -2 (C side) or 2 (A side)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const ILArAutoCorr * m_acorr
const CaloCell_ID * getCaloCell_ID() const
get calo cell ID helper
virtual OFCRef_t OFC_a(const HWIdentifier &id, int gain, int tbin=0) const =0
access to OFCs by online ID, gain, and tbin (!=0 for testbeam)
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
VectorContainer m_elecNoiseCELLContainer
AthAlgorithm()
Default constructor:
std::vector< float > calculateElecNoiseForLAR(const IdentifierHash &idCaloHash)
std::vector< IdentifierHash > m_idSymmCaloHashContainer
static constexpr int m_nGains
bool isBadValue(float tested_value)
SG::WriteCondHandleKey< CaloNoise > m_outputPileupKey
IntegerProperty m_deltaBunch
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
const CaloCell_SuperCell_ID * m_calosupercell_id
virtual float pedestalRMS(const HWIdentifier &id, int gain) const =0
access to RMS of Pedestal index by Identifier, and gain setting
int region(const Identifier id) const
return region [0,1]
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Exception class for LAr Identifiers.
int m_itReason[10][m_nGains]
bool isOnlineConnected(const HWIdentifier &sid) const
Test whether a HWIdentifier is connected of not (inline)
const ILArfSampl * m_fsamplcond
const CaloCell_ID * m_calocell_id
CaloCell_ID::SUBCALO caloNum(const IdentifierHash idCaloHash)
virtual ShapeRef_t Shape(const HWIdentifier &id, int gain, int tbin=0, int mode=0) const =0
IdentifierHash m_CaloHashMax