“how do i analyze the data?” -- everyone who’s ever analyzed data “how do i access the...

12

Upload: christopher-simmons

Post on 18-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework
Page 2: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

“How do I analyze the data?”

-- everyone who’s ever analyzed data

“How do I access the data?”

Analysis Framework

Page 3: “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

Page 4: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

PID

Tracks

FCAL Showers

BCAL Showers

Cherenkov

TOFCDC

FDC

FCAL HitsBCAL Hits

Page 5: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

PID

Tracks

Cherenkov

CDC

FDC

FCAL Showers

TOF

BCAL Showers

DANA

FCAL HitsBcal Hits

Page 6: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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

Page 7: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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.

Page 8: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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!

Page 9: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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;

}

Page 10: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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

Page 11: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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.

Page 12: “How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework

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