Giter VIP home page Giter VIP logo

daqman's Introduction

DOI

README for daqman

Installation on RHEL7

On a clean RHEL7 install, need to install the following package to include:

  • imake
  • boost-devel
  • root
  • root-spectrum
  • zlib-devel

Notes on compiling, running, etc with the daqman system:

General info on daqman can be found on the github pages: http://bloer.github.io/daqman In particular, there is some doxygen code documentation at http://bloer.github.io/daqman/doc/html

Adding a ROOT class for saving:

Two steps are necessary to generate a new dictionary to store a class in a ROOT file or tree. First, in the class header file, you must call the macro

ClassDef(CLASSNAME,VERSION)

So the definition would look something like

class MyClass{
public:
  MyClass();
  ~MyClass();
  //blah blah functions
  ClassDef(MyClass,1)
};

Second, you must add your class to the LinkDef.h file in the top level directory. You must also add any template definitions, such as vectors of your class, if any are to be used. The link commands must be in the order that they are used, lowest level first. e.g., if you have a class Container which contains a vector<MyClass> from above, you would add the following lines to LinkDef.h:

#ifdef __CINT__
#pragma link C++ class MyClass+;
#pragma link C++ class std::vector<MyClass>+;
#pragma link C++ class Container+;
#endif

Notice the trailing + at the end of every link command. If you try to link Container before vector, it will not work.

daqman's People

Contributors

bloer avatar

Stargazers

Dylan Temples avatar yujiyamawaki avatar Luca Colombini avatar

Watchers

James Cloos avatar Luca Colombini avatar  avatar

daqman's Issues

Generalize runinfo

  • Remove experiment-specific stuff left over in runinfo
  • Use dynamic arrays and maps to define a list of required fields for each run
    • Only require fields when RawWriter is enabled
    • Possibly allow array fields of some type as well
  • At run start (if RawWriter enabled) prompt user for any missing required fields with a pop-up window
    • Allow specification of drop-down lists for enum-type fields
    • Allow specification and prompting for optional fields
  • Provide syntax to specify system command to be executed at run start and end (for database insertion, e.g.)

Add event buffering to RawWriter

In order to minimize frequency of disk access, add a parameter to RawWriter so that it will buffer some N events in between each actual disk write.

Make sure to account for max file size and n events, and to save any remaining buffered events on Finalize

Improve default module behavior

Some of the modules that are included by default are either very specific to a given analysis, or require additional data files to work properly, or are just plain broken. Potential fixes:

  • Only register the basic common modules useful to any project
  • Make the problematic modules disabled by default
  • Make all modules disabled by default, so you have to explicitly enable them in your config file
  • Use some sort of factory to register the modules directly in the config file (bleh...)

Add support for dynamic creation of vectors, sets, and maps

  • vector. Syntax: [ item1 , item2 , item3 ] .
  • set. Same syntax as vector
  • map. Syntax: { key : value , key : value , key : value }
  • append syntax: prefix opening with '+' for any style
  • Make sure that vector and map interfaces are JSON compatible

Questions?

  • Should we also allow enclosing () rather than [] ? Or should we enforce that () encloses fully pre-defined entities like ParameterLists, while [] enclose dynamic entities?
  • Should we require separating commas between elements?
  • Should we require the separating colon between key value pairs in maps?
  • Should we keep ParameterLists as they are, or switch them to use the underlying map functions?

default config files are broken

The default config files daqman.cfg genroot.cfg and daqview.cfg are all broken, so that users need to always give --no-cfg on first running. The default files in the config directory should be replaced with functional ones or the output of --show-parameters.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.