|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #ifndef CALOIDENTIFIER_LARHEC_BASE_ID_H
17 #define CALOIDENTIFIER_LARHEC_BASE_ID_H
29 #include "boost/range/iterator_range.hpp"
66 int eta,
int phi,
bool checks)
const;
84 int eta,
int phi_sector )
const;
95 int eta,
int phi,
bool checks)
const;
176 std::vector<IdentifierHash>& neighbourList)
const;
231 int& neighbourIndex,
IdentifierHash* neighbList,
unsigned int& nBiggerCell)
const;
234 int& neighbourIndex,
IdentifierHash* neighbList,
unsigned int& nBiggerCell)
const;
306 #endif // LARHEC_BASE_ID_H
IdDictFieldImplementation m_sampling_impl
Identifier channel_id(const Identifier regionId, int eta, int phi) const
allows to build a channel id starting from a region id (e.g.
IdDictFieldImplementation m_pn_reg_impl
IdDictFieldImplementation m_hec_impl
int eta(const Identifier id) const
return eta [0,9] outer part [0,3] inner part
id_iterator reg_begin(void) const
begin iterator over set of region Identifiers
std::vector< short int > m_vecOfCellInfo
void region_id_checks(int pos_neg, int sampling, int region) const
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
int get_nextInEta(const LArHEC_region *hecRegion, const unsigned int &index, const short int &nPhi, const float &gPhi, const unsigned int &maxHash, int &neighbourIndex, IdentifierHash *neighbList, unsigned int &nBiggerCell) const
IdDictFieldImplementation m_phi_impl
int initLevelsFromDict(const std::string &group_name)
id_iterator reg_end(void) const
end iterator over set of region Identifiers
Identifier region_id(IdentifierHash hashId) const
Return the region Identifier for a given hash code (no checking).
const std::vector< Identifier > & region_ids() const
provide access to region id vector, accessed via hash
int eta_max(const Identifier regId) const
max value of eta index (-999 == failure)
Identifier channel_id(int pos_neg, int sampling, int region, int eta, int phi, bool checks) const
id_range hec_range() const
Range over full set of HEC Identifiers.
small class holding the starting hash value, the min eta and the number of phi bins of each region
Identifier region_id(const ExpandedIdentifier &exp_id) const
region identifier for a channel from ExpandedIdentifier
id_iterator hec_end(void) const
end iterator over full set of Hec Identifiers for channels
virtual int get_expanded_id(const Identifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
create expanded Identifier from Identifier (return == 0 for OK)
id_range reg_range() const
Range over set of Region Identifiers.
constexpr int nPhi
Default bin number of phi for vertex map.
Identifier region_id(int pos_neg, int sampling, int region) const
build a region identifier for a channel
std::vector< short int > m_vecOfPhiMin
Identifier::size_type size_type
static int get_prevInPhi(const LArHEC_region *hecRegion, const unsigned int &index, const short int &nPhi, const unsigned int &minHash, int &neighbourIndex, IdentifierHash *neighbList)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
IdentifierHash channel_hash_binary_search(Identifier channelId) const
create hash id from channel id – method NOT optimised, please use channel_hash() above
size_type m_hec_region_index
This class provides an interface to deal with regions in the neighbours finding
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,...
Base class to factor out code common among Calo ID helpers.
IdDictFieldImplementation m_pn_impl
IdDictFieldImplementation m_region_impl
int initialize_base_from_dictionary(const IdDictMgr &dict_mgr, const std::string &group_name)
initialization from the identifier dictionary
int phi_min(const Identifier regId) const
min value of phi index (-999 == failure)
bool twoSymSides() const
True if the + and - sides of the calorimeter are identical (true layout).
Identifier region_id(int pos_neg, int sampling, int region, bool checks) const
int get_nextInSamp(const LArHEC_region *hecRegion, const unsigned int &index, const short int &nPhi, const unsigned int &minHash, const double &absEta, int &neighbourIndex, IdentifierHash *neighbList) const
Identifier channel_id(int pos_neg, int sampling, int region, int eta, int phi) const
build a cell identifier for a channel
int phi_min_init(const Identifier regId) const
int eta_min(const Identifier regId) const
min value of eta index (-999 == failure)
IdentifierHash channel_hash(Identifier channelId) const
create hash id from channel id
void channel_id_checks(int pos_neg, int sampling, int region, int eta, int phi) const
IdDictFieldImplementation m_slar_impl
IdDictFieldImplementation m_lar_impl
Identifier region_id(const Identifier channelId) const
allows to know in which region is a channel/cell – valid for both kinds of channels
int get_prevInEta(const LArHEC_region *hecRegion, const unsigned int &index, const short int &nPhi, const float &gPhi, const unsigned int &minHash, int &neighbourIndex, IdentifierHash *neighbList, unsigned int &nBiggerCell) const
A MultiRange combines several Ranges.
std::vector< HashCalc > m_hash_calcs
LArHEC_Base_ID(const std::string &name, bool supercell)
Constructor.
const std::string & name() const
Return the name for this helper.
MultiRange m_full_region_range
Identifier channel_id(const ExpandedIdentifier &exp_id) const
channel identifier for a channel from ExpandedIdentifier
id_iterator hec_begin(void) const
begin iterator over full set of Hec Identifiers for channels
size_type m_SAMPLING_INDEX
A Range describes the possible ranges for the field values of an ExpandedIdentifier.
static int get_nextInPhi(const LArHEC_region *hecRegion, const unsigned int &index, const short int &nPhi, const unsigned int &minHash, int &neighbourIndex, IdentifierHash *neighbList)
bool is_supercell(const Identifier id) const
Test if the identifier represents a supercell.
Base class to factor out code common among Calo ID helpers.
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
bool absEta(const xAOD::TauJet &tau, double &out)
int pos_neg(const Identifier id) const
return pos_neg -2 (C side) or 2 (A side)
MultiRange m_full_channel_range
std::vector< LArHEC_region * > m_vecOfRegions
boost::iterator_range< id_iterator > id_range
Type for range over identifiers.
Identifier channel_id(const Identifier regionId, int eta, int phi, bool checks) const
IdDictFieldImplementation is used to capture the specification of a single field of an Identifier.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
std::vector< Identifier >::const_iterator id_iterator
Type for iterators over identifiers.
const std::vector< Identifier > & channel_ids() const
provide access to channel id vector, accessed via hash
int get_prevInSamp(const LArHEC_region *hecRegion, const unsigned int &index, const short int &nPhi, const unsigned int &minHash, const double &absEta, int &neighbourIndex, IdentifierHash *neighbList) const
int phi_max(const Identifier regId) const
max value of phi index (-999 == failure)
int region(const Identifier id) const
return region [0,1]
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
IdDictFieldImplementation m_eta_impl
macros to associate a CLID to a type
int phi(const Identifier id) const
return phi[0,63] outer part [0,31] inner part
Identifier channel_id(IdentifierHash hashId) const
Return the channel (cell) Identifier for a given hash code (no checking).