 |
ATLAS Offline Software
|
Go to the documentation of this file.
36 return idhelper->
side (
id);
53 const std::string&
name,
56 m_cell_helper(nullptr),
73 return StatusCode::SUCCESS;
104 float inv_cell_etasize = 1. / cell_etasize;
110 if (inv_cell_etasize < 0)
break;
112 float inv_cell_phisize = 1. / cell_phisize;
114 float cell_etamax = cell_etamin +
115 cell_etasize*(cell_ietamax - cell_ietamin + 1);
131 float sc_etamax= sc_etamin + sc_etasize*(sc_ietamax - sc_ietamin + 1);
135 float etamax =
std::min (cell_etamax, sc_etamax);
142 elt.
m_etadiv =
int (sc_etasize * inv_cell_etasize + 0.1);
143 elt.
m_phidiv =
int (sc_phisize * inv_cell_phisize + 0.1);
159 const float inv_sc_etasize = 1. / sc_etasize;
202 std::format(
" {:3d} {}/{:2d}/{:2d}/{} {:3d} {}/{:2d}/{:2d}/{} {} {} {:3d} {:3d} {:3d} {:3d} {:3d} {:3d}\n",
203 static_cast<int>(elt.m_cell_reg),
208 static_cast<int>(elt.m_sc_reg),
213 elt.m_etadiv, elt.m_phidiv,
214 elt.m_cell_ietamin, elt.m_cell_ietamax,
215 elt.m_sc_ietamin, elt.m_sc_ietamax,
216 elt.m_cell_ieta_adj, elt.m_sc_ieta_adj);
260 const int sc_phi = fcal_helper->
phi (cell_id);
261 const int sc_lay = fcal_helper->
module (cell_id);
262 const int cell_ieta = fcal_helper->
eta (cell_id);
263 int sc_pn = fcal_helper->
pos_neg( cell_id );
266 sc_ieta = cell_ieta / 4;
268 else if (sc_lay==2) {
269 sc_ieta = cell_ieta / 4;
271 else if (sc_lay==1) {
274 else if (cell_ieta < 24)
277 sc_ieta = 2 + (cell_ieta-24)/4;
288 msg(
MSG::DEBUG) <<
"\n LArFCAL ---------------------------\n";
293 std::format(
" {:5d} {:2d}/{:2d}/{:2d}/{:2d} ... {:2d} cells\n",
294 static_cast<int>(sc_hash),
295 static_cast<int>(sfcal_helper->
pos_neg(sc_id)),
296 static_cast<int>(sfcal_helper->
module(sc_id)),
297 static_cast<int>(sfcal_helper->
eta(sc_id)),
298 static_cast<int>(sfcal_helper->
phi(sc_id)),
299 static_cast<int>(
cells.size()));
342 }
while (ndx < (
int)
m_idmap.size() &&
m_idmap[ndx].m_cell_reg == rhash);
386 int sample_sc = sample_offline;
405 std::vector<Identifier>
408 std::vector<Identifier>
out;
426 for (; ndx <
end; ++ndx) {
443 for (; ieta <= ietamax; ++ieta) {
473 out.push_back (cell_id);
479 out.push_back (cell_id);
482 out.push_back (cell_id);
489 out.push_back (cell_id);
493 out.push_back (cell_id);
495 out.push_back (cell_id);
510 std::vector<Identifier>
513 std::vector<Identifier>
out;
521 m_idmap[ndx].m_cell_reg == rhash)
538 std::vector<Identifier>
541 std::vector<Identifier>
out;
548 for (; ndx <
end; ++ndx) {
549 if (
m_idmap[ndx].m_sc_reg == rhash)
def retrieve(aClass, aKey=None)
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int tower(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
int pos_neg(const Identifier id) const
pos_neg : +/- 2 (A/C side)
size_type channel_hash_max() const
One more than the largest channel (cell) hash code.
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
Identifier region_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy) const
Make a region ID from constituting fields and subCalo index; for (Mini)FCAL and Tiles,...
id_range reg_range() const
Range over set of region Identifiers (LAr + Tiles)
int module(const Identifier id) const
module [1,3]
IdentifierHash channel_hash(Identifier channelId) const
Convert a connected channel (cell) Identifier to a hash code.
int eta_max(const Identifier regId) const
max value of eta index (-999 == failure)
bool is_tile(const Identifier id) const
test if the id belongs to the Tiles
int module(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
bool is_hec(const Identifier id) const
test if the id belongs to the HEC
int eta(const Identifier id) const
eta [0,63] module 1 ; [0,31] module 2 ; [0,15] module 3
const LArFCAL_SuperCell_ID * fcal_idHelper() const
access to FCAL idHelper
id_range fcal_range() const
Range over full set of FCAL Identifiers.
IdentifierHash calo_region_hash(const Identifier regionId) const
create hash id from 'global' region id
int phi(const Identifier id) const
phi [0,15]
Identifier region_id(int index) const
build single region, module, tower, cell, pmt, adc identifiers
bool is_em(const Identifier id) const
test if the id belongs to LArEM
size_type calo_region_hash_max() const
cell 'global' region table max size
float eta0(const Identifier regId) const
minimum LAr eta for this region
int sample(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
bool is_fcal(const Identifier id) const
test if the id belongs to the FCAL - true also for MiniFCAL
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
::StatusCode StatusCode
StatusCode definition for legacy code.
Identifier channel_id(const ExpandedIdentifier &exp_id) const
cell identifier for a channel from ExpandedIdentifier
This class factors out code common between TileID and Tile_SuperCell_ID.
Helper base class for offline cell identifiers.
Helper class for offline supercell identifiers.
int eta(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int sub_calo(const Identifier id) const
returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs.
#define CHECK(...)
Evaluate an expression and check for errors.
float phiGranularity(const Identifier regId) const
LAr phi granularity (NOT_VALID == failure)
int eta_min(const Identifier regId) const
min value of eta index (-999 == failure)
Helpers for checking error return status codes and reporting errors.
int phi(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
Identifier cell_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy, const int eta, const int phi) const
Make a cell (== channel) ID from constituting fields and subCalo index; for (Mini)FCAL,...
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Identifier cell_id(const Identifier &any_id) const
Helper class for LArFCAL offline identifiers.
Helper base class for offline cell identifiers.
const TileID * tile_idHelper() const
access to Tile idHelper
const LArFCAL_ID * fcal_idHelper() const
access to FCAL idHelper
int section(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
float etaGranularity(const Identifier regId) const
LAr eta granularity (NOT_VALID == failure)