EIC issueshttps://eicweb.phy.anl.gov/groups/EIC/-/issues2022-06-29T03:32:40Zhttps://eicweb.phy.anl.gov/EIC/benchmarks/reconstruction_benchmarks/-/issues/88TrackProjector benchmark2022-06-29T03:32:40ZWouter DeconinckTrackProjector benchmarkEnable the track projector benchmarkEnable the track projector benchmarkWouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/102Job Failed #727010: acts@:19.3.0 fails to compile TrackProjector2022-08-09T15:13:54ZWouter DeconinckJob Failed #727010: acts@:19.3.0 fails to compile TrackProjectorJob [#727010](https://eicweb.phy.anl.gov/EIC/juggler/-/jobs/727010) failed for af1ac54e8f170dc3d4074631089a58ebc5e99af8:
Upstream: https://github.com/acts-project/acts/pull/1289Job [#727010](https://eicweb.phy.anl.gov/EIC/juggler/-/jobs/727010) failed for af1ac54e8f170dc3d4074631089a58ebc5e99af8:
Upstream: https://github.com/acts-project/acts/pull/1289Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/101`m_BField->getField(pos,bCache).value()` compile failure in eigen with gcc@122022-06-25T00:10:05ZWouter Deconinck`m_BField->getField(pos,bCache).value()` compile failure in eigen with gcc@12```
291 inlined from 'void Eigen::PlainObjectBase<Derived>::_init1(const Eigen::DenseBase<ElseDerived>&) [with T = Eigen::Transpose<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::Matrix...```
291 inlined from 'void Eigen::PlainObjectBase<Derived>::_init1(const Eigen::DenseBase<ElseDerived>&) [with T = Eigen::Transpose<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::Matrix<d
ouble, 3, 1>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 3, 1> > > >; OtherDerived = Eigen::Transpose<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double
, double>, const Eigen::Matrix<double, 3, 1>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 3, 1> > > >; Derived = Eigen::Matrix<double, 1, 3>]' at /opt/software/linux-
ubuntu22.04-skylake/gcc-12.1.0/eigen-3.4.0-xmmbrla23rhtxamudlr2l7362yihflsn/include/eigen3/Eigen/src/Core/PlainObjectBase.h:883:25,
292 inlined from 'Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const T&) [with T = Eigen::Transpose<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::Matrix
<double, 3, 1>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 3, 1> > > >; _Scalar = double; int _Rows = 1; int _Cols = 3; int _Options = 1; int _MaxRows = 1; int _MaxC
ols = 3]' at /opt/software/linux-ubuntu22.04-skylake/gcc-12.1.0/eigen-3.4.0-xmmbrla23rhtxamudlr2l7362yihflsn/include/eigen3/Eigen/src/Core/Matrix.h:332:31,
293 inlined from 'Eigen::DenseBase<Derived>::EvalReturnType Eigen::DenseBase<Derived>::eval() const [with Derived = Eigen::Transpose<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::Mat
rix<double, 3, 1>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 3, 1> > > >]' at /opt/software/linux-ubuntu22.04-skylake/gcc-12.1.0/eigen-3.4.0-xmmbrla23rhtxamudlr2l73
62yihflsn/include/eigen3/Eigen/src/Core/DenseBase.h:412:62,
294 inlined from 'std::ostream& Eigen::operator<<(std::ostream&, const DenseBase<Derived>&) [with Derived = Transpose<CwiseBinaryOp<internal::scalar_quotient_op<double, double>, const Matrix<double, 3, 1>, const CwiseNullar
yOp<internal::scalar_constant_op<double>, const Matrix<double, 3, 1> > > >]' at /opt/software/linux-ubuntu22.04-skylake/gcc-12.1.0/eigen-3.4.0-xmmbrla23rhtxamudlr2l7362yihflsn/include/eigen3/Eigen/src/Core/IO.h:253:32,
295 inlined from 'MsgStream& operator<<(MsgStream&, const T&) [with T = Eigen::Transpose<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::Matrix<double, 3, 1>, const Eigen::CwiseNullary
Op<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 3, 1> > > >]' at /opt/software/linux-ubuntu22.04-skylake/gcc-12.1.0/gaudi-36.5-scgkwadreca7hlk34q57xs7ccyotugf7/include/GaudiKernel/MsgStream.h:304
:20,
296 inlined from 'virtual StatusCode Jug::Reco::CKFTracking::initialize()' at /home/wdconinc/.spack/stage/spack-stage-juggler-master-szupytavynub76mjf5bggc7fe77kczk5/spack-src/JugTrack/src/components/CKFTracking.cpp:92:64:
>> 297 /usr/lib/gcc/x86_64-linux-gnu/12/include/emmintrin.h:131:24: error: '*(__m128d_u*)((char*)&<unnamed> + offsetof(Eigen::Matrix<double, 3, 1, 0, 3, 1>,Eigen::Matrix<double, 3, 1, 0, 3, 1>::<unnamed>.Eigen::PlainObjectBase<Eig
en::Matrix<double, 3, 1, 0, 3, 1> >::<unnamed>.Eigen::MatrixBase<Eigen::Matrix<double, 3, 1, 0, 3, 1> >::<unnamed>.Eigen::DenseBase<Eigen::Matrix<double, 3, 1, 0, 3, 1> >::<unnamed>.Eigen::DenseCoeffsBase<Eigen::Matrix<doub
le, 3, 1, 0, 3, 1>, 3>::<unnamed>.Eigen::DenseCoeffsBase<Eigen::Matrix<double, 3, 1, 0, 3, 1>, 1>::<unnamed>.Eigen::DenseCoeffsBase<Eigen::Matrix<double, 3, 1, 0, 3, 1>, 0>::<unnamed>))' may be used uninitialized [-Werror=m
aybe-uninitialized]
298 131 | return *(__m128d_u *)__P;
299 | ^~~
300 /home/wdconinc/.spack/stage/spack-stage-juggler-master-szupytavynub76mjf5bggc7fe77kczk5/spack-src/JugTrack/src/components/CKFTracking.cpp: In member function 'virtual StatusCode Jug::Reco::CKFTracking::initialize()':
301 /home/wdconinc/.spack/stage/spack-stage-juggler-master-szupytavynub76mjf5bggc7fe77kczk5/spack-src/JugTrack/src/components/CKFTracking.cpp:91:68: note: '<anonymous>' declared here
302 91 | auto b = m_BField->getField({0.0,0.0,double(z)},bCache).value()/(Acts::UnitConstants::T);
303 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
```Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/100Build all algorithms to avoid stale code2022-06-25T04:12:34ZWouter DeconinckBuild all algorithms to avoid stale codeCurrently we use explicit lists of files in [gaudi_add_module](https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugTrack/CMakeLists.txt#L9) calls in the CMakeLists.txt. While GLOB is not recommended (since added files do not cause a ...Currently we use explicit lists of files in [gaudi_add_module](https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugTrack/CMakeLists.txt#L9) calls in the CMakeLists.txt. While GLOB is not recommended (since added files do not cause a change to CMakeLists.txt), we could enable this with `CONFIGURE_DEPENDS` or make it a two step procedure.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/99TrackProjector: generalize by passing target surface as option2022-06-25T03:39:33ZWouter DeconinckTrackProjector: generalize by passing target surface as optionThe current [TrackProjector](https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugTrack/src/components/TrackProjector.cpp) has some hardcoded assumptions, i.e. https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugTrack/src/componen...The current [TrackProjector](https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugTrack/src/components/TrackProjector.cpp) has some hardcoded assumptions, i.e. https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugTrack/src/components/TrackProjector.cpp#L128-129
```c++
if (pathlength_at_reflayer<0 && volume==29 && layer==4 && trackstate.hasCalibrated()) pathlength_at_reflayer = pathlength; // 2nd outter barrel
if (pathlength_at_reflayer<0 && pathlength>1700) pathlength_at_reflayer = pathlength; // endcap GEM layer
```
We should change this to be more generic.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/detectors/ecce/-/issues/18dRICH: increase z-length, and add space for services2022-07-20T09:18:10ZChristopher DilksdRICH: increase z-length, and add space for servicesnew dimensions and z-position from <https://indico.bnl.gov/event/16314/>
![2022-07-19-203317_783x439_scrot](/uploads/8cb4dcd2541e7f072548d3d6aa3717cf/2022-07-19-203317_783x439_scrot.png)new dimensions and z-position from <https://indico.bnl.gov/event/16314/>
![2022-07-19-203317_783x439_scrot](/uploads/8cb4dcd2541e7f072548d3d6aa3717cf/2022-07-19-203317_783x439_scrot.png)Christopher DilksChristopher Dilkshttps://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/issues/64Check ZDC particle gun acceptance2022-07-05T19:45:16ZAlex JentschCheck ZDC particle gun acceptanceAlex JentschAlex Jentschhttps://eicweb.phy.anl.gov/EIC/detectors/ip6/-/issues/56ZDC rotation and alignment2022-06-22T14:01:25ZAlex JentschZDC rotation and alignmentAlex JentschAlex Jentschhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/98Enable -Wsign-conversion to avoid implicit conversions2022-06-22T01:24:09ZWouter DeconinckEnable -Wsign-conversion to avoid implicit conversionsYet another signed to unsigned implicit conversion caused under threshold reconstructed hit energies to overflow... !423 !415 #90Yet another signed to unsigned implicit conversion caused under threshold reconstructed hit energies to overflow... !423 !415 #90Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/97ClusterRecoCoG introduces NaN in cluster energies2022-07-05T15:09:06ZWouter DeconinckClusterRecoCoG introduces NaN in cluster energiesFor `tw == 0` the following [lines](https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugReco/src/components/ClusterRecoCoG.cpp#L199) introduce a `NaN`:
```c++
if (tw == 0.) {
warning() << "zero total weights encountered, yo...For `tw == 0` the following [lines](https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugReco/src/components/ClusterRecoCoG.cpp#L199) introduce a `NaN`:
```c++
if (tw == 0.) {
warning() << "zero total weights encountered, you may want to adjust your weighting parameter." << endmsg;
}
cl.setPosition(v / tw);
```Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/irt/-/issues/7refactor `EVALUATION` for the `edm4hep` update2022-08-04T17:04:10ZChristopher Dilksrefactor `EVALUATION` for the `edm4hep` updateSince the data model has changed, we need to refactor some of the `evaluation` code. Things to do include:
- update our usage of `eic::Index`, since we now use PODIO relations instead
- should we use `edm4hep::MCParticle` to replace `dd4...Since the data model has changed, we need to refactor some of the `evaluation` code. Things to do include:
- update our usage of `eic::Index`, since we now use PODIO relations instead
- should we use `edm4hep::MCParticle` to replace `dd4pod::Geant4Particle`?
- how to match `ReconstructedParticle` to the MC generated particle? we no longer have `mcID`, do we need to add a relation in `eicd`?https://eicweb.phy.anl.gov/EIC/juggler/-/issues/96Implement SimTrackerHitsMerger to overlay/merge background events2022-06-18T03:28:20ZWouter DeconinckImplement SimTrackerHitsMerger to overlay/merge background eventsSimTrackerHitsCollector is an example class implementation.
Specs:
- SimTrackerHitsMerger can take a number of input collections, along with probabilities for each to be picked,
- With probability, it merges one of each of the input col...SimTrackerHitsCollector is an example class implementation.
Specs:
- SimTrackerHitsMerger can take a number of input collections, along with probabilities for each to be picked,
- With probability, it merges one of each of the input collections into the output collection.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/detectors/ecce/-/issues/17dRICH: produce IRT geometry objects2022-07-21T04:18:58ZChristopher DilksdRICH: produce IRT geometry objectsWe would like to connect the IRT geometry objects to the geometry description. We have tried doing this at the `Juggler` level, using `GeoSvc`, but find it more practical to keep the IRT geometry code integrated directly *with* the detec...We would like to connect the IRT geometry objects to the geometry description. We have tried doing this at the `Juggler` level, using `GeoSvc`, but find it more practical to keep the IRT geometry code integrated directly *with* the detector geometry code. We could automate the production of a "configuration" file containing IRT geometry objects, generated by `src/DRICH_geo.cpp` as needed.
This is how we ran for ATHENA, using https://eicweb.phy.anl.gov/EIC/detectors/athena/-/merge_requests/331 but we will need to think about how to best handle the extra configuration file in CI pipelines.Christopher DilksChristopher Dilkshttps://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/issues/63Job Failed #707754: intermittent field map errors2022-06-14T21:00:48ZWouter DeconinckJob Failed #707754: intermittent field map errorsJob [#707754](https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/707754) failed for c2501e8ac89d393cf7da919715a14e5ad96752f6:Job [#707754](https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/707754) failed for c2501e8ac89d393cf7da919715a14e5ad96752f6:https://eicweb.phy.anl.gov/EIC/benchmarks/common_bench/-/issues/6Add JUGGLER_DETECTOR_CONFIG2022-06-15T00:40:25ZWouter DeconinckAdd JUGGLER_DETECTOR_CONFIGWe need a way to specify the geometry entry point for benchmarks.We need a way to specify the geometry entry point for benchmarks.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/detectors/ecce/-/issues/16Revert e20517c042f107fa539e7a77100ebba0f3ea63a8 (source dir pollution)2022-06-15T00:05:21ZWouter DeconinckRevert e20517c042f107fa539e7a77100ebba0f3ea63a8 (source dir pollution)e20517c042f107fa539e7a77100ebba0f3ea63a8 was introduced because downstream uses DETECTOR_PATH pointing to the source directory.e20517c042f107fa539e7a77100ebba0f3ea63a8 was introduced because downstream uses DETECTOR_PATH pointing to the source directory.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/benchmarks/common_bench/-/issues/5DETECTOR_PATH should point to CMAKE_INSTALL_PREFIX subtree, not source dir2023-10-02T00:31:22ZWouter DeconinckDETECTOR_PATH should point to CMAKE_INSTALL_PREFIX subtree, not source dirRight now DETECTOR_PATH is set (in `env.sh`) to ${LOCAL_PREFIX}/detector which is where the detector geometry repository is cloned into.
```console
## detector prefix: prefix for the detector definitions
export DETECTOR_PREFIX="${LOCAL_P...Right now DETECTOR_PATH is set (in `env.sh`) to ${LOCAL_PREFIX}/detector which is where the detector geometry repository is cloned into.
```console
## detector prefix: prefix for the detector definitions
export DETECTOR_PREFIX="${LOCAL_PREFIX}/detector"
mkdir -p ${DETECTOR_PREFIX}
## detector path: actual detector definition path
export DETECTOR_PATH="${DETECTOR_PREFIX}/${JUGGLER_DETECTOR}"
```
That means any `make install` doesn't actually get used.Wouter DeconinckWouter Deconinckhttps://eicweb.phy.anl.gov/EIC/juggler/-/issues/95JugFast::MatchClusters needs updating for EDM4hep migration2022-06-10T18:30:37ZSylvester JoostenJugFast::MatchClusters needs updating for EDM4hep migrationhttps://eicweb.phy.anl.gov/EIC/benchmarks/physics_benchmarks/-/issues/47JugFast::MatchClusters needs updating for EDM4hep migration2022-06-10T18:30:38ZSylvester JoostenJugFast::MatchClusters needs updating for EDM4hep migrationhttps://eicweb.phy.anl.gov/EIC/detectors/ecce/-/issues/15How can we identify downstream (in sh or py files) which features are include...2022-06-07T02:44:33ZWouter DeconinckHow can we identify downstream (in sh or py files) which features are included in the detector?Use cases:
* we want to run a job only when the geometry has MRICH, but not when the geometry has PFRICH.
* we want a python options file to include the imaging layer algorithms when we have an imaging calorimeter.
We are using JUGGLER_...Use cases:
* we want to run a job only when the geometry has MRICH, but not when the geometry has PFRICH.
* we want a python options file to include the imaging layer algorithms when we have an imaging calorimeter.
We are using JUGGLER_DETECTOR and JUGGLER_DETECTOR_VERSION, but that doesn't scale beyond acadia/other and athena/ecce, not more fine-grained.