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.
16//----------------------------------------------------------------------------
18LArFCAL_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//----------------------------------------------------------------------------
26LArFCAL_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//----------------------------------------------------------------------------
36LArFCAL_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);
56LArFCAL_Base_ID::module_id (int pos_neg, int module) const
58 return module_id (pos_neg, module, do_checks());
61//----------------------------------------------------------------------------
63LArFCAL_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);
85LArFCAL_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//----------------------------------------------------------------------------
94LArFCAL_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//----------------------------------------------------------------------------
107LArFCAL_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);
128LArFCAL_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//----------------------------------------------------------------------------
135inline Identifier LArFCAL_Base_ID::module_id (IdentifierHash module_hash_id) const
137 return region_id (module_hash_id);
140//----------------------------------------------------------------------------
141inline IdentifierHash LArFCAL_Base_ID::module_hash (Identifier module_id) const
143 return region_hash (module_id);
146//----------------------------------------------------------------------------
147inline IdentifierHash LArFCAL_Base_ID::channel_hash_binary_search (Identifier channelId) const
149 return channel_hash (channelId);
152//----------------------------------------------------------------------------
153inline LArFCAL_Base_ID::size_type LArFCAL_Base_ID::module_hash_max () const
155 return region_hash_max();
158//----------------------------------------------------------------------------
159inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::mod_begin () const
161 return regions().begin();
164//----------------------------------------------------------------------------
165inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::mod_end () const
167 return regions().end();
170//----------------------------------------------------------------------------
171inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::mod_range () const
173 return regions().range();
176//----------------------------------------------------------------------------
177inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::fcal_begin () const
179 return channels().begin();
182//----------------------------------------------------------------------------
183inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::fcal_end () const
185 return channels().end();
188//----------------------------------------------------------------------------
189inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::fcal_range () const
191 return channels().range();
194//----------------------------------------------------------------------------
195inline const std::vector<Identifier>& LArFCAL_Base_ID::channel_ids() const
197 return channels().ids();
200//----------------------------------------------------------------------------
201inline int LArFCAL_Base_ID::pos_neg (const Identifier id)const
203 return (m_pn_impl.unpack(id));
206//----------------------------------------------------------------------------
207inline int LArFCAL_Base_ID::module (const Identifier id)const
209 return (m_module_impl.unpack(id));
212//----------------------------------------------------------------------------
213inline int LArFCAL_Base_ID::eta (const Identifier id)const
215 int result = m_eta_impl.unpack(id);
219//----------------------------------------------------------------------------
220inline int LArFCAL_Base_ID::phi(const Identifier id)const
222 int result = m_phi_impl.unpack(id);
226//----------------------------------------------------------------------------
227inline 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]);