Analysis flow.
-
Data is written into raw format files by NQ.
-
Raw format files are read by NQ and converted into ntuple format.
-
Ntuples converted into ROOT files by h2root routine (comes with root).
-
Root files are read and processed with ROOT.
Last line is the one I am concentrating on right now - expanding:
-
Data flow is controlled by LegsRun class. By creation of this object one
auomatically opens input to data files ( prefix of data files and number
of them can be specified in brackets).
-
Inside of LegsPart event data is regrouped into abstract data structures
LegsHit, LegsPart and user may place cuts using these data structures as
well as ntuple structure variables. Complete list of the variables and
their types may be found in LegsRun
-
User cuts and histograms are implemented in LegsMaker* classes.
By declaring a LegsMaker* class one automatically adds the procedure contained
in the Maker* to processing of the event. Order of execution of makers
is the same as order of declaration. So, clustering makers should come
first before you try to use them in other makers.
-
Histograms and possibly other objects ( inheriting from TObject )
that are data members of a maker class are automatically written
to file into directory named after the maker. In fact th emaker itself
is directory since it inherits from TDirectory class. This simplifies
writing to file and accesing histograms interactively in ROOT browser.
Also, no particular version library ( streamer function
depends on version of class) is needed to read a ROOT file with histos.
All objects are still going to be in directories and possible to read.
-
Calibration files are ordered like follows: ru4191_1999_01_29_01_03_03.db
where numbers are : run number, year, month, day,hour,min,sec. Functions
to convert date from seconds to data format and back are available
in SasyTime.cxx
-
Calibrations from a file are loaded automatically when time specified in
file name comes. This is taken care of in LegsDB class mostlly with close
cooperation with LegsRun of course.
-
When a maker becomes absolute necessity to analysis it may be hardcoded
added into LegsRun class and thus number of separate makers reduced.