2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 * @file CaloIdentifier/LArFCAL_Base_ID.icc
6 * @author naoko kanaya <nkanaya@cern.ch>
8 * @brief Inline implementations for LArFCAL_Base_ID.
12 //--------------------
14 //--------------------
16 //----------------------------------------------------------------------------
18 LArFCAL_Base_ID::module_id (const ExpandedIdentifier& exp_id) const
20 return this->module_id ( exp_id[m_POSNEG_INDEX],
21 exp_id[m_MODULE_INDEX] );
24 //----------------------------------------------------------------------------
26 LArFCAL_Base_ID::channel_id (const ExpandedIdentifier& exp_id) const
28 return this->channel_id (exp_id[m_POSNEG_INDEX],
29 exp_id[m_MODULE_INDEX],
34 //----------------------------------------------------------------------------
36 LArFCAL_Base_ID::module_id (int pos_neg, int module, bool checks) const
40 module_id_checks ( pos_neg, module );
45 // Pack fields independently
46 m_lar_impl.pack (lar_field_value(), result);
47 m_fcal_impl.pack (lar_fcal_field_value(), result);
48 m_pn_impl.pack (pos_neg, result);
49 m_module_impl.pack (module, result);
50 m_slar_impl.pack (m_slar, result);
56 LArFCAL_Base_ID::module_id (int pos_neg, int module) const
58 return module_id (pos_neg, module, do_checks());
61 //----------------------------------------------------------------------------
63 LArFCAL_Base_ID::channel_id ( int pos_neg, int module,
64 int eta, int phi, bool checks ) const
68 channel_id_checks( pos_neg, module, eta, phi );
72 // Pack fields independently
73 m_lar_impl.pack (lar_field_value(), result);
74 m_fcal_impl.pack (lar_fcal_field_value(), result);
75 m_pn_impl.pack (pos_neg, result);
76 m_module_impl.pack (module, result);
77 m_eta_impl.pack (eta, result);
78 m_phi_impl.pack (phi, result);
79 m_slar_impl.pack (m_slar, result);
85 LArFCAL_Base_ID::channel_id ( int pos_neg, int module,
86 int eta, int phi ) const
88 return channel_id (pos_neg, module, eta, phi, do_checks());
92 //----------------------------------------------------------------------------
94 LArFCAL_Base_ID::module_id ( const Identifier channelId ) const
97 Identifier result(channelId);
99 m_eta_impl.reset(result);
100 m_phi_impl.reset(result);
101 m_slar_impl.pack(m_slar,result);
105 //----------------------------------------------------------------------------
107 LArFCAL_Base_ID::channel_id ( const Identifier module_id,
108 int eta, int phi, bool checks ) const
112 channel_id_checks( module_id, eta, phi );
115 Identifier result(module_id);
117 // Reset the fields and then set the values
118 m_eta_impl.reset (result);
119 m_phi_impl.reset (result);
120 m_eta_impl.pack (eta, result);
121 m_phi_impl.pack (phi, result);
122 m_slar_impl.pack (m_slar, result);
128 LArFCAL_Base_ID::channel_id ( const Identifier module_id,
129 int eta, int phi ) const
131 return channel_id (module_id, eta, phi, do_checks());
134 //----------------------------------------------------------------------------
135 inline Identifier LArFCAL_Base_ID::module_id (IdentifierHash module_hash_id) const
137 return region_id (module_hash_id);
140 //----------------------------------------------------------------------------
141 inline IdentifierHash LArFCAL_Base_ID::module_hash (Identifier module_id) const
143 return region_hash (module_id);
146 //----------------------------------------------------------------------------
147 inline IdentifierHash LArFCAL_Base_ID::channel_hash_binary_search (Identifier channelId) const
149 return channel_hash (channelId);
152 //----------------------------------------------------------------------------
153 inline LArFCAL_Base_ID::size_type LArFCAL_Base_ID::module_hash_max () const
155 return region_hash_max();
158 //----------------------------------------------------------------------------
159 inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::mod_begin () const
161 return regions().begin();
164 //----------------------------------------------------------------------------
165 inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::mod_end () const
167 return regions().end();
170 //----------------------------------------------------------------------------
171 inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::mod_range () const
173 return regions().range();
176 //----------------------------------------------------------------------------
177 inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::fcal_begin () const
179 return channels().begin();
182 //----------------------------------------------------------------------------
183 inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::fcal_end () const
185 return channels().end();
188 //----------------------------------------------------------------------------
189 inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::fcal_range () const
191 return channels().range();
194 //----------------------------------------------------------------------------
195 inline const std::vector<Identifier>& LArFCAL_Base_ID::channel_ids() const
197 return channels().ids();
200 //----------------------------------------------------------------------------
201 inline int LArFCAL_Base_ID::pos_neg (const Identifier id)const
203 return (m_pn_impl.unpack(id));
206 //----------------------------------------------------------------------------
207 inline int LArFCAL_Base_ID::module (const Identifier id)const
209 return (m_module_impl.unpack(id));
212 //----------------------------------------------------------------------------
213 inline int LArFCAL_Base_ID::eta (const Identifier id)const
215 int result = m_eta_impl.unpack(id);
219 //----------------------------------------------------------------------------
220 inline int LArFCAL_Base_ID::phi(const Identifier id)const
222 int result = m_phi_impl.unpack(id);
226 //----------------------------------------------------------------------------
227 inline int LArFCAL_Base_ID::phi_min(const Identifier modId) const
229 IdentifierHash modHash = module_hash(modId);
230 unsigned int index = modHash;
231 return (m_vecOfPhiMin[index]);