 |
ATLAS Offline Software
|
#include <LArHVCondAlg.h>
|
| virtual | ~LArHVCondAlg ()=default |
| |
| virtual StatusCode | initialize () override |
| |
| StatusCode | execute () override |
| |
| | AthAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) |
| | Constructor with parameters: More...
|
| |
| 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 | makeHVScaleCorr (const EventContext &ctx, voltagePerLine_t &voltagePerLine) const |
| |
| StatusCode | makeAffectedRegionInfo (const EventContext &ctx, voltagePerLine_t &voltagePerLine) const |
| |
| StatusCode | getVoltagePerLine (const EventContext &ctx, voltagePerLine_t &voltagePerLine, const addDepFcn_t &addDep) const |
| |
| void | addHV (voltageCell_t &v, float hv, float weight) const |
| | Add voltage/weight for a sub-gap of a cell. More...
|
| |
| StatusCode | dcs2LineVoltage (voltagePerLine_t &result, const std::vector< const CondAttrListCollection * > &fldvec) const |
| | Read HV from DCS, store them in internal data structure per HV-line (Step 1) More...
|
| |
| StatusCode | fillPathAndCellHV (const CaloDetDescrManager *calodetdescrmgr, voltagePerCell_t &hvdata, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage, const LArHVPathology &pathologies, pathVec &hasPathologyEM, pathVec &hasPathologyHEC, pathVec &hasPathologyFCAL, const float *rValues) const |
| | Read the voltage per HV line and store it in structure per readout-cell (resolve the many-HV-lines-to-many-cells mapping). Simulanitously fill the pathologies. More...
|
| |
| std::vector< unsigned int > | getElecList (const Identifier &id, const LArHVPathology &pathologies) const |
| |
| void | extendPhiRegion (float phi, float &phi_min, float &phi_max) const |
| |
| StatusCode | updateMethod (const EventContext &ctx, CaloAffectedRegionInfoVec *vAffected, const LArBadFebCont *bfCont, const LArOnOffIdMapping *cabling) const |
| |
| StatusCode | searchNonNominalHV_EMB (CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const |
| |
| StatusCode | searchNonNominalHV_EMEC_OUTER (CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const |
| |
| StatusCode | searchNonNominalHV_EMEC_INNER (CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const |
| |
| StatusCode | searchNonNominalHV_HEC (CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const |
| |
| StatusCode | searchNonNominalHV_FCAL (CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const |
| |
| float | HV_nominal (const char *identification, const float eta) const |
| |
| std::vector< int > | returnProblem (const float eta, const float phi, const float delta_eta, const float delta_phi) |
| |
| 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...
|
| |
|
| SG::ReadCondHandleKey< LArHVPathology > | m_pathologiesKey { this, "HVPathologies", "LArHVPathology", "Key for HV pathologies in Cond. store"} |
| |
| SG::ReadCondHandleKeyArray< CondAttrListCollection > | m_DCSFolderKeys |
| |
| SG::ReadCondHandleKey< LArBadFebCont > | m_BFKey {this, "MissingFEBKey", "LArBadFeb", "SG key for missing FEB object"} |
| |
| SG::ReadCondHandleKey< LArOnOffIdMapping > | m_cablingKey {this, "OnOffMap", "LArOnOffIdMap", "SG key for mapping object"} |
| |
| SG::ReadCondHandleKey< LArHVIdMapping > | m_hvMappingKey {this, "HVMappingKey", "LArHVIdMap", "Key for mapping object" } |
| |
| SG::ReadCondHandleKey< AthenaAttributeList > | m_hvRKey {this, "RvaluesKey", "/LAR/HVPathologiesOfl/Rvalues", "Cool folder with HV R values"} |
| |
| SG::ReadCondHandleKey< CaloDetDescrManager > | m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"} |
| |
| SG::WriteCondHandleKey< CaloAffectedRegionInfoVec > | m_affectedKey {this, "OutputKey", "LArAffectedRegionInfo", "SG key for output"} |
| |
| SG::ReadCondHandleKey< ILArHVScaleCorr > | m_onlineHVScaleCorrKey |
| |
| SG::WriteCondHandleKey< LArHVCorr > | m_outputHVScaleCorrKey {this, "keyOutputCorr", "LArHVScaleCorrRecomputed","Output key for LArHVScaleCorr"} |
| |
| Gaudi::Property< bool > | m_doHV {this,"doHV",true,"create HV Scale Correction"} |
| |
| Gaudi::Property< bool > | m_doRProp {this,"doR",true,"Use R values with current to improve HV"} |
| |
| Gaudi::Property< bool > | m_undoOnlineHVCorr {this,"UndoOnlineHVCorr",true,"Undo the HVCorr done online"} |
| |
| Gaudi::Property< bool > | m_useCurrentEMB {this,"UseCurrentsInHVEM",false,"Use currents in EMB as well"} |
| |
| Gaudi::Property< bool > | m_useCurrentFCAL1 {this,"UseCurrentsInHVFCAL1",false,"Use currents in FCAL1 as well"} |
| |
| Gaudi::Property< bool > | m_useCurrentOthers {this,"UseCurrentsInHVOthers", false, "Use currents in other partitions as well"} |
| |
| bool | m_doR = true |
| |
| Gaudi::Property< bool > | m_doAffected {this,"doAffected",true,"create affected region info"} |
| |
| Gaudi::Property< bool > | m_doAffectedHV {this,"doAffectedHV",true,"include HV non nominal regions info"} |
| |
| Gaudi::Property< std::vector< std::string > > | m_fixHVStrings {this,"fixHVCorr"} |
| |
| const CaloCell_ID * | m_calocellID =nullptr |
| |
| const LArEM_ID * | m_larem_id =nullptr |
| |
| const LArHEC_ID * | m_larhec_id =nullptr |
| |
| const LArFCAL_ID * | m_larfcal_id =nullptr |
| |
| const LArElectrodeID * | m_electrodeID =nullptr |
| |
| const LArHVLineID * | m_hvLineID =nullptr |
| |
| const LArOnlineID * | m_onlineID =nullptr |
| |
| std::unique_ptr< const LArHVScaleCorrTool > | m_scaleTool |
| |
| std::atomic< unsigned > | m_nPathologies {0} |
| |
| 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 |
| |
Definition at line 54 of file LArHVCondAlg.h.
◆ addDepFcn_t
◆ HV_t
◆ pathVec
Internal structure for HV pathologies.
Definition at line 137 of file LArHVCondAlg.h.
◆ StoreGateSvc_t
◆ voltageCell_t
◆ voltagePerCell_t
◆ voltagePerLine_t
◆ ~LArHVCondAlg()
| virtual LArHVCondAlg::~LArHVCondAlg |
( |
| ) |
|
|
virtualdefault |
◆ addHV()
| void LArHVCondAlg::addHV |
( |
voltageCell_t & |
v, |
|
|
float |
hv, |
|
|
float |
weight |
|
) |
| const |
|
private |
Add voltage/weight for a sub-gap of a cell.
Definition at line 724 of file LArHVCondAlg.cxx.
726 for (
unsigned int i=0;
i<
v.size();
i++) {
727 if (std::fabs(hv-
v[
i].hv) <0.1) {
734 v.emplace_back(hv,wt);
◆ AthAlgorithm()
| AthAlgorithm::AthAlgorithm |
Constructor with parameters:
Definition at line 51 of file AthAlgorithm.cxx.
32 std::make_unique<AthenaBaseComps::AthAlgorithmDHUpdate>
34 std::move (m_updateDataHandles));
◆ dcs2LineVoltage()
Read HV from DCS, store them in internal data structure per HV-line (Step 1)
Definition at line 755 of file LArHVCondAlg.cxx.
761 for(
const auto *attrlist : fldvec) {
765 for(;citr!=citr_e;++citr) {
766 const unsigned chan=citr->first;
768 const coral::Attribute& attr=((citr)->
second)[
"R_VMEAS"];
770 if (!attr.isNull()) voltage=attr.data<
float>();
771 const coral::Attribute& attrc=((citr)->
second)[
"R_IMEAS"];
773 if (!attrc.isNull())
current=attrc.data<
float>();
781 return StatusCode::SUCCESS;
◆ 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()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
| StatusCode LArHVCondAlg::execute |
( |
| ) |
|
|
override |
Definition at line 90 of file LArHVCondAlg.cxx.
93 const EventContext& ctx = Gaudi::Hive::currentContext();
103 return StatusCode::SUCCESS;
◆ extendPhiRegion()
| void LArHVCondAlg::extendPhiRegion |
( |
float |
phi, |
|
|
float & |
phi_min, |
|
|
float & |
phi_max |
|
) |
| const |
|
private |
Definition at line 1517 of file LArHVCondAlg.cxx.
1523 if (phi_min>10. || phi_max<-10.) {
1529 bool isInRegion=
false;
1530 if (phi_min<phi_max) {
1531 if (
phi>phi_min &&
phi<phi_max) isInRegion=
true;
1534 if (
phi>phi_min ||
phi<phi_max) isInRegion=
true;
1536 if (isInRegion)
return;
1540 if (fabs(dphi1)<fabs(dphi2) )
◆ 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();
◆ fillPathAndCellHV()
Read the voltage per HV line and store it in structure per readout-cell (resolve the many-HV-lines-to-many-cells mapping). Simulanitously fill the pathologies.
Definition at line 361 of file LArHVCondAlg.cxx.
372 std::vector<unsigned int> listElec;
374 const float uAkOhm = 1.e-3;
383 bool hasPathology=
false;
384 if (
index<hasPathologyEM.size()) {
391 if (!embElement) std::abort();
393 unsigned int nelec =
cell->getNumElectrodes();
394 unsigned int ngap = 2*nelec;
396 for (
unsigned int i=0;
i<nelec;
i++) {
400 for (
unsigned int igap=0;igap<2;igap++) {
404 auto hvIt=voltage.find(
hvline);
405 if(hvIt != voltage.end()) {
408 curr=hvIt->second.curr;
417 if(curr > 0.) curr *= uAkOhm * rValues[ridx];
else curr = 0.;
418 ATH_MSG_VERBOSE(
"channel. "<<std::hex<<
id.get_identifier32()<<std::dec <<
" hvline: "<<
hvline<<
" curr. " << curr <<
" R: "<<rValues[ridx]);
423 for (
unsigned int ii=0;ii<listElec.size();ii++) {
424 if (listElec[ii]==(2*
i+igap) && listElec[ii]<hasPathologyEM[
index].
size() && hasPathologyEM[
index][listElec[ii]]) {
449 if (!embElement) std::abort();
454 for (
unsigned int igap=0;igap<2;igap++) {
458 auto hvIt=voltage.find(
hvline);
459 if(hvIt != voltage.end()) {
462 curr=hvIt->second.curr;
471 if(curr > 0.) curr *= uAkOhm * rValues[ridx];
else curr = 0;
472 ATH_MSG_VERBOSE(
"channel. "<<std::hex<<
id.get_identifier32()<<std::dec <<
" hvline: "<<
hvline<<
" curr. " << curr <<
" R: "<<rValues[ridx]);
482 bool hasPathology=
false;
483 if (
index<hasPathologyEM.size()) {
491 if (!emecElement) std::abort();
493 unsigned int nelec =
cell->getNumElectrodes();
494 unsigned int ngap = 2*nelec;
496 for (
unsigned int i=0;
i<nelec;
i++) {
498 for (
unsigned int igap=0;igap<2;igap++) {
502 auto hvIt=voltage.find(
hvline);
503 if(hvIt != voltage.end()) {
506 curr=hvIt->second.curr;
515 if(curr > 0.) curr *= uAkOhm * rValues[ridx];
else curr = 0.;
516 ATH_MSG_VERBOSE(
"channel. "<<std::hex<<
id.get_identifier32()<<std::dec <<
" hvline: "<<
hvline<<
" curr. " << curr <<
" R: "<<rValues[ridx]);
520 for (
unsigned int ii=0;ii<listElec.size();ii++) {
521 if (listElec[ii]==(2*
i+igap) && listElec[ii]<hasPathologyEM[
index].
size() && hasPathologyEM[
index][listElec[ii]]) {
528 hv=((hasPathologyEM[
index][listElec[ii]]&0xFFF0)>>4);
545 if (!emecElement) std::abort();
550 for (
unsigned int igap=0;igap<2;igap++) {
554 auto hvIt=voltage.find(
hvline);
555 if(hvIt != voltage.end()) {
558 curr=hvIt->second.curr;
567 if(curr >0.) curr *= uAkOhm * rValues[ridx];
else curr=0.;
568 ATH_MSG_VERBOSE(
"channel. "<<std::hex<<
id.get_identifier32()<<std::dec <<
" hvline: "<<
hvline<<
" curr. " << curr <<
" R: "<<rValues[ridx]);
578 ATH_MSG_ERROR(
"This could not be, what happened with EM identifiers ?");
579 return StatusCode::FAILURE;
588 bool hasPathology=
false;
589 if (
index<hasPathologyHEC.size()) {
596 if (!hecElement) std::abort();
598 unsigned int nsubgaps =
cell->getNumSubgaps();
599 float wt = 1./nsubgaps;
601 for (
unsigned int i=0;
i<nsubgaps;
i++) {
606 auto hvIt=voltage.find(
hvline);
607 if(hvIt != voltage.end()) {
610 curr=hvIt->second.curr;
620 if(curr > 0.) curr *= uAkOhm * rValues[ridx];
else curr = 0.;
621 ATH_MSG_VERBOSE(
"channel. "<<std::hex<<
id.get_identifier32()<<std::dec <<
" hvline: "<<
hvline<<
" cur. " << curr <<
" R: "<<rValues[ridx]);
625 for (
unsigned int ii=0;ii<listElec.size();ii++) {
626 if (listElec[ii]==
i && listElec[ii]<hasPathologyHEC[
index].
size() && hasPathologyHEC[
index][listElec[ii]]) {
651 bool hasPathology=
false;
652 if (
index<hasPathologyFCAL.size()) {
660 if (!fcalElement) std::abort();
662 unsigned int nlines =
tile->getNumHVLines();
663 unsigned int nlines_found=0;
664 for (
unsigned int i=0;
i<nlines;
i++) {
666 if (
line) nlines_found++;
668 if (nlines_found>0) {
669 float wt = 1./nlines_found;
671 for (
unsigned int i=0;
i<nlines;
i++) {
674 unsigned int hvline =
line->hvLineNo(hvCabling);
677 auto hvIt=voltage.find(
hvline);
678 if(hvIt != voltage.end()) {
681 if(rValues && useCurrent) {
682 curr=hvIt->second.curr;
692 if(curr > 0.) curr *= uAkOhm * rValues[ridx];
else curr = 0.;
693 ATH_MSG_VERBOSE(
"channel. "<<std::hex<<
id.get_identifier32()<<std::dec <<
" hvline: "<<
hvline<<
" curr." << curr <<
" R: "<<rValues[ridx]);
697 for (
unsigned int ii=0;ii<listElec.size();ii++) {
698 if (listElec[ii]==
i && listElec[ii]<hasPathologyFCAL[
index].
size() && hasPathologyFCAL[
index][listElec[ii]]) {
705 hv=((hasPathologyFCAL[
index][listElec[ii]]&0xFFF0)>>4);
721 return StatusCode::SUCCESS;
◆ getElecList()
Definition at line 739 of file LArHVCondAlg.cxx.
741 std::vector<unsigned int> myList;
743 for(
unsigned i=0;
i<pathologyContainer.getPathology().
size(); ++
i) {
745 if (electPath.
cellID == (
unsigned int)(
id.get_identifier32().get_compact())) {
746 myList.push_back(electPath.
electInd);
◆ getVoltagePerLine()
Definition at line 331 of file LArHVCondAlg.cxx.
336 std::vector<const CondAttrListCollection*> attrvec;
343 attrvec.push_back(cattr);
344 const EventIDRange&
range = addDep (dcsHdl);
345 ATH_MSG_DEBUG(
"Range of " << dcsHdl.key() <<
" " << dcsHdl.getRange() <<
", intersection: " <<
range);
353 if (voltagePerLine.empty()) {
357 return StatusCode::SUCCESS;
◆ HV_nominal()
| float LArHVCondAlg::HV_nominal |
( |
const char * |
identification, |
|
|
const float |
eta |
|
) |
| const |
|
private |
Definition at line 1474 of file LArHVCondAlg.cxx.
1476 if (strcmp(identification,
"EMBPS")==0)
1478 else if (strcmp(identification,
"EMECPS")==0)
1480 else if (strcmp(identification,
"EMB")==0)
1482 else if (strcmp(identification,
"EMEC")==0) {
1483 if ( fabs(myparameter)<1.5 )
1485 else if (fabs(myparameter)<1.6)
1487 else if (fabs(myparameter)<1.8 )
1489 else if ( fabs(myparameter) < 2.0 )
1491 else if ( fabs(myparameter) < 2.1 )
1493 else if ( fabs(myparameter) < 2.3 )
1495 else if ( fabs(myparameter) < 2.5 )
1497 else if ( fabs(myparameter) < 2.8 )
1501 else if (strcmp(identification,
"HEC")==0) {
1504 else if (strcmp(identification,
"FCAL")==0) {
1505 if (myparameter<0.5)
1507 else if (myparameter<1.5)
1509 else if (myparameter<2.5)
◆ initialize()
| StatusCode LArHVCondAlg::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 47 of file LArHVCondAlg.cxx.
61 ATH_MSG_INFO(
"Will use currents to correct voltage-drop at HV-resistors");
64 ATH_MSG_INFO(
"Will NOT correct voltage-drop at HV-resistors");
86 return StatusCode::SUCCESS;
◆ 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.
◆ makeAffectedRegionInfo()
| StatusCode LArHVCondAlg::makeAffectedRegionInfo |
( |
const EventContext & |
ctx, |
|
|
voltagePerLine_t & |
voltagePerLine |
|
) |
| const |
|
private |
Definition at line 284 of file LArHVCondAlg.cxx.
288 if (writeAffectedHandle.isValid()) {
289 ATH_MSG_DEBUG(
"Found valid write LArAffectedRegions handle");
290 return StatusCode::SUCCESS;
295 ATH_MSG_DEBUG(
"Range of cabling" << larCablingHdl.getRange() <<
", intersection: " << writeAffectedHandle.getRange());
296 writeAffectedHandle.addDependency(larCablingHdl);
300 writeAffectedHandle.addDependency(readBFHandle);
301 ATH_MSG_DEBUG(
"Range of BadFeb " << readBFHandle.getRange() <<
", intersection: " << writeAffectedHandle.getRange());
303 auto vAffected = std::make_unique<CaloAffectedRegionInfoVec>();
306 writeAffectedHandle.addDependency (
h);
307 return writeAffectedHandle.getRange();
313 writeAffectedHandle.addDependency(mappingHdl);
323 ATH_CHECK(writeAffectedHandle.record(std::move(vAffected)));
324 ATH_MSG_INFO(
"recorded new " << writeAffectedHandle.key() <<
" with range "
325 << writeAffectedHandle.getRange()<<
" into Conditions Store");
327 return StatusCode::SUCCESS;
◆ makeHVScaleCorr()
| StatusCode LArHVCondAlg::makeHVScaleCorr |
( |
const EventContext & |
ctx, |
|
|
voltagePerLine_t & |
voltagePerLine |
|
) |
| const |
|
private |
Definition at line 106 of file LArHVCondAlg.cxx.
110 if (writeHandle.isValid()) {
112 return StatusCode::SUCCESS;
117 writeHandle.addDependency (fullRange);
121 ATH_MSG_DEBUG(
"Range of cabling" << larCablingHdl.getRange() <<
", intersection: " << writeHandle.getRange());
122 writeHandle.addDependency(larCablingHdl);
126 writeHandle.addDependency(caloMgrHandle);
131 onlHVCorr = *onlHVCorrHdl;
132 writeHandle.addDependency(onlHVCorrHdl);
133 ATH_MSG_DEBUG(
"Range of online HV correction " << onlHVCorrHdl.getRange() <<
", intersection: " << writeHandle.getRange());
138 writeHandle.addDependency(mappingHdl);
147 bool doPathology=
true;
150 if(!pathologyContainer) {
156 writeHandle.addDependency(pHdl);
157 ATH_MSG_DEBUG(
"Range of HV-Pathology " << pHdl.getRange() <<
", intersection: " << writeHandle.getRange());
158 const std::vector<LArHVPathologiesDb::LArHVElectPathologyDb> &pathCont = pathologyContainer->
getPathology();
159 const size_t nPathologies=pathCont.size();
161 ATH_MSG_INFO(
"Number of HV pathologies found " << nPathologies);
164 for(
unsigned i=0;
i<nPathologies; ++
i) {
169 unsigned int index = (
unsigned int)(idHash);
170 if (
index<hasPathologyEM.size()) {
176 std::vector<unsigned short> svec;
179 hasPathologyEM[
index]=svec;
185 unsigned int index = (
unsigned int)(idHash);
186 if (
index<hasPathologyHEC.size()) {
192 std::vector<unsigned short> svec;
195 hasPathologyHEC[
index]=svec;
201 unsigned int index = (
unsigned int)(idHash);
202 if (
index<hasPathologyFCAL.size()) {
204 if(hasPathologyFCAL[
index].
size()<
static_cast<size_t>(abs(electPath.
electInd+1)))
208 std::vector<unsigned short> svec;
211 hasPathologyFCAL[
index]=svec;
219 const float* rValues{
nullptr};
223 writeHandle.addDependency(readAttrHandle);
228 return StatusCode::FAILURE;
230 rValues =
static_cast<const float*
>(rBlob.startingAddress());
234 writeHandle.addDependency (
h);
235 return writeHandle.getRange();
241 pathologyContainer, hasPathologyEM, hasPathologyHEC, hasPathologyFCAL, rValues));
243 std::vector<float> vScale;
251 const float hvonline = onlHVCorr->HVScaleCorr(hwid);
252 if (hvonline>0. && hvonline<100.) vScale[
i]=vScale[
i]/hvonline;
255 if (vScale[
i]<0.01) {
260 if (vScale[
i] < 0.9) {
261 if (vScale[
i] < 0.4) {
263 <<
" = " << vScale[
i]);
266 <<
" = " << vScale[
i]);
273 if (writeHandle.record(std::move(hvCorr)).isFailure()) {
274 ATH_MSG_ERROR(
"Could not record LArHVCorr object with " << writeHandle.key()
275 <<
" with EventRange " << writeHandle.getRange() <<
" into Conditions Store");
276 return StatusCode::FAILURE;
278 ATH_MSG_INFO(
"recorded new " << writeHandle.key() <<
" with range " << writeHandle.getRange() <<
" into Conditions Store");
280 return StatusCode::SUCCESS;
◆ 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.
◆ renounce()
◆ renounceArray()
◆ returnProblem()
| std::vector<int> LArHVCondAlg::returnProblem |
( |
const float |
eta, |
|
|
const float |
phi, |
|
|
const float |
delta_eta, |
|
|
const float |
delta_phi |
|
) |
| |
|
private |
◆ searchNonNominalHV_EMB()
Definition at line 785 of file LArHVCondAlg.cxx.
808 float phi_min=+30.,phi_max=-30.;
810 bool are_previous_HV_affected=
false;
811 bool are_previous_HV_dead=
false;
812 for (
unsigned int ielec=0;ielec<32;ielec++) {
815 double hv[2]={0.,0.};
816 for (
unsigned int iGap=0;iGap<2;iGap++) {
818 auto hvIt=voltage.find(
hvline);
819 if(hvIt == voltage.end()) {
823 hv[iGap]=hvIt->second.hv;
826 ATH_MSG_VERBOSE(
" electrode HV " << ielec <<
" " << electrode.
getPhi() <<
" "<< hv[0] <<
" " << hv[1] );
831 bool isAffected=
false;
836 if (are_previous_HV_dead && !isDead) {
837 are_previous_HV_dead=
false;
838 ATH_MSG_VERBOSE(
" -- end dead region " << eta_min <<
" " << eta_max <<
" " <<phi_min <<
" " << phi_max);
840 vAffected->push_back(current_CaloAffectedRegionInfo);
844 if (are_previous_HV_affected && !isAffected) {
845 are_previous_HV_affected=
false;
846 ATH_MSG_VERBOSE(
" -- end affected region " << eta_min <<
" " << eta_max <<
" " <<phi_min <<
" " << phi_max);
848 vAffected->push_back(current_CaloAffectedRegionInfo);
852 if (!are_previous_HV_dead) {
855 ATH_MSG_VERBOSE(
" -- start dead region " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " <<phi_max);
856 are_previous_HV_dead =
true;
865 if (!are_previous_HV_affected) {
868 ATH_MSG_VERBOSE(
" -- start affected region " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " <<phi_max);
869 are_previous_HV_affected =
true;
873 ATH_MSG_VERBOSE(
" extend affected region " << phi_min <<
" " << phi_max);
879 if (are_previous_HV_affected) {
880 ATH_MSG_VERBOSE(
" -- finish affected region after electrode loop " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " <<phi_max);
882 vAffected->push_back(current_CaloAffectedRegionInfo);
884 if (are_previous_HV_dead) {
885 ATH_MSG_VERBOSE(
" -- finish dead region after electrode loop " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " <<phi_max);
887 vAffected->push_back(current_CaloAffectedRegionInfo);
903 for (
int iGap=0;iGap<2;iGap++) {
905 auto hvIt=voltage.find(
hvline);
906 if(hvIt == voltage.end()) {
910 hv[iGap]=hvIt->second.hv;
916 ATH_MSG_VERBOSE(
" HV " << hv[0] <<
" " << hv[1] <<
" " <<
" etamin,etamax,phimin,phimax " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " << phi_max);
921 bool isAffected=
false;
927 vAffected->push_back(current_CaloAffectedRegionInfo);
931 vAffected->push_back(current_CaloAffectedRegionInfo);
938 return StatusCode::FAILURE;
940 return StatusCode::SUCCESS;
◆ searchNonNominalHV_EMEC_INNER()
Definition at line 1109 of file LArHVCondAlg.cxx.
1131 ATH_MSG_VERBOSE(
"iSide,iPhi,iSector,iEta " << iSide <<
" " <<
iPhi <<
" " << iSector <<
" "
1132 <<
iEta <<
" eta_min , eta_max " << eta_min <<
" " << eta_max);
1134 float phi_min=+30.,phi_max=-30.;
1136 bool are_previous_HV_affected=0;
1137 bool are_previous_HV_dead=0;
1142 for (
unsigned int iGap=0;iGap<2;iGap++) {
1144 auto hvIt=voltage.find(
hvline);
1145 if(hvIt == voltage.end()) {
1149 hv[iGap]=hvIt->second.hv;
1156 bool isAffected=
false;
1159 << hv[0] <<
" " << hv[1] <<
" " <<
" isDead, isAffected "
1160 << isDead <<
" " << isAffected);
1163 if (are_previous_HV_dead && !isDead) {
1164 are_previous_HV_dead=
false;
1165 ATH_MSG_VERBOSE(
" -- end dead region " << eta_min <<
" " << eta_max <<
" " <<phi_min <<
" " << phi_max);
1167 vAffected->push_back(current_CaloAffectedRegionInfo);
1171 if (are_previous_HV_affected && !isAffected) {
1172 are_previous_HV_affected=
false;
1173 ATH_MSG_VERBOSE(
" -- end affected region " << eta_min <<
" " << eta_max <<
" " <<phi_min <<
" " << phi_max);
1175 vAffected->push_back(current_CaloAffectedRegionInfo);
1179 if (!are_previous_HV_dead) {
1182 ATH_MSG_VERBOSE(
" -- start dead region " << phi_min <<
" " << phi_max);
1183 are_previous_HV_dead =
true;
1192 if (!are_previous_HV_affected) {
1195 are_previous_HV_affected =
true;
1196 ATH_MSG_VERBOSE(
" -- start affected region " << phi_min <<
" " << phi_max);
1200 ATH_MSG_VERBOSE(
" extend affected region " << phi_min <<
" " << phi_max);
1206 if (are_previous_HV_affected) {
1210 ATH_MSG_VERBOSE(
" - finish affected region after electrode loop " << eta_min <<
" "
1211 << eta_max <<
" " << phi_max <<
" " <<phi_max);
1213 vAffected->push_back(current_CaloAffectedRegionInfo);
1215 if (are_previous_HV_dead) {
1216 ATH_MSG_VERBOSE(
" - end dead region after electrode loop " << eta_min <<
" " << eta_max <<
" " << phi_max <<
" " <<phi_max);
1218 vAffected->push_back(current_CaloAffectedRegionInfo);
1226 return StatusCode::FAILURE;
1228 return StatusCode::SUCCESS;
◆ searchNonNominalHV_EMEC_OUTER()
Definition at line 943 of file LArHVCondAlg.cxx.
967 ATH_MSG_VERBOSE(
"iSide,iPhi,iSector,iEta " << iSide <<
" " <<
iPhi <<
" " << iSector <<
" "
968 <<
iEta <<
" eta_min , eta_max " << eta_min <<
" " << eta_max );
971 float phi_min=+30.,phi_max=-30.;
973 bool are_previous_HV_affected=
false;
974 bool are_previous_HV_dead=
false;
979 for (
unsigned int iGap=0;iGap<2;iGap++) {
981 auto hvIt=voltage.find(
hvline);
982 if(hvIt == voltage.end()) {
986 hv[iGap]=hvIt->second.hv;
993 bool isAffected=
false;
996 <<
" " << hv[1] <<
" " <<
" isDead/isAffected " << isDead <<
" " << isAffected );
999 if (are_previous_HV_dead && !isDead) {
1000 are_previous_HV_dead=
false;
1001 ATH_MSG_VERBOSE(
" -- end dead region " << eta_min <<
" " << eta_max <<
" " <<phi_min <<
" " << phi_max);
1003 vAffected->push_back(current_CaloAffectedRegionInfo);
1007 if (are_previous_HV_affected && !isAffected) {
1008 are_previous_HV_affected=
false;
1009 ATH_MSG_VERBOSE(
" -- end affected region " << eta_min <<
" " << eta_max <<
" " <<phi_min <<
" " << phi_max);
1011 vAffected->push_back(current_CaloAffectedRegionInfo);
1015 if (!are_previous_HV_dead) {
1018 are_previous_HV_dead =
true;
1019 ATH_MSG_VERBOSE(
" -- start dead region " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " <<phi_max);
1023 ATH_MSG_VERBOSE(
" extend affected region " << phi_min <<
" " << phi_max);
1028 if (!are_previous_HV_affected) {
1031 are_previous_HV_affected =
true;
1032 ATH_MSG_VERBOSE(
" -- start affected region " << eta_min <<
" " << eta_max <<
" " << phi_min <<
" " <<phi_max);
1036 ATH_MSG_VERBOSE(
" extend affected region " << phi_min <<
" " << phi_max);
1042 if (are_previous_HV_affected) {
1046 ATH_MSG_VERBOSE(
" - finih affected region after electrode loop " << eta_min <<
" " << eta_max
1047 <<
" " << phi_max <<
" " <<phi_max);
1049 vAffected->push_back(current_CaloAffectedRegionInfo);
1051 if (are_previous_HV_dead) {
1052 ATH_MSG_VERBOSE(
" -- finish dead region after electrode loop " << eta_min <<
" " << eta_max <<
" " << phi_max <<
" " <<phi_max);
1054 vAffected->push_back(current_CaloAffectedRegionInfo);
1068 for (
int iGap=0;iGap<2;iGap++) {
1070 auto hvIt=voltage.find(
hvline);
1071 if(hvIt == voltage.end()) {
1075 hv[iGap]=hvIt->second.hv;
1081 ATH_MSG_VERBOSE(
"iSide,iPhi" << iSide <<
" " <<
iPhi <<
" HV " << hv[0] <<
" " << hv[1] <<
" "
1082 <<
" etamin,etamax,phimin,phimax " << eta_min <<
" " << eta_max <<
" "
1083 << phi_min <<
" " << phi_max);
1088 bool isAffected=
false;
1094 vAffected->push_back(current_CaloAffectedRegionInfo);
1098 vAffected->push_back(current_CaloAffectedRegionInfo);
1104 return StatusCode::FAILURE;
1106 return StatusCode::SUCCESS;
◆ searchNonNominalHV_FCAL()
Definition at line 1309 of file LArHVCondAlg.cxx.
1320 float eta_min=3.1,eta_max=4.9;
1326 float HVnominal =
HV_nominal(
"FCAL",(
float)(iSampling));
1330 ATH_MSG_VERBOSE(
" FCAL HVModule side,sampling,sector " << iSide <<
" " << iSampling <<
" "
1331 << iSector <<
" HV nominal " << HVnominal);
1336 float phi_min = ((
float)(iSector))*dphi;
1340 ATH_MSG_VERBOSE(
" eta_min,eta_max,phi_min,phi_max " << eta_min <<
" " << eta_max <<
" " << phi_min
1341 <<
" " << phi_max <<
" number of lines " << hvMod.
getNumHVLines());
1343 for (
unsigned int iLine=0;iLine<hvMod.
getNumHVLines();iLine++) {
1345 unsigned int ihvline =
hvline.hvLineNo(hvCabling);
1346 auto hvIt=voltage.find(ihvline);
1347 if(hvIt == voltage.end()) {
1348 ATH_MSG_WARNING(
"Do not have hvline: "<<ihvline<<
" in LArHVData ! Assuming missing DCS data");
1351 if (iLine<4) hv[iLine]=hvIt->second.hv;
1357 bool isAffected=
false;
1360 ATH_MSG_VERBOSE(
" HV values " << hv[0] <<
" " << hv[1] <<
" " << hv[2] <<
" " << hv[3] <<
" "
1361 <<
" isDead/isAffected " << isDead <<
" " << isAffected);
1367 vAffected->push_back(current_CaloAffectedRegionInfo);
1372 vAffected->push_back(current_CaloAffectedRegionInfo);
1379 return StatusCode::FAILURE;
1381 return StatusCode::SUCCESS;
◆ searchNonNominalHV_HEC()
Definition at line 1231 of file LArHVCondAlg.cxx.
1237 float etamax_layer[4]={3.3,3.1,3.1,3.3};
1238 float etamin_layer[4]={1.5,1.5,1.6,1.7};
1250 float eta_min,eta_max;
1252 eta_min = etamin_layer[iSampling];
1253 eta_max = etamax_layer[iSampling];
1255 eta_min = -1.*etamax_layer[iSampling];
1256 eta_max = -1.*etamin_layer[iSampling];
1263 for (
unsigned int iGap=0;iGap<hvMod.
getNumSubgaps();iGap++) {
1266 auto hvIt=voltage.find(
hvline);
1267 if(hvIt == voltage.end()) {
1271 if(iGap<4) hv[iGap]=hvIt->second.hv;
1278 bool isAffected=
false;
1281 ATH_MSG_VERBOSE(
" HV values " << hv[0] <<
" " << hv[1] <<
" " << hv[2] <<
" " << hv[3] <<
" "
1282 <<
" isDead/isAffected " << isDead <<
" " << isAffected);
1289 ATH_MSG_VERBOSE(
" new dead region " << eta_min <<
" " << eta_max <<
" " << phiMin <<
" " << phiMax <<
" layer " << 8+iSampling);
1291 vAffected->push_back(current_CaloAffectedRegionInfo);
1294 ATH_MSG_VERBOSE(
" new affected region " << eta_min <<
" " << eta_max <<
" " << phiMin <<
" " << phiMax <<
" layer " << 8+iSampling);
1296 vAffected->push_back(current_CaloAffectedRegionInfo);
1304 return StatusCode::FAILURE;
1306 return StatusCode::SUCCESS;
◆ 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.
◆ updateMethod()
Definition at line 1384 of file LArHVCondAlg.cxx.
1393 bool IsMissingFeb=(bfCont->
status(febId).deadAll() || bfCont->
status(febId).deadReadout());
1397 bool is_additive1=0;
1399 int layer_min=+30,layer_max=-30;
1400 float eta_min=+30,eta_max=-30;
1401 float phi_min=+30,phi_max=-30;
1403 int layer_min_additive1=+30,layer_max_additive1=-30;
1404 float eta_min_additive1=+30,eta_max_additive1=-30;
1405 float phi_min_additive1=+30,phi_max_additive1=-30;
1409 for (
int icha=0;icha<chans_per_feb;icha++) {
1417 float current_eta=caloddElement->
eta();
1418 float current_eta_low=caloddElement->
eta()-0.5*caloddElement->
deta();
1419 float current_eta_high=caloddElement->
eta()+0.5*caloddElement->
deta();
1420 float current_phi_low=caloddElement->
phi()-0.5*caloddElement->
dphi();
1421 float current_phi_high=caloddElement->
phi()+0.5*caloddElement->
dphi();
1423 if (caloddElement->
is_lar_em_barrel() && caloddElement->
getLayer()==3 && fabs(current_eta)>0.79 && fabs(current_eta)<1.33) {
1426 if (current_layer<layer_min_additive1)
1427 layer_min_additive1=current_layer;
1428 if (current_layer>layer_max_additive1)
1429 layer_max_additive1=current_layer;
1431 if (current_eta_low<eta_min_additive1)
1432 eta_min_additive1=current_eta_low;
1433 if (current_eta_high>eta_max_additive1)
1434 eta_max_additive1=current_eta_high;
1437 extendPhiRegion(current_phi_high,phi_min_additive1,phi_max_additive1);
1443 if (current_layer<layer_min)
1444 layer_min=current_layer;
1445 if (current_layer>layer_max)
1446 layer_max=current_layer;
1448 if (current_eta_low<eta_min)
1449 eta_min=current_eta_low;
1450 if (current_eta_high>eta_max)
1451 eta_max=current_eta_high;
1462 vAffected->push_back(current_CaloAffectedRegionInfo);
1467 vAffected->push_back(current_additive1_CaloAffectedRegionInfo);
1471 return StatusCode::SUCCESS;
◆ updateVHKA()
◆ m_affectedKey
◆ m_BFKey
◆ m_cablingKey
◆ m_calocellID
◆ m_caloMgrKey
◆ m_DCSFolderKeys
Initial value:{ this, "DCSFolderNames", {"/LAR/DCS/HV/BARREl/I16", "/LAR/DCS/HV/BARREL/I8"},
"DCS folders with HV values"}
Definition at line 71 of file LArHVCondAlg.h.
◆ m_detStore
◆ m_doAffected
| Gaudi::Property<bool> LArHVCondAlg::m_doAffected {this,"doAffected",true,"create affected region info"} |
|
private |
◆ m_doAffectedHV
| Gaudi::Property<bool> LArHVCondAlg::m_doAffectedHV {this,"doAffectedHV",true,"include HV non nominal regions info"} |
|
private |
◆ m_doHV
| Gaudi::Property<bool> LArHVCondAlg::m_doHV {this,"doHV",true,"create HV Scale Correction"} |
|
private |
◆ m_doR
| bool LArHVCondAlg::m_doR = true |
|
private |
◆ m_doRProp
| Gaudi::Property<bool> LArHVCondAlg::m_doRProp {this,"doR",true,"Use R values with current to improve HV"} |
|
private |
◆ m_electrodeID
◆ m_evtStore
◆ m_extendedExtraObjects
| DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_fixHVStrings
| Gaudi::Property<std::vector<std::string> > LArHVCondAlg::m_fixHVStrings {this,"fixHVCorr"} |
|
private |
◆ m_hvLineID
◆ m_hvMappingKey
◆ m_hvRKey
◆ m_larem_id
◆ m_larfcal_id
◆ m_larhec_id
◆ m_nPathologies
| std::atomic<unsigned> LArHVCondAlg::m_nPathologies {0} |
|
mutableprivate |
◆ m_onlineHVScaleCorrKey
Initial value:{this, "keyOnlineHVCorr", "LArHVScaleCorr",
"Input key for HVScaleCorr from conditions database (used online)"}
Definition at line 83 of file LArHVCondAlg.h.
◆ m_onlineID
◆ m_outputHVScaleCorrKey
◆ m_pathologiesKey
◆ m_scaleTool
◆ m_undoOnlineHVCorr
| Gaudi::Property<bool> LArHVCondAlg::m_undoOnlineHVCorr {this,"UndoOnlineHVCorr",true,"Undo the HVCorr done online"} |
|
private |
◆ m_useCurrentEMB
| Gaudi::Property<bool> LArHVCondAlg::m_useCurrentEMB {this,"UseCurrentsInHVEM",false,"Use currents in EMB as well"} |
|
private |
◆ m_useCurrentFCAL1
| Gaudi::Property<bool> LArHVCondAlg::m_useCurrentFCAL1 {this,"UseCurrentsInHVFCAL1",false,"Use currents in FCAL1 as well"} |
|
private |
◆ m_useCurrentOthers
| Gaudi::Property<bool> LArHVCondAlg::m_useCurrentOthers {this,"UseCurrentsInHVOthers", false, "Use currents in other partitions as well"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
float deta() const
cell deta
def retrieve(aClass, aKey=None)
This class provides direct access to information on the HV electrodes within the EMEC....
Gaudi::Property< bool > m_doRProp
unsigned int beginEtaIndex() const
const LArHVLineID * m_hvLineID
StatusCode dcs2LineVoltage(voltagePerLine_t &result, const std::vector< const CondAttrListCollection * > &fldvec) const
Read HV from DCS, store them in internal data structure per HV-line (Step 1)
#define DEAD_HV_THRESHOLD
const_iterator end() const
static unsigned int endSideIndex()
SG::ReadCondHandleKey< AthenaAttributeList > m_hvRKey
Describes one HV Module within the HEC.
static unsigned int beginSideIndex()
SG::ReadCondHandleKey< LArHVPathology > m_pathologiesKey
GeoIntrusivePtr< const HECCell > HECCellConstLink
@Class: HECCellConstLink
const EMECHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
SG::ReadCondHandleKey< ILArHVScaleCorr > m_onlineHVScaleCorrKey
LAr EMEC Detector Element.
std::unordered_map< unsigned, DCS_t > voltagePerLine_t
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
unsigned int getEtaIndex() const
static const unsigned short SetHVMask
Smart Pointer to EMEC Cells. This reference counted link allocates on demand. It audits the total poi...
const std::vector< LArHVPathologiesDb::LArHVElectPathologyDb > & getPathology() const
Scalar phi() const
phi method
static unsigned int beginSideIndex()
unsigned int getPhiIndex() const
unsigned int getSamplingIndex() const
const LArEM_ID * em_idHelper() const
access to EM idHelper
static unsigned int endSideIndex()
bool is_lar_fcal(Identifier id) const
unsigned int endPhiIndex() const
StatusCode searchNonNominalHV_EMEC_INNER(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
static unsigned int beginPhiIndex()
size_type channel_hash_max() const
One more than the largest channel (cell) hash code.
StatusCode searchNonNominalHV_HEC(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
static unsigned int beginSideIndex()
HWIdentifier ElectrodeId(int det, int side, int mod, int phi, int eta, int gap, int elec) const
Create an Electrode identifier from fields.
unsigned int getSideIndex() const
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
const EMECHVElectrode & getElectrode(unsigned int iElectrode) const
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Gaudi::Property< bool > m_doAffected
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
Gaudi::Property< bool > m_useCurrentEMB
static EventIDRange infiniteMixed()
Produces an mixed EventIDRange that is infinite in Time and RunLumi.
unsigned int endSectorIndex() const
unsigned int endEtaIndex() const
int getCellModule(const Identifier &offId) const
returns the Module of a given offId
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
StatusCode makeHVScaleCorr(const EventContext &ctx, voltagePerLine_t &voltagePerLine) const
std::vector< SG::VarHandleKeyArray * > m_vhka
IdentifierHash electrodeHash(HWIdentifier electrode_id) const
Create an electrode hash identifier from an electrode identifier.
int module(const Identifier id) const
module [1,3]
static const unsigned short MaskCurr
IdentifierHash channel_hash(Identifier channelId) const
Convert a connected channel (cell) Identifier to a hash code.
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
int sampling(const Identifier id) const
return sampling according to :
void extendPhiRegion(float phi, float &phi_min, float &phi_max) const
unsigned int getSideIndex() const
unsigned int endPhiIndex() const
std::vector< std::vector< unsigned short > > pathVec
Internal structure for HV pathologies.
unsigned int endPhiIndex() const
static unsigned int beginSectorIndex()
const FCALHVModule & getHVModule(unsigned int iSide, unsigned int iSector, unsigned int iSampling) const
#define ATH_MSG_VERBOSE(x)
const FCALTile * getFCALTile() const
FCAL Tile description from LArReadoutGeometry.
EMECCellConstLink getEMECCell() const
EMEC Cell description from LArReadoutGeometry.
LAr EMB Detector Element.
This class is a collection of AttributeLists where each one is associated with a channel number....
unsigned int beginPhiIndex() const
LArBC_t status(const HWIdentifier channel) const
Query the status of a particular channel or FEB This is the main client access method.
const EMECPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iPhi) const
static unsigned int beginSideIndex()
unsigned int endEtaIndex() const
GeoIntrusivePtr< const EMBCell > EMBCellConstLink
const LArHEC_ID * hec_idHelper() const
access to HEC idHelper
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
LAr HEC Detector Element.
Gaudi::Property< bool > m_useCurrentFCAL1
const EMBHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
unsigned int beginEtaIndex() const
#define HV_NON_NOMINAL_TOLERANCE
StatusCode makeAffectedRegionInfo(const EventContext &ctx, voltagePerLine_t &voltagePerLine) const
std::vector< unsigned int > getElecList(const Identifier &id, const LArHVPathology &pathologies) const
This class provides direct access to information on the HV electrodes within the barrels....
unsigned int beginPhiIndex() const
static const unsigned short MaskHV
A tile of the forward calorimeter readout geometry.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
unsigned int getSamplingIndex() const
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
IdentifierHash channel_hash(Identifier channelId) const
create hash id from channel id
const std::vector< Identifier > & channel_ids() const
provide acces to channel id vector, accessed via hash
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_DCSFolderKeys
static unsigned int endSideIndex()
virtual StatusCode sysInitialize() override
Override sysInitialize.
float HV_nominal(const char *identification, const float eta) const
id_range feb_range() const
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
std::vector< voltageCell_t > voltagePerCell_t
static unsigned int getNumHVLines()
int channelInSlotMax(const HWIdentifier Id) const
Return the Maximum channel number of a given feb slot.
unsigned int getElectrodeIndex() const
const HECHVSubgap & getSubgap(unsigned int iElectrode) const
const LArElectrodeID * m_electrodeID
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
LAr FCAL Detector Element.
StatusCode searchNonNominalHV_EMB(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
int hvLineNo(const LArHVIdMapping *hvIdMapping) const
static unsigned int endSamplingIndex()
Gaudi::Property< std::vector< std::string > > m_fixHVStrings
const CaloCell_ID * m_calocellID
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
SG::ReadCondHandleKey< LArBadFebCont > m_BFKey
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
bool is_lar_hec(Identifier id) const
unsigned int getEtaIndex() const
Gaudi::Property< bool > m_doHV
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
const LArEM_ID * m_larem_id
const LArFCAL_ID * m_larfcal_id
IdentifierHash channel_hash(Identifier channelId) const
create hash id from channel id
StatusCode fillPathAndCellHV(const CaloDetDescrManager *calodetdescrmgr, voltagePerCell_t &hvdata, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage, const LArHVPathology &pathologies, pathVec &hasPathologyEM, pathVec &hasPathologyHEC, pathVec &hasPathologyFCAL, const float *rValues) const
Read the voltage per HV line and store it in structure per readout-cell (resolve the many-HV-lines-to...
unsigned int getEtaIndex() const
unsigned int endEtaIndex() const
const HECHVModule & getModule() const
static double fix(double phi)
const LArHEC_ID * m_larhec_id
unsigned int getSideIndex() const
static unsigned int getNumSubgaps()
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
unsigned int getSubgapIndex() const
unsigned short pathologyType
StatusCode updateMethod(const EventContext &ctx, CaloAffectedRegionInfoVec *vAffected, const LArBadFebCont *bfCont, const LArOnOffIdMapping *cabling) const
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
unsigned int beginPhiIndex() const
unsigned int getNumElectrodes() const
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
const EMBHVModule & getModule() const
StatusCode searchNonNominalHV_FCAL(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
unsigned int getSideIndex() const
int barrel_ec(const Identifier id) const
return barrel_ec according to :
unsigned int getSectorIndex() const
StatusCode initialize(bool used=true)
This class provides direct access to information on the HV electrodes within the barrels....
static unsigned int endSideIndex()
std::atomic< unsigned > m_nPathologies
const EMECHVModule & getModule() const
EMBCellConstLink getEMBCell() const
EMB Cell description from LArReadoutGeometry.
unsigned int beginEtaIndex() const
Gaudi::Property< bool > m_undoOnlineHVCorr
const FCALHVLine & getHVLine(unsigned int iLine) const
const LArOnlineID * m_onlineID
static unsigned int beginSideIndex()
SG::WriteCondHandleKey< LArHVCorr > m_outputHVScaleCorrKey
unsigned int getSideIndex() const
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
static unsigned int endSamplingIndex()
This class provides direct access to information on the HV electrodes within the barrels....
float dphi() const
cell dphi
static unsigned int beginSectorIndex(unsigned int iSampling)
DataObjIDColl m_extendedExtraObjects
bool is_lar_em_barrel() const
cell belongs to EM barrel
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
virtual int getLayer() const
cell layer
bool empty() const noexcept
This class provides access to the High Voltage throughout the LAr. High voltage conditions can also b...
This class provides the client interface for accessing the detector description information common to...
Gaudi::Property< bool > m_useCurrentOthers
CaloCell_ID::CaloSample getSampling() const
cell sampling
Gaudi::Property< bool > m_doAffectedHV
#define ATH_MSG_WARNING(x)
ChanAttrListMap::const_iterator const_iterator
static unsigned int endPhiIndex()
unsigned int beginPhiIndex() const
std::unique_ptr< const LArHVScaleCorrTool > m_scaleTool
StatusCode searchNonNominalHV_EMEC_OUTER(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
StatusCode getVoltagePerLine(const EventContext &ctx, voltagePerLine_t &voltagePerLine, const addDepFcn_t &addDep) const
unsigned int getPhiIndex() const
unsigned int getElectrodeIndex() const
static unsigned int endSectorIndex(unsigned int iSampling)
size_type electrodeHashMax() const
Define hash tables max size.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Describes one HV Module within the EMEc Presampler.
const EMBHVElectrode & getElectrode(unsigned int iElectrode) const
Describes one HV Module within the FCAL.
float eta() const
cell eta
unsigned int beginSectorIndex() const
static unsigned int beginSideIndex()
float phi() const
cell phi
static unsigned int beginSamplingIndex()
static unsigned int endSectorIndex()
unsigned int endPhiIndex() const
HECCellConstLink getHECCell() const
HEC Cell description from LArReadoutGeometry.
This class provides direct access to information on the HV electrodes within the EMEC....
const std::vector< Identifier > & channel_ids() const
provide access to channel id vector, accessed via hash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Describes one HV Module within the EMB.
static unsigned int endSideIndex()
const std::vector< Identifier > & channel_ids() const
provide access to channel id vector, accessed via hash
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
const EMBPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi) const
setScale setgFexType iEta
LArHVScaleCorrTool::voltageCell_t voltageCell_t
This class provides direct access to information on the HV electrodes within the barrels....
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
bool is_lar_em(Identifier id) const
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
const HECHVModule & getHVModule(unsigned int iSide, unsigned int iPhi, unsigned int iSampling) const
Describes one HV Module within the EMB Presampler.
const LArFCAL_ID * fcal_idHelper() const
access to FCAL idHelper
static unsigned int beginSamplingIndex()
static unsigned int endSideIndex()
unsigned int getSideIndex() const
SG::ReadCondHandleKey< LArHVIdMapping > m_hvMappingKey
SG::WriteCondHandleKey< CaloAffectedRegionInfoVec > m_affectedKey
static double diff(double phi1, double phi2)
simple phi1 - phi2 calculation, but result is fixed to respect range.
void addHV(voltageCell_t &v, float hv, float weight) const
Add voltage/weight for a sub-gap of a cell.
unsigned int getSectorIndex() const