Giter Club home page Giter Club logo

rcdb's Introduction

RCDB

Python tests

Run Configuration/Conditions Database (RCDB) stores run related information and conditions. It uses MySQL or SQLite databases to store information about runs and provides interfaces to search runs, manage data, automatic CODA integration, etc.

The interfaces available are:

  • Web site
  • Command line interface (CLI)
  • Python API
  • C++ API
  • Possibly JAVA API

Documentation:

https://github.com/JeffersonLab/rcdb/wiki

Web site:

One can visit HallD RCDB Web site as demo:
https://halldweb.jlab.org/rcdb/

SQLite db:

Daily updated SQLite database is available here:
https://halldweb.jlab.org/dist/rcdb.sqlite

rcdb's People

Contributors

aaust avatar dmitryromanovtest avatar drateots avatar furletov avatar markito3 avatar olgara avatar orca2017 avatar rjones30 avatar sdobbs avatar somovalex avatar t-britton avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rcdb's Issues

CI for RCDB?

Shoud work to integrate CI server with RCDB github

Run dependence for condition queries

We need to be able to specify some run-dependent conditions for standard search aliases e.g. "@is_production", so it would be nice if these conditions could be built into the aliases, or some other method.

Data Version Metadata

For the future: it would be nice to have a page displaying the information in the Version_info table in the data_monitoring DB. [note that this information may move to EventStore in the future].

Maybe it would be good to keep summary information on different run periods too, or how the runs map to run periods?

Logbook integration

David message:

I heard that you have now arranged your flight and will be here within the
week (yay!). Among the many, many things we’ll be asking you to do while
here, I wanted to request one more. I thought I’d put it in an e-mail now so
I don’t forget about it so feel free to flag this and look at it later.

We currently have a script that makes automatic entries into the e-log in
a special logbook called “HDRUN”. You can see this here:

https://logbooks.jlab.org/book/hdrun

It would be really nice to have a link in the RCDB pages pointing to the
log entry in HDLOG corresponding to the relevant run number. The
tricky part is getting the e-log entry number for a specific run number.
They do have a data API for the e-log that is accessible via web
query. This is described here:

https://logbooks.jlab.org/content/web-data-api

This returns data in JSON format which can then be parsed to figure
out this mapping. I don’t know if we want to setup a cron job to do this
occasionally and maintain our own DB of e-log entry <-> run number
or if this should be done every time the RCDB pages are accessed.
I’ll let you think about how best to approach it.

ALSO

On the home page of our main wiki there is a link called
“Run Info vers. 1”. I believe all of this info should be absorbed (if not already)
into the RCDB and this link replaced with one to the RCDB.

Add EPICS variables

Sean message

Add conditions information to the RCDB at begin and end of run.
I have an example python script that adds the EPICS variables we've been using in the offline at the beginning of the run, if you're interested, at: /group/halld/Users/sdobbs/rcdb_scripts/update_rcdb_conds.py

Some information should also be updated at the end of the run (if we get to that), e.g. the low-energy beam current measurements aren't calibrated, so we need to average the measurement over the run to get a reasonable value. I can provide example commands if you want.

From me:
All commands and help towards integration of data into CCDB are welcome and very appreciated.

Web site error for short run-ranges

From Paul:

Hey guys, I get an error when I want to look at runs 11590 - 11600 in the web browser, with an empty search query. Some small ranges work, some don’t, and the cutoff seems to be around 35 runs or so. Is there a hard-coded minimum somewhere?

NoneType in search string

Trying to search runs with:

 'RETR' in radiator_type

gives error

Error in performing request: argument of type 'NoneType' is not iterable 

while

radiator_type and 'RETR' in radiator_type

works

Import Sean data

From Sean

Finish importing information (incl. run conditions) from the spring run into the RCDB.
We'd like to use the RCDB to drive the offline monitoring software, instead of the run conditions table that's currently being used, so this would allow us to start modifying our software to use the RCDB.

rcdb sel doesn't work

