|
InSANE
1.6
|
The first use of InSANERunManager::SetRun(#), which calls InSANERunManager::FindRun() to search for
a saved run object, creates a new InSANERun object if none is found. After creating a new
run object InSANERunManager::GeneratePreRunReport() is called.
Within InSANERunManager::GeneratePreRunReport() a new "Run Report" is created. A "Run Report" or InSANERunReport is a transient object that is not saved and is used to facilitate the transfer of data to and from the InSANERun object. The InSANERunReport has a list of InSANERunReportDatum objects which represent a column in the database. For example, in the GeneratePreRunReport you will find a line like fRunReport->Add( new InSANERunReportDatum("beam_energy") ) for the database column "beam_energy".
Since GeneratePreRunReport() is called only when the run is first created, it calls
InSANERunReport::RetrieveRunInfo() to get existing values of each InSANERunReportDatum.
RetrieveRunInfo() ends by executing the interpreted script GatherRunInfo.cxx which is where other sources
of run info can be injected into the run report.
Then InSANERunReport::UpdateRunDatabase() is called. This fills the database with
newly gathered (from GatherRunInfo.cxx) run information.
Finally, InSANERunReport::UpdateRun() is called which sets the datamembers of the InSANERun object using the "Run Report"If a run object is found, InSANERunManager::GenerateRunReport() is called (not InSANERunManager::GeneratePreRunReport() ). This method creates a new run report and adds the InSANERunReportDatum to the report. It ends by calling InSANERunReport::Update() which explicitly maps the Run Object's values to run report's values.
The basic files are expected to be found in the directory data/rootfiles. Since we will have many analysis passes, some of which we will want to repeat without re-running all the pass before, there is a file for each pass of analsys. The previous pass (or input ) file will be read-only and the current pass (output) file will be written to.
The "Run Manager" takes care of the files and provides access to the current analysis files and run information. See InSANERunManager and SANERunManager