|
163 | 163 | parser.add_argument('--tpc-distortion-type', default=0, type=int, help='Simulate distortions in the TPC (0=no distortions, 1=distortions without scaling, 2=distortions with CTP scaling)') |
164 | 164 | parser.add_argument('--tpc-corrmap-lumi-mode', default=2, type=int, help='TPC corrections mode (0=linear, 1=derivative, 2=derivative for special MC maps') |
165 | 165 | parser.add_argument('--ctp-scaler', default=0, type=float, help='CTP raw scaler value used for distortion simulation') |
| 166 | +parser.add_argument('--tpc-mt-digitizer', action='store_true', help='Digitize TPC in one multithreaded device instead of one process per lane (needs TPC digit chunking)') |
| 167 | +parser.add_argument('--tpc-sector-seeding', action='store_true', help='Seed the TPC digitizer per sector so that the digits do not depend on the number of lanes') |
166 | 168 | # Global Forward reconstruction configuration |
167 | 169 | parser.add_argument('--fwdmatching-assessment-full', action='store_true', help='enables complete assessment of global forward reco') |
168 | 170 | parser.add_argument('--fwdmatching-4-param', action='store_true', help='excludes q/pt from matching parameters') |
@@ -480,6 +482,12 @@ def extractVertexArgs(configKeyValuesStr, finalDiamondDict): |
480 | 482 | print('o2dpg_sim_workflow: Error! generator name not provided') |
481 | 483 | exit(1) |
482 | 484 |
|
| 485 | +if args.tpc_mt_digitizer and args.no_tpc_digitchunking: |
| 486 | + print('o2dpg_sim_workflow: Error! --tpc-mt-digitizer needs TPC digit chunking') |
| 487 | + exit(1) |
| 488 | +if args.tpc_mt_digitizer and args.tpc_sector_seeding: |
| 489 | + print('o2dpg_sim_workflow: --tpc-sector-seeding is implied by --tpc-mt-digitizer') |
| 490 | + |
483 | 491 | INIFILE='' |
484 | 492 | if args.ini!= '': |
485 | 493 | INIFILE=' --configFile ' + args.ini |
@@ -1172,12 +1180,17 @@ def putConfigValues(listOfMainKeys=[], localCF = {}, globalTFConfig = True): |
1172 | 1180 | TPCDigitask['cmd'] += '${O2_ROOT}/bin/o2-ccdb-downloadccdbfile --host http://alice-ccdb.cern.ch -p TPC/Config/RunInfoV2 --timestamp ' \ |
1173 | 1181 | + str(args.timestamp) + ' --created-not-after ' + str(args.condition_not_after) + ' -d ${ALICEO2_CCDB_LOCALCACHE} ; ' |
1174 | 1182 | TPCDigitask['cmd'] += '${O2_ROOT}/bin/o2-sim-digitizer-workflow ' + getDPL_global_options(bigshm=True) + ' -n ' + str(args.ns) + simsoption \ |
1175 | | - + ' --onlyDet TPC --TPCuseCCDB --interactionRate ' + str(INTRATE) + ' --tpc-lanes ' + str(NWORKERS_TF) \ |
| 1183 | + + ' --onlyDet TPC --TPCuseCCDB --interactionRate ' + str(INTRATE) \ |
1176 | 1184 | + ' --incontext ' + str(CONTEXTFILE) + ' --disable-write-ini --early-forward-policy always --forceSelectedDets ' \ |
1177 | 1185 | + ' --tpc-distortion-type ' + str(tpcDistortionType) \ |
1178 | | - + ' --n-threads-distortions 1 ' \ |
1179 | 1186 | + putConfigValues(["TPCGasParam","TPCGEMParam","TPCEleParam","TPCITCorr","TPCDetParam"], |
1180 | 1187 | localCF=tpcLocalCF) |
| 1188 | + if args.tpc_mt_digitizer: |
| 1189 | + # one device with NWORKERS_TF threads; it always seeds per sector |
| 1190 | + TPCDigitask['cmd'] += ' --tpc-digi-threads ' + str(NWORKERS_TF) + ' --n-threads-distortions ' + str(NWORKERS_TF) |
| 1191 | + else: |
| 1192 | + TPCDigitask['cmd'] += ' --tpc-lanes ' + str(NWORKERS_TF) + ' --n-threads-distortions 1' |
| 1193 | + TPCDigitask['cmd'] += ('',' --tpc-sector-seeding')[args.tpc_sector_seeding] |
1181 | 1194 | TPCDigitask['cmd'] += (' --tpc-chunked-writer','')[args.no_tpc_digitchunking] |
1182 | 1195 | TPCDigitask['cmd'] += ('',' --disable-mc')[args.no_mc_labels] |
1183 | 1196 | # we add any other extra command line options (power user customization) with an environment variable |
|
0 commit comments