ATLAS Offline Software
LArOnlineID_Base.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef LARONLINEID_BASE_H
6 #define LARONLINEID_BASE_H
7 
12 #include "Identifier/Range.h"
14 #include "IdDict/IdDictDefs.h"
16 #include "boost/range/iterator_range.hpp"
17 #include "string.h"
18 #include <vector>
19 #include <algorithm>
20 
21 #include <iostream>
22 
23 
24 class IdentifierHash;
25 class Range;
26 
27 
105 {
106  public:
107 
109 
111  typedef std::vector<HWIdentifier>::const_iterator id_iterator;
113  typedef boost::iterator_range<id_iterator> id_range;
114 
118  LArOnlineID_Base(const std::string& name,
119  const std::string& group,
120  bool is_slar);
125 
131  bool checks) const;
132 
136  HWIdentifier feedthrough_Id(IdentifierHash feedthroughHash) const;
137 
141  IdentifierHash feedthrough_Hash(HWIdentifier feedthroughId) const;
142 
147  id_iterator feedthrough_end () const;
148  id_range feedthrough_range() const;
149 
150 
151 
156  int pos_neg,
157  int feedthrough,
158  int slot) const;
160  int pos_neg,
161  int feedthrough,
162  int slot,
163  bool checks) const;
167  HWIdentifier feb_Id(IdentifierHash febHash) const;
168 
172  IdentifierHash feb_Hash(HWIdentifier febId) const;
173 
177  id_iterator feb_begin() const;
178  id_iterator feb_end () const;
179  id_range feb_range() const;
180 
181 
182 
187  int pos_neg,
188  int feedthrough,
189  int slot,
190  int channel) const;
192  int pos_neg,
193  int feedthrough,
194  int slot,
195  int channel,
196  bool checks) const;
200  HWIdentifier channel_Id(IdentifierHash channelHash) const;
201 
206 
210  id_iterator channel_begin() const;
211  id_iterator channel_end () const;
212  id_range channel_range() const;
213 
214 
218  HWIdentifier feedthrough_Id(const HWIdentifier Id) const ;
226  HWIdentifier feb_Id(const HWIdentifier feedthroughId, int slot) const ;
230  HWIdentifier channel_Id(const HWIdentifier feedthroughId, int slot, int channel) const;
231  HWIdentifier channel_Id(const HWIdentifier feedthroughId, int slot, int channel,
232  bool checks) const;
236  HWIdentifier channel_Id(const HWIdentifier febId, int channel) const;
237  HWIdentifier channel_Id(const HWIdentifier febId, int channel,
238  bool checks) const;
239 
240 
244  size_type feedthroughHashMax () const;
248  size_type febHashMax () const;
252  size_type channelHashMax () const;
253 
258  int pos_neg,
259  int feedthrough,
260  int slot ) const;
264  HWIdentifier calib_module_Id(IdentifierHash calibModuleHash) const;
268  IdentifierHash calib_module_Hash(HWIdentifier calibModuleId) const;
269 
274  id_iterator calib_module_end () const;
276 
277 
282  int pos_neg,
283  int feedthrough,
284  int slot,
285  int channel ) const;
289  HWIdentifier calib_channel_Id(IdentifierHash calibChannelHash) const;
296 
297 
301  HWIdentifier calib_module_Id(const HWIdentifier ChannelId) const ;
305  HWIdentifier calib_module_Id(const HWIdentifier FeedthroughId, int slot) const ;
309  HWIdentifier calib_channel_Id(const HWIdentifier FeedthroughId, int slot, int channel ) const ;
313  HWIdentifier calib_channel_Id(const HWIdentifier febId, int ChannelId) const ;
314 
316 
320  size_type calibModuleHashMax () const;
321 
326 
327 
331  /* recommended methods */
332  bool isEMBchannel (const HWIdentifier id) const;
333  virtual bool isEMECchannel (const HWIdentifier id) const = 0; // differs for Main and DT
334  virtual bool isHECchannel (const HWIdentifier id) const = 0; // differs for Main and DT
335  bool isFCALchannel (const HWIdentifier id) const;
336  virtual bool isEMECIW (const HWIdentifier id) const = 0; // differs for Main and DT
337  virtual bool isEMECOW (const HWIdentifier id) const = 0; // differs for Main and DT
338  bool isEMBPS (const HWIdentifier id) const;
339  bool isEMECPS (const HWIdentifier id) const;
340  bool isPS (const HWIdentifier id) const;
341  bool isNotWarmCableConnected (const HWIdentifier id) const;
342  bool isCalibration (const HWIdentifier id) const;
343 
344  /* To be used with care */
345  bool isHecOnline (const HWIdentifier id) const;
346  bool isHecOnlineFebId (const HWIdentifier febId) const;
347  bool isEMECinHECchannel (const HWIdentifier id) const;
348 
349  /* obsolete */
350  bool isEmBarrelOnline (const HWIdentifier id) const;
351  bool isEmEndcapOnline (const HWIdentifier id) const;
352  bool isEndcapOnline (const HWIdentifier id) const;
353  bool isFcalOnline (const HWIdentifier id) const;
354  bool isEmEndcapStandardOnline (const HWIdentifier id) const;
355  bool isEmEndcapSpecialOnline (const HWIdentifier id) const;
356 
360  int channelInSlotMax (const HWIdentifier Id) const;
361 
365  std::string feedthrough_name(const HWIdentifier id ) const;
366 
370  std::string channel_name(const HWIdentifier id ) const;
371 
376  int barrel_ec(const HWIdentifier id)const;
377 
382  int pos_neg(const HWIdentifier id)const;
383 
391  int feedthrough(const HWIdentifier id)const;
392 
398  int slot(const HWIdentifier id)const;
399 
404  int channel(const HWIdentifier id)const;
405 
410  int is_slar(const HWIdentifier id)const;
411 
412 
416  bool isValidId(const HWIdentifier id) const;
417 
421  virtual int initialize_from_dictionary (const IdDictMgr& dict_mgr);
422 
423 
435  IdContext febContext() const;
439  IdContext channelContext() const;
440 
441 protected:
442 /*==== */
443 
444  enum {NOT_VALID_HASH = 256000};
446 
448 
450 
451  // Check methods
452  void channel_Id_checks(int barrel_ec,
453  int pos_neg,
454  int feedthrough,
455  int slot,
456  int channel ) const;
457 
458  void channel_Id_checks(const HWIdentifier feedthroughId,
459  int slot,
460  int channel ) const;
461 
462  void channel_Id_checks(const HWIdentifier febId,
463  int channel ) const;
464 
465  void feb_Id_checks(int barrel_ec, int pos_neg, int feedthrough, int slot ) const;
466 
467  void feedthrough_Id_checks(int barrel_ec, int pos_neg, int feedthrough ) const;
468 
470  int get_expanded_id (const HWIdentifier& id,
471  ExpandedIdentifier& exp_id,
472  const IdContext* context) const;
473  int get_expanded_calib_id (const HWIdentifier& id,
474  ExpandedIdentifier& exp_id,
475  const IdContext* context) const;
476  int initLevelsFromDict(const std::string& group_name) ;
477  int init_hashes();
478  int init_calib_hashes();
479 
480  size_type m_laronlineRegion_index; // LArOnline_region
483  size_type m_bec_index; // [0 Barrel, 1 Endcap]
484  size_type m_side_index; // [-1 negative-side, 1 positive-side]
485  size_type m_feedthrough_index; // [0,31] or [0,24]
489 
498 
499  std::vector<HWIdentifier> m_feedthrough_vec;
500  std::vector<HWIdentifier> m_feb_vec;
501  std::vector<HWIdentifier> m_channel_vec;
502 
503  /* Calib */
508  std::vector<HWIdentifier> m_calib_module_vec;
509  std::vector<HWIdentifier> m_calib_channel_vec;
510 
522 
526  class HashCalc
527  {
528  public:
529  HashCalc() : m_hash(0) {}
531  };
533  {
534  public:
535  HashCalcFeb() : m_hash(0) {}
537  std::vector<int> m_slot_values; // need to save slot values for enumerated slot field
538  };
539  std::vector<HashCalcFeb> m_feb_hash_calcs;
540  std::vector<HashCalc> m_chan_hash_calcs;
541 
542 };
543 
544 static const int s_lar_online_field_value = 4 ;
545 static const int s_lar_onlineCalib_field_value = 5 ;
546 
547 //=====================
548 // Inline Definitions
549 //=====================
550 
552 /*=============================================================================== */
553 {
554  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_feb_vec.begin(),m_feb_vec.end(),febId);
555  if ( it != m_feb_vec.end() ){
556  return (it - m_feb_vec.begin());
557  }
558  return (0);
559 }
560 
561 
563 /*=========================================================================*/
564 {
565  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_channel_vec.begin(),m_channel_vec.end(),channelId);
566  if ( it != m_channel_vec.end() ){
567  return (it - m_channel_vec.begin());
568  }
569  return(0) ;
570 }
571 
572 /* CALIB inline Identifiers */
573 /*==========================*/
574 
575 inline HWIdentifier LArOnlineID_Base::calib_module_Id(int barrel_ec, int pos_neg,
576  int feedthrough, int slot ) const
577 /*=============================================================== */
578 {
579  HWIdentifier result(0);
580  /*Pack fields independently */
581  m_lar_impl.pack (lar_field_value(), result);
582  m_laronline_impl.pack (5 , result);
583  m_bec_impl.pack (barrel_ec , result);
584  m_side_impl.pack (pos_neg , result);
585  m_feedthrough_impl.pack(feedthrough , result);
586  m_slot_impl.pack (slot , result);
587  return result;
588 }
589 
590 inline HWIdentifier LArOnlineID_Base::calib_module_Id(const HWIdentifier feedthroughId , int slot) const
591 /*==================================================================================== */
592 {
593  HWIdentifier result(feedthroughId);
594  /* Pack fields independently */
595  m_slot_impl.reset (result);
596  m_slot_impl.pack (slot , result);
597  return(result);
598 }
599 
601 /*======================================================================= */
602 {
603  HWIdentifier result(calibChannelId);
604  m_channel_in_slot_impl.reset(result);
605  return(result);
606 }
607 
609 /*=========================================================================== */
610 {
611  return(m_calib_module_vec[calibModuleHashId]);
612 }
613 
615 /*=============================================================================== */
616 {
617  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_calib_module_vec.begin(),m_calib_module_vec.end(),calibModuleId);
618  if ( it != m_calib_module_vec.end() ){
619  return (it - m_calib_module_vec.begin());
620  }
621  return (0);
622 }
623 
624 inline HWIdentifier LArOnlineID_Base::calib_channel_Id( int barrel_ec, int pos_neg, int feedthrough,
625  int slot, int channel ) const
626 /*============================================================================== */
627 {
628  HWIdentifier result(0);
629  /* Pack fields independently */
630  m_lar_impl.pack (lar_field_value() , result);
631  m_laronline_impl.pack (5 , result);
632  m_bec_impl.pack (barrel_ec , result);
633  m_side_impl.pack (pos_neg , result);
634  m_feedthrough_impl.pack (feedthrough , result);
635  m_slot_impl.pack (slot , result);
636  m_channel_in_slot_impl.pack(channel , result);
637 
638  return result;
639 }
640 
641 inline HWIdentifier LArOnlineID_Base::calib_channel_Id(const HWIdentifier feedthroughId,int slot,int channel) const
642 /*==================================================================================================== */
643 {
644  HWIdentifier result(feedthroughId);
645  /* Pack fields independently */
646  m_slot_impl.reset (result);
647  m_channel_in_slot_impl.reset(result);
648  m_slot_impl.pack (slot , result);
649  m_channel_in_slot_impl.pack (channel, result);
650 
651  return result;
652 }
653 
655 /*======================================================================================= */
656 {
657  HWIdentifier result(febId);
658  /* Pack fields independently */
659  m_channel_in_slot_impl.reset(result);
660  m_channel_in_slot_impl.pack (channel, result);
661 
662  return result;
663 }
665 /*===================================================================*/
666 {
667  return(m_calib_channel_vec[channelHashId]);
668 }
669 
671 /*=========================================================================*/
672 {
673  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_calib_channel_vec.begin(),m_calib_channel_vec.end(),channelId);
674  if ( it != m_calib_channel_vec.end() ){
675  return (it - m_calib_channel_vec.begin());
676  }
677  return(0) ;
678 }
679 
680 /* Calib */
682 /*=======================================================================*/
683 {
684  return m_calibModuleHashMax;
685 }
687 /*====================================================================*/
688 {
689  return m_calibChannelHashMax;
690 }
691 
692 
693 
694 
695 
696 /* Calib */
698 /*====================================================================*/
699 {
700  return(m_calib_module_vec.begin());
701 }
703 /*==================================================================*/
704 {
705  return(m_calib_module_vec.end());
706 }
708 /*==================================================================*/
709 {
711 }
712 
714 /*======================================================================*/
715 {
716  return(m_calib_channel_vec.begin());
717 }
719 /*======================================================================*/
720 {
721  return(m_calib_channel_vec.end());
722 }
724 /*======================================================================*/
725 {
727 }
728 
729 
730 
731 //using the macro below we can assign an identifier (and a version)
732 //This is required and checked at compile time when you try to record/retrieve
733 CLASS_DEF( LArOnlineID_Base , 28598761 , 1 )
734 
735 
736 #endif // LARONLINE_ID_BASE_H
737 
738 
739 
LArOnlineID_Base::m_side_index
size_type m_side_index
Definition: LArOnlineID_Base.h:484
LArOnlineID_Base::channel_Hash
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
Definition: LArOnlineID_Base.cxx:1632
LArOnlineID_Base::LArOnlineID_Base
LArOnlineID_Base(const std::string &name, const std::string &group, bool is_slar)
Default constructor.
Definition: LArOnlineID_Base.cxx:47
get_generator_info.result
result
Definition: get_generator_info.py:21
LArOnlineID_Base::feedthrough_range
id_range feedthrough_range() const
Definition: LArOnlineID_Base.cxx:1443
LArOnlineID_Base::m_slar_impl
IdDictFieldImplementation m_slar_impl
Definition: LArOnlineID_Base.h:521
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
LArOnlineID_Base::HashCalcFeb::m_hash
IdentifierHash m_hash
Definition: LArOnlineID_Base.h:536
LArOnlineID_Base::feedthrough_name
std::string feedthrough_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Definition: LArOnlineID_Base.cxx:75
LArOnlineID_Base::size_type
Identifier::size_type size_type
Definition: LArOnlineID_Base.h:108
LArOnlineID_Base::HashCalcFeb::m_slot_values
std::vector< int > m_slot_values
Definition: LArOnlineID_Base.h:537
LArOnlineID_Base::m_feedthrough_impl
IdDictFieldImplementation m_feedthrough_impl
Definition: LArOnlineID_Base.h:516
LArOnlineID_Base::isEMECIW
virtual bool isEMECIW(const HWIdentifier id) const =0
LArOnlineID_Base::isHecOnlineFebId
bool isHecOnlineFebId(const HWIdentifier febId) const
Definition: LArOnlineID_Base.cxx:1854
LArOnlineID_Base::feb_Id_checks
void feb_Id_checks(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Definition: LArOnlineID_Base.cxx:754
LArOnlID_Exception.h
LArOnlineID_Base::HashCalcFeb::HashCalcFeb
HashCalcFeb()
Definition: LArOnlineID_Base.h:535
LArOnlineID_Base::m_channel_vec
std::vector< HWIdentifier > m_channel_vec
Definition: LArOnlineID_Base.h:501
Range.h
skel.it
it
Definition: skel.GENtoEVGEN.py:407
LArOnlineID_Base::slot
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...
Definition: LArOnlineID_Base.cxx:1957
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:102
LArOnlineID_Base::m_slot_impl
IdDictFieldImplementation m_slot_impl
Definition: LArOnlineID_Base.h:517
LArOnlineID_Base::HashCalc
Define the Hash identifier for channels and febs.
Definition: LArOnlineID_Base.h:527
LArOnlineID_Base::m_laronline_impl
IdDictFieldImplementation m_laronline_impl
Definition: LArOnlineID_Base.h:513
LArOnlineID_Base::calibChannelHashMax
size_type calibChannelHashMax() const
Define calibration channel hash tables max size.
Definition: LArOnlineID_Base.h:686
LArOnlineID_Base::feb_begin
id_iterator feb_begin() const
Returns an iterator pointing to a feb identifier collection.
Definition: LArOnlineID_Base.cxx:1906
LArOnlineID_Base::feedthrough_begin
id_iterator feedthrough_begin() const
Return an iterator pointing to Feedthrough identifiers collection.
Definition: LArOnlineID_Base.cxx:1431
LArOnlineID_Base::isFcalOnline
bool isFcalOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1728
LArOnlineID_Base::calib_module_Id
HWIdentifier calib_module_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Build calibration module identifier from fields.
Definition: LArOnlineID_Base.h:575
LArOnlineID_Base::m_laronline_index
size_type m_laronline_index
Definition: LArOnlineID_Base.h:482
LArOnlineID_Base::m_dict
const IdDictDictionary * m_dict
Definition: LArOnlineID_Base.h:490
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
LArOnlineID_Base::feedthroughContext
IdContext feedthroughContext() const
Define context for feedthroughs.
Definition: LArOnlineID_Base.cxx:258
LArOnlineID_Base::m_side_impl
IdDictFieldImplementation m_side_impl
Definition: LArOnlineID_Base.h:515
HWIdentifier
Definition: HWIdentifier.h:13
LArOnlineID_Base::barrel_ec
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
Definition: LArOnlineID_Base.cxx:1938
LArOnlineID_Base::channel_end
id_iterator channel_end() const
Definition: LArOnlineID_Base.cxx:1927
LArOnlineID_Base::id_iterator
std::vector< HWIdentifier >::const_iterator id_iterator
Type for iterators over identifiers.
Definition: LArOnlineID_Base.h:111
LArOnlineID_Base::m_feedthroughHashMax
size_type m_feedthroughHashMax
Definition: LArOnlineID_Base.h:495
LArOnlineID_Base::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr)
initialization from the identifier dictionary
Definition: LArOnlineID_Base.cxx:317
LArOnlineID_Base::m_calib_channel_vec
std::vector< HWIdentifier > m_calib_channel_vec
Definition: LArOnlineID_Base.h:509
LArOnlineID_Base::m_bec_slot_impl
IdDictFieldImplementation m_bec_slot_impl
Definition: LArOnlineID_Base.h:520
LArOnlineID_Base::m_calibModuleHashMax
size_type m_calibModuleHashMax
Definition: LArOnlineID_Base.h:506
IdDictDefs.h
LArOnlineID_Base::~LArOnlineID_Base
~LArOnlineID_Base()
Default destructor.
AtlasDetectorID::size_type
Identifier::size_type size_type
Definition: AtlasDetectorID.h:391
LArOnlineID_Base::m_feb_hash_calcs
std::vector< HashCalcFeb > m_feb_hash_calcs
Definition: LArOnlineID_Base.h:539
LArOnlineID_Base::channelHashMax
size_type channelHashMax() const
Define channel hash tables max size.
Definition: LArOnlineID_Base.cxx:1897
LArOnlineID_Base::isFCALchannel
bool isFCALchannel(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1653
LArOnlineID_Base::is_slar
int is_slar(const HWIdentifier id) const
Return whether the channel is in slar or not is_ slar = [0,1] in all FEB.
Definition: LArOnlineID_Base.cxx:1969
LArOnlineID_Base::m_channel_in_slot_impl
IdDictFieldImplementation m_channel_in_slot_impl
Definition: LArOnlineID_Base.h:518
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
IdDictMgr
Definition: IdDictMgr.h:14
LArOnlineID_Base::id_range
boost::iterator_range< id_iterator > id_range
Type for range over identifiers.
Definition: LArOnlineID_Base.h:113
LArOnlineID_Base::m_full_feedthrough_range
MultiRange m_full_feedthrough_range
Definition: LArOnlineID_Base.h:492
LArOnlineID_Base::channel
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Definition: LArOnlineID_Base.cxx:1963
LArOnlineID_Base::feb_range
id_range feb_range() const
Definition: LArOnlineID_Base.cxx:1916
LArOnlineID_Base::m_febHashMax
size_type m_febHashMax
Definition: LArOnlineID_Base.h:496
LArOnlineID_Base::feedthrough_Hash
IdentifierHash feedthrough_Hash(HWIdentifier feedthroughId) const
Create hash id from feedthrough identifiers.
Definition: LArOnlineID_Base.cxx:1412
LArOnlineID_Base::channel_range
id_range channel_range() const
Definition: LArOnlineID_Base.cxx:1932
LArOnlineID_Base::m_slar_index
size_type m_slar_index
Definition: LArOnlineID_Base.h:488
LArOnlineID_Base::channelInSlotMax
int channelInSlotMax(const HWIdentifier Id) const
Return the Maximum channel number of a given feb slot.
Definition: LArOnlineID_Base.cxx:289
LArOnlineID_Base::isHECchannel
virtual bool isHECchannel(const HWIdentifier id) const =0
LArOnlineID_Base::m_calibChannelHashMax
size_type m_calibChannelHashMax
Definition: LArOnlineID_Base.h:507
LArOnlineID_Base::channelContext
IdContext channelContext() const
Define context for channel.
Definition: LArOnlineID_Base.cxx:269
LArOnlineID_Base::isEMECOW
virtual bool isEMECOW(const HWIdentifier id) const =0
LArOnlineID_Base::isEMECPS
bool isEMECPS(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1671
LArOnlineID_Base::get_expanded_id
int get_expanded_id(const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
create expanded HWIdentifier from HWIdentifier (return == 0 for OK)
Definition: LArOnlineID_Base.cxx:790
LArOnlineID_Base::calib_module_Hash
IdentifierHash calib_module_Hash(HWIdentifier calibModuleId) const
create calibration module_hash identifier from module Identifier
Definition: LArOnlineID_Base.h:614
LArOnlineID_Base::channel_Id
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
Definition: LArOnlineID_Base.cxx:1565
LArOnlineID_Base::pos_neg
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...
Definition: LArOnlineID_Base.cxx:1950
LArOnlineID_Base::isEmEndcapStandardOnline
bool isEmEndcapStandardOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1748
mc.group_name
group_name
Definition: mc.PhPy8EG_A14NNPDF23_NNLOPS_example.py:33
LArOnlineID_Base::initLevelsFromDict
int initLevelsFromDict(const std::string &group_name)
Definition: LArOnlineID_Base.cxx:843
LArOnlineID_Base::init_calib_hashes
int init_calib_hashes()
Definition: LArOnlineID_Base.cxx:1977
AtlasDetectorID::group
const std::string & group() const
Group name for this helper.
Definition: AtlasDetectorID.cxx:27
LArOnlineID_Base::m_channelHashMax
size_type m_channelHashMax
Definition: LArOnlineID_Base.h:497
LArOnlineID_Base::m_full_calib_laronline_range
MultiRange m_full_calib_laronline_range
Definition: LArOnlineID_Base.h:504
LArOnlineID_Base::isEndcapOnline
bool isEndcapOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1722
LArOnlineID_Base::febContext
IdContext febContext() const
Define context for feb.
Definition: LArOnlineID_Base.cxx:279
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:121
LArOnlineID_Base::isValidId
bool isValidId(const HWIdentifier id) const
Returns false if the identifier is not a LAr-online id or any of the sub-fields is out of range.
Definition: LArOnlineID_Base.cxx:1329
LArOnlineID_Base::m_lar_index
size_type m_lar_index
Definition: LArOnlineID_Base.h:481
LArOnlineID_Base::isHecOnline
bool isHecOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1833
LArOnlineID_Base::feb_Id
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
Definition: LArOnlineID_Base.cxx:1479
LArOnlineID_Base::m_feedthrough_index
size_type m_feedthrough_index
Definition: LArOnlineID_Base.h:485
LArOnlineID_Base::m_bec_index
size_type m_bec_index
Definition: LArOnlineID_Base.h:483
LArOnlineID_Base::channel_Hash_binary_search
IdentifierHash channel_Hash_binary_search(HWIdentifier channelId) const
Definition: LArOnlineID_Base.h:562
LArOnlineID_Base::febHashMax
size_type febHashMax() const
define feb hash tables max size
Definition: LArOnlineID_Base.cxx:1892
LArOnlineID_Base::feb_end
id_iterator feb_end() const
Definition: LArOnlineID_Base.cxx:1911
LArOnlineID_Base::m_feedthrough_vec
std::vector< HWIdentifier > m_feedthrough_vec
Definition: LArOnlineID_Base.h:499
LArOnlineID_Base::m_lar_impl
IdDictFieldImplementation m_lar_impl
Field Implementation.
Definition: LArOnlineID_Base.h:512
LArOnlineID_Base
Helper for the Liquid Argon Calorimeter cell identifiers.
Definition: LArOnlineID_Base.h:105
LArOnlineID_Base::feb_Hash_binary_search
IdentifierHash feb_Hash_binary_search(HWIdentifier channelId) const
Definition: LArOnlineID_Base.h:551
MultiRange
A MultiRange combines several Ranges.
Definition: MultiRange.h:17
HWIdentifier.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArOnlineID_Base::isEMECchannel
virtual bool isEMECchannel(const HWIdentifier id) const =0
IdentifierHash.h
LArOnlineID_Base::feedthroughHashMax
size_type feedthroughHashMax() const
Define feedthrough hash tables max size.
Definition: LArOnlineID_Base.cxx:1887
LArOnlineID_Base::HashCalc::m_hash
IdentifierHash m_hash
Definition: LArOnlineID_Base.h:530
LArOnlineID_Base::calib_channel_end
id_iterator calib_channel_end() const
Definition: LArOnlineID_Base.h:718
LArOnlineID_Base::isCalibration
bool isCalibration(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1783
Range
A Range describes the possible ranges for the field values of an ExpandedIdentifier.
Definition: DetectorDescription/Identifier/Identifier/Range.h:29
LArOnlineID_Base::calib_channel_begin
id_iterator calib_channel_begin() const
Return an iterator pointing to a collection of calibration channel identifiers.
Definition: LArOnlineID_Base.h:713
LArOnlineID_Base::calibModuleHashMax
size_type calibModuleHashMax() const
Define calibration module hash tables max size.
Definition: LArOnlineID_Base.h:681
LArOnlineID_Base::cryostatEndContext
IdContext cryostatEndContext() const
Define context for cryostat (obsolete)
Definition: LArOnlineID_Base.cxx:248
LArOnlineID_Base::isEmEndcapSpecialOnline
bool isEmEndcapSpecialOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1771
LArOnlineID_Base::isEMBchannel
bool isEMBchannel(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1648
LArOnlineID_Base::m_chan_hash_calcs
std::vector< HashCalc > m_chan_hash_calcs
Definition: LArOnlineID_Base.h:540
IdDictDictionary
Definition: IdDictDictionary.h:30
LArOnlineID_Base::m_bec_impl
IdDictFieldImplementation m_bec_impl
Definition: LArOnlineID_Base.h:514
IdDictFieldImplementation.h
LArOnlineID_Base::calib_channel_range
id_range calib_channel_range() const
Definition: LArOnlineID_Base.h:723
LArOnlineID_Base::channel_Id_checks
void channel_Id_checks(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
Definition: LArOnlineID_Base.cxx:683
LArOnlineID_Base::get_expanded_calib_id
int get_expanded_calib_id(const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
Definition: LArOnlineID_Base.cxx:817
LArOnlineID_Base::feedthrough
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
Definition: LArOnlineID_Base.cxx:1944
LArOnlineID_Base::feedthrough_Id_checks
void feedthrough_Id_checks(int barrel_ec, int pos_neg, int feedthrough) const
Definition: LArOnlineID_Base.cxx:771
LArOnlineID_Base::m_full_feb_range
MultiRange m_full_feb_range
Definition: LArOnlineID_Base.h:493
LArOnlineID_Base::m_feb_vec
std::vector< HWIdentifier > m_feb_vec
Definition: LArOnlineID_Base.h:500
LArOnlineID_Base::m_full_channel_range
MultiRange m_full_channel_range
Definition: LArOnlineID_Base.h:494
LArOnlineID_Base::feedthrough_end
id_iterator feedthrough_end() const
Definition: LArOnlineID_Base.cxx:1437
LArOnlineID_Base::calib_module_begin
id_iterator calib_module_begin() const
Return an iterator pointing to a calibFeb identifier 's collection.
Definition: LArOnlineID_Base.h:697
LArOnlineID_Base::m_full_laronline_range
MultiRange m_full_laronline_range
Definition: LArOnlineID_Base.h:491
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
LArOnlineID_Base::isEMBPS
bool isEMBPS(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1661
LArOnlineID_Base::HashCalc::HashCalc
HashCalc()
Definition: LArOnlineID_Base.h:529
LArOnlineID_Base::NOT_VALID_HASH
@ NOT_VALID_HASH
Definition: LArOnlineID_Base.h:444
LArOnlineID_Base::isPS
bool isPS(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1677
LArOnlineID_Base::m_full_calib_module_range
MultiRange m_full_calib_module_range
Definition: LArOnlineID_Base.h:505
LArOnlineID_Base::m_slot_index
size_type m_slot_index
Definition: LArOnlineID_Base.h:486
LArOnlineID_Base::calib_module_end
id_iterator calib_module_end() const
Definition: LArOnlineID_Base.h:702
LArOnlineID_Base::isEmEndcapOnline
bool isEmEndcapOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1733
LArOnlineID_Base::isNotWarmCableConnected
bool isNotWarmCableConnected(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1684
LArOnlineID_Base::m_channel_in_slot_index
size_type m_channel_in_slot_index
Definition: LArOnlineID_Base.h:487
Identifier::size_type
unsigned long long size_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:29
IdDictFieldImplementation
IdDictFieldImplementation is used to capture the specification of a single field of an Identifier.
Definition: IdDictFieldImplementation.h:58
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
LArOnlineID_Base::calib_module_range
id_range calib_module_range() const
Definition: LArOnlineID_Base.h:707
LArOnlineID_Base::channel_name
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Definition: LArOnlineID_Base.cxx:221
LArOnlineID_Base::calib_channel_Hash
IdentifierHash calib_channel_Hash(HWIdentifier channelId) const
Definition: LArOnlineID_Base.h:670
LArOnlineID_Base::m_calib_module_vec
std::vector< HWIdentifier > m_calib_module_vec
Definition: LArOnlineID_Base.h:508
LArOnlineID_Base::HashCalcFeb
Definition: LArOnlineID_Base.h:533
LArOnlineID_Base::m_laronlineRegion_index
size_type m_laronlineRegion_index
Definition: LArOnlineID_Base.h:480
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
LArOnlineID_Base::calib_channel_Id
HWIdentifier calib_channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create calibration channel identifiers from fields
Definition: LArOnlineID_Base.h:624
CLASS_DEF.h
macros to associate a CLID to a type
LArOnlineID_Base::isEMECinHECchannel
bool isEMECinHECchannel(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1873
LArOnlineID_Base::m_bec_ft_impl
IdDictFieldImplementation m_bec_ft_impl
Definition: LArOnlineID_Base.h:519
LArOnlineID_Base::channel_begin
id_iterator channel_begin() const
Returns an iterator pointing to a channel identifier collection.
Definition: LArOnlineID_Base.cxx:1922
LArOnlineID_Base::feb_Hash
IdentifierHash feb_Hash(HWIdentifier febId) const
Create feb hash identifiers from feb identifiers.
Definition: LArOnlineID_Base.cxx:1512
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
LArOnlineID_Base::isEmBarrelOnline
bool isEmBarrelOnline(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1716
LArOnlineID_Base::feedthrough_Id
HWIdentifier feedthrough_Id(int barrel_ec, int pos_neg, int feedthrough) const
Create a feedthrough identifier from fields.
Definition: LArOnlineID_Base.cxx:1400
LArOnlineID_Base::m_this_is_slar
bool m_this_is_slar
Definition: LArOnlineID_Base.h:445
LArOnlineID_Base::init_hashes
int init_hashes()
Definition: LArOnlineID_Base.cxx:1126