Re: [ROOT] detector mapping in root

From: Jacek M. Holeczek (holeczek@us.edu.pl)
Date: Sun Jun 24 2001 - 12:09:33 MEST


Hi,
Many thanks for your replies.
On principle I expected to get the following advice. Create a simple
class describing the mapping (both of you say this), then make a T*List*
with all possible mappings, then make a couple of Hash functions (one Hash
function per "sort"-type), then create some T*Hash* objects using these
Hash functions. Somehow none of you thought about it. Why ? What's wrong
in such approach ?
The solution proposed by Rene is a one-way solution. I think that even if
I "optimize" it (separate branches for BoardID, ModuleID, ...), the time
needed to find a particular board/module/... combination would be quite
significant. Moreover, if I require a particular "wire" (I mean from
WireNumber and WireType give me board/module/...), then I would need
to look for it all over the tree (scan all "entries" - that's why I call 
it one-way solution).
The solution proposed by Valeri requires me to know the number of channels
in advance (I need to set the "size" of the table, don't I), which is not
always true (unfortunately it may happen that the number of "hardware
electronics" channels is bigger or smaller then the number of "detector
wires" - some "electronics" channels may be spare and/or some wires
may be disconnected). Thus, I would prefer NOT to set any hard
"limits" on the number of "slots".
Rene writes :
> (... comparing "TTable" versus "TTree" approach ...)
> etc). In case of a large table, this will make a substantial difference
> in time.
I think I disagree. Consider that you usually anyhow have to read mappings
for all channels, so ... you can read them in "portions" from the tree, or
you can read them as a whole table in one piece in the beginning.
There should be no "substantial difference in time", shouldn't it ?
Jacek.
PS. I was thinking about two hash functions : from board/module/channel -
    "BoardID*65536 + ModuleID*256 + ChannelID", from WireNumber/WireType -
    "WireType*65536 + WireNumber". Jacek.



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:50 MET