The STAR offline framework V Fine See also

  • Slides: 24
Download presentation
The STAR offline framework* V. Fine *) See also: http: //sol. star. bnl. gov/~fine/Publications/Chep

The STAR offline framework* V. Fine *) See also: http: //sol. star. bnl. gov/~fine/Publications/Chep 2000. ppt http: //chep 2000. pd. infn. it/abs_326. htm http: //root. cern. ch/root/R 2000 Abstracts. html V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

STAR reconstruction framework* * “… a set of cooperating classes that make up a

STAR reconstruction framework* * “… a set of cooperating classes that make up a reusable design for a specific class of software. . . ” by Erich Gamma, et al. “Design Patterns: Elements of Reusable Object-Oriented Software”, Addison-Wesley Pub Co, 1995. “The framework dictates the architecture of your application. It defines the over-all structure, its partitioning into classes and objects, the key responsibilities thereof, how the classes and objects collaborate, and the thread of control. “ A framework predefines these design parameters so physicists can design their solutions using a proven programming model and can concentrate on the specifics of their applications. V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

STAR framework is designed to support the chained components, which can themselves be composite

STAR framework is designed to support the chained components, which can themselves be composite subchains, with components (“makers”) managing “datasets” they have created and are responsible for. An St_Data. Set class from which data sets and makers inherit allows the construction of hierarchical organizations of components and data, and centralizes almost all system tasks: • data set navigation, • I/O, database access, • inter-component communication. V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

Permanent stable interface - various datas We do not know how our data will

Permanent stable interface - various datas We do not know how our data will look like, but we know how we will access them Abstract interface, hidden data approach Various interfaces - permanent data We do know how our data will look like, but we do not know how we will access them Dataset model, transparent data V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

Basic St_Data. Set properites St_Data. Set object : : = the "named" collection of

Basic St_Data. Set properites St_Data. Set object : : = the "named" collection of St_Data. Set objects • Dataset Member. Any object from the collection above is called “Data. Set Member” • Structural member. The “Dataset Member” is its “Structural member” if its “back pointer” points to this object • Dataset Owner (parent). We will say this St_Data. Set object “owns” (or is an owner / parent of ) another St_Data. Set object if the last one is its “Structural Member” • Associated member. If some object is not “Structural member” of this object we will say it is an “Associated Member” of this dataset • Orphan dataset. If some dataset is a member of NO other St_Data. Set object it is called an “orphan” dataset object V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

OO model of the STAR simulation / reconstruction chain: St_Data. Set object : :

OO model of the STAR simulation / reconstruction chain: St_Data. Set object : : = the "named" collection of St_Data. Set objects “base” container class St_Table. Sorter St_Object. Set St_Data. Set. Iter Data definition St_File. Set St_Node/ St_Node. View “abstract” TObject “file system” description GEANT Geometry structure Flow control St. Maker V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

St. Maker Get. Data. Set() . maker St. Maker Add. Data() . const .

St. Maker Get. Data. Set() . maker St. Maker Add. Data() . const . data . const 1. Init() 2. Make() “regular” makers communication No transaction changes the dataset relationship V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

St. Maker. maker St. Maker . data . const St. Maker 56 different makers

St. Maker. maker St. Maker . data . const St. Maker 56 different makers V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000 . garb

Typical STAR St_Data. Set/St_Table structure Since St_Table's are subclasses of St_Data. Set it is

Typical STAR St_Data. Set/St_Table structure Since St_Table's are subclasses of St_Data. Set it is easy to combine them in the various hierarchical structure. This way we compensate lacking of pointers within St_Table objects V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

St. Maker Get. Data. Set(“name”) . maker I/O St. Maker Add. Data() . const

St. Maker Get. Data. Set(“name”) . maker I/O St. Maker Add. Data() . const . data 1. Init() 2. Make() I/O maker File formats: xdf, root, ASCII, My. SQL V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000 . const

Is the table only furniture to be comfortable? • Match well with all flavor

Is the table only furniture to be comfortable? • Match well with all flavor of databases, file systems, share memory • No “died pointer” nightmare • Ease to feed the legacy Fortran / C codes • Well define the raw experimental data • No problem with the schema evolution. It is ease to implement and maintain • Feasible to control “memory leak” and “memory violation” No, since each User has his / her • Fit well ROOT TClones. Array / TNTuple / TTree model own point view what this data means V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

