ATLAS Offline Software
CaloTriggerTowerService.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <cstdio>
8 #include <fstream>
9 #include <iostream>
10 
11 #include "Gaudi/Property.h"
17 #include "GaudiKernel/IToolSvc.h"
18 #include "GaudiKernel/ServiceHandle.h"
19 #include "TClass.h"
20 
21 //===========================================================
23  const std::string& name,
24  const IInterface* parent )
26  m_onlineHelper(nullptr) ,
27  m_emHelper(nullptr) ,
28  m_lvl1Helper(nullptr) ,
29  m_ttonlineHelper(nullptr)
30 {
31 
32  // Declare additional interface
33  declareInterface<CaloTriggerTowerService>(this);
34 
35  declareProperty("LArTTCellMapKey",m_TTCellMapKey="LArTTCellMapAtlas");
36  declareProperty("CaloTTOnOffIdMapKey",m_caloTTOnOffIdMapKey="CaloTTOnOffIdMapAtlas");
37  declareProperty("CaloTTOnAttrIdMapKey",m_caloTTOnAttrIdMapKey="CaloTTOnAttrIdMapAtlas");
38  declareProperty("CaloTTPpmRxIdMapKey",m_caloTTPpmRxIdMapKey="CaloTTPpmRxIdMapAtlas");
39 
40 }
41 
42 
43 //===========================================================
45 {
46 
47  msg().setLevel(msgLevel());
48 
49  msg()<<MSG::INFO<<" => CaloTriggerTowerService::initialize() "<< endmsg;
50 
51  const CaloIdManager* caloMgr;
52  StatusCode status = detStore()->retrieve(caloMgr);
53  if (status.isFailure()) {
54  msg() << MSG::ERROR << "Unable to retrieve CaloIdManager from DetectorStore" << endmsg;
55  return StatusCode::FAILURE;
56  } else {
57  msg() << MSG::DEBUG << "Successfully retrieved CaloIdManager from DetectorStore" << endmsg;
58  }
59  m_emHelper = caloMgr->getEM_ID();
60  if (!m_emHelper) {
61  msg() << MSG::ERROR << "Could not access LArEM_ID helper" << endmsg;
62  return StatusCode::FAILURE;
63  } else {
64  msg() << MSG::DEBUG << "Successfully accessed LArEM_ID helper" << endmsg;
65  }
66  m_lvl1Helper = caloMgr->getLVL1_ID();
67  if (!m_lvl1Helper) {
68  msg() << MSG::ERROR << "Could not access CaloLVL1_ID helper" << endmsg;
69  return StatusCode::FAILURE;
70  } else {
71  msg() << MSG::DEBUG << "Successfully accessed CaloLVL1_ID helper" << endmsg;
72  }
73  m_ttonlineHelper = caloMgr->getTTOnlineID();
74  if (!m_ttonlineHelper) {
75  msg() << MSG::ERROR << "Could not access TTOnlineID helper" << endmsg;
76  return StatusCode::FAILURE;
77  } else {
78  msg() << MSG::DEBUG << "Successfully accessed CaloLVL1_ID helper" << endmsg;
79  }
80 
81  status = detStore()->retrieve(m_onlineHelper, "LArOnlineID");
82  if (status.isFailure()) {
83  msg() << MSG::ERROR << "Could not access LArOnlineID helper" << endmsg;
84  return StatusCode::FAILURE;
85  } else {
86  msg() << MSG::DEBUG << "Successfully accessed LArOnlineID helper" << endmsg;
87  }
88 
89  // Make sure the dictionaries for the LArTTCellMap persistent classes
90  // are available. We used to read this object via a conditions callback,
91  // but callbacks are not thread-friendly, so this was changed to retrieving
92  // it from detStore during event processing. However, this meant that
93  // the TClass's for the persistent objects were also being loaded
94  // at that time. As of root 6.22.00, at least, TClass can sometimes
95  // fail to properly load a dictionary when it's being run in a multithreaded
96  // context. So force the needed dictionaries to load now.
97  TClass::GetClass ("LArTTCell_P");
98  TClass::GetClass ("LArTTCell_P::LArTTCell_P_t");
99  TClass::GetClass ("std::vector<LArTTCell_P::LArTTCell_P_t>");
100 
101  msg()<<MSG::INFO<<" ====> ...CaloTriggerTowerService::init() OK "<< endmsg;
102  return StatusCode::SUCCESS;
103 }
104 
105 
106 
107 //===========================================================
109 {
110  msg()<<MSG::INFO<<" => CaloTriggerTowerService::finalize() "<< endmsg;
111  return StatusCode::SUCCESS;
112 }
113 
114 //===========================================================
116 {
117  return getTTCellMap() != nullptr && getCaloTTOnOffIdMap() != nullptr && getCaloTTOnAttrIdMap() != nullptr;
118 }
119 
120 
121 //===========================================================
123 {
124 
125  HWIdentifier invalidId (0);
126 
127  const CaloTTOnOffIdMap* caloTTOnOffIdMap = getCaloTTOnOffIdMap();
128  if(!caloTTOnOffIdMap ) {// no mapping object
129  msg() << MSG::ERROR << " No CaloTTOnOffIdMap !" << endmsg;
130  msg() << MSG::ERROR << " Has the DB folder holding the CaloTTOnOffIdMap been added to IOVDbSvc ? " << endmsg;
131  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
132  return invalidId;
133 
134  } else {
135 
136  // have mapping object, forward the call
137  HWIdentifier sid = caloTTOnOffIdMap->createSignalChannelID( id ) ;
138  if(bQuiet) {
139  return sid;
140 
141  } else {
142  if(sid == invalidId) {
143  CaloID_Exception except;
144  except.code(5) ;
145  except.message("HWIdentifier not found in map ") ;
146  throw except ;
147  }
148  return sid;
149  }
150  }
151 }
152 
153 
154 //===========================================================================
156 {
157  Identifier invalidId (0);
158 
159  const CaloTTOnOffIdMap* caloTTOnOffIdMap = getCaloTTOnOffIdMap();
160  if(!caloTTOnOffIdMap ) {
161  msg() << MSG::ERROR << " No CaloTTOnOffIdMap !" << endmsg;
162  msg() << MSG::ERROR << " Has the DB folder holding the CaloTTOnOffIdMap been added to IOVDbSvc ? " << endmsg;
163  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
164  return invalidId;
165 
166  } else {
167  // mapping object exist, forward the call
168  Identifier offid = caloTTOnOffIdMap->cnvToIdentifier(id, bQuiet);
169  if(bQuiet) {
170  return offid;
171 
172  } else {
173  if(!offid.is_valid()) {
174  CaloID_Exception except;
175  except.code(6) ;
176  except.message(" Online ID not found in map ") ;
177  throw except ;
178  }
179  return offid;
180  }
181  }
182 }
183 
185 
186  L1CaloCoolChannelId invalidId;
187 
188  const CaloTTPpmRxIdMap* caloTTPpmRxIdMap = getCaloTTPpmRxIdMap();
189  if(!caloTTPpmRxIdMap ) {
190  msg() << MSG::ERROR << " No CaloTTPpmRxIdMap !" << endmsg;
191  msg() << MSG::ERROR << " Has the DB folder holding the CaloTTPpmRxIdMap been added to IOVDbSvc ? " << endmsg;
192  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
193  return invalidId;
194 
195  } else {
196  // mapping object exist, forward the call
197  L1CaloCoolChannelId ppmId = caloTTPpmRxIdMap->rxToPpmId(rxCoolChannelId);
198  if(ppmId==L1CaloCoolChannelId()) {
199  CaloID_Exception except;
200  except.code(6) ;
201  except.message(" Rx channel ID not found in map ") ;
202  throw except ;
203  }
204  return ppmId;
205  }
206 }
207 
208 std::vector<L1CaloRxCoolChannelId> CaloTriggerTowerService::cnvCoolChannelIdToRxId(const L1CaloCoolChannelId& ppmCoolChannelId) const {
209 
210  const CaloTTPpmRxIdMap* caloTTPpmRxIdMap = getCaloTTPpmRxIdMap();
211  if(!caloTTPpmRxIdMap ) {
212  msg() << MSG::ERROR << " No CaloTTPpmRxIdMap !" << endmsg;
213  msg() << MSG::ERROR << " Has the DB folder holding the CaloTTPpmRxIdMap been added to IOVDbSvc ? " << endmsg;
214  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
215  return std::vector<L1CaloRxCoolChannelId>();
216 
217  } else {
218  // mapping object exist, forward the call
219  std::vector<L1CaloRxCoolChannelId> rxChannels = caloTTPpmRxIdMap->ppmToRxId(ppmCoolChannelId);
220  if(rxChannels.empty()) {
221  CaloID_Exception except;
222  except.code(6) ;
223  except.message(" Ppm channel ID not found in map ") ;
224  throw except ;
225  }
226  return rxChannels;
227  }
228 }
229 
230 //==========================================================================
232 
233  const CaloTTOnAttrIdMap* caloTTOnAttrIdMap = getCaloTTOnAttrIdMap();
234  if(!caloTTOnAttrIdMap) {
235  msg() << MSG::ERROR << " No TTOnAttrIdMap !" << endmsg;
236  msg() << MSG::ERROR << " Has the DB folder holding the TTOnAttrIdMap been added to IOVDbSvc ? " << endmsg;
237  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
238  return (0);
239  } else {
240  unsigned int barrel_endcap_fcal = caloTTOnAttrIdMap->barrel_endcap_fcal(id);
241  return barrel_endcap_fcal;
242  }
243 }
244 
245 //==========================================================================
246 unsigned int CaloTriggerTowerService::em_had(const HWIdentifier & id) const {
247 
248  const CaloTTOnAttrIdMap* caloTTOnAttrIdMap = getCaloTTOnAttrIdMap();
249  if(!caloTTOnAttrIdMap) {
250  msg() << MSG::ERROR << " No TTOnAttrIdMap !" << endmsg;
251  msg() << MSG::ERROR << " Has the DB folder holding the TTOnAttrIdMap been added to IOVDbSvc ? " << endmsg;
252  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
253  return (0);
254  } else {
255  unsigned int em_had = caloTTOnAttrIdMap->em_had(id);
256  return em_had;
257  }
258 }
259 
260 //==========================================================================
261 unsigned int CaloTriggerTowerService::pos_neg(const HWIdentifier & id) const {
262 
263  const CaloTTOnAttrIdMap* caloTTOnAttrIdMap = getCaloTTOnAttrIdMap();
264  if(!caloTTOnAttrIdMap) {
265  msg() << MSG::ERROR << " No TTOnAttrIdMap !" << endmsg;
266  msg() << MSG::ERROR << " Has the DB folder holding the TTOnAttrIdMap been added to IOVDbSvc ? " << endmsg;
267  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
268  return (0);
269  } else {
270  unsigned int pos_neg = caloTTOnAttrIdMap->pos_neg(id);
271  return pos_neg;
272  }
273 }
274 
275 unsigned int CaloTriggerTowerService::module_type(const HWIdentifier & id) const {
276 
277 
278  const CaloTTOnAttrIdMap* caloTTOnAttrIdMap = getCaloTTOnAttrIdMap();
279  if(!caloTTOnAttrIdMap) {
280  msg() << MSG::ERROR << " No TTOnAttrIdMap !" << endmsg;
281  msg() << MSG::ERROR << " Has the DB folder holding the TTOnAttrIdMap been added to IOVDbSvc ? " << endmsg;
282  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
283  return (0);
284  } else {
285  unsigned int module_type = caloTTOnAttrIdMap->module_type(id);
286  return module_type;
287  }
288 }
289 
290 
291 //===========================================================
293 
294  const CaloTTOnAttrIdMap* caloTTOnAttrIdMap = getCaloTTOnAttrIdMap();
295  if(caloTTOnAttrIdMap) {
296 
297  unsigned int crate = m_ttonlineHelper->crate(id);
298  unsigned int module = m_ttonlineHelper->module(id); // this returns the physical slot position !
299  unsigned int submodule = m_ttonlineHelper->submodule(id);
300  unsigned int channel = m_ttonlineHelper->channel(id);
301 
302  unsigned int module_type = caloTTOnAttrIdMap->module_type(id);
303 
304  // since the module argument is the physical position and not the logical one, the logical flag is set to false
306 
307  } else {
308 
309  msg() << MSG::ERROR << " No CaloTTOnAttrIdMap !" << endmsg;
310  msg() << MSG::ERROR << " Has the DB folder holding the CaloTTOnAttrIdMap been added to IOVDbSvc ? " << endmsg;
311  msg() << MSG::ERROR << " IOVDbSvc.Folders+=[ FolderName + DBConnection + \"<tag>\"+TagSpec+\"</tag>\" ] " << endmsg;
312  return 0;
313  }
314 }
315 
316 
317 //===========================================================
319 
320  unsigned int crate = coolChannelId.crate();
321  unsigned int module = coolChannelId.module(false); // get the physical module position
322  unsigned int submodule = coolChannelId.subModule();
323  unsigned int channel = coolChannelId.channel();
324 
325  // create Athena Online Id - the physical module position is expected here (not the logical)
327 
328  return channelId;
329 }
330 
331 
332 //==========================================================================
333 std::vector<Identifier>
335 //==========================================================================
336 {
337  std::vector<Identifier> vec ;
338 
339  if(m_emHelper->dictionaryVersion() == "fullAtlas" ||
340  m_emHelper->dictionaryVersion() == "H8TestBeam") {
341 
342  const LArTTCellMap* TTCellMap = getTTCellMap();
343  if(!TTCellMap) {
344  msg() << MSG::ERROR << " No TTCellMap !" << endmsg;
345  return vec;
346  }
347 
348  Identifier ttId=m_lvl1Helper->tower_id(id);
349  Identifier regId=m_lvl1Helper->region_id(id);
350  int maxLay=m_lvl1Helper->layer_max(regId);
351 
352  for(int iLay=0;iLay<=maxLay;++iLay) {
353  // Rem: not all iLay correspond to physically existing layers
354  Identifier layId = m_lvl1Helper->layer_id(ttId,iLay);
355  std::vector<Identifier> vecp = TTCellMap->createCellIDvec(layId);
356  std::vector<Identifier>::const_iterator it = vecp.begin();
357  std::vector<Identifier>::const_iterator it_e = vecp.end();
358  for (; it!=it_e; ++it) {
359  vec.push_back(*it);
360  }
361  }
362 
363  }
364 
365  return vec;
366 }
367 
368 //==========================================================================
369 std::vector<Identifier>
371 //==========================================================================
372 {
373  std::vector<Identifier> vec ;
374  const LArTTCellMap* TTCellMap = getTTCellMap();
375 
376  if(m_emHelper->dictionaryVersion() == "fullAtlas" ||
377  m_emHelper->dictionaryVersion() == "H8TestBeam") {
378  if(!TTCellMap) {
379  msg() << MSG::ERROR << " No TTCellMap !" << endmsg;
380  return vec;
381  }
382  vec = TTCellMap->createCellIDvec(id);
383  }
384 
385  return vec;
386 }
387 
388 //==========================================================================
390 //==========================================================================
391 {
392  Identifier sid(0);
393 
394  if(m_emHelper->dictionaryVersion() == "fullAtlas" ||
395  m_emHelper->dictionaryVersion() == "H8TestBeam") {
396 
397  const LArTTCellMap* TTCellMap = getTTCellMap();
398  if(!TTCellMap) {
399  msg() << MSG::ERROR << " No TTCellMap !" << endmsg;
400  return sid;
401  }
402  sid = TTCellMap->whichTTID( id ) ;
403  Identifier invalidId (0);
404  if(sid == invalidId ){
405  LArID_Exception except;
406  except.message("Identifier not found in map ") ;
407  throw except ;
408  }
409  }
410 
411  return sid;
412 }
413 
414 
415 //=============================================================
417 //=============================================================
418 //
419 // input = cell offline id
420 // some channels are mapped to a TT although not in lvl1
421 // 2 cases: barrel end and last compartment of hec.
422 //
423 //=============================================================
424 {
425 
426  bool lvl1 = true ;
427 
428  if(m_emHelper->dictionaryVersion() == "fullAtlas" ||
429  m_emHelper->dictionaryVersion() == "H8TestBeam") {
430 
431  if(m_emHelper->is_em_barrel(id)) {
432  int samp=m_emHelper->sampling(id);
433  if(samp==0) {
434  int eta=m_emHelper->eta(id);
435  if(eta==60) {
436  lvl1 = false ;
437  }
438  }
439  } else {
440  Identifier ttId=whichTTID(id);
441  if(m_lvl1Helper->is_hec(ttId)) {
442  int layer = m_lvl1Helper->layer(ttId);
443  if(layer == 3){
444  lvl1 = false ;
445  }
446  }
447  }
448  } else {
449  lvl1 = false ;
450  }
451 
452  return lvl1;
453 
454 }
455 
457 
458  msg()<<MSG::INFO<<" ====> iovCallBack " << endmsg;
459 
460  return StatusCode::SUCCESS;
461 
462 }
463 
464 
466 {
467  if (!m_TTCellMap.get()) {
468  const LArTTCellMap* TTCellMap = nullptr;
469  if (detStore()->retrieve (TTCellMap, m_TTCellMapKey).isSuccess()) {
470  m_TTCellMap.set (TTCellMap);
471  }
472  }
473  return m_TTCellMap.get();
474 }
475 
476 
478 {
479  if (!m_caloTTOnOffIdMap.get()) {
480  const CaloTTOnOffIdMap* caloTTOnOffIdMap = nullptr;
481  if (detStore()->retrieve (caloTTOnOffIdMap, m_caloTTOnOffIdMapKey).isSuccess()) {
482  m_caloTTOnOffIdMap.set (caloTTOnOffIdMap);
483  }
484  }
485  return m_caloTTOnOffIdMap.get();
486 }
487 
488 
490 {
491  if (!m_caloTTOnAttrIdMap.get()) {
492  const CaloTTOnAttrIdMap* caloTTOnAttrIdMap = nullptr;
493  if (detStore()->retrieve (caloTTOnAttrIdMap, m_caloTTOnAttrIdMapKey).isSuccess()) {
494  m_caloTTOnAttrIdMap.set (caloTTOnAttrIdMap);
495  }
496  }
497  return m_caloTTOnAttrIdMap.get();
498 }
499 
500 
502 {
503  if (!m_caloTTPpmRxIdMap.get()) {
504  const CaloTTPpmRxIdMap* caloTTPpmRxIdMap = nullptr;
505  if (detStore()->retrieve (caloTTPpmRxIdMap, m_caloTTPpmRxIdMapKey).isSuccess()) {
506  m_caloTTPpmRxIdMap.set (caloTTPpmRxIdMap);
507  }
508  }
509  return m_caloTTPpmRxIdMap.get();
510 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
CaloTriggerTowerService::m_caloTTPpmRxIdMap
CxxUtils::CachedPointer< const CaloTTPpmRxIdMap > m_caloTTPpmRxIdMap
Definition: CaloTriggerTowerService.h:194
TTOnlineID::channel
int channel(const HWIdentifier id) const
Definition: TTOnlineID.h:477
CaloTriggerTowerService::m_emHelper
const LArEM_ID * m_emHelper
pointer to the LArEM offline Id helper
Definition: CaloTriggerTowerService.h:185
LArEM_ID.h
CaloTriggerTowerService::m_TTCellMapKey
std::string m_TTCellMapKey
Definition: CaloTriggerTowerService.h:196
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
CaloTriggerTowerService::m_caloTTOnOffIdMapKey
std::string m_caloTTOnOffIdMapKey
Definition: CaloTriggerTowerService.h:197
CaloID_Exception
Exception class for Calo Identifiers.
Definition: CaloID_Exception.h:20
CaloTriggerTowerService::m_TTCellMap
CxxUtils::CachedPointer< const LArTTCellMap > m_TTCellMap
Definition: CaloTriggerTowerService.h:191
CaloTriggerTowerService::m_caloTTOnOffIdMap
CxxUtils::CachedPointer< const CaloTTOnOffIdMap > m_caloTTOnOffIdMap
Definition: CaloTriggerTowerService.h:192
CaloTTOnAttrIdMap::pos_neg
unsigned int pos_neg(HWIdentifier channelId) const
return 0 for z<0 channels and 1 for z>0 channels
Definition: CaloTTOnAttrIdMap.cxx:112
CaloTriggerTowerService::createCellIDvecLayer
std::vector< Identifier > createCellIDvecLayer(const Identifier &id) const
Return a vector of offline Identifiers (corresponding helpers = LArEM_ID, LArHEC_ID,...
Definition: CaloTriggerTowerService.cxx:370
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloTriggerTowerService::m_lvl1Helper
const CaloLVL1_ID * m_lvl1Helper
pointer to the Calo TT offline Id helper
Definition: CaloTriggerTowerService.h:187
CaloIdManager::getEM_ID
const LArEM_ID * getEM_ID(void) const
Definition: CaloIdManager.cxx:80
LArOnlID_Exception.h
LArTTCellMap::whichTTID
Identifier whichTTID(const Identifier &id) const
return the offline id (CaloLVL1_ID) of the TT to which a cell (CaloCell_ID) belongs
Definition: LArTTCellMap.cxx:162
CaloTriggerTowerService::m_onlineHelper
const LArOnlineID * m_onlineHelper
pointer to the LAr Online Id helper
Definition: CaloTriggerTowerService.h:183
CaloTTOnAttrIdMap::barrel_endcap_fcal
unsigned int barrel_endcap_fcal(HWIdentifier channelId) const
To know if a channel belongs to the barrel, end cap or fcal parts.
Definition: CaloTTOnAttrIdMap.cxx:131
skel.it
it
Definition: skel.GENtoEVGEN.py:423
LArTTCellMap::createCellIDvec
const std::vector< Identifier > & createCellIDvec(const Identifier &id) const
Return a vector of offline Identifiers (corresponding helpers = LArEM_ID, LArHEC_ID,...
Definition: LArTTCellMap.cxx:182
CaloTriggerTowerService::em_had
unsigned int em_had(const HWIdentifier &id) const
return the corresponding sampling of channelId:
Definition: CaloTriggerTowerService.cxx:246
CaloTriggerTowerService::getTTCellMap
const LArTTCellMap * getTTCellMap() const
Definition: CaloTriggerTowerService.cxx:465
CaloTTPpmRxIdMap::ppmToRxId
std::vector< L1CaloRxCoolChannelId > ppmToRxId(const L1CaloCoolChannelId &ppmChannelId) const
return the corresponding Rx channels to the Ppm input one
Definition: CaloTTPpmRxIdMap.cxx:84
L1CaloCoolChannelId::crate
unsigned int crate() const
Definition: L1CaloCoolChannelId.h:25
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
L1CaloModuleType::L1CaloModuleEnum
L1CaloModuleEnum
Definition: L1CaloModuleType.h:15
CaloTTOnOffIdMap::createSignalChannelID
HWIdentifier createSignalChannelID(const Identifier &id, bool bQuiet=false) const
return the corresponfing online Id of an offline one
Definition: CaloTTOnOffIdMap.cxx:98
L1CaloModuleType
Definition: L1CaloModuleType.h:11
CaloTriggerTowerService::m_caloTTOnAttrIdMapKey
std::string m_caloTTOnAttrIdMapKey
Definition: CaloTriggerTowerService.h:198
HWIdentifier
Definition: HWIdentifier.h:13
CaloTTOnAttrIdMap::module_type
unsigned int module_type(HWIdentifier channelId) const
To get the type of the module connected to the channel:
Definition: CaloTTOnAttrIdMap.cxx:150
IOVSVC_CALLBACK_ARGS
#define IOVSVC_CALLBACK_ARGS
short hand for IOVSvc call back argument list, to be used when no access to formal arguments is neede...
Definition: IOVSvcDefs.h:24
CaloTTOnAttrIdMap::em_had
unsigned int em_had(HWIdentifier channelId) const
return the corresponding sampling of channelId:
Definition: CaloTTOnAttrIdMap.cxx:94
Identifier::is_valid
bool is_valid() const
Check if id is in a valid state.
CxxUtils::CachedPointer::set
void set(pointer_t elt) const
Set the element, assuming it is currently null.
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
CaloTriggerTowerService::whichTTID
Identifier whichTTID(const Identifier &id) const
return the offline id (CaloLVL1_ID) of the TT to which a cell id (CaloCell_ID) belongs The call is ...
Definition: CaloTriggerTowerService.cxx:389
CaloTriggerTowerService::createTTChannelID
HWIdentifier createTTChannelID(const Identifier &id, bool bQuiet=false) const
create a TT HWIdentifier from a TT Identifier
Definition: CaloTriggerTowerService.cxx:122
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
python.PyAthena.module
module
Definition: PyAthena.py:134
CaloTTOnOffIdMap
This is a StoreGate object holding the TT offline-online map.
Definition: CaloTTOnOffIdMap.h:26
CaloTriggerTowerService::getCaloTTOnOffIdMap
const CaloTTOnOffIdMap * getCaloTTOnOffIdMap() const
Definition: CaloTriggerTowerService.cxx:477
TTOnlineID::module
int module(const HWIdentifier id) const
Definition: TTOnlineID.h:465
L1CaloRxCoolChannelId
Definition: L1CaloRxCoolChannelId.h:10
CaloTriggerTowerService::createCellIDvecTT
std::vector< Identifier > createCellIDvecTT(const Identifier &id) const
Return a vector of offline Identifiers (corresponding helpers = LArEM_ID, LArHEC_ID,...
Definition: CaloTriggerTowerService.cxx:334
CaloTTOnOffIdMap::cnvToIdentifier
Identifier cnvToIdentifier(const HWIdentifier &sid, bool bQuiet=false) const
return the corresponfing offline Id of an online one
Definition: CaloTTOnOffIdMap.cxx:126
CaloTTPpmRxIdMap::rxToPpmId
L1CaloCoolChannelId rxToPpmId(const L1CaloRxCoolChannelId &rxChannelId) const
return the corresponfing ppm channel to the Rx input one
Definition: CaloTTPpmRxIdMap.cxx:106
CaloIdManager
This class initializes the Calo (LAr and Tile) offline identifiers.
Definition: CaloIdManager.h:45
L1CaloCoolChannelId::channel
unsigned int channel() const
Definition: L1CaloCoolChannelId.h:30
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
CaloTTOnAttrIdMap
Definition: CaloTTOnAttrIdMap.h:33
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloTriggerTowerService::finalize
StatusCode finalize()
Definition: CaloTriggerTowerService.cxx:108
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
CaloTriggerTowerService::cnvToIdentifier
Identifier cnvToIdentifier(const HWIdentifier &id, bool bQuiet=false) const
create a TT Identifier from a TT HWIdentifier
Definition: CaloTriggerTowerService.cxx:155
CaloTriggerTowerService::pos_neg
unsigned int pos_neg(const HWIdentifier &id) const
return 0 for z<0 channels and 1 for z>0 channels
Definition: CaloTriggerTowerService.cxx:261
CaloTriggerTowerService::m_ttonlineHelper
const TTOnlineID * m_ttonlineHelper
pointer to the Calo TT online Id helper
Definition: CaloTriggerTowerService.h:189
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloIdManager::getLVL1_ID
const CaloLVL1_ID * getLVL1_ID(void) const
Definition: CaloIdManager.cxx:75
CaloTriggerTowerService::is_in_lvl1
bool is_in_lvl1(const Identifier &id) const
return true if the cell is in the lvl1 sums; some channels mapped to TT are only in HLT (last HEC c...
Definition: CaloTriggerTowerService.cxx:416
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
CaloTriggerTowerService::is_initialized
bool is_initialized() const
Definition: CaloTriggerTowerService.cxx:115
CaloTriggerTowerService::cnvCoolChannelIdToRxId
std::vector< L1CaloRxCoolChannelId > cnvCoolChannelIdToRxId(const L1CaloCoolChannelId &ppmCoolChannelId) const
returns a vector of L1CaloRxCoolChannelId corresponding to a L1CaloCoolChannelId
Definition: CaloTriggerTowerService.cxx:208
CaloTriggerTowerService::m_caloTTOnAttrIdMap
CxxUtils::CachedPointer< const CaloTTOnAttrIdMap > m_caloTTOnAttrIdMap
Definition: CaloTriggerTowerService.h:193
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloTriggerTowerService::getCaloTTOnAttrIdMap
const CaloTTOnAttrIdMap * getCaloTTOnAttrIdMap() const
Definition: CaloTriggerTowerService.cxx:489
LArTTCellMap
This is a StoreGate object holding the offline TT-cell map.
Definition: LArTTCellMap.h:29
CaloID_Exception::message
void message(const std::string &lMessage)
set error message
Definition: CaloID_Exception.cxx:19
CaloTriggerTowerService::barrel_endcap_fcal
unsigned int barrel_endcap_fcal(const HWIdentifier &id) const
To know if a channel belongs to the barrel, end cap or fcal parts.
Definition: CaloTriggerTowerService.cxx:231
CaloTriggerTowerService::m_caloTTPpmRxIdMapKey
std::string m_caloTTPpmRxIdMapKey
Definition: CaloTriggerTowerService.h:199
LArID_Exception::message
void message(const std::string &l_message)
set error message
Definition: LArID_Exception.h:36
CaloTriggerTowerService::cnvCoolChannelIdToHWID
HWIdentifier cnvCoolChannelIdToHWID(const L1CaloCoolChannelId &coolChannelId) const
create an HWIdentifier from an TDAQ CoolChannelId
Definition: CaloTriggerTowerService.cxx:318
L1CaloCoolChannelId
Definition: L1CaloCoolChannelId.h:10
CaloLVL1_ID.h
TTOnlineID::submodule
int submodule(const HWIdentifier id) const
Definition: TTOnlineID.h:471
CaloTriggerTowerService.h
CaloTriggerTowerService::initialize
StatusCode initialize()
Definition: CaloTriggerTowerService.cxx:44
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CaloTriggerTowerService::module_type
unsigned int module_type(const HWIdentifier &id) const
To get the type of the module connected to the channel:
Definition: CaloTriggerTowerService.cxx:275
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
CaloTriggerTowerService::createL1CoolChannelId
L1CaloCoolChannelId createL1CoolChannelId(const HWIdentifier &id) const
create a CoolChannelId (used by TDAQ framework) from a HWIdentifier
Definition: CaloTriggerTowerService.cxx:292
CaloTTPpmRxIdMap
This is a StoreGate object holding the TT PPM to RX channels map.
Definition: CaloTTPpmRxIdMap.h:27
TTOnlineID::channelId
HWIdentifier channelId(int crate, int module, int submodule, int channel) const
(1) create towerId from fields
Definition: TTOnlineID.h:398
CxxUtils::CachedPointer::get
pointer_t get() const
Return the current value of the element.
CaloTriggerTowerService::getCaloTTPpmRxIdMap
const CaloTTPpmRxIdMap * getCaloTTPpmRxIdMap() const
Definition: CaloTriggerTowerService.cxx:501
CaloIdManager.h
CaloIdManager::getTTOnlineID
const TTOnlineID * getTTOnlineID(void) const
Definition: CaloIdManager.cxx:105
merge.status
status
Definition: merge.py:17
CaloTriggerTowerService::iovCallBack
virtual StatusCode iovCallBack(IOVSVC_CALLBACK_ARGS)
Definition: CaloTriggerTowerService.cxx:456
AthAlgTool
Definition: AthAlgTool.h:26
TTOnlineID::crate
int crate(const HWIdentifier id) const
Definition: TTOnlineID.h:459
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
CaloTriggerTowerService::cnvRxIdToCoolChannelId
L1CaloCoolChannelId cnvRxIdToCoolChannelId(const L1CaloRxCoolChannelId &rxCoolChannelId) const
returns a TDAQ CoolChannelId corresponding to a L1CaloRxCoolChannelId
Definition: CaloTriggerTowerService.cxx:184
LArID_Exception
Exception class for LAr Identifiers.
Definition: LArID_Exception.h:20
L1CaloCoolChannelId::subModule
unsigned int subModule() const
Definition: L1CaloCoolChannelId.h:29
LArOnlineID.h
CaloTriggerTowerService::CaloTriggerTowerService
CaloTriggerTowerService(const std::string &type, const std::string &name, const IInterface *parent)
constructor
Definition: CaloTriggerTowerService.cxx:22
L1CaloCoolChannelId::module
unsigned int module(bool logical=true) const
CaloID_Exception::code
void code(int lCode)
set error code number
Definition: CaloID_Exception.cxx:25