-
Notifications
You must be signed in to change notification settings - Fork 483
GPU: ITS fix MC label output #14155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPU: ITS fix MC label output #14155
Conversation
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
I think we can keep it simple. If MC is enabled, it should be enabled for all detectors included in the reco. I'll let @davidrohr to decide, though. |
|
@mconcas at least for me I could not run the tracking with MC standalone for ITS since |
Ok, but then is the processMC that needs not to pull reconstructions that are not requested. |
|
Error while checking build/O2/fullCI_slc9 for b33925b at 2025-06-15 02:11: Full log here. |
|
I agree with @mconcas that we should fix the problem with pulling in the TPC inputs. |
|
@davidrohr yes, thanks for looking into this admittedly contrived case. Should I close the PR then? You need #14416. #!/usr/bin/env bash
# current O2@69169b + patch
# run number is only given since ITS needs GRPECS object to check if it is in continous readout mode, other options are irrelevant and simply copied
GLOSET=";align-geom.mDetectors=none;HBFUtils.orbitFirstSampled=0;HBFUtils.nHBFPerTF=32;HBFUtils.orbitFirst=0;HBFUtils.runNumber=563946;"
o2-sim -n1 -m ITS --configKeyValues "GlobalSimProcs.DCAY=0;BoxGun.number=77;BoxGun.eta[0]=-0.9;BoxGun.eta[1]=0.9;BoxGun.prange[0]=0.2;BoxGun.prange[1]=10;$GLOSET" | tee sim.log
o2-sim-digitizer-workflow -b --run --configKeyValues="$GLOSET" --onlyDet ITS | tee digi.log
o2-its-reco-workflow --trackerCA --tracking-mode async --use-gpu-workflow --gpu-device=0 -b --run --configKeyValues="$GLOSET;ITSCATrackerParam.trackingMode=1;GPU_proc.forceMemoryPoolSize=20000000000;GPU_global.deviceType=HIP;HBFUtils.runNumber=563946;ITSVertexerParam.phiCut=0.5;ITSVertexerParam.clusterContributorsCut=3;ITSVertexerParam.tanLambdaCut=0.2;ITSClustererParam.maxBCDiffToMaskBias=-10;ITSClustererParam.maxBCDiffToSquashBias=10;ITSCATrackerParam.sysErrY2[0]=100e-8;ITSCATrackerParam.sysErrZ2[0]=100e-8;ITSCATrackerParam.sysErrY2[1]=100e-8;ITSCATrackerParam.sysErrZ2[1]=100e-8;ITSCATrackerParam.sysErrY2[2]=100e-8;ITSCATrackerParam.sysErrZ2[2]=100e-8;ITSCATrackerParam.sysErrY2[3]=100e-8;ITSCATrackerParam.sysErrZ2[3]=100e-8;ITSCATrackerParam.sysErrY2[4]=100e-8;ITSCATrackerParam.sysErrZ2[4]=100e-8;ITSCATrackerParam.sysErrY2[5]=100e-8;ITSCATrackerParam.sysErrZ2[5]=100e-8;ITSCATrackerParam.sysErrY2[6]=100e-8;ITSCATrackerParam.sysErrZ2[6]=100e-8;" | tee reco.log # this runs perfectly fine with --disable-mc otherwise I get the error below:
#[ERROR] invalid workflow in o2-its-reco-workflow: No matching output found for <matcher query: (and origin:TPC (and description:CLNATIVEMCLBL (just startTime:$0 )))> as requested by data processor "its-gpu-tracker". Candidates:
#-DPL/ENUM/3729191491
#-FLP/DISTSUBTIMEFRAME/52443
#-ITS/DIGITS/0
#-ITS/DIGITSMC2ROF/0
#-ITS/DIGITSMCTR/0
#-ITS/DIGITSROF/0
#-ITS/PHYSTRIG/0
#-CTP/OrbitReset/0
#-GLO/GRPECS/0
#-GLO/GRPMAGFIELD/0
#-GLO/MATLUT/0
#-ITS/ALPIDEPARAM/0
#-ITS/CLUSDICT/0
#-ITS/CLUSPARAM/0
#-ITS/GEOMTGEO/0
#-ITS/CLUSTERSMC2ROF/0
#-ITS/CLUSTERSMCTR/0
#-ITS/CLUSTERSROF/0
#-ITS/COMPCLUSTERS/0
#-ITS/PATTERNS/0
#-ITS/IRFRAMES/0
#-ITS/ITSTrackMC2ROF/0
#-ITS/ITSTrackROF/0
#-ITS/TRACKCLSID/0
#-ITS/TRACKS/0
#-ITS/TRACKSMCTR/0
#-ITS/VERTICES/0
#-ITS/VERTICESMCTR/0
#-ITS/VERTICESROF/0 |
|
For reference this is one of the cases where the workflow assumes TPC presence based on MC label request: AliceO2/GPU/Workflow/src/GPUWorkflowSpec.cxx Line 556 in b33925b
|
Thanks @f3sch , the case is not contrived at all, as the plan is to incorporate ITS in the gpu-reco-wf and to have it as a fully working mainstream entry point, so it eventually needs to be able to run ITS-only. @both: In case: here there is a reproducer that I use to run on data, perhaps many of the configs can be get from there, then one has to possibly run on MC data... #! /bin/bash -x
rm -f /dev/shm/*fmq*;
# export WORKFLOWMODE=print
# export DISABLE_ROOT_OUTPUT=0
export ROCR_VISIBLE_DEVICES="0"
export GPUTYPE=HIP
export WORKFLOW_DETECTORS=TPC,ITS
export WORKFLOW_DETECTORS_GPU=ITS,TPC
export GPUMEMSIZE=10000000000
export SYNCMODE=0
export CTFINPUT=1
export GLOBALDPLOPT="-b"
export NTIMEFRAMES=1
export INPUT_FILE_LIST=data/o2_ctf_run00559456_orbit0139181824_tf0003905868_epn294.root
export CONFIG_EXTRA_PROCESS_o2_gpu_reco_workflow="GPU_proc.debugLevel=2;GPU_global.deviceType=$GPUTYPE;GPU_proc.forceMemoryPoolSize=8000000000;GPU_proc.forceHostMemoryPoolSize=1073741824;"
~/alice/latest/O2/prodtests/full-system-test/dpl-workflow.sh |
|
Thanks @davidrohr! Sorry I missed in my initial patch part of the change added here..., see #14426 |
Allow MC labels to be calculated using ITS gpu tracking.
Note I had to separate the label processing using an additional flag
processITSMCand not using the normal--disable-mcsince this flag implicitly requires TPC things and not to disturb the code too much, I opted for this though it is ugly (better suggestions?).