12#ifndef CALODETDESCR_CALODETDESCRMANAGER_H
13#define CALODETDESCR_CALODETDESCRMANAGER_H
24class CaloCellPacker_400_500_test;
241 int sampling_or_module,
243 double eta,
double phi)
const;
259 double phi_min,
double phi_max,
260 std::vector<IdentifierHash> & cell_list)
const;
264 void cellsInZone(
double eta_min,
double eta_max,
double phi_min,
266 std::vector<IdentifierHash> & cell_list)
const;
270 void cellsInZone(
double eta_min,
double eta_max,
double phi_min,
272 std::vector<IdentifierHash> & cell_list)
const;
276 void cellsInZone(
double eta_min,
double eta_max,
double phi_min,
278 int sampling_or_module,
279 std::vector<IdentifierHash> & cell_list)
const;
285 int sampling_or_module,
bool barrel,
286 std::vector<IdentifierHash> & cell_list)
const;
290 void cellsInZone(
double eta_min,
double eta_max,
double phi_min,
292 std::vector<IdentifierHash> & cell_list)
const;
306 int sampling_or_module,
312 int& sampling_or_module,
354 int sampling_or_module,
361 double eta,
double phi)
const;
366 double eta,
double phi)
const;
403 void add(std::unique_ptr<CaloDetDescriptor> descr);
509 else return nullptr ;
517 else return nullptr ;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Tranform iterator over pointers to iterator over const pointers.
static constexpr const char * caloMgrStaticKey
Hold mappings of ranges to condition objects.
#define CONDCONT_DEF(...)
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Helper base class for offline cell identifiers.
Helper class for offline cell identifiers.
CaloCell_Base_ID::SUBCALO SUBCALO
CaloSampling::CaloSample CaloSample
Helper class for offline supercell identifiers.
Tranform iterator over pointers to iterator over const pointers.
This class groups all DetDescr information related to a CaloCell.
const CaloDetDescrElement * get_element_FCAL_raw(const CaloDetDescriptor *reg, double eta, double phi) const
LArFCAl private methode to get element from raw eta,phi.
static void build_sample(CaloCell_ID::SUBCALO subCalo, bool barrel, int sampling_or_module, CaloCell_ID::CaloSample &sample)
translate between the 2 ways to label a sub-detector:
CaloDetDescriptor * get_descriptor_nonconst(const Identifier ®ionId)
get descriptor by region identifier, non-const version.
CaloDetDescrElement * get_element_nonconst(const Identifier &cellId)
get element by its identifier, non-const version.
calo_element_const_iterator element_begin() const
first element
const std::string & lar_geometry() const
get lar geometry label, distinguish between full atlas and TB
std::ranges::subrange< calo_nonconst_element_const_iterator > calo_nonconst_element_range
calo_descr_const_iterator calo_descriptors_end() const
end of descriptors vector
calo_descr_const_iterator tile_descriptors_end() const
end of tile descriptors vector
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
calo_nonconst_element_range element_range_nonconst()
Range over element vector, with non-const elements.
std::string m_lar_geometry
LAr geometry label (full atlas/TB) for backwards compatibility.
std::vector< calo_element_const_iterator > m_subCalo_begin
offsets for subcalo's elements
void add_tile(CaloDetDescriptor *descr)
add tile descriptor to the tile descriptors vector
calo_descr_const_iterator tile_descriptors_begin() const
first tile descriptor (they are in separate vector)
CaloConstIteratorAdaptor< calo_element_vec::const_iterator > calo_element_const_iterator
calo_descr_vec::const_iterator calo_nonconst_descr_const_iterator
bool isInitialized() const
for backwards compatibility only
std::vector< IdentifierHash > m_subCalo_min
offsets for subcalo's elements
const CaloDetDescriptor * get_descriptor_raw(CaloCell_ID::CaloSample sample, double eta, double phi) const
get descriptor by sample, eta and phi raw
CaloDetDescrElement * release_element(IdentifierHash hash)
calo_element_const_iterator element_end() const
end of element vector
std::vector< CaloDetDescriptor * > calo_descr_vec
void set_helper(const CaloCell_Base_ID *idHelper)
set calo Cell ID helper
std::vector< calo_element_const_iterator > m_subCalo_end
offsets for subcalo's elements
std::ranges::subrange< calo_element_const_iterator > calo_element_range
const CaloDetDescrElement * get_element_FCAL(const CaloDetDescriptor *reg, double eta, double phi) const
LArFCAl private methode to get element.
const CaloIdManager * m_calo_mgr
Calo ID Manager helper.
calo_descr_size tile_descriptors_size() const
number of tile descriptors
std::vector< CaloDetDescrElement * > calo_element_vec
const CaloCell_Base_ID * getCaloCell_ID() const
get calo cell ID helper
calo_nonconst_descr_range calo_descriptors_range_nonconst()
Range over descriptors, with non-const elements.
friend class CaloCellPacker_400_500_test
Helper for CaloCompactCellTool_test.
void add(CaloDetDescrElement *element)
add Calo DD element to the elements vector
calo_descr_size calo_descriptors_size() const
number of descriptors
calo_descr_vec m_descr_vec
vector of descriptors
calo_element_vec::const_iterator calo_nonconst_element_const_iterator
const CaloIdManager * getCalo_Mgr() const
get calo ID manager
void initialize()
initialization of the manager, used by the Converter when it creates the Manager
calo_nonconst_descr_range tile_descriptors_range_nonconst()
Range over tile descriptors, with non-const elements.
void set_lar_geometry(const std::string &geom)
set lar geometry label, distinguish between full atlas and TB
const CaloDetDescriptor * get_descriptor(const Identifier ®ionId) const
get descriptor by region identifier
calo_element_vec::size_type calo_element_vec_size
static void decode_sample(CaloCell_ID::SUBCALO &subCalo, bool &barrel, int &sampling_or_module, CaloCell_ID::CaloSample sample)
translate between the 2 ways to label a sub-detector:
calo_element_range element_range() const
Range over element vector.
calo_descr_const_iterator calo_descriptors_begin() const
first descriptor in the vector
std::ranges::subrange< calo_nonconst_descr_const_iterator > calo_nonconst_descr_range
calo_element_vec m_element_vec
vector of Calo DD elements
const CaloDetDescrElement * get_element_raw(CaloCell_ID::CaloSample sample, double eta, double phi) const
Get element from raw quantities (to build real fixed size clusters)
calo_descr_vec::size_type calo_descr_size
const CaloCell_Base_ID * m_cell_id
Calo Cell ID helper.
void cellsInZone(double eta_min, double eta_max, double phi_min, double phi_max, std::vector< IdentifierHash > &cell_list) const
the only client is CaloCellList class
calo_descr_range calo_descriptors_range() const
Range over descriptors.
calo_element_vec_size element_size() const
total number of elements
void print() const
print out the contents
CaloConstIteratorAdaptor< calo_descr_vec::const_iterator > calo_descr_const_iterator
calo_descr_vec m_tile_descr_vec
vector of descriptors
std::ranges::subrange< calo_descr_const_iterator > calo_descr_range
calo_descr_range tile_descriptors_range() const
Range over tile descriptors.
CaloDetDescrManager_Base()
Default Constructor.
bool is_in(double eta, double phi, CaloCell_ID::CaloSample sample, double &etadist) const
return true if direction eta,phi crosses ANY of the corresponding descriptors
std::vector< IdentifierHash > m_subCalo_max
offsets for subcalo's elements
~CaloDetDescrManager_Base()
destructor
This class provides the client interface for accessing the detector description information common to...
const CaloCell_ID * getCaloCell_ID() const
get calo cell ID helper
void set_helper(const CaloCell_ID *idHelper)
set calo Cell ID helper
This is a base class for LAr and Tile Descriptors The primary goal is to speed up loops over all the ...
This class initializes the Calo (LAr and Tile) offline identifiers.
void set_helper(const CaloCell_SuperCell_ID *idHelper)
set calo Cell ID helper
const CaloCell_SuperCell_ID * getCaloCell_ID() const
get calo cell ID helper
This is a "hash" representation of an Identifier.