Download presentation
Presentation is loading. Please wait.
Published byAlexandra Nelson Modified over 6 years ago
1
Introduction Specification for the possible Identifiers
Their field names Their organization (as a hierarchy of fields) The possible values for the various fields The allowed range(s) Enumerations Associate symbolic names with values Provide range validity checks within AGDD Give means of optimizing Identifier objects Not limited to detector description identifiers
2
Definitions A dictionary specifies a set of identifier values meant to be attached to a coherent set of objects (same context) One may define several dictionaries in one XML file No correlation is assumed between two dictionaries : the two identifier sets are independent (ie. The associated object sets are a-priori independent). Each dictionary describes a set of regions which forms a non-overlapping partition of the identifier value set. The complete identifier value set described by the dictionary is the union of values specified by each region. A region defines an alternate identifier value range for the dictionary. It defines a contiguous range of identifier values. It contains the ordered list of fields with their value range Fields may be specified as: A direct range specification (range element) A reference to a sub-region defined in the same dictionary (subregionref element) A reference to a complete external sub-dictionary (dictionaryref element)
3
Definitions <Id_dictionary name="TileCalorimeter" >
<region> <range field="detector" value="Barrel" /> <range field="sampling" minvalue="0" maxvalue="3" /> <range field="pmt" minvalue="0" maxvalue="1" /> <range field="adc" minvalue="0" maxvalue="1" /> <range field="tower" minvalue="1" maxvalue="10" /> <range field="pos-neg-z" /> <range field="module" minvalue="0" maxvalue="63" /> </region> <range field="detector" value="Extended-barrel" /> <range field="tower" minvalue="8" maxvalue="16" /> </Id_dictionary>
4
Definitions <subregion name=“Tile-samplings”>
<range field="sampling" minvalue="0" maxvalue="3" /> <range field="pmt" minvalue="0" maxvalue="1" /> <range field="adc" minvalue="0" maxvalue="1" /> </subregion> <Id_dictionary name="TileCalorimeter" > <region> <range field="detector" value="Barrel" /> <reference subregion=“Tile-samplings” /> <range field="tower" minvalue="1" maxvalue="10" /> <range field="pos-neg-z" /> <range field="module" minvalue="0" maxvalue="63" /> </region> <range field="detector" value="Extended-barrel" /> <range field="tower" minvalue="8" maxvalue="16" /> </Id_dictionary>
5
Definitions <subregion name=“Tile-samplings”>
<range field="sampling" minvalue="0" maxvalue="3" /> <range field="pmt" minvalue="0" maxvalue="1" /> <range field="adc" minvalue="0" maxvalue="1" /> </subregion> <Id_dictionary name="TileCalorimeter" > <region> <range field="detector" value="Barrel" /> <reference subregion=“Tile-samplings” /> <range field="tower" minvalue="1" maxvalue="10" /> <reference subregion=“Tile-modules” /> </region> <range field="detector" value="Extended-barrel" /> <range field="tower" minvalue="8" maxvalue="16" /> </Id_dictionary> <subregion name=“Tile-modules”> <range field="pos-neg-z" /> <range field="module" minvalue="0" maxvalue="63" /> </subregion>
6
The model IdDictMgr DTD_version IdDictionary name version date author
IdDictField name IdDictRegion name IdDictSubRegion name n IdDictRegionEntry name n IdDictLabel name value IdDictSubRegionRef IdDictRange value minvalue maxvalue values IdDictionaryRef
7
The Dictionary API class Id_Dictionary {
MultiRange build_multirange () const; bits32 pack32 (const Identifier& id, size_t index1, size_t index2) const; Identifier unpack (const bits32 id, const Identifier& prefix) const; }; Id_Parser parser; const IdMgr& mgr = parser.run (argv[1]); const Id_Dictionary* dictionary = mgr.find_dictionary ("InnerDetector"); Identifier id ("1/0/0/21/6/319/191"); Id_Dictionary::bits32 b = dictionary->pack32 (id, 0, 6); Identifier id2 = dictionary->unpack (b); std::string query = "part=Pixel/barrel_endcap=barrel"; Identifier id = dictionary->check_query (query);
8
Status Still need some tuning Connections with AGDD
Strategies for packing/unpacking 0:n-1 0+1:n uniform packing on 32/64 bits + number of fields Etc. Connections with AGDD Validation of identifier specifications Require a Gaudi service
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.