Comments (3)
Hi Philipp,
Most of the concerns you described here are the pillars of what we have been working at the last months, the new parameter repository for R3B parameters. This new repository is already prepared for s455 and also as a template. so anyone can clone it and create new instances of it for every experiment. The idea is to massively use FairRoot instances of FairRunTimeDb so we can manage parameter versions with a timestamp granularity for every detector. Parameters are loaded in this way and the unpacking macros are prepared to read a metafile, load the versions and apply them when needed. Experimental dependant geometries are also included in each experiment repository and also simulation and other macros needed.
This framework structure and details have been discussed from time to time in analysis meetings. These repositories are private, but anyone belonging to the R3B collaboration can ask for it. Just ask Dmytro, Héctor or Valerii.
from r3broot.
@kresan: can I please have access to that repository?
Generally, I would prefer if the relevant repositories were public readable. Our calibration parameters and detector geometries should not be secret.
Without having seen the repository, I would prefer to use less FairRoot stuff, not more. I do not exactly see what FairRuntimeDb gives you that a filename (computed for each detector/parameter type based on the initial WRTS) would not also give you in a more transparent, flexible manner.
If we want the parameters under git control, human readable file formats (for e.g. calibrations) are also beneficial there. Compare the following diffs:
*.root:
Binary files cal_old.root and cal_new.root differ
*.par:
@@ -7708,7 +7708,7 @@
-6.7447 1.24533 -4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 -6.7447 1.24533 \
-4.79958 1.23281 -6.7447 1.24533 -4.79958 1.23281 -4.79958 1.23281 -6.7447 1.24533 \
-4.79958 1.23281 -6.7447 1.24533 -6.7447 1.24533 -6.7447 1.24533 -4.79958 1.23281 \
- -6.7447 1.24533 -6.7447 1.24533 -2.86886 1.22048 -4.79958 1.23281 -4.79958 1.23281 \
+ -6.7447 1.24533 -6.7447 1.33542 -5.74362 1.22048 -4.79958 1.23281 -4.79958 1.23281 \
-6.7447 1.24533 -4.79958 1.23281 -7.92316 1.28317 -4.79958 1.23281 -4.79958 1.23281 \
-4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 \
-4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 -4.79958 1.23281 \
*.csv:
- 1236, 1.24533, -2.86886, 0
+ 1236, 1.33542, -5.74362, 0
*.json
- 1236: {"slope": 1.24533, "offset": -2.86886, "p_range":false},
+ 1236: {"slope": 1.33542, "offset": -5.74362, "p_range":false},
While I dislike the first two options, either of the last two would be fine with me. (csv is easily parse-able, but perhaps a bit more fragile. json is reasonably parsed only by a dedicated library, but a bit more verbose and can support more complex data structures. Not that we would want them in the first place: I would argue for one file per parameter set.)
from r3broot.
The R3B Technical Board decided that our parameters should be, at least for a time, private, with complete access for the R3B members. That is the reason why private repositories are going to be used for the parameters within each experiment.
In R3BRoot, we are going to define procedures using the FairRoot framework to obtain, store, merge and apply them on a WRTS basis. Corrections and improvements in the code and debugging are very welcome, and your comments above, pointing on real problems, deserve further investigation and amend. But a large modification of the procedures already existing and successfully working, as it was also suggested above, requires a large manpower involvement that we do not have, mainly when many people is already instructed and using the present scheme.
The procedures for the management of the parameters are being worked out in different analysis meetings in the last months. It would be very beneficial if any proposal for modification would take into account the work and ideas of others members of the collaboration. I would recommend the participation in these meetings for all the developers.
Of course, the users are free to select their own scheme for managing parameters and perform the analysis, but the reproducibility and traceability of any result produced (and to be scientifically approved by the collaboration) would be difficult if the R3BRoot standard procedures and parameter management is not observed.
from r3broot.
Related Issues (20)
- UCESB cannot populate items in client_struct_info with client.setup HOT 2
- Proposal for reimplementing the TofD calibration
- Could NOT find GTest HOT 4
- Design Guidelines for R3BRoot HOT 1
- Unknown Type name 'FairMCTracks' HOT 1
- Error in <TExMap::Add>: key is not unique HOT 1
- Clang-formatting - what should be included, what should be removed, future additions HOT 10
- File to generate Hit Parameters using Los not in GitHub repository HOT 5
- Proposal to remove ext files from dev branch HOT 19
- Bug CALIFA QPID Simulation HOT 4
- Forbid pull requests from the dev branch? HOT 6
- Spell fixes by `codespell` HOT 3
- FATAL error in unpacker HOT 4
- Auto-generated ext_h101 structs HOT 3
- Policy discussion: on pull requests, merging and reviews HOT 12
- Unknown CMake command "fair_pad" HOT 2
- Added new repository for lmds and analysis CI tests HOT 2
- About clang-tidy and code standard HOT 11
- Problems with the compilation of new reader data structures: TTTX HOT 4
- [Proposal] Metadata file for experiments? HOT 24
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from r3broot.