Hi Rene. I'm working in CMD2 collaboration. Our experiment - e+e- collision at rho,omega,phi-mesons energies (formfactor pi). Detector CMD2 consist of Drift Chamber, Z-chamber, barrel and endcaps calorimetrs and mu-chambers. Typical raw event size - 1 - 1.5 KB. After reconstruction - 6 - 8 KB. Recontructed events has raw hits info + 'calibrated hits' + tracks & clusters summary. 'Calibrated hits' means conversion of 'drift time' to X,Y and ADC counts to energy. For last 5 year we take ~5 TB data on tapes. Our disks capacities - 100 GB. > - How many tracks do you expect per event > - How many hits per track > - How many hits in total We have 2 tracks per event. One track has ~20 hits. Also events contains 2-4 clusters with ~10 'crystals'/clust. > > You can redirect a branch to a separate file via > TBranch::SetFile > > My preference would be for a track class like > class Track : public TObject { > TArrayS fListOfHits; //array of indices in the hits TClonesArray > Float_t fChi2; etc > That means that I need to re-implement (near) the all methods from TSortedList. But what about code reuse and OO ? In principal, I can design some HitsSortedList to mountain indicies to hits in TClonesArray to save space - just to reimplement Streamer. But I want to have class Track : HitsSortedList {...} class Cluster : HitsSortedList {...} and so on ... and my question was - how to create TBranch on the 'base' part of object. I want to separate 'hits' and 'indecies to hits' in file1 and 'summary info' in other file2. 'file1' - contains 'unsplitted' compressed objects and located on tapes. This files for calibration, efficiency estimation and so on. 'file2' - has 'splitted' objects - events database. Basicaly - this files for analises and for events selection from 'file1'. That's another question - how to separate 'background events' and 'good events' to speed up events lookup. Now my estimation shows me that I can to keep on disks all user's and standard 'TEventsLists' + 'essential part of summary info' for all events (Ntracks,Nclusters,Etotal... - to produce other 'TEventsLists') + 'full summary info' for standard selection (bhabha, K+K- ...) + 'selected hits' for calibrations. All other info - on tapes. Now we have analog of 'TEventsList' and 'events database' files in one format, 'summary info' - hbook files and 'hits' - FZ-files. ==> too many tools (and steps) to handle this... If its right that 'root' opens a files (in branches) ONLY when needed -> we can hide all details from end user. For this I need to derive CMD2EventsList from TEventsList to handle 'file event number' i <-> (NRUN,NEVENT) and trap 'un-existing' files exceptions. For batch jobs - in one way (lookup in tape archive and reading from tape), for intractive - other way (error or warning message). This way - transparant for user : I just need to attach 'eventlist' to 'tree' in interactive job to avoid warnings about 'unexisting event' to work with disk files. Also I can produce new 'eventlist' from 'events DB' and use root (with the same macros!) in batch mode to add 'summary info' (may be with 'hits') from tapes to disks files. ==> only one tool for all steps ! Best regards, Nikolay Root BINP, Novosibirsk email : nroot@inp.nsk.su
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:34 MET