Re: [ROOT] detector mapping in root

From: Valeri Fine (fine@bnl.gov)
Date: Sun Jun 24 2001 - 02:59:27 MEST


You can do this either with TTree or TTable.

With TTable approach create the class derived  from TTable and apply
TTableSorter as many times as you need  to get all  your mappings. (I fact
this is the canonical approach that works with ROOT I/O).
http://root.cern.ch/root/htmldoc/TTable.html#TTable:description
I'd like to call your attention the class TTableSorter doesn't change the
table it is applied agaist of.
Neither it copies that table data.

Since TTable class allocates the continuous memory block internally this
block can be mapped
 to some hardware registries and populated by "electronics" directly or by
parallel process via
"real" share memory (Just in case);


 #include "TTable.h"

 typedef struct detector_t  {
   int  BoardID;    /* Board ID */
   int  ModuleID; /* Module ID */
   int ChannelID;  /* Channel ID */
   int  WireNumber; /* Wire number */
   int  WireType; /* Wire type */
};
  class  TDetector : public TTable
  {
   public:
     ClassDefTable(TDetector,detector_t)
     ClassDef(TDetector,2) //C++ wrapper for <dst_track> StAF table
  };
  #endif

 At the moment the TTable object can be stored with "root" I/O, MySQL,
XDF (Corba-like) and ASCII( via SavePrimitive) formats.

 I wonder if you need further exaplanations. Let me know.
  Best regrads, Valeri

----- Original Message -----
From: "Jacek M. Holeczek" <holeczek@us.edu.pl>
To: "roottalk" <roottalk@pcroot.cern.ch>
Sent: Friday, June 22, 2001 7:35 PM
Subject: [ROOT] detector mapping in root


> Hi,
> Assume one has a set of numbers (describing the wire mapping) in form :
> BoardID ModuleID ChannelID WireNumber WireType
> ...
>   34      12       0         121         4
>   34      12       1         126         1
> ...
>   55      15       7         121         4
>   55      37       288       5878        2
> ...
> Now I would like to have functions like :
> GetWireID(BoardID,ModuleID,ChannelID)
> GetBoardID(WireNumber,WireType)
> The canonical approach would be to create a "database", feed it with this
> table, and then make queries. But ... I would like to do this without any
> database connection. Just "pure" root.
> I can't seem to have any good idea how to do this (mapping in both
> directions between "electronic" channels and detector wires).
> Any help appreciated.
> Thanks in advance,
> Jacek.
>
>



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