353 extension: str =
"Acts",
355 ntupleName: str =
"",
356 **kwargs) -> ComponentAccumulator:
359 isPixel =
'Pixel' in name
360 perp_min = 0
if isPixel
else 300
361 perp_max = 400
if isPixel
else 1100
363 kwargs.setdefault(
'MonGroupName', extension +
'SeedAnalysisAlg')
365 from AthenaMonitoring
import AthMonitorCfgHelper
366 helper = AthMonitorCfgHelper(flags, extension +
'SeedAnalysisAlgCfg')
368 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
370 acc.addPublicTool(geoTool)
373 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
377 from ActsConfig.ActsTrackParamsEstimationConfig
import ActsTrackParamsEstimationToolCfg
380 kwargs.setdefault(
'TrackingGeometryTool', acc.getPublicTool(geoTool.name))
381 kwargs.setdefault(
'ATLASConverterTool', converterTool)
382 kwargs.setdefault(
'TrackParamsEstimationTool', trackEstimationTool)
384 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SeedAnalysisAlg, name, **kwargs)
385 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
387 monitoringGroup.defineHistogram(
'Nseed', title=
'Number of Seeds;N;Entries', type=
'TH1I', path=f
'{histoPath}',
388 xbins=100, xmin=0, xmax=0)
390 monitoringGroup.defineHistogram(
'z1,r1;zr1', title=
'Bottom SP - Z coordinate vs R;z [mm];r [mm]', type=
'TH2F', path=f
'{histoPath}',
391 xbins=1500, xmin=-3000, xmax=3000,
392 ybins=400, ymin=perp_min, ymax=perp_max)
393 monitoringGroup.defineHistogram(
'z2,r2;zr2', title=
'Middle SP - Z coordinate vs R;z [mm];r [mm]', type=
'TH2F', path=f
'{histoPath}',
394 xbins=1500, xmin=-3000, xmax=3000,
395 ybins=400, ymin=perp_min, ymax=perp_max)
396 monitoringGroup.defineHistogram(
'z3,r3;zr3', title=
'Top SP - Z coordinate vs R;z [mm];r [mm]', type=
'TH2F', path=f
'{histoPath}',
397 xbins=1500, xmin=-3000, xmax=3000,
398 ybins=400, ymin=perp_min, ymax=perp_max)
400 monitoringGroup.defineHistogram(
'x1;x1', title=
'Bottom SP - x coordinate;x [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
401 xbins=100, xmin=-perp_max, xmax=perp_max)
402 monitoringGroup.defineHistogram(
'y1;y1', title=
'Bottom SP - y coordinate;y [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
403 xbins=100, xmin=-perp_max, xmax=perp_max)
404 monitoringGroup.defineHistogram(
'z1;z1', title=
'Bottom SP - z coordinate;z [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
405 xbins=100, xmin=-3000, xmax=3000)
406 monitoringGroup.defineHistogram(
'r1;r1', title=
'Bottom SP - radius coordinate;r [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
407 xbins=100, xmin=perp_min, xmax=perp_max)
409 monitoringGroup.defineHistogram(
'x2;x2', title=
'Middle SP - x coordinate;x [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
410 xbins=100, xmin=-perp_max, xmax=perp_max)
411 monitoringGroup.defineHistogram(
'y2;y2', title=
'Middle SP - y coordinate;y [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
412 xbins=100, xmin=-perp_max, xmax=perp_max)
413 monitoringGroup.defineHistogram(
'z2;z2', title=
'Middle SP - z coordinate;z [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
414 xbins=100, xmin=-3000, xmax=3000)
415 monitoringGroup.defineHistogram(
'r2;r2', title=
'Middle SP - radius coordinate;r [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
416 xbins=100, xmin=perp_min, xmax=perp_max)
418 monitoringGroup.defineHistogram(
'x3;x3', title=
'Top SP - x coordinate;x [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
419 xbins=100, xmin=-perp_max, xmax=perp_max)
420 monitoringGroup.defineHistogram(
'y3;y3', title=
'Top SP - y coordinate;y [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
421 xbins=100, xmin=-perp_max, xmax=perp_max)
422 monitoringGroup.defineHistogram(
'z3;z3', title=
'Top SP - z coordinate;z [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
423 xbins=100, xmin=-3000, xmax=3000)
424 monitoringGroup.defineHistogram(
'r3;r3', title=
'Top SP - radius coordinate;r [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
425 xbins=100, xmin=perp_min, xmax=perp_max)
427 if 'PixelSeeds' in ntupleName:
428 monitoringGroup.defineHistogram(
'pt;pT', title=
'Pt;Pt;Entries;', type=
'TH1F', path=f
'{histoPath}',
429 xbins=100, xmin=0, xmax=100)
430 monitoringGroup.defineHistogram(
'd0;d0', title=
'd0;d0 [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
431 xbins=50, xmin=0, xmax=2)
432 monitoringGroup.defineHistogram(
'eta;Eta', title=
'Pseudo-Rapidity;Pseudo-Rapidity;Entries;', type=
'TH1F', path=f
'{histoPath}',
433 xbins=50, xmin=0, xmax=4.5)
434 monitoringGroup.defineHistogram(
'theta;Theta', title=
'Theta;Theta;Entries;', type=
'TH1F', path=f
'{histoPath}',
435 xbins=50, xmin=0, xmax=1.6)
436 monitoringGroup.defineHistogram(
'penalty;Penalty', title=
'Penalty;Penalty;Entries;', type=
'TH1F', path=f
'{histoPath}',
437 xbins=50, xmin=0, xmax=200)
438 monitoringGroup.defineHistogram(
'dzdr_b;dzdr_b', title=
'dzdr_b;;;', type=
'TH1F', path=f
'{histoPath}',
439 xbins=50, xmin=-30, xmax=30)
440 monitoringGroup.defineHistogram(
'dzdr_t;dzdr_t', title=
'dzdr_t;;;', type=
'TH1F', path=f
'{histoPath}',
441 xbins=50, xmin=-30, xmax=30)
442 elif 'StripSeeds' in ntupleName:
443 monitoringGroup.defineHistogram(
'pt;pT', title=
'Pt;Pt;Entries;', type=
'TH1F', path=f
'{histoPath}',
444 xbins=100, xmin=0, xmax=2300)
445 monitoringGroup.defineHistogram(
'd0;d0', title=
'd0;d0 [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
446 xbins=50, xmin=0, xmax=120)
447 monitoringGroup.defineHistogram(
'eta;Eta', title=
'Pseudo-Rapidity;Pseudo-Rapidity;Entries;', type=
'TH1F', path=f
'{histoPath}',
448 xbins=50, xmin=0, xmax=4.5)
449 monitoringGroup.defineHistogram(
'theta;Theta', title=
'Theta;Theta;Entries;', type=
'TH1F', path=f
'{histoPath}',
450 xbins=50, xmin=0, xmax=1.6)
451 monitoringGroup.defineHistogram(
'penalty;Penalty', title=
'Penalty;Penalty;Entries;', type=
'TH1F', path=f
'{histoPath}',
452 xbins=50, xmin=0, xmax=20000)
453 monitoringGroup.defineHistogram(
'dzdr_b;dzdr_b', title=
'dzdr_b;;;', type=
'TH1F', path=f
'{histoPath}',
454 xbins=50, xmin=-6.5, xmax=6.5)
455 monitoringGroup.defineHistogram(
'dzdr_t;dzdr_t', title=
'dzdr_t;;;', type=
'TH1F', path=f
'{histoPath}',
456 xbins=50, xmin=-6.5, xmax=6.5)
458 if flags.Tracking.doTruth:
459 monitoringGroup.defineHistogram(
'passed,estimated_eta;EfficiencyEta', title=
'Efficiency vs eta;eta;Efficiency', type=
'TEfficiency', path=f
'{histoPath}',
460 xbins=50, xmin=-5, xmax=5)
461 monitoringGroup.defineHistogram(
'passed,estimated_pt;EfficiencyPt', title=
'Efficiency vs pT;pT [GeV];Efficiency', type=
'TEfficiency', path=f
'{histoPath}',
462 xbins=30, xmin=0, xmax=120)
465 list_variables =
"x1,y1,z1,r1,x2,y2,z2,r2,x3,y3,z3,r3,pt,theta,eta,d0,dzdr_b,dzdr_t,penalty,event_number,actual_mu"
466 tree_def =
"x1/vector<double>:y1/vector<double>:z1/vector<double>:r1/vector<double>:x2/vector<double>:y2/vector<double>:z2/vector<double>:r2/vector<double>:x3/vector<double>:y3/vector<double>:z3/vector<double>:r3/vector<double>\
467 :pt/vector<float>:theta/vector<float>:eta/vector<float>:d0/vector<float>:dzdr_b/vector<float>:dzdr_t/vector<float>:penalty/vector<float>:event_number/l:actual_mu/F"
468 if flags.Tracking.doTruth:
469 list_variables +=
",truth_barcode,truth_prob"
470 tree_def +=
":truth_barcode/vector<int>:truth_prob/vector<double>"
472 if flags.Acts.doAnalysisNtuples:
473 monitoringGroup.defineTree(f
'{list_variables};{ntupleName}',
477 acc.merge(helper.result())