Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
26 m_fcalHelper(fcal_id),
27 m_minifcalHelper(minifcal_id),
28 m_tileHelper(tile_id),
31 m_caloNeighbours (nullptr),
32 m_supercell(supercell ? 1 : 0)
124 std::string neighbourFile;
126 neighbourFile = dict_mgr.
find_metadata(
"FULLATLASNEIGHBORS");
130 neighbourFile =
"SuperCaloNeighborsSuperCells-April2014.dat";
132 if (neighbourFile.empty())
throw std::runtime_error(
"CaloCell_ID: Cannot find the CaloNeighbour file name");
192 std::vector<IdentifierHash>& neighbourList)
const
221 neighbourList.resize(0);
225 unsigned int shift = caloHashId - subHash;
226 int neighbourIndex = neighbourList.size();
228 if (neighbourIndex > 0) {
230 for (
int iN = 0 ; iN <neighbourIndex ; ++iN) {
231 neighbourList[iN] += shift;
255 std::ostringstream
s1;
257 s1 << (this->
pos_neg(
id) == 0 ?
"/C-SIDE" :
"/A-SIDE");
259 s1 <<
"/SECTION " << this->
section(
id) <<
"/SIDE " << this->
side(
id)
260 <<
"/MODULE " << this->
module(
id) <<
"/TOWER " << this->
tower(
id)
261 <<
"/SAMPLE " << this->
sample(
id);
264 s1 <<
"/REGION " << this->
region(
id) <<
"/IETA " << this->
eta(
id)
265 <<
"/iPHI " << this->
phi(
id);
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int initialize(const CaloCell_Base_ID *caloID, const std::string &filename)
int tower(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
bool is_lar_fcal(Identifier id) const
id_iterator end() const
Return an end iterator over the group's Identifiers.
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
bool is_tile_gap(const Identifier &id) const
bool is_em_endcap_outer(const Identifier id) const
test if the id belongs to the EM Endcap outer wheel
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
std::string cell_name(const Identifier id) const
Returns the cell-location in a human readable form.
size_type m_cell_max[NSUBCALO]
int sample(const Identifier &id) const
size_type m_cell_min[NSUBCALO]
id_iterator begin() const
Return a begin iterator over the group's Identifiers.
int module(const Identifier id) const
module [1,3]
int depth(const Identifier id) const
depth [0,3]
bool is_tile_extbarrel(const Identifier &id) const
int sampling(const Identifier id) const
return sampling according to :
IMessageSvc * m_msgSvc
pointer to the message service
const std::string & find_metadata(const std::string &name) const
Access to meta data, name/value pairs.
int get_nextInCalo(const IdentifierHash &id, std::vector< IdentifierHash > &neighbourList) const
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
int get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found option = all2D,...
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)
virtual bool do_neighbours(void) const override
Neighbour initialization is performed by default One can switch or query this mode for any idHelper w...
const HashGroup & regions() const
Return the HashGroup for regions.
const LArFCAL_Base_ID * fcal_idHelper() const
access to FCAL idHelper
size_type m_region_hash_max
const LArEM_Base_ID * em_idHelper() const
access to EM idHelper
const CaloIDHelper * m_helpers[NSUBCALO]
size_type m_cell_hash_max
int sample(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
int get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found option = prevInPhi,...
const LArMiniFCAL_ID * m_minifcalHelper
This class factors out code common between TileID and Tile_SuperCell_ID.
Helper base class for offline cell identifiers.
CaloNeighbours * m_caloNeighbours
int eta(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
IdentifierHash subcalo_cell_hash(const Identifier cellId, int &subCalo) const
create hash id from 'global' cell id
const LArMiniFCAL_ID * minifcal_idHelper() const
access to MiniFCAL idHelper
bool is_lar_hec(Identifier id) const
const LArHEC_Base_ID * m_hecHelper
const LArFCAL_Base_ID * m_fcalHelper
size_type m_reg_max[NSUBCALO]
int register_dict_tag(const IdDictMgr &dict_mgr, const std::string &dict_name)
Register the file and tag names for a particular IdDict dictionary.
CaloCell_Base_ID(const LArEM_Base_ID *em_id, const LArHEC_Base_ID *hec_id, const LArFCAL_Base_ID *fcal_id, const LArMiniFCAL_ID *minifcal_id, const Tile_Base_ID *tile_id, bool supercell)
enumeration of samplings (i.e.layers) separately for various sub calorimeters
bool is_lar_minifcal(Identifier id) const
int get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found option = prevInPhi,...
int get_neighbours(const IdentifierHash caloHash, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found
std::vector< Identifier > m_cell_vec
int phi(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int get_neighbours(const IdentifierHash &id, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found option = prevInPhi,...
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,...
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
const HashGroup & channels() const
Return the HashGroup for channels (cells).
int get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found option = all2D,...
bool reinitialize(const IdDictMgr &dict_mgr)
Test whether an idhelper should be reinitialized based on the change of tags.
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
Helper class for LArMiniFCAL offline identifiers.
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
const Tile_Base_ID * m_tileHelper
size_type m_reg_min[NSUBCALO]
static std::string getSamplingName(CaloSample theSample)
Returns a string (name) for each CaloSampling.
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
bool is_tile_barrel(const Identifier &id) const
Test of an Identifier to see if it belongs to a particular part of the calorimeter.
const Tile_Base_ID * tile_idHelper() const
access to Tile idHelper
int get_prevInCalo(const IdentifierHash &id, std::vector< IdentifierHash > &neighbourList) const
std::vector< Identifier > m_region_vec
const LArEM_Base_ID * m_emHelper
int section(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
const LArHEC_Base_ID * hec_idHelper() const
access to HEC idHelper
size_type hash_max() const
Return one more than the largest hash code.