diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx index 9671307f60032055e7ef39b6aa30bee13507b2b2..a4f1d71692960f0d160635d3d29cd4329783f4c5 100644 --- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx +++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx @@ -17,11 +17,9 @@ #include "CaloDetDescr/CaloDetectorElements.h" #include "LArReadoutGeometry/EMBCell.h" #include "LArHV/EMBHVElectrode.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" #include "LArHV/EMBPresamplerHVModule.h" #include "LArReadoutGeometry/EMECCell.h" #include "LArHV/EMECHVElectrode.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" #include "LArHV/EMECPresamplerHVModule.h" #include "LArReadoutGeometry/HECCell.h" #include "LArHV/HECHVSubgap.h" @@ -237,14 +235,14 @@ std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) { const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(m_calodetdescrmgr->get_element(id)); if (!embElement) std::abort(); const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule(); - for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule->hvLineNo(igap)); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule(); + for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap)); } else { const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id)); if (!emecElement) std::abort(); const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); - for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule->hvLineNo(igap)); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); + for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap)); } } diff --git a/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx b/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx index 6d295483c3da738bbb5f635de8d78da43a45bda5..4f22392f7c6af8e467abe3051d7a0ec23117deeb 100644 --- a/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx +++ b/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx @@ -51,11 +51,9 @@ #include "CaloDetDescr/CaloDetectorElements.h" #include "LArReadoutGeometry/EMBCell.h" #include "LArHV/EMBHVElectrode.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" #include "LArHV/EMBPresamplerHVModule.h" #include "LArReadoutGeometry/EMECCell.h" #include "LArHV/EMECHVElectrode.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" #include "LArHV/EMECPresamplerHVModule.h" #include "LArReadoutGeometry/HECCell.h" #include "LArHV/HECHVSubgap.h" @@ -1433,8 +1431,8 @@ std::vector<int>* LArNoiseBursts::GetHVLines(const Identifier& id) return 0; } const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule(); - for(igap=0;igap<2;igap++) tmplines.push_back(hvmodule->hvLineNo(igap)); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule(); + for(igap=0;igap<2;igap++) tmplines.push_back(hvmodule.hvLineNo(igap)); } else { @@ -1442,8 +1440,8 @@ std::vector<int>* LArNoiseBursts::GetHVLines(const Identifier& id) if (!emecElement) return 0; const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule(); - for(igap=0;igap<2;igap++) tmplines.push_back(hvmodule->hvLineNo(igap)); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule(); + for(igap=0;igap<2;igap++) tmplines.push_back(hvmodule.hvLineNo(igap)); } } else { diff --git a/LArCalorimeter/LArCondUtils/src/LArHV2Ntuple.cxx b/LArCalorimeter/LArCondUtils/src/LArHV2Ntuple.cxx index c910c6274c3164038d61b9a993483788ba390b78..05f9cce8c1684dd807240b29d5c2c3a0cac6755d 100644 --- a/LArCalorimeter/LArCondUtils/src/LArHV2Ntuple.cxx +++ b/LArCalorimeter/LArCondUtils/src/LArHV2Ntuple.cxx @@ -19,10 +19,8 @@ #include "LArHV/FCALHVManager.h" #include "LArHV/EMBPresamplerHVManager.h" #include "LArHV/EMBPresamplerHVModule.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" #include "LArHV/EMECPresamplerHVManager.h" #include "LArHV/EMECPresamplerHVModule.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" #include "CaloIdentifier/CaloCell_ID.h" #include "LArIdentifier/LArOnlineID.h" #include "CaloDetDescr/CaloDetDescrManager.h" @@ -165,16 +163,16 @@ } } //EMBHVManager - const EMBPresamplerHVManager* hvManager_EMBPS=manager->getEMBPresamplerHVManager(); - for (unsigned int iSide=hvManager_EMBPS->beginSideIndex();iSide<hvManager_EMBPS->endSideIndex();iSide++) { // loop over HV modules - for (unsigned int iPhi=hvManager_EMBPS->beginPhiIndex();iPhi<hvManager_EMBPS->endPhiIndex();iPhi++) { - for (unsigned int iEta=hvManager_EMBPS->beginEtaIndex();iEta<hvManager_EMBPS->endEtaIndex();iEta++) { //0 to 7 - EMBPresamplerHVModuleConstLink hvMod = hvManager_EMBPS->getHVModule(iSide,iEta,iPhi); + const EMBPresamplerHVManager& hvManager_EMBPS=manager->getEMBPresamplerHVManager(); + for (unsigned int iSide=hvManager_EMBPS.beginSideIndex();iSide<hvManager_EMBPS.endSideIndex();iSide++) { // loop over HV modules + for (unsigned int iPhi=hvManager_EMBPS.beginPhiIndex();iPhi<hvManager_EMBPS.endPhiIndex();iPhi++) { + for (unsigned int iEta=hvManager_EMBPS.beginEtaIndex();iEta<hvManager_EMBPS.endEtaIndex();iEta++) { //0 to 7 + const EMBPresamplerHVModule& hvMod = hvManager_EMBPS.getHVModule(iSide,iEta,iPhi); for (int iGap=0;iGap<2;iGap++) { - float hv = hvMod->voltage(iGap); - float current =hvMod->current(iGap); - float eta = 0.5*(hvMod->getEtaMin()+hvMod->getEtaMax()); - float phi= 0.5*(hvMod->getPhiMin()+hvMod->getPhiMax()); + float hv = hvMod.voltage(iGap); + float current =hvMod.current(iGap); + float eta = 0.5*(hvMod.getEtaMin()+hvMod.getEtaMax()); + float phi= 0.5*(hvMod.getPhiMin()+hvMod.getPhiMax()); m_bec=0; m_isPresampler=1; @@ -184,7 +182,7 @@ m_gap = iGap; m_hv = hv; m_current= current; - m_hvline = hvMod->hvLineNo(iGap); + m_hvline = hvMod.hvLineNo(iGap); if(m_addcells) { for(unsigned i=0; i<m_hvonlId_map[m_hvline].size(); ++i) { @@ -202,15 +200,15 @@ } } //EMBPresampler - const EMECPresamplerHVManager* hvManager_EMECPS=manager->getEMECPresamplerHVManager(); - for (unsigned int iSide=hvManager_EMECPS->beginSideIndex();iSide<hvManager_EMECPS->endSideIndex();iSide++) { // loop over HV modules - for (unsigned int iPhi=hvManager_EMECPS->beginPhiIndex();iPhi<hvManager_EMECPS->endPhiIndex();iPhi++) { - EMECPresamplerHVModuleConstLink hvMod = hvManager_EMECPS->getHVModule(iSide,iPhi); + const EMECPresamplerHVManager& hvManager_EMECPS=manager->getEMECPresamplerHVManager(); + for (unsigned int iSide=hvManager_EMECPS.beginSideIndex();iSide<hvManager_EMECPS.endSideIndex();iSide++) { // loop over HV modules + for (unsigned int iPhi=hvManager_EMECPS.beginPhiIndex();iPhi<hvManager_EMECPS.endPhiIndex();iPhi++) { + const EMECPresamplerHVModule& hvMod = hvManager_EMECPS.getHVModule(iSide,iPhi); for (int iGap=0;iGap<2;iGap++) { - float hv = hvMod->voltage(iGap); - float current =hvMod->current(iGap); - float eta = 0.5*(hvMod->getEtaMin()+hvMod->getEtaMax()); - float phi=0.5*(hvMod->getPhiMin()+hvMod->getPhiMax()); + float hv = hvMod.voltage(iGap); + float current =hvMod.current(iGap); + float eta = 0.5*(hvMod.getEtaMin()+hvMod.getEtaMax()); + float phi=0.5*(hvMod.getPhiMin()+hvMod.getPhiMax()); m_bec=1; m_isPresampler=1; @@ -220,7 +218,7 @@ m_gap = iGap; m_hv = hv; m_current= current; - m_hvline = hvMod->hvLineNo(iGap); + m_hvline = hvMod.hvLineNo(iGap); if(m_addcells) { for(unsigned i=0; i<m_hvonlId_map[m_hvline].size(); ++i) { @@ -473,14 +471,14 @@ std::vector<int> LArHV2Ntuple::GetHVLines(const Identifier& id) { const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(m_calodetdescrmgr->get_element(id)); if (!embElement) std::abort(); const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule(); - for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule->hvLineNo(igap)); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule(); + for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap)); } else { const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id)); if (!emecElement) std::abort(); const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); - for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule->hvLineNo(igap)); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); + for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap)); } } diff --git a/LArCalorimeter/LArCondUtils/src/LArHVPathologyDbAlg.cxx b/LArCalorimeter/LArCondUtils/src/LArHVPathologyDbAlg.cxx index 8b6acfa012f2443c15c968ab46434ed6373cc9d5..ececa8c4aaa241eac7d78dae43216f1340f41bc2 100644 --- a/LArCalorimeter/LArCondUtils/src/LArHVPathologyDbAlg.cxx +++ b/LArCalorimeter/LArCondUtils/src/LArHVPathologyDbAlg.cxx @@ -19,11 +19,9 @@ #include "CaloDetDescr/CaloDetectorElements.h" #include "LArReadoutGeometry/EMBCell.h" #include "LArHV/EMBHVElectrode.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" #include "LArHV/EMBPresamplerHVModule.h" #include "LArReadoutGeometry/EMECCell.h" #include "LArHV/EMECHVElectrode.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" #include "LArHV/EMECPresamplerHVModule.h" #include "LArReadoutGeometry/HECCell.h" #include "LArHV/HECHVSubgap.h" @@ -384,9 +382,9 @@ std::vector<unsigned int> LArHVPathologyDbAlg::getElectInd(const Identifier & id if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) { if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(m_calodetdescrmgr->get_element(id))) { const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); for (unsigned int igap=0;igap<2;igap++) { - if (hvmodule->hvLineNo(igap)==HVline) { + if (hvmodule.hvLineNo(igap)==HVline) { list.push_back(igap); } } @@ -396,9 +394,9 @@ std::vector<unsigned int> LArHVPathologyDbAlg::getElectInd(const Identifier & id if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) { if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id))) { const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); for (unsigned int igap=0;igap<2;igap++) { - if (hvmodule->hvLineNo(igap)==HVline) { + if (hvmodule.hvLineNo(igap)==HVline) { list.push_back(igap); } } @@ -478,12 +476,12 @@ int LArHVPathologyDbAlg::getHVline(const Identifier & id, short unsigned int Ele if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) { if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(m_calodetdescrmgr->get_element(id))) { const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); if(ElectInd >= 2) { msg(MSG::ERROR) << "Wrong igap "<<ElectInd<<" for EMBPS cell "<<id.get_identifier32().get_compact() <<endmsg; return -1; } else { - return hvmodule->hvLineNo(ElectInd); + return hvmodule.hvLineNo(ElectInd); } } } @@ -491,12 +489,12 @@ int LArHVPathologyDbAlg::getHVline(const Identifier & id, short unsigned int Ele if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) { if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id))) { const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); if(ElectInd >= 2) { msg(MSG::ERROR) << "Wrong igap "<<ElectInd<<" for EMECPS cell "<<id.get_identifier32().get_compact() <<endmsg; return -1; } else { - return hvmodule->hvLineNo(ElectInd); + return hvmodule.hvLineNo(ElectInd); } } } diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx index c09787ba0dd062a891edce8296fc190ffb2a8cee..01b946b710686f3760579fd519d086b973c0e03c 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx @@ -400,7 +400,8 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) emecDetectorManager = new EMECDetectorManager(&(m_hvManager->getEMECHVManager(EMECHVModule::INNER)) - ,&(m_hvManager->getEMECHVManager(EMECHVModule::OUTER))); + ,&(m_hvManager->getEMECHVManager(EMECHVModule::OUTER)) + ,&(m_hvManager->getEMECPresamplerHVManager())); // Here is a table of min and max eta for different sampling layers, radial part (i/o) and region. @@ -539,7 +540,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) try { - embDetectorManager = new EMBDetectorManager(m_hvManager->getEMBHVManager()); + embDetectorManager = new EMBDetectorManager(m_hvManager->getEMBHVManager(),m_hvManager->getEMBPresamplerHVManager()); int firstEndcap=m_testbeam==0 ? 0:1, endEndcap=2; for (int e= firstEndcap ;e<endEndcap;e++) { diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx index cce45b888b2ba9dc030653509cb45713dafc072e..c0933118732b8391330510432084b723bb180f44 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx @@ -28,8 +28,6 @@ #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "LArHV/LArHVManager.h" -#include "LArHV/EMBPresamplerHVManager.h" -#include "LArHV/EMECPresamplerHVManager.h" #include "AthenaKernel/ClassID_traits.h" #include "SGTools/DataProxy.h" @@ -70,10 +68,7 @@ LArDetectorToolNV::~LArDetectorToolNV() StatusCode LArDetectorToolNV::create() { // Initialize the HV System: - const EMBPresamplerHVManager *embPSHV = new EMBPresamplerHVManager(); - const EMECPresamplerHVManager *emecPSHV = new EMECPresamplerHVManager(); - - LArHVManager *hvManager= new LArHVManager(embPSHV, emecPSHV); + LArHVManager *hvManager= new LArHVManager(); ATH_CHECK(detStore()->record(hvManager,"LArHVManager")); diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVDescriptor.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVDescriptor.h index eaa6880a50fdb8514e75992b2419434f8f7db2b1..00ef3f16008a47e80f62197d0ef6df2c9c5c6072 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVDescriptor.h +++ b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVDescriptor.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBPresamplerHVDESCRIPTOR_H_HEADER_INCLUDED_F36D906D -#define EMBPresamplerHVDESCRIPTOR_H_HEADER_INCLUDED_F36D906D +#ifndef LARHV_EMBPRESAMPLERHVDESCRIPTOR_H +#define LARHV_EMBPRESAMPLERHVDESCRIPTOR_H #include "GeoModelKernel/CellBinning.h" #include "GeoModelKernel/CellPartitioning.h" @@ -11,36 +11,26 @@ class EMBPresamplerHVDescriptor { public: - // Constructor EMBPresamplerHVDescriptor(const CellPartitioning &etaPartitioning, const CellBinning &phiBinning); - - virtual ~EMBPresamplerHVDescriptor(); + ~EMBPresamplerHVDescriptor(); const CellPartitioning &getEtaPartitioning() const - { - return m_etaPartitioning; - } - + { + return m_etaPartitioning; + } const CellBinning &getPhiBinning() const - { - return m_phiBinning; - } + { + return m_phiBinning; + } private: - - + // Illegal operations EMBPresamplerHVDescriptor(const EMBPresamplerHVDescriptor& right); - EMBPresamplerHVDescriptor& operator=(const EMBPresamplerHVDescriptor& right); - const CellPartitioning m_etaPartitioning; - const CellBinning m_phiBinning; - }; - - -#endif /* EMBPresamplerHVDESCRIPTOR_H_HEADER_INCLUDED_F36D906D */ +#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVManager.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVManager.h index 3e53bfa4f455562bbe9bf9e129ea74c3d48b775d..7cdfb8fc4071f753c43d0879e50e3e1517c81445 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVManager.h +++ b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVManager.h @@ -1,88 +1,68 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBPresamplerHVMANAGER_H_HEADER_INCLUDED_EA5D07D1 -#define EMBPresamplerHVMANAGER_H_HEADER_INCLUDED_EA5D07D1 +#ifndef LARHV_EMBPRESAMPLERHVMANAGER_H +#define LARHV_EMBPRESAMPLERHVMANAGER_H -#include "GeoModelKernel/RCBase.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" #include "LArHV/EMBPresamplerHVModule.h" - class EMBPresamplerHVDescriptor; - - -// This class provides direct access to information on the HV -// electrodes within the barrels. The information may be accessed either -// directly or iteratively. Direct access is provided by the getHVModule() -// method. Iterative access -// is by looping over valid side, eta, phi, and sector indices to -// retrieve a HV module. From the high voltage modules one -// can obtain a list of electrodes (iteratively or directly). -// - struct EMBPresamplerHVPayload; -class EMBPresamplerHVManager : public RCBase +/** + * @class EMBPresamplerHVManager + * + * @brief This class provides direct access to information on the HV + * electrodes within the barrels. The information may be accessed either + * directly or iteratively. Direct access is provided by the getHVModule() + * method. Iterative access + * is by looping over valid side, eta, phi, and sector indices to + * retrieve a HV module. From the high voltage modules one + * can obtain a list of electrodes (iteratively or directly). + * + * The manager owns the pointers to the HV Modules. + */ + +class EMBPresamplerHVManager { - public: - - // Constructor - EMBPresamplerHVManager(); - - // Gets the descriptor. (Not generally for users but nothing to hide - // here). - const EMBPresamplerHVDescriptor *getDescriptor() const; - - // Begin phi index - unsigned int beginPhiIndex() const; + public: + EMBPresamplerHVManager(); + ~EMBPresamplerHVManager(); - // End phi index - unsigned int endPhiIndex() const; + const EMBPresamplerHVDescriptor *getDescriptor() const; - // Begin eta index - unsigned int beginEtaIndex() const; + unsigned int beginPhiIndex() const; + unsigned int endPhiIndex() const; - // End eta index - unsigned int endEtaIndex() const; + unsigned int beginEtaIndex() const; + unsigned int endEtaIndex() const; - // Returns a high voltage module - EMBPresamplerHVModuleConstLink getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi) const; + // Returns a high voltage module + const EMBPresamplerHVModule& getHVModule(unsigned int iSide + , unsigned int iEta + , unsigned int iPhi) const; - // Begin side index (0=negative and 1= positive) - unsigned int beginSideIndex() const; + // Begin/end side index (0=negative and 1= positive) + unsigned int beginSideIndex() const; + unsigned int endSideIndex() const; - // End side index (0=negative and 1= positive) - unsigned int endSideIndex() const; + // Refresh from the database if needed + void update() const; - // Refresh from the database if needed - void update() const; + // Make the data stale. Force update of data. + void reset() const; - // Make the data stale. Force update of data. - void reset() const; - - // Get the database payload - EMBPresamplerHVPayload *getPayload(const EMBPresamplerHVModule &) const; - - private: - // Destructor - //##ModelId=475533F7019B - virtual ~EMBPresamplerHVManager(); - - // Illegal operation - //##ModelId=475533F70154 - EMBPresamplerHVManager(const EMBPresamplerHVManager& right); - - // Illegal operation - //##ModelId=475533F701B8 - EMBPresamplerHVManager& operator=(const EMBPresamplerHVManager& right); - - friend class ImaginaryFriend; - class Clockwork; - Clockwork *m_c; + // Get the database payload + EMBPresamplerHVPayload *getPayload(const EMBPresamplerHVModule &) const; + private: + // Illegal operations + EMBPresamplerHVManager(const EMBPresamplerHVManager& right); + EMBPresamplerHVManager& operator=(const EMBPresamplerHVManager& right); + + friend class ImaginaryFriend; + class Clockwork; + Clockwork *m_c; }; - - -#endif /* EMBPresamplerHVMANAGER_H_HEADER_INCLUDED_EA5D07D1 */ +#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModule.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModule.h index e16a0c4c8057b6d4fe84cfa497a15ca810876295..5b9c62c612606144c4732ad33a0abe0d6806429e 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModule.h +++ b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModule.h @@ -1,76 +1,60 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBPresamplerHVMODULE_H_HEADER_INCLUDED_C40C54F8 -#define EMBPresamplerHVMODULE_H_HEADER_INCLUDED_C40C54F8 -#include "GeoModelKernel/RCBase.h" -#include "GeoModelKernel/ConstLink.h" -class EMBPresamplerHVManager; - -class EMBPresamplerHVModule : public RCBase -{ - public: - - // Constructor: - EMBPresamplerHVModule(const EMBPresamplerHVManager *manager, unsigned int iSide, unsigned int iEta, unsigned int iPhi); - - // Get eta Index - unsigned int getEtaIndex() const; - - // Get phi index - unsigned int getPhiIndex() const; - - // Side Index (0=Negative, 1=Positive) - unsigned int getSideIndex() const; - - double getEtaMin() const; - - - double getEtaMax() const; +#ifndef LARHV_EMBPRESAMPLERHVMODULE_H +#define LARHV_EMBPRESAMPLERHVMODULE_H +class EMBPresamplerHVManager; - double getPhiMin() const; +/** + * @class EMBPresamplerHVModule + * + * @brief Describes one HV Module within the EMB Presampler + * + */ +class EMBPresamplerHVModule +{ + public: + EMBPresamplerHVModule(const EMBPresamplerHVManager *manager + , unsigned int iSide + , unsigned int iEta + , unsigned int iPhi); + ~EMBPresamplerHVModule(); + + unsigned int getEtaIndex() const; + unsigned int getPhiIndex() const; + + // Side Index (0=Negative, 1=Positive) + unsigned int getSideIndex() const; + + double getEtaMin() const; + double getEtaMax() const; + double getPhiMin() const; + double getPhiMax() const; + + // HV Status + bool hvOn(int iGap) const; - double getPhiMax() const; - - // HV Status - bool hvOn(int iGap) const; - - // Voltage - double voltage(int iGap) const; + double voltage(int iGap) const; + double current(int iGap) const; - // Current - double current(int iGap) const; - - // Both at the same time... - void voltage_current(int iGap, double& v, double& i) const; - - // HVLine no - int hvLineNo(int iGap) const; - - const EMBPresamplerHVManager *getManager() const; + // Voltage and current at the same time... + void voltage_current(int iGap, double& v, double& i) const; + int hvLineNo(int iGap) const; - private: - - // Destructor - virtual ~EMBPresamplerHVModule(); - - - // Illegal operation - EMBPresamplerHVModule& operator=(const EMBPresamplerHVModule& right); - - // Illegal operation - EMBPresamplerHVModule(const EMBPresamplerHVModule& right); - - class Clockwork; - Clockwork *m_c; - - friend class ImaginaryFriend; - - + const EMBPresamplerHVManager& getManager() const; + + private: + // Illegal operations + EMBPresamplerHVModule& operator=(const EMBPresamplerHVModule& right); + EMBPresamplerHVModule(const EMBPresamplerHVModule& right); + + friend class ImaginaryFriend; + class Clockwork; + Clockwork *m_c; }; -#endif /* EMBPresamplerHVMODULE_H_HEADER_INCLUDED_C40C54F8 */ +#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModuleConstLink.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModuleConstLink.h deleted file mode 100644 index 6ebf305fa2f328df748213055e95ffcd83becce8..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModuleConstLink.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef _EMBPresamplerHVModuleConstLink_h_ -#define _EMBPresamplerHVModuleConstLink_h_ -#include "GeoModelKernel/ConstLink.h" -class EMBPresamplerHVModule; -typedef ConstLink<EMBPresamplerHVModule> EMBPresamplerHVModuleConstLink; -#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVManager.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVManager.h index 391c600b1335c0116b48a96f2d7b6e21b85bbae5..5687ead3093b96d725a12c68cd64c4c1c6cef8aa 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVManager.h +++ b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVManager.h @@ -1,70 +1,64 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMECPresamplerHVMANAGER_H_HEADER_INCLUDED_994115CA -#define EMECPresamplerHVMANAGER_H_HEADER_INCLUDED_994115CA -class EMECPresamplerHVDescriptor; -#include "GeoModelKernel/RCBase.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" +#ifndef LARHV_EMECPRESAMPLERHVMANAGER_H +#define LARHV_EMECPRESAMPLERHVMANAGER_H + #include "LArHV/EMECPresamplerHVModule.h" -//##ModelId=47530759003A struct EMECPresamplerHVPayload; class CellBinning; -class EMECPresamplerHVManager : public RCBase +/** + * @class EMECPresamplerHVManager + * + * @brief This class provides direct access to information on the HV + * electrodes within the EMEC. The information may be accessed either + * directly or iteratively. Direct access is provided by the getHVModule() + * method. Iterative access + * is by looping over valid side, eta, phi, and sector indices to + * retrieve a HV module. From the high voltage modules one + * can obtain a list of electrodes (iteratively or directly). + * + * The manager owns the pointers to the HV Modules. + */ + +class EMECPresamplerHVManager { - public: - - // Constructor - EMECPresamplerHVManager(); - + public: + EMECPresamplerHVManager(); + ~EMECPresamplerHVManager(); - const CellBinning *getPhiBinning() const; - - - unsigned int beginPhiIndex() const; + const CellBinning *getPhiBinning() const; + unsigned int beginPhiIndex() const; + unsigned int endPhiIndex() const; - unsigned int endPhiIndex() const; - - - // Begin side index (0=negative and 1= positive) - unsigned int beginSideIndex() const; - - // End side index (0=negative and 1= positive) - unsigned int endSideIndex() const; - - // Get a link to the HV module: - EMECPresamplerHVModuleConstLink getHVModule(unsigned int iSide, unsigned int iPhi) const; - - // Refresh from the database if needed - void update() const; - - // Make the data stale. Force update of data. - void reset() const; - - // Get the database payload - EMECPresamplerHVPayload *getPayload(const EMECPresamplerHVModule &) const; - - - private: - - - virtual ~EMECPresamplerHVManager(); - + // Begin/end side index (0=negative and 1= positive) + unsigned int beginSideIndex() const; + unsigned int endSideIndex() const; - EMECPresamplerHVManager& operator=(const EMECPresamplerHVManager& right); + // Get a link to the HV module: + const EMECPresamplerHVModule& getHVModule(unsigned int iSide, unsigned int iPhi) const; - EMECPresamplerHVManager(const EMECPresamplerHVManager& right); + // Refresh from the database if needed + void update() const; + // Make the data stale. Force update of data. + void reset() const; - class Clockwork; - Clockwork *m_c; + // Get the database payload + EMECPresamplerHVPayload *getPayload(const EMECPresamplerHVModule &) const; + private: + // Illegal operations + EMECPresamplerHVManager& operator=(const EMECPresamplerHVManager& right); + EMECPresamplerHVManager(const EMECPresamplerHVManager& right); + class Clockwork; + Clockwork *m_c; }; -#endif /* EMECPresamplerHVMANAGER_H_HEADER_INCLUDED_994115CA */ +#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModule.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModule.h index 2280097e7c8297e267b14a183632543aa9671fa7..6255346adaeff2f6d17d4249227b49b62e56441d 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModule.h +++ b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModule.h @@ -1,64 +1,58 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMECPresamplerHVMODULE_H_HEADER_INCLUDED_8AB76742 -#define EMECPresamplerHVMODULE_H_HEADER_INCLUDED_8AB76742 -#include "GeoModelKernel/RCBase.h" -class EMECPresamplerHVManager; -// Describes one HV Module within the EMECPresampler -class EMECPresamplerHVModule : public RCBase -{ - public: +#ifndef LARHV_EMECPRESAMPLERHVMODULE_H +#define LARHV_EMECPRESAMPLERHVMODULE_H +class EMECPresamplerHVManager; - EMECPresamplerHVModule(const EMECPresamplerHVManager *manager, unsigned int iSide, unsigned int iPhi); - - double getEtaMin() const; +/** + * @class EMECPresamplerHVModule + * + * @brief Describes one HV Module within the EMEc Presampler + * + */ - double getEtaMax() const; +class EMECPresamplerHVModule +{ + public: + EMECPresamplerHVModule(const EMECPresamplerHVManager *manager + , unsigned int iSide + , unsigned int iPhi); + ~EMECPresamplerHVModule(); - double getPhiMin() const; - - double getPhiMax() const; + double getEtaMin() const; + double getEtaMax() const; - unsigned int getPhiIndex() const; + double getPhiMin() const; + double getPhiMax() const; - // Side Index (0=Negative, 1=Positive) - unsigned int getSideIndex() const; + unsigned int getPhiIndex() const; + // Side Index (0=Negative, 1=Positive) + unsigned int getSideIndex() const; - // HV Status - bool hvOn(int iGap) const; + // HV Status + bool hvOn(int iGap) const; - // Voltage - double voltage(int iGap) const; - - // Current - double current(int iGap) const; - - // Current and voltage at the same time: - void voltage_current(int iGap, double& v, double& i) const; + double voltage(int iGap) const; + double current(int iGap) const; - // HVLine no - int hvLineNo(int iGap) const; + // Current and voltage at the same time: + void voltage_current(int iGap, double& v, double& i) const; - const EMECPresamplerHVManager *getManager() const; - - - private: - - virtual ~EMECPresamplerHVModule(); - - EMECPresamplerHVModule(const EMECPresamplerHVModule& right); - - EMECPresamplerHVModule& operator=(const EMECPresamplerHVModule& right); + int hvLineNo(int iGap) const; + + const EMECPresamplerHVManager& getManager() const; - class Clockwork; - Clockwork *m_c; + private: + // Illegal operations + EMECPresamplerHVModule(const EMECPresamplerHVModule& right); + EMECPresamplerHVModule& operator=(const EMECPresamplerHVModule& right); + class Clockwork; + Clockwork *m_c; }; - - -#endif /* EMECPresamplerHVMODULE_H_HEADER_INCLUDED_8AB76742 */ +#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModuleConstLink.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModuleConstLink.h deleted file mode 100644 index 73f4a12fff176b3cd3bbcb4a4b275d9e3c511a21..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModuleConstLink.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef _EMECPresamplerHVModuleConstLink_h_ -#define _EMECPresamplerHVModuleConstLink_h_ -#include "GeoModelKernel/ConstLink.h" -class EMECPresamplerHVModule; -typedef ConstLink<EMECPresamplerHVModule> EMECPresamplerHVModuleConstLink; -#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVSubgapConstLink.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVSubgapConstLink.h deleted file mode 100644 index 0439c4871c234cb292f0ba8b8c687c8587ff7b19..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVSubgapConstLink.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef _HECHVSubgapConstLink_h_ -#define _HECHVSubgapConstLink_h_ -#include "GeoModelKernel/ConstLink.h" -class HECHVSubgap; -typedef ConstLink<HECHVSubgap> HECHVSubgapConstLink; -#endif diff --git a/LArCalorimeter/LArGeoModel/LArHV/LArHV/LArHVManager.h b/LArCalorimeter/LArGeoModel/LArHV/LArHV/LArHVManager.h index f256077eff5b887e2b13e9be8c8d78fecf91ff24..4ea6a3c16b33aa151190bdfafe7e94201c0e2ddf 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/LArHV/LArHVManager.h +++ b/LArCalorimeter/LArGeoModel/LArHV/LArHV/LArHVManager.h @@ -5,16 +5,12 @@ #ifndef LARHV_LARHVMANAGER_H #define LARHV_LARHVMANAGER_H -class EMBPresamplerHVManager; -class EMECPresamplerHVManager; - #include "LArHV/EMBHVManager.h" #include "LArHV/EMECHVManager.h" #include "LArHV/HECHVManager.h" #include "LArHV/FCALHVManager.h" - -#include "IOVSvc/IOVSvc.h" -#include "StoreGate/DataHandle.h" +#include "LArHV/EMBPresamplerHVManager.h" +#include "LArHV/EMECPresamplerHVManager.h" /** * @class LArHVManager @@ -26,54 +22,48 @@ class EMECPresamplerHVManager; class LArHVManager { - public: + public: - typedef EMECHVManager::IOType IOType; + typedef EMECHVManager::IOType IOType; - // Constructor - // - LArHVManager(const EMBPresamplerHVManager *embPreManager, const EMECPresamplerHVManager *emecPreManager); + LArHVManager(); + ~LArHVManager(); - // Destructor - virtual ~LArHVManager(); - - // Returns the EMBHVManager - const EMBHVManager& getEMBHVManager() const; - - // Returns the Barrel Presampler Manager: - const EMBPresamplerHVManager *getEMBPresamplerHVManager() const; + // Returns the EMBHVManager + const EMBHVManager& getEMBHVManager() const; - // Returns the EMECHVManager - const EMECHVManager& getEMECHVManager(IOType IO) const; + // Returns the Barrel Presampler Manager: + const EMBPresamplerHVManager& getEMBPresamplerHVManager() const; - // Returns the Endcap Presampler Manager: - const EMECPresamplerHVManager *getEMECPresamplerHVManager() const; + // Returns the EMECHVManager + const EMECHVManager& getEMECHVManager(IOType IO) const; - // Returns the HECHVManager - const HECHVManager& getHECHVManager() const; + // Returns the Endcap Presampler Manager: + const EMECPresamplerHVManager& getEMECPresamplerHVManager() const; + + // Returns the HECHVManager + const HECHVManager& getHECHVManager() const; + + // Returns the FCALHVManager + const FCALHVManager& getFCALHVManager() const; + + void reset() const; - // Returns the FCALHVManager - const FCALHVManager& getFCALHVManager() const; - - void reset() const; - protected: - - LArHVManager& operator=(const LArHVManager& right); - + + LArHVManager& operator=(const LArHVManager& right); + private: LArHVManager(const LArHVManager& right); - - EMBHVManager m_embHV; - EMECHVManager m_emecHVInner; - EMECHVManager m_emecHVOuter; - HECHVManager m_hecHV; - FCALHVManager m_fcalHV; - const EMBPresamplerHVManager *m_embPreHV; - const EMECPresamplerHVManager *m_emecPreHV; - + EMBHVManager m_embHV; + EMECHVManager m_emecHVInner; + EMECHVManager m_emecHVOuter; + HECHVManager m_hecHV; + FCALHVManager m_fcalHV; + EMBPresamplerHVManager m_embPreHV; + EMECPresamplerHVManager m_emecPreHV; }; #include "AthenaKernel/CLASS_DEF.h" diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMBHVPayload.h b/LArCalorimeter/LArGeoModel/LArHV/src/EMBHVPayload.h index 4833fb6892f2815b21bc9a43fc82e00de77e4992..cc04799758c940585427fa36049f782e09ca7acc 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMBHVPayload.h +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMBHVPayload.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef _EMBHVPayload_h_ -#define _EMBHVPayload_h_ +#ifndef LARHV_EMBHVPAYLOAD_H +#define LARHV_EMBHVPAYLOAD_H #include <iostream> struct EMBHVPayload { double voltage[2]; diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVDescriptor.cpp b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVDescriptor.cpp index 880cb832985761fbee90d5f5bbe72d09d532dce6..bb6e14daf8ceaaf9840c1d06b7c5dc09c30128d3 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVDescriptor.cpp +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVDescriptor.cpp @@ -1,20 +1,16 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArHV/EMBPresamplerHVDescriptor.h" -EMBPresamplerHVDescriptor::~EMBPresamplerHVDescriptor() +EMBPresamplerHVDescriptor::EMBPresamplerHVDescriptor(const CellPartitioning &etaPartitioning + , const CellBinning &phiBinning) + : m_etaPartitioning(etaPartitioning) + , m_phiBinning(phiBinning) { } - -EMBPresamplerHVDescriptor::EMBPresamplerHVDescriptor(const CellPartitioning &etaPartitioning, const CellBinning &phiBinning) -:m_etaPartitioning(etaPartitioning),m_phiBinning(phiBinning) +EMBPresamplerHVDescriptor::~EMBPresamplerHVDescriptor() { } - - - - - diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVManager.cpp b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVManager.cpp index afb12dd110a339d97a0486dacc4f1e344f7b60b6..f89180a8ff988a604e4ddc9d28df7c1721f493bd 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVManager.cpp +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVManager.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArHV/EMBPresamplerHVManager.h" @@ -30,38 +30,48 @@ class EMBPresamplerHVManager::Clockwork { public: - EMBPresamplerHVDescriptor *descriptor; - EMBPresamplerHVModuleConstLink linkArray[2][4][32]; + Clockwork(const EMBPresamplerHVManager* manager) { + CellPartitioning etaPartitioning; + for (unsigned int i= 0; i<4; i++) etaPartitioning.addValue(i*0.4); + etaPartitioning.addValue(1.525); + descriptor = new EMBPresamplerHVDescriptor(etaPartitioning,CellBinning(0.0, 2*M_PI, 32)); + + for(int iSide=0; iSide<2; ++iSide) { + for(int iEta=0; iEta<4; ++iEta) { + for(int iPhi=0; iPhi<32; ++iPhi) { + moduleArray[iSide][iEta][iPhi] = new EMBPresamplerHVModule(manager, iSide, iEta,iPhi); + } + } + } + } + ~Clockwork() { + delete descriptor; + for(int iSide=0; iSide<2; ++iSide) { + for(int iEta=0; iEta<4; ++iEta) { + for(int iPhi=0; iPhi<32; ++iPhi) { + delete moduleArray[iSide][iEta][iPhi]; + } + } + } + } + EMBPresamplerHVDescriptor* descriptor; + const EMBPresamplerHVModule* moduleArray[2][4][32]; std::atomic<bool> init{false}; std::mutex mtx; std::vector<EMBPresamplerHVPayload> payloadArray; }; - - - - EMBPresamplerHVManager::EMBPresamplerHVManager() -:m_c(new Clockwork) + : m_c(new Clockwork(this)) { - - CellPartitioning etaPartitioning; - for (unsigned int i= 0; i<4; i++) etaPartitioning.addValue(i*0.4); - etaPartitioning.addValue(1.525); - - m_c->descriptor = new EMBPresamplerHVDescriptor(etaPartitioning,CellBinning(0.0, 2*M_PI, 32)); - m_c->init=false; - } - EMBPresamplerHVManager::~EMBPresamplerHVManager() { - delete m_c->descriptor; delete m_c; } -const EMBPresamplerHVDescriptor *EMBPresamplerHVManager::getDescriptor() const +const EMBPresamplerHVDescriptor* EMBPresamplerHVManager::getDescriptor() const { return m_c->descriptor; } @@ -86,10 +96,9 @@ unsigned int EMBPresamplerHVManager::endEtaIndex() const return m_c->descriptor->getEtaPartitioning().getFirstDivisionNumber() + m_c->descriptor->getEtaPartitioning().getNumDivisions(); } -EMBPresamplerHVModuleConstLink EMBPresamplerHVManager::getHVModule(unsigned int iSide, unsigned int iEta,unsigned int iPhi) const +const EMBPresamplerHVModule& EMBPresamplerHVManager::getHVModule(unsigned int iSide, unsigned int iEta,unsigned int iPhi) const { - if (!m_c->linkArray[iSide][iEta][iPhi]) m_c->linkArray[iSide][iEta][iPhi] = EMBPresamplerHVModuleConstLink(new EMBPresamplerHVModule(this, iSide, iEta,iPhi)); - return m_c->linkArray[iSide][iEta][iPhi]; + return *(m_c->moduleArray[iSide][iEta][iPhi]); } unsigned int EMBPresamplerHVManager::beginSideIndex() const diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVModule.cpp b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVModule.cpp index c4a387185e86af3917e2cd19f7a8cb4fdd7ff710..cf7fb75358d3982e3bb15adc281f5bb385dbfd4f 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVModule.cpp +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVModule.cpp @@ -1,63 +1,57 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArHV/EMBPresamplerHVModule.h" #include "LArHV/EMBPresamplerHVManager.h" #include "LArHV/EMBPresamplerHVDescriptor.h" #include "EMBPresamplerHVPayload.h" -class EMBPresamplerHVModule::Clockwork { +class EMBPresamplerHVModule::Clockwork { public: - - const EMBPresamplerHVManager * manager; - + Clockwork(const EMBPresamplerHVManager* managerPtr + , unsigned int side + , unsigned int eta + , unsigned int phi) + : manager(managerPtr) + , iSide(side) + , iEta(eta) + , iPhi(phi) + {} + const EMBPresamplerHVManager* manager; unsigned int iSide; - unsigned int iEta; - unsigned int iPhi; - }; -//##ModelId=475656A60228 -EMBPresamplerHVModule::EMBPresamplerHVModule(const EMBPresamplerHVManager *manager, unsigned int iSide, unsigned int iEta, unsigned int iPhi):m_c(new Clockwork) +EMBPresamplerHVModule::EMBPresamplerHVModule(const EMBPresamplerHVManager *manager + , unsigned int iSide + , unsigned int iEta + , unsigned int iPhi) + : m_c(new Clockwork(manager,iSide,iEta,iPhi)) { - // Might need to ref the manager here.?? - m_c->manager=manager; - m_c->iSide=iSide; - m_c->iEta=iEta; - m_c->iPhi=iPhi; } +EMBPresamplerHVModule::~EMBPresamplerHVModule() +{ + delete m_c; +} -//##ModelId=475659560392 unsigned int EMBPresamplerHVModule::getEtaIndex() const { return m_c->iEta; } -//##ModelId=4756597E0324 unsigned int EMBPresamplerHVModule::getPhiIndex() const { return m_c->iPhi; } -//##ModelId=475656A60278 -EMBPresamplerHVModule::~EMBPresamplerHVModule() -{ - delete m_c; -} - - - -//##ModelId=479BBABD034D unsigned int EMBPresamplerHVModule::getSideIndex() const { return m_c->iSide; } -//##ModelId=47AA68EE020D double EMBPresamplerHVModule::getEtaMin() const { if (m_c->iSide==0) { @@ -68,7 +62,6 @@ double EMBPresamplerHVModule::getEtaMin() const } } -//##ModelId=47AA68EE0223 double EMBPresamplerHVModule::getEtaMax() const { if (m_c->iSide==0) { @@ -79,51 +72,44 @@ double EMBPresamplerHVModule::getEtaMax() const } } -//##ModelId=47AA68EE0236 double EMBPresamplerHVModule::getPhiMin() const { - return - m_c->manager->getDescriptor()->getPhiBinning().binLower(m_c->iPhi); + return m_c->manager->getDescriptor()->getPhiBinning().binLower(m_c->iPhi); } -//##ModelId=47AA68EE024B double EMBPresamplerHVModule::getPhiMax() const { - return - m_c->manager->getDescriptor()->getPhiBinning().binUpper(m_c->iPhi); - + return m_c->manager->getDescriptor()->getPhiBinning().binUpper(m_c->iPhi); } - - -const EMBPresamplerHVManager *EMBPresamplerHVModule::getManager() const { - return m_c->manager; +const EMBPresamplerHVManager& EMBPresamplerHVModule::getManager() const +{ + return *(m_c->manager); } bool EMBPresamplerHVModule::hvOn(int iGap) const { - EMBPresamplerHVPayload *payload = getManager()->getPayload(*this); - if (payload->voltage[iGap]<-9999) return false; - else return true; + EMBPresamplerHVPayload *payload = m_c->manager->getPayload(*this); + return (payload->voltage[iGap]>=-9999); } double EMBPresamplerHVModule::voltage(int iGap) const { - EMBPresamplerHVPayload *payload = getManager()->getPayload(*this); + EMBPresamplerHVPayload *payload = m_c->manager->getPayload(*this); return payload->voltage[iGap]; } double EMBPresamplerHVModule::current(int iGap) const { - EMBPresamplerHVPayload *payload = getManager()->getPayload(*this); + EMBPresamplerHVPayload *payload = m_c->manager->getPayload(*this); return payload->current[iGap]; } void EMBPresamplerHVModule::voltage_current(int iGap,double& voltage, double¤t) const { - EMBPresamplerHVPayload *payload = getManager()->getPayload(*this); + EMBPresamplerHVPayload *payload = m_c->manager->getPayload(*this); voltage = payload->voltage[iGap]; current = payload->current[iGap]; } int EMBPresamplerHVModule::hvLineNo(int iGap) const { - EMBPresamplerHVPayload *payload = getManager()->getPayload(*this); + EMBPresamplerHVPayload *payload = m_c->manager->getPayload(*this); return payload->hvLineNo[iGap]; } diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVPayload.h b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVPayload.h index 46df2661c96e2ac5109710498b2cfa11f213f3a5..2f97804b80ab7b61f9dcb9e85d8e1b767e15e947 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVPayload.h +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVPayload.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef _EMBPresamplerHVPayload_h_ -#define _EMBPresamplerHVPayload_h_ +#ifndef LARHV_EMBPRESAMPLERHVPAYLOAD_H +#define LARHV_EMBPRESAMPLERHVPAYLOAD_H #include <iostream> struct EMBPresamplerHVPayload { double voltage[2]; diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMECHVPayload.h b/LArCalorimeter/LArGeoModel/LArHV/src/EMECHVPayload.h index 8c710d73e9c1ff3d8fe9e9468282e76a08b12aee..d61e6fc3157006af7b2a3e7d4b267a2b4156db21 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMECHVPayload.h +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMECHVPayload.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef _EMECHVPayload_h_ -#define _EMECHVPayload_h_ +#ifndef LARHV_EMECHVPAYLOAD_H +#define LARHV_EMECHVPAYLOAD_H #include <iostream> struct EMECHVPayload { double voltage[2]; diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVManager.cpp b/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVManager.cpp index 04d9c85c64c806b6db517a60533a5e8fae30b00e..2b885177ecbbfc5b9e55dd7baaaec173509b4158 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVManager.cpp +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVManager.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArHV/EMECPresamplerHVManager.h" @@ -30,73 +30,67 @@ class EMECPresamplerHVManager::Clockwork { public: - CellBinning *phiBinning; - EMECPresamplerHVModuleConstLink linkArray[2][64]; // not dense - std::atomic<bool> init{false}; - std::mutex mtx; + Clockwork(const EMECPresamplerHVManager* manager) { + for(int iSide=0; iSide<2; ++iSide) { + for(int iPhi=0; iPhi<64; ++iPhi) { + moduleArray[iSide][iPhi] = new EMECPresamplerHVModule(manager, iSide, iPhi); + } + } + } + ~Clockwork() { + for(int iSide=0; iSide<2; ++iSide) { + for(int iPhi=0; iPhi<64; ++iPhi) { + delete moduleArray[iSide][iPhi]; + } + } + } + CellBinning phiBinning{0.0, 2*M_PI, 64}; + const EMECPresamplerHVModule* moduleArray[2][64]; // not dense + std::atomic<bool> init{false}; + std::mutex mtx; std::vector<EMECPresamplerHVPayload> payloadArray; }; - -//##ModelId=43FBFC0A034F -EMECPresamplerHVManager::EMECPresamplerHVManager(): - m_c(new Clockwork) +EMECPresamplerHVManager::EMECPresamplerHVManager() + : m_c(new Clockwork(this)) { - m_c->init=false; - - m_c->phiBinning = new CellBinning(0.0, 2*M_PI, 64); } +EMECPresamplerHVManager::~EMECPresamplerHVManager() +{ + delete m_c; +} - -//##ModelId=478D1079010F const CellBinning *EMECPresamplerHVManager::getPhiBinning() const { - return m_c->phiBinning; + return &(m_c->phiBinning); } -//##ModelId=478D10790120 unsigned int EMECPresamplerHVManager::beginPhiIndex() const { - return getPhiBinning()->getFirstDivisionNumber(); + return m_c->phiBinning.getFirstDivisionNumber(); } -//##ModelId=478D10790129 unsigned int EMECPresamplerHVManager::endPhiIndex() const { - return getPhiBinning()->getFirstDivisionNumber() + getPhiBinning()->getNumDivisions(); + return m_c->phiBinning.getFirstDivisionNumber() + m_c->phiBinning.getNumDivisions(); } -//##ModelId=478D10790149 -EMECPresamplerHVModuleConstLink EMECPresamplerHVManager::getHVModule(unsigned int iSide, unsigned int iPhi) const +const EMECPresamplerHVModule& EMECPresamplerHVManager::getHVModule(unsigned int iSide, unsigned int iPhi) const { - - if (!m_c->linkArray[iSide][iPhi]) m_c->linkArray[iSide][iPhi] = EMECPresamplerHVModuleConstLink(new EMECPresamplerHVModule(this, iSide, iPhi)); - return m_c->linkArray[iSide][iPhi]; - + return *(m_c->moduleArray[iSide][iPhi]); } -//##ModelId=478D10790154 -EMECPresamplerHVManager::~EMECPresamplerHVManager() -{ - delete m_c->phiBinning; - delete m_c; -} - - -//##ModelId=47A07A81015E unsigned int EMECPresamplerHVManager::beginSideIndex() const { return 0; } -//##ModelId=47A07A81016F unsigned int EMECPresamplerHVManager::endSideIndex() const { return 2; } - void EMECPresamplerHVManager::update() const { std::lock_guard<std::mutex> lock(m_c->mtx); if (!(m_c->init)) { diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVModule.cpp b/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVModule.cpp index 6546af021f74c166cfe1bf1789158e95d27b5357..b5f0b8c8aec73da96188587b6f13a80b7451def7 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVModule.cpp +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVModule.cpp @@ -1,112 +1,101 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArHV/EMECPresamplerHVModule.h" #include "LArHV/EMECPresamplerHVManager.h" #include "GeoModelKernel/CellBinning.h" -#include <stdexcept> -#include <iostream> - #include "EMECPresamplerHVPayload.h" class EMECPresamplerHVModule::Clockwork { - public: - + Clockwork(const EMECPresamplerHVManager* managerPtr + , unsigned int side + , unsigned int phi) + : manager(managerPtr) + , iSide(side) + , iPhi(phi) + {} const EMECPresamplerHVManager *manager; - unsigned int iSide; unsigned int iPhi; }; -//##ModelId=478D18650316 -EMECPresamplerHVModule::EMECPresamplerHVModule(const EMECPresamplerHVManager *manager, unsigned int iSide, unsigned int iPhi):m_c(new Clockwork) +EMECPresamplerHVModule::EMECPresamplerHVModule(const EMECPresamplerHVManager* manager + , unsigned int iSide + , unsigned int iPhi) + :m_c(new Clockwork(manager,iSide,iPhi)) { - m_c->manager=manager; - m_c->iSide=iSide; - m_c->iPhi=iPhi; } -//##ModelId=478D1865031B -unsigned int EMECPresamplerHVModule::getPhiIndex() const +EMECPresamplerHVModule::~EMECPresamplerHVModule() { - return m_c->iPhi; + delete m_c; } -//##ModelId=478D18650322 -EMECPresamplerHVModule::~EMECPresamplerHVModule() +unsigned int EMECPresamplerHVModule::getPhiIndex() const { - delete m_c; + return m_c->iPhi; } -//##ModelId=47A07B14017E unsigned int EMECPresamplerHVModule::getSideIndex() const { return m_c->iSide; } - - -//##ModelId=47A7A9AD000E double EMECPresamplerHVModule::getEtaMin() const { if (m_c->iSide==0) return -1.8; else return 1.5; } -//##ModelId=47A7A9BF0293 double EMECPresamplerHVModule::getEtaMax() const { if (m_c->iSide==0) return -1.5; else return 1.8; } -//##ModelId=47A7A9C10344 double EMECPresamplerHVModule::getPhiMin() const { - return - m_c->manager->getPhiBinning()->binLower(m_c->iPhi); + return m_c->manager->getPhiBinning()->binLower(m_c->iPhi); } -//##ModelId=47A7A9C400D5 double EMECPresamplerHVModule::getPhiMax() const { - return - m_c->manager->getPhiBinning()->binUpper(m_c->iPhi); + return m_c->manager->getPhiBinning()->binUpper(m_c->iPhi); } -const EMECPresamplerHVManager *EMECPresamplerHVModule::getManager() const { - return m_c->manager; +const EMECPresamplerHVManager& EMECPresamplerHVModule::getManager() const +{ + return *(m_c->manager); } -//##ModelId=47AB8A070339 bool EMECPresamplerHVModule::hvOn(int iGap ) const { - EMECPresamplerHVPayload *payload = getManager()->getPayload(*this); - if (payload->voltage[iGap]<-9999) return false; - else return true; + EMECPresamplerHVPayload *payload = getManager().getPayload(*this); + return (payload->voltage[iGap]>=-9999); } double EMECPresamplerHVModule::voltage(int iGap) const { - EMECPresamplerHVPayload *payload = getManager()->getPayload(*this); + EMECPresamplerHVPayload *payload = getManager().getPayload(*this); return payload->voltage[iGap]; } double EMECPresamplerHVModule::current(int iGap) const { - EMECPresamplerHVPayload *payload = getManager()->getPayload(*this); + EMECPresamplerHVPayload *payload = getManager().getPayload(*this); return payload->current[iGap]; } -void EMECPresamplerHVModule::voltage_current(int iGap,double& voltage, double¤t) const { - EMECPresamplerHVPayload *payload = getManager()->getPayload(*this); +void EMECPresamplerHVModule::voltage_current(int iGap,double& voltage, double¤t) const +{ + EMECPresamplerHVPayload *payload = getManager().getPayload(*this); voltage = payload->voltage[iGap]; current = payload->current[iGap]; } - -int EMECPresamplerHVModule::hvLineNo(int iGap) const { - EMECPresamplerHVPayload *payload = getManager()->getPayload(*this); +int EMECPresamplerHVModule::hvLineNo(int iGap) const +{ + EMECPresamplerHVPayload *payload = getManager().getPayload(*this); return payload->hvLineNo[iGap]; } diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVPayload.h b/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVPayload.h index 31b6418543403ee803998b2e8806bd7e9d01541b..a4796090e4e3ccbe5a2ce559b8c286aa3da9b469 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVPayload.h +++ b/LArCalorimeter/LArGeoModel/LArHV/src/EMECPresamplerHVPayload.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef _EMECPresamplerHVPayload_h_ -#define _EMECPresamplerHVPayload_h_ +#ifndef LARHV_EMECPRESAMPLERHVPAYLOAD_H +#define LARHV_EMECPRESAMPLERHVPAYLOAD_H #include <iostream> struct EMECPresamplerHVPayload { double voltage[2]; diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/FCALHVPayload.h b/LArCalorimeter/LArGeoModel/LArHV/src/FCALHVPayload.h index 7ec1d0bad13ddf4a0f06d52d8c480dddb11c7777..cfff045575b8043399dc0f226e91a921c452add5 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/FCALHVPayload.h +++ b/LArCalorimeter/LArGeoModel/LArHV/src/FCALHVPayload.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef _FCALHVPayload_h_ -#define _FCALHVPayload_h_ +#ifndef LARHV_FCALHVPAYLOAD_H +#define LARHV_FCALHVPAYLOAD_H #include <iostream> struct FCALHVPayload { double voltage; diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/HECHVPayload.h b/LArCalorimeter/LArGeoModel/LArHV/src/HECHVPayload.h index 63e37df66ff9c092059f3a2c24ca7254fbfeec72..977dff9d7984b159ceafa46d2837091c8bb3ea02 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/HECHVPayload.h +++ b/LArCalorimeter/LArGeoModel/LArHV/src/HECHVPayload.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef _HECHVPayload_h_ -#define _HECHVPayload_h_ +#ifndef LARHV_HECHVPAYLOAD_H +#define LARHV_HECHVPAYLOAD_H #include <iostream> struct HECHVPayload { double voltage; diff --git a/LArCalorimeter/LArGeoModel/LArHV/src/LArHVManager.cpp b/LArCalorimeter/LArGeoModel/LArHV/src/LArHVManager.cpp index 7ca4f6d91024a217cd6ed1c67327e87bbbddea8a..1bcef1d250729d8e3c43a22017a9538118d038d2 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/src/LArHVManager.cpp +++ b/LArCalorimeter/LArGeoModel/LArHV/src/LArHVManager.cpp @@ -10,19 +10,15 @@ #include "LArHV/EMECPresamplerHVManager.h" #include "LArHV/LArHVManager.h" -LArHVManager::LArHVManager(const EMBPresamplerHVManager *embPreHV - , const EMECPresamplerHVManager *emecPreHV) +LArHVManager::LArHVManager() : m_embHV() , m_emecHVInner(EMECHVModule::INNER) , m_emecHVOuter(EMECHVModule::OUTER) , m_hecHV() , m_fcalHV() - , m_embPreHV(embPreHV) - , m_emecPreHV(emecPreHV) + , m_embPreHV() + , m_emecPreHV() { - if (m_embPreHV) m_embPreHV->ref(); - if (m_emecPreHV) m_emecPreHV->ref(); - } void LArHVManager::reset() const @@ -32,17 +28,13 @@ void LArHVManager::reset() const m_emecHVOuter.reset(); m_hecHV.reset(); m_fcalHV.reset(); - if (m_embPreHV) m_embPreHV->reset(); - if (m_emecPreHV) m_emecPreHV->reset(); - return; + m_embPreHV.reset(); + m_emecPreHV.reset(); } LArHVManager::~LArHVManager() { - if (m_embPreHV) m_embPreHV->unref(); - if (m_emecPreHV) m_emecPreHV->unref(); - } const EMBHVManager& LArHVManager::getEMBHVManager() const @@ -65,13 +57,12 @@ const FCALHVManager& LArHVManager::getFCALHVManager() const return m_fcalHV; } -const EMBPresamplerHVManager *LArHVManager::getEMBPresamplerHVManager() const +const EMBPresamplerHVManager& LArHVManager::getEMBPresamplerHVManager() const { return m_embPreHV; } - -const EMECPresamplerHVManager *LArHVManager::getEMECPresamplerHVManager() const +const EMECPresamplerHVManager& LArHVManager::getEMECPresamplerHVManager() const { return m_emecPreHV; } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h index cf397141a610b566970dad5e69a675df50db4618..9bb3b3f94335f60c652d6b3daa755c41a0faa08d 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h @@ -7,13 +7,13 @@ #include "LArReadoutGeometry/EMBDetDescr.h" #include "LArReadoutGeometry/EMBHVPathologies.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" -#include "LArHV/EMBPresamplerHVModule.h" #include "LArHV/EMBHVElectrode.h" #include <cmath> #include "GeoModelKernel/RCBase.h" #include <vector> +class EMBPresamplerHVModule; + /** * @class EMBCell * @@ -154,7 +154,7 @@ class EMBCell : public RCBase /** * @Get HVModule (presampler cells) */ - const EMBPresamplerHVModuleConstLink & getPresamplerHVModule () const; + const EMBPresamplerHVModule& getPresamplerHVModule () const; /** @@ -176,7 +176,7 @@ class EMBCell : public RCBase // The cell does NOT own the pointers to its electrodes mutable std::vector<const EMBHVElectrode*> m_electrode; - mutable EMBPresamplerHVModuleConstLink m_presamplerModule; + mutable const EMBPresamplerHVModule* m_presamplerModule{nullptr}; mutable std::vector<EMBHVPathologiesConstLink> m_hvPathologies; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h index 4c81ef13bc55f6c5f5d1f86316d4c50cb59d1422..c9a5d238544d76133686dee35b198a236045ef72 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h @@ -9,10 +9,11 @@ #include "GeoModelKernel/GeoVDetectorManager.h" #include "LArReadoutGeometry/EMBAccordionDetails.h" #include "LArHV/EMBHVManager.h" +#include "LArHV/EMBPresamplerHVManager.h" + class EMBDetDescr; class EMBDetectorRegion; class EMBBasicReadoutNumbers; -class EMBPresamplerHVManager; /** * @class EMBDetectorManager @@ -38,7 +39,7 @@ class EMBDetectorManager : public GeoVDetectorManager /** * @brief Constructor */ - EMBDetectorManager(const EMBHVManager& hvManager); + EMBDetectorManager(const EMBHVManager& hvManager, const EMBPresamplerHVManager& presamplerHVManager); /** * @brief Destructor @@ -105,7 +106,7 @@ class EMBDetectorManager : public GeoVDetectorManager /** * @brief Get the HV Manager (Presampler) */ - const EMBPresamplerHVManager *getPresamplerHVManager () const; + const EMBPresamplerHVManager& getPresamplerHVManager () const; private: @@ -127,11 +128,11 @@ class EMBDetectorManager : public GeoVDetectorManager * provide iterative access to any EMBDetectorRegion held * by this manager. */ - EMBDetRegionArray m_DetRegionsRandom; - const EMBBasicReadoutNumbers *m_basicReadoutNumbers; - mutable EMBAccordionDetails *m_accordionDetails; - const EMBHVManager& m_hvManager; - mutable const EMBPresamplerHVManager *m_presamplerHVManager; + EMBDetRegionArray m_DetRegionsRandom; + const EMBBasicReadoutNumbers* m_basicReadoutNumbers; + mutable EMBAccordionDetails* m_accordionDetails; + const EMBHVManager& m_hvManager; + const EMBPresamplerHVManager& m_presamplerHVManager; }; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h index d57e4f90195114de885911d95e6366d0d29e21aa..b69fb3d8c2b1a77457682fde949f0cf54aad1ff5 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h @@ -9,9 +9,8 @@ #include "LArReadoutGeometry/EMECDetectorManager.h" #include "GeoModelKernel/CellBinning.h" #include "GeoModelKernel/RCBase.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" -#include "LArHV/EMECPresamplerHVModule.h" #include "LArHV/EMECHVElectrode.h" +#include "LArHV/EMECPresamplerHVModule.h" /** * @class EMECCell @@ -139,7 +138,7 @@ class EMECCell : public RCBase /** * @Get HVModule (presampler cells) */ - const EMECPresamplerHVModuleConstLink & getPresamplerHVModule () const; + const EMECPresamplerHVModule& getPresamplerHVModule () const; private: @@ -157,7 +156,7 @@ class EMECCell : public RCBase // The cell does NOT own the pointers to its electrodes mutable std::vector<const EMECHVElectrode*> m_electrode; - mutable EMECPresamplerHVModuleConstLink m_presamplerModule; + mutable const EMECPresamplerHVModule* m_presamplerModule{nullptr}; unsigned int m_clockwork; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h index b177a4b087b0d4bc740969a615c2a3beb0918fb0..db4816965916c2eb3871661674434b8e5134bc20 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h @@ -42,7 +42,8 @@ class EMECDetectorManager : public GeoVDetectorManager * @brief Constructor */ EMECDetectorManager(const EMECHVManager* hvManagerInner=nullptr - , const EMECHVManager* hvManagerOuter=nullptr); + , const EMECHVManager* hvManagerOuter=nullptr + , const EMECPresamplerHVManager* presamplerHVManager=nullptr); /** * @brief Destructor @@ -178,7 +179,7 @@ class EMECDetectorManager : public GeoVDetectorManager /** * @brief Get the HV Manager (presampler) */ - const EMECPresamplerHVManager * getPresamplerHVManager() const; + const EMECPresamplerHVManager& getPresamplerHVManager() const; private: @@ -238,9 +239,9 @@ class EMECDetectorManager : public GeoVDetectorManager /** * @brief The HV Managers for the emec; */ - mutable const EMECHVManager *m_HVManager[2]; + mutable const EMECHVManager* m_HVManager[2]; - mutable const EMECPresamplerHVManager *m_presamplerHVManager; + mutable const EMECPresamplerHVManager* m_presamplerHVManager; }; /** diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCell.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCell.cxx index 25d87a3a29920de8b87d5d81ac44a30d46de6549..53ea8060a8f423fff2168f9b12344b118f9d2ab9 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCell.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCell.cxx @@ -6,13 +6,11 @@ #include "LArReadoutGeometry/EMBDetDescr.h" #include "LArReadoutGeometry/EMBDetectorManager.h" #include "LArHV/EMBHVManager.h" -#include "LArHV/EMBHVDescriptor.h" #include "LArHV/EMBHVModule.h" #include "LArHV/EMBHVElectrode.h" #include "LArHV/EMBPresamplerHVModule.h" #include "LArHV/EMBPresamplerHVManager.h" #include "LArHV/EMBPresamplerHVDescriptor.h" -#include "LArHV/EMBPresamplerHVModule.h" EMBCell::~EMBCell() { @@ -37,23 +35,23 @@ const EMBHVElectrode & EMBCell::getElectrode (unsigned int i) const { return *(m_electrode[i]); } -const EMBPresamplerHVModuleConstLink & EMBCell::getPresamplerHVModule () const { +const EMBPresamplerHVModule& EMBCell::getPresamplerHVModule () const { if (m_electrode.size()==0 && !m_presamplerModule) initHV(); - return m_presamplerModule; + return *m_presamplerModule; } void EMBCell::initHV() const { if (getSamplingIndex()==0) { - const EMBPresamplerHVManager *presamplerHVManager=getDescriptor()->getManager()->getPresamplerHVManager(); + const EMBPresamplerHVManager& presamplerHVManager=getDescriptor()->getManager()->getPresamplerHVManager(); double phiUpper = getPhiMaxNominal(); double phiLower = getPhiMinNominal(); double eta=fabs(getEtaMax()+getEtaMin())/2.0; double phi=fabs(phiUpper+phiLower)/2.0; - const CellPartitioning & etaBinning=presamplerHVManager->getDescriptor()->getEtaPartitioning(); - const CellBinning & phiBinning=presamplerHVManager->getDescriptor()->getPhiBinning(); + const CellPartitioning & etaBinning=presamplerHVManager.getDescriptor()->getEtaPartitioning(); + const CellBinning & phiBinning=presamplerHVManager.getDescriptor()->getPhiBinning(); unsigned int iPhi = int((phi - phiBinning.getStart())/phiBinning.getDelta()) + phiBinning.getFirstDivisionNumber(); unsigned int iEta = etaBinning.getFirstDivisionNumber(); @@ -67,7 +65,7 @@ void EMBCell::initHV() const { if (iEta==lastDivision) throw std::runtime_error ("Error in EMBCell: Presampler HV not found"); unsigned int iSide=getEndcapIndex(); - m_presamplerModule = presamplerHVManager->getHVModule(iSide,iEta,iPhi); + m_presamplerModule = &(presamplerHVManager.getHVModule(iSide,iEta,iPhi)); } else { diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorManager.cxx index 823af672498966e36f365a426445872808c0be81..42e1339344837ba71902f4f1ea9f30e9d4d752d8 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorManager.cxx @@ -28,8 +28,10 @@ public: }; -EMBDetectorManager::EMBDetectorManager(const EMBHVManager& hvManager) +EMBDetectorManager::EMBDetectorManager(const EMBHVManager& hvManager + , const EMBPresamplerHVManager& presamplerHVManager) : m_hvManager(hvManager) + , m_presamplerHVManager(presamplerHVManager) { setName("LArEMB"); @@ -45,7 +47,6 @@ EMBDetectorManager::EMBDetectorManager(const EMBHVManager& hvManager) m_basicReadoutNumbers = new EMBBasicReadoutNumbers(); m_accordionDetails = NULL; - m_presamplerHVManager = NULL; } @@ -113,15 +114,7 @@ const EMBHVManager& EMBDetectorManager::getHVManager () const } -const EMBPresamplerHVManager * EMBDetectorManager::getPresamplerHVManager () const +const EMBPresamplerHVManager& EMBDetectorManager::getPresamplerHVManager () const { - - if (!m_presamplerHVManager) { - StoreGateSvc *detStore = StoreGate::pointer("DetectorStore"); - const LArHVManager *manager = NULL; - if (detStore->retrieve(manager)==StatusCode::SUCCESS) { - m_presamplerHVManager=manager->getEMBPresamplerHVManager(); - } - } return m_presamplerHVManager; } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECCell.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECCell.cxx index 10682e9d2d1cb65e9acabcd5dc72f245d27619d8..29b5b3f945646f9bc8bfb637eb4e09ada521695c 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECCell.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECCell.cxx @@ -25,23 +25,23 @@ const EMECHVElectrode& EMECCell::getElectrode (unsigned int i) const { return *(m_electrode[i]); } -const EMECPresamplerHVModuleConstLink & EMECCell::getPresamplerHVModule () const { +const EMECPresamplerHVModule& EMECCell::getPresamplerHVModule () const { if (m_electrode.size()==0 && !m_presamplerModule) initHV(); - return m_presamplerModule; + return *m_presamplerModule; } void EMECCell::initHV() const { if (getSamplingIndex()==0) { - const EMECPresamplerHVManager *presamplerHVManager=getDescriptor()->getManager()->getPresamplerHVManager(); + const EMECPresamplerHVManager& presamplerHVManager=getDescriptor()->getManager()->getPresamplerHVManager(); double phiUpper = getPhiMaxNominal(); double phiLower = getPhiMinNominal(); double phi=fabs(phiUpper+phiLower)/2.0; - const CellBinning * phiBinning=presamplerHVManager->getPhiBinning(); + const CellBinning * phiBinning=presamplerHVManager.getPhiBinning(); unsigned int iPhi = int((phi - phiBinning->getStart())/phiBinning->getDelta()) + phiBinning->getFirstDivisionNumber(); unsigned int iSide=getEndcapIndex(); - m_presamplerModule = presamplerHVManager->getHVModule(iSide,iPhi); + m_presamplerModule = &(presamplerHVManager.getHVModule(iSide,iPhi)); } else { diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx index fec6e434a48225911737f060c4fda85f48f3b8c4..f244a4b07b6a72babc9fb6451c6828478064dad0 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx @@ -20,8 +20,10 @@ // Class EMECDetectorManager EMECDetectorManager::EMECDetectorManager(const EMECHVManager* hvManagerInner - , const EMECHVManager* hvManagerOuter) - :m_MagicNumbers(new EMECMagicNumbers()) + , const EMECHVManager* hvManagerOuter + , const EMECPresamplerHVManager* presamplerHVManager) + : m_MagicNumbers(new EMECMagicNumbers()) + , m_presamplerHVManager(presamplerHVManager) { setName("LArEMEC"); @@ -37,7 +39,6 @@ EMECDetectorManager::EMECDetectorManager(const EMECHVManager* hvManagerInner m_HVManager[0]=hvManagerInner; m_HVManager[1]=hvManagerOuter; - m_presamplerHVManager=NULL; // The EMEC gets and managers certain arrays needed to build descriptors. Here is that: ISvcLocator *svcLocator = Gaudi::svcLocator(); @@ -138,15 +139,14 @@ const EMECHVManager& EMECDetectorManager::getHVManager (EMECHVManager::IOType io return *(m_HVManager[io]); } -const EMECPresamplerHVManager * EMECDetectorManager::getPresamplerHVManager () const +const EMECPresamplerHVManager& EMECDetectorManager::getPresamplerHVManager () const { - if (!m_presamplerHVManager) { StoreGateSvc *detStore = StoreGate::pointer("DetectorStore"); - const LArHVManager *manager = NULL; + const LArHVManager *manager{nullptr}; if (detStore->retrieve(manager)==StatusCode::SUCCESS) { - m_presamplerHVManager=manager->getEMECPresamplerHVManager(); + m_presamplerHVManager=&(manager->getEMECPresamplerHVManager()); } } - return m_presamplerHVManager; + return *m_presamplerHVManager; } diff --git a/LArCalorimeter/LArRecUtils/src/LArHVCondAlg.cxx b/LArCalorimeter/LArRecUtils/src/LArHVCondAlg.cxx index c98c881f986d35a1cbf7f4a9c7fa5b8c8b0b53f1..b0f663c2bc7d4a35bc4b161012d5caadfffb66fa 100755 --- a/LArCalorimeter/LArRecUtils/src/LArHVCondAlg.cxx +++ b/LArCalorimeter/LArRecUtils/src/LArHVCondAlg.cxx @@ -20,12 +20,10 @@ #include "LArHV/EMECHVModule.h" #include "LArHV/EMBHVElectrode.h" #include "LArHV/EMBPresamplerHVManager.h" -#include "LArHV/EMBPresamplerHVModuleConstLink.h" #include "LArHV/EMBPresamplerHVModule.h" #include "LArReadoutGeometry/EMECCell.h" #include "LArHV/EMECHVManager.h" #include "LArHV/EMECHVElectrode.h" -#include "LArHV/EMECPresamplerHVModuleConstLink.h" #include "LArHV/EMECPresamplerHVModule.h" #include "LArReadoutGeometry/HECCell.h" #include "LArHV/HECHVManager.h" @@ -425,13 +423,13 @@ StatusCode LArHVCondAlg::fillPayload(LArHVData* hvdata, const LArHVData* hvdataO if (!embElement) std::abort(); const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); double wt = 0.5; for (unsigned int igap=0;igap<2;igap++) { - const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvmodule->hvLineNo(igap)); + const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvmodule.hvLineNo(igap)); if(itrLine == hvlineidx.end()) { // error, could not find HVline index - ATH_MSG_ERROR("Do not have hvline: "<<hvmodule->hvLineNo(igap)<<" in LArHVData mapping !!!"); + ATH_MSG_ERROR("Do not have hvline: "<<hvmodule.hvLineNo(igap)<<" in LArHVData mapping !!!"); return StatusCode::FAILURE; } unsigned idx = itrLine - hvlineidx.begin(); @@ -495,13 +493,13 @@ StatusCode LArHVCondAlg::fillPayload(LArHVData* hvdata, const LArHVData* hvdataO if (!emecElement) std::abort(); const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); double wt = 0.5; for (unsigned int igap=0;igap<2;igap++) { - const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvmodule->hvLineNo(igap)); + const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvmodule.hvLineNo(igap)); if(itrLine == hvlineidx.end()) { // error, could not find HVline index - ATH_MSG_ERROR("Do not have hvline: "<<hvmodule->hvLineNo(igap)<<" in LArHVData mapping !!!"); + ATH_MSG_ERROR("Do not have hvline: "<<hvmodule.hvLineNo(igap)<<" in LArHVData mapping !!!"); return StatusCode::FAILURE; } unsigned idx = itrLine - hvlineidx.begin(); @@ -882,26 +880,26 @@ StatusCode LArHVCondAlg::searchNonNominalHV_EMB(CaloAffectedRegionInfoVec *vAffe } //end for iSide // barrel presampler - const EMBPresamplerHVManager* hvManager_EMBPS=manager->getEMBPresamplerHVManager(); + const EMBPresamplerHVManager& hvManager_EMBPS=manager->getEMBPresamplerHVManager(); HVnominal = HV_nominal("EMBPS",0.); - for (unsigned int iSide=hvManager_EMBPS->beginSideIndex();iSide<hvManager_EMBPS->endSideIndex();iSide++) { // loop over HV modules - for (unsigned int iPhi=hvManager_EMBPS->beginPhiIndex();iPhi<hvManager_EMBPS->endPhiIndex();iPhi++) { - for (unsigned int iEta=hvManager_EMBPS->beginEtaIndex();iEta<hvManager_EMBPS->endEtaIndex();iEta++) { //0 to 7 - EMBPresamplerHVModuleConstLink hvMod = hvManager_EMBPS->getHVModule(iSide,iEta,iPhi); + for (unsigned int iSide=hvManager_EMBPS.beginSideIndex();iSide<hvManager_EMBPS.endSideIndex();iSide++) { // loop over HV modules + for (unsigned int iPhi=hvManager_EMBPS.beginPhiIndex();iPhi<hvManager_EMBPS.endPhiIndex();iPhi++) { + for (unsigned int iEta=hvManager_EMBPS.beginEtaIndex();iEta<hvManager_EMBPS.endEtaIndex();iEta++) { //0 to 7 + const EMBPresamplerHVModule& hvMod = hvManager_EMBPS.getHVModule(iSide,iEta,iPhi); ATH_MSG_DEBUG("iSide,iPhi,iEta " << iSide << " " << iPhi << " " << iEta); double hv[2]; for (int iGap=0;iGap<2;iGap++) { - const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvMod->hvLineNo(iGap)); + const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvMod.hvLineNo(iGap)); if(itrLine == hvlineidx.end()) { // error, could not find HVline index - ATH_MSG_ERROR("Do not have hvline: "<<hvMod->hvLineNo(iGap)<<" in LArHVData !!!"); + ATH_MSG_ERROR("Do not have hvline: "<<hvMod.hvLineNo(iGap)<<" in LArHVData !!!"); return StatusCode::FAILURE; } hv[iGap]=fabs(voltage[itrLine - hvlineidx.begin()]); } - float eta_min=hvMod->getEtaMin(); - float eta_max=hvMod->getEtaMax(); - float phi_min=CaloPhiRange::fix(hvMod->getPhiMin()); - float phi_max=CaloPhiRange::fix(hvMod->getPhiMax()); + float eta_min=hvMod.getEtaMin(); + float eta_max=hvMod.getEtaMax(); + float phi_min=CaloPhiRange::fix(hvMod.getPhiMin()); + float phi_max=CaloPhiRange::fix(hvMod.getPhiMax()); ATH_MSG_DEBUG(" HV " << hv[0] << " " << hv[1] << " " << " etamin,etamax,phimin,phimax " << eta_min << " " << eta_max << " " << phi_min << " " << phi_max); //take decisions according to all the gaps HV : @@ -1045,24 +1043,24 @@ StatusCode LArHVCondAlg::searchNonNominalHV_EMEC_OUTER(CaloAffectedRegionInfoVec } //end for iSide // endcap presampler - const EMECPresamplerHVManager* hvManager_EMECPS=manager->getEMECPresamplerHVManager(); + const EMECPresamplerHVManager& hvManager_EMECPS=manager->getEMECPresamplerHVManager(); float HVnominal = HV_nominal("EMECPS",0.); - for (unsigned int iSide=hvManager_EMECPS->beginSideIndex();iSide<hvManager_EMECPS->endSideIndex();iSide++) { // loop over HV modules - for (unsigned int iPhi=hvManager_EMECPS->beginPhiIndex();iPhi<hvManager_EMECPS->endPhiIndex();iPhi++) { - EMECPresamplerHVModuleConstLink hvMod = hvManager_EMECPS->getHVModule(iSide,iPhi); + for (unsigned int iSide=hvManager_EMECPS.beginSideIndex();iSide<hvManager_EMECPS.endSideIndex();iSide++) { // loop over HV modules + for (unsigned int iPhi=hvManager_EMECPS.beginPhiIndex();iPhi<hvManager_EMECPS.endPhiIndex();iPhi++) { + const EMECPresamplerHVModule& hvMod = hvManager_EMECPS.getHVModule(iSide,iPhi); double hv[2]; for (int iGap=0;iGap<2;iGap++) { - const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvMod->hvLineNo(iGap)); + const std::vector<unsigned int>::const_iterator itrLine=std::find(hvlineidx.begin(), hvlineidx.end(), hvMod.hvLineNo(iGap)); if(itrLine == hvlineidx.end()) { // error, could not find HVline index - ATH_MSG_ERROR("Do not have hvline: "<<hvMod->hvLineNo(iGap)<<" in LArHVData !!!"); + ATH_MSG_ERROR("Do not have hvline: "<<hvMod.hvLineNo(iGap)<<" in LArHVData !!!"); return StatusCode::FAILURE; } hv[iGap]=fabs(voltage[itrLine - hvlineidx.begin()]); } - float eta_min=hvMod->getEtaMin(); - float eta_max=hvMod->getEtaMax(); - float phi_min=CaloPhiRange::fix(hvMod->getPhiMin()); - float phi_max=CaloPhiRange::fix(hvMod->getPhiMax()); + float eta_min=hvMod.getEtaMin(); + float eta_max=hvMod.getEtaMax(); + float phi_min=CaloPhiRange::fix(hvMod.getPhiMin()); + float phi_max=CaloPhiRange::fix(hvMod.getPhiMax()); ATH_MSG_DEBUG("iSide,iPhi" << iSide << " " << iPhi << " HV " << hv[0] << " " << hv[1] << " " << " etamin,etamax,phimin,phimax " << eta_min << " " << eta_max << " " << phi_min << " " << phi_max); diff --git a/LArCalorimeter/LArRecUtils/src/LArHVPathologyDbCondAlg.cxx b/LArCalorimeter/LArRecUtils/src/LArHVPathologyDbCondAlg.cxx index bb453b5bac37fa0b32fe2334431c5569dc22c1d6..fe2cfd60c8f9696ebcc2b8b11f063f47a2432bbc 100755 --- a/LArCalorimeter/LArRecUtils/src/LArHVPathologyDbCondAlg.cxx +++ b/LArCalorimeter/LArRecUtils/src/LArHVPathologyDbCondAlg.cxx @@ -5,6 +5,8 @@ #include "LArHVPathologyDbCondAlg.h" #include "LArRecConditions/LArHVPathologiesDb.h" #include "LArRecConditions/LArHVPathology.h" +#include "LArHV/EMBPresamplerHVModule.h" +#include "LArHV/EMECPresamplerHVModule.h" #include "GaudiKernel/IToolSvc.h" #include "GaudiKernel/MsgStream.h" @@ -226,12 +228,12 @@ LArHVPathologyDbCondAlg::fillElectMap(const CaloDetDescrManager* calodetdescrmgr if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) { if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) { const EMBCellConstLink cell = embElement->getEMBCell(); - const EMBPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); for(auto hwid:hwlineId) { list.clear(); HVline = m_hvlineHelper->hv_line(hwid); for (unsigned int igap=0;igap<2;igap++) { - if ((unsigned)hvmodule->hvLineNo(igap)==HVline) { + if ((unsigned)hvmodule.hvLineNo(igap)==HVline) { list.push_back(igap); } } @@ -244,12 +246,12 @@ LArHVPathologyDbCondAlg::fillElectMap(const CaloDetDescrManager* calodetdescrmgr if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) { if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) { const EMECCellConstLink cell = emecElement->getEMECCell(); - const EMECPresamplerHVModuleConstLink hvmodule = cell->getPresamplerHVModule (); + const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule (); for(auto hwid:hwlineId) { list.clear(); HVline = m_hvlineHelper->hv_line(hwid); for (unsigned int igap=0;igap<2;igap++) { - if ((unsigned)hvmodule->hvLineNo(igap)==HVline) { + if ((unsigned)hvmodule.hvLineNo(igap)==HVline) { list.push_back(igap); } } diff --git a/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx b/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx index e887ef28dc02c7ad950f1a1f819f1a864cfb1ea5..9342eb2d443ac4e114f3af9edb5b765b9d5d05ae 100755 --- a/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx +++ b/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx @@ -839,20 +839,20 @@ void VP1CaloReadoutSystem::createHV() { } } - const EMBPresamplerHVManager * embPreHVManager = larHVManager->getEMBPresamplerHVManager(); - for (unsigned int e=embPreHVManager->beginSideIndex();e!=embPreHVManager->endSideIndex();e++) { - for (unsigned int y=embPreHVManager->beginEtaIndex();y!=embPreHVManager->endEtaIndex();y++) { - for (unsigned int p=embPreHVManager->beginPhiIndex();p!=embPreHVManager->endPhiIndex();p++) { - EMBPresamplerHVModuleConstLink embMod=embPreHVManager->getHVModule(e,y,p); + const EMBPresamplerHVManager& embPreHVManager = larHVManager->getEMBPresamplerHVManager(); + for (unsigned int e=embPreHVManager.beginSideIndex();e!=embPreHVManager.endSideIndex();e++) { + for (unsigned int y=embPreHVManager.beginEtaIndex();y!=embPreHVManager.endEtaIndex();y++) { + for (unsigned int p=embPreHVManager.beginPhiIndex();p!=embPreHVManager.endPhiIndex();p++) { + const EMBPresamplerHVModule& embMod=embPreHVManager.getHVModule(e,y,p); double r=1900; // Radius to draw stuff at for barrel Presampler HV. { int cc=0; - double etaMin=embMod->getEtaMin(); - double etaMax=embMod->getEtaMax(); - double phiMin=embMod->getPhiMin(); - double phiMax=embMod->getPhiMax(); + double etaMin=embMod.getEtaMin(); + double etaMax=embMod.getEtaMax(); + double phiMin=embMod.getPhiMin(); + double phiMax=embMod.getPhiMax(); SoVertexProperty *vtxProperty = new SoVertexProperty(); vtxProperty->vertex.set1Value(cc++, SbVec3f(r*cos(phiMin),r*sin(phiMin) ,r*sinh(etaMin))); vtxProperty->vertex.set1Value(cc++, SbVec3f(r*cos(phiMax),r*sin(phiMax) ,r*sinh(etaMin))); @@ -865,8 +865,8 @@ void VP1CaloReadoutSystem::createHV() { ls->vertexProperty=vtxProperty; m_clockwork->embPreModsSeparator->addChild(ls); - double voltage0 = embMod->voltage(0); - double voltage1 = embMod->voltage(1); + double voltage0 = embMod.voltage(0); + double voltage1 = embMod.voltage(1); double nominalVoltage = m_clockwork->ui.embPresamplerNominalSpinBox->value(); bool outOfTolerance = (fabs(voltage0-nominalVoltage) > double (tolerance)) || (fabs(voltage1-nominalVoltage) > double (tolerance)) ; bool missing = voltage0 == -99999 || voltage1 == -99999; @@ -974,16 +974,16 @@ void VP1CaloReadoutSystem::createHV() { } } - const EMECPresamplerHVManager * emecPreHVManager = larHVManager->getEMECPresamplerHVManager(); - for (unsigned int e=emecPreHVManager->beginSideIndex();e!=emecPreHVManager->endSideIndex();e++) { + const EMECPresamplerHVManager& emecPreHVManager = larHVManager->getEMECPresamplerHVManager(); + for (unsigned int e=emecPreHVManager.beginSideIndex();e!=emecPreHVManager.endSideIndex();e++) { double z = e==0 ? -3650:3650; - for (unsigned int p=emecPreHVManager->beginPhiIndex();p!=emecPreHVManager->endPhiIndex();p++) { - EMECPresamplerHVModuleConstLink emecMod=emecPreHVManager->getHVModule(e,p); + for (unsigned int p=emecPreHVManager.beginPhiIndex();p!=emecPreHVManager.endPhiIndex();p++) { + const EMECPresamplerHVModule& emecMod=emecPreHVManager.getHVModule(e,p); - double phiMin = emecMod->getPhiMin(); - double phiMax = emecMod->getPhiMax(); - double etaMin = emecMod->getEtaMin(); - double etaMax = emecMod->getEtaMax(); + double phiMin = emecMod.getPhiMin(); + double phiMax = emecMod.getPhiMax(); + double etaMin = emecMod.getEtaMin(); + double etaMax = emecMod.getEtaMax(); double rMax=fabs(z/sinh(etaMin)); double rMin=fabs(z/sinh(etaMax)); @@ -1002,8 +1002,8 @@ void VP1CaloReadoutSystem::createHV() { ls->vertexProperty=vtxProperty; m_clockwork->emecPreModsSeparator->addChild(ls); - double voltage0 = emecMod->voltage(0); - double voltage1 = emecMod->voltage(1); + double voltage0 = emecMod.voltage(0); + double voltage1 = emecMod.voltage(1); double nominalVoltage = m_clockwork->ui.emecPresamplerNominalSpinBox->value(); bool outOfTolerance = (fabs(voltage0-nominalVoltage) > double (tolerance)) || (fabs(voltage1-nominalVoltage) > double (tolerance)) ; bool missing = voltage0 == -99999 || voltage1 == -99999; @@ -1938,13 +1938,13 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick if (element->getSamplingIndex()==0) { if (m_clockwork->ui.highVoltageCheckBox->isChecked()) { - EMECPresamplerHVModuleConstLink module = element->getPresamplerHVModule(); + const EMECPresamplerHVModule& module = element->getPresamplerHVModule(); std::ostringstream highVoltageStream; highVoltageStream << "Presampler cell. HV Status: " << '\n'; message(highVoltageStream.str().c_str()); - highVoltageStream << "Status: " << module->hvOn(0) << ' ' << module->hvOn(1) << '\n'; - highVoltageStream << "Current: " << module->current(0) << ' ' << module->current(1) << '\n'; - highVoltageStream << "Voltage: " << module->voltage(0) << ' ' << module->voltage(1) << '\n'; + highVoltageStream << "Status: " << module.hvOn(0) << ' ' << module.hvOn(1) << '\n'; + highVoltageStream << "Current: " << module.current(0) << ' ' << module.current(1) << '\n'; + highVoltageStream << "Voltage: " << module.voltage(0) << ' ' << module.voltage(1) << '\n'; message(highVoltageStream.str().c_str()); @@ -1970,10 +1970,10 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick double z = (element->getZLocal(pos)+ element->getDescriptor()->getManager()->getFocalToRef() + element->getDescriptor()->getManager()->getRefToActive())* (element->getEndcapIndex()==0 ? -1:1); - double phiMin = module->getPhiMin(); - double phiMax = module->getPhiMax(); - double etaMin = module->getEtaMin(); - double etaMax = module->getEtaMax(); + double phiMin = module.getPhiMin(); + double phiMax = module.getPhiMax(); + double etaMin = module.getEtaMin(); + double etaMax = module.getEtaMax(); double rMax=fabs(z/sinh(etaMin)); @@ -2112,14 +2112,14 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick // if (m_clockwork->ui.highVoltageCheckBox->isChecked()) { if (element->getSamplingIndex()==0) { - EMBPresamplerHVModuleConstLink module = element->getPresamplerHVModule(); + const EMBPresamplerHVModule& module = element->getPresamplerHVModule(); std::ostringstream highVoltageStream; highVoltageStream << "Presampler cell. HV Status: " << '\n'; message(highVoltageStream.str().c_str()); - highVoltageStream << "Status: " << module->hvOn(0) << ' ' << module->hvOn(1) << '\n'; - highVoltageStream << "Current: " << module->current(0) << ' ' << module->current(1) << '\n'; - highVoltageStream << "Voltage: " << module->voltage(0) << ' ' << module->voltage(1) << '\n'; + highVoltageStream << "Status: " << module.hvOn(0) << ' ' << module.hvOn(1) << '\n'; + highVoltageStream << "Current: " << module.current(0) << ' ' << module.current(1) << '\n'; + highVoltageStream << "Voltage: " << module.voltage(0) << ' ' << module.voltage(1) << '\n'; message(highVoltageStream.str().c_str()); @@ -2142,10 +2142,10 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick double r = element->getRLocal(pos); - double phiMin = module->getPhiMin(); - double phiMax = module->getPhiMax(); - double etaMin = module->getEtaMin(); - double etaMax = module->getEtaMax(); + double phiMin = module.getPhiMin(); + double phiMax = module.getPhiMax(); + double etaMin = module.getEtaMin(); + double etaMax = module.getEtaMax(); sep->addChild(white); sep->addChild(drawStyle); sep->addChild(lm);