Skip to content

Commit 1ab81de

Browse files
committed
DATA-reco anchoring and improved configurability
This commit is a step in the direction of being able to anchor MC workflows to the settings use in DATA reconstruction passes. This is achieved via a couple of ingredients: a) improved configurability of o2dpg_sim_workflow: - we can give a json config externally, which may include ConfigKeyValues and other keys to which the MC workflow creation is sensitive - separation of default config creation into extra script - slight change in the way how tasks declare what ConfigKeyValues they need / are sensitive too - can now configure list of sensitive detectors - can now configure input lists for vertexers and track matcher tasks b) A script that can parse DPL topologies and parameters from a file created by DATA reconstruction, and which creates a json config that can be fed to MC workflow creating via a)
1 parent 2c15425 commit 1ab81de

File tree

3 files changed

+474
-88
lines changed

3 files changed

+474
-88
lines changed

MC/bin/o2dpg_sim_config.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
def create_sim_config(args):
2+
# creates a generic simulation config
3+
# based on arguments args (run number, energy, ...) originally passed
4+
# to o2dpg_sim_workflow.py
5+
6+
COLTYPEIR = args.col
7+
if args.embedding==True:
8+
COLTYPEIR = args.colBkg
9+
10+
config = {}
11+
def add(cfg, flatconfig):
12+
for entry in flatconfig:
13+
mk = entry.split(".")[0]
14+
sk = entry.split(".")[1]
15+
d = cfg.get(mk,{})
16+
d[sk] = flatconfig[entry]
17+
cfg[mk] = d
18+
19+
# some specific settings for pp productions
20+
if COLTYPEIR == 'pp':
21+
# Alpide chip settings
22+
add(config, {"MFTAlpideParam.roFrameLengthInBC" : 198})
23+
if 302000 <= int(args.run) and int(args.run) < 309999:
24+
add(config, {"ITSAlpideParam.roFrameLengthInBC" : 198})
25+
26+
# ITS reco settings
27+
add(config, {"ITSVertexerParam.phiCut" : 0.5,
28+
"ITSVertexerParam.clusterContributorsCut" : 3,
29+
"ITSVertexerParam.tanLambdaCut" : 0.2})
30+
# primary vertexing settings
31+
if 301000 <= int(args.run) and int(args.run) <= 301999:
32+
add(config, {"pvertexer.acceptableScale2" : 9,
33+
"pvertexer.minScale2" : 2.,
34+
"pvertexer.nSigmaTimeTrack" : 4.,
35+
"pvertexer.timeMarginTrackTime" : 0.5,
36+
"pvertexer.timeMarginVertexTime" : 7.,
37+
"pvertexer.nSigmaTimeCut" : 10,
38+
"pvertexer.dbscanMaxDist2" : 36,
39+
"pvertexer.dcaTolerance" : 3.,
40+
"pvertexer.pullIniCut" : 100,
41+
"pvertexer.addZSigma2" : 0.1,
42+
"pvertexer.tukey" : 20.,
43+
"pvertexer.addZSigma2Debris" : 0.01,
44+
"pvertexer.addTimeSigma2Debris" : 1.,
45+
"pvertexer.maxChi2Mean" : 30,
46+
"pvertexer.timeMarginReattach" : 3.,
47+
"pvertexer.addTimeSigma2Debris" : 1.,
48+
"pvertexer.dbscanDeltaT" : 24,
49+
"pvertexer.maxChi2TZDebris" : 100,
50+
"pvertexer.maxMultRatDebris" : 1.,
51+
"pvertexer.dbscanAdaptCoef" : 20.})
52+
elif 302000 <= int(args.run) and int(args.run) <= 309999:
53+
# specific tunes for high pp
54+
# run range taken from https://twiki.cern.ch/twiki/bin/viewauth/ALICE/O2DPGMCSamplingSchema
55+
# taken from JIRA https://alice.its.cern.ch/jira/browse/O2-2691
56+
add(config, {"pvertexer.dbscanDeltaT" : 7,
57+
"pvertexer.maxChi2TZDebris": 50,
58+
"pvertexer.maxMultRatDebris": 1.,
59+
"pvertexer.dbscanAdaptCoef" : 20,
60+
"pvertexer.maxVerticesPerCluster" : 20,
61+
"pvertexer.dbscanMaxDist2" : 36})
62+
63+
else:
64+
# generic pp
65+
add(config, {"pvertexer.acceptableScale2" : 9,
66+
"pvertexer.dbscanMaxDist2" : 36,
67+
"pvertexer.dbscanDeltaT" : 24,
68+
"pvertexer.maxChi2TZDebris" : 100,
69+
"pvertexer.maxMultRatDebris" : 1.,
70+
"pvertexer.dbscanAdaptCoef" : 20.})
71+
72+
# MFT tracking settings
73+
if args.mft_reco_full == True:
74+
add({"MFTTracking.forceZeroField" : 0,
75+
"MFTTracking.LTFclsRCut" : 0.0100})
76+
77+
return config

0 commit comments

Comments
 (0)