GithubHelp home page GithubHelp logo

jana's Introduction

JANA

JANA is the JLab ANAlysis framework. It is a multi-threaded C++ framework for processing event-based data from particle physics experiments. It has been primarily used by the GlueX experiment at Jefferson Lab.

The JANA project is being replaced by JANA2 which is currently under development.

DOI

jana's People

Contributors

dmitryromanovtest avatar faustus123 avatar markito3 avatar rjones30 avatar staylorjlab avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

drateots rjones30

jana's Issues

Compiler 'misleadingly indented' warning

There are several identical warnings appear during the compilation:

src/JANA/JApplication.cc: In member function ‘jerror_t jana::JApplication::AttachPlugins()’:
src/JANA/JApplication.cc:2394:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
    if(printPaths) jout<<"Looking for \""<<fullpath<<"\" ...."; cout.flush();
    ^~
src/JANA/JApplication.cc:2394:64: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
    if(printPaths) jout<<"Looking for \""<<fullpath<<"\" ...."; cout.flush();
                                                                ^~~~
src/JANA/JApplication.cc:2408:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
    if(printPaths) jout<<"Looking for \""<<fullpath<<"\" ...."; cout.flush();
    ^~
src/JANA/JApplication.cc:2408:64: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
    if(printPaths) jout<<"Looking for \""<<fullpath<<"\" ...."; cout.flush();
                                                                ^~~~

Reviewing them I would rather agree with the compiler. So PR is coming

Several files always rebuilding

When trying to rebuild JANA for several times I figured out that several files are being rebuilt each time. The reason is generated jana_config.h

scons: rebuilding `/home/romanov/jleic/test/jana/build/jana-drateots-master/JANA/JGeometryMYSQL.o' because:
           `src/JANA/JGeometryMYSQL.cc' is no longer a dependency
           `src/JANA/JGeometryMYSQL.cc' is a new dependency
           `/home/romanov/jleic/test/jana/jana-drateots-master/include/JANA/jana_config.h' changed

Scons uses MD5 to track file changes. And the file changes each time because it has generation time written in it:

str += '// Generation date: %s\n' % datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")

Removing the line would allow not to rebuild everything when nothing is really changed.

The question is. Where there cases, when this line really helped to debug or fix something? Otherwise I would propose to remove it.

Make installation dir changeable

When scons install is called, JANA is installed to ```#bsosname" . This line

Later build scripts move the binary directory to their preferred places and very convenient setenv.* script becomes useless

I would propose to add PREFIX scons argument. If the PREFIX is set, installdir should be set to it. Can make a PR

JANA_PLUGIN_PATH in autogenerated setenv scripts

Since both Jana and JLEIC_ANA (or whoever) tries to set JANA_PLUGIN_PATH, I would suggest changing auto-generated scripts to something like:

# Make sure JANA_PLUGIN_PATH is set
if [ -z "$JANA_PLUGIN_PATH" ]; then
   export JANA_PLUGIN_PATH=""
fi

# JANA
export JANA_PLUGIN_PATH=$JANA_PLUGIN_PATH:${JANA_HOME}/plugins

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.