Skip to content

Commit

Permalink
ci: Add ttbar pu 200 job to physmon (#2282)
Browse files Browse the repository at this point in the history
  • Loading branch information
paulgessinger committed Aug 4, 2023
1 parent 3c69bf2 commit b5acca1
Show file tree
Hide file tree
Showing 15 changed files with 231 additions and 9 deletions.
55 changes: 49 additions & 6 deletions CI/physmon/phys_perf_mon.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +21,34 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd
SPYRAL_BIN="spyral"
SPYRAL="${SPYRAL_BIN} run -i 0.1 --summary"

mkdir ${outdir}/memory
mkdir -p "${outdir}/memory"

source $SCRIPT_DIR/setup.sh
echo "::group::Generate validation dataset"
if [[ "$mode" == "all" || "$mode" == "kalman" ]]; then
$SPYRAL -l "Truth Tracking KF" -o "$outdir/memory/mem_truth_tracking_kalman.csv" -- CI/physmon/workflows/physmon_truth_tracking_kalman.py $outdir 2>&1 > $outdir/run_truth_tracking_kalman.log
$SPYRAL_BIN plot $outdir/memory/mem_truth_tracking_kalman.csv --output $outdir/memory
fi
if [[ "$mode" == "all" || "$mode" == "gsf" ]]; then
$SPYRAL -l "Truth Tracking GSF" -o "$outdir/memory/mem_truth_tracking_gsf.csv" -- CI/physmon/workflows/physmon_truth_tracking_gsf.py $outdir 2>&1 > $outdir/run_truth_tracking_gsf.log
$SPYRAL_BIN plot $outdir/memory/mem_truth_tracking_gsf.csv --output $outdir/memory
fi
if [[ "$mode" == "all" || "$mode" == "fullchains" ]]; then
$SPYRAL -l "CKF Tracking" -o "$outdir/memory/mem_ckf_tracking.csv" -- CI/physmon/workflows/physmon_ckf_tracking.py $outdir 2>&1 > $outdir/run_ckf_tracking.log
$SPYRAL -l "Track finding ttbar" -o "$outdir/memory/mem_ttbar.csv" -- CI/physmon/workflows/physmon_track_finding_ttbar.py $outdir 2>&1 > $outdir/run_track_finding_ttbar.log
$SPYRAL_BIN plot $outdir/memory/mem_ckf_tracking.csv --output $outdir/memory
$SPYRAL_BIN plot $outdir/memory/mem_ttbar.csv --output $outdir/memory
fi
if [[ "$mode" == "all" || "$mode" == "vertexing" ]]; then
$SPYRAL -l "Vertexing" -o "$outdir/memory/mem_vertexing.csv" -- CI/physmon/workflows/physmon_vertexing.py $outdir 2>&1 > $outdir/run_vertexing.log
$SPYRAL_BIN plot $outdir/memory/mem_vertexing.csv --output $outdir/memory
fi
if [[ "$mode" == "all" || "$mode" == "simulation" ]]; then
$SPYRAL -l "Simulation" -o "$outdir/memory/mem_simulation.csv" -- CI/physmon/workflows/physmon_simulation.py $outdir 2>&1 > $outdir/run_simulation.log
$SPYRAL_BIN plot $outdir/memory/mem_simulation.csv --output $outdir/memory
fi
echo "::endgroup::"

$SPYRAL_BIN plot $outdir/memory/mem_truth_tracking_kalman.csv --output $outdir/memory
$SPYRAL_BIN plot $outdir/memory/mem_truth_tracking_gsf.csv --output $outdir/memory
$SPYRAL_BIN plot $outdir/memory/mem_ckf_tracking.csv --output $outdir/memory
$SPYRAL_BIN plot $outdir/memory/mem_vertexing.csv --output $outdir/memory
$SPYRAL_BIN plot $outdir/memory/mem_simulation.csv --output $outdir/memory

set +e

Expand Down Expand Up @@ -212,6 +214,47 @@ if [[ "$mode" == "all" || "$mode" == "fullchains" ]]; then
--title "Ambisolver orthogonal" \
-o $outdir/ambi_orthogonal.html \
-p $outdir/ambi_orthogonal_plots

run \
$outdir/performance_seeding_ttbar.root \
$refdir/performance_seeding_ttbar.root \
--title "Seeding ttbar" \
-c $config \
-o $outdir/seeding_ttbar.html \
-p $outdir/seeding_ttbar_plots

run \
$outdir/performance_ckf_ttbar.root \
$refdir/performance_ckf_ttbar.root \
--title "CKF ttbar" \
-c $config \
-o $outdir/ckf_ttbar.html \
-p $outdir/ckf_ttbar_plots

run \
$outdir/performance_ambi_ttbar.root \
$refdir/performance_ambi_ttbar.root \
--title "Ambisolver " \
-o $outdir/ambi_ttbar.html \
-p $outdir/ambi_ttbar_plots

Examples/Scripts/generic_plotter.py \
$outdir/performance_amvf_ttbar.root \
vertexing \
$outdir/performance_amvf_ttbar_hist.root \
--silent \
--config CI/physmon/vertexing_config.yml
ec=$(($ec | $?))

# remove ntuple file because it's large
rm $outdir/performance_amvf_ttbar.root

run \
$outdir/performance_amvf_ttbar_hist.root \
$refdir/performance_amvf_ttbar_hist.root \
--title "AMVF ttbar" \
-o $outdir/amvf_ttbar.html \
-p $outdir/amvf_ttbar_plots
fi

if [[ "$mode" == "all" || "$mode" == "gsf" ]]; then
Expand Down
Binary file added CI/physmon/reference/performance_ambi_ttbar.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_amvf_orthogonal_hist.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_amvf_seeded_hist.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_amvf_truth_estimated_hist.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_amvf_truth_smeared_hist.root
Binary file not shown.
Binary file not shown.
Binary file added CI/physmon/reference/performance_ckf_ttbar.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_ivf_orthogonal_hist.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_ivf_seeded_hist.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_ivf_truth_estimated_hist.root
Binary file not shown.
Binary file modified CI/physmon/reference/performance_ivf_truth_smeared_hist.root
Binary file not shown.
Binary file not shown.
5 changes: 2 additions & 3 deletions CI/physmon/vertexing_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,10 @@ histograms:
min: -0.0005
max: 0.0005

# fixed mu=50
"^n.*$":
nbins: 50
nbins: 250
min: 0
max: 51
max: 251

"truthX|truthY|recoX|recoY":
nbins: 100
Expand Down
180 changes: 180 additions & 0 deletions CI/physmon/workflows/physmon_track_finding_ttbar.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
#!/usr/bin/env python3
import tempfile
from pathlib import Path
import shutil

import acts
from acts.examples.simulation import (
addPythia8,
addFatras,
addDigitization,
)

from acts.examples.reconstruction import (
addSeeding,
TruthSeedRanges,
ParticleSmearingSigmas,
SeedFinderConfigArg,
SeedFinderOptionsArg,
SeedingAlgorithm,
TruthEstimatedSeedingAlgorithmConfigArg,
addCKFTracks,
addAmbiguityResolution,
AmbiguityResolutionConfig,
addVertexFitting,
VertexFinder,
TrackSelectorConfig,
)

from physmon_common import makeSetup

u = acts.UnitConstants

setup = makeSetup()


with tempfile.TemporaryDirectory() as temp:
fpeMasks = acts.examples.Sequencer.FpeMask.fromFile(
Path(__file__).parent.parent / "fpe_masks.yml"
) + [
acts.examples.Sequencer.FpeMask(
"Examples/Algorithms/Fatras/src/FatrasSimulation.cpp:172",
acts.FpeType.FLTINV,
1,
),
acts.examples.Sequencer.FpeMask(
"Examples/Algorithms/Fatras/src/FatrasSimulation.cpp:172",
acts.FpeType.FLTOVF,
1,
),
acts.examples.Sequencer.FpeMask(
"Examples/Io/Root/src/RootTrajectorySummaryWriter.cpp:371",
acts.FpeType.FLTINV,
1,
),
acts.examples.Sequencer.FpeMask(
"Core/src/Utilities/AnnealingUtility.cpp:38",
acts.FpeType.FLTUND,
1,
),
acts.examples.Sequencer.FpeMask(
"Fatras/include/ActsFatras/Kernel/detail/SimulationActor.hpp:110",
acts.FpeType.FLTINV,
1,
),
acts.examples.Sequencer.FpeMask(
"Fatras/include/ActsFatras/Kernel/Simulation.hpp:98",
acts.FpeType.FLTOVF,
1,
),
]
s = acts.examples.Sequencer(
events=3,
numThreads=-1,
logLevel=acts.logging.INFO,
fpeMasks=fpeMasks,
)

tp = Path(temp)

for d in setup.decorators:
s.addContextDecorator(d)

rnd = acts.examples.RandomNumbers(seed=42)

addPythia8(
s,
hardProcess=["Top:qqbar2ttbar=on"],
npileup=200,
vtxGen=acts.examples.GaussianVertexGenerator(
mean=acts.Vector4(0, 0, 0, 0),
stddev=acts.Vector4(0.0125 * u.mm, 0.0125 * u.mm, 55.5 * u.mm, 5.0 * u.ns),
),
rnd=rnd,
)

addFatras(
s,
setup.trackingGeometry,
setup.field,
rnd=rnd,
)

addDigitization(
s,
setup.trackingGeometry,
setup.field,
digiConfigFile=setup.digiConfig,
rnd=rnd,
)

addSeeding(
s,
setup.trackingGeometry,
setup.field,
TruthSeedRanges(pt=(500.0 * u.MeV, None), nHits=(9, None)),
ParticleSmearingSigmas(pRel=0.01), # only used by SeedingAlgorithm.TruthSmeared
SeedFinderConfigArg(
r=(None, 200 * u.mm), # rMin=default, 33mm
deltaR=(1 * u.mm, 60 * u.mm),
collisionRegion=(-250 * u.mm, 250 * u.mm),
z=(-2000 * u.mm, 2000 * u.mm),
maxSeedsPerSpM=1,
sigmaScattering=5,
radLengthPerSeed=0.1,
minPt=500 * u.MeV,
impactMax=3 * u.mm,
),
SeedFinderOptionsArg(bFieldInZ=1.99724 * u.T, beamPos=(0.0, 0.0)),
TruthEstimatedSeedingAlgorithmConfigArg(deltaR=(10.0 * u.mm, None)),
seedingAlgorithm=SeedingAlgorithm.Default,
geoSelectionConfigFile=setup.geoSel,
rnd=rnd, # only used by SeedingAlgorithm.TruthSmeared
outputDirRoot=tp,
)

addCKFTracks(
s,
setup.trackingGeometry,
setup.field,
TrackSelectorConfig(
pt=(500 * u.MeV, None),
loc0=(-4.0 * u.mm, 4.0 * u.mm),
nMeasurementsMin=6,
),
outputDirRoot=tp,
)

addAmbiguityResolution(
s,
AmbiguityResolutionConfig(maximumSharedHits=3),
outputDirRoot=tp,
)

addVertexFitting(
s,
setup.field,
associatedParticles=None,
outputProtoVertices="amvf_protovertices",
outputVertices="amvf_fittedVertices",
vertexFinder=VertexFinder.AMVF,
outputDirRoot=tp / "amvf",
)

s.run()
del s

vertexing = "amvf"
shutil.move(
tp / f"{vertexing}/performance_vertexing.root",
tp / f"performance_{vertexing}.root",
)

for stem in [
"performance_ckf",
"tracksummary_ckf",
"performance_amvf",
] + (["performance_seeding", "performance_ambi"]):
perf_file = tp / f"{stem}.root"
assert perf_file.exists(), "Performance file not found"
shutil.copy(perf_file, setup.outdir / f"{stem}_ttbar.root")

0 comments on commit b5acca1

Please sign in to comment.