FairSource for the timeslice-based reconstruction output in the online binary
The class provides an implementation of FairSource (CbmSourceRecoTimeslice) to read the hits and tracks, which are stored during a timeslice reconstruction in the online binary. The class CbmTaskInspectRecoTimeslice is a demonstrator of accessing the corresponding vectors.
Merge request reports
Activity
added Online Reconstruction labels
requested review from @p.-a.loizeau
assigned to @v.friese
added 1 commit
- 2896220f - new source class for reconstructed timeslice output
added 1 commit
- 1936e846 - new source class for reconstructed timeslice output
added 1 commit
- 8e6b5432 - new source class for reconstructed timeslice output
Dear @d.smith, @fweig, @se.gorbunov, @s.zharko, @f.uhlig, @v.friese, @p.-a.loizeau,
you have been identified as code owner of at least one file which was changed with this merge request.
Please check the changes and approve them or request changes.
added CodeOwners label
@p.-a.loizeau Looks fine from my side. Are you able to have a look?
added 18 commits
-
8e6b5432...4613e86e - 17 commits from branch
computing:master
- 2d32d066 - new source class for reconstructed timeslice output
-
8e6b5432...4613e86e - 17 commits from branch
- Resolved by Sergei Zharko
@s.zharko There are some "missing libraries after installation" found by the new test under
vae24
:Processing /tmp/custom-executor874274408/builds/computing/cbmroot/install/share/cbmroot/macro//loadlib.C("/tmp/custom-executor874274408/builds/computing/cbmroot/install/lib/libCbmRecoTasks.so", "CbmReco")... In file included from libCbmRecoTasks dictionary payload:105: /tmp/custom-executor874274408/builds/computing/cbmroot/install/include/CbmTaskInspectRecoTimeslice.h:12:10: fatal error: 'global/RecoResults.h' file not found #include "global/RecoResults.h"
Processing /tmp/custom-executor874274408/builds/computing/cbmroot/install/share/cbmroot/macro//loadlib.C("/tmp/custom-executor874274408/builds/computing/cbmroot/install/lib/libCbmRecoSteer.so", "CbmRecoUnpack")... Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState: Missing FileEntry for KFParticle.h requested to autoload type KFParticle In file included from libCbmRecoSteer dictionary payload:101: /tmp/custom-executor874274408/builds/computing/cbmroot/install/include/CbmSourceRecoTimeslice.h:12:10: fatal error: 'global/RecoResultsInputArchive.h' file not found #include "global/RecoResultsInputArchive.h"
=> From the error messages, it could be a simple re-occurence of the "partial path in include VS flat path in install" problem
Similarly to what I advised Daniel in the redmine issue about the HAL library, you should be able to test it locally by
- Logging in to
vae24.hpc
- Compiling and installing your branch somewhere in
/temp
- Temporarily moving the source and build folders to new names
- Sourcing
<install>/bin/CbmRootConfig.sh
- Opening root and entering the two following commands:
gInterpreter->AutoParse("CbmReco") gInterpreter->AutoParse("CbmRecoUnpack")
I am not sure what is going wrong with the other 4 tests, so I tried to restart them (they should show the same printout bu had completely different errors, with stuff related to more basic origins like boost or the OS)
EDIT: confirmed to be the only errors after rerunning the other 4 "failing jobs", now they all give the same answer (sot sure what initially went wrong)Edited by Pierre-Alain Loizeau - Logging in to
added 1 commit
- f0168b0d - new source class for reconstructed timeslice output
- Resolved by Sergei Zharko
@s.zharko Jobs are not starting because all docker runners have all slots occupied by some CRI FW jobs. This should resolved itself in 45-60 mins from what I can see in the queue on the admin side (but it may take up to 1h30 if there are more queued jobs in other projects)
@f.uhlig Wondering a bit what we should do to avoid such cases in the future, as the current CRI project triggers something like 10 builds when a change is done to the base repo, so with 2 pipelines it can saturate all docker runners for 1h30-2h
Should we remove thexilinx-licence
tag from at least of these runners?
or maybe just remove two slots from one of those and create a parallel runner on the same node with these slots and without thexilinx
tag, similarly to how we handle themCBM
vsrealData
runners onrun4
?
added 1 commit
- 7055fad8 - new source class for reconstructed timeslice output
- Resolved by Sergei Zharko
- Resolved by Sergei Zharko
- Resolved by Sergei Zharko
added 1 commit
- 9fb0a4d2 - new source class for reconstructed timeslice output
added 1 commit
- 96f3f4b5 - new source class for reconstructed timeslice output
@p.-a.loizeau If the latest changes of Sergei's are ok with you, please approve the MR.
added 4 commits
-
96f3f4b5...f5d367a4 - 3 commits from branch
computing:master
- 89d6e013 - new source class for reconstructed timeslice output
-
96f3f4b5...f5d367a4 - 3 commits from branch
cc @p.-a.loizeau, @v.friese, @se.gorbunov
your changes break on arm64 which took me some time to understand. When building the core directory on my macosx I get the following errors:
[ 0%] Built target G__CbmData [ 0%] Built target flesnet [ 3%] Built target xpu [ 18%] Built target CbmData [ 21%] Built target G__CbmField [ 25%] Built target CbmField [ 25%] Built target G__CbmBase [ 28%] Built target CbmBase [ 28%] Built target CbmFlibFlesTools [ 28%] Generating G__KfCoreOffline.cxx, ../../../lib/libKfCoreOffline_rdict.pcm, ../../../lib/libKfCoreOffline.rootmap Warning: FindScope got an invalid tag decl ERROR: FindScope about to return an invalid decl ... Warning: FindScope got an invalid tag decl ERROR: FindScope about to return an invalid decl gmake[2]: *** [algo/kf/core/CMakeFiles/G__KfCoreOffline.dir/build.make:79: algo/kf/core/G__KfCoreOffline.cxx] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:7429: algo/kf/core/CMakeFiles/G__KfCoreOffline.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2
The first thing which is broken and probably was already before is that the core directory has a dependency on the algo directory. The core directory should depend only on externals (and itself) but definitely not on sim, reco, algo, MQ, analysis, etc. This is my opinion a circular dependency. This should be fixed immediatly
The real problem why it crashes in my case is the the LinkeDef file of KfCoreOffline which contains the following lines
#pragma link C++ class cbm::algo::kf::TrackParamBase<Vc_1::Vector<float, Vc_1::VectorAbi::Sse> > + ; #pragma link C++ class cbm::algo::kf::TrackParam<Vc_1::Vector<float, Vc_1::VectorAbi::Sse> > + ;
Since SSE isn't known in case of ARM64 this needs to be changed, at least a guard in case of ARM64 is needed.
EDIT PAL: added formatted code tags
Edited by Pierre-Alain LoizeauThe first thing which is broken and probably was already before is that the core directory has a dependency on the algo directory. The core directory should depend only on externals (and itself) but definitely not on sim, reco, algo, MQ, analysis, etc. This is my opinion a circular dependency. This should be fixed immediatly
I think this is a confusion due to the naming of the library:
KfCoreOffline
is fully contained in thealgo
folder (similarly for CaCoreOffline).
The online back linking I saw in the core folder (outside of the logger compatibility headerAlgoFairloggerCompat.h
in the digi classes) is the following, which concerns only theCbmQaBase
library which is not used anywhere else in the core foldercore/qa/CMakeLists.txt:49: AlgoOffline
Since SSE isn't known in case of ARM64 this needs to be changed, at least a guard in case of ARM64 is needed.
For this we indeed need to address it, I think I saw some SSE guards somewhere in
core
while I was trying to fix the header install problem, so there should be some examples around for @s.zharko there.I don't care so much which of the libraries in core depends on something in algo, I only made the point that there is a dependency which should not exist. We put some afford into separating the code in the top level directories to avoid such dependencies and we should bring back that separation again.
The compilation issue is fixed with !2080 (merged).
From what I could see the only part of Algo which is used in the core qa side are the "non-root histograms"... so probably the solution would be to extract these and the YAML library and move them to another folder for "tools" libraries (as @s.zharko proposed last or previous to last week)
that would be the proper solution and I am fine with that. I am looking forward for the merge request
mentioned in merge request !2080 (merged)