13 const std::string& group,
14 const std::string&
tag)
133 entry->resolve_references(idd, dictionary, *
this);
140 const std::string&
tag) {
142 std::cout <<
"IdDictRegion::generate_implementation>" << std::endl;
146 entry->generate_implementation(idd, dictionary, *
this,
tag);
204 entry->reset_implementation();
242 size_t bits_offset = 0;
245 impl.set_bits_offset(bits_offset);
246 bits_offset +=
impl.bits();
250 if ((not field.isBounded()) || (0 != field.get_minimum())) {
251 impl.set_decode_index(
true);
IdDictFieldImplementation is used to capture the specification of a single field of an Identifier.
virtual void reset_implementation() override
void find_neighbours(IdDictDictionary &dictionary)
std::vector< std::string > m_prev_samp_names
std::vector< const IdDictRegion * > m_prev_samp
std::vector< const IdDictRegion * > m_prev_subdet
void set_etaphi(double eta0, double deta, double phi0, double dphi)
Set eta/phi variables.
virtual void resolve_references(IdDictMgr &idd, IdDictDictionary &dictionary) override
IdDictRegion & operator=(IdDictRegion &&)
IdDictRegion(const std::string &name, const std::string &group, const std::string &tag)
void add_prev_subdet_name(const std::string &name)
Add a previous subdetector name.
void add_entry(std::unique_ptr< IdDictRegionEntry > entry)
Add entry to the end of the list.
virtual std::string group_name() const override
void add_prev_samp_name(const std::string &name)
Add a previous sample name.
void set_is_empty()
Set is_empty flag.
IdDictFieldImplementation & new_implementation()
Add a new implementation object and return a reference to it.
std::vector< std::string > m_next_subdet_names
std::vector< IdDictFieldImplementation > m_implementation
void prepend_entry(std::unique_ptr< IdDictRegionEntry > entry)
Add entry to the start of the list.
std::string m_next_abs_eta_name
IdDictRegion * m_next_abs_eta
std::vector< std::string > m_prev_subdet_names
virtual void clear() override
virtual void set_index(size_t index) override
const std::string & name() const
const IdDictRegionEntry & entry(size_t i) const
bool m_generated_implementation
std::vector< std::string > m_next_samp_names
std::vector< std::unique_ptr< IdDictRegionEntry > > m_entries
std::vector< const IdDictRegion * > m_next_subdet
const std::string & tag() const
std::vector< const IdDictRegion * > m_next_samp
void add_next_samp_name(const std::string &name)
Add a next sample name.
virtual Range build_range() const override
IdDictRegion * m_prev_abs_eta
void add_next_subdet_name(const std::string &name)
Add a next subdetector name.
void set_next_abs_eta_name(const std::string &name)
Set the name for next_abs_eta.
const IdDictFieldImplementation & implementation(size_t i) const
virtual void generate_implementation(const IdDictMgr &idd, IdDictDictionary &dictionary, const std::string &tag="") override
virtual bool verify() const override
size_t n_implementation() const
A Range describes the possible ranges for the field values of an ExpandedIdentifier.