“how do i analyze the data?” -- everyone who’s ever analyzed data “how do i access the...
TRANSCRIPT
“How do I analyze the data?”
-- everyone who’s ever analyzed data
“How do I access the data?”
Analysis Framework
Analysis Framework
Defines how packages:
Access data needed for input
Publish data for output
Read in and write out events
Access calibration constants (database)
Event Level
Run Level
PID
Tracks
FCAL Showers
BCAL Showers
Cherenkov
TOFCDC
FDC
FCAL HitsBCAL Hits
PID
Tracks
Cherenkov
CDC
FDC
FCAL Showers
TOF
BCAL Showers
DANA
FCAL HitsBcal Hits
DEventLoop
DEvent
DEventProcessor(called every event)
DFactory(data on demand)
C++: Object Oriented
Framework keeps track of run number and calls “brun” routinesAll Analysis Software is Implemented in DFactory Objects
Data Access and Storage in DANA
• Use STL vectorSTL=Standard Template Libraryvector = “smart” array
• Use const pointersFactories deliver read-only data eliminating cross-factory data corruption
• Use templatesProvides type safety removing need to “cast” pointers which can lead to difficult errors.
Important Goal:
The analysis framework should be designed to provide a very shallow learning curve for new users.
One should NOT need to be a C++ expert to analyze Hall-D data!
A Real Life Example:
vector<const DCDCHit*> cdchits;eventLoop->Get(cdchits);
for(int i=0; i<cdchits.size(); i++){float x = cdchits[i].x;float y = cdchits[i].y;
}
BMS: Build Management System
Benefits of using a central Make system
• Reduces maintenance of individual Makefiles
• Encourages better maintenance of source directories
• Consistent use of compiler options
• GlueX-doc-473
Summary
• DANA exists in repository and continues to be refined, but is ready for use. Several programs currently use it (hdview, hd_ana, patfind, hd_dump)
• BMS makefile system provides standardization of software builds
• Software group is committed to a shallow learning curve.
Other Active, General Use Software Projects
• Package Management Ed Brash
• Online (CMsg) Elliott Wolin
• 3D Event Viewer Matt Bellis
• UPV simulation Alexander Ostrovidov
• FCAL Reconstruction Craig Bookwalter
• BCAL Reconstruction Chucheng Xu
• Openshop Framework Richard Jones
• Nightly Builds (+ doxygen) David Lawrence