One needs “chairs” • TVolume class to define GEANTlike detector geometry. This class gives

One needs “chairs” • TVolume class to define GEANTlike detector geometry. This class gives an access to the full detector definition from GEANT for visualization and coordinate transformation. • “Proxy” base class - TChair. To get his / her custom access to one and the same table the USER may derive the class from TChair. Every individual or working group can create as many chairs as they find useful with no argue which chair is better. V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

St. Maker Get. Data. Set() . maker I/O St. Maker . const St. Maker

St. Maker Get. Data. Set() . maker I/O St. Maker . const St. Maker Add. Data(). data Display St. Maker . const 1. Init() 2. Make() display maker V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000 . const . data

OO model of STAR geometry • “Detector” geometry supplied by St_geant_Maker (GEANT 3. 21)

OO model of STAR geometry • “Detector” geometry supplied by St_geant_Maker (GEANT 3. 21) • “Event” geometry supplied by “bfc. C” Makers of the reconstruction chain. V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

St. Event. Display. Maker “Detector” geometry St_Node / St_Node. View (St_geant_Maker/St. DBMaker) “Event” geometry

St. Event. Display. Maker “Detector” geometry St_Node / St_Node. View (St_geant_Maker/St. DBMaker) “Event” geometry St. Event / St_Table’s ( “bfc” Makers) St. Event. Display. Maker St. Virtual. Event. Filter 3 D “Viewers”: TBrowser TPad X 3 D Open. GL, etc V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

STAR 3 D geometry Object Model =============== St_Data. Set Legend: | "class. A” |

STAR 3 D geometry Object Model =============== St_Data. Set Legend: | "class. A” | |"class. B" is derived from v v the "class. A” St_Node "class. B” ^ | "class. Q” | ^ "class. Q" has a pointer TShape | to "class. T” | "class. T” v ------------------------------| | | | |. . . | | | | v v v St_Poly. Line. Shape TBRIK TTUBE TPCON TTRD 1 | ^ | | R O O T S H A P E S v | (see GEANT 3. 21 shapes as well) St_Poly. Line 3 D | | TPoints 3 DABC | v -------------------------------| | | V v v v St. Hits 3 DPoints St. Helix 3 DPoints St_Table 3 Points St_Points 3 D ^ ^ | | | | St. Obj. Array St. Track / St. Helix. D St_Table. Sorter flat floating ^ point array | (see St_Poly. Line 3 D as well) St_Table S T A R S H A P E S V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000 “Detector” and “Event” data model

. x bfc. C(2). x Turn. Display. C(“no”). x Pad. Control. Panel. C ds.

. x bfc. C(2). x Turn. Display. C(“no”). x Pad. Control. Panel. C ds. Maker->Set. Table. Flag() ds. Maker->Re. Draw() These pictures present “g 2 t_svt_hit” (round filled mark) vs packed “dst_point” (cross mark). It is clear the hits on the outermost svt layer from g 2 t are not included into the “packed”V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000 dst_point table.

table name: “point” V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

table name: “point” V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

. x bfc. C(1, "off tpc tfs y 1 b eval fzin global -v

. x bfc. C(1, "off tpc tfs y 1 b eval fzin global -v 0 -xi", "/disk 0/star/test/venus 412/b 0_3/year_1 b/set 0352_01_35 evts. fzd"). x Turn. Display. C("St. Track. Filter 2"). x Set. Object. Filter. C. x Pad. Control. Panel. C kaon. Decay_with. Cut_full V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

Open. GL viewer V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

Open. GL viewer V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000

Current status The present framework has being testing for the last year. It was

Current status The present framework has being testing for the last year. It was used to produce 100 GBytes of DST from 3 TBytes of the GEANTsimulated data. It is proved it allows the construction of hierarchical organizations of components and data, and centralizes almost all system tasks such as data set navigation, I/O, database access, and inter-component communication. V. Fine (fine@bnl. gov) ALICE-STAR Joint meeting April, 9, 2000