94 {
95 const EventContext& ctx = Gaudi::Hive::currentContext();
96
97
98
99
101 std::vector<const CondAttrListCollection*> attrLists;
103 {
105 attrLists.push_back (*attrList);
106 }
108 ATH_CHECK( detStore()->retrieve(manager) );
109
110 const EMBHVManager& hvManager_EMB=manager->getEMBHVManager();
112
115
118
121
124
125 const HECHVManager& hvManager_HEC=manager->getHECHVManager();
127
128 const FCALHVManager& hvManager_FCAL=manager->getFCALHVManager();
130
131 if(m_hvonlId_map.empty()) {
133 const LArOnOffIdMapping*
cabling{*cablingHdl};
134 if(!cabling) {
136 return StatusCode::FAILURE;
137 }
138
139 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{
m_caloMgrKey, ctx};
141 const CaloDetDescrManager* calodetdescrmgr=*caloMgrHandle;
144 for(;cell_b!=cell_e; ++cell_b) {
146 HWIdentifier onlid =
cabling->createSignalChannelID(*cell_b);
147 std::vector<int> hvlines =
GetHVLines (hvdata_EMB,
148 hvdata_EMBPS,
149 hvdata_EMEC_OUT,
150 hvdata_EMEC_IN,
151 hvdata_EMECPS,
152 hvdata_HEC,
153 hvdata_FCAL,
154 *cell_b,
155 calodetdescrmgr);
156 for(
unsigned i=0;
i<hvlines.size(); ++
i ) {
158 std::vector<HWIdentifier>
vec;
159 vec.push_back(onlid);
161 } else {
163 }
164 }
165 }
166 }
167
172 const EMBHVModule& hvMod = hvManager_EMB.
getHVModule(iSide,iEta,iPhi,iSector);
174 for (unsigned int ielec=0;ielec<32;ielec++) {
175 const EMBHVElectrode& electrode = hvMod.
getElectrode(ielec);
176 for (unsigned int iGap=0;iGap<2;iGap++) {
177 float hv = hvdata_EMB.
voltage (electrode, iGap);
180
190
191 if(m_addcells) {
199 }
201
202 }
203 }
204 }
205 }
206 }
207 }
208
212 const EMBPresamplerHVModule& hvMod = hvManager_EMBPS.
getHVModule(iSide,iEta,iPhi);
213 for (int iGap=0;iGap<2;iGap++) {
214 float hv = hvdata_EMBPS.
voltage (hvMod, iGap);
218
228
229 if(m_addcells) {
237 }
239
240 }
241 }
242 }
243 }
244
247 const EMECPresamplerHVModule& hvMod = hvManager_EMECPS.
getHVModule(iSide,iPhi);
248 for (int iGap=0;iGap<2;iGap++) {
249 float hv = hvdata_EMECPS.
voltage (hvMod, iGap);
253
263
264 if(m_addcells) {
272 }
274
275 }
276 }
277 }
278
279
280
285 const EMECHVModule& hvMod=hvManager_EMEC_OUT.
getHVModule(iSide,iEta,iPhi,iSector);
288 const EMECHVElectrode& electrode = hvMod.
getElectrode(ielec);
289 for (unsigned int iGap=0;iGap<2;iGap++) {
290 float hv = hvdata_EMEC_OUT.
voltage (electrode, iGap);
293
303
304 if(m_addcells) {
312 }
314
315 }
316 }
317 }
318 }
319 }
320 }
321
326 const EMECHVModule& hvMod=hvManager_EMEC_IN.
getHVModule(iSide,iEta,iPhi,iSector);
329 const EMECHVElectrode& electrode = hvMod.
getElectrode(ielec);
330 for (unsigned int iGap=0;iGap<2;iGap++) {
331 float hv = hvdata_EMEC_IN.
voltage (electrode, iGap);
334
344
345 if(m_addcells) {
353 }
355
356 }
357 }
358 }
359 }
360 }
361 }
362
363 float etamax_layer[4]={3.3,3.1,3.1,3.3};
364 float etamin_layer[4]={1.5,1.5,1.6,1.7};
365
366
370 float eta_min,eta_max;
371 if (iSide==1) {
372 eta_min = etamin_layer[iSampling];
373 eta_max = etamax_layer[iSampling];
374 } else {
375 eta_min = -1.*etamax_layer[iSampling];
376 eta_max = -1.*etamin_layer[iSampling];
377 }
378 float eta = 0.5*(eta_min+eta_max);
379 const HECHVModule& hvMod = hvManager_HEC.
getHVModule(iSide,iPhi,iSampling);
381
383 const HECHVSubgap& subgap=hvMod.
getSubgap(iGap);
386 m_bec = 10+iSampling;
395 if(m_addcells) {
403 }
405 }
406 }
407 }
408 }
409
411 float eta_min=3.1,eta_max=4.9;
412 if (iSide==0) { eta_min=-4.9; eta_max=-3.1; }
413
414 float eta = 0.5*(eta_min+eta_max);
417
418 const FCALHVModule& hvMod = hvManager_FCAL.
getHVModule(iSide,iSector,iSampling);
419
423 float phi_min = ((
float)(iSector))*dphi;
426 float phi = 0.5*(phi_min+phi_max);
427
432 m_bec = 14+iSampling;
441 if(m_addcells) {
449 }
451 }
452 }
453 }
454 }
455
456 return StatusCode::SUCCESS;
457 }
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.