Skip to content
Snippets Groups Projects

Direct use of IMagFieldSvc in SiDetElementsRoadMaker_xk (ATLASRECTS-4728)

Merged Susumu Oda requested to merge oda/athena:master-ATLASRECTS-4728-v2 into master

Direct use of IMagFieldSvc in SiDetElementsRoadMaker_xk.

The callback of SiDetElementsRoadMaker_xk was dropped.

CPU time increase will be measured.

https://its.cern.ch/jira/browse/ATLASRECTS-4728

RunTier0Tests.py was fine if the B-field at {10., 10., 0.} is used. RunTier0Tests.log

Edited by Susumu Oda

Merge request reports

Pipeline #690175 passed

Pipeline passed for f115db42 on oda:master-ATLASRECTS-4728-v2

Approval is optional

Merged by Walter LamplWalter Lampl 6 years ago (Feb 6, 2019 1:53pm UTC)

Merge details

  • Changes merged into master with 6d70c99c (commits were squashed).
  • Deleted the source branch.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Susumu Oda marked as a Work In Progress

    marked as a Work In Progress

  • Susumu Oda changed the description

    changed the description

  • This merge request affects 1 package:

    • InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk
  • Susumu Oda changed the description

    changed the description

  • Susumu Oda added 1 commit

    added 1 commit

    Compare with previous version

  • Susumu Oda added 1 commit

    added 1 commit

    Compare with previous version

  • Susumu Oda added 1 commit

    added 1 commit

    Compare with previous version

  • :white_check_mark: CI Result SUCCESS

    Athena AthSimulation
    externals :white_check_mark: :white_check_mark:
    cmake :white_check_mark: :white_check_mark:
    make :white_check_mark: :white_check_mark:
    required tests :white_check_mark: :white_check_mark:
    optional tests :cloud: :white_check_mark:

    Full details available at NICOS MR-20629-2019-01-25-13-49
    :white_check_mark: Athena: number of compilation errors 0, warnings 0
    :white_check_mark: AthSimulation: number of compilation errors 0, warnings 0
    :pencil: CI Jenkins server is switched to https://atlas-sit-ci.cern.ch. It is accessible world-wide (behind CERN SSO). In old links to Jenkins server aibuild080.cern.ch:8080 should be replaced with atlas-sit-ci.cern.ch For experts only: Jenkins output [CI-MERGE-REQUEST 32755]

  • Hi @goetz

    I modified SiDetElementsRoadMaker_xk to directly access AtlasFieldSvc instead of callback. I ran q221 and q431 tests at lxplus050 with Athena master x86_64-slc6-gcc8-opt 2019-01-21T2352.

    • In RDOtoRDOTrigger of q221, one event took 3.08 s and the increase due to the change was 4.50 ms. This corresponds to 0.15%.
    • In RAWtoESD of q221, one event took 5.56 s and the increase due to the change was 1.61 ms. This corresponds to 0.03%.
    • In RAWtoESD of q431, one event took 14.2 s and the increase due to the change was 28.3 ms. This corresponds to 0.20%.

    The increase is not large.

    Cheers, Susumu

  • Maybe we should discuss this in the next reco meeting. I would tend towards using the field service directly and just leaving a comment that this may require a re-optimisation if this turns out to be too slow.

    In principle it would be good to test this on a "high" pileup sample. But I would not know a good example job. The "best" I can imagine is the ttbar art test : (https://gitlab.cern.ch/atlas/athena/blob/master/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ttbar.sh#L1). Could You eventually also check the performance for this job with e.g. 100 events or so (If You have a pile up test job that would be even better) ?

    Thanks ! Götz

    Edited by Goetz Gaycken
  • Hi @goetz,

    I ran a MC16e style job at lxplus109.cern.ch

    Reco_tf.py --digiSteeringConf 'StandardSignalOnlyTruth' --conditionsTag 'default:OFLCOND-MC16-SDR-25' --valid 'True' --pileupFinalBunch '6' --numberOfHighPtMinBias '0.2595392' --autoConfiguration 'everything' --numberOfLowPtMinBias '99.2404608' \
    --preInclude 'HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInlcude.PileUpBunchTrainsMC16c_2017_Config1.py,RunDependentSimData/configLumi_run310000.py' --postExec 'all:CfgMgr.MessageSvc().setError+=["HepMcParticleLink"]' "ESDtoAOD:fixedAttrib=[s if 'CONTAINER_SPLITLEVEL = \'99\'' not in s else '' for s in svcMgr.AthenaPoolCnvSvc.PoolAttributes];svcMgr.AthenaPoolCnvSvc.PoolAttributes=fixedAttrib" --postInclude 'default:PyJobTransforms/UseFrontier.py' --preExec 'all:rec.Commissioning.set_Value_and_Lock(True);from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False)' 'ESDtoAOD:from TriggerJobOpts.TriggerFlags import TriggerFlags;TriggerFlags.AODEDMSet.set_Value_and_Lock("AODSLIM");' \
    --geometryVersion 'default:ATLAS-R2-2016-01-00-01' --numberOfCavernBkg '0'  --inputLowPtMinbiasHitsFile mc16_13TeV.361238.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_low.simul.HITS.e4981_s3087_s3111/HITS.10701323._007457.pool.root.1 --inputHighPtMinbiasHitsFile mc16_13TeV.361239.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_high.simul.HITS.e4981_s3087_s3111/HITS.10701335._002690.pool.root.1 --inputHITSFile mc16_13TeV.410470.PhPy8EG_A14_ttbar_hdamp258p75_nonallhad.simul.HITS.e6337_s3126/HITS.12458448._055308.pool.root.1 --outputESDFile ESD.pool.root --maxEvents 100 --digiSeedOffset1 1 --digiSeedOffset2 1 --jobNumber 1 \
    --steering 'doRDO_TRIG' 

    with Athena master 2019-01-26T2139 x86_64-centos7-gcc8-opt with the change. From the Reco_tf.py command, I dropped --triggerConfig 'RDOtoRDOTrigger=MCRECO:DBF:TRIGGERDBMC:2216,76,260' because of crash.

    • In RAWtoESD, 36217.778 ms took for one event, 21.10064245 ms was increased. This corresponds to 0.06%.
    • In RDOtoRDOTrigger, 6677.576 ms took for one event, 4.52763480 ms was increased. This corresponds to 0.07%.

    The pileup distribution of the processed 100 events is c1.

    Edited by Susumu Oda
  • Susumu Oda added 1 commit

    added 1 commit

    Compare with previous version

  • Thanks, Susumu !

    I was wondering what the impact would be if the z-field would be computed using the Tp.position() rather than the centre (may have some negative impact on performance since the caching might not work as well I guess). One could also try to get rid of the string comparison and define already during initialize fieldModeEnum (which is then only changed to Trk::NoField if the solenoid is off).

  • Susumu Oda added 197 commits

    added 197 commits

    Compare with previous version

  • Susumu Oda added 1 commit

    added 1 commit

    Compare with previous version

  • Susumu Oda added 1 commit

    added 1 commit

    • 569ec98d - Use position from TrackParameter

    Compare with previous version

  • Hi @goetz,

    I modified the code to avoid string comparison and to use the position from the track parameter.

    • In RAWtoESD, 36217.778 ms took for one event, 10.409295 ms was increased. This corresponds to 0.03%.
    • In RDOtoRDOTrigger, 7006.263 ms took for one event, 2.49427015 ms was increased. This corresponds to 0.04%.

    Cheers, Susumu

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading