93 {
94
95
96
97
99 std::vector<const CondAttrListCollection*> attrLists;
101 {
103 attrLists.push_back (*attrList);
104 }
106 ATH_CHECK( detStore()->retrieve(manager) );
107
108 const EMBHVManager& hvManager_EMB=manager->getEMBHVManager();
110
113
116
119
122
123 const HECHVManager& hvManager_HEC=manager->getHECHVManager();
125
126 const FCALHVManager& hvManager_FCAL=manager->getFCALHVManager();
128
129 if(m_hvonlId_map.empty()) {
131 const LArOnOffIdMapping*
cabling{*cablingHdl};
132 if(!cabling) {
134 return StatusCode::FAILURE;
135 }
136
137 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{
m_caloMgrKey, ctx};
139 const CaloDetDescrManager* calodetdescrmgr=*caloMgrHandle;
142 for(;cell_b!=cell_e; ++cell_b) {
144 HWIdentifier onlid =
cabling->createSignalChannelID(*cell_b);
145 std::vector<int> hvlines =
GetHVLines (hvdata_EMB,
146 hvdata_EMBPS,
147 hvdata_EMEC_OUT,
148 hvdata_EMEC_IN,
149 hvdata_EMECPS,
150 hvdata_HEC,
151 hvdata_FCAL,
152 *cell_b,
153 calodetdescrmgr);
154 for(
unsigned i=0;
i<hvlines.size(); ++
i ) {
156 std::vector<HWIdentifier>
vec;
157 vec.push_back(onlid);
159 } else {
161 }
162 }
163 }
164 }
165
170 const EMBHVModule& hvMod = hvManager_EMB.
getHVModule(iSide,iEta,iPhi,iSector);
172 for (unsigned int ielec=0;ielec<32;ielec++) {
173 const EMBHVElectrode& electrode = hvMod.
getElectrode(ielec);
174 for (unsigned int iGap=0;iGap<2;iGap++) {
175 float hv = hvdata_EMB.
voltage (electrode, iGap);
178
188
189 if(m_addcells) {
197 }
199
200 }
201 }
202 }
203 }
204 }
205 }
206
210 const EMBPresamplerHVModule& hvMod = hvManager_EMBPS.
getHVModule(iSide,iEta,iPhi);
211 for (int iGap=0;iGap<2;iGap++) {
212 float hv = hvdata_EMBPS.
voltage (hvMod, iGap);
216
226
227 if(m_addcells) {
235 }
237
238 }
239 }
240 }
241 }
242
245 const EMECPresamplerHVModule& hvMod = hvManager_EMECPS.
getHVModule(iSide,iPhi);
246 for (int iGap=0;iGap<2;iGap++) {
247 float hv = hvdata_EMECPS.
voltage (hvMod, iGap);
251
261
262 if(m_addcells) {
270 }
272
273 }
274 }
275 }
276
277
278
283 const EMECHVModule& hvMod=hvManager_EMEC_OUT.
getHVModule(iSide,iEta,iPhi,iSector);
286 const EMECHVElectrode& electrode = hvMod.
getElectrode(ielec);
287 for (unsigned int iGap=0;iGap<2;iGap++) {
288 float hv = hvdata_EMEC_OUT.
voltage (electrode, iGap);
291
301
302 if(m_addcells) {
310 }
312
313 }
314 }
315 }
316 }
317 }
318 }
319
324 const EMECHVModule& hvMod=hvManager_EMEC_IN.
getHVModule(iSide,iEta,iPhi,iSector);
327 const EMECHVElectrode& electrode = hvMod.
getElectrode(ielec);
328 for (unsigned int iGap=0;iGap<2;iGap++) {
329 float hv = hvdata_EMEC_IN.
voltage (electrode, iGap);
332
342
343 if(m_addcells) {
351 }
353
354 }
355 }
356 }
357 }
358 }
359 }
360
361 float etamax_layer[4]={3.3,3.1,3.1,3.3};
362 float etamin_layer[4]={1.5,1.5,1.6,1.7};
363
364
368 float eta_min,eta_max;
369 if (iSide==1) {
370 eta_min = etamin_layer[iSampling];
371 eta_max = etamax_layer[iSampling];
372 } else {
373 eta_min = -1.*etamax_layer[iSampling];
374 eta_max = -1.*etamin_layer[iSampling];
375 }
376 float eta = 0.5*(eta_min+eta_max);
377 const HECHVModule& hvMod = hvManager_HEC.
getHVModule(iSide,iPhi,iSampling);
379
381 const HECHVSubgap& subgap=hvMod.
getSubgap(iGap);
384 m_bec = 10+iSampling;
393 if(m_addcells) {
401 }
403 }
404 }
405 }
406 }
407
409 float eta_min=3.1,eta_max=4.9;
410 if (iSide==0) { eta_min=-4.9; eta_max=-3.1; }
411
412 float eta = 0.5*(eta_min+eta_max);
415
416 const FCALHVModule& hvMod = hvManager_FCAL.
getHVModule(iSide,iSector,iSampling);
417
421 float phi_min = ((
float)(iSector))*dphi;
424 float phi = 0.5*(phi_min+phi_max);
425
430 m_bec = 14+iSampling;
439 if(m_addcells) {
447 }
449 }
450 }
451 }
452 }
453
454 return StatusCode::SUCCESS;
455 }
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
std::vector< size_t > vec
id_iterator cell_begin() const
begin iterator over full set of Identifiers (LAr + Tiles)
id_iterator cell_end() const
end iterator over full set of Identifiers (LAr + Tiles)
bool is_tile(const Identifier id) const
test if the id belongs to the Tiles
static double fix(double phi)
int hvLineNo(const EMBHVElectrode &electrode, const int &iGap) const
double voltage(const EMBHVElectrode &electrode, const int &iGap) const
double current(const EMBHVElectrode &electrode, const int &iGap) const
This class provides direct access to information on the HV electrodes within the barrels.
unsigned int beginPhiIndex() const
unsigned int endEtaIndex() const
static unsigned int endSectorIndex()
unsigned int beginEtaIndex() const
static unsigned int beginSectorIndex()
const EMBHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
EMBHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
unsigned int endPhiIndex() const
static unsigned int beginSideIndex()
static unsigned int endSideIndex()
const EMBHVElectrode & getElectrode(unsigned int iElectrode) const
double voltage(const EMBPresamplerHVModule &module, const int &iGap) const
double current(const EMBPresamplerHVModule &module, const int &iGap) const
int hvLineNo(const EMBPresamplerHVModule &module, const int &iGap) const
This class provides direct access to information on the HV electrodes within the barrels.
const EMBPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi) const
EMBPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
static unsigned int beginSideIndex()
unsigned int endPhiIndex() const
unsigned int beginPhiIndex() const
static unsigned int endSideIndex()
unsigned int endEtaIndex() const
unsigned int beginEtaIndex() const
double current(const EMECHVElectrode &electrode, const int &iGap) const
double voltage(const EMECHVElectrode &electrode, const int &iGap) const
int hvLineNo(const EMECHVElectrode &electrode, const int &iGap) const
This class provides direct access to information on the HV electrodes within the EMEC.
unsigned int beginEtaIndex() const
const EMECHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
unsigned int beginSectorIndex() const
unsigned int endPhiIndex() const
static unsigned int beginSideIndex()
static unsigned int endSideIndex()
unsigned int endEtaIndex() const
unsigned int endSectorIndex() const
unsigned int beginPhiIndex() const
EMECHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
const EMECHVElectrode & getElectrode(unsigned int iElectrode) const
unsigned int getNumElectrodes() const
double voltage(const EMECPresamplerHVModule &module, const int &iGap) const
double current(const EMECPresamplerHVModule &module, const int &iGap) const
int hvLineNo(const EMECPresamplerHVModule &module, const int &iGap) const
This class provides direct access to information on the HV electrodes within the EMEC.
EMECPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
unsigned int beginPhiIndex() const
unsigned int endPhiIndex() const
const EMECPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iPhi) const
static unsigned int endSideIndex()
static unsigned int beginSideIndex()
double current(const FCALHVLine &line) const
double voltage(const FCALHVLine &line) const
int hvLineNo(const FCALHVLine &line) const
This class provides direct access to information on the HV electrodes within the barrels.
static unsigned int beginSideIndex()
static unsigned int endSamplingIndex()
static unsigned int endSideIndex()
static unsigned int beginSectorIndex(unsigned int iSampling)
static unsigned int beginSamplingIndex()
const FCALHVModule & getHVModule(unsigned int iSide, unsigned int iSector, unsigned int iSampling) const
static unsigned int endSectorIndex(unsigned int iSampling)
FCALHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
const FCALHVLine & getHVLine(unsigned int iLine) const
static unsigned int getNumHVLines()
double current(const HECHVSubgap &subgap) const
int hvLineNo(const HECHVSubgap &subgap) const
double voltage(const HECHVSubgap &subgap) const
This class provides direct access to information on the HV electrodes within the barrels.
static unsigned int beginPhiIndex()
static unsigned int endSamplingIndex()
const HECHVModule & getHVModule(unsigned int iSide, unsigned int iPhi, unsigned int iSampling) const
static unsigned int endSideIndex()
HECHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
static unsigned int beginSideIndex()
static unsigned int beginSamplingIndex()
static unsigned int endPhiIndex()
const HECHVSubgap & getSubgap(unsigned int iElectrode) const
static unsigned int getNumSubgaps()
std::vector< int > GetHVLines(const EMBHVManager::EMBHVData &hvdata_EMB, const EMBPresamplerHVManager::EMBPresamplerHVData &hvdata_EMBPS, const EMECHVManager::EMECHVData &hvdata_EMEC_OUT, const EMECHVManager::EMECHVData &hvdata_EMEC_IN, const EMECPresamplerHVManager::EMECPresamplerHVData &hvdata_EMECPS, const HECHVManager::HECHVData &hvdata_HEC, const FCALHVManager::FCALHVData &hvdata_FCAL, const Identifier &id, const CaloDetDescrManager *calodetdescrmgr)
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
std::map< int, std::vector< HWIdentifier > > m_hvonlId_map
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
const CaloCell_ID * m_caloId
const LArOnlineID * m_onlId
This class provides access to the High Voltage throughout the LAr.
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
const std::string & key() const
Return the StoreGate ID for the referenced object.