EIC issueshttps://eicweb.phy.anl.gov/groups/EIC/-/issues2022-03-21T23:46:01Zhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/87Figure out cleaner solution to #403: non-const in initializer list needs narr...2022-03-21T23:46:01ZWouter DeconinckFigure out cleaner solution to #403: non-const in initializer list needs narrowingProblem: calculations are locally done in double, but need to be cast into float for output, ideally without any effort. We also want users to use nested initializer lists for the components of the output objects. And we don't want lots ...Problem: calculations are locally done in double, but need to be cast into float for output, ideally without any effort. We also want users to use nested initializer lists for the components of the output objects. And we don't want lots of warnings (or, even worse, errors in clang that work in gcc).
Too much `decltype` in https://eicweb.phy.anl.gov/EIC/juggler/-/merge_requests/403
Maybe add a utility:
```cpp
namespace eicd {
template <class Vector3, class Float = double>
Vector3 castToFloatVector(const Float v1, const Float v2, const Float v3) {
return {static_cast<float>(v1),
static_cast<float>(v2),
static_cast<float>(v3)};
}
}
```Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/benchmarks/physics_benchmarks/-/issues/43DEMP Pion FF Benchmark2022-03-21T17:08:42ZStephen JD KayDEMP Pion FF BenchmarkI'm going to try and create a new physics benchmark for my pion form factor studies. These studeis look at Deep Exclusive Meson Production (DEMP) reactions where we have a pion, electron and neutron in the final state. The neutron is ver...I'm going to try and create a new physics benchmark for my pion form factor studies. These studeis look at Deep Exclusive Meson Production (DEMP) reactions where we have a pion, electron and neutron in the final state. The neutron is very forward focused and will be detected in the ZDC. The pion and electron are detected in central detectors.
These events use a custom event generator which can be found here - https://github.com/JeffersonLab/DEMPGen
I've produced files from this generator and processed them through the ATHENA simulation. The next step is to analyse the events and see how well the events of interest can be identified. Goals of the benchmark are as follows -
1. Identify pi/e'/n tripe coincidence events
2. Produce event distributions for events of interest
3. Determine event rates binned in Q2 and -t, from this form factor values can be projected
To begin with, I'll just extract and plot some basic event information (at truth level to begin with) for the processed DEMP events. The end goal is effectively to add a new set of points to the attached plot where we have projections from the ATHENA simulation too.![fpi_ecce_err21](/uploads/d8a0852dccdb2b7d8645ae5f5fc4f097/fpi_ecce_err21.png)
If this works well, the next step would be to try and create a similar benchmark for Kaon FF studies.Stephen JD KayStephen JD Kayhttps://eicweb.phy.anl.gov/EIC/tutorials/eic_tutorial/-/issues/12Revise part5 with new data model (eic:: to eicd:: etc)2022-03-20T15:07:16ZWouter DeconinckRevise part5 with new data model (eic:: to eicd:: etc)Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/issues/62Automatically test any cxx files for compilability2022-03-19T17:10:33ZWouter DeconinckAutomatically test any cxx files for compilabilityEssentially
```bash
for i in benchmarks/* ; do b=$(basename $i) ; for d in scripts analysis ; do if [ -d benchmarks/$b/$d ] ; then compile_analyses.py --dir $d $b ; fi ; done ; done
```
but compile_analysis.py cannot fail when there are...Essentially
```bash
for i in benchmarks/* ; do b=$(basename $i) ; for d in scripts analysis ; do if [ -d benchmarks/$b/$d ] ; then compile_analyses.py --dir $d $b ; fi ; done ; done
```
but compile_analysis.py cannot fail when there are zero cxx files in the specified directory.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/59Detailed Forward GEM TRD2022-03-19T08:03:00ZDmitry RomanovDetailed Forward GEM TRDYulia FurletovaYulia Furletovahttps://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/148HCal geometry development2022-03-04T19:23:20ZLeszek KosarzewskiHCal geometry developmenthttps://eicweb.phy.anl.gov/EIC/eicd/-/issues/26Raw (digitized) hit model redundant, use single unified RawHit2022-03-01T17:15:28ZSylvester JoostenRaw (digitized) hit model redundant, use single unified RawHitCurrently all digitized hit structures store the same basic information: 64bit cell ID, 32bit time stamp and 32bit value. There is no good reason for them to be separate classes. We should unify them into a single RawHit structure as thi...Currently all digitized hit structures store the same basic information: 64bit cell ID, 32bit time stamp and 32bit value. There is no good reason for them to be separate classes. We should unify them into a single RawHit structure as this will provide us with more flexibility down the road. And when needed we can add data structures that actually store different information as we go. Proposed structure:
```
RawHit:
Description: Raw detector hit storing one 32-bit word of information
Members:
- uint64_t cellID
- uint32_t timeStamp
- uint32_t value
```https://eicweb.phy.anl.gov/EIC/eicd/-/issues/19VectorXYZT::mag() may be confusing since not four-vector magnitude2022-02-24T02:43:09ZWouter DeconinckVectorXYZT::mag() may be confusing since not four-vector magnitude`mag()` is defined as
```code
double mag() const {return std::hypot(x, y, z);}
```
but the magnitude of a fourvector is traditionally defined as `mass()` (maybe up to a sign)
```code
double mass() const {return sqrt(t*t - x*x - y*y - z*z...`mag()` is defined as
```code
double mag() const {return std::hypot(x, y, z);}
```
but the magnitude of a fourvector is traditionally defined as `mass()` (maybe up to a sign)
```code
double mass() const {return sqrt(t*t - x*x - y*y - z*z);}
```
This might lead to confusion when people start to use this in things like `q2 = (ef-ei).mag()`.https://eicweb.phy.anl.gov/EIC/benchmarks/physics_benchmarks/-/issues/41Merge all options/reconstruction.*py and use multiple PodioOutput writers wit...2022-02-23T22:57:06ZWouter DeconinckMerge all options/reconstruction.*py and use multiple PodioOutput writers with branch filtersThat will result in more consistent treatments.That will result in more consistent treatments.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/85Re-enable inclusive kinematics calculations2022-02-22T05:57:44ZWouter DeconinckRe-enable inclusive kinematics calculationshttps://eicweb.phy.anl.gov/EIC/juggler/-/merge_requests/386https://eicweb.phy.anl.gov/EIC/juggler/-/merge_requests/386Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/issues/61Job Failed #586572: sim_track_hits.cxx needs all tracker hit collections incl...2022-02-22T05:00:14ZWouter DeconinckJob Failed #586572: sim_track_hits.cxx needs all tracker hit collections included againJob [#586572](https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/586572) failed for 844289cd3ca4309ee397c60b034761cdd713a071:
In the transition to EDM4hep the hit collections were demultiplexed and the sim_track_hits.c...Job [#586572](https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/586572) failed for 844289cd3ca4309ee397c60b034761cdd713a071:
In the transition to EDM4hep the hit collections were demultiplexed and the sim_track_hits.cxx was modified to only look at 1 of those multiple collections. We need to change that back so all hits are included.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/147Fix DIRC overlaps and make it great again2022-02-21T03:00:49ZDmitry RomanovFix DIRC overlaps and make it great againFix DIRC overlap and fix other problems preventing it from use as a main DIRC implementationFix DIRC overlap and fix other problems preventing it from use as a main DIRC implementationDmitry RomanovDmitry Romanovhttps://eicweb.phy.anl.gov/EIC/benchmarks/reconstruction_benchmarks/-/issues/83Switch to edm4hep removed g4Parent selection in benchmarks/imaging_ecal/scrip...2022-02-19T04:54:47ZWouter DeconinckSwitch to edm4hep removed g4Parent selection in benchmarks/imaging_ecal/scripts/draw_cluster.pyWhile this may run correctly with the edm4hep model, the functionality needs to be checked again.While this may run correctly with the edm4hep model, the functionality needs to be checked again.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/84edm4hep::Vector3f etc: introduce theta, phi, eta, mag functions2022-02-18T02:10:15ZWouter Deconinckedm4hep::Vector3f etc: introduce theta, phi, eta, mag functionsFile upstream bug, change in all the places where we now calculate this ourselves.File upstream bug, change in all the places where we now calculate this ourselves.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/83ParticleSvc: Return charge a float to prevent issues with narrowing2022-02-18T02:01:40ZWouter DeconinckParticleSvc: Return charge a float to prevent issues with narrowingint (uint64_t) requires narrowing when represented in float. Not an actual problem for a charge that is +/- an integer few (where it can always be represented exactly), but even a 32bit float can represent all these charges correctly in ...int (uint64_t) requires narrowing when represented in float. Not an actual problem for a charge that is +/- an integer few (where it can always be represented exactly), but even a 32bit float can represent all these charges correctly in the same bit space and would not generate warnings.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/82Document auto/float/double strategy and apply consistently2022-02-18T01:45:25ZWouter DeconinckDocument auto/float/double strategy and apply consistentlyE.g. input data has mixture of float and double, algorithm should (typically) upgrade this to double, explicit static_cast<float> for output data that is float, but not for output data saved as double.E.g. input data has mixture of float and double, algorithm should (typically) upgrade this to double, explicit static_cast<float> for output data that is float, but not for output data saved as double.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/81MC2SmearedParticle: E^2 = p^2 + m^2 should be valid after smearing2022-02-18T01:34:47ZWouter DeconinckMC2SmearedParticle: E^2 = p^2 + m^2 should be valid after smearingWe just smear momentum, but don't modify energy.We just smear momentum, but don't modify energy.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/80Test the Juggler Birks constant treatment2022-02-18T01:22:34ZWouter DeconinckTest the Juggler Birks constant treatmenthttps://eicweb.phy.anl.gov/EIC/juggler/-/merge_requests/382#note_17718https://eicweb.phy.anl.gov/EIC/juggler/-/merge_requests/382#note_17718Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/145Document how to edep filter by detector type to avoid killing optical photons...2022-02-16T22:38:33ZWouter DeconinckDocument how to edep filter by detector type to avoid killing optical photons on photomultipliersWouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/eicd/-/issues/21add IRT output data structures2022-02-11T16:12:10ZChristopher Dilksadd IRT output data structuresChristopher DilksChristopher Dilks