rcdb sel "'PS_TAC_m8' in run_config" "run_config event_count"

And it says

File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/rcdb/cmd.py", line 301, in <module>
    cli(prog_name="rcdb")
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/core.py", line 1065, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/core.py", line 892, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/lustre/expphy/work/halld/home/somov/devel/rcdb/python/rcdb/cmd.py", line 142, in sel
    click.echo("#! {}".format(" ".join(["run_num"].extend(conditions_to_show))))
TypeError: can only join an iterable

Not all data is saved if run crashes

CODA calls RCDB only on the beginning of the run and at the end. If it crashes, only information available at the beginning is stored in the DB.

Problems with Run 10389

Justin pointed out that run 10389 doesn't show up when searching using @is_production. It looks like it should satisfy the criteria, though.

Run 11554 seems to have 5 entries in RCDB

Run= 11553 Date: 2016-04-20 00:54:30 triggers= 137822845 current= 98 nA radiator= J1A50 50um PARA target= FULL & Ready = 17934 Hz coll= 3.4mm hole

Run= 11554 Date: 2016-04-20 06:08:39 triggers= 59821129 current= 154 nA radiator= J1A50 50um PERP target= FULL & Ready = 17155 Hz coll= 3.4mm hole
Run= 11554 Date: 2016-04-20 06:08:39 triggers= 59821129 current= 154 nA radiator= J1A50 50um PERP target= FULL & Ready = 17155 Hz coll= 3.4mm hole
Run= 11554 Date: 2016-04-20 06:08:39 triggers= 59821129 current= 154 nA radiator= J1A50 50um PERP target= FULL & Ready = 17155 Hz coll= 3.4mm hole
Run= 11554 Date: 2016-04-20 06:08:39 triggers= 59821129 current= 154 nA radiator= J1A50 50um PERP target= FULL & Ready = 17155 Hz coll= 3.4mm hole

Run= 11555 Date: 2016-04-20 07:14:44 triggers= 6389322 current= 47 nA radiator= J1A50 50um PERP target= FULL & Ready = 5199 Hz coll= 3.4mm hole

Offline comments

We need another field where post-run comments could be added. It would be very useful if this could be be implemented before the next run.

test tag

I created a tag v0.00 just to have something definite to download and build. This can be removed at some point in the near future.

Accessing mysql rcdb from offsite

I'm running into problems connecting to the RCDB from offsite. I can connect to the database directly with mysql, but using the python rcdb connection doesn't seem to work. This command works fine at JLab, but produces the following error from offsite (confirmed by Sean):

python $RCDB_HOME/python/example_simple_queries.py mysql://[email protected]/rcdb

output:

['/home/mstaib/builds/rcdb/python/example_simple_queries.py', 'mysql://[email protected]/rcdb'] Traceback (most recent call last): File "/home/mstaib/builds/rcdb/python/example_simple_queries.py", line 23, in <module> db = RCDBProvider(args.connection_string) File "/home/mstaib/builds/rcdb/python/rcdb/provider.py", line 58, in __init__ self.connect(connection_string, check_version) File "/home/mstaib/builds/rcdb/python/rcdb/provider.py", line 110, in connect if not self.is_acceptable_sql_version(): File "/home/mstaib/builds/rcdb/python/rcdb/provider.py", line 68, in is_acceptable_sql_version .filter(SchemaVersion.version == rcdb.SQL_SCHEMA_VERSION) File "/home/mstaib/builds/rcdb/python/sqlalchemy/orm/query.py", line 2724, in scalar ret = self.one() File "/home/mstaib/builds/rcdb/python/sqlalchemy/orm/query.py", line 2693, in one ret = list(self) File "/home/mstaib/builds/rcdb/python/sqlalchemy/orm/query.py", line 2736, in __iter__ return self._execute_and_instances(context) File "/home/mstaib/builds/rcdb/python/sqlalchemy/orm/query.py", line 2751, in _execute_and_instances result = conn.execute(querycontext.statement, self._params) File "/home/mstaib/builds/rcdb/python/sqlalchemy/engine/base.py", line 914, in execute return meth(self, multiparams, params) File "/home/mstaib/builds/rcdb/python/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "/home/mstaib/builds/rcdb/python/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement compiled_sql, distilled_params File "/home/mstaib/builds/rcdb/python/sqlalchemy/engine/base.py", line 1146, in _execute_context context) File "/home/mstaib/builds/rcdb/python/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception exc_info File "/home/mstaib/builds/rcdb/python/sqlalchemy/util/compat.py", line 200, in raise_from_cause reraise(type(exception), exception, tb=exc_tb) File "/home/mstaib/builds/rcdb/python/sqlalchemy/engine/base.py", line 1139, in _execute_context context) File "/home/mstaib/builds/rcdb/python/sqlalchemy/engine/default.py", line 450, in do_execute cursor.execute(statement, parameters) File "/home/mstaib/builds/rcdb/python/mysql/connector/cursor.py", line 491, in execute self._handle_result(self._connection.cmd_query(stmt)) File "/home/mstaib/builds/rcdb/python/mysql/connector/connection.py", line 635, in cmd_query statement)) File "/home/mstaib/builds/rcdb/python/mysql/connector/connection.py", line 553, in _handle_result raise errors.get_exception(packet) sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1146 (42S02): Table 'rcdb.schema_versions' doesn't exist [SQL: 'SELECT count(schema_versions.version) AS count_1 \nFROM schema_versions \nWHERE schema_versions.version = %(version_1)s'] [parameters: {'version_1': 1}]

Indexing common queries

Querying the database is very slow and I think there are a few very common queries that get used (@is_production, status_approved etc). It would be great if we could do something, like indexing, to speed up these queries.

Can't Import rcdb

Tried running a python script that imported rcdb, however I see that I run into some issues just as I do "import rcdb". I'm running on a cluster with Red Hat 6.8, gcc 4.9.2, and Python 2.7.8. I successfully managed to git clone and source the environment.csh file.

Once I attempt to import I get the following message:
Traceback (most recent call last):
File "./GetRCDB_stuff.py", line 4, in
import rcdb
File "/gpfs/home/j/z/jzarling/Karst/gluex/gluex_build/rcdb/python/rcdb/init.py", line 109
all_types_dict = {t.name: t for t in db.get_condition_types()}
^
SyntaxError: invalid syntax

I'm unfamiliar with the rcdb source code, but I imagine this should be a simple fix for an expert.

RCDB 2 ROOT

An Idea have emerged that it looks easy to generate root file with "leafs" named after conditions.

Filtering runs and customizing output

  1. User can filter runs using readable search querries, like:
duration>300   event_count>10000 has_FDC

Or more sophisticated

4000-5000,50002,6000-6500   (duration>300 or event_count>10000)   has_FDC
  1. Queries should work the same for GUI and cli
  2. For WebGUI there should be a helper to build queries (autocompletion, list of available conditions, etc)
  3. Search filters should be a part of the link, so the link could be shared between users.
  4. User can choose a format of output (which columns to show, plain text or json or html, etc.)

environment set-up with tcsh

Noticed that environment.csh does not work if the source command uses an environment variable, e. g.,

source $HOME/rcdb/environment.csh

The current script grabs a string that has not undergone variable expansion.

I checked in a change on branch ugly_tcsh_setup that solves the problem by writing a script to /tmp and sourcing that to get the expansion. Not pretty.

Am using it in release 0.00 since it works.

JS API for querying RCDB

Use case 1:

RCDB web site should accept JSON object with request:

  1. conditions name to get
  2. query
  3. run range

And get json object containing values with it:

Example request:

{
 "query": "@is_production and even_count>1M",
 "run_min": 20000,
 "columns_to_get": ["event_count", "target_name", "beam_current"],
}

Example of response:

{
"result":
 [
   {"run":20000, "event_count": 1873843563,   "target_name": "DIAMOND",     "beam_current": 100.2  },
   {"run":20001, "event_count": 3453497345,   "target_name": "DIAMOND",     "beam_current": 101.2  }
 ]
}

wrong run end time for Run 11363

From Naomi:

I found a small RCDB error - the end time for 11363 is not correct. I
don't know the exact time but it should be closer to 23:52 on the 13th.
The last epics timestamp is at Wed 13 Apr 2016 11:51:51 PM EDT.

I'd fix it, but I'm not sure how to change the start/end time.

Store EVIO data

Sean message

The evio2db program is currently generating some information on each EVIO file that we also want to store in the RCDB. I think we want to save this information in a JSON blob, so some interface between the two programs should be worked out.

Problems accessing RCDB

I can't seem to access RCDB from the ifarm or counting house.

I updated to the latest rcdb master, and get the following errors:

gluon108:
Traceback (most recent call last):
File "update_epics_adesh.py", line 242, in
db = rcdb.RCDBProvider("mysql://rcdb:@hallddb/rcdb")
File "/u/group/halld/Users/sdobbs/rcdb/python/rcdb/provider.py", line 58, in init
self.connect(connection_string, check_version)
File "/u/group/halld/Users/sdobbs/rcdb/python/rcdb/provider.py", line 113, in connect
raise rcdb.errors.SqlSchemaVersionError(message)
rcdb.errors.SqlSchemaVersionError: SQL schema version doesn't match. Probably RCDB is connecting with wrong, empty or older/newer DB

ifarm:
Traceback (most recent call last):
File "update_epics_adesh.py", line 242, in
db = rcdb.RCDBProvider("mysql://rcdb:@gluondb1/rcdb")
File "/group/halld/Users/sdobbs/rcdb/python/rcdb/provider.py", line 58, in init
self.connect(connection_string, check_version)
File "/group/halld/Users/sdobbs/rcdb/python/rcdb/provider.py", line 110, in connect
if not self.is_acceptable_sql_version():
File "/group/halld/Users/sdobbs/rcdb/python/rcdb/provider.py", line 68, in is_acceptable_sql_version
.filter(SchemaVersion.version == rcdb.SQL_SCHEMA_VERSION)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/query.py", line 2559, in scalar
ret = self.one()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/query.py", line 2528, in one
ret = list(self)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/query.py", line 2571, in iter
return self._execute_and_instances(context)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/query.py", line 2584, in _execute_and_instances
close_with_result=True)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/query.py", line 2575, in _connection_from_session
**kw)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/session.py", line 893, in connection
execution_options=execution_options)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/session.py", line 898, in _connection_for_bind
engine, execution_options)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/orm/session.py", line 334, in _connection_for_bind
conn = bind.contextual_connect()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/engine/base.py", line 2039, in contextual_connect
self._wrap_pool_connect(self.pool.connect, None),
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/engine/base.py", line 2078, in _wrap_pool_connect
e, dialect, self)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/engine/base.py", line 1405, in _handle_dbapi_exception_noconnection
exc_info
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/engine/base.py", line 2074, in _wrap_pool_connect
return fn()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 376, in connect
return _ConnectionFairy._checkout(self)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 713, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 480, in checkout
rec = pool._do_get()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 1060, in _do_get
self._dec_overflow()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/util/langhelpers.py", line 60, in exit
compat.reraise(exc_type, exc_value, exc_tb)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 1057, in _do_get
return self._create_connection()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 323, in _create_connection
return _ConnectionRecord(self)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 449, in init
self.connection = self.**connect()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/pool.py", line 607, in __connect
connection = self.__pool._invoke_creator(self)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/engine/strategies.py", line 97, in connect
return dialect.connect(_cargs, _cparams)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/sqlalchemy/engine/default.py", line 385, in connect
return self.dbapi.connect(_cargs, _cparams)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/mysql/connector/__init
.py", line 179, in connect
return MySQLConnection(_args, *_kwargs)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/mysql/connector/connection.py", line 95, in init
self.connect(**kwargs)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/mysql/connector/abstracts.py", line 719, in connect
self._open_connection()
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/mysql/connector/connection.py", line 210, in _open_connection
self._ssl)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/mysql/connector/connection.py", line 144, in _do_auth
self._auth_switch_request(username, password)
File "/gluonfs1/gluex/sim-recon/ccdb_1.06.01.Linux_RHEL6-x86_64-gcc4.9.2/python/mysql/connector/connection.py", line 177, in _auth_switch_request
raise errors.get_exception(packet)
sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1045 (28000): Access denied for user 'rcdb'@'gluon108.jlab.org' (using password: YES)

error in searching

I tried:

@is_production and @is_empty_target

and got the following error:

Error in performing request: sequence item 5: expected string or Unicode, int found

rcnd: show_value() method does not work

I am trying to print a value for a condition using the CLI as in

python $RCDB_HOME/python/rcnd.py 11445 evio_files_count

This results in the following error (as do attempts with other runs/conditions):

Traceback (most recent call last):
  File "/Users/nathansparks/Scripts/hdpm/pkgs/rcdb/python/rcnd.py", line 295, in <module>
    show_value(db, args.run_number, args.condition_name)
  File "/Users/nathansparks/Scripts/hdpm/pkgs/rcdb/python/rcnd.py", line 102, in show_value
    if ct.is_many_per_run:
AttributeError: 'ConditionType' object has no attribute 'is_many_per_run'

If I comment out the is_many_per_run condition in the show_value() method, it correctly prints 130.

beam current incorrect in some runs

Based on Justin's suggestion, I am adding this note to the issues list.
screen shot 2016-03-11 at 7 05 35 am

I find that some runs that are omitted in my rcdb query using "@is_production" are likely good runs. Below is a list of runs taken on Mar 9:

10906.0 2016-03-09 06:32:53 51770555.0 160.757 JD70-119 20um PERP FULL & Ready 14168.1869184
10907.0 2016-03-09 07:39:06 127444512.0 0.154851 3x10-4 RL AMO FULL & Ready 18883.465995
10909.0 2016-03-09 10:23:11 422420.0 97.2931 J1A50 50um PARA FULL & Ready 311.519174041
10911.0 2016-03-09 11:04:53 63904377.0 -1.0 J1A50 50um PARA FULL & Ready 16964.2625431

The fifth entry is the average beam current. Runs 10907 and 10911 have beam currents of 0.154851 and -1 nA. I believe this is why they fail the query. However, it seems we had relatively good beam during that period (see attached screen shot). Is there a failure in obtaining the beam current? Perhaps there is a better method of getting a list of good runs?

Run dependent configuration parameters?

Is there a simple way to find out when the standard configuration file (FCAL_BCAL_PS_m7.conf) changed over the course of the run period? I can browse them for individual runs from the RCDB webpage, e.g. for run 11447 https://halldweb.jlab.org/rcdb/files/info/6250, but is there a way to tell at what time (or run number) the file was changed?

I do see the label "DB id=6250 Raw" which I guess indicates an index for this config file? Maybe thats incremented when the file changes? If so, how can I query the file DB id vs run number?

Store more configuration files

It seems like some of the DAQ configuration files are not being stored in RCDB, or it's not clear where to find them. I ran into this problem when trying to find the "NPED" setting for the recent cosmic runs. These files should at least either be stored in RCDB or made more accessible. Maybe there is a better way to expose module configuration parameters.

Adding older EPICS data workflow

(Continue of the discussion in #15)
When we introduce a new condition type and a way to fill it for the next runs (parsing logs, calling EPICS), also we have a need to fill this value for the runs, that are already in DB.

For log files, the workflow in this case is to reparse the files. For the EPICS variables, as Sean says, it is trickier. Assuming you can't just run update_epics.py and give it the old run, what would be the workflow?

Introducing one more script like update_epics_for_existing_runs.py?

C++ API example

When the C++ API is ready, it would be nice to have an example of how to get the DAC settings for different crates.

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.