From 0397448e50a2f02dbbacaf5c862f6d549ae3ef1c Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Wed, 18 Dec 2019 17:42:39 +0100 Subject: [PATCH 001/199] add track and IP resolution checker --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 331c1a5f65e..95ad31ce628 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -250,3 +250,35 @@ def make_track_filter(InputTracks, code): filtered_tracks = TrackListRefiner( inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks + +def monitor_track_resolution(InputTracks): + from PyConf.Algorithms import TrackResChecker + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + res_checker = TrackResChecker( + TracksInContainer= InputTracks["v1"], + MCParticleInContainer= mc_unpackers()["MCParticles"], + MCPropertyInput = make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo" ), + LinkerInTable = links_to_tracks + ) + return res_checker + + +def monitor_IPresolution(InputTracks): + from PyConf.Algorithms import TrackIPResolutionCheckerNTMCHits, TrackIPResolutionCheckerNT + from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex + from PyConf.Algorithms import DataPacking__Unpack_LHCb__MCVPHitPacker_ + unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_(InputName=make_data_with_FetchDataFromFile( "/Event/pSim/VP/Hits" )) + vertexConverter = FromVectorLHCbRecVertex(InputVerticesName=pvs, InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + IPres_checker= TrackIPResolutionCheckerNTMCHits( + TrackContainer= InputTracks, + MCParticleInput= mc_unpackers()["MCParticles"], + MCHeaderLocation= make_data_with_FetchDataFromFile("/Event/MC/Header"), + LinkerLocation= links_to_tracks, + PVContainer= vertexConverter, + MCHitsLocation= unpacked_velo_mchits, + NTupleLUN = "FILE1") + return IPres_checker + -- GitLab From e33eb3468292cd412ec91287d38f1f748b2e1cdc Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 18 Dec 2019 16:43:35 +0000 Subject: [PATCH 002/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6602383 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 41 ++++++++++++--------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 95ad31ce628..f7b5e71ecc8 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -251,16 +251,18 @@ def make_track_filter(InputTracks, code): inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks + def monitor_track_resolution(InputTracks): from PyConf.Algorithms import TrackResChecker links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() - links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + links_to_tracks = make_links_tracks_mcparticles( + InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) res_checker = TrackResChecker( - TracksInContainer= InputTracks["v1"], - MCParticleInContainer= mc_unpackers()["MCParticles"], - MCPropertyInput = make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo" ), - LinkerInTable = links_to_tracks - ) + TracksInContainer=InputTracks["v1"], + MCParticleInContainer=mc_unpackers()["MCParticles"], + MCPropertyInput=make_data_with_FetchDataFromFile( + "/Event/MC/TrackInfo"), + LinkerInTable=links_to_tracks) return res_checker @@ -268,17 +270,20 @@ def monitor_IPresolution(InputTracks): from PyConf.Algorithms import TrackIPResolutionCheckerNTMCHits, TrackIPResolutionCheckerNT from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Algorithms import DataPacking__Unpack_LHCb__MCVPHitPacker_ - unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_(InputName=make_data_with_FetchDataFromFile( "/Event/pSim/VP/Hits" )) - vertexConverter = FromVectorLHCbRecVertex(InputVerticesName=pvs, InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_( + InputName=make_data_with_FetchDataFromFile("/Event/pSim/VP/Hits")) + vertexConverter = FromVectorLHCbRecVertex( + InputVerticesName=pvs, + InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() - links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - IPres_checker= TrackIPResolutionCheckerNTMCHits( - TrackContainer= InputTracks, - MCParticleInput= mc_unpackers()["MCParticles"], - MCHeaderLocation= make_data_with_FetchDataFromFile("/Event/MC/Header"), - LinkerLocation= links_to_tracks, - PVContainer= vertexConverter, - MCHitsLocation= unpacked_velo_mchits, - NTupleLUN = "FILE1") + links_to_tracks = make_links_tracks_mcparticles( + InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + IPres_checker = TrackIPResolutionCheckerNTMCHits( + TrackContainer=InputTracks, + MCParticleInput=mc_unpackers()["MCParticles"], + MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), + LinkerLocation=links_to_tracks, + PVContainer=vertexConverter, + MCHitsLocation=unpacked_velo_mchits, + NTupleLUN="FILE1") return IPres_checker - -- GitLab From ccf0d346580ec94efd002de37f5a539b5b52eb3e Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 19 Dec 2019 09:47:47 +0100 Subject: [PATCH 003/199] modify the format --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index f7b5e71ecc8..ba8df603add 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -13,6 +13,7 @@ from __future__ import absolute_import, division, print_function In this file, algorithms needed to run the MC reconstruction checking (PrTrackChecker) are defined. ''' from PyConf.tonic import (configurable) +from PyConf.dataflow import DataHandle from PyConf.components import Tool from PyConf.application import default_raw_event @@ -24,9 +25,15 @@ from PyConf.Algorithms import ( PrTrackAssociator, PrTrackChecker, PrUTHitChecker, + TrackListRefiner, + TrackResChecker, + TrackIPResolutionCheckerNT, + DataPacking__Unpack_LHCb__MCVPHitPacker_ ) +from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool +from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import ( make_PrStoreUTHit_hits, @@ -44,7 +51,6 @@ def get_item(x, key): TODO: This helper function can be replaces once Moore!63 has been addressed. """ - from PyConf.dataflow import DataHandle if isinstance(x, DataHandle): return x return x[key] @@ -244,8 +250,6 @@ def get_best_tracks_checkers( def make_track_filter(InputTracks, code): - from PyConf.Algorithms import TrackListRefiner - from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector selector = LoKiTrackSelector(Code=code, StatPrint=True) filtered_tracks = TrackListRefiner( inputLocation=InputTracks["v1"], Selector=selector).outputLocation @@ -253,7 +257,6 @@ def make_track_filter(InputTracks, code): def monitor_track_resolution(InputTracks): - from PyConf.Algorithms import TrackResChecker links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) @@ -267,9 +270,6 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks): - from PyConf.Algorithms import TrackIPResolutionCheckerNTMCHits, TrackIPResolutionCheckerNT - from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex - from PyConf.Algorithms import DataPacking__Unpack_LHCb__MCVPHitPacker_ unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_( InputName=make_data_with_FetchDataFromFile("/Event/pSim/VP/Hits")) vertexConverter = FromVectorLHCbRecVertex( @@ -278,12 +278,11 @@ def monitor_IPresolution(InputTracks): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - IPres_checker = TrackIPResolutionCheckerNTMCHits( + IPres_checker = TrackIPResolutionCheckerNT( TrackContainer=InputTracks, MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), LinkerLocation=links_to_tracks, PVContainer=vertexConverter, - MCHitsLocation=unpacked_velo_mchits, NTupleLUN="FILE1") return IPres_checker -- GitLab From 31d3a53088992bfaea17273ecff9fd9059de06cd Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 19 Dec 2019 08:48:29 +0000 Subject: [PATCH 004/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6607609 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index ba8df603add..02d97155812 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -20,16 +20,9 @@ from PyConf.application import default_raw_event from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( - VPFullCluster2MCParticleLinker, - PrLHCbID2MCParticle, - PrTrackAssociator, - PrTrackChecker, - PrUTHitChecker, - TrackListRefiner, - TrackResChecker, - TrackIPResolutionCheckerNT, - DataPacking__Unpack_LHCb__MCVPHitPacker_ -) + VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, + PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, + TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool -- GitLab From e7a84ce3ae608a9edc370d9aa1a76b6507533035 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 19 Dec 2019 19:32:42 +0100 Subject: [PATCH 005/199] remove unused lines --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 02d97155812..423fe9c3c03 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -263,8 +263,6 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks): - unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_( - InputName=make_data_with_FetchDataFromFile("/Event/pSim/VP/Hits")) vertexConverter = FromVectorLHCbRecVertex( InputVerticesName=pvs, InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName -- GitLab From aaaea07d66d89852bb69b7873c7dd5ce5d722d61 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 20 Dec 2019 15:58:30 +0100 Subject: [PATCH 006/199] add options and qmt test for track and IP resolution --- .../options/hlt1_reco_IPresolution.py | 30 ++++++++++++++++++ .../options/hlt1_reco_trackresolution.py | 31 +++++++++++++++++++ Hlt/RecoConf/python/RecoConf/mc_checking.py | 12 +++---- .../tests/qmtest/hlt1_reco_IPresolution.qmt | 31 +++++++++++++++++++ .../qmtest/hlt1_reco_trackresolution.qmt | 31 +++++++++++++++++++ 5 files changed, 129 insertions(+), 6 deletions(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_IPresolution.py create mode 100644 Hlt/RecoConf/options/hlt1_reco_trackresolution.py create mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py new file mode 100644 index 00000000000..cb8c615e608 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -0,0 +1,30 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks +from RecoConf.mc_checking import monitor_IPresolution +from Configurables import ApplicationMgr +from Configurables import NTupleSvc + + +def hlt1_reco_IPresolution(): + hlt1_tracks = make_hlt1_tracks() + fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) + pr_checker = monitor_IPresolution(fitted_tracks["v1"], hlt1_tracks["Velo"]["v1"]) + + return Reconstruction('IPresolution', [pr_checker], [require_gec()]) + +run_reconstruction(options, hlt1_reco_IPresolution) + +NTupleSvc().Output += ["FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'"] +ApplicationMgr().ExtSvc += [NTupleSvc()] +ApplicationMgr().HistogramPersistency="ROOT" diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py new file mode 100644 index 00000000000..c0f1006915b --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -0,0 +1,31 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks +from RecoConf.mc_checking import monitor_track_resolution + + +def hlt1_reco_trackresolution(): + track_type = "Forward" + tracks = make_hlt1_tracks()[track_type] + pr_checker = monitor_track_resolution( tracks) + + #return CompositeNode( + # name='hlt1_trackRes', + # children=pr_checker, + # combineLogic=NodeLogic.NONLAZY_OR, + # forceOrder=False) + return Reconstruction('track_resolution', [pr_checker], [require_gec()]) + + +options.histo_file = "Hlt1ForwardTrackingResolution.root" +run_reconstruction(options, hlt1_reco_trackresolution) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 423fe9c3c03..1d3d9cc7ec5 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -32,6 +32,7 @@ from RecoConf.hlt1_tracking import ( make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, make_velo_full_clusters, + make_pvs ) from Hlt2Conf.data_from_file import mc_unpackers @@ -256,19 +257,18 @@ def monitor_track_resolution(InputTracks): res_checker = TrackResChecker( TracksInContainer=InputTracks["v1"], MCParticleInContainer=mc_unpackers()["MCParticles"], - MCPropertyInput=make_data_with_FetchDataFromFile( - "/Event/MC/TrackInfo"), LinkerInTable=links_to_tracks) return res_checker -def monitor_IPresolution(InputTracks): +def monitor_IPresolution(InputTracks, VeloTracks): + vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=pvs, - InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + InputVerticesName=make_pvs(), + InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( - InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + InputTracks, LinksToLHCbIDs=links_to_lhcbids) IPres_checker = TrackIPResolutionCheckerNT( TrackContainer=InputTracks, MCParticleInput=mc_unpackers()["MCParticles"], diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt new file mode 100644 index 00000000000..e34dcba158c --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_IPresolution.py + --output=hlt1_reco_IPresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt new file mode 100644 index 00000000000..38c0cdc0b83 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_trackresolution.py + --output=hlt1_reco_trackresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + -- GitLab From 13b8c9003c6d881699130f5acb01ac6251576434 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 20 Dec 2019 14:59:09 +0000 Subject: [PATCH 007/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6623848 --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 10 +++++++--- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 4 ++-- Hlt/RecoConf/python/RecoConf/mc_checking.py | 9 +++------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index cb8c615e608..2d3221e8b59 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -19,12 +19,16 @@ from Configurables import NTupleSvc def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) - pr_checker = monitor_IPresolution(fitted_tracks["v1"], hlt1_tracks["Velo"]["v1"]) + pr_checker = monitor_IPresolution(fitted_tracks["v1"], + hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) + run_reconstruction(options, hlt1_reco_IPresolution) -NTupleSvc().Output += ["FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'"] +NTupleSvc().Output += [ + "FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'" +] ApplicationMgr().ExtSvc += [NTupleSvc()] -ApplicationMgr().HistogramPersistency="ROOT" +ApplicationMgr().HistogramPersistency = "ROOT" diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index c0f1006915b..b540ab11836 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -11,13 +11,13 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks -from RecoConf.mc_checking import monitor_track_resolution +from RecoConf.mc_checking import monitor_track_resolution def hlt1_reco_trackresolution(): track_type = "Forward" tracks = make_hlt1_tracks()[track_type] - pr_checker = monitor_track_resolution( tracks) + pr_checker = monitor_track_resolution(tracks) #return CompositeNode( # name='hlt1_trackRes', diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 1d3d9cc7ec5..8877675a883 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -28,12 +28,9 @@ from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRec from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector -from RecoConf.hlt1_tracking import ( - make_PrStoreUTHit_hits, - make_FTRawBankDecoder_clusters, - make_velo_full_clusters, - make_pvs -) +from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, + make_FTRawBankDecoder_clusters, + make_velo_full_clusters, make_pvs) from Hlt2Conf.data_from_file import mc_unpackers -- GitLab From de033e18763fb721ea1f86f5c4fa36d4244f7dfc Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 8 Jan 2020 12:30:18 +0000 Subject: [PATCH 008/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6706285 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 40c8b9e68bf..3631ceefcf0 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -20,12 +20,12 @@ from PyConf.application import default_raw_event from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( - VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, - PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, - TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_) + VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, + PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, + TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, + DataPacking__Unpack_LHCb__MCVPHitPacker_) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex - from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector -- GitLab From d0be92220802f1312595814895521dffc36fc77d Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 9 Jan 2020 17:46:24 +0100 Subject: [PATCH 009/199] add script for reading IPresolution tuples --- Hlt/RecoConf/scripts/LHCbStyle.py | 104 +++++++++++++ Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 146 ++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 Hlt/RecoConf/scripts/LHCbStyle.py create mode 100644 Hlt/RecoConf/scripts/PrCheckerIPresolution.py diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/LHCbStyle.py new file mode 100644 index 00000000000..e57b3fe3876 --- /dev/null +++ b/Hlt/RecoConf/scripts/LHCbStyle.py @@ -0,0 +1,104 @@ +from ROOT import gStyle +from ROOT import gROOT +from ROOT import TStyle + +def setLHCbStyle() : + global lhcbStyle + + lhcbFont = 132 + lhcbTSize = 0.06 + lhcbWidth = 2 + + lhcbStyle= TStyle("lhcbStyle","LHCb plots style"); + lhcbStyle.SetFillColor(1) + lhcbStyle.SetFillStyle(1001) # solid + lhcbStyle.SetFrameFillColor(0) + lhcbStyle.SetFrameBorderMode(0) + lhcbStyle.SetPadBorderMode(0) + lhcbStyle.SetPadColor(0) + lhcbStyle.SetCanvasBorderMode(0) + lhcbStyle.SetCanvasColor(0) + lhcbStyle.SetStatColor(0) + lhcbStyle.SetLegendBorderSize(0) + lhcbStyle.SetLegendFont(132) + + # use large fonts + lhcbStyle.SetTextFont(lhcbFont) + lhcbStyle.SetTitleFont(lhcbFont) + lhcbStyle.SetTextSize(lhcbTSize) + lhcbStyle.SetLabelFont(lhcbFont,"x") + lhcbStyle.SetLabelFont(lhcbFont,"y") + lhcbStyle.SetLabelFont(lhcbFont,"z") + lhcbStyle.SetLabelSize(lhcbTSize,"x") + lhcbStyle.SetLabelSize(lhcbTSize,"y") + lhcbStyle.SetLabelSize(lhcbTSize,"z") + lhcbStyle.SetTitleFont(lhcbFont) + lhcbStyle.SetTitleFont(lhcbFont,"x") + lhcbStyle.SetTitleFont(lhcbFont,"y") + lhcbStyle.SetTitleFont(lhcbFont,"z") + lhcbStyle.SetTitleSize(1.2*lhcbTSize,"x") + lhcbStyle.SetTitleSize(1.2*lhcbTSize,"y") + lhcbStyle.SetTitleSize(1.2*lhcbTSize,"z") + + # set the paper & margin sizes + lhcbStyle.SetPaperSize(20,26) + lhcbStyle.SetPadTopMargin(0.05) + lhcbStyle.SetPadRightMargin(0.05) # increase for colz plots + lhcbStyle.SetPadBottomMargin(0.16) + lhcbStyle.SetPadLeftMargin(0.14) + + # use medium bold lines and thick markers + lhcbStyle.SetLineWidth(lhcbWidth); + lhcbStyle.SetFrameLineWidth(lhcbWidth); + lhcbStyle.SetHistLineWidth(lhcbWidth); + lhcbStyle.SetFuncWidth(lhcbWidth); + lhcbStyle.SetGridWidth(lhcbWidth); + lhcbStyle.SetLineStyleString(2,"[12 12]"); # postscript dashes + lhcbStyle.SetMarkerStyle(20); + lhcbStyle.SetMarkerSize(1.0); + + # label offsets + lhcbStyle.SetLabelOffset(0.010,"X"); + lhcbStyle.SetLabelOffset(0.010,"Y"); + + # by default, do not display histogram decorations: + lhcbStyle.SetOptStat(0) + #lhcbStyle.SetOptStat("emr") # show only nent -e , mean - m , rms -r + # full opts at http:#root.cern.ch/root/html/TStyle.html#TStyle:SetOptStat + lhcbStyle.SetStatFormat("6.3g") # specified as c printf options + lhcbStyle.SetOptTitle(0) + lhcbStyle.SetOptFit(0) + #lhcbStyle.SetOptFit(1011) # order is probability, Chi2, errors, parameters + #titles + lhcbStyle.SetTitleOffset(0.85,"X") + lhcbStyle.SetTitleOffset(0.85,"Y") + lhcbStyle.SetTitleOffset(1.2,"Z") + lhcbStyle.SetTitleFillColor(0) + lhcbStyle.SetTitleStyle(0) + lhcbStyle.SetTitleBorderSize(0) + lhcbStyle.SetTitleFont(lhcbFont,"title") + lhcbStyle.SetTitleX(0.0) + lhcbStyle.SetTitleY(1.0) + lhcbStyle.SetTitleW(1.0) + lhcbStyle.SetTitleH(0.05) + + # look of the statistics box: + lhcbStyle.SetStatBorderSize(0) + lhcbStyle.SetStatFont(lhcbFont) + lhcbStyle.SetStatFontSize(0.05) + lhcbStyle.SetStatX(0.9) + lhcbStyle.SetStatY(0.9) + lhcbStyle.SetStatW(0.25) + lhcbStyle.SetStatH(0.15) + + # put tick marks on top and RHS of plots + lhcbStyle.SetPadTickX(1) + lhcbStyle.SetPadTickY(1) + + # histogram divisions: only 5 in x to avoid label overlaps + lhcbStyle.SetNdivisions(505,"x") + lhcbStyle.SetNdivisions(510,"y") + + gROOT.SetStyle("lhcbStyle") + return + diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py new file mode 100644 index 00000000000..1e035c09c9a --- /dev/null +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -0,0 +1,146 @@ +#!/usr/bin/python + +# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution +# as well as a check of the IP error distribution and efficiencies in different chi2 cut. +# +# The resolution is fitted by a Gaussian function +# +# author: Peilian Li(peilian.li@cern.ch) +# date: 01/2020 +# + +import os,sys +import argparse +import ROOT +from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 +from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors + +from collections import defaultdict +from LHCbStyle import setLHCbStyle +setLHCbStyle() +#from collectRunResults import send_notification_mattermost + + +def argument_parser(): + parser = argparse.ArgumentParser(description="path of the tuple file location") + parser.add_argument('--directory', type=str, default=os.getcwd(), help='location of input tuple files') + parser.add_argument('--name', type=str, default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') + return parser + +def PrCheckerIPresolution(directory, name): + + f = TFile.Open(os.path.join(directory,name+'.root'), 'read') + outputfile = TFile( "IPResolution_plots.root", "recreate" ) + + tuples = f.Get("TrackIPResolutionCheckerNT/tracks"); + outputfile.cd() + + # typeofprefix==0 for track from PV and matched with MC + cutAcc= "trueeta<5 && trueeta>2 && typeofprefix==0" + print ("Velo track from PV in acceptance: " + cutAcc) + resIPx=TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) + resIPy=TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) + resIPx.SetMarkerStyle(1) + resIPy.SetMarkerStyle(1) + varx="recIPx*1000:1.0/truept" + vary="recIPy*1000:1.0/truept" + print ("IPx var: " +varx) + print ("IPy var: " +vary) + tuples.Draw(varx+">>resIPx", cutAcc) + tuples.Draw(vary+">>resIPy", cutAcc) + resIPx.FitSlicesY() + resIPy.FitSlicesY() + hresx_2 = outputfile.Get("resIPx_2") + hresy_2 = outputfile.Get("resIPy_2") + + canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") + hresx_2.Draw("E1 p1") + hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") + hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") + + polx = TF1("polx","pol1", 0, 3) + polx.SetLineColor(kRed) + print("Fit to Resolution of IPx v.s. 1/pT:") + hresx_2.Fit("polx", "R") + Par0x=format(polx.GetParameter(0), '.2f') + Par1x=format(polx.GetParameter(1), '.2f') + + pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcx=Par0x+"+"+Par1x+"/p_{T}" + text=pt.AddText(Funcx) + pt.Draw() + canvas1.SetRightMargin(0.05) + canvas1.Write() + + canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") + hresy_2.Draw("E1 p1") + hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") + hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") + poly = TF1("poly","pol1", 0, 3) + poly.SetLineColor(kRed) + hresy_2.Fit("poly", "R") + Par0y=format(poly.GetParameter(0), '.2f') + Par1y=format(poly.GetParameter(1), '.2f') + + pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcy=Par0y+"+"+Par1y+"/p_{T}" + texty=pt.AddText(Funcy) + pt.Draw() + canvas2.SetRightMargin(0.05) + canvas2.Write() + + resIPx_1=outputfile.Get("resIPx_1") + resIPx_2=outputfile.Get("resIPx_2") + resIPy_1=outputfile.Get("resIPy_1") + resIPy_2=outputfile.Get("resIPy_2") + for i in range(1, 20): + print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + ", "+format(resIPx_1.GetBinLowEdge(i)+resIPx_1.GetBinWidth(i), '.2f')+") [c/GeV]" +" -***- "+ + "resIPx for mean : " + format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPx_2.GetBinContent(i), '.2f') +"[\mum] -***- "+ + "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPy_2.GetBinContent(i), '.2f')+"[\mum]" ) + + #### rec IP chi2 distribution + recIPChi2=TH1F("recIPChi2", "recIPChi2", 100, 0, 200 ) + var="recIPChi2" + tuples.Draw(var+">>recIPChi2", cutAcc) + canvas=TCanvas("IPChi2", "IPChi2") + canvas.SetLogy() + recIPChi2.Draw() + recIPChi2.SetXTitle("#chi^{2}_{IP}") + recIPChi2.SetYTitle("N_{tracks}") + canvas.SetRightMargin(0.05) + canvas.Write() + + ### print efficiency of different IPchi2 cut + Numerator=TH1F("Numerator", "Numerator", 100, 0, 200 ) + Denominator=TH1F("Denominator", "Denominator", 100, 0, 200 ) + tuples.Draw(var+">>Denominator", cutAcc, "same") + for cut in [100, 25, 16, 9, 4]: + cutChi2=" && recIPChi2<"+format(cut) + cutNum=cutAcc + cutChi2 + tuples.Draw(var+">>Numerator", cutNum) + if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0 : + continue + Eff=Numerator.GetEntries()/(Denominator.GetEntries()+0.0) + print ("Efficiency of IPchi2<"+format(cut)+" : " + format(Eff,'.2%')) + + + outputfile.Write() + outputfile.Close() + f.Close() + +if __name__ == '__main__': + parser = argument_parser() + args = parser.parse_args() + PrCheckerIPresolution(**vars(args)) -- GitLab From c89e7471484d9a90111b6461f8cff9e1eef46f68 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 9 Jan 2020 16:47:05 +0000 Subject: [PATCH 010/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6722884 --- Hlt/RecoConf/scripts/LHCbStyle.py | 95 +++---- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 250 ++++++++++-------- 2 files changed, 182 insertions(+), 163 deletions(-) diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/LHCbStyle.py index e57b3fe3876..11d029b04b4 100644 --- a/Hlt/RecoConf/scripts/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/LHCbStyle.py @@ -2,16 +2,17 @@ from ROOT import gStyle from ROOT import gROOT from ROOT import TStyle -def setLHCbStyle() : + +def setLHCbStyle(): global lhcbStyle - lhcbFont = 132 - lhcbTSize = 0.06 - lhcbWidth = 2 - - lhcbStyle= TStyle("lhcbStyle","LHCb plots style"); + lhcbFont = 132 + lhcbTSize = 0.06 + lhcbWidth = 2 + + lhcbStyle = TStyle("lhcbStyle", "LHCb plots style") lhcbStyle.SetFillColor(1) - lhcbStyle.SetFillStyle(1001) # solid + lhcbStyle.SetFillStyle(1001) # solid lhcbStyle.SetFrameFillColor(0) lhcbStyle.SetFrameBorderMode(0) lhcbStyle.SetPadBorderMode(0) @@ -26,62 +27,63 @@ def setLHCbStyle() : lhcbStyle.SetTextFont(lhcbFont) lhcbStyle.SetTitleFont(lhcbFont) lhcbStyle.SetTextSize(lhcbTSize) - lhcbStyle.SetLabelFont(lhcbFont,"x") - lhcbStyle.SetLabelFont(lhcbFont,"y") - lhcbStyle.SetLabelFont(lhcbFont,"z") - lhcbStyle.SetLabelSize(lhcbTSize,"x") - lhcbStyle.SetLabelSize(lhcbTSize,"y") - lhcbStyle.SetLabelSize(lhcbTSize,"z") + lhcbStyle.SetLabelFont(lhcbFont, "x") + lhcbStyle.SetLabelFont(lhcbFont, "y") + lhcbStyle.SetLabelFont(lhcbFont, "z") + lhcbStyle.SetLabelSize(lhcbTSize, "x") + lhcbStyle.SetLabelSize(lhcbTSize, "y") + lhcbStyle.SetLabelSize(lhcbTSize, "z") lhcbStyle.SetTitleFont(lhcbFont) - lhcbStyle.SetTitleFont(lhcbFont,"x") - lhcbStyle.SetTitleFont(lhcbFont,"y") - lhcbStyle.SetTitleFont(lhcbFont,"z") - lhcbStyle.SetTitleSize(1.2*lhcbTSize,"x") - lhcbStyle.SetTitleSize(1.2*lhcbTSize,"y") - lhcbStyle.SetTitleSize(1.2*lhcbTSize,"z") + lhcbStyle.SetTitleFont(lhcbFont, "x") + lhcbStyle.SetTitleFont(lhcbFont, "y") + lhcbStyle.SetTitleFont(lhcbFont, "z") + lhcbStyle.SetTitleSize(1.2 * lhcbTSize, "x") + lhcbStyle.SetTitleSize(1.2 * lhcbTSize, "y") + lhcbStyle.SetTitleSize(1.2 * lhcbTSize, "z") # set the paper & margin sizes - lhcbStyle.SetPaperSize(20,26) + lhcbStyle.SetPaperSize(20, 26) lhcbStyle.SetPadTopMargin(0.05) - lhcbStyle.SetPadRightMargin(0.05) # increase for colz plots + lhcbStyle.SetPadRightMargin(0.05) # increase for colz plots lhcbStyle.SetPadBottomMargin(0.16) lhcbStyle.SetPadLeftMargin(0.14) # use medium bold lines and thick markers - lhcbStyle.SetLineWidth(lhcbWidth); - lhcbStyle.SetFrameLineWidth(lhcbWidth); - lhcbStyle.SetHistLineWidth(lhcbWidth); - lhcbStyle.SetFuncWidth(lhcbWidth); - lhcbStyle.SetGridWidth(lhcbWidth); - lhcbStyle.SetLineStyleString(2,"[12 12]"); # postscript dashes - lhcbStyle.SetMarkerStyle(20); - lhcbStyle.SetMarkerSize(1.0); - + lhcbStyle.SetLineWidth(lhcbWidth) + lhcbStyle.SetFrameLineWidth(lhcbWidth) + lhcbStyle.SetHistLineWidth(lhcbWidth) + lhcbStyle.SetFuncWidth(lhcbWidth) + lhcbStyle.SetGridWidth(lhcbWidth) + lhcbStyle.SetLineStyleString(2, "[12 12]") + # postscript dashes + lhcbStyle.SetMarkerStyle(20) + lhcbStyle.SetMarkerSize(1.0) + # label offsets - lhcbStyle.SetLabelOffset(0.010,"X"); - lhcbStyle.SetLabelOffset(0.010,"Y"); - + lhcbStyle.SetLabelOffset(0.010, "X") + lhcbStyle.SetLabelOffset(0.010, "Y") + # by default, do not display histogram decorations: - lhcbStyle.SetOptStat(0) + lhcbStyle.SetOptStat(0) #lhcbStyle.SetOptStat("emr") # show only nent -e , mean - m , rms -r # full opts at http:#root.cern.ch/root/html/TStyle.html#TStyle:SetOptStat - lhcbStyle.SetStatFormat("6.3g") # specified as c printf options + lhcbStyle.SetStatFormat("6.3g") # specified as c printf options lhcbStyle.SetOptTitle(0) lhcbStyle.SetOptFit(0) #lhcbStyle.SetOptFit(1011) # order is probability, Chi2, errors, parameters #titles - lhcbStyle.SetTitleOffset(0.85,"X") - lhcbStyle.SetTitleOffset(0.85,"Y") - lhcbStyle.SetTitleOffset(1.2,"Z") + lhcbStyle.SetTitleOffset(0.85, "X") + lhcbStyle.SetTitleOffset(0.85, "Y") + lhcbStyle.SetTitleOffset(1.2, "Z") lhcbStyle.SetTitleFillColor(0) lhcbStyle.SetTitleStyle(0) lhcbStyle.SetTitleBorderSize(0) - lhcbStyle.SetTitleFont(lhcbFont,"title") + lhcbStyle.SetTitleFont(lhcbFont, "title") lhcbStyle.SetTitleX(0.0) - lhcbStyle.SetTitleY(1.0) + lhcbStyle.SetTitleY(1.0) lhcbStyle.SetTitleW(1.0) lhcbStyle.SetTitleH(0.05) - + # look of the statistics box: lhcbStyle.SetStatBorderSize(0) lhcbStyle.SetStatFont(lhcbFont) @@ -90,15 +92,14 @@ def setLHCbStyle() : lhcbStyle.SetStatY(0.9) lhcbStyle.SetStatW(0.25) lhcbStyle.SetStatH(0.15) - + # put tick marks on top and RHS of plots lhcbStyle.SetPadTickX(1) lhcbStyle.SetPadTickY(1) - + # histogram divisions: only 5 in x to avoid label overlaps - lhcbStyle.SetNdivisions(505,"x") - lhcbStyle.SetNdivisions(510,"y") - + lhcbStyle.SetNdivisions(505, "x") + lhcbStyle.SetNdivisions(510, "y") + gROOT.SetStyle("lhcbStyle") return - diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 1e035c09c9a..7a904d5cf2c 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -1,144 +1,162 @@ #!/usr/bin/python -# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution +# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution # as well as a check of the IP error distribution and efficiencies in different chi2 cut. # -# The resolution is fitted by a Gaussian function +# The resolution is fitted by a Gaussian function # # author: Peilian Li(peilian.li@cern.ch) # date: 01/2020 # -import os,sys +import os, sys import argparse import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 -from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 +from ROOT import gROOT, gStyle, TStyle, TPaveText, TString from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors from collections import defaultdict from LHCbStyle import setLHCbStyle setLHCbStyle() + #from collectRunResults import send_notification_mattermost def argument_parser(): - parser = argparse.ArgumentParser(description="path of the tuple file location") - parser.add_argument('--directory', type=str, default=os.getcwd(), help='location of input tuple files') - parser.add_argument('--name', type=str, default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') + parser = argparse.ArgumentParser( + description="path of the tuple file location") + parser.add_argument( + '--directory', + type=str, + default=os.getcwd(), + help='location of input tuple files') + parser.add_argument( + '--name', + type=str, + default='Hlt1ForwardTracking_IPresolution', + help='name of input tuple files') return parser + def PrCheckerIPresolution(directory, name): - f = TFile.Open(os.path.join(directory,name+'.root'), 'read') - outputfile = TFile( "IPResolution_plots.root", "recreate" ) - - tuples = f.Get("TrackIPResolutionCheckerNT/tracks"); - outputfile.cd() - - # typeofprefix==0 for track from PV and matched with MC - cutAcc= "trueeta<5 && trueeta>2 && typeofprefix==0" - print ("Velo track from PV in acceptance: " + cutAcc) - resIPx=TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) - resIPy=TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) - resIPx.SetMarkerStyle(1) - resIPy.SetMarkerStyle(1) - varx="recIPx*1000:1.0/truept" - vary="recIPy*1000:1.0/truept" - print ("IPx var: " +varx) - print ("IPy var: " +vary) - tuples.Draw(varx+">>resIPx", cutAcc) - tuples.Draw(vary+">>resIPy", cutAcc) - resIPx.FitSlicesY() - resIPy.FitSlicesY() - hresx_2 = outputfile.Get("resIPx_2") - hresy_2 = outputfile.Get("resIPy_2") - - canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") - hresx_2.Draw("E1 p1") - hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") - hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") - hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") - - polx = TF1("polx","pol1", 0, 3) - polx.SetLineColor(kRed) - print("Fit to Resolution of IPx v.s. 1/pT:") - hresx_2.Fit("polx", "R") - Par0x=format(polx.GetParameter(0), '.2f') - Par1x=format(polx.GetParameter(1), '.2f') - - pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") - pt.SetTextSize(0.055) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) - Funcx=Par0x+"+"+Par1x+"/p_{T}" - text=pt.AddText(Funcx) - pt.Draw() - canvas1.SetRightMargin(0.05) - canvas1.Write() - - canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") - hresy_2.Draw("E1 p1") - hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") - hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") - hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") - poly = TF1("poly","pol1", 0, 3) - poly.SetLineColor(kRed) - hresy_2.Fit("poly", "R") - Par0y=format(poly.GetParameter(0), '.2f') - Par1y=format(poly.GetParameter(1), '.2f') - - pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") - pt.SetTextSize(0.055) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) - Funcy=Par0y+"+"+Par1y+"/p_{T}" - texty=pt.AddText(Funcy) - pt.Draw() - canvas2.SetRightMargin(0.05) - canvas2.Write() - - resIPx_1=outputfile.Get("resIPx_1") - resIPx_2=outputfile.Get("resIPx_2") - resIPy_1=outputfile.Get("resIPy_1") - resIPy_2=outputfile.Get("resIPy_2") - for i in range(1, 20): - print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + ", "+format(resIPx_1.GetBinLowEdge(i)+resIPx_1.GetBinWidth(i), '.2f')+") [c/GeV]" +" -***- "+ - "resIPx for mean : " + format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPx_2.GetBinContent(i), '.2f') +"[\mum] -***- "+ - "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPy_2.GetBinContent(i), '.2f')+"[\mum]" ) - - #### rec IP chi2 distribution - recIPChi2=TH1F("recIPChi2", "recIPChi2", 100, 0, 200 ) - var="recIPChi2" - tuples.Draw(var+">>recIPChi2", cutAcc) - canvas=TCanvas("IPChi2", "IPChi2") - canvas.SetLogy() - recIPChi2.Draw() - recIPChi2.SetXTitle("#chi^{2}_{IP}") - recIPChi2.SetYTitle("N_{tracks}") - canvas.SetRightMargin(0.05) - canvas.Write() - - ### print efficiency of different IPchi2 cut - Numerator=TH1F("Numerator", "Numerator", 100, 0, 200 ) - Denominator=TH1F("Denominator", "Denominator", 100, 0, 200 ) - tuples.Draw(var+">>Denominator", cutAcc, "same") - for cut in [100, 25, 16, 9, 4]: - cutChi2=" && recIPChi2<"+format(cut) - cutNum=cutAcc + cutChi2 - tuples.Draw(var+">>Numerator", cutNum) - if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0 : - continue - Eff=Numerator.GetEntries()/(Denominator.GetEntries()+0.0) - print ("Efficiency of IPchi2<"+format(cut)+" : " + format(Eff,'.2%')) - - - outputfile.Write() - outputfile.Close() - f.Close() + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') + outputfile = TFile("IPResolution_plots.root", "recreate") + + tuples = f.Get("TrackIPResolutionCheckerNT/tracks") + outputfile.cd() + + # typeofprefix==0 for track from PV and matched with MC + cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" + print("Velo track from PV in acceptance: " + cutAcc) + resIPx = TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) + resIPy = TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) + resIPx.SetMarkerStyle(1) + resIPy.SetMarkerStyle(1) + varx = "recIPx*1000:1.0/truept" + vary = "recIPy*1000:1.0/truept" + print("IPx var: " + varx) + print("IPy var: " + vary) + tuples.Draw(varx + ">>resIPx", cutAcc) + tuples.Draw(vary + ">>resIPy", cutAcc) + resIPx.FitSlicesY() + resIPy.FitSlicesY() + hresx_2 = outputfile.Get("resIPx_2") + hresy_2 = outputfile.Get("resIPy_2") + + canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") + hresx_2.Draw("E1 p1") + hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") + hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") + + polx = TF1("polx", "pol1", 0, 3) + polx.SetLineColor(kRed) + print("Fit to Resolution of IPx v.s. 1/pT:") + hresx_2.Fit("polx", "R") + Par0x = format(polx.GetParameter(0), '.2f') + Par1x = format(polx.GetParameter(1), '.2f') + + pt = TPaveText(0.22, 0.65, 0.48, 0.9, "BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcx = Par0x + "+" + Par1x + "/p_{T}" + text = pt.AddText(Funcx) + pt.Draw() + canvas1.SetRightMargin(0.05) + canvas1.Write() + + canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") + hresy_2.Draw("E1 p1") + hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") + hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") + poly = TF1("poly", "pol1", 0, 3) + poly.SetLineColor(kRed) + hresy_2.Fit("poly", "R") + Par0y = format(poly.GetParameter(0), '.2f') + Par1y = format(poly.GetParameter(1), '.2f') + + pt = TPaveText(0.22, 0.65, 0.48, 0.9, "BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcy = Par0y + "+" + Par1y + "/p_{T}" + texty = pt.AddText(Funcy) + pt.Draw() + canvas2.SetRightMargin(0.05) + canvas2.Write() + + resIPx_1 = outputfile.Get("resIPx_1") + resIPx_2 = outputfile.Get("resIPx_2") + resIPy_1 = outputfile.Get("resIPy_1") + resIPy_2 = outputfile.Get("resIPy_2") + for i in range(1, 20): + print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + + ", " + format( + resIPx_1.GetBinLowEdge(i) + resIPx_1.GetBinWidth(i), '.2f') + + ") [c/GeV]" + " -***- " + "resIPx for mean : " + + format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : " + + format(resIPx_2.GetBinContent(i), '.2f') + "[\mum] -***- " + + "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + + "[\mum] width : " + format(resIPy_2.GetBinContent(i), '.2f') + + "[\mum]") + + #### rec IP chi2 distribution + recIPChi2 = TH1F("recIPChi2", "recIPChi2", 100, 0, 200) + var = "recIPChi2" + tuples.Draw(var + ">>recIPChi2", cutAcc) + canvas = TCanvas("IPChi2", "IPChi2") + canvas.SetLogy() + recIPChi2.Draw() + recIPChi2.SetXTitle("#chi^{2}_{IP}") + recIPChi2.SetYTitle("N_{tracks}") + canvas.SetRightMargin(0.05) + canvas.Write() + + ### print efficiency of different IPchi2 cut + Numerator = TH1F("Numerator", "Numerator", 100, 0, 200) + Denominator = TH1F("Denominator", "Denominator", 100, 0, 200) + tuples.Draw(var + ">>Denominator", cutAcc, "same") + for cut in [100, 25, 16, 9, 4]: + cutChi2 = " && recIPChi2<" + format(cut) + cutNum = cutAcc + cutChi2 + tuples.Draw(var + ">>Numerator", cutNum) + if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0: + continue + Eff = Numerator.GetEntries() / (Denominator.GetEntries() + 0.0) + print("Efficiency of IPchi2<" + format(cut) + " : " + + format(Eff, '.2%')) + + outputfile.Write() + outputfile.Close() + f.Close() + if __name__ == '__main__': parser = argument_parser() -- GitLab From b8628c1a3ce3a44263a911d776909f4731caf766 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 9 Jan 2020 18:01:23 +0100 Subject: [PATCH 011/199] add script for reading the IPresolution tuples --- Hlt/RecoConf/scripts/LHCbStyle.py | 11 +++++++ Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 29 ++++++++++++------- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/LHCbStyle.py index 11d029b04b4..88799a336e2 100644 --- a/Hlt/RecoConf/scripts/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/LHCbStyle.py @@ -1,3 +1,14 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### + from ROOT import gStyle from ROOT import gROOT from ROOT import TStyle diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 7a904d5cf2c..70941eae941 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -1,13 +1,22 @@ -#!/usr/bin/python - -# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution -# as well as a check of the IP error distribution and efficiencies in different chi2 cut. -# -# The resolution is fitted by a Gaussian function -# -# author: Peilian Li(peilian.li@cern.ch) -# date: 01/2020 -# +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +''' + Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution + as well as a check of the IP error distribution and efficiencies in different chi2 cut. + + The resolution is fitted by a Gaussian function + + author: Peilian Li(peilian.li@cern.ch) + date: 01/2020 +''' import os, sys import argparse -- GitLab From ea6bd22592ed5110323c81d2da18b0dbe0a5307c Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Thu, 9 Jan 2020 17:09:12 +0000 Subject: [PATCH 012/199] Apply suggestion to Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt --- Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt index e34dcba158c..74c2cfa3668 100644 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt @@ -10,7 +10,7 @@ or submit itself to any jurisdiction. --> gaudirun.py -- GitLab From 8c494cfd0c9b17cb2d8995b8c509f6fb54fd3ada Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Thu, 9 Jan 2020 17:30:49 +0000 Subject: [PATCH 013/199] Apply suggestion to Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt --- Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt index 38c0cdc0b83..0a10d19ac0d 100644 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt @@ -10,7 +10,7 @@ or submit itself to any jurisdiction. --> gaudirun.py -- GitLab From 2798a894566306f4f2eadb7e83115f4bb2452400 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 10 Jan 2020 17:35:44 +0100 Subject: [PATCH 014/199] add scripts to plot the tracking and IP resolution --- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 19 ++- .../scripts/PrCheckerTrackResolution.py | 143 ++++++++++++++++++ Hlt/RecoConf/scripts/{ => utils}/LHCbStyle.py | 0 Hlt/RecoConf/scripts/utils/Legend.py | 117 ++++++++++++++ .../tests/qmtest/hlt1_reco_IPresolution.qmt | 31 ---- .../qmtest/hlt1_reco_trackresolution.qmt | 31 ---- 6 files changed, 272 insertions(+), 69 deletions(-) create mode 100644 Hlt/RecoConf/scripts/PrCheckerTrackResolution.py rename Hlt/RecoConf/scripts/{ => utils}/LHCbStyle.py (100%) create mode 100644 Hlt/RecoConf/scripts/utils/Legend.py delete mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt delete mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 70941eae941..e110da81343 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -24,18 +24,15 @@ import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 from ROOT import gROOT, gStyle, TStyle, TPaveText, TString -from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors +from ROOT import ROOT, vector, TGraphAsymmErrors from collections import defaultdict -from LHCbStyle import setLHCbStyle -setLHCbStyle() #from collectRunResults import send_notification_mattermost - def argument_parser(): parser = argparse.ArgumentParser( - description="path of the tuple file location") + description="location of the tuple file") parser.add_argument( '--directory', type=str, @@ -46,18 +43,26 @@ def argument_parser(): type=str, default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') + parser.add_argument( + '--plotstyle', + default='', + help='location of LHCb plot style file') return parser -def PrCheckerIPresolution(directory, name): +def PrCheckerIPresolution(directory, name, plotstyle): + sys.path.append(os.path.abspath(plotstyle)) + from LHCbStyle import setLHCbStyle + setLHCbStyle() + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') outputfile = TFile("IPResolution_plots.root", "recreate") tuples = f.Get("TrackIPResolutionCheckerNT/tracks") outputfile.cd() - # typeofprefix==0 for track from PV and matched with MC + ### typeofprefix==0 for track from PV and matched with MC cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" print("Velo track from PV in acceptance: " + cutAcc) resIPx = TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py new file mode 100644 index 00000000000..793da862153 --- /dev/null +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -0,0 +1,143 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +''' + Script for the plots of tracking resolution v.s. p and eta + The resolution is fitted by a Gaussian function + + author: Peilian Li(peilian.li@cern.ch) + date: 01/2020 +''' + +import os, sys +import argparse +import ROOT +from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1, TH2, TF1 +from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import ROOT, vector, TGraphAsymmErrors + +from collections import defaultdict + +#from collectRunResults import send_notification_mattermost + + +def argument_parser(): + parser = argparse.ArgumentParser( + description="location of the histogram file") + parser.add_argument( + '--directory', + type=str, + default=os.getcwd(), + help='location of input tuple files') + parser.add_argument( + '--name', + type=str, + default='Hlt1ForwardTrackingResolution', + help='name of input tuple files') + parser.add_argument( + '--plotstyle', + default='', + help='location of LHCb plot style file') + return parser + + +def PrCheckerTrackResolution(directory, name, plotstyle): + + sys.path.append(os.path.abspath(plotstyle)) + from LHCbStyle import setLHCbStyle + from Legend import place_legend + setLHCbStyle() + + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') + outputfile = TFile("TrackResolution_plots.root", "recreate") + outputfile.cd() + + hres_p= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") + hres_eta= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") + + hres_p.Write() + hres_eta.Write() + hres_p.FitSlicesY() + hres_eta.FitSlicesY() + + hres_p_2 = outputfile.Get("dpoverp_vs_p_2") + hres_eta_2 = outputfile.Get("dpoverp_vs_eta_2") + + canvas1 = TCanvas("res_p", "res v.s. p") + canvas1.cd() + for i in range(1, hres_p_2.GetNbinsX()): + hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i)*100) + + hres_p_2.Draw("E1 p1") + hres_p_2.SetTitle("dp/p:p") + hres_p_2.GetYaxis().SetTitle("dp/p [%]") + hres_p_2.GetXaxis().SetTitle("p [GeV/c]") + hres_p_2.GetYaxis().SetRangeUser(0, 1.2) + hmom = hres_p.ProjectionX() + hmom.SetTitle("p histo.") + hmom.Scale(0.3/hres_p.GetMaximum()) + hmom.Draw("hist same") + hmom.SetFillStyle(3004) + hmom.SetLineColor(kBlue-10) + hmom.SetFillColor(kBlue) + hmom.SetLineWidth(2) + + canvas1.PlaceLegend() + canvas1.SetRightMargin(0.05) + canvas1.Write() + + canvas2 = TCanvas("res_eta", "res v.s. eta") + canvas2.cd() + for i in range(1, hres_eta_2.GetNbinsX()): + hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i)*100) + + hres_eta_2.Draw("E1 p1") + hres_eta_2.SetTitle("dp/p:#eta") + hres_eta_2.GetYaxis().SetTitle("dp/p [%]") + hres_eta_2.GetXaxis().SetTitle("#eta") + hres_eta_2.GetYaxis().SetRangeUser(0, 1.2) + heta = hres_eta.ProjectionX() + heta.SetTitle("#eta histo.") + heta.Scale(0.1/hres_eta.GetMaximum()) + heta.Draw("hist same") + heta.SetFillStyle(3004) + heta.SetLineColor(kBlue-10) + heta.SetFillColor(kBlue) + heta.SetLineWidth(2) + + canvas2.PlaceLegend() + canvas2.SetRightMargin(0.05) + canvas2.Write() + + for i in range(1, hres_p_2.GetNbinsX()): + print("Track resolution (dp/p) in p region: (" + format(hres_p_2.GetBinLowEdge(i), '.2f') + + ", " + format( + hres_p_2.GetBinLowEdge(i) +hres_p_2.GetBinWidth(i), '.2f') + + ") [GeV/c]" + " --- " + + format(hres_p_2.GetBinContent(i), '.2f')+"%" ) + + print("-----------------------------------") + for i in range(1, hres_eta_2.GetNbinsX()): + print("Track resolution (dp/p) in eta region: (" + format(hres_eta_2.GetBinLowEdge(i), '.2f') + + ", " + format( + hres_eta_2.GetBinLowEdge(i) +hres_eta_2.GetBinWidth(i), '.2f') + + ")" + " --- " + + format(hres_eta_2.GetBinContent(i), '.2f')+"%" ) + + outputfile.Write() + outputfile.Close() + f.Close() + + +if __name__ == '__main__': + parser = argument_parser() + args = parser.parse_args() + PrCheckerTrackResolution(**vars(args)) diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/utils/LHCbStyle.py similarity index 100% rename from Hlt/RecoConf/scripts/LHCbStyle.py rename to Hlt/RecoConf/scripts/utils/LHCbStyle.py diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py new file mode 100644 index 00000000000..68ce9aaddf3 --- /dev/null +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -0,0 +1,117 @@ +import ROOT +import itertools +from ROOT import gStyle + +# Some convenience function to easily iterate over the parts of the collections + + +# Needed if importing this script from another script in case TMultiGraphs are used +#ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) + + +# Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks +start, stop = 0.18, 0.89 +x_width, y_width = 0.3, 0.2 +PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left + + +def transform_to_user(canvas, x1, y1, x2, y2): + """ + Transforms from Pad coordinates to User coordinates. + + This can probably be replaced by using the built-in conversion commands. + """ + xstart = canvas.GetX1() + xlength = canvas.GetX2() - xstart + xlow = xlength * x1 + xstart + xhigh = xlength * x2 + xstart + if canvas.GetLogx(): + xlow = 10**xlow + xhigh = 10**xhigh + + ystart = canvas.GetY1() + ylength = canvas.GetY2() - ystart + ylow = ylength * y1 + ystart + yhigh = ylength * y2 + ystart + if canvas.GetLogy(): + ylow = 10**ylow + yhigh = 10**yhigh + + return xlow, ylow, xhigh, yhigh + + +def overlap_h(hist, x1, y1, x2, y2): + xlow = hist.FindFixBin(x1) + xhigh = hist.FindFixBin(x2) + for i in range(xlow, xhigh + 1): + val = hist.GetBinContent(i) + # Values + if y1 <= val <= y2: + return True + # Errors + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + # print "Overlap with histo", hist.GetName(), "at bin", i + return True + return False + + +def overlap_rect(rect1, rect2): + """Do the two rectangles overlap?""" + if rect1[0] > rect2[2] or rect1[2] < rect2[0]: + return False + if rect1[1] > rect2[3] or rect1[3] < rect2[1]: + return False + return True + +def overlap_g(graph, x1, y1, x2, y2): + x_values = list(graph.GetX()) + y_values = list(graph.GetY()) + x_err = list(graph.GetEX()) or [0] * len(x_values) + y_err = list(graph.GetEY()) or [0] * len(y_values) + + for x, ex, y, ey in zip(x_values, x_err, y_values, y_err): + # Could maybe be less conservative + if overlap_rect((x1, y1, x2, y2), (x - ex, y - ey, x + ex, y + ey)): + # print "Overlap with graph", graph.GetName(), "at point", (x, y) + return True + return False + +def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): + gStyle.SetFillStyle(0) + gStyle.SetTextSize(0.06) + # If position is specified, use that + if all(x is not None for x in (x1, x2, y1, y2)): + return canvas.BuildLegend(x1, y1, x2, y2, header, option) + + # Make sure all objects are correctly registered + canvas.Update() + + # Build a list of objects to check for overlaps + objects = [] + for x in canvas.GetListOfPrimitives(): + if isinstance(x, ROOT.TH1) or isinstance(x, ROOT.TGraph): + objects.append(x) + elif isinstance(x, ROOT.THStack) or isinstance(x, ROOT.TMultiGraph): + objects.extend(x) + + for place in PLACES: + place_user = canvas.PadtoU(*place) + # Make sure there are no overlaps + if any(obj.Overlap(*place_user) for obj in objects): + continue + return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + # As a fallback, use the default values, taken from TCanvas::BuildLegend + return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) + +# Monkey patch ROOT objects to make it all work +ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) +ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) +ROOT.TH1.Overlap = overlap_h +ROOT.TGraph.Overlap = overlap_g +ROOT.TPad.PadtoU = transform_to_user +ROOT.TPad.PlaceLegend = place_legend diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt deleted file mode 100644 index 74c2cfa3668..00000000000 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt +++ /dev/null @@ -1,31 +0,0 @@ - - - - -gaudirun.py - - $MOOREROOT/tests/options/default_input_and_conds_hlt1.py - $RECOCONFROOT/options/hlt1_reco_IPresolution.py - --output=hlt1_reco_IPresolution.opts.py - --all-opt - -true - - -from Moore.qmtest.exclusions import remove_known_warnings -countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, - stdout=remove_known_warnings(stdout)) - - - diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt deleted file mode 100644 index 0a10d19ac0d..00000000000 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt +++ /dev/null @@ -1,31 +0,0 @@ - - - - -gaudirun.py - - $MOOREROOT/tests/options/default_input_and_conds_hlt1.py - $RECOCONFROOT/options/hlt1_reco_trackresolution.py - --output=hlt1_reco_trackresolution.opts.py - --all-opt - -true - - -from Moore.qmtest.exclusions import remove_known_warnings -countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, - stdout=remove_known_warnings(stdout)) - - - -- GitLab From 62316eeb0a747320519a6178e6b7d438ece58f55 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 10 Jan 2020 17:40:12 +0100 Subject: [PATCH 015/199] check copyright --- Hlt/RecoConf/scripts/utils/Legend.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index 68ce9aaddf3..4b7b9c4f6b2 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -1,10 +1,20 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### + import ROOT import itertools from ROOT import gStyle # Some convenience function to easily iterate over the parts of the collections - # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) -- GitLab From 1733cb0a6fb206c02addeeba14f39a2c0ddeda54 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 10 Jan 2020 16:40:51 +0000 Subject: [PATCH 016/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6736425 --- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 10 ++-- .../scripts/PrCheckerTrackResolution.py | 48 +++++++++---------- Hlt/RecoConf/scripts/utils/Legend.py | 32 +++++++++---- 3 files changed, 49 insertions(+), 41 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index e110da81343..cc3c1687c24 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -30,9 +30,9 @@ from collections import defaultdict #from collectRunResults import send_notification_mattermost + def argument_parser(): - parser = argparse.ArgumentParser( - description="location of the tuple file") + parser = argparse.ArgumentParser(description="location of the tuple file") parser.add_argument( '--directory', type=str, @@ -44,9 +44,7 @@ def argument_parser(): default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', - default='', - help='location of LHCb plot style file') + '--plotstyle', default='', help='location of LHCb plot style file') return parser @@ -55,7 +53,7 @@ def PrCheckerIPresolution(directory, name, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from LHCbStyle import setLHCbStyle setLHCbStyle() - + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') outputfile = TFile("IPResolution_plots.root", "recreate") diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 793da862153..64dbf24a1f8 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### ''' - Script for the plots of tracking resolution v.s. p and eta + Script for the plots of tracking resolution v.s. p and eta The resolution is fitted by a Gaussian function author: Peilian Li(peilian.li@cern.ch) @@ -43,9 +43,7 @@ def argument_parser(): default='Hlt1ForwardTrackingResolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', - default='', - help='location of LHCb plot style file') + '--plotstyle', default='', help='location of LHCb plot style file') return parser @@ -55,13 +53,13 @@ def PrCheckerTrackResolution(directory, name, plotstyle): from LHCbStyle import setLHCbStyle from Legend import place_legend setLHCbStyle() - + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') outputfile = TFile("TrackResolution_plots.root", "recreate") outputfile.cd() - hres_p= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") - hres_eta= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") + hres_p = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") + hres_eta = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") hres_p.Write() hres_eta.Write() @@ -74,7 +72,7 @@ def PrCheckerTrackResolution(directory, name, plotstyle): canvas1 = TCanvas("res_p", "res v.s. p") canvas1.cd() for i in range(1, hres_p_2.GetNbinsX()): - hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i)*100) + hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i) * 100) hres_p_2.Draw("E1 p1") hres_p_2.SetTitle("dp/p:p") @@ -83,13 +81,13 @@ def PrCheckerTrackResolution(directory, name, plotstyle): hres_p_2.GetYaxis().SetRangeUser(0, 1.2) hmom = hres_p.ProjectionX() hmom.SetTitle("p histo.") - hmom.Scale(0.3/hres_p.GetMaximum()) + hmom.Scale(0.3 / hres_p.GetMaximum()) hmom.Draw("hist same") hmom.SetFillStyle(3004) - hmom.SetLineColor(kBlue-10) + hmom.SetLineColor(kBlue - 10) hmom.SetFillColor(kBlue) hmom.SetLineWidth(2) - + canvas1.PlaceLegend() canvas1.SetRightMargin(0.05) canvas1.Write() @@ -97,7 +95,7 @@ def PrCheckerTrackResolution(directory, name, plotstyle): canvas2 = TCanvas("res_eta", "res v.s. eta") canvas2.cd() for i in range(1, hres_eta_2.GetNbinsX()): - hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i)*100) + hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i) * 100) hres_eta_2.Draw("E1 p1") hres_eta_2.SetTitle("dp/p:#eta") @@ -106,10 +104,10 @@ def PrCheckerTrackResolution(directory, name, plotstyle): hres_eta_2.GetYaxis().SetRangeUser(0, 1.2) heta = hres_eta.ProjectionX() heta.SetTitle("#eta histo.") - heta.Scale(0.1/hres_eta.GetMaximum()) + heta.Scale(0.1 / hres_eta.GetMaximum()) heta.Draw("hist same") heta.SetFillStyle(3004) - heta.SetLineColor(kBlue-10) + heta.SetLineColor(kBlue - 10) heta.SetFillColor(kBlue) heta.SetLineWidth(2) @@ -118,19 +116,19 @@ def PrCheckerTrackResolution(directory, name, plotstyle): canvas2.Write() for i in range(1, hres_p_2.GetNbinsX()): - print("Track resolution (dp/p) in p region: (" + format(hres_p_2.GetBinLowEdge(i), '.2f') + - ", " + format( - hres_p_2.GetBinLowEdge(i) +hres_p_2.GetBinWidth(i), '.2f') + - ") [GeV/c]" + " --- " + - format(hres_p_2.GetBinContent(i), '.2f')+"%" ) + print("Track resolution (dp/p) in p region: (" + + format(hres_p_2.GetBinLowEdge(i), '.2f') + ", " + format( + hres_p_2.GetBinLowEdge(i) + hres_p_2.GetBinWidth(i), '.2f') + + ") [GeV/c]" + " --- " + + format(hres_p_2.GetBinContent(i), '.2f') + "%") print("-----------------------------------") - for i in range(1, hres_eta_2.GetNbinsX()): - print("Track resolution (dp/p) in eta region: (" + format(hres_eta_2.GetBinLowEdge(i), '.2f') + - ", " + format( - hres_eta_2.GetBinLowEdge(i) +hres_eta_2.GetBinWidth(i), '.2f') + - ")" + " --- " + - format(hres_eta_2.GetBinContent(i), '.2f')+"%" ) + for i in range(1, hres_eta_2.GetNbinsX()): + print("Track resolution (dp/p) in eta region: (" + + format(hres_eta_2.GetBinLowEdge(i), '.2f') + ", " + format( + hres_eta_2.GetBinLowEdge(i) + + hres_eta_2.GetBinWidth(i), '.2f') + ")" + " --- " + + format(hres_eta_2.GetBinContent(i), '.2f') + "%") outputfile.Write() outputfile.Close() diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index 4b7b9c4f6b2..771c38e290d 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -18,16 +18,17 @@ from ROOT import gStyle # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) - # Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks start, stop = 0.18, 0.89 x_width, y_width = 0.3, 0.2 -PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left +PLACES = [ + (start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) +] # left def transform_to_user(canvas, x1, y1, x2, y2): @@ -64,7 +65,8 @@ def overlap_h(hist, x1, y1, x2, y2): if y1 <= val <= y2: return True # Errors - if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow( + i) < y2: # print "Overlap with histo", hist.GetName(), "at bin", i return True return False @@ -78,6 +80,7 @@ def overlap_rect(rect1, rect2): return False return True + def overlap_g(graph, x1, y1, x2, y2): x_values = list(graph.GetX()) y_values = list(graph.GetY()) @@ -91,7 +94,14 @@ def overlap_g(graph, x1, y1, x2, y2): return True return False -def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): + +def place_legend(canvas, + x1=None, + y1=None, + x2=None, + y2=None, + header="", + option="LPF"): gStyle.SetFillStyle(0) gStyle.SetTextSize(0.06) # If position is specified, use that @@ -114,10 +124,12 @@ def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option=" # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], + header, option) # As a fallback, use the default values, taken from TCanvas::BuildLegend return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) + # Monkey patch ROOT objects to make it all work ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) -- GitLab From 35191570b36882d598545618a268c0147ebc7648 Mon Sep 17 00:00:00 2001 From: Tomasz Wojton Date: Wed, 15 Jan 2020 23:00:57 +0100 Subject: [PATCH 017/199] PVChecker functional changes --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 42 +++++++++++++++++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 5 ++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 06a26e0c006..efaa45b0e7c 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -13,6 +13,7 @@ from __future__ import absolute_import, division, print_function In this file, algorithms needed to run the MC reconstruction checking (PrTrackChecker) are defined. ''' from PyConf.tonic import (configurable) +from PyConf.dataflow import DataHandle from PyConf.components import Tool from PyConf.application import default_raw_event @@ -25,8 +26,10 @@ from PyConf.Algorithms import ( PrTrackAssociator, PrTrackChecker, PrUTHitChecker, + PrimaryVertexChecker ) +from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from RecoConf.hlt1_tracking import ( @@ -265,6 +268,45 @@ def get_best_tracks_checkers( return efficiency_checkers +@configurable +def get_pv_checkers( + pvs, + tracks, + match_by_distance = False, + produce_ntuple = False, + make_links_lhcbids_mcparticles=make_links_lhcbids_mcparticles_tracking_system +): + + assert isinstance( + pvs, + DataHandle), "Please provide a dictionary of track type and tracks" + + pv_checkers = [] + + vertexConverter = FromVectorLHCbRecVertex( + InputVerticesName=pvs, + InputTracksName=tracks["v1"]).OutputVerticesName + + +# if not match_by_distance: +# links_to_lhcbids = make_links_lhcbids_mcparticles() +# links_to_tracks = make_links_tracks_mcparticles( +# InputTracks=tracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + + pvchecker = PrimaryVertexChecker(produceNtuple = produce_ntuple, + matchByTracks = match_by_distance, + inputVerticesName = vertexConverter, + inputTracksName = tracks["v1"] + ) + + pv_checkers.append(vertexConverter) + pv_checkers.append(pvchecker) +# pv_checkers.append(vertexConverter) + + return pv_checkers + + + def make_track_filter(InputTracks, code): from PyConf.Algorithms import TrackListRefiner from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 6371d9878ec..c236dce45c7 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -20,7 +20,7 @@ from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks from .calorimeter_reconstruction import make_calo -from .mc_checking import get_track_checkers, get_best_tracks_checkers +from .mc_checking import get_track_checkers, get_best_tracks_checkers, get_pv_checkers from .reco_objects_from_file import reconstruction from PyConf.application import default_raw_event from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options @@ -62,6 +62,9 @@ def standalone_hlt1_reco(do_mc_checking=False): "Forward": hlt1_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) + print hlt1_tracks["Velo"] + print pvs + data += get_pv_checkers(pvs, hlt1_tracks["Velo"]) return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From b8d73550cfef0061694cf76a63e5101a8a7cf708 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 15 Jan 2020 22:02:07 +0000 Subject: [PATCH 018/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6789766 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 54 +++++++++------------ 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index efaa45b0e7c..82b57b8cc78 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -20,14 +20,9 @@ from PyConf.application import default_raw_event from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( - VPFullCluster2MCParticleLinker, - PrLHCbID2MCParticle, - PrLHCbID2MCParticleVPUTFTMU, - PrTrackAssociator, - PrTrackChecker, - PrUTHitChecker, - PrimaryVertexChecker -) + VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, + PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, + PrUTHitChecker, PrimaryVertexChecker) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool @@ -270,41 +265,38 @@ def get_best_tracks_checkers( @configurable def get_pv_checkers( - pvs, - tracks, - match_by_distance = False, - produce_ntuple = False, + pvs, + tracks, + match_by_distance=False, + produce_ntuple=False, make_links_lhcbids_mcparticles=make_links_lhcbids_mcparticles_tracking_system ): assert isinstance( pvs, DataHandle), "Please provide a dictionary of track type and tracks" - + pv_checkers = [] vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=pvs, - InputTracksName=tracks["v1"]).OutputVerticesName - - -# if not match_by_distance: -# links_to_lhcbids = make_links_lhcbids_mcparticles() -# links_to_tracks = make_links_tracks_mcparticles( -# InputTracks=tracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - - pvchecker = PrimaryVertexChecker(produceNtuple = produce_ntuple, - matchByTracks = match_by_distance, - inputVerticesName = vertexConverter, - inputTracksName = tracks["v1"] - ) + InputVerticesName=pvs, InputTracksName=tracks["v1"]).OutputVerticesName - pv_checkers.append(vertexConverter) - pv_checkers.append(pvchecker) -# pv_checkers.append(vertexConverter) + # if not match_by_distance: + # links_to_lhcbids = make_links_lhcbids_mcparticles() + # links_to_tracks = make_links_tracks_mcparticles( + # InputTracks=tracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - return pv_checkers + pvchecker = PrimaryVertexChecker( + produceNtuple=produce_ntuple, + matchByTracks=match_by_distance, + inputVerticesName=vertexConverter, + inputTracksName=tracks["v1"]) + + pv_checkers.append(vertexConverter) + pv_checkers.append(pvchecker) + # pv_checkers.append(vertexConverter) + return pv_checkers def make_track_filter(InputTracks, code): -- GitLab From 4592617a11f2a445057dbd94e270510fc7c8cd95 Mon Sep 17 00:00:00 2001 From: Tomasz Wojton Date: Thu, 16 Jan 2020 16:09:44 +0100 Subject: [PATCH 019/199] distance matching, RecoVertex_v2 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 22 +++++++-------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 82b57b8cc78..be64fe5f9a0 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -267,7 +267,6 @@ def get_best_tracks_checkers( def get_pv_checkers( pvs, tracks, - match_by_distance=False, produce_ntuple=False, make_links_lhcbids_mcparticles=make_links_lhcbids_mcparticles_tracking_system ): @@ -278,24 +277,16 @@ def get_pv_checkers( pv_checkers = [] - vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=pvs, InputTracksName=tracks["v1"]).OutputVerticesName - - # if not match_by_distance: - # links_to_lhcbids = make_links_lhcbids_mcparticles() - # links_to_tracks = make_links_tracks_mcparticles( - # InputTracks=tracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - pvchecker = PrimaryVertexChecker( produceNtuple=produce_ntuple, - matchByTracks=match_by_distance, - inputVerticesName=vertexConverter, - inputTracksName=tracks["v1"]) + inputVerticesName=pvs, + inputTracksName=tracks["v1"], + MCVertexInput=mc_unpackers()["MCVertices"], + # MCParticleInput=mc_unpackers()["MCParticles"], + # LinkerLocation=links_to_tracks, + MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header")) - pv_checkers.append(vertexConverter) pv_checkers.append(pvchecker) - # pv_checkers.append(vertexConverter) - return pv_checkers @@ -306,3 +297,4 @@ def make_track_filter(InputTracks, code): filtered_tracks = TrackListRefiner( inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks + -- GitLab From f6f877d080e8c676fb50ccd8efb9ca324fd271f2 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Wed, 18 Dec 2019 17:42:39 +0100 Subject: [PATCH 020/199] add track and IP resolution checker --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 06a26e0c006..06ba967b5b5 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -272,3 +272,35 @@ def make_track_filter(InputTracks, code): filtered_tracks = TrackListRefiner( inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks + +def monitor_track_resolution(InputTracks): + from PyConf.Algorithms import TrackResChecker + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + res_checker = TrackResChecker( + TracksInContainer= InputTracks["v1"], + MCParticleInContainer= mc_unpackers()["MCParticles"], + MCPropertyInput = make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo" ), + LinkerInTable = links_to_tracks + ) + return res_checker + + +def monitor_IPresolution(InputTracks): + from PyConf.Algorithms import TrackIPResolutionCheckerNTMCHits, TrackIPResolutionCheckerNT + from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex + from PyConf.Algorithms import DataPacking__Unpack_LHCb__MCVPHitPacker_ + unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_(InputName=make_data_with_FetchDataFromFile( "/Event/pSim/VP/Hits" )) + vertexConverter = FromVectorLHCbRecVertex(InputVerticesName=pvs, InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + IPres_checker= TrackIPResolutionCheckerNTMCHits( + TrackContainer= InputTracks, + MCParticleInput= mc_unpackers()["MCParticles"], + MCHeaderLocation= make_data_with_FetchDataFromFile("/Event/MC/Header"), + LinkerLocation= links_to_tracks, + PVContainer= vertexConverter, + MCHitsLocation= unpacked_velo_mchits, + NTupleLUN = "FILE1") + return IPres_checker + -- GitLab From 750dc250bddf8f178aef7b4b1c8dae0d40bbab69 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 18 Dec 2019 16:43:35 +0000 Subject: [PATCH 021/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6602383 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 41 ++++++++++++--------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 06ba967b5b5..0117deca6a8 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -273,16 +273,18 @@ def make_track_filter(InputTracks, code): inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks + def monitor_track_resolution(InputTracks): from PyConf.Algorithms import TrackResChecker links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() - links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + links_to_tracks = make_links_tracks_mcparticles( + InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) res_checker = TrackResChecker( - TracksInContainer= InputTracks["v1"], - MCParticleInContainer= mc_unpackers()["MCParticles"], - MCPropertyInput = make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo" ), - LinkerInTable = links_to_tracks - ) + TracksInContainer=InputTracks["v1"], + MCParticleInContainer=mc_unpackers()["MCParticles"], + MCPropertyInput=make_data_with_FetchDataFromFile( + "/Event/MC/TrackInfo"), + LinkerInTable=links_to_tracks) return res_checker @@ -290,17 +292,20 @@ def monitor_IPresolution(InputTracks): from PyConf.Algorithms import TrackIPResolutionCheckerNTMCHits, TrackIPResolutionCheckerNT from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Algorithms import DataPacking__Unpack_LHCb__MCVPHitPacker_ - unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_(InputName=make_data_with_FetchDataFromFile( "/Event/pSim/VP/Hits" )) - vertexConverter = FromVectorLHCbRecVertex(InputVerticesName=pvs, InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_( + InputName=make_data_with_FetchDataFromFile("/Event/pSim/VP/Hits")) + vertexConverter = FromVectorLHCbRecVertex( + InputVerticesName=pvs, + InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() - links_to_tracks = make_links_tracks_mcparticles(InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - IPres_checker= TrackIPResolutionCheckerNTMCHits( - TrackContainer= InputTracks, - MCParticleInput= mc_unpackers()["MCParticles"], - MCHeaderLocation= make_data_with_FetchDataFromFile("/Event/MC/Header"), - LinkerLocation= links_to_tracks, - PVContainer= vertexConverter, - MCHitsLocation= unpacked_velo_mchits, - NTupleLUN = "FILE1") + links_to_tracks = make_links_tracks_mcparticles( + InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + IPres_checker = TrackIPResolutionCheckerNTMCHits( + TrackContainer=InputTracks, + MCParticleInput=mc_unpackers()["MCParticles"], + MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), + LinkerLocation=links_to_tracks, + PVContainer=vertexConverter, + MCHitsLocation=unpacked_velo_mchits, + NTupleLUN="FILE1") return IPres_checker - -- GitLab From 80a9a08429ada93707ce869049c3cec195d64141 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 19 Dec 2019 09:47:47 +0100 Subject: [PATCH 022/199] modify the format --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 0117deca6a8..3f31bfc2217 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -13,6 +13,7 @@ from __future__ import absolute_import, division, print_function In this file, algorithms needed to run the MC reconstruction checking (PrTrackChecker) are defined. ''' from PyConf.tonic import (configurable) +from PyConf.dataflow import DataHandle from PyConf.components import Tool from PyConf.application import default_raw_event @@ -25,9 +26,15 @@ from PyConf.Algorithms import ( PrTrackAssociator, PrTrackChecker, PrUTHitChecker, + TrackListRefiner, + TrackResChecker, + TrackIPResolutionCheckerNT, + DataPacking__Unpack_LHCb__MCVPHitPacker_ ) +from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool +from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import ( make_PrStoreUTHit_hits, @@ -47,7 +54,6 @@ def get_item(x, key): TODO: This helper function can be replaces once Moore!63 has been addressed. """ - from PyConf.dataflow import DataHandle if isinstance(x, DataHandle): return x return x[key] @@ -266,8 +272,6 @@ def get_best_tracks_checkers( def make_track_filter(InputTracks, code): - from PyConf.Algorithms import TrackListRefiner - from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector selector = LoKiTrackSelector(Code=code, StatPrint=True) filtered_tracks = TrackListRefiner( inputLocation=InputTracks["v1"], Selector=selector).outputLocation @@ -275,7 +279,6 @@ def make_track_filter(InputTracks, code): def monitor_track_resolution(InputTracks): - from PyConf.Algorithms import TrackResChecker links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) @@ -289,9 +292,6 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks): - from PyConf.Algorithms import TrackIPResolutionCheckerNTMCHits, TrackIPResolutionCheckerNT - from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex - from PyConf.Algorithms import DataPacking__Unpack_LHCb__MCVPHitPacker_ unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_( InputName=make_data_with_FetchDataFromFile("/Event/pSim/VP/Hits")) vertexConverter = FromVectorLHCbRecVertex( @@ -300,12 +300,11 @@ def monitor_IPresolution(InputTracks): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) - IPres_checker = TrackIPResolutionCheckerNTMCHits( + IPres_checker = TrackIPResolutionCheckerNT( TrackContainer=InputTracks, MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), LinkerLocation=links_to_tracks, PVContainer=vertexConverter, - MCHitsLocation=unpacked_velo_mchits, NTupleLUN="FILE1") return IPres_checker -- GitLab From a05fdbe857fe476ed13c75c066ad8dab5f0f16c1 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 19 Dec 2019 19:32:42 +0100 Subject: [PATCH 023/199] remove unused lines --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 3f31bfc2217..425db41c6f7 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -292,8 +292,6 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks): - unpacked_velo_mchits = DataPacking__Unpack_LHCb__MCVPHitPacker_( - InputName=make_data_with_FetchDataFromFile("/Event/pSim/VP/Hits")) vertexConverter = FromVectorLHCbRecVertex( InputVerticesName=pvs, InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName -- GitLab From f91f4efcddb8e81c0e6f718277dbe92adb95039c Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 20 Dec 2019 15:58:30 +0100 Subject: [PATCH 024/199] add options and qmt test for track and IP resolution --- .../options/hlt1_reco_IPresolution.py | 30 ++++++++++++++++++ .../options/hlt1_reco_trackresolution.py | 31 +++++++++++++++++++ Hlt/RecoConf/python/RecoConf/mc_checking.py | 12 +++---- .../tests/qmtest/hlt1_reco_IPresolution.qmt | 31 +++++++++++++++++++ .../qmtest/hlt1_reco_trackresolution.qmt | 31 +++++++++++++++++++ 5 files changed, 129 insertions(+), 6 deletions(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_IPresolution.py create mode 100644 Hlt/RecoConf/options/hlt1_reco_trackresolution.py create mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py new file mode 100644 index 00000000000..cb8c615e608 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -0,0 +1,30 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks +from RecoConf.mc_checking import monitor_IPresolution +from Configurables import ApplicationMgr +from Configurables import NTupleSvc + + +def hlt1_reco_IPresolution(): + hlt1_tracks = make_hlt1_tracks() + fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) + pr_checker = monitor_IPresolution(fitted_tracks["v1"], hlt1_tracks["Velo"]["v1"]) + + return Reconstruction('IPresolution', [pr_checker], [require_gec()]) + +run_reconstruction(options, hlt1_reco_IPresolution) + +NTupleSvc().Output += ["FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'"] +ApplicationMgr().ExtSvc += [NTupleSvc()] +ApplicationMgr().HistogramPersistency="ROOT" diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py new file mode 100644 index 00000000000..c0f1006915b --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -0,0 +1,31 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks +from RecoConf.mc_checking import monitor_track_resolution + + +def hlt1_reco_trackresolution(): + track_type = "Forward" + tracks = make_hlt1_tracks()[track_type] + pr_checker = monitor_track_resolution( tracks) + + #return CompositeNode( + # name='hlt1_trackRes', + # children=pr_checker, + # combineLogic=NodeLogic.NONLAZY_OR, + # forceOrder=False) + return Reconstruction('track_resolution', [pr_checker], [require_gec()]) + + +options.histo_file = "Hlt1ForwardTrackingResolution.root" +run_reconstruction(options, hlt1_reco_trackresolution) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 425db41c6f7..42a86e16633 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -40,6 +40,7 @@ from RecoConf.hlt1_tracking import ( make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, make_velo_full_clusters, + make_pvs ) from Hlt2Conf.data_from_file import mc_unpackers @@ -285,19 +286,18 @@ def monitor_track_resolution(InputTracks): res_checker = TrackResChecker( TracksInContainer=InputTracks["v1"], MCParticleInContainer=mc_unpackers()["MCParticles"], - MCPropertyInput=make_data_with_FetchDataFromFile( - "/Event/MC/TrackInfo"), LinkerInTable=links_to_tracks) return res_checker -def monitor_IPresolution(InputTracks): +def monitor_IPresolution(InputTracks, VeloTracks): + vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=pvs, - InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + InputVerticesName=make_pvs(), + InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( - InputTracks["v1"], LinksToLHCbIDs=links_to_lhcbids) + InputTracks, LinksToLHCbIDs=links_to_lhcbids) IPres_checker = TrackIPResolutionCheckerNT( TrackContainer=InputTracks, MCParticleInput=mc_unpackers()["MCParticles"], diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt new file mode 100644 index 00000000000..e34dcba158c --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_IPresolution.py + --output=hlt1_reco_IPresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt new file mode 100644 index 00000000000..38c0cdc0b83 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_trackresolution.py + --output=hlt1_reco_trackresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + -- GitLab From 31c2264919188b4243d7f83362a24cdf10ca7663 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 20 Dec 2019 14:59:09 +0000 Subject: [PATCH 025/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6623848 --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 10 +++++++--- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 4 ++-- Hlt/RecoConf/python/RecoConf/mc_checking.py | 9 +++------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index cb8c615e608..2d3221e8b59 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -19,12 +19,16 @@ from Configurables import NTupleSvc def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) - pr_checker = monitor_IPresolution(fitted_tracks["v1"], hlt1_tracks["Velo"]["v1"]) + pr_checker = monitor_IPresolution(fitted_tracks["v1"], + hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) + run_reconstruction(options, hlt1_reco_IPresolution) -NTupleSvc().Output += ["FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'"] +NTupleSvc().Output += [ + "FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'" +] ApplicationMgr().ExtSvc += [NTupleSvc()] -ApplicationMgr().HistogramPersistency="ROOT" +ApplicationMgr().HistogramPersistency = "ROOT" diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index c0f1006915b..b540ab11836 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -11,13 +11,13 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks -from RecoConf.mc_checking import monitor_track_resolution +from RecoConf.mc_checking import monitor_track_resolution def hlt1_reco_trackresolution(): track_type = "Forward" tracks = make_hlt1_tracks()[track_type] - pr_checker = monitor_track_resolution( tracks) + pr_checker = monitor_track_resolution(tracks) #return CompositeNode( # name='hlt1_trackRes', diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 42a86e16633..04678f1eeb1 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -36,12 +36,9 @@ from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRec from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector -from RecoConf.hlt1_tracking import ( - make_PrStoreUTHit_hits, - make_FTRawBankDecoder_clusters, - make_velo_full_clusters, - make_pvs -) +from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, + make_FTRawBankDecoder_clusters, + make_velo_full_clusters, make_pvs) from Hlt2Conf.data_from_file import mc_unpackers -- GitLab From faf438f63fb774de88abf6cabc8279d6036cd4d1 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 9 Jan 2020 17:46:24 +0100 Subject: [PATCH 026/199] add script for reading IPresolution tuples --- Hlt/RecoConf/scripts/LHCbStyle.py | 104 +++++++++++++ Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 146 ++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 Hlt/RecoConf/scripts/LHCbStyle.py create mode 100644 Hlt/RecoConf/scripts/PrCheckerIPresolution.py diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/LHCbStyle.py new file mode 100644 index 00000000000..e57b3fe3876 --- /dev/null +++ b/Hlt/RecoConf/scripts/LHCbStyle.py @@ -0,0 +1,104 @@ +from ROOT import gStyle +from ROOT import gROOT +from ROOT import TStyle + +def setLHCbStyle() : + global lhcbStyle + + lhcbFont = 132 + lhcbTSize = 0.06 + lhcbWidth = 2 + + lhcbStyle= TStyle("lhcbStyle","LHCb plots style"); + lhcbStyle.SetFillColor(1) + lhcbStyle.SetFillStyle(1001) # solid + lhcbStyle.SetFrameFillColor(0) + lhcbStyle.SetFrameBorderMode(0) + lhcbStyle.SetPadBorderMode(0) + lhcbStyle.SetPadColor(0) + lhcbStyle.SetCanvasBorderMode(0) + lhcbStyle.SetCanvasColor(0) + lhcbStyle.SetStatColor(0) + lhcbStyle.SetLegendBorderSize(0) + lhcbStyle.SetLegendFont(132) + + # use large fonts + lhcbStyle.SetTextFont(lhcbFont) + lhcbStyle.SetTitleFont(lhcbFont) + lhcbStyle.SetTextSize(lhcbTSize) + lhcbStyle.SetLabelFont(lhcbFont,"x") + lhcbStyle.SetLabelFont(lhcbFont,"y") + lhcbStyle.SetLabelFont(lhcbFont,"z") + lhcbStyle.SetLabelSize(lhcbTSize,"x") + lhcbStyle.SetLabelSize(lhcbTSize,"y") + lhcbStyle.SetLabelSize(lhcbTSize,"z") + lhcbStyle.SetTitleFont(lhcbFont) + lhcbStyle.SetTitleFont(lhcbFont,"x") + lhcbStyle.SetTitleFont(lhcbFont,"y") + lhcbStyle.SetTitleFont(lhcbFont,"z") + lhcbStyle.SetTitleSize(1.2*lhcbTSize,"x") + lhcbStyle.SetTitleSize(1.2*lhcbTSize,"y") + lhcbStyle.SetTitleSize(1.2*lhcbTSize,"z") + + # set the paper & margin sizes + lhcbStyle.SetPaperSize(20,26) + lhcbStyle.SetPadTopMargin(0.05) + lhcbStyle.SetPadRightMargin(0.05) # increase for colz plots + lhcbStyle.SetPadBottomMargin(0.16) + lhcbStyle.SetPadLeftMargin(0.14) + + # use medium bold lines and thick markers + lhcbStyle.SetLineWidth(lhcbWidth); + lhcbStyle.SetFrameLineWidth(lhcbWidth); + lhcbStyle.SetHistLineWidth(lhcbWidth); + lhcbStyle.SetFuncWidth(lhcbWidth); + lhcbStyle.SetGridWidth(lhcbWidth); + lhcbStyle.SetLineStyleString(2,"[12 12]"); # postscript dashes + lhcbStyle.SetMarkerStyle(20); + lhcbStyle.SetMarkerSize(1.0); + + # label offsets + lhcbStyle.SetLabelOffset(0.010,"X"); + lhcbStyle.SetLabelOffset(0.010,"Y"); + + # by default, do not display histogram decorations: + lhcbStyle.SetOptStat(0) + #lhcbStyle.SetOptStat("emr") # show only nent -e , mean - m , rms -r + # full opts at http:#root.cern.ch/root/html/TStyle.html#TStyle:SetOptStat + lhcbStyle.SetStatFormat("6.3g") # specified as c printf options + lhcbStyle.SetOptTitle(0) + lhcbStyle.SetOptFit(0) + #lhcbStyle.SetOptFit(1011) # order is probability, Chi2, errors, parameters + #titles + lhcbStyle.SetTitleOffset(0.85,"X") + lhcbStyle.SetTitleOffset(0.85,"Y") + lhcbStyle.SetTitleOffset(1.2,"Z") + lhcbStyle.SetTitleFillColor(0) + lhcbStyle.SetTitleStyle(0) + lhcbStyle.SetTitleBorderSize(0) + lhcbStyle.SetTitleFont(lhcbFont,"title") + lhcbStyle.SetTitleX(0.0) + lhcbStyle.SetTitleY(1.0) + lhcbStyle.SetTitleW(1.0) + lhcbStyle.SetTitleH(0.05) + + # look of the statistics box: + lhcbStyle.SetStatBorderSize(0) + lhcbStyle.SetStatFont(lhcbFont) + lhcbStyle.SetStatFontSize(0.05) + lhcbStyle.SetStatX(0.9) + lhcbStyle.SetStatY(0.9) + lhcbStyle.SetStatW(0.25) + lhcbStyle.SetStatH(0.15) + + # put tick marks on top and RHS of plots + lhcbStyle.SetPadTickX(1) + lhcbStyle.SetPadTickY(1) + + # histogram divisions: only 5 in x to avoid label overlaps + lhcbStyle.SetNdivisions(505,"x") + lhcbStyle.SetNdivisions(510,"y") + + gROOT.SetStyle("lhcbStyle") + return + diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py new file mode 100644 index 00000000000..1e035c09c9a --- /dev/null +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -0,0 +1,146 @@ +#!/usr/bin/python + +# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution +# as well as a check of the IP error distribution and efficiencies in different chi2 cut. +# +# The resolution is fitted by a Gaussian function +# +# author: Peilian Li(peilian.li@cern.ch) +# date: 01/2020 +# + +import os,sys +import argparse +import ROOT +from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 +from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors + +from collections import defaultdict +from LHCbStyle import setLHCbStyle +setLHCbStyle() +#from collectRunResults import send_notification_mattermost + + +def argument_parser(): + parser = argparse.ArgumentParser(description="path of the tuple file location") + parser.add_argument('--directory', type=str, default=os.getcwd(), help='location of input tuple files') + parser.add_argument('--name', type=str, default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') + return parser + +def PrCheckerIPresolution(directory, name): + + f = TFile.Open(os.path.join(directory,name+'.root'), 'read') + outputfile = TFile( "IPResolution_plots.root", "recreate" ) + + tuples = f.Get("TrackIPResolutionCheckerNT/tracks"); + outputfile.cd() + + # typeofprefix==0 for track from PV and matched with MC + cutAcc= "trueeta<5 && trueeta>2 && typeofprefix==0" + print ("Velo track from PV in acceptance: " + cutAcc) + resIPx=TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) + resIPy=TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) + resIPx.SetMarkerStyle(1) + resIPy.SetMarkerStyle(1) + varx="recIPx*1000:1.0/truept" + vary="recIPy*1000:1.0/truept" + print ("IPx var: " +varx) + print ("IPy var: " +vary) + tuples.Draw(varx+">>resIPx", cutAcc) + tuples.Draw(vary+">>resIPy", cutAcc) + resIPx.FitSlicesY() + resIPy.FitSlicesY() + hresx_2 = outputfile.Get("resIPx_2") + hresy_2 = outputfile.Get("resIPy_2") + + canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") + hresx_2.Draw("E1 p1") + hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") + hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") + + polx = TF1("polx","pol1", 0, 3) + polx.SetLineColor(kRed) + print("Fit to Resolution of IPx v.s. 1/pT:") + hresx_2.Fit("polx", "R") + Par0x=format(polx.GetParameter(0), '.2f') + Par1x=format(polx.GetParameter(1), '.2f') + + pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcx=Par0x+"+"+Par1x+"/p_{T}" + text=pt.AddText(Funcx) + pt.Draw() + canvas1.SetRightMargin(0.05) + canvas1.Write() + + canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") + hresy_2.Draw("E1 p1") + hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") + hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") + poly = TF1("poly","pol1", 0, 3) + poly.SetLineColor(kRed) + hresy_2.Fit("poly", "R") + Par0y=format(poly.GetParameter(0), '.2f') + Par1y=format(poly.GetParameter(1), '.2f') + + pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcy=Par0y+"+"+Par1y+"/p_{T}" + texty=pt.AddText(Funcy) + pt.Draw() + canvas2.SetRightMargin(0.05) + canvas2.Write() + + resIPx_1=outputfile.Get("resIPx_1") + resIPx_2=outputfile.Get("resIPx_2") + resIPy_1=outputfile.Get("resIPy_1") + resIPy_2=outputfile.Get("resIPy_2") + for i in range(1, 20): + print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + ", "+format(resIPx_1.GetBinLowEdge(i)+resIPx_1.GetBinWidth(i), '.2f')+") [c/GeV]" +" -***- "+ + "resIPx for mean : " + format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPx_2.GetBinContent(i), '.2f') +"[\mum] -***- "+ + "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPy_2.GetBinContent(i), '.2f')+"[\mum]" ) + + #### rec IP chi2 distribution + recIPChi2=TH1F("recIPChi2", "recIPChi2", 100, 0, 200 ) + var="recIPChi2" + tuples.Draw(var+">>recIPChi2", cutAcc) + canvas=TCanvas("IPChi2", "IPChi2") + canvas.SetLogy() + recIPChi2.Draw() + recIPChi2.SetXTitle("#chi^{2}_{IP}") + recIPChi2.SetYTitle("N_{tracks}") + canvas.SetRightMargin(0.05) + canvas.Write() + + ### print efficiency of different IPchi2 cut + Numerator=TH1F("Numerator", "Numerator", 100, 0, 200 ) + Denominator=TH1F("Denominator", "Denominator", 100, 0, 200 ) + tuples.Draw(var+">>Denominator", cutAcc, "same") + for cut in [100, 25, 16, 9, 4]: + cutChi2=" && recIPChi2<"+format(cut) + cutNum=cutAcc + cutChi2 + tuples.Draw(var+">>Numerator", cutNum) + if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0 : + continue + Eff=Numerator.GetEntries()/(Denominator.GetEntries()+0.0) + print ("Efficiency of IPchi2<"+format(cut)+" : " + format(Eff,'.2%')) + + + outputfile.Write() + outputfile.Close() + f.Close() + +if __name__ == '__main__': + parser = argument_parser() + args = parser.parse_args() + PrCheckerIPresolution(**vars(args)) -- GitLab From 3942ae507b9dc35eaac0baddf126511fb1007c54 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 9 Jan 2020 16:47:05 +0000 Subject: [PATCH 027/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6722884 --- Hlt/RecoConf/scripts/LHCbStyle.py | 95 +++---- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 250 ++++++++++-------- 2 files changed, 182 insertions(+), 163 deletions(-) diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/LHCbStyle.py index e57b3fe3876..11d029b04b4 100644 --- a/Hlt/RecoConf/scripts/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/LHCbStyle.py @@ -2,16 +2,17 @@ from ROOT import gStyle from ROOT import gROOT from ROOT import TStyle -def setLHCbStyle() : + +def setLHCbStyle(): global lhcbStyle - lhcbFont = 132 - lhcbTSize = 0.06 - lhcbWidth = 2 - - lhcbStyle= TStyle("lhcbStyle","LHCb plots style"); + lhcbFont = 132 + lhcbTSize = 0.06 + lhcbWidth = 2 + + lhcbStyle = TStyle("lhcbStyle", "LHCb plots style") lhcbStyle.SetFillColor(1) - lhcbStyle.SetFillStyle(1001) # solid + lhcbStyle.SetFillStyle(1001) # solid lhcbStyle.SetFrameFillColor(0) lhcbStyle.SetFrameBorderMode(0) lhcbStyle.SetPadBorderMode(0) @@ -26,62 +27,63 @@ def setLHCbStyle() : lhcbStyle.SetTextFont(lhcbFont) lhcbStyle.SetTitleFont(lhcbFont) lhcbStyle.SetTextSize(lhcbTSize) - lhcbStyle.SetLabelFont(lhcbFont,"x") - lhcbStyle.SetLabelFont(lhcbFont,"y") - lhcbStyle.SetLabelFont(lhcbFont,"z") - lhcbStyle.SetLabelSize(lhcbTSize,"x") - lhcbStyle.SetLabelSize(lhcbTSize,"y") - lhcbStyle.SetLabelSize(lhcbTSize,"z") + lhcbStyle.SetLabelFont(lhcbFont, "x") + lhcbStyle.SetLabelFont(lhcbFont, "y") + lhcbStyle.SetLabelFont(lhcbFont, "z") + lhcbStyle.SetLabelSize(lhcbTSize, "x") + lhcbStyle.SetLabelSize(lhcbTSize, "y") + lhcbStyle.SetLabelSize(lhcbTSize, "z") lhcbStyle.SetTitleFont(lhcbFont) - lhcbStyle.SetTitleFont(lhcbFont,"x") - lhcbStyle.SetTitleFont(lhcbFont,"y") - lhcbStyle.SetTitleFont(lhcbFont,"z") - lhcbStyle.SetTitleSize(1.2*lhcbTSize,"x") - lhcbStyle.SetTitleSize(1.2*lhcbTSize,"y") - lhcbStyle.SetTitleSize(1.2*lhcbTSize,"z") + lhcbStyle.SetTitleFont(lhcbFont, "x") + lhcbStyle.SetTitleFont(lhcbFont, "y") + lhcbStyle.SetTitleFont(lhcbFont, "z") + lhcbStyle.SetTitleSize(1.2 * lhcbTSize, "x") + lhcbStyle.SetTitleSize(1.2 * lhcbTSize, "y") + lhcbStyle.SetTitleSize(1.2 * lhcbTSize, "z") # set the paper & margin sizes - lhcbStyle.SetPaperSize(20,26) + lhcbStyle.SetPaperSize(20, 26) lhcbStyle.SetPadTopMargin(0.05) - lhcbStyle.SetPadRightMargin(0.05) # increase for colz plots + lhcbStyle.SetPadRightMargin(0.05) # increase for colz plots lhcbStyle.SetPadBottomMargin(0.16) lhcbStyle.SetPadLeftMargin(0.14) # use medium bold lines and thick markers - lhcbStyle.SetLineWidth(lhcbWidth); - lhcbStyle.SetFrameLineWidth(lhcbWidth); - lhcbStyle.SetHistLineWidth(lhcbWidth); - lhcbStyle.SetFuncWidth(lhcbWidth); - lhcbStyle.SetGridWidth(lhcbWidth); - lhcbStyle.SetLineStyleString(2,"[12 12]"); # postscript dashes - lhcbStyle.SetMarkerStyle(20); - lhcbStyle.SetMarkerSize(1.0); - + lhcbStyle.SetLineWidth(lhcbWidth) + lhcbStyle.SetFrameLineWidth(lhcbWidth) + lhcbStyle.SetHistLineWidth(lhcbWidth) + lhcbStyle.SetFuncWidth(lhcbWidth) + lhcbStyle.SetGridWidth(lhcbWidth) + lhcbStyle.SetLineStyleString(2, "[12 12]") + # postscript dashes + lhcbStyle.SetMarkerStyle(20) + lhcbStyle.SetMarkerSize(1.0) + # label offsets - lhcbStyle.SetLabelOffset(0.010,"X"); - lhcbStyle.SetLabelOffset(0.010,"Y"); - + lhcbStyle.SetLabelOffset(0.010, "X") + lhcbStyle.SetLabelOffset(0.010, "Y") + # by default, do not display histogram decorations: - lhcbStyle.SetOptStat(0) + lhcbStyle.SetOptStat(0) #lhcbStyle.SetOptStat("emr") # show only nent -e , mean - m , rms -r # full opts at http:#root.cern.ch/root/html/TStyle.html#TStyle:SetOptStat - lhcbStyle.SetStatFormat("6.3g") # specified as c printf options + lhcbStyle.SetStatFormat("6.3g") # specified as c printf options lhcbStyle.SetOptTitle(0) lhcbStyle.SetOptFit(0) #lhcbStyle.SetOptFit(1011) # order is probability, Chi2, errors, parameters #titles - lhcbStyle.SetTitleOffset(0.85,"X") - lhcbStyle.SetTitleOffset(0.85,"Y") - lhcbStyle.SetTitleOffset(1.2,"Z") + lhcbStyle.SetTitleOffset(0.85, "X") + lhcbStyle.SetTitleOffset(0.85, "Y") + lhcbStyle.SetTitleOffset(1.2, "Z") lhcbStyle.SetTitleFillColor(0) lhcbStyle.SetTitleStyle(0) lhcbStyle.SetTitleBorderSize(0) - lhcbStyle.SetTitleFont(lhcbFont,"title") + lhcbStyle.SetTitleFont(lhcbFont, "title") lhcbStyle.SetTitleX(0.0) - lhcbStyle.SetTitleY(1.0) + lhcbStyle.SetTitleY(1.0) lhcbStyle.SetTitleW(1.0) lhcbStyle.SetTitleH(0.05) - + # look of the statistics box: lhcbStyle.SetStatBorderSize(0) lhcbStyle.SetStatFont(lhcbFont) @@ -90,15 +92,14 @@ def setLHCbStyle() : lhcbStyle.SetStatY(0.9) lhcbStyle.SetStatW(0.25) lhcbStyle.SetStatH(0.15) - + # put tick marks on top and RHS of plots lhcbStyle.SetPadTickX(1) lhcbStyle.SetPadTickY(1) - + # histogram divisions: only 5 in x to avoid label overlaps - lhcbStyle.SetNdivisions(505,"x") - lhcbStyle.SetNdivisions(510,"y") - + lhcbStyle.SetNdivisions(505, "x") + lhcbStyle.SetNdivisions(510, "y") + gROOT.SetStyle("lhcbStyle") return - diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 1e035c09c9a..7a904d5cf2c 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -1,144 +1,162 @@ #!/usr/bin/python -# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution +# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution # as well as a check of the IP error distribution and efficiencies in different chi2 cut. # -# The resolution is fitted by a Gaussian function +# The resolution is fitted by a Gaussian function # # author: Peilian Li(peilian.li@cern.ch) # date: 01/2020 # -import os,sys +import os, sys import argparse import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 -from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 +from ROOT import gROOT, gStyle, TStyle, TPaveText, TString from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors from collections import defaultdict from LHCbStyle import setLHCbStyle setLHCbStyle() + #from collectRunResults import send_notification_mattermost def argument_parser(): - parser = argparse.ArgumentParser(description="path of the tuple file location") - parser.add_argument('--directory', type=str, default=os.getcwd(), help='location of input tuple files') - parser.add_argument('--name', type=str, default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') + parser = argparse.ArgumentParser( + description="path of the tuple file location") + parser.add_argument( + '--directory', + type=str, + default=os.getcwd(), + help='location of input tuple files') + parser.add_argument( + '--name', + type=str, + default='Hlt1ForwardTracking_IPresolution', + help='name of input tuple files') return parser + def PrCheckerIPresolution(directory, name): - f = TFile.Open(os.path.join(directory,name+'.root'), 'read') - outputfile = TFile( "IPResolution_plots.root", "recreate" ) - - tuples = f.Get("TrackIPResolutionCheckerNT/tracks"); - outputfile.cd() - - # typeofprefix==0 for track from PV and matched with MC - cutAcc= "trueeta<5 && trueeta>2 && typeofprefix==0" - print ("Velo track from PV in acceptance: " + cutAcc) - resIPx=TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) - resIPy=TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) - resIPx.SetMarkerStyle(1) - resIPy.SetMarkerStyle(1) - varx="recIPx*1000:1.0/truept" - vary="recIPy*1000:1.0/truept" - print ("IPx var: " +varx) - print ("IPy var: " +vary) - tuples.Draw(varx+">>resIPx", cutAcc) - tuples.Draw(vary+">>resIPy", cutAcc) - resIPx.FitSlicesY() - resIPy.FitSlicesY() - hresx_2 = outputfile.Get("resIPx_2") - hresy_2 = outputfile.Get("resIPy_2") - - canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") - hresx_2.Draw("E1 p1") - hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") - hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") - hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") - - polx = TF1("polx","pol1", 0, 3) - polx.SetLineColor(kRed) - print("Fit to Resolution of IPx v.s. 1/pT:") - hresx_2.Fit("polx", "R") - Par0x=format(polx.GetParameter(0), '.2f') - Par1x=format(polx.GetParameter(1), '.2f') - - pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") - pt.SetTextSize(0.055) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) - Funcx=Par0x+"+"+Par1x+"/p_{T}" - text=pt.AddText(Funcx) - pt.Draw() - canvas1.SetRightMargin(0.05) - canvas1.Write() - - canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") - hresy_2.Draw("E1 p1") - hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") - hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") - hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") - poly = TF1("poly","pol1", 0, 3) - poly.SetLineColor(kRed) - hresy_2.Fit("poly", "R") - Par0y=format(poly.GetParameter(0), '.2f') - Par1y=format(poly.GetParameter(1), '.2f') - - pt = TPaveText(0.22,0.65,0.48,0.9,"BRNDC") - pt.SetTextSize(0.055) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) - Funcy=Par0y+"+"+Par1y+"/p_{T}" - texty=pt.AddText(Funcy) - pt.Draw() - canvas2.SetRightMargin(0.05) - canvas2.Write() - - resIPx_1=outputfile.Get("resIPx_1") - resIPx_2=outputfile.Get("resIPx_2") - resIPy_1=outputfile.Get("resIPy_1") - resIPy_2=outputfile.Get("resIPy_2") - for i in range(1, 20): - print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + ", "+format(resIPx_1.GetBinLowEdge(i)+resIPx_1.GetBinWidth(i), '.2f')+") [c/GeV]" +" -***- "+ - "resIPx for mean : " + format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPx_2.GetBinContent(i), '.2f') +"[\mum] -***- "+ - "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + "[\mum] width : "+ format(resIPy_2.GetBinContent(i), '.2f')+"[\mum]" ) - - #### rec IP chi2 distribution - recIPChi2=TH1F("recIPChi2", "recIPChi2", 100, 0, 200 ) - var="recIPChi2" - tuples.Draw(var+">>recIPChi2", cutAcc) - canvas=TCanvas("IPChi2", "IPChi2") - canvas.SetLogy() - recIPChi2.Draw() - recIPChi2.SetXTitle("#chi^{2}_{IP}") - recIPChi2.SetYTitle("N_{tracks}") - canvas.SetRightMargin(0.05) - canvas.Write() - - ### print efficiency of different IPchi2 cut - Numerator=TH1F("Numerator", "Numerator", 100, 0, 200 ) - Denominator=TH1F("Denominator", "Denominator", 100, 0, 200 ) - tuples.Draw(var+">>Denominator", cutAcc, "same") - for cut in [100, 25, 16, 9, 4]: - cutChi2=" && recIPChi2<"+format(cut) - cutNum=cutAcc + cutChi2 - tuples.Draw(var+">>Numerator", cutNum) - if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0 : - continue - Eff=Numerator.GetEntries()/(Denominator.GetEntries()+0.0) - print ("Efficiency of IPchi2<"+format(cut)+" : " + format(Eff,'.2%')) - - - outputfile.Write() - outputfile.Close() - f.Close() + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') + outputfile = TFile("IPResolution_plots.root", "recreate") + + tuples = f.Get("TrackIPResolutionCheckerNT/tracks") + outputfile.cd() + + # typeofprefix==0 for track from PV and matched with MC + cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" + print("Velo track from PV in acceptance: " + cutAcc) + resIPx = TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) + resIPy = TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) + resIPx.SetMarkerStyle(1) + resIPy.SetMarkerStyle(1) + varx = "recIPx*1000:1.0/truept" + vary = "recIPy*1000:1.0/truept" + print("IPx var: " + varx) + print("IPy var: " + vary) + tuples.Draw(varx + ">>resIPx", cutAcc) + tuples.Draw(vary + ">>resIPy", cutAcc) + resIPx.FitSlicesY() + resIPy.FitSlicesY() + hresx_2 = outputfile.Get("resIPx_2") + hresy_2 = outputfile.Get("resIPy_2") + + canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") + hresx_2.Draw("E1 p1") + hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") + hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") + + polx = TF1("polx", "pol1", 0, 3) + polx.SetLineColor(kRed) + print("Fit to Resolution of IPx v.s. 1/pT:") + hresx_2.Fit("polx", "R") + Par0x = format(polx.GetParameter(0), '.2f') + Par1x = format(polx.GetParameter(1), '.2f') + + pt = TPaveText(0.22, 0.65, 0.48, 0.9, "BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcx = Par0x + "+" + Par1x + "/p_{T}" + text = pt.AddText(Funcx) + pt.Draw() + canvas1.SetRightMargin(0.05) + canvas1.Write() + + canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") + hresy_2.Draw("E1 p1") + hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") + hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") + hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") + poly = TF1("poly", "pol1", 0, 3) + poly.SetLineColor(kRed) + hresy_2.Fit("poly", "R") + Par0y = format(poly.GetParameter(0), '.2f') + Par1y = format(poly.GetParameter(1), '.2f') + + pt = TPaveText(0.22, 0.65, 0.48, 0.9, "BRNDC") + pt.SetTextSize(0.055) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + Funcy = Par0y + "+" + Par1y + "/p_{T}" + texty = pt.AddText(Funcy) + pt.Draw() + canvas2.SetRightMargin(0.05) + canvas2.Write() + + resIPx_1 = outputfile.Get("resIPx_1") + resIPx_2 = outputfile.Get("resIPx_2") + resIPy_1 = outputfile.Get("resIPy_1") + resIPy_2 = outputfile.Get("resIPy_2") + for i in range(1, 20): + print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + + ", " + format( + resIPx_1.GetBinLowEdge(i) + resIPx_1.GetBinWidth(i), '.2f') + + ") [c/GeV]" + " -***- " + "resIPx for mean : " + + format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : " + + format(resIPx_2.GetBinContent(i), '.2f') + "[\mum] -***- " + + "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + + "[\mum] width : " + format(resIPy_2.GetBinContent(i), '.2f') + + "[\mum]") + + #### rec IP chi2 distribution + recIPChi2 = TH1F("recIPChi2", "recIPChi2", 100, 0, 200) + var = "recIPChi2" + tuples.Draw(var + ">>recIPChi2", cutAcc) + canvas = TCanvas("IPChi2", "IPChi2") + canvas.SetLogy() + recIPChi2.Draw() + recIPChi2.SetXTitle("#chi^{2}_{IP}") + recIPChi2.SetYTitle("N_{tracks}") + canvas.SetRightMargin(0.05) + canvas.Write() + + ### print efficiency of different IPchi2 cut + Numerator = TH1F("Numerator", "Numerator", 100, 0, 200) + Denominator = TH1F("Denominator", "Denominator", 100, 0, 200) + tuples.Draw(var + ">>Denominator", cutAcc, "same") + for cut in [100, 25, 16, 9, 4]: + cutChi2 = " && recIPChi2<" + format(cut) + cutNum = cutAcc + cutChi2 + tuples.Draw(var + ">>Numerator", cutNum) + if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0: + continue + Eff = Numerator.GetEntries() / (Denominator.GetEntries() + 0.0) + print("Efficiency of IPchi2<" + format(cut) + " : " + + format(Eff, '.2%')) + + outputfile.Write() + outputfile.Close() + f.Close() + if __name__ == '__main__': parser = argument_parser() -- GitLab From 9dbb28551fa909eade1708fc08e15d245cc85f11 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 9 Jan 2020 18:01:23 +0100 Subject: [PATCH 028/199] add script for reading the IPresolution tuples --- Hlt/RecoConf/scripts/LHCbStyle.py | 11 +++++++ Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 29 ++++++++++++------- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/LHCbStyle.py index 11d029b04b4..88799a336e2 100644 --- a/Hlt/RecoConf/scripts/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/LHCbStyle.py @@ -1,3 +1,14 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### + from ROOT import gStyle from ROOT import gROOT from ROOT import TStyle diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 7a904d5cf2c..70941eae941 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -1,13 +1,22 @@ -#!/usr/bin/python - -# Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution -# as well as a check of the IP error distribution and efficiencies in different chi2 cut. -# -# The resolution is fitted by a Gaussian function -# -# author: Peilian Li(peilian.li@cern.ch) -# date: 01/2020 -# +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +''' + Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution + as well as a check of the IP error distribution and efficiencies in different chi2 cut. + + The resolution is fitted by a Gaussian function + + author: Peilian Li(peilian.li@cern.ch) + date: 01/2020 +''' import os, sys import argparse -- GitLab From 6326a2c891bc6e38afbfa6fbedb0ce2baeb8c0d6 Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Thu, 9 Jan 2020 17:09:12 +0000 Subject: [PATCH 029/199] Apply suggestion to Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt --- Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt index e34dcba158c..74c2cfa3668 100644 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt @@ -10,7 +10,7 @@ or submit itself to any jurisdiction. --> gaudirun.py -- GitLab From db9c1ce4f02fe20fb6b3beb042a522a7e403e260 Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Thu, 9 Jan 2020 17:30:49 +0000 Subject: [PATCH 030/199] Apply suggestion to Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt --- Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt index 38c0cdc0b83..0a10d19ac0d 100644 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt @@ -10,7 +10,7 @@ or submit itself to any jurisdiction. --> gaudirun.py -- GitLab From 1059ea41108dd92c774d4d76ed0066cc719a9e75 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 10 Jan 2020 17:35:44 +0100 Subject: [PATCH 031/199] add scripts to plot the tracking and IP resolution --- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 19 ++- .../scripts/PrCheckerTrackResolution.py | 143 ++++++++++++++++++ Hlt/RecoConf/scripts/{ => utils}/LHCbStyle.py | 0 Hlt/RecoConf/scripts/utils/Legend.py | 117 ++++++++++++++ .../tests/qmtest/hlt1_reco_IPresolution.qmt | 31 ---- .../qmtest/hlt1_reco_trackresolution.qmt | 31 ---- 6 files changed, 272 insertions(+), 69 deletions(-) create mode 100644 Hlt/RecoConf/scripts/PrCheckerTrackResolution.py rename Hlt/RecoConf/scripts/{ => utils}/LHCbStyle.py (100%) create mode 100644 Hlt/RecoConf/scripts/utils/Legend.py delete mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt delete mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 70941eae941..e110da81343 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -24,18 +24,15 @@ import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 from ROOT import gROOT, gStyle, TStyle, TPaveText, TString -from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors +from ROOT import ROOT, vector, TGraphAsymmErrors from collections import defaultdict -from LHCbStyle import setLHCbStyle -setLHCbStyle() #from collectRunResults import send_notification_mattermost - def argument_parser(): parser = argparse.ArgumentParser( - description="path of the tuple file location") + description="location of the tuple file") parser.add_argument( '--directory', type=str, @@ -46,18 +43,26 @@ def argument_parser(): type=str, default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') + parser.add_argument( + '--plotstyle', + default='', + help='location of LHCb plot style file') return parser -def PrCheckerIPresolution(directory, name): +def PrCheckerIPresolution(directory, name, plotstyle): + sys.path.append(os.path.abspath(plotstyle)) + from LHCbStyle import setLHCbStyle + setLHCbStyle() + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') outputfile = TFile("IPResolution_plots.root", "recreate") tuples = f.Get("TrackIPResolutionCheckerNT/tracks") outputfile.cd() - # typeofprefix==0 for track from PV and matched with MC + ### typeofprefix==0 for track from PV and matched with MC cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" print("Velo track from PV in acceptance: " + cutAcc) resIPx = TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py new file mode 100644 index 00000000000..793da862153 --- /dev/null +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -0,0 +1,143 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +''' + Script for the plots of tracking resolution v.s. p and eta + The resolution is fitted by a Gaussian function + + author: Peilian Li(peilian.li@cern.ch) + date: 01/2020 +''' + +import os, sys +import argparse +import ROOT +from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1, TH2, TF1 +from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import ROOT, vector, TGraphAsymmErrors + +from collections import defaultdict + +#from collectRunResults import send_notification_mattermost + + +def argument_parser(): + parser = argparse.ArgumentParser( + description="location of the histogram file") + parser.add_argument( + '--directory', + type=str, + default=os.getcwd(), + help='location of input tuple files') + parser.add_argument( + '--name', + type=str, + default='Hlt1ForwardTrackingResolution', + help='name of input tuple files') + parser.add_argument( + '--plotstyle', + default='', + help='location of LHCb plot style file') + return parser + + +def PrCheckerTrackResolution(directory, name, plotstyle): + + sys.path.append(os.path.abspath(plotstyle)) + from LHCbStyle import setLHCbStyle + from Legend import place_legend + setLHCbStyle() + + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') + outputfile = TFile("TrackResolution_plots.root", "recreate") + outputfile.cd() + + hres_p= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") + hres_eta= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") + + hres_p.Write() + hres_eta.Write() + hres_p.FitSlicesY() + hres_eta.FitSlicesY() + + hres_p_2 = outputfile.Get("dpoverp_vs_p_2") + hres_eta_2 = outputfile.Get("dpoverp_vs_eta_2") + + canvas1 = TCanvas("res_p", "res v.s. p") + canvas1.cd() + for i in range(1, hres_p_2.GetNbinsX()): + hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i)*100) + + hres_p_2.Draw("E1 p1") + hres_p_2.SetTitle("dp/p:p") + hres_p_2.GetYaxis().SetTitle("dp/p [%]") + hres_p_2.GetXaxis().SetTitle("p [GeV/c]") + hres_p_2.GetYaxis().SetRangeUser(0, 1.2) + hmom = hres_p.ProjectionX() + hmom.SetTitle("p histo.") + hmom.Scale(0.3/hres_p.GetMaximum()) + hmom.Draw("hist same") + hmom.SetFillStyle(3004) + hmom.SetLineColor(kBlue-10) + hmom.SetFillColor(kBlue) + hmom.SetLineWidth(2) + + canvas1.PlaceLegend() + canvas1.SetRightMargin(0.05) + canvas1.Write() + + canvas2 = TCanvas("res_eta", "res v.s. eta") + canvas2.cd() + for i in range(1, hres_eta_2.GetNbinsX()): + hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i)*100) + + hres_eta_2.Draw("E1 p1") + hres_eta_2.SetTitle("dp/p:#eta") + hres_eta_2.GetYaxis().SetTitle("dp/p [%]") + hres_eta_2.GetXaxis().SetTitle("#eta") + hres_eta_2.GetYaxis().SetRangeUser(0, 1.2) + heta = hres_eta.ProjectionX() + heta.SetTitle("#eta histo.") + heta.Scale(0.1/hres_eta.GetMaximum()) + heta.Draw("hist same") + heta.SetFillStyle(3004) + heta.SetLineColor(kBlue-10) + heta.SetFillColor(kBlue) + heta.SetLineWidth(2) + + canvas2.PlaceLegend() + canvas2.SetRightMargin(0.05) + canvas2.Write() + + for i in range(1, hres_p_2.GetNbinsX()): + print("Track resolution (dp/p) in p region: (" + format(hres_p_2.GetBinLowEdge(i), '.2f') + + ", " + format( + hres_p_2.GetBinLowEdge(i) +hres_p_2.GetBinWidth(i), '.2f') + + ") [GeV/c]" + " --- " + + format(hres_p_2.GetBinContent(i), '.2f')+"%" ) + + print("-----------------------------------") + for i in range(1, hres_eta_2.GetNbinsX()): + print("Track resolution (dp/p) in eta region: (" + format(hres_eta_2.GetBinLowEdge(i), '.2f') + + ", " + format( + hres_eta_2.GetBinLowEdge(i) +hres_eta_2.GetBinWidth(i), '.2f') + + ")" + " --- " + + format(hres_eta_2.GetBinContent(i), '.2f')+"%" ) + + outputfile.Write() + outputfile.Close() + f.Close() + + +if __name__ == '__main__': + parser = argument_parser() + args = parser.parse_args() + PrCheckerTrackResolution(**vars(args)) diff --git a/Hlt/RecoConf/scripts/LHCbStyle.py b/Hlt/RecoConf/scripts/utils/LHCbStyle.py similarity index 100% rename from Hlt/RecoConf/scripts/LHCbStyle.py rename to Hlt/RecoConf/scripts/utils/LHCbStyle.py diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py new file mode 100644 index 00000000000..68ce9aaddf3 --- /dev/null +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -0,0 +1,117 @@ +import ROOT +import itertools +from ROOT import gStyle + +# Some convenience function to easily iterate over the parts of the collections + + +# Needed if importing this script from another script in case TMultiGraphs are used +#ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) + + +# Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks +start, stop = 0.18, 0.89 +x_width, y_width = 0.3, 0.2 +PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left + + +def transform_to_user(canvas, x1, y1, x2, y2): + """ + Transforms from Pad coordinates to User coordinates. + + This can probably be replaced by using the built-in conversion commands. + """ + xstart = canvas.GetX1() + xlength = canvas.GetX2() - xstart + xlow = xlength * x1 + xstart + xhigh = xlength * x2 + xstart + if canvas.GetLogx(): + xlow = 10**xlow + xhigh = 10**xhigh + + ystart = canvas.GetY1() + ylength = canvas.GetY2() - ystart + ylow = ylength * y1 + ystart + yhigh = ylength * y2 + ystart + if canvas.GetLogy(): + ylow = 10**ylow + yhigh = 10**yhigh + + return xlow, ylow, xhigh, yhigh + + +def overlap_h(hist, x1, y1, x2, y2): + xlow = hist.FindFixBin(x1) + xhigh = hist.FindFixBin(x2) + for i in range(xlow, xhigh + 1): + val = hist.GetBinContent(i) + # Values + if y1 <= val <= y2: + return True + # Errors + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + # print "Overlap with histo", hist.GetName(), "at bin", i + return True + return False + + +def overlap_rect(rect1, rect2): + """Do the two rectangles overlap?""" + if rect1[0] > rect2[2] or rect1[2] < rect2[0]: + return False + if rect1[1] > rect2[3] or rect1[3] < rect2[1]: + return False + return True + +def overlap_g(graph, x1, y1, x2, y2): + x_values = list(graph.GetX()) + y_values = list(graph.GetY()) + x_err = list(graph.GetEX()) or [0] * len(x_values) + y_err = list(graph.GetEY()) or [0] * len(y_values) + + for x, ex, y, ey in zip(x_values, x_err, y_values, y_err): + # Could maybe be less conservative + if overlap_rect((x1, y1, x2, y2), (x - ex, y - ey, x + ex, y + ey)): + # print "Overlap with graph", graph.GetName(), "at point", (x, y) + return True + return False + +def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): + gStyle.SetFillStyle(0) + gStyle.SetTextSize(0.06) + # If position is specified, use that + if all(x is not None for x in (x1, x2, y1, y2)): + return canvas.BuildLegend(x1, y1, x2, y2, header, option) + + # Make sure all objects are correctly registered + canvas.Update() + + # Build a list of objects to check for overlaps + objects = [] + for x in canvas.GetListOfPrimitives(): + if isinstance(x, ROOT.TH1) or isinstance(x, ROOT.TGraph): + objects.append(x) + elif isinstance(x, ROOT.THStack) or isinstance(x, ROOT.TMultiGraph): + objects.extend(x) + + for place in PLACES: + place_user = canvas.PadtoU(*place) + # Make sure there are no overlaps + if any(obj.Overlap(*place_user) for obj in objects): + continue + return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + # As a fallback, use the default values, taken from TCanvas::BuildLegend + return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) + +# Monkey patch ROOT objects to make it all work +ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) +ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) +ROOT.TH1.Overlap = overlap_h +ROOT.TGraph.Overlap = overlap_g +ROOT.TPad.PadtoU = transform_to_user +ROOT.TPad.PlaceLegend = place_legend diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt deleted file mode 100644 index 74c2cfa3668..00000000000 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_IPresolution.qmt +++ /dev/null @@ -1,31 +0,0 @@ - - - - -gaudirun.py - - $MOOREROOT/tests/options/default_input_and_conds_hlt1.py - $RECOCONFROOT/options/hlt1_reco_IPresolution.py - --output=hlt1_reco_IPresolution.opts.py - --all-opt - -true - - -from Moore.qmtest.exclusions import remove_known_warnings -countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, - stdout=remove_known_warnings(stdout)) - - - diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt deleted file mode 100644 index 0a10d19ac0d..00000000000 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_trackresolution.qmt +++ /dev/null @@ -1,31 +0,0 @@ - - - - -gaudirun.py - - $MOOREROOT/tests/options/default_input_and_conds_hlt1.py - $RECOCONFROOT/options/hlt1_reco_trackresolution.py - --output=hlt1_reco_trackresolution.opts.py - --all-opt - -true - - -from Moore.qmtest.exclusions import remove_known_warnings -countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, - stdout=remove_known_warnings(stdout)) - - - -- GitLab From a1a5322b12788056590caa951bd4d55bea04a4bd Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 10 Jan 2020 17:40:12 +0100 Subject: [PATCH 032/199] check copyright --- Hlt/RecoConf/scripts/utils/Legend.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index 68ce9aaddf3..4b7b9c4f6b2 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -1,10 +1,20 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### + import ROOT import itertools from ROOT import gStyle # Some convenience function to easily iterate over the parts of the collections - # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) -- GitLab From bb2386bd72d92334c8de3a53690d59b9249dcff0 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 10 Jan 2020 16:40:51 +0000 Subject: [PATCH 033/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6736425 --- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 10 ++-- .../scripts/PrCheckerTrackResolution.py | 48 +++++++++---------- Hlt/RecoConf/scripts/utils/Legend.py | 32 +++++++++---- 3 files changed, 49 insertions(+), 41 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index e110da81343..cc3c1687c24 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -30,9 +30,9 @@ from collections import defaultdict #from collectRunResults import send_notification_mattermost + def argument_parser(): - parser = argparse.ArgumentParser( - description="location of the tuple file") + parser = argparse.ArgumentParser(description="location of the tuple file") parser.add_argument( '--directory', type=str, @@ -44,9 +44,7 @@ def argument_parser(): default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', - default='', - help='location of LHCb plot style file') + '--plotstyle', default='', help='location of LHCb plot style file') return parser @@ -55,7 +53,7 @@ def PrCheckerIPresolution(directory, name, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from LHCbStyle import setLHCbStyle setLHCbStyle() - + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') outputfile = TFile("IPResolution_plots.root", "recreate") diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 793da862153..64dbf24a1f8 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### ''' - Script for the plots of tracking resolution v.s. p and eta + Script for the plots of tracking resolution v.s. p and eta The resolution is fitted by a Gaussian function author: Peilian Li(peilian.li@cern.ch) @@ -43,9 +43,7 @@ def argument_parser(): default='Hlt1ForwardTrackingResolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', - default='', - help='location of LHCb plot style file') + '--plotstyle', default='', help='location of LHCb plot style file') return parser @@ -55,13 +53,13 @@ def PrCheckerTrackResolution(directory, name, plotstyle): from LHCbStyle import setLHCbStyle from Legend import place_legend setLHCbStyle() - + f = TFile.Open(os.path.join(directory, name + '.root'), 'read') outputfile = TFile("TrackResolution_plots.root", "recreate") outputfile.cd() - hres_p= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") - hres_eta= f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") + hres_p = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") + hres_eta = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") hres_p.Write() hres_eta.Write() @@ -74,7 +72,7 @@ def PrCheckerTrackResolution(directory, name, plotstyle): canvas1 = TCanvas("res_p", "res v.s. p") canvas1.cd() for i in range(1, hres_p_2.GetNbinsX()): - hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i)*100) + hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i) * 100) hres_p_2.Draw("E1 p1") hres_p_2.SetTitle("dp/p:p") @@ -83,13 +81,13 @@ def PrCheckerTrackResolution(directory, name, plotstyle): hres_p_2.GetYaxis().SetRangeUser(0, 1.2) hmom = hres_p.ProjectionX() hmom.SetTitle("p histo.") - hmom.Scale(0.3/hres_p.GetMaximum()) + hmom.Scale(0.3 / hres_p.GetMaximum()) hmom.Draw("hist same") hmom.SetFillStyle(3004) - hmom.SetLineColor(kBlue-10) + hmom.SetLineColor(kBlue - 10) hmom.SetFillColor(kBlue) hmom.SetLineWidth(2) - + canvas1.PlaceLegend() canvas1.SetRightMargin(0.05) canvas1.Write() @@ -97,7 +95,7 @@ def PrCheckerTrackResolution(directory, name, plotstyle): canvas2 = TCanvas("res_eta", "res v.s. eta") canvas2.cd() for i in range(1, hres_eta_2.GetNbinsX()): - hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i)*100) + hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i) * 100) hres_eta_2.Draw("E1 p1") hres_eta_2.SetTitle("dp/p:#eta") @@ -106,10 +104,10 @@ def PrCheckerTrackResolution(directory, name, plotstyle): hres_eta_2.GetYaxis().SetRangeUser(0, 1.2) heta = hres_eta.ProjectionX() heta.SetTitle("#eta histo.") - heta.Scale(0.1/hres_eta.GetMaximum()) + heta.Scale(0.1 / hres_eta.GetMaximum()) heta.Draw("hist same") heta.SetFillStyle(3004) - heta.SetLineColor(kBlue-10) + heta.SetLineColor(kBlue - 10) heta.SetFillColor(kBlue) heta.SetLineWidth(2) @@ -118,19 +116,19 @@ def PrCheckerTrackResolution(directory, name, plotstyle): canvas2.Write() for i in range(1, hres_p_2.GetNbinsX()): - print("Track resolution (dp/p) in p region: (" + format(hres_p_2.GetBinLowEdge(i), '.2f') + - ", " + format( - hres_p_2.GetBinLowEdge(i) +hres_p_2.GetBinWidth(i), '.2f') + - ") [GeV/c]" + " --- " + - format(hres_p_2.GetBinContent(i), '.2f')+"%" ) + print("Track resolution (dp/p) in p region: (" + + format(hres_p_2.GetBinLowEdge(i), '.2f') + ", " + format( + hres_p_2.GetBinLowEdge(i) + hres_p_2.GetBinWidth(i), '.2f') + + ") [GeV/c]" + " --- " + + format(hres_p_2.GetBinContent(i), '.2f') + "%") print("-----------------------------------") - for i in range(1, hres_eta_2.GetNbinsX()): - print("Track resolution (dp/p) in eta region: (" + format(hres_eta_2.GetBinLowEdge(i), '.2f') + - ", " + format( - hres_eta_2.GetBinLowEdge(i) +hres_eta_2.GetBinWidth(i), '.2f') + - ")" + " --- " + - format(hres_eta_2.GetBinContent(i), '.2f')+"%" ) + for i in range(1, hres_eta_2.GetNbinsX()): + print("Track resolution (dp/p) in eta region: (" + + format(hres_eta_2.GetBinLowEdge(i), '.2f') + ", " + format( + hres_eta_2.GetBinLowEdge(i) + + hres_eta_2.GetBinWidth(i), '.2f') + ")" + " --- " + + format(hres_eta_2.GetBinContent(i), '.2f') + "%") outputfile.Write() outputfile.Close() diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index 4b7b9c4f6b2..771c38e290d 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -18,16 +18,17 @@ from ROOT import gStyle # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) - # Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks start, stop = 0.18, 0.89 x_width, y_width = 0.3, 0.2 -PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left +PLACES = [ + (start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) +] # left def transform_to_user(canvas, x1, y1, x2, y2): @@ -64,7 +65,8 @@ def overlap_h(hist, x1, y1, x2, y2): if y1 <= val <= y2: return True # Errors - if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow( + i) < y2: # print "Overlap with histo", hist.GetName(), "at bin", i return True return False @@ -78,6 +80,7 @@ def overlap_rect(rect1, rect2): return False return True + def overlap_g(graph, x1, y1, x2, y2): x_values = list(graph.GetX()) y_values = list(graph.GetY()) @@ -91,7 +94,14 @@ def overlap_g(graph, x1, y1, x2, y2): return True return False -def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): + +def place_legend(canvas, + x1=None, + y1=None, + x2=None, + y2=None, + header="", + option="LPF"): gStyle.SetFillStyle(0) gStyle.SetTextSize(0.06) # If position is specified, use that @@ -114,10 +124,12 @@ def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option=" # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], + header, option) # As a fallback, use the default values, taken from TCanvas::BuildLegend return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) + # Monkey patch ROOT objects to make it all work ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) -- GitLab From 650d84d3e9afe03896535f0dbb4bec1e7247cb31 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 22 Jan 2020 15:16:13 +0100 Subject: [PATCH 034/199] start on calling Allen from Moore --- CMakeLists.txt | 2 +- Hlt/Moore/tests/options/default_conds_FTv6.py | 1 + ...reco_baseline_and_Allen_with_mcchecking.py | 36 +++++++++++++++++ Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 39 +++++++++++++++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 30 ++++++++++++++ 5 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py create mode 100644 Hlt/RecoConf/python/RecoConf/hlt1_allen.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 44aac78d329..6fb575652fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ find_package(GaudiProject) # Declare project name and version gaudi_project(Moore v50r0 - USE Phys v30r6 + USE Allen v0r7 DATA AppConfig VERSION v3r* FieldMap VERSION v5r* PRConfig VERSION v1r* diff --git a/Hlt/Moore/tests/options/default_conds_FTv6.py b/Hlt/Moore/tests/options/default_conds_FTv6.py index f8a23c89b00..0d5089fcf18 100644 --- a/Hlt/Moore/tests/options/default_conds_FTv6.py +++ b/Hlt/Moore/tests/options/default_conds_FTv6.py @@ -10,3 +10,4 @@ ############################################################################### from Moore import options options.set_conds_from_testfiledb('upgrade_DC19_01_MinBiasMD') + diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py new file mode 100644 index 00000000000..b9d3998d074 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py @@ -0,0 +1,36 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from RecoConf.standalone import standalone_hlt1_reco_and_allen +from Configurables import ApplicationMgr +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks + +with standalone_hlt1_reco_and_allen.bind(do_mc_checking=True): + run_reconstruction(options, standalone_hlt1_reco_and_allen) + + +producers = [p(DumpToFile=False) for p in (DumpVPGeometry, + DumpUTGeometry, + DumpFTGeometry, + DumpMuonGeometry, + DumpMuonTable, + DumpMagneticField, + DumpBeamline, + DumpUTLookupTables)] + + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py new file mode 100644 index 00000000000..eb937cb4357 --- /dev/null +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -0,0 +1,39 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from PyConf import configurable +from PyConf.components import ( + make_algorithm, + Algorithm, +) +from PyConf.application import default_raw_event, make_odin + +from Configurables import ( + VPClus, + createODIN, + DumpRawBanks, + RunAllen +) + +dump_raw_banks = make_algorithm( + DumpRawBanks, + defaults=dict(BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) + +@configurable +def make_dumped_raw_banks(make_raw=default_raw_event): + return dump_raw_banks(RawEventLocation=make_raw()).AllenRawInput + + +run_allen = makeAlgorithm( + RunAllen, + defaults=dict()) + +#def make_allen_host_buffers(): + diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 6371d9878ec..a35cc37bfbc 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -16,6 +16,8 @@ from .hlt1_tracking import ( make_PrForwardTracking_tracks, make_PatPV3DFuture_pvs, all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) +from .hlt1_allen import ( + make_dumped_raw_banks) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -52,7 +54,35 @@ def standalone_hlt1_reco(do_mc_checking=False): fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) muon_ids = make_muon_id(hlt1_tracks["Forward"]) tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) + + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] + + if do_mc_checking: + types_and_locations_for_checkers = { + "Velo": hlt1_tracks["Velo"], + "Upstream": hlt1_tracks["Upstream"], + "Forward": hlt1_tracks["Forward"], + } + data += get_track_checkers(types_and_locations_for_checkers) + return Reconstruction('hlt1_reco', data, reco_prefilters()) + +@configurable +def standalone_hlt1_reco_and_allen(do_mc_checking=False): + """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional both with the baseline and the Allen sequence + Args: + do_mc_checking (bool): Enable MC checking. + Returns: + Reconstruction: Data and control flow of Hlt1 reconstruction. + + """ + hlt1_tracks = make_hlt1_tracks() + pvs = make_pvs() + fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) + muon_ids = make_muon_id(hlt1_tracks["Forward"]) + tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) + dumped_raw_banks = make_dumped_raw_banks() + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] if do_mc_checking: -- GitLab From 04ed00699bc8401b23058d1011088e908a2e7a78 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 22 Jan 2020 16:02:50 +0100 Subject: [PATCH 035/199] call Allen --- .../tests/options/default_input_and_conds_hlt1.py | 2 +- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 14 ++++++++------ Hlt/RecoConf/python/RecoConf/standalone.py | 12 ++++++++---- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 2bf391d876c..592a42d7fa4 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -12,6 +12,6 @@ import os from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -options.evt_max = 1000 +options.evt_max = 10 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index eb937cb4357..ad5dbf1e167 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -27,13 +27,15 @@ dump_raw_banks = make_algorithm( defaults=dict(BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) @configurable -def make_dumped_raw_banks(make_raw=default_raw_event): - return dump_raw_banks(RawEventLocation=make_raw()).AllenRawInput +def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): + return dump_raw_banks(RawEventLocation=make_raw(), ODINLocation=odin_location()).AllenRawInput -run_allen = makeAlgorithm( +run_allen = make_algorithm( RunAllen, - defaults=dict()) + defaults=dict(DetectorConfigurationPath="../Allen/input/detector_configuration/down/", + AlgorithmConfigurationPath="../Allen/configuration/constants/")) + +def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks): + return run_allen(AllenRawInput=dumped_raw_banks(), ODINLocation=odin_location()).AllenOutput -#def make_allen_host_buffers(): - diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index a35cc37bfbc..a60fc77e385 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -17,7 +17,7 @@ from .hlt1_tracking import ( all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) from .hlt1_allen import ( - make_dumped_raw_banks) + make_dumped_raw_banks, make_allen_output) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -76,14 +76,18 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): Reconstruction: Data and control flow of Hlt1 reconstruction. """ + # baseline hlt1 hlt1_tracks = make_hlt1_tracks() pvs = make_pvs() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) muon_ids = make_muon_id(hlt1_tracks["Forward"]) tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) - dumped_raw_banks = make_dumped_raw_banks() - - data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] + + # Allen hlt1 + #dumped_raw_banks = make_dumped_raw_banks() + allen_raw_output = make_allen_output() + + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id, allen_raw_output] if do_mc_checking: types_and_locations_for_checkers = { -- GitLab From 4a01c09af88f26ef1a858a73f1b0ada27e40b97d Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 22 Jan 2020 16:42:07 +0100 Subject: [PATCH 036/199] call track converters and MC checking for Allen tracks --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 47 ++++++++++++++++++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 13 +++--- 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index ad5dbf1e167..576400bfcdf 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -22,6 +22,13 @@ from Configurables import ( RunAllen ) +from PyConf.Algorithms import ( + LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, + AllenVeloToV2Tracks, + AllenUTToV2Tracks, + AllenForwardToV2Tracks +) + dump_raw_banks = make_algorithm( DumpRawBanks, defaults=dict(BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) @@ -39,3 +46,43 @@ run_allen = make_algorithm( def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks): return run_allen(AllenRawInput=dumped_raw_banks(), ODINLocation=odin_location()).AllenOutput +def make_allen_velo_tracks(): + allen_output = make_allen_output() + velo_tracks_v2 = AllenVeloToV2Tracks(AllenOutput=allen_output).OutputTracks + velo_tracks_v1 = FromV2TrackV1Track(InputTracksName=velo_tracks_v2).OutputTracksName + + return { + "v2" : velo_tracks_v2, + "v1" : velo_tracks_v1 + } + +def make_allen_veloUT_tracks(): + allen_output = make_allen_output() + veloUT_tracks_v2 = AllenUTToV2Tracks(AllenOutput=allen_output).OutputTracks + veloUT_tracks_v1 = FromV2TrackV1Track(InputTracksName=veloUT_tracks_v2).OutputTracksName + + return { + "v2" : veloUT_tracks_v2, + "v1" : veloUT_tracks_v1 + } + +def make_allen_forward_tracks(): + allen_output = make_allen_output() + forward_tracks_v2 = AllenForwardToV2Tracks(AllenOutput=allen_output).OutputTracks + forward_tracks_v1 = FromV2TrackV1Track(InputTracksName=forward_tracks_v2).OutputTracksName + + return { + "v2" : forward_tracks_v2, + "v1" : forward_tracks_v1 + } + +def make_allen_tracks(): + velo_tracks = make_allen_velo_tracks() + velo_ut_tracks = make_allen_veloUT_tracks() + forward_tracks = make_allen_forward_tracks() + + return { + "Velo" : velo_tracks, + "Upstream": velo_ut_tracks, + "Forward": forward_tracks, + } diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index a60fc77e385..f91d6d708d2 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -17,7 +17,7 @@ from .hlt1_tracking import ( all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) from .hlt1_allen import ( - make_dumped_raw_banks, make_allen_output) + make_dumped_raw_banks, make_allen_output, make_allen_tracks) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -84,16 +84,15 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) # Allen hlt1 - #dumped_raw_banks = make_dumped_raw_banks() - allen_raw_output = make_allen_output() + allen_tracks = make_allen_tracks() - data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id, allen_raw_output] + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] if do_mc_checking: types_and_locations_for_checkers = { - "Velo": hlt1_tracks["Velo"], - "Upstream": hlt1_tracks["Upstream"], - "Forward": hlt1_tracks["Forward"], + "Velo": allen_tracks["Velo"], + "Upstream": allen_tracks["Upstream"], + "Forward": allen_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) -- GitLab From 36d0afe32d9255530c796cc21e65376ae645ca45 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 22 Jan 2020 17:23:55 +0100 Subject: [PATCH 037/199] make Moore depend on Phys and Allen --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6fb575652fd..352de7818fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ find_package(GaudiProject) # Declare project name and version gaudi_project(Moore v50r0 - USE Allen v0r7 + USE Phys v30r6 Allen v0r7 DATA AppConfig VERSION v3r* FieldMap VERSION v5r* PRConfig VERSION v1r* -- GitLab From 2daeb5bf7f0b26d5e9805946b430f66ba8e0511e Mon Sep 17 00:00:00 2001 From: bua Date: Thu, 23 Jan 2020 14:12:13 +0100 Subject: [PATCH 038/199] refactoring (MCTrackInfo added) --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index be64fe5f9a0..191d86aad88 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -273,7 +273,7 @@ def get_pv_checkers( assert isinstance( pvs, - DataHandle), "Please provide a dictionary of track type and tracks" + DataHandle), "Please provide reconstructed primary verticies" pv_checkers = [] @@ -282,9 +282,9 @@ def get_pv_checkers( inputVerticesName=pvs, inputTracksName=tracks["v1"], MCVertexInput=mc_unpackers()["MCVertices"], - # MCParticleInput=mc_unpackers()["MCParticles"], - # LinkerLocation=links_to_tracks, - MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header")) + MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), + MCPropertyInput=make_data_with_FetchDataFromFile("/Event/MC/TrackInfo") + ) pv_checkers.append(pvchecker) return pv_checkers -- GitLab From cde921a55711c8c5a5d553b7d1bec6173559de24 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 23 Jan 2020 14:26:58 +0100 Subject: [PATCH 039/199] bsphiphi as input --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 6 ++++-- .../options/hlt1_reco_baseline_and_Allen_with_mcchecking.py | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 592a42d7fa4..92b7e926015 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -11,7 +11,9 @@ import os from Moore import options -options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -options.evt_max = 10 +#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") + +options.evt_max = 1000 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py index b9d3998d074..6d08af62e3e 100644 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py @@ -19,7 +19,6 @@ from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenV with standalone_hlt1_reco_and_allen.bind(do_mc_checking=True): run_reconstruction(options, standalone_hlt1_reco_and_allen) - producers = [p(DumpToFile=False) for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, -- GitLab From 8c9474e37d3d3b2c815a0587d9f8d935fddc2c8a Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 23 Jan 2020 17:18:13 +0100 Subject: [PATCH 040/199] call PV converter and MC checking for Allen PVs --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 4 ++-- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 7 ++++++- Hlt/RecoConf/python/RecoConf/standalone.py | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 92b7e926015..8da7b5b7df0 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -11,8 +11,8 @@ import os from Moore import options -#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") +options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") options.evt_max = 1000 diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 576400bfcdf..c1503137e2b 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -26,7 +26,8 @@ from PyConf.Algorithms import ( LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, AllenVeloToV2Tracks, AllenUTToV2Tracks, - AllenForwardToV2Tracks + AllenForwardToV2Tracks, + AllenPVsToRecVertexV2 ) dump_raw_banks = make_algorithm( @@ -86,3 +87,7 @@ def make_allen_tracks(): "Upstream": velo_ut_tracks, "Forward": forward_tracks, } + +def make_allen_pvs(): + allen_output = make_allen_output() + return AllenPVsToRecVertexV2(AllenOutput=allen_output).OutputPVs diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index fae7add43ef..693c4de04c1 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -17,7 +17,7 @@ from .hlt1_tracking import ( all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) from .hlt1_allen import ( - make_dumped_raw_banks, make_allen_output, make_allen_tracks) + make_allen_tracks, make_allen_pvs) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -88,6 +88,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): # Allen hlt1 allen_tracks = make_allen_tracks() + allen_pvs = make_allen_pvs() data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] @@ -98,6 +99,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): "Forward": allen_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) + data += get_pv_checkers(allen_pvs, allen_tracks["Velo"]) return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From ef1b8d709a53a0c199924b5cac046d1c1704402d Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 23 Jan 2020 17:58:52 +0100 Subject: [PATCH 041/199] write Allen DecReports to TES --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 2 +- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 7 ++++++- Hlt/RecoConf/python/RecoConf/standalone.py | 7 +++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 8da7b5b7df0..796c9860834 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") -options.evt_max = 1000 +options.evt_max = 10 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index c1503137e2b..9640e2a765e 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -27,7 +27,8 @@ from PyConf.Algorithms import ( AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, - AllenPVsToRecVertexV2 + AllenPVsToRecVertexV2, + AllenDecReportsToTES ) dump_raw_banks = make_algorithm( @@ -91,3 +92,7 @@ def make_allen_tracks(): def make_allen_pvs(): allen_output = make_allen_output() return AllenPVsToRecVertexV2(AllenOutput=allen_output).OutputPVs + +def make_allen_dec_reports(): + allen_output = make_allen_output() + return AllenDecReportsToTES(AllenOutput=allen_output).OutputDecReports diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 693c4de04c1..962fbfbf574 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -17,7 +17,7 @@ from .hlt1_tracking import ( all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) from .hlt1_allen import ( - make_allen_tracks, make_allen_pvs) + make_allen_tracks, make_allen_pvs, make_allen_dec_reports) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -86,11 +86,14 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): muon_ids = make_muon_id(hlt1_tracks["Forward"]) tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] + # Allen hlt1 allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() + allen_dec_reports = make_allen_dec_reports() - data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] + data += [allen_dec_reports] if do_mc_checking: types_and_locations_for_checkers = { -- GitLab From 579344b78e9d172b96361228f0f7179aca6b3f3d Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 23 Jan 2020 16:59:45 +0000 Subject: [PATCH 042/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6894958 --- Hlt/Moore/tests/options/default_conds_FTv6.py | 1 - ...reco_baseline_and_Allen_with_mcchecking.py | 17 ++-- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 87 ++++++++++--------- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 +- Hlt/RecoConf/python/RecoConf/standalone.py | 11 +-- 5 files changed, 61 insertions(+), 63 deletions(-) diff --git a/Hlt/Moore/tests/options/default_conds_FTv6.py b/Hlt/Moore/tests/options/default_conds_FTv6.py index 0d5089fcf18..f8a23c89b00 100644 --- a/Hlt/Moore/tests/options/default_conds_FTv6.py +++ b/Hlt/Moore/tests/options/default_conds_FTv6.py @@ -10,4 +10,3 @@ ############################################################################### from Moore import options options.set_conds_from_testfiledb('upgrade_DC19_01_MinBiasMD') - diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py index 6d08af62e3e..3d3321275af 100644 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py @@ -19,17 +19,14 @@ from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenV with standalone_hlt1_reco_and_allen.bind(do_mc_checking=True): run_reconstruction(options, standalone_hlt1_reco_and_allen) -producers = [p(DumpToFile=False) for p in (DumpVPGeometry, - DumpUTGeometry, - DumpFTGeometry, - DumpMuonGeometry, - DumpMuonTable, - DumpMagneticField, - DumpBeamline, - DumpUTLookupTables)] +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] - -# Add the services that will produce the non-event-data +# Add the services that will produce the non-event-data ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 9640e2a765e..dc780f34c86 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -15,84 +15,85 @@ from PyConf.components import ( ) from PyConf.application import default_raw_event, make_odin -from Configurables import ( - VPClus, - createODIN, - DumpRawBanks, - RunAllen -) +from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) -from PyConf.Algorithms import ( - LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, - AllenVeloToV2Tracks, - AllenUTToV2Tracks, - AllenForwardToV2Tracks, - AllenPVsToRecVertexV2, - AllenDecReportsToTES -) +from PyConf.Algorithms import (LHCb__Converters__Track__v1__fromV2TrackV1Track + as FromV2TrackV1Track, AllenVeloToV2Tracks, + AllenUTToV2Tracks, AllenForwardToV2Tracks, + AllenPVsToRecVertexV2, AllenDecReportsToTES) dump_raw_banks = make_algorithm( DumpRawBanks, - defaults=dict(BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) - + defaults=dict( + BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) + + @configurable def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): - return dump_raw_banks(RawEventLocation=make_raw(), ODINLocation=odin_location()).AllenRawInput + return dump_raw_banks( + RawEventLocation=make_raw(), + ODINLocation=odin_location()).AllenRawInput run_allen = make_algorithm( RunAllen, - defaults=dict(DetectorConfigurationPath="../Allen/input/detector_configuration/down/", - AlgorithmConfigurationPath="../Allen/configuration/constants/")) + defaults=dict( + DetectorConfigurationPath="../Allen/input/detector_configuration/down/", + AlgorithmConfigurationPath="../Allen/configuration/constants/")) + + +def make_allen_output(odin_location=make_odin, + dumped_raw_banks=make_dumped_raw_banks): + return run_allen( + AllenRawInput=dumped_raw_banks(), + ODINLocation=odin_location()).AllenOutput -def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks): - return run_allen(AllenRawInput=dumped_raw_banks(), ODINLocation=odin_location()).AllenOutput def make_allen_velo_tracks(): allen_output = make_allen_output() velo_tracks_v2 = AllenVeloToV2Tracks(AllenOutput=allen_output).OutputTracks - velo_tracks_v1 = FromV2TrackV1Track(InputTracksName=velo_tracks_v2).OutputTracksName - - return { - "v2" : velo_tracks_v2, - "v1" : velo_tracks_v1 - } + velo_tracks_v1 = FromV2TrackV1Track( + InputTracksName=velo_tracks_v2).OutputTracksName + + return {"v2": velo_tracks_v2, "v1": velo_tracks_v1} + def make_allen_veloUT_tracks(): allen_output = make_allen_output() veloUT_tracks_v2 = AllenUTToV2Tracks(AllenOutput=allen_output).OutputTracks - veloUT_tracks_v1 = FromV2TrackV1Track(InputTracksName=veloUT_tracks_v2).OutputTracksName - - return { - "v2" : veloUT_tracks_v2, - "v1" : veloUT_tracks_v1 - } + veloUT_tracks_v1 = FromV2TrackV1Track( + InputTracksName=veloUT_tracks_v2).OutputTracksName + + return {"v2": veloUT_tracks_v2, "v1": veloUT_tracks_v1} + def make_allen_forward_tracks(): allen_output = make_allen_output() - forward_tracks_v2 = AllenForwardToV2Tracks(AllenOutput=allen_output).OutputTracks - forward_tracks_v1 = FromV2TrackV1Track(InputTracksName=forward_tracks_v2).OutputTracksName - - return { - "v2" : forward_tracks_v2, - "v1" : forward_tracks_v1 - } + forward_tracks_v2 = AllenForwardToV2Tracks( + AllenOutput=allen_output).OutputTracks + forward_tracks_v1 = FromV2TrackV1Track( + InputTracksName=forward_tracks_v2).OutputTracksName + + return {"v2": forward_tracks_v2, "v1": forward_tracks_v1} + def make_allen_tracks(): velo_tracks = make_allen_velo_tracks() velo_ut_tracks = make_allen_veloUT_tracks() forward_tracks = make_allen_forward_tracks() - + return { - "Velo" : velo_tracks, + "Velo": velo_tracks, "Upstream": velo_ut_tracks, "Forward": forward_tracks, - } + } + def make_allen_pvs(): allen_output = make_allen_output() return AllenPVsToRecVertexV2(AllenOutput=allen_output).OutputPVs + def make_allen_dec_reports(): allen_output = make_allen_output() return AllenDecReportsToTES(AllenOutput=allen_output).OutputDecReports diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 6620ce57740..234538378e1 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -272,8 +272,7 @@ def get_pv_checkers( ): assert isinstance( - pvs, - DataHandle), "Please provide reconstructed primary verticies" + pvs, DataHandle), "Please provide reconstructed primary verticies" pv_checkers = [] @@ -283,8 +282,8 @@ def get_pv_checkers( inputTracksName=tracks["v1"], MCVertexInput=mc_unpackers()["MCVertices"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), - MCPropertyInput=make_data_with_FetchDataFromFile("/Event/MC/TrackInfo") - ) + MCPropertyInput=make_data_with_FetchDataFromFile( + "/Event/MC/TrackInfo")) pv_checkers.append(pvchecker) return pv_checkers @@ -296,6 +295,7 @@ def make_track_filter(InputTracks, code): inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks + def monitor_track_resolution(InputTracks): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 962fbfbf574..4cb532713d5 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -16,8 +16,8 @@ from .hlt1_tracking import ( make_PrForwardTracking_tracks, make_PatPV3DFuture_pvs, all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) -from .hlt1_allen import ( - make_allen_tracks, make_allen_pvs, make_allen_dec_reports) +from .hlt1_allen import (make_allen_tracks, make_allen_pvs, + make_allen_dec_reports) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -54,7 +54,7 @@ def standalone_hlt1_reco(do_mc_checking=False): fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) muon_ids = make_muon_id(hlt1_tracks["Forward"]) tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) - + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] if do_mc_checking: @@ -70,6 +70,7 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) + @configurable def standalone_hlt1_reco_and_allen(do_mc_checking=False): """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional both with the baseline and the Allen sequence @@ -87,12 +88,12 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] - + # Allen hlt1 allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() allen_dec_reports = make_allen_dec_reports() - + data += [allen_dec_reports] if do_mc_checking: -- GitLab From 59989a3564178acadb30b14c27bc46990986233b Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 24 Jan 2020 12:36:57 +0100 Subject: [PATCH 043/199] call IP resolution and track resolution checks for Allen --- .../options/default_input_and_conds_hlt1.py | 2 +- .../options/hlt1_reco_IPresolution.py | 4 +- .../options/hlt1_reco_allen_IPresolution.py | 51 +++++++++++++++++++ .../hlt1_reco_allen_trackresolution.py | 48 +++++++++++++++++ Hlt/RecoConf/python/RecoConf/mc_checking.py | 6 +-- 5 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 796c9860834..8da7b5b7df0 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") -options.evt_max = 10 +options.evt_max = 1000 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 2d3221e8b59..6753709704d 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -10,7 +10,7 @@ ############################################################################### from Moore import options, run_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks, make_pvs from RecoConf.mc_checking import monitor_IPresolution from Configurables import ApplicationMgr from Configurables import NTupleSvc @@ -19,7 +19,9 @@ from Configurables import NTupleSvc def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) + pvs = make_pvs() pr_checker = monitor_IPresolution(fitted_tracks["v1"], + pvs, hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py new file mode 100644 index 00000000000..7bae6f8c7ed --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py @@ -0,0 +1,51 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_VeloKalman_fitted_tracks +from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs +from RecoConf.mc_checking import monitor_IPresolution +from Configurables import ApplicationMgr +from Configurables import NTupleSvc +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import AllenUpdater + +def hlt1_reco_allen_IPresolution(): + allen_tracks = make_allen_tracks() + allen_pvs = make_allen_pvs() + pr_checker = monitor_IPresolution(allen_tracks["Forward"]["v1"], + allen_pvs, + allen_tracks["Velo"]["v1"]) + + return Reconstruction('IPresolution', [pr_checker], [require_gec()]) + + +run_reconstruction(options, hlt1_reco_allen_IPresolution) + +NTupleSvc().Output += [ + "FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution_Allen.root' TYPE='ROOT' OPT='NEW'" +] +ApplicationMgr().ExtSvc += [NTupleSvc()] +ApplicationMgr().HistogramPersistency = "ROOT" + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py new file mode 100644 index 00000000000..a7b342b4ad8 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py @@ -0,0 +1,48 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec +from RecoConf.hlt1_allen import make_allen_tracks +from RecoConf.mc_checking import monitor_track_resolution +from Configurables import ApplicationMgr +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import AllenUpdater + +def hlt1_reco_allen_trackresolution(): + track_type = "Forward" + tracks = make_allen_tracks()[track_type] + pr_checker = monitor_track_resolution(tracks) + + #return CompositeNode( + # name='hlt1_trackRes', + # children=pr_checker, + # combineLogic=NodeLogic.NONLAZY_OR, + # forceOrder=False) + return Reconstruction('track_resolution', [pr_checker], [require_gec()]) + + +options.histo_file = "Hlt1ForwardTrackingResolutionAllen.root" +run_reconstruction(options, hlt1_reco_allen_trackresolution) + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 234538378e1..83c9724d4bb 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -32,7 +32,7 @@ from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters, make_pvs) + make_velo_full_clusters) from Hlt2Conf.data_from_file import mc_unpackers @@ -307,10 +307,10 @@ def monitor_track_resolution(InputTracks): return res_checker -def monitor_IPresolution(InputTracks, VeloTracks): +def monitor_IPresolution(InputTracks, InputVertices, VeloTracks): vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=make_pvs(), + InputVerticesName=InputVertices, InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( -- GitLab From 8a2b04eae141966d93fa9a3e60ceee65800259b9 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 24 Jan 2020 17:32:07 +0100 Subject: [PATCH 044/199] save Allen histograms --- Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py index 7bae6f8c7ed..cfad3cd96ce 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py @@ -29,6 +29,7 @@ def hlt1_reco_allen_IPresolution(): return Reconstruction('IPresolution', [pr_checker], [require_gec()]) +options.histo_file = "AllenQuantities.root" run_reconstruction(options, hlt1_reco_allen_IPresolution) @@ -49,3 +50,5 @@ producers = [ ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers + + -- GitLab From 067a8110c0c72fe44d79d36aaf6a5e521619b2d1 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Mon, 27 Jan 2020 12:21:51 +0100 Subject: [PATCH 045/199] add scripts for plotting tracking efficiency --- .../options/hlt1_reco_IPresolution.py | 2 +- Hlt/RecoConf/scripts/Legend.py | 117 ++++++++ .../scripts/PrCheckerEfficiency_HLT1.py | 268 ++++++++++++++++++ Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 5 +- .../scripts/PrCheckerTrackResolution.py | 5 +- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 139 +++++++++ Hlt/RecoConf/scripts/utils/Legend.py | 50 +--- 7 files changed, 545 insertions(+), 41 deletions(-) create mode 100644 Hlt/RecoConf/scripts/Legend.py create mode 100644 Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py create mode 100644 Hlt/RecoConf/scripts/utils/ConfigHistos.py diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 2d3221e8b59..587b0b2c880 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -10,7 +10,7 @@ ############################################################################### from Moore import options, run_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks from RecoConf.mc_checking import monitor_IPresolution from Configurables import ApplicationMgr from Configurables import NTupleSvc diff --git a/Hlt/RecoConf/scripts/Legend.py b/Hlt/RecoConf/scripts/Legend.py new file mode 100644 index 00000000000..33e479a6fcc --- /dev/null +++ b/Hlt/RecoConf/scripts/Legend.py @@ -0,0 +1,117 @@ +import ROOT +import itertools +from ROOT import gStyle + +# Some convenience function to easily iterate over the parts of the collections + + +# Needed if importing this script from another script in case TMultiGraphs are used +#ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) + + +# Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks +start, stop = 0.18, 0.89 +x_width, y_width = 0.3, 0.2 +PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left + + +def transform_to_user(canvas, x1, y1, x2, y2): + """ + Transforms from Pad coordinates to User coordinates. + + This can probably be replaced by using the built-in conversion commands. + """ + xstart = canvas.GetX1() + xlength = canvas.GetX2() - xstart + xlow = xlength * x1 + xstart + xhigh = xlength * x2 + xstart + if canvas.GetLogx(): + xlow = 10**xlow + xhigh = 10**xhigh + + ystart = canvas.GetY1() + ylength = canvas.GetY2() - ystart + ylow = ylength * y1 + ystart + yhigh = ylength * y2 + ystart + if canvas.GetLogy(): + ylow = 10**ylow + yhigh = 10**yhigh + + return xlow, ylow, xhigh, yhigh + + +def overlap_h(hist, x1, y1, x2, y2): + xlow = hist.FindFixBin(x1) + xhigh = hist.FindFixBin(x2) + for i in range(xlow, xhigh + 1): + val = hist.GetBinContent(i) + # Values + if y1 <= val <= y2: + return True + # Errors + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + # print "Overlap with histo", hist.GetName(), "at bin", i + return True + return False + + +def overlap_rect(rect1, rect2): + """Do the two rectangles overlap?""" + if rect1[0] > rect2[2] or rect1[2] < rect2[0]: + return False + if rect1[1] > rect2[3] or rect1[3] < rect2[1]: + return False + return True + +def overlap_g(graph, x1, y1, x2, y2): + x_values = list(graph.GetX()) + y_values = list(graph.GetY()) + x_err = list(graph.GetEX()) or [0] * len(x_values) + y_err = list(graph.GetEY()) or [0] * len(y_values) + + for x, ex, y, ey in zip(x_values, x_err, y_values, y_err): + # Could maybe be less conservative + if overlap_rect((x1, y1, x2, y2), (x - ex, y - ey, x + ex, y + ey)): + # print "Overlap with graph", graph.GetName(), "at point", (x, y) + return True + return False + +def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): + gStyle.SetFillStyle(0) + gStyle.SetTextSize(0.09) + # If position is specified, use that + if all(x is not None for x in (x1, x2, y1, y2)): + return canvas.BuildLegend(x1, y1, x2, y2, header, option) + + # Make sure all objects are correctly registered + canvas.Update() + + # Build a list of objects to check for overlaps + objects = [] + for x in canvas.GetListOfPrimitives(): + if isinstance(x, ROOT.TH1) or isinstance(x, ROOT.TGraph): + objects.append(x) + elif isinstance(x, ROOT.THStack) or isinstance(x, ROOT.TMultiGraph): + objects.extend(x) + + for place in PLACES: + place_user = canvas.PadtoU(*place) + # Make sure there are no overlaps + if any(obj.Overlap(*place_user) for obj in objects): + continue + return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + # As a fallback, use the default values, taken from TCanvas::BuildLegend + return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) + +# Monkey patch ROOT objects to make it all work +ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) +ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) +ROOT.TH1.Overlap = overlap_h +ROOT.TGraph.Overlap = overlap_g +ROOT.TPad.PadtoU = transform_to_user +ROOT.TPad.PlaceLegend = place_legend diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py new file mode 100644 index 00000000000..ef67dfeaebb --- /dev/null +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -0,0 +1,268 @@ +#!/usr/bin/python + +# Script for accessing histograms of reconstructible and +# reconstructed tracks for different tracking categories +# created by PrChecker2 +# +# The efficency is calculated usig TGraphAsymmErrors +# and Bayesian error bars +# +# author: Dorothea vom Bruch (dorothea.vom.bruch@cern.ch) +# date: 10/2018 +# updated by Peilian Li +# + +import os,sys +import argparse +import ROOT +from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad +from ROOT import gROOT, gStyle, TStyle, TPaveText +from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors +#from BaseHandler import BaseHandler +#from collectRunResults import urlopen +import logging +import subprocess +#from collectRunResults import send_notification_mattermost + +def getEfficiencyHistoNames() : + return ["eta", "p", "pt", "phi", "nPV"] + +def getTrackers() : + return ["Velo", "Upstream", "Forward"] + +def getOriginFolders() : + basedict = { + "Velo" : {}, + "Upstream" : {}, + "Forward" : {} + } + + basedict["Velo"]["folder"] = "VeloTrackChecker/" + basedict["Upstream"]["folder"] = "UpstreamTrackChecker/" + basedict["Forward"]["folder"] = "ForwardTrackChecker/" + + return basedict + +def getGhostHistoNames() : + return ["eta", "nPV", "pt", "p"] + +def getMode() : + return ["Bd2Kstee", "Bs2PhiPhi", "Dp2KSPip", "Dst2D0pi", "Z2mumu", "Bd2Dstmumu"] + +def argument_parser(): + parser = argparse.ArgumentParser(description="location of the tuple file") + parser.add_argument( + '--directory', + type=str, + default=os.getcwd(), + help='location of input tuple files') + parser.add_argument( + '--mode', + type=str, + default='Bs2PhiPhi', + help='decay mode') + parser.add_argument( + '--method', + type=str, + default='baseline', + help='HLT1 reconstruction method') + parser.add_argument( + '--plotstyle', default='', help='location of LHCb utils plot style file') + return parser + + +def PrCheckerEfficiency(directory, mode, method, plotstyle): + sys.path.append(os.path.abspath(plotstyle)) + from utils.LHCbStyle import setLHCbStyle + from utils.ConfigHistos import (efficiencyHistoDict, + ghostHistoDict, + categoriesDict, + getCuts) + from utils.Legend import place_legend + setLHCbStyle() + + f = TFile(directory+"/MCMatching_"+method+"_"+mode+".root", "read") + outputfile=TFile(directory+"/efficiency_plots_"+method+"_"+mode+".root", "recreate") + + latex=TLatex() + latex.SetNDC() + latex.SetTextSize(0.045) + + efficiencyHistoDict = efficiencyHistoDict() + efficiencyHistos = getEfficiencyHistoNames() + ghostHistos = getGhostHistoNames() + ghostHistoDict = ghostHistoDict() + categories = categoriesDict() + cuts = getCuts() + trackers = getTrackers() + folders = getOriginFolders() + + for tracker in trackers : + outputfile.cd() + trackerDir = outputfile.mkdir(tracker) + trackerDir.cd() + + for cut in cuts[tracker]: + cutDir = trackerDir.mkdir(cut) + cutDir.cd() + folder = folders[tracker]["folder"] + print (folder) + histoBaseName = "Track/" + folder + tracker + "/" + cut + "_" + + # calculate efficiency + for histo in efficiencyHistos: + title = "efficiency vs. " + histo + ", " + categories[tracker][cut]["title"] + name = "efficiency vs. " + histo + canvas = TCanvas(name, title) + # get efficiency for not electrons category + histoName = histoBaseName + "" + efficiencyHistoDict[histo]["variable"] + print ("not electrons: " + histoName) + numeratorName = histoName + "_reconstructed" + numerator = f.Get(numeratorName) + denominatorName = histoName + "_reconstructible" + denominator = f.Get(denominatorName) + if numerator.GetEntries() == 0 or denominator.GetEntries() == 0 : + continue + + numerator.Sumw2() + denominator.Sumw2() + + g_efficiency_notElectrons = TGraphAsymmErrors() + g_efficiency_notElectrons.SetName("g_efficiency_notElectrons") + g_efficiency_notElectrons.Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + g_efficiency_notElectrons.SetTitle("Eff. not electrons") + if (histoName.find('strange') != -1) : + g_efficiency_notElectrons.SetTitle("Eff. from stranges") + g_efficiency_notElectrons.Draw() + + h_numerator_notElectrons = denominator.Clone() + h_numerator_notElectrons.SetName("h_numerator_notElectrons") + h_numerator_notElectrons.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. not electrons") + if (histoName.find('strange') != -1) : + h_numerator_notElectrons.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. stranges") + + # get efficiency for electrons category + if categories[tracker][cut]["plotElectrons"] : + histoNameElec = "Track/" + folder + tracker + "/" + categories[tracker][cut]["Electrons"] + histoName = histoNameElec + "_" + efficiencyHistoDict[histo]["variable"] + print ("electrons: " + histoName) + numeratorName = histoName + "_reconstructed" + numerator = f.Get(numeratorName) + denominatorName = histoName + "_reconstructible" + denominator = f.Get(denominatorName) + if numerator.GetEntries() == 0 or denominator.GetEntries() == 0 : + continue + + numerator.Sumw2() + denominator.Sumw2() + + g_efficiency_electrons = TGraphAsymmErrors() + g_efficiency_electrons.SetName("g_efficiency_electrons") + g_efficiency_electrons.Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + g_efficiency_electrons.SetTitle("Eff. electrons") + g_efficiency_electrons.SetMarkerColor(kAzure-3) + g_efficiency_electrons.SetMarkerStyle(24) + g_efficiency_electrons.SetLineColor(kAzure-3) + + h_numerator_electrons = denominator.Clone() + h_numerator_electrons.SetName("h_numerator_electrons") + h_numerator_electrons.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. electrons") + + #draw them both + mg = TMultiGraph() + mg.Add(g_efficiency_notElectrons) + if categories[tracker][cut]["plotElectrons"] : + mg.Add(g_efficiency_electrons) + + mg.Draw("ap") + xtitle = efficiencyHistoDict[histo]["xTitle"] + mg.GetXaxis().SetTitle(xtitle) + mg.GetYaxis().SetTitle("Efficiency") + mg.GetYaxis().SetRangeUser(0,1.05) + + mg.SetName("efficiency vs. " + histo) + mg.SetTitle(tracker+" " +cut) + + rightmax = 1.05*h_numerator_notElectrons.GetMaximum() + scale = gPad.GetUymax()/rightmax + h_numerator_notElectrons.Scale(scale) + h_numerator_notElectrons.SetFillStyle(3004) + h_numerator_notElectrons.SetFillColor(kBlue) + h_numerator_notElectrons.SetLineColor(kBlue-10) + h_numerator_notElectrons.SetLineWidth(2) + h_numerator_notElectrons.Draw("hist same") + if categories[tracker][cut]["plotElectrons"] : + scale = gPad.GetUymax()/(h_numerator_electrons.GetMaximum()*1.1) + h_numerator_electrons.Scale(scale) + h_numerator_electrons.SetFillStyle(3003) + h_numerator_electrons.SetFillColor(kGreen) + h_numerator_electrons.SetLineColor(kGreen-10) + h_numerator_electrons.SetLineWidth(2) + h_numerator_electrons.Draw("hist same") + axis = TGaxis(gPad.GetUxmax(), 0, gPad.GetUxmax(), 1.05, 0,rightmax,510,"+L") + if histo == "p": + axis = TGaxis(50000, 0, 50000, 1.05, 0,rightmax,510,"+L") + mg.GetXaxis().SetRangeUser(0,50000) + if histo == "pt": + axis = TGaxis(5000, 0, 5000, 1.05, 0,rightmax,510,"+L") + mg.GetXaxis().SetRangeUser(0,5000) + axis.SetTitle("Number of events") + axis.SetTextFont(132) + axis.SetLabelFont(132) + axis.SetTitleFont(132) + axis.SetLabelSize(0.06) + axis.SetTitleSize(0.07) + axis.SetNdivisions(505) + gPad.SetRightMargin(0.75) + + canvas.PlaceLegend() + + pt = TPaveText(0.32,0.65,0.68,0.8,"BRNDC"); + pt.SetTextSize(0.05); + pt.SetBorderSize(1); + pt.SetFillColor(10); + pt.SetLineWidth(0); + cutName=categories[tracker][cut]["title"] + text=pt.AddText(cutName); + pt.Draw() + canvas.SetRightMargin(0.05) + canvas.Write() + + # calculate ghost rate + if tracker == "Forward": + histoBaseName = "Track/" + folder + tracker + "/" + for histo in ghostHistos : + trackerDir.cd() + title = "ghost rate vs " + histo + canvas = TCanvas(title, title) + gPad.SetTicks() + numeratorName = histoBaseName + ghostHistoDict[histo]["variable"] + "_Ghosts" + denominatorName = histoBaseName + ghostHistoDict[histo]["variable"] + "_Total" + print ("ghost histo: " + histoBaseName + " " + numeratorName+" "+denominatorName) + numerator = f.Get(numeratorName) + denominator = f.Get(denominatorName) + numerator.Sumw2() + denominator.Sumw2() + + g_efficiency = TGraphAsymmErrors() + g_efficiency.SetName(title + " ref") + g_efficiency.Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + + xtitle = ghostHistoDict[histo]["xTitle"] + g_efficiency.GetXaxis().SetTitle(xtitle) + g_efficiency.GetYaxis().SetTitle("ghost rate") + g_efficiency.Write() + g_efficiency.Draw("ap") + + canvas.Write() + + outputfile.Write() + outputfile.Close() + f.Close() + + +if __name__ == '__main__': + parser = argument_parser() + args = parser.parse_args() + PrCheckerEfficiency(**vars(args)) diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index cc3c1687c24..02b6564642c 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -8,6 +8,7 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### +#!/usr/bin/env python ''' Script for accessing tuples of IP resolution checker to obtain the values of mean and width of IP resolution as well as a check of the IP error distribution and efficiencies in different chi2 cut. @@ -44,14 +45,14 @@ def argument_parser(): default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', default='', help='location of LHCb plot style file') + '--plotstyle', default='', help='location of LHCb utils plot style file') return parser def PrCheckerIPresolution(directory, name, plotstyle): sys.path.append(os.path.abspath(plotstyle)) - from LHCbStyle import setLHCbStyle + from utils.LHCbStyle import setLHCbStyle setLHCbStyle() f = TFile.Open(os.path.join(directory, name + '.root'), 'read') diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 64dbf24a1f8..b506a025a37 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -8,6 +8,7 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### +#!/usr/bin/env python ''' Script for the plots of tracking resolution v.s. p and eta The resolution is fitted by a Gaussian function @@ -43,14 +44,14 @@ def argument_parser(): default='Hlt1ForwardTrackingResolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', default='', help='location of LHCb plot style file') + '--plotstyle', default='', help='location of LHCb utils plot style file') return parser def PrCheckerTrackResolution(directory, name, plotstyle): sys.path.append(os.path.abspath(plotstyle)) - from LHCbStyle import setLHCbStyle + from utils.LHCbStyle import setLHCbStyle from Legend import place_legend setLHCbStyle() diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py new file mode 100644 index 00000000000..c51f030978a --- /dev/null +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -0,0 +1,139 @@ +from collections import defaultdict + +def efficiencyHistoDict() : + basedict = { + "eta" : {}, + "p" : {}, + "pt" : {}, + "phi" : {}, + "nPV" : {}, + "docaz" : {} + } + + basedict["eta"]["xTitle"] = "#eta" + basedict["eta"]["variable"] = "Eta" + + basedict["p"]["xTitle"] = "p [MeV]" + basedict["p"]["variable"] = "P" + + basedict["pt"]["xTitle"] = "p_{T} [MeV]" + basedict["pt"]["variable"] = "Pt" + + basedict["phi"]["xTitle"] = "#phi [rad]" + basedict["phi"]["variable"] = "Phi" + + basedict["nPV"]["xTitle"] = "# of PVs" + basedict["nPV"]["variable"] = "nPV" + + basedict["docaz"]["xTitle"] = "docaz (mm)" + basedict["docaz"]["variable"] = "docaz" + + return basedict + +def ghostHistoDict() : + basedict = { + "eta" : {}, + "nPV" : {}, + "pt" : {}, + "p" : {} + } + + basedict["eta"]["xTitle"] = "#eta" + basedict["eta"]["variable"] = "Eta" + + basedict["nPV"]["xTitle"] = "# of PVs" + basedict["nPV"]["variable"] = "nPV" + + basedict["pt"]["xTitle"] = "p_{T} [MeV]" + basedict["pt"]["variable"] = "Pt" + + basedict["p"]["xTitle"] = "p [MeV]" + basedict["p"]["variable"] = "P" + + return basedict + +def getCuts() : + basedict = { + "Velo" : {}, + "Upstream" : {}, + "Forward" : {} + } + + basedict["Velo"] = ["01_velo","02_long", "03_long_P>5GeV", "04_long_strange", "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV"] + basedict["Upstream"] = ["01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV"] + basedict["Forward"] = ["01_long", "02_long_P>5GeV", "03_long_strange", "04_long_strange_P>5GeV", "05_long_fromB_P", "06_long_fromB_P>5GeV", "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV"] + + return basedict + +def categoriesDict() : + basedict = defaultdict(lambda : defaultdict(dict)) + + basedict["Velo"]["01_velo"]["title"] = "Velo, 2 < eta < 5" + basedict["Velo"]["02_long"]["title"] = "Long, 2 < eta < 5" + basedict["Velo"]["03_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["Velo"]["04_long_strange"]["title"] = "Long, from Strange, 2 < eta < 5" + basedict["Velo"]["05_long_strange_P>5GeV"]["title"] = "Long, from Strange, p>5GeV, 2 < eta < 5" + basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 25GeV"]["title"] = "Long from B, p>5GeV, 23GeV_Pt>0.5GeV"]["title"] = "Long from B, p>3GeV, pt>0.5GeV, electron" + basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "UT Long, from B, p>3GeV, pt>0.5GeV" + basedict["Velo"]["01_velo"]["plotElectrons"] = False + basedict["Velo"]["02_long"]["plotElectrons"] = True + basedict["Velo"]["03_long_P>5GeV"]["plotElectrons"] = False + basedict["Velo"]["04_long_strange"]["plotElectrons"] = False + basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False + basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True + basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + + basedict["Velo"]["02_long"]["Electrons"] = "08_long_electrons" + basedict["Velo"]["06_long_fromB"]["Electrons"] = "09_long_fromB_electrons" + basedict["Velo"]["07_long_fromB_P>5GeV"]["Electrons"] = "10_long_fromB_electrons_P>5GeV" + + basedict["Upstream"]["01_velo"]["title"] = "Velo, 2 < eta < 5" + basedict["Upstream"]["02_velo+UT"]["title"] = "VeloUT, 2 < eta < 5" + basedict["Upstream"]["03_velo+UT_P>5GeV"]["title"] = "VeloUT, p>5GeV, 2 < eta < 5" + basedict["Upstream"]["07_long"]["title"] = "Long, 2 < eta < 5" + basedict["Upstream"]["08_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 < eta < 5" + basedict["Upstream"]["10_long_fromB_P>5GeV"]["title"] = "Long from B, p>5GeV, 2 < eta < 5" + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "Long, from B, p>3GeV, pt>0.5GeV" + basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "Long, from B, p>3GeV, pt>0.5GeV" + + basedict["Upstream"]["01_velo"]["plotElectrons"] = False + basedict["Upstream"]["02_velo+UT"]["plotElectrons"] = False + basedict["Upstream"]["03_velo+UT_P>5GeV"]["plotElectrons"] = False + basedict["Upstream"]["07_long"]["plotElectrons"] = True + basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False + basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True + basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Upstream"]["07_long"]["Electrons"] = "11_long_electrons" + basedict["Upstream"]["09_long_fromB"]["Electrons"] = "12_long_fromB_electrons" + basedict["Upstream"]["10_long_fromB_P>5GeV"]["Electrons"] = "13_long_fromB_electrons_P>5GeV" + + basedict["Forward"]["01_long"]["title"] = "Long, 2 < eta < 5" + basedict["Forward"]["02_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["Forward"]["03_long_strange"]["title"] = "Long, from strange, 2 < eta < 5" + basedict["Forward"]["04_long_strange_P>5GeV"]["title"] = "Long, from strange, p>5GeV, 2 < eta < 5" + basedict["Forward"]["05_long_fromB"]["title"] = "Long from B, 2 < eta < 5" + basedict["Forward"]["06_long_fromB_P>5GeV"]["title"] = "Long from B, p>5GeV 2 < eta < 5" + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" + basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "UT Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" + + basedict["Forward"]["01_long"]["plotElectrons"] = True + basedict["Forward"]["02_long_P>5GeV"]["plotElectrons"] = False + basedict["Forward"]["03_long_strange"]["plotElectrons"] = False + basedict["Forward"]["04_long_strange_P>5GeV"]["plotElectrons"] = False + basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True + basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] =False + basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + + basedict["Forward"]["01_long"]["Electrons"] = "07_long_electrons" + basedict["Forward"]["05_long_fromB"]["Electrons"] = "08_long_fromB_electrons" + basedict["Forward"]["06_long_fromB_P>5GeV"]["Electrons"] = "09_long_fromB_electrons_P>5GeV" + + return basedict diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index 771c38e290d..ccbce6dafa3 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -1,34 +1,23 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### - import ROOT import itertools from ROOT import gStyle # Some convenience function to easily iterate over the parts of the collections + # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) + # Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks -start, stop = 0.18, 0.89 -x_width, y_width = 0.3, 0.2 -PLACES = [ - (start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) -] # left +start, stop = 0.28, 0.52 +x_width, y_width = 0.4, 0.2 +PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left def transform_to_user(canvas, x1, y1, x2, y2): @@ -65,8 +54,7 @@ def overlap_h(hist, x1, y1, x2, y2): if y1 <= val <= y2: return True # Errors - if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow( - i) < y2: + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: # print "Overlap with histo", hist.GetName(), "at bin", i return True return False @@ -80,7 +68,6 @@ def overlap_rect(rect1, rect2): return False return True - def overlap_g(graph, x1, y1, x2, y2): x_values = list(graph.GetX()) y_values = list(graph.GetY()) @@ -94,14 +81,7 @@ def overlap_g(graph, x1, y1, x2, y2): return True return False - -def place_legend(canvas, - x1=None, - y1=None, - x2=None, - y2=None, - header="", - option="LPF"): +def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): gStyle.SetFillStyle(0) gStyle.SetTextSize(0.06) # If position is specified, use that @@ -124,11 +104,9 @@ def place_legend(canvas, # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], - header, option) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) # As a fallback, use the default values, taken from TCanvas::BuildLegend - return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) - + return canvas.BuildLegend(0.4, 0.37, 0.88, 0.68, header, option) # Monkey patch ROOT objects to make it all work ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) -- GitLab From af4d9e5067885f82bbdcbe172f3d27d603749c0f Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Mon, 27 Jan 2020 11:42:35 +0000 Subject: [PATCH 046/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6935922 --- .../options/hlt1_reco_IPresolution.py | 2 +- Hlt/RecoConf/python/RecoConf/mc_checking.py | 15 +- Hlt/RecoConf/scripts/Legend.py | 33 ++- .../scripts/PrCheckerEfficiency_HLT1.py | 212 +++++++++-------- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 4 +- .../scripts/PrCheckerTrackResolution.py | 4 +- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 219 ++++++++++-------- Hlt/RecoConf/scripts/utils/Legend.py | 24 +- 8 files changed, 294 insertions(+), 219 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 587b0b2c880..2d3221e8b59 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -10,7 +10,7 @@ ############################################################################### from Moore import options, run_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks from RecoConf.mc_checking import monitor_IPresolution from Configurables import ApplicationMgr from Configurables import NTupleSvc diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 04678f1eeb1..7cd1ebfc2e0 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -20,17 +20,10 @@ from PyConf.application import default_raw_event from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( - VPFullCluster2MCParticleLinker, - PrLHCbID2MCParticle, - PrLHCbID2MCParticleVPUTFTMU, - PrTrackAssociator, - PrTrackChecker, - PrUTHitChecker, - TrackListRefiner, - TrackResChecker, - TrackIPResolutionCheckerNT, - DataPacking__Unpack_LHCb__MCVPHitPacker_ -) + VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, + PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, + PrUTHitChecker, TrackListRefiner, TrackResChecker, + TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool diff --git a/Hlt/RecoConf/scripts/Legend.py b/Hlt/RecoConf/scripts/Legend.py index 33e479a6fcc..c40a9d8d8fa 100644 --- a/Hlt/RecoConf/scripts/Legend.py +++ b/Hlt/RecoConf/scripts/Legend.py @@ -4,20 +4,20 @@ from ROOT import gStyle # Some convenience function to easily iterate over the parts of the collections - # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) - # Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks start, stop = 0.18, 0.89 x_width, y_width = 0.3, 0.2 -PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left +PLACES = [ + (start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) +] # left def transform_to_user(canvas, x1, y1, x2, y2): @@ -54,7 +54,8 @@ def overlap_h(hist, x1, y1, x2, y2): if y1 <= val <= y2: return True # Errors - if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow( + i) < y2: # print "Overlap with histo", hist.GetName(), "at bin", i return True return False @@ -68,6 +69,7 @@ def overlap_rect(rect1, rect2): return False return True + def overlap_g(graph, x1, y1, x2, y2): x_values = list(graph.GetX()) y_values = list(graph.GetY()) @@ -81,7 +83,14 @@ def overlap_g(graph, x1, y1, x2, y2): return True return False -def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option="LPF"): + +def place_legend(canvas, + x1=None, + y1=None, + x2=None, + y2=None, + header="", + option="LPF"): gStyle.SetFillStyle(0) gStyle.SetTextSize(0.09) # If position is specified, use that @@ -104,10 +113,12 @@ def place_legend(canvas, x1=None, y1=None, x2=None, y2=None, header="", option=" # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], + header, option) # As a fallback, use the default values, taken from TCanvas::BuildLegend return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) + # Monkey patch ROOT objects to make it all work ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index ef67dfeaebb..3af620d7ae8 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -12,43 +12,48 @@ # updated by Peilian Li # -import os,sys +import os, sys import argparse import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad from ROOT import gROOT, gStyle, TStyle, TPaveText from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors #from BaseHandler import BaseHandler #from collectRunResults import urlopen import logging import subprocess + #from collectRunResults import send_notification_mattermost -def getEfficiencyHistoNames() : + +def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] -def getTrackers() : + +def getTrackers(): return ["Velo", "Upstream", "Forward"] -def getOriginFolders() : - basedict = { - "Velo" : {}, - "Upstream" : {}, - "Forward" : {} - } - basedict["Velo"]["folder"] = "VeloTrackChecker/" - basedict["Upstream"]["folder"] = "UpstreamTrackChecker/" - basedict["Forward"]["folder"] = "ForwardTrackChecker/" +def getOriginFolders(): + basedict = {"Velo": {}, "Upstream": {}, "Forward": {}} + + basedict["Velo"]["folder"] = "VeloTrackChecker/" + basedict["Upstream"]["folder"] = "UpstreamTrackChecker/" + basedict["Forward"]["folder"] = "ForwardTrackChecker/" + + return basedict - return basedict -def getGhostHistoNames() : +def getGhostHistoNames(): return ["eta", "nPV", "pt", "p"] -def getMode() : - return ["Bd2Kstee", "Bs2PhiPhi", "Dp2KSPip", "Dst2D0pi", "Z2mumu", "Bd2Dstmumu"] + +def getMode(): + return [ + "Bd2Kstee", "Bs2PhiPhi", "Dp2KSPip", "Dst2D0pi", "Z2mumu", "Bd2Dstmumu" + ] + def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") @@ -58,47 +63,47 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--mode', - type=str, - default='Bs2PhiPhi', - help='decay mode') + '--mode', type=str, default='Bs2PhiPhi', help='decay mode') parser.add_argument( '--method', type=str, default='baseline', help='HLT1 reconstruction method') parser.add_argument( - '--plotstyle', default='', help='location of LHCb utils plot style file') + '--plotstyle', + default='', + help='location of LHCb utils plot style file') return parser def PrCheckerEfficiency(directory, mode, method, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle - from utils.ConfigHistos import (efficiencyHistoDict, - ghostHistoDict, - categoriesDict, - getCuts) + from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, + categoriesDict, getCuts) from utils.Legend import place_legend setLHCbStyle() - f = TFile(directory+"/MCMatching_"+method+"_"+mode+".root", "read") - outputfile=TFile(directory+"/efficiency_plots_"+method+"_"+mode+".root", "recreate") + f = TFile(directory + "/MCMatching_" + method + "_" + mode + ".root", + "read") + outputfile = TFile( + directory + "/efficiency_plots_" + method + "_" + mode + ".root", + "recreate") - latex=TLatex() + latex = TLatex() latex.SetNDC() latex.SetTextSize(0.045) efficiencyHistoDict = efficiencyHistoDict() - efficiencyHistos = getEfficiencyHistoNames() - ghostHistos = getGhostHistoNames() - ghostHistoDict = ghostHistoDict() - categories = categoriesDict() - cuts = getCuts() - trackers = getTrackers() - folders = getOriginFolders() - - for tracker in trackers : + efficiencyHistos = getEfficiencyHistoNames() + ghostHistos = getGhostHistoNames() + ghostHistoDict = ghostHistoDict() + categories = categoriesDict() + cuts = getCuts() + trackers = getTrackers() + folders = getOriginFolders() + + for tracker in trackers: outputfile.cd() trackerDir = outputfile.mkdir(tracker) trackerDir.cd() @@ -107,22 +112,25 @@ def PrCheckerEfficiency(directory, mode, method, plotstyle): cutDir = trackerDir.mkdir(cut) cutDir.cd() folder = folders[tracker]["folder"] - print (folder) + print(folder) histoBaseName = "Track/" + folder + tracker + "/" + cut + "_" # calculate efficiency for histo in efficiencyHistos: - title = "efficiency vs. " + histo + ", " + categories[tracker][cut]["title"] + title = "efficiency vs. " + histo + ", " + categories[tracker][ + cut]["title"] name = "efficiency vs. " + histo canvas = TCanvas(name, title) # get efficiency for not electrons category - histoName = histoBaseName + "" + efficiencyHistoDict[histo]["variable"] - print ("not electrons: " + histoName) - numeratorName = histoName + "_reconstructed" - numerator = f.Get(numeratorName) + histoName = histoBaseName + "" + efficiencyHistoDict[histo][ + "variable"] + print("not electrons: " + histoName) + numeratorName = histoName + "_reconstructed" + numerator = f.Get(numeratorName) denominatorName = histoName + "_reconstructible" - denominator = f.Get(denominatorName) - if numerator.GetEntries() == 0 or denominator.GetEntries() == 0 : + denominator = f.Get(denominatorName) + if numerator.GetEntries() == 0 or denominator.GetEntries( + ) == 0: continue numerator.Sumw2() @@ -130,28 +138,36 @@ def PrCheckerEfficiency(directory, mode, method, plotstyle): g_efficiency_notElectrons = TGraphAsymmErrors() g_efficiency_notElectrons.SetName("g_efficiency_notElectrons") - g_efficiency_notElectrons.Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + g_efficiency_notElectrons.Divide(numerator, denominator, + "cl=0.683 b(1,1) mode") g_efficiency_notElectrons.SetTitle("Eff. not electrons") - if (histoName.find('strange') != -1) : - g_efficiency_notElectrons.SetTitle("Eff. from stranges") + if (histoName.find('strange') != -1): + g_efficiency_notElectrons.SetTitle("Eff. from stranges") g_efficiency_notElectrons.Draw() h_numerator_notElectrons = denominator.Clone() h_numerator_notElectrons.SetName("h_numerator_notElectrons") - h_numerator_notElectrons.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. not electrons") - if (histoName.find('strange') != -1) : - h_numerator_notElectrons.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. stranges") + h_numerator_notElectrons.SetTitle( + efficiencyHistoDict[histo]["variable"] + + " histo. not electrons") + if (histoName.find('strange') != -1): + h_numerator_notElectrons.SetTitle( + efficiencyHistoDict[histo]["variable"] + + " histo. stranges") # get efficiency for electrons category - if categories[tracker][cut]["plotElectrons"] : - histoNameElec = "Track/" + folder + tracker + "/" + categories[tracker][cut]["Electrons"] - histoName = histoNameElec + "_" + efficiencyHistoDict[histo]["variable"] - print ("electrons: " + histoName) - numeratorName = histoName + "_reconstructed" - numerator = f.Get(numeratorName) + if categories[tracker][cut]["plotElectrons"]: + histoNameElec = "Track/" + folder + tracker + "/" + categories[ + tracker][cut]["Electrons"] + histoName = histoNameElec + "_" + efficiencyHistoDict[ + histo]["variable"] + print("electrons: " + histoName) + numeratorName = histoName + "_reconstructed" + numerator = f.Get(numeratorName) denominatorName = histoName + "_reconstructible" - denominator = f.Get(denominatorName) - if numerator.GetEntries() == 0 or denominator.GetEntries() == 0 : + denominator = f.Get(denominatorName) + if numerator.GetEntries() == 0 or denominator.GetEntries( + ) == 0: continue numerator.Sumw2() @@ -159,54 +175,60 @@ def PrCheckerEfficiency(directory, mode, method, plotstyle): g_efficiency_electrons = TGraphAsymmErrors() g_efficiency_electrons.SetName("g_efficiency_electrons") - g_efficiency_electrons.Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + g_efficiency_electrons.Divide(numerator, denominator, + "cl=0.683 b(1,1) mode") g_efficiency_electrons.SetTitle("Eff. electrons") - g_efficiency_electrons.SetMarkerColor(kAzure-3) + g_efficiency_electrons.SetMarkerColor(kAzure - 3) g_efficiency_electrons.SetMarkerStyle(24) - g_efficiency_electrons.SetLineColor(kAzure-3) + g_efficiency_electrons.SetLineColor(kAzure - 3) h_numerator_electrons = denominator.Clone() h_numerator_electrons.SetName("h_numerator_electrons") - h_numerator_electrons.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. electrons") + h_numerator_electrons.SetTitle( + efficiencyHistoDict[histo]["variable"] + + " histo. electrons") #draw them both mg = TMultiGraph() mg.Add(g_efficiency_notElectrons) - if categories[tracker][cut]["plotElectrons"] : + if categories[tracker][cut]["plotElectrons"]: mg.Add(g_efficiency_electrons) mg.Draw("ap") xtitle = efficiencyHistoDict[histo]["xTitle"] mg.GetXaxis().SetTitle(xtitle) mg.GetYaxis().SetTitle("Efficiency") - mg.GetYaxis().SetRangeUser(0,1.05) + mg.GetYaxis().SetRangeUser(0, 1.05) mg.SetName("efficiency vs. " + histo) - mg.SetTitle(tracker+" " +cut) + mg.SetTitle(tracker + " " + cut) - rightmax = 1.05*h_numerator_notElectrons.GetMaximum() - scale = gPad.GetUymax()/rightmax + rightmax = 1.05 * h_numerator_notElectrons.GetMaximum() + scale = gPad.GetUymax() / rightmax h_numerator_notElectrons.Scale(scale) h_numerator_notElectrons.SetFillStyle(3004) h_numerator_notElectrons.SetFillColor(kBlue) - h_numerator_notElectrons.SetLineColor(kBlue-10) + h_numerator_notElectrons.SetLineColor(kBlue - 10) h_numerator_notElectrons.SetLineWidth(2) h_numerator_notElectrons.Draw("hist same") - if categories[tracker][cut]["plotElectrons"] : - scale = gPad.GetUymax()/(h_numerator_electrons.GetMaximum()*1.1) + if categories[tracker][cut]["plotElectrons"]: + scale = gPad.GetUymax() / ( + h_numerator_electrons.GetMaximum() * 1.1) h_numerator_electrons.Scale(scale) h_numerator_electrons.SetFillStyle(3003) h_numerator_electrons.SetFillColor(kGreen) - h_numerator_electrons.SetLineColor(kGreen-10) + h_numerator_electrons.SetLineColor(kGreen - 10) h_numerator_electrons.SetLineWidth(2) h_numerator_electrons.Draw("hist same") - axis = TGaxis(gPad.GetUxmax(), 0, gPad.GetUxmax(), 1.05, 0,rightmax,510,"+L") + axis = TGaxis(gPad.GetUxmax(), 0, gPad.GetUxmax(), 1.05, 0, + rightmax, 510, "+L") if histo == "p": - axis = TGaxis(50000, 0, 50000, 1.05, 0,rightmax,510,"+L") - mg.GetXaxis().SetRangeUser(0,50000) + axis = TGaxis(50000, 0, 50000, 1.05, 0, rightmax, 510, + "+L") + mg.GetXaxis().SetRangeUser(0, 50000) if histo == "pt": - axis = TGaxis(5000, 0, 5000, 1.05, 0,rightmax,510,"+L") - mg.GetXaxis().SetRangeUser(0,5000) + axis = TGaxis(5000, 0, 5000, 1.05, 0, rightmax, 510, "+L") + mg.GetXaxis().SetRangeUser(0, 5000) axis.SetTitle("Number of events") axis.SetTextFont(132) axis.SetLabelFont(132) @@ -215,16 +237,16 @@ def PrCheckerEfficiency(directory, mode, method, plotstyle): axis.SetTitleSize(0.07) axis.SetNdivisions(505) gPad.SetRightMargin(0.75) - + canvas.PlaceLegend() - pt = TPaveText(0.32,0.65,0.68,0.8,"BRNDC"); - pt.SetTextSize(0.05); - pt.SetBorderSize(1); - pt.SetFillColor(10); - pt.SetLineWidth(0); - cutName=categories[tracker][cut]["title"] - text=pt.AddText(cutName); + pt = TPaveText(0.32, 0.65, 0.68, 0.8, "BRNDC") + pt.SetTextSize(0.05) + pt.SetBorderSize(1) + pt.SetFillColor(10) + pt.SetLineWidth(0) + cutName = categories[tracker][cut]["title"] + text = pt.AddText(cutName) pt.Draw() canvas.SetRightMargin(0.05) canvas.Write() @@ -232,22 +254,26 @@ def PrCheckerEfficiency(directory, mode, method, plotstyle): # calculate ghost rate if tracker == "Forward": histoBaseName = "Track/" + folder + tracker + "/" - for histo in ghostHistos : + for histo in ghostHistos: trackerDir.cd() title = "ghost rate vs " + histo canvas = TCanvas(title, title) gPad.SetTicks() - numeratorName = histoBaseName + ghostHistoDict[histo]["variable"] + "_Ghosts" - denominatorName = histoBaseName + ghostHistoDict[histo]["variable"] + "_Total" - print ("ghost histo: " + histoBaseName + " " + numeratorName+" "+denominatorName) - numerator = f.Get(numeratorName) - denominator = f.Get(denominatorName) + numeratorName = histoBaseName + ghostHistoDict[histo][ + "variable"] + "_Ghosts" + denominatorName = histoBaseName + ghostHistoDict[histo][ + "variable"] + "_Total" + print("ghost histo: " + histoBaseName + " " + numeratorName + + " " + denominatorName) + numerator = f.Get(numeratorName) + denominator = f.Get(denominatorName) numerator.Sumw2() denominator.Sumw2() g_efficiency = TGraphAsymmErrors() g_efficiency.SetName(title + " ref") - g_efficiency.Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + g_efficiency.Divide(numerator, denominator, + "cl=0.683 b(1,1) mode") xtitle = ghostHistoDict[histo]["xTitle"] g_efficiency.GetXaxis().SetTitle(xtitle) diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index aed4cb38093..b1a841dd491 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -44,7 +44,9 @@ def argument_parser(): default='Hlt1ForwardTracking_IPresolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', default='', help='location of LHCb utils plot style file') + '--plotstyle', + default='', + help='location of LHCb utils plot style file') return parser diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index cbe370be2aa..d943412a9b7 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -43,7 +43,9 @@ def argument_parser(): default='Hlt1ForwardTrackingResolution', help='name of input tuple files') parser.add_argument( - '--plotstyle', default='', help='location of LHCb utils plot style file') + '--plotstyle', + default='', + help='location of LHCb utils plot style file') return parser diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index c51f030978a..496313b6080 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -1,15 +1,16 @@ from collections import defaultdict -def efficiencyHistoDict() : + +def efficiencyHistoDict(): basedict = { - "eta" : {}, - "p" : {}, - "pt" : {}, - "phi" : {}, - "nPV" : {}, - "docaz" : {} - } - + "eta": {}, + "p": {}, + "pt": {}, + "phi": {}, + "nPV": {}, + "docaz": {} + } + basedict["eta"]["xTitle"] = "#eta" basedict["eta"]["variable"] = "Eta" @@ -24,26 +25,22 @@ def efficiencyHistoDict() : basedict["nPV"]["xTitle"] = "# of PVs" basedict["nPV"]["variable"] = "nPV" - + basedict["docaz"]["xTitle"] = "docaz (mm)" basedict["docaz"]["variable"] = "docaz" - + return basedict -def ghostHistoDict() : - basedict = { - "eta" : {}, - "nPV" : {}, - "pt" : {}, - "p" : {} - } + +def ghostHistoDict(): + basedict = {"eta": {}, "nPV": {}, "pt": {}, "p": {}} basedict["eta"]["xTitle"] = "#eta" basedict["eta"]["variable"] = "Eta" basedict["nPV"]["xTitle"] = "# of PVs" basedict["nPV"]["variable"] = "nPV" - + basedict["pt"]["xTitle"] = "p_{T} [MeV]" basedict["pt"]["variable"] = "Pt" @@ -52,88 +49,124 @@ def ghostHistoDict() : return basedict -def getCuts() : - basedict = { - "Velo" : {}, - "Upstream" : {}, - "Forward" : {} - } - - basedict["Velo"] = ["01_velo","02_long", "03_long_P>5GeV", "04_long_strange", "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV"] - basedict["Upstream"] = ["01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV"] - basedict["Forward"] = ["01_long", "02_long_P>5GeV", "03_long_strange", "04_long_strange_P>5GeV", "05_long_fromB_P", "06_long_fromB_P>5GeV", "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV"] - - return basedict - -def categoriesDict() : - basedict = defaultdict(lambda : defaultdict(dict)) - - basedict["Velo"]["01_velo"]["title"] = "Velo, 2 < eta < 5" - basedict["Velo"]["02_long"]["title"] = "Long, 2 < eta < 5" - basedict["Velo"]["03_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" - basedict["Velo"]["04_long_strange"]["title"] = "Long, from Strange, 2 < eta < 5" - basedict["Velo"]["05_long_strange_P>5GeV"]["title"] = "Long, from Strange, p>5GeV, 2 < eta < 5" - basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 25GeV"]["title"] = "Long from B, p>5GeV, 23GeV_Pt>0.5GeV"]["title"] = "Long from B, p>3GeV, pt>0.5GeV, electron" - basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "UT Long, from B, p>3GeV, pt>0.5GeV" - basedict["Velo"]["01_velo"]["plotElectrons"] = False - basedict["Velo"]["02_long"]["plotElectrons"] = True - basedict["Velo"]["03_long_P>5GeV"]["plotElectrons"] = False - basedict["Velo"]["04_long_strange"]["plotElectrons"] = False - basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False - basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True - basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True + +def getCuts(): + basedict = {"Velo": {}, "Upstream": {}, "Forward": {}} + + basedict["Velo"] = [ + "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", + "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", + "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" + ] + basedict["Upstream"] = [ + "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", + "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", + "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" + ] + basedict["Forward"] = [ + "01_long", "02_long_P>5GeV", "03_long_strange", + "04_long_strange_P>5GeV", "05_long_fromB_P", "06_long_fromB_P>5GeV", + "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" + ] + + return basedict + + +def categoriesDict(): + basedict = defaultdict(lambda: defaultdict(dict)) + + basedict["Velo"]["01_velo"]["title"] = "Velo, 2 < eta < 5" + basedict["Velo"]["02_long"]["title"] = "Long, 2 < eta < 5" + basedict["Velo"]["03_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["Velo"]["04_long_strange"][ + "title"] = "Long, from Strange, 2 < eta < 5" + basedict["Velo"]["05_long_strange_P>5GeV"][ + "title"] = "Long, from Strange, p>5GeV, 2 < eta < 5" + basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 25GeV"][ + "title"] = "Long from B, p>5GeV, 23GeV_Pt>0.5GeV"][ + "title"] = "Long from B, p>3GeV, pt>0.5GeV, electron" + basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ + "title"] = "UT Long, from B, p>3GeV, pt>0.5GeV" + basedict["Velo"]["01_velo"]["plotElectrons"] = False + basedict["Velo"]["02_long"]["plotElectrons"] = True + basedict["Velo"]["03_long_P>5GeV"]["plotElectrons"] = False + basedict["Velo"]["04_long_strange"]["plotElectrons"] = False + basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False + basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True + basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False - basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False - basedict["Velo"]["02_long"]["Electrons"] = "08_long_electrons" - basedict["Velo"]["06_long_fromB"]["Electrons"] = "09_long_fromB_electrons" - basedict["Velo"]["07_long_fromB_P>5GeV"]["Electrons"] = "10_long_fromB_electrons_P>5GeV" + basedict["Velo"]["02_long"]["Electrons"] = "08_long_electrons" + basedict["Velo"]["06_long_fromB"]["Electrons"] = "09_long_fromB_electrons" + basedict["Velo"]["07_long_fromB_P>5GeV"][ + "Electrons"] = "10_long_fromB_electrons_P>5GeV" basedict["Upstream"]["01_velo"]["title"] = "Velo, 2 < eta < 5" basedict["Upstream"]["02_velo+UT"]["title"] = "VeloUT, 2 < eta < 5" - basedict["Upstream"]["03_velo+UT_P>5GeV"]["title"] = "VeloUT, p>5GeV, 2 < eta < 5" - basedict["Upstream"]["07_long"]["title"] = "Long, 2 < eta < 5" - basedict["Upstream"]["08_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" - basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 < eta < 5" - basedict["Upstream"]["10_long_fromB_P>5GeV"]["title"] = "Long from B, p>5GeV, 2 < eta < 5" - basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "Long, from B, p>3GeV, pt>0.5GeV" - basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "Long, from B, p>3GeV, pt>0.5GeV" + basedict["Upstream"]["03_velo+UT_P>5GeV"][ + "title"] = "VeloUT, p>5GeV, 2 < eta < 5" + basedict["Upstream"]["07_long"]["title"] = "Long, 2 < eta < 5" + basedict["Upstream"]["08_long_P>5GeV"][ + "title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 < eta < 5" + basedict["Upstream"]["10_long_fromB_P>5GeV"][ + "title"] = "Long from B, p>5GeV, 2 < eta < 5" + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, from B, p>3GeV, pt>0.5GeV" + basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, from B, p>3GeV, pt>0.5GeV" basedict["Upstream"]["01_velo"]["plotElectrons"] = False basedict["Upstream"]["02_velo+UT"]["plotElectrons"] = False basedict["Upstream"]["03_velo+UT_P>5GeV"]["plotElectrons"] = False - basedict["Upstream"]["07_long"]["plotElectrons"] = True - basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False - basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True - basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False - basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False - basedict["Upstream"]["07_long"]["Electrons"] = "11_long_electrons" - basedict["Upstream"]["09_long_fromB"]["Electrons"] = "12_long_fromB_electrons" - basedict["Upstream"]["10_long_fromB_P>5GeV"]["Electrons"] = "13_long_fromB_electrons_P>5GeV" - - basedict["Forward"]["01_long"]["title"] = "Long, 2 < eta < 5" - basedict["Forward"]["02_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" - basedict["Forward"]["03_long_strange"]["title"] = "Long, from strange, 2 < eta < 5" - basedict["Forward"]["04_long_strange_P>5GeV"]["title"] = "Long, from strange, p>5GeV, 2 < eta < 5" - basedict["Forward"]["05_long_fromB"]["title"] = "Long from B, 2 < eta < 5" - basedict["Forward"]["06_long_fromB_P>5GeV"]["title"] = "Long from B, p>5GeV 2 < eta < 5" - basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" - basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["title"] = "UT Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" - - basedict["Forward"]["01_long"]["plotElectrons"] = True + basedict["Upstream"]["07_long"]["plotElectrons"] = True + basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False + basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True + basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False + basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False + basedict["Upstream"]["07_long"]["Electrons"] = "11_long_electrons" + basedict["Upstream"]["09_long_fromB"][ + "Electrons"] = "12_long_fromB_electrons" + basedict["Upstream"]["10_long_fromB_P>5GeV"][ + "Electrons"] = "13_long_fromB_electrons_P>5GeV" + + basedict["Forward"]["01_long"]["title"] = "Long, 2 < eta < 5" + basedict["Forward"]["02_long_P>5GeV"][ + "title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["Forward"]["03_long_strange"][ + "title"] = "Long, from strange, 2 < eta < 5" + basedict["Forward"]["04_long_strange_P>5GeV"][ + "title"] = "Long, from strange, p>5GeV, 2 < eta < 5" + basedict["Forward"]["05_long_fromB"]["title"] = "Long from B, 2 < eta < 5" + basedict["Forward"]["06_long_fromB_P>5GeV"][ + "title"] = "Long from B, p>5GeV 2 < eta < 5" + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" + basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ + "title"] = "UT Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" + + basedict["Forward"]["01_long"]["plotElectrons"] = True basedict["Forward"]["02_long_P>5GeV"]["plotElectrons"] = False - basedict["Forward"]["03_long_strange"]["plotElectrons"] = False - basedict["Forward"]["04_long_strange_P>5GeV"]["plotElectrons"] = False - basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True - basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] =False - basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False - - basedict["Forward"]["01_long"]["Electrons"] = "07_long_electrons" - basedict["Forward"]["05_long_fromB"]["Electrons"] = "08_long_fromB_electrons" - basedict["Forward"]["06_long_fromB_P>5GeV"]["Electrons"] = "09_long_fromB_electrons_P>5GeV" - + basedict["Forward"]["03_long_strange"]["plotElectrons"] = False + basedict["Forward"]["04_long_strange_P>5GeV"]["plotElectrons"] = False + basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True + basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False + basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False + + basedict["Forward"]["01_long"]["Electrons"] = "07_long_electrons" + basedict["Forward"]["05_long_fromB"][ + "Electrons"] = "08_long_fromB_electrons" + basedict["Forward"]["06_long_fromB_P>5GeV"][ + "Electrons"] = "09_long_fromB_electrons_P>5GeV" + return basedict diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index e241bbdc9f2..ac205a555f5 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -20,12 +20,15 @@ from ROOT import gStyle # Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks start, stop = 0.28, 0.52 x_width, y_width = 0.4, 0.2 -PLACES = [(start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2)] # left +PLACES = [ + (start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) +] # left + # Needed if importing this script from another script in case TMultiGraphs are used #ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) @@ -64,7 +67,8 @@ def overlap_h(hist, x1, y1, x2, y2): if y1 <= val <= y2: return True # Errors - if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow(i) < y2: + if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow( + i) < y2: return True return False @@ -77,6 +81,7 @@ def overlap_rect(rect1, rect2): return False return True + def overlap_g(graph, x1, y1, x2, y2): x_values = list(graph.GetX()) y_values = list(graph.GetY()) @@ -90,6 +95,7 @@ def overlap_g(graph, x1, y1, x2, y2): return True return False + def place_legend(canvas, x1=None, y1=None, @@ -119,10 +125,12 @@ def place_legend(canvas, # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], header, option) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], + header, option) # As a fallback, use the default values, taken from TCanvas::BuildLegend return canvas.BuildLegend(0.4, 0.37, 0.88, 0.68, header, option) + # Monkey patch ROOT objects to make it all work ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) -- GitLab From 530107611e10fe599fe07a5a4dee380887f5746f Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Mon, 27 Jan 2020 12:53:16 +0100 Subject: [PATCH 047/199] fix copyrights --- Hlt/RecoConf/scripts/Legend.py | 128 ------------------ .../scripts/PrCheckerEfficiency_HLT1.py | 16 ++- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 11 ++ 3 files changed, 22 insertions(+), 133 deletions(-) delete mode 100644 Hlt/RecoConf/scripts/Legend.py diff --git a/Hlt/RecoConf/scripts/Legend.py b/Hlt/RecoConf/scripts/Legend.py deleted file mode 100644 index c40a9d8d8fa..00000000000 --- a/Hlt/RecoConf/scripts/Legend.py +++ /dev/null @@ -1,128 +0,0 @@ -import ROOT -import itertools -from ROOT import gStyle - -# Some convenience function to easily iterate over the parts of the collections - -# Needed if importing this script from another script in case TMultiGraphs are used -#ROOT.SetMemoryPolicy(ROOT.kMemoryStrict) - -# Start a bit right of the Yaxis and above the Xaxis to not overlap with the ticks -start, stop = 0.18, 0.89 -x_width, y_width = 0.3, 0.2 -PLACES = [ - (start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.5 - y_width / 2, stop, 0.5 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) -] # left - - -def transform_to_user(canvas, x1, y1, x2, y2): - """ - Transforms from Pad coordinates to User coordinates. - - This can probably be replaced by using the built-in conversion commands. - """ - xstart = canvas.GetX1() - xlength = canvas.GetX2() - xstart - xlow = xlength * x1 + xstart - xhigh = xlength * x2 + xstart - if canvas.GetLogx(): - xlow = 10**xlow - xhigh = 10**xhigh - - ystart = canvas.GetY1() - ylength = canvas.GetY2() - ystart - ylow = ylength * y1 + ystart - yhigh = ylength * y2 + ystart - if canvas.GetLogy(): - ylow = 10**ylow - yhigh = 10**yhigh - - return xlow, ylow, xhigh, yhigh - - -def overlap_h(hist, x1, y1, x2, y2): - xlow = hist.FindFixBin(x1) - xhigh = hist.FindFixBin(x2) - for i in range(xlow, xhigh + 1): - val = hist.GetBinContent(i) - # Values - if y1 <= val <= y2: - return True - # Errors - if val + hist.GetBinErrorUp(i) > y1 and val - hist.GetBinErrorLow( - i) < y2: - # print "Overlap with histo", hist.GetName(), "at bin", i - return True - return False - - -def overlap_rect(rect1, rect2): - """Do the two rectangles overlap?""" - if rect1[0] > rect2[2] or rect1[2] < rect2[0]: - return False - if rect1[1] > rect2[3] or rect1[3] < rect2[1]: - return False - return True - - -def overlap_g(graph, x1, y1, x2, y2): - x_values = list(graph.GetX()) - y_values = list(graph.GetY()) - x_err = list(graph.GetEX()) or [0] * len(x_values) - y_err = list(graph.GetEY()) or [0] * len(y_values) - - for x, ex, y, ey in zip(x_values, x_err, y_values, y_err): - # Could maybe be less conservative - if overlap_rect((x1, y1, x2, y2), (x - ex, y - ey, x + ex, y + ey)): - # print "Overlap with graph", graph.GetName(), "at point", (x, y) - return True - return False - - -def place_legend(canvas, - x1=None, - y1=None, - x2=None, - y2=None, - header="", - option="LPF"): - gStyle.SetFillStyle(0) - gStyle.SetTextSize(0.09) - # If position is specified, use that - if all(x is not None for x in (x1, x2, y1, y2)): - return canvas.BuildLegend(x1, y1, x2, y2, header, option) - - # Make sure all objects are correctly registered - canvas.Update() - - # Build a list of objects to check for overlaps - objects = [] - for x in canvas.GetListOfPrimitives(): - if isinstance(x, ROOT.TH1) or isinstance(x, ROOT.TGraph): - objects.append(x) - elif isinstance(x, ROOT.THStack) or isinstance(x, ROOT.TMultiGraph): - objects.extend(x) - - for place in PLACES: - place_user = canvas.PadtoU(*place) - # Make sure there are no overlaps - if any(obj.Overlap(*place_user) for obj in objects): - continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], - header, option) - # As a fallback, use the default values, taken from TCanvas::BuildLegend - return canvas.BuildLegend(0.5, 0.67, 0.88, 0.88, header, option) - - -# Monkey patch ROOT objects to make it all work -ROOT.THStack.__iter__ = lambda self: iter(self.GetHists()) -ROOT.TMultiGraph.__iter__ = lambda self: iter(self.GetListOfGraphs()) -ROOT.TH1.Overlap = overlap_h -ROOT.TGraph.Overlap = overlap_g -ROOT.TPad.PadtoU = transform_to_user -ROOT.TPad.PlaceLegend = place_legend diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 3af620d7ae8..43f3c1f89f2 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -1,8 +1,18 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### #!/usr/bin/python # Script for accessing histograms of reconstructible and # reconstructed tracks for different tracking categories -# created by PrChecker2 +# created by hlt1_reco_baseline_with_mcchecking # # The efficency is calculated usig TGraphAsymmErrors # and Bayesian error bars @@ -19,13 +29,9 @@ from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad from ROOT import gROOT, gStyle, TStyle, TPaveText from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors -#from BaseHandler import BaseHandler -#from collectRunResults import urlopen import logging import subprocess -#from collectRunResults import send_notification_mattermost - def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 496313b6080..3a8e4e71f94 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -1,3 +1,14 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### + from collections import defaultdict -- GitLab From 7bbcef593f3733ead57e634efc9f14e0a9b6bc29 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Mon, 27 Jan 2020 13:41:55 +0100 Subject: [PATCH 048/199] qmtest for plotting --- .../hlt1_reco_IPresolution.qmt | 31 +++++++++++++++++ .../hlt1_reco_IPresolution_plots.qmt | 33 +++++++++++++++++++ .../hlt1_reco_trackresolution.qmt | 31 +++++++++++++++++ .../hlt1_reco_trackresolution_plots.qmt | 31 +++++++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution.qmt new file mode 100644 index 00000000000..74c2cfa3668 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_IPresolution.py + --output=hlt1_reco_IPresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt new file mode 100644 index 00000000000..ce4f78f3690 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @@ -0,0 +1,33 @@ + + + + +python + + $RECOCONFROOT/scripts/PrCheckerIPresolution.py + --name=Hlt1ForwardTracking_IPresolution + --plotstyle=$RECOCONFROOT/scripts/ + --output=hlt1_reco_IPresolution_plot.opts.py + +true + + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + + diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution.qmt new file mode 100644 index 00000000000..0a10d19ac0d --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_trackresolution.py + --output=hlt1_reco_trackresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt new file mode 100644 index 00000000000..dd1d3b8976f --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt @@ -0,0 +1,31 @@ + + + + +python + + $RECOCONFROOT/scripts/PrCheckerTrackResolution.py + --plotstyle=$RECOCONFROOT/scripts/ + --output=hlt1_reco_trackresolution.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + -- GitLab From 6c89a979b67ee3576d884011971297947fe67ba5 Mon Sep 17 00:00:00 2001 From: Tomasz Wojton Date: Tue, 28 Jan 2020 10:39:47 +0100 Subject: [PATCH 049/199] removed prints (pvs, hlt1_tracks) --- Hlt/RecoConf/python/RecoConf/standalone.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index c236dce45c7..9a8bc483b53 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -62,8 +62,6 @@ def standalone_hlt1_reco(do_mc_checking=False): "Forward": hlt1_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) - print hlt1_tracks["Velo"] - print pvs data += get_pv_checkers(pvs, hlt1_tracks["Velo"]) return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From cdae793dad309b602acb7c162ddcc072a1ef7d47 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 28 Jan 2020 09:40:12 +0000 Subject: [PATCH 050/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/6950020 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 191d86aad88..9af2be96f60 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -272,8 +272,7 @@ def get_pv_checkers( ): assert isinstance( - pvs, - DataHandle), "Please provide reconstructed primary verticies" + pvs, DataHandle), "Please provide reconstructed primary verticies" pv_checkers = [] @@ -283,8 +282,8 @@ def get_pv_checkers( inputTracksName=tracks["v1"], MCVertexInput=mc_unpackers()["MCVertices"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), - MCPropertyInput=make_data_with_FetchDataFromFile("/Event/MC/TrackInfo") - ) + MCPropertyInput=make_data_with_FetchDataFromFile( + "/Event/MC/TrackInfo")) pv_checkers.append(pvchecker) return pv_checkers @@ -297,4 +296,3 @@ def make_track_filter(InputTracks, code): filtered_tracks = TrackListRefiner( inputLocation=InputTracks["v1"], Selector=selector).outputLocation return filtered_tracks - -- GitLab From 632f5af415f857365650ac968c84b88fc67786f3 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 28 Jan 2020 16:27:34 +0100 Subject: [PATCH 051/199] decode Allen DecReports --- .../tests/options/default_input_and_conds_hlt1.py | 2 +- ...lt1_reco_baseline_and_Allen_with_mcchecking.py | 2 +- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 7 +++++-- Hlt/RecoConf/python/RecoConf/standalone.py | 15 +++++++++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 8da7b5b7df0..796c9860834 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") -options.evt_max = 1000 +options.evt_max = 10 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py index 3d3321275af..7a53a2052bd 100644 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### from Moore import options, run_reconstruction -from RecoConf.standalone import standalone_hlt1_reco_and_allen +from RecoConf.standalone import standalone_hlt1_reco_and_allen, standalone_hlt1_allen from Configurables import ApplicationMgr from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index dc780f34c86..6e80cfaa75e 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -43,10 +43,12 @@ run_allen = make_algorithm( def make_allen_output(odin_location=make_odin, - dumped_raw_banks=make_dumped_raw_banks): + dumped_raw_banks=make_dumped_raw_banks, + filter_hlt1=False): return run_allen( AllenRawInput=dumped_raw_banks(), - ODINLocation=odin_location()).AllenOutput + ODINLocation=odin_location(), + filter_HLT1=filter_hlt1).AllenOutput def make_allen_velo_tracks(): @@ -97,3 +99,4 @@ def make_allen_pvs(): def make_allen_dec_reports(): allen_output = make_allen_output() return AllenDecReportsToTES(AllenOutput=allen_output).OutputDecReports + diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 4cb532713d5..1aa56fd3d43 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -31,6 +31,7 @@ from .rich_data_monitoring import (make_rich_pixel_monitors, default_rich_monitoring_options) from .rich_mc_checking import make_rich_checkers, default_rich_checking_options from PyConf.Algorithms import Rich__Future__Rec__TrackFilter as TrackFilter +from PyConf.Algorithms import HltDecReportsDecoder from GaudiKernel.SystemOfUnits import MeV, mm from Moore.config import Reconstruction @@ -71,6 +72,20 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) +@configurable +def standalone_hlt1_allen(): + """ Run the Allen HLT1 sequence + Returns: + Reconstruction: Data and control flow of Hlt1 reconstruction. + + """ + # Allen hlt1 + allen_dec_reports_raw = make_allen_dec_reports() + allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw).OutputHltDecReportsLocation + data = [allen_dec_reports] + + return Reconstruction('hlt1_allen', data, reco_prefilters()) + @configurable def standalone_hlt1_reco_and_allen(do_mc_checking=False): """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional both with the baseline and the Allen sequence -- GitLab From 5405680e62f9560ed5fdef1b0daf069d38e7163e Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 28 Jan 2020 17:42:04 +0100 Subject: [PATCH 052/199] output decoded decReports --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 6e80cfaa75e..94a41e3ad11 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -98,5 +98,7 @@ def make_allen_pvs(): def make_allen_dec_reports(): allen_output = make_allen_output() - return AllenDecReportsToTES(AllenOutput=allen_output).OutputDecReports + allen_dec_reports_raw = AllenDecReportsToTES(AllenOutput=allen_output).OutputDecReports + return HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw).OutputHltDecReportsLocation + -- GitLab From eaa41ce53983488a9c9e00e0b2d9efc82912527a Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 28 Jan 2020 19:00:48 +0100 Subject: [PATCH 053/199] add DecReportsDecoder --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 94a41e3ad11..a0e089205f1 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -21,6 +21,7 @@ from PyConf.Algorithms import (LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, AllenPVsToRecVertexV2, AllenDecReportsToTES) +from PyConf.Algorithms import HltDecReportsDecoder dump_raw_banks = make_algorithm( DumpRawBanks, -- GitLab From 14f5b22665e56990e774e694a8d8be22452d929f Mon Sep 17 00:00:00 2001 From: Tomasz Wojton Date: Tue, 4 Feb 2020 12:26:21 +0100 Subject: [PATCH 054/199] refactoring --- Hlt/RecoConf/options/hlt1_reco_pvchecker.py | 35 +++++++++++++++++++++ Hlt/RecoConf/python/RecoConf/mc_checking.py | 4 +++ 2 files changed, 39 insertions(+) create mode 100644 Hlt/RecoConf/options/hlt1_reco_pvchecker.py diff --git a/Hlt/RecoConf/options/hlt1_reco_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_pvchecker.py new file mode 100644 index 00000000000..2cff83329dd --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_pvchecker.py @@ -0,0 +1,35 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks, make_pvs +from RecoConf.mc_checking import get_pv_checkers, get_track_checkers +from Configurables import ApplicationMgr +from Configurables import NTupleSvc + + +def hlt1_reco_pvchecker(): + + hlt1_tracks = make_hlt1_tracks() + pvs = make_pvs() + + data = [pvs] + data += get_pv_checkers(pvs, hlt1_tracks["Velo"], produce_ntuple=True) + + return Reconstruction('PVperformance', data, [require_gec()]) + +run_reconstruction(options, hlt1_reco_pvchecker) + +NTupleSvc().Output += [ + "FILE1 DATAFILE='Hlt1_PVperformance.root' TYPE='ROOT' OPT='NEW'" +] +ApplicationMgr().ExtSvc += [NTupleSvc()] +ApplicationMgr().HistogramPersistency = "ROOT" diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 9af2be96f60..5bb2bfa5e09 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -274,6 +274,9 @@ def get_pv_checkers( assert isinstance( pvs, DataHandle), "Please provide reconstructed primary verticies" + links_to_lhcbids = make_links_lhcbids_mcparticles() + links_to_tracks = make_links_tracks_mcparticles( + InputTracks=tracks, LinksToLHCbIDs=links_to_lhcbids) pv_checkers = [] pvchecker = PrimaryVertexChecker( @@ -281,6 +284,7 @@ def get_pv_checkers( inputVerticesName=pvs, inputTracksName=tracks["v1"], MCVertexInput=mc_unpackers()["MCVertices"], + MCParticleInput = mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), MCPropertyInput=make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo")) -- GitLab From faffe69110467f801e7167109d79f4b29b0cd5a9 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 4 Feb 2020 11:27:09 +0000 Subject: [PATCH 055/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7045996 --- Hlt/RecoConf/options/hlt1_reco_pvchecker.py | 1 + Hlt/RecoConf/python/RecoConf/mc_checking.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_pvchecker.py index 2cff83329dd..91175618897 100644 --- a/Hlt/RecoConf/options/hlt1_reco_pvchecker.py +++ b/Hlt/RecoConf/options/hlt1_reco_pvchecker.py @@ -26,6 +26,7 @@ def hlt1_reco_pvchecker(): return Reconstruction('PVperformance', data, [require_gec()]) + run_reconstruction(options, hlt1_reco_pvchecker) NTupleSvc().Output += [ diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 5bb2bfa5e09..377fce1a22c 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -276,7 +276,7 @@ def get_pv_checkers( links_to_lhcbids = make_links_lhcbids_mcparticles() links_to_tracks = make_links_tracks_mcparticles( - InputTracks=tracks, LinksToLHCbIDs=links_to_lhcbids) + InputTracks=tracks, LinksToLHCbIDs=links_to_lhcbids) pv_checkers = [] pvchecker = PrimaryVertexChecker( @@ -284,7 +284,7 @@ def get_pv_checkers( inputVerticesName=pvs, inputTracksName=tracks["v1"], MCVertexInput=mc_unpackers()["MCVertices"], - MCParticleInput = mc_unpackers()["MCParticles"], + MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), MCPropertyInput=make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo")) -- GitLab From 6c8011a78726dcd431e86cdce41d31357fcf162a Mon Sep 17 00:00:00 2001 From: Ross Hunter Date: Thu, 6 Feb 2020 19:30:09 +0100 Subject: [PATCH 056/199] Put Allen into a node like moore_control_flow --- Hlt/RecoConf/python/RecoConf/standalone.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 1aa56fd3d43..82e4e066ed8 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -81,10 +81,23 @@ def standalone_hlt1_allen(): """ # Allen hlt1 allen_dec_reports_raw = make_allen_dec_reports() - allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw).OutputHltDecReportsLocation + #allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw).OutputHltDecReportsLocation + allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw) data = [allen_dec_reports] - return Reconstruction('hlt1_allen', data, reco_prefilters()) + #dec = CompositeNode( + # 'hlt_decision', + # combineLogic=NodeLogic.NONLAZY_OR, + # children=[line.node for line in lines], + # forceOrder=False) + + return CompositeNode( + 'allen', + combineLogic=NodeLogic.LAZY_AND, + children=data + reco_prefilters(), + forceOrder=True) + #return Reconstruction('hlt1_allen', data, reco_prefilters()) + #return data @configurable def standalone_hlt1_reco_and_allen(do_mc_checking=False): -- GitLab From 6fd0a3060b8b43855524624ff331fee350a73d3e Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Fri, 7 Feb 2020 16:05:09 +0100 Subject: [PATCH 057/199] fix a typo --- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 3a8e4e71f94..6020b49c340 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -76,7 +76,7 @@ def getCuts(): ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", - "04_long_strange_P>5GeV", "05_long_fromB_P", "06_long_fromB_P>5GeV", + "04_long_strange_P>5GeV", "05_long_fromB", "06_long_fromB_P>5GeV", "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] -- GitLab From 0f4b5d8cc65174c541aadef0e106549af95878bc Mon Sep 17 00:00:00 2001 From: Ross Hunter Date: Wed, 12 Feb 2020 18:01:10 +0100 Subject: [PATCH 058/199] make_algorithm -> Algorithm --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index a0e089205f1..75cdd63030c 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -10,7 +10,7 @@ ############################################################################### from PyConf import configurable from PyConf.components import ( - make_algorithm, + #Algorithm, Algorithm, ) from PyConf.application import default_raw_event, make_odin @@ -23,7 +23,7 @@ from PyConf.Algorithms import (LHCb__Converters__Track__v1__fromV2TrackV1Track AllenPVsToRecVertexV2, AllenDecReportsToTES) from PyConf.Algorithms import HltDecReportsDecoder -dump_raw_banks = make_algorithm( +dump_raw_banks = Algorithm( DumpRawBanks, defaults=dict( BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) @@ -36,7 +36,7 @@ def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): ODINLocation=odin_location()).AllenRawInput -run_allen = make_algorithm( +run_allen = Algorithm( RunAllen, defaults=dict( DetectorConfigurationPath="../Allen/input/detector_configuration/down/", -- GitLab From 3a663f614fd271ea588f2a2f815ea1aee10bb168 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 13 Feb 2020 02:54:12 +0100 Subject: [PATCH 059/199] make Allen calling from Moore work after merge with Moore master and using branch allen_tdr in Allen --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 32 ++++++---------------- Hlt/RecoConf/python/RecoConf/standalone.py | 4 +-- 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 75cdd63030c..5a695c31283 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -9,10 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### from PyConf import configurable -from PyConf.components import ( - #Algorithm, - Algorithm, -) + from PyConf.application import default_raw_event, make_odin from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) @@ -20,36 +17,25 @@ from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) from PyConf.Algorithms import (LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, - AllenPVsToRecVertexV2, AllenDecReportsToTES) + AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder -dump_raw_banks = Algorithm( - DumpRawBanks, - defaults=dict( - BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False)) - - @configurable def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): - return dump_raw_banks( + return DumpRawBanks( RawEventLocation=make_raw(), - ODINLocation=odin_location()).AllenRawInput - - -run_allen = Algorithm( - RunAllen, - defaults=dict( - DetectorConfigurationPath="../Allen/input/detector_configuration/down/", - AlgorithmConfigurationPath="../Allen/configuration/constants/")) - + ODINLocation=odin_location(), + BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False).AllenRawInput def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks, filter_hlt1=False): - return run_allen( + return RunAllen( AllenRawInput=dumped_raw_banks(), ODINLocation=odin_location(), - filter_HLT1=filter_hlt1).AllenOutput + filter_HLT1=filter_hlt1, + ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", + JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json").AllenOutput def make_allen_velo_tracks(): diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 75cd5df9759..933e011a296 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -120,9 +120,9 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): # Allen hlt1 allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() - allen_dec_reports = make_allen_dec_reports() + #allen_dec_reports = make_allen_dec_reports() - data += [allen_dec_reports] + #data += [allen_dec_reports] if do_mc_checking: types_and_locations_for_checkers = { -- GitLab From 4bd2db354f3b865a6e612dbb4662d69ccfdd3ab5 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 13 Feb 2020 14:35:59 +0100 Subject: [PATCH 060/199] cleanup --- Hlt/RecoConf/python/RecoConf/standalone.py | 33 +--------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 933e011a296..ccfc04dc3f0 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -71,34 +71,6 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) - -@configurable -def standalone_hlt1_allen(): - """ Run the Allen HLT1 sequence - Returns: - Reconstruction: Data and control flow of Hlt1 reconstruction. - - """ - # Allen hlt1 - allen_dec_reports_raw = make_allen_dec_reports() - #allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw).OutputHltDecReportsLocation - allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw) - data = [allen_dec_reports] - - #dec = CompositeNode( - # 'hlt_decision', - # combineLogic=NodeLogic.NONLAZY_OR, - # children=[line.node for line in lines], - # forceOrder=False) - - return CompositeNode( - 'allen', - combineLogic=NodeLogic.LAZY_AND, - children=data + reco_prefilters(), - forceOrder=True) - #return Reconstruction('hlt1_allen', data, reco_prefilters()) - #return data - @configurable def standalone_hlt1_reco_and_allen(do_mc_checking=False): """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional both with the baseline and the Allen sequence @@ -120,10 +92,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): # Allen hlt1 allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() - #allen_dec_reports = make_allen_dec_reports() - - #data += [allen_dec_reports] - + if do_mc_checking: types_and_locations_for_checkers = { "Velo": allen_tracks["Velo"], -- GitLab From ce57a02b108c8d214379f30a5329a90ae8cfbfd4 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 13 Feb 2020 22:00:29 +0100 Subject: [PATCH 061/199] add MuonMatch category for muonID Efficiency check --- Hlt/RecoConf/python/RecoConf/standalone.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 85712977f38..d1ea229e07b 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -91,6 +91,7 @@ def standalone_hlt1_muonmatching_reco(do_mc_checking=False, "Velo": all_tracks["Velo"], "Upstream": all_tracks["Upstream"], "Forward": all_tracks["Forward"], + "MuonMatch": all_tracks["MuonMatch"], } data += get_track_checkers(types_and_locations_for_checkers) -- GitLab From d62c2a614cf8f6f8c5c4111a13bf2ea2faac8245 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 14 Feb 2020 14:50:26 +0100 Subject: [PATCH 062/199] dump default raw banks, so that ODIN is dumped as well --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 5a695c31283..e829efb0279 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -25,7 +25,7 @@ def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): return DumpRawBanks( RawEventLocation=make_raw(), ODINLocation=odin_location(), - BankTypes=["VP", "UT", "FTCluster", "Muon"], DumpToFile=False).AllenRawInput + DumpToFile=False).AllenRawInput def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks, -- GitLab From 7deb1cc2ce66b98c31322f1e36da16a3943b4f79 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 14 Feb 2020 15:36:24 +0100 Subject: [PATCH 063/199] add option files for muonID efficiency check --- .../options/hlt1_reco_muonid_efficiency.py | 67 +++++++++++++++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 1 - 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py diff --git a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py new file mode 100644 index 00000000000..7a69b2e3b1a --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py @@ -0,0 +1,67 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options +from PyConf.application import configure_input, configure +from PyConf.control_flow import CompositeNode, NodeLogic +from RecoConf.hlt1_tracking import ( + require_gec, + make_VeloClusterTrackingSIMD_hits +) +from RecoConf.mc_checking import monitor_tracking_efficiency, make_links_tracks_mcparticles, make_links_lhcbids_mcparticles_tracking_system +from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask +from RecoConf.hlt1_muonid import make_fitted_tracks_with_muon_id + +from Hlt1Conf.algorithms import Filter + +from Functors import ISMUON + +from PyConf.Algorithms import ( + LHCb__Converters__Track__v1__fromV2TrackV1Track as + trackV1FromV2TrackV1Track, + LHCb__Converters__Track__v2__fromPrFittedForwardTrackWithMuonID as + trackV2FromPrFittedForwardTrackWithMuonID +) + + + +def hlt1_reco_muonid_efficiency(): + # get the fitted tracks with muon ID + tracks_with_muon_id = make_fitted_tracks_with_muon_id() + + # appliy selection to tracks to select only tracks which are isMuon + full_sel = ISMUON + track_filter = Filter(tracks_with_muon_id, full_sel)['PrFittedForwardWithMuonID'] + + # convert result to v1 (which is what the PrChecker needs) + velo_hits = make_VeloClusterTrackingSIMD_hits() + v2_tracks = trackV2FromPrFittedForwardTrackWithMuonID(FittedTracks=track_filter, VeloHits=velo_hits) + v1_tracks = trackV1FromV2TrackV1Track(InputTracksName=v2_tracks, ) + + # make links to lhcb id for mc matching + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + # make links between tracks and mcparticles for mc matching + links_to_tracks_muon_id = make_links_tracks_mcparticles(InputTracks={"v1":v1_tracks.OutputTracksName}, LinksToLHCbIDs=links_to_lhcbids) + + # build the PrChecker algorihm + pr_checker_for_muon_id = monitor_tracking_efficiency( + TrackType="MuonMatch", + InputTracks={"v1":v1_tracks.OutputTracksName}, + LinksToTracks=links_to_tracks_muon_id, + LinksToLHCbIDs=links_to_lhcbids, + MCCategories=get_mc_categories("MuonMatch"), + HitTypesToCheck=get_hit_type_mask("BestLong"), + ) + + return Reconstruction('muonideff', [pr_checker_for_muon_id], [require_gec()]) + +options.histo_file = "PrChecker_MuonID.root" +run_reconstruction(options, hlt1_reco_muonid_efficiency) + diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index d1ea229e07b..85712977f38 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -91,7 +91,6 @@ def standalone_hlt1_muonmatching_reco(do_mc_checking=False, "Velo": all_tracks["Velo"], "Upstream": all_tracks["Upstream"], "Forward": all_tracks["Forward"], - "MuonMatch": all_tracks["MuonMatch"], } data += get_track_checkers(types_and_locations_for_checkers) -- GitLab From fbf1554ad54acc49dd8a6813fd112ec16182a3b6 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 14 Feb 2020 16:55:27 +0100 Subject: [PATCH 064/199] add MC file loction --- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index b540ab11836..bcc86a4185b 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -24,7 +24,7 @@ def hlt1_reco_trackresolution(): # children=pr_checker, # combineLogic=NodeLogic.NONLAZY_OR, # forceOrder=False) - return Reconstruction('track_resolution', [pr_checker], [require_gec()]) + return Reconstruction('track_resolution', [make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo" ), pr_checker], [require_gec()]) options.histo_file = "Hlt1ForwardTrackingResolution.root" -- GitLab From a606338a2035d26dfe54ec31d2298ef6c2add717 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 14 Feb 2020 15:55:51 +0000 Subject: [PATCH 065/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7198604 --- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index bcc86a4185b..dc8301f0562 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -24,7 +24,10 @@ def hlt1_reco_trackresolution(): # children=pr_checker, # combineLogic=NodeLogic.NONLAZY_OR, # forceOrder=False) - return Reconstruction('track_resolution', [make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo" ), pr_checker], [require_gec()]) + return Reconstruction( + 'track_resolution', + [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker], + [require_gec()]) options.histo_file = "Hlt1ForwardTrackingResolution.root" -- GitLab From 54fa58c863c3421619ce83abd4c23384db698595 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 14 Feb 2020 17:18:29 +0100 Subject: [PATCH 066/199] add missing algorithm --- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index dc8301f0562..a18e2d82c1d 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -12,6 +12,7 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks from RecoConf.mc_checking import monitor_track_resolution +from PyConf.application import make_data_with_FetchDataFromFile def hlt1_reco_trackresolution(): -- GitLab From 999911ef45349fea4cdff8efe34fec9448648939 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 14 Feb 2020 16:36:39 +0000 Subject: [PATCH 067/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7199656 --- .../options/hlt1_reco_muonid_efficiency.py | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py index 7a69b2e3b1a..9bb93bbf5c1 100644 --- a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py @@ -11,10 +11,8 @@ from Moore import options from PyConf.application import configure_input, configure from PyConf.control_flow import CompositeNode, NodeLogic -from RecoConf.hlt1_tracking import ( - require_gec, - make_VeloClusterTrackingSIMD_hits -) +from RecoConf.hlt1_tracking import (require_gec, + make_VeloClusterTrackingSIMD_hits) from RecoConf.mc_checking import monitor_tracking_efficiency, make_links_tracks_mcparticles, make_links_lhcbids_mcparticles_tracking_system from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask from RecoConf.hlt1_muonid import make_fitted_tracks_with_muon_id @@ -27,41 +25,44 @@ from PyConf.Algorithms import ( LHCb__Converters__Track__v1__fromV2TrackV1Track as trackV1FromV2TrackV1Track, LHCb__Converters__Track__v2__fromPrFittedForwardTrackWithMuonID as - trackV2FromPrFittedForwardTrackWithMuonID -) - + trackV2FromPrFittedForwardTrackWithMuonID) def hlt1_reco_muonid_efficiency(): # get the fitted tracks with muon ID tracks_with_muon_id = make_fitted_tracks_with_muon_id() - + # appliy selection to tracks to select only tracks which are isMuon full_sel = ISMUON - track_filter = Filter(tracks_with_muon_id, full_sel)['PrFittedForwardWithMuonID'] - + track_filter = Filter(tracks_with_muon_id, + full_sel)['PrFittedForwardWithMuonID'] + # convert result to v1 (which is what the PrChecker needs) velo_hits = make_VeloClusterTrackingSIMD_hits() - v2_tracks = trackV2FromPrFittedForwardTrackWithMuonID(FittedTracks=track_filter, VeloHits=velo_hits) + v2_tracks = trackV2FromPrFittedForwardTrackWithMuonID( + FittedTracks=track_filter, VeloHits=velo_hits) v1_tracks = trackV1FromV2TrackV1Track(InputTracksName=v2_tracks, ) - + # make links to lhcb id for mc matching links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() # make links between tracks and mcparticles for mc matching - links_to_tracks_muon_id = make_links_tracks_mcparticles(InputTracks={"v1":v1_tracks.OutputTracksName}, LinksToLHCbIDs=links_to_lhcbids) - + links_to_tracks_muon_id = make_links_tracks_mcparticles( + InputTracks={"v1": v1_tracks.OutputTracksName}, + LinksToLHCbIDs=links_to_lhcbids) + # build the PrChecker algorihm pr_checker_for_muon_id = monitor_tracking_efficiency( TrackType="MuonMatch", - InputTracks={"v1":v1_tracks.OutputTracksName}, + InputTracks={"v1": v1_tracks.OutputTracksName}, LinksToTracks=links_to_tracks_muon_id, LinksToLHCbIDs=links_to_lhcbids, MCCategories=get_mc_categories("MuonMatch"), HitTypesToCheck=get_hit_type_mask("BestLong"), - ) + ) + + return Reconstruction('muonideff', [pr_checker_for_muon_id], + [require_gec()]) - return Reconstruction('muonideff', [pr_checker_for_muon_id], [require_gec()]) options.histo_file = "PrChecker_MuonID.root" run_reconstruction(options, hlt1_reco_muonid_efficiency) - -- GitLab From 5be41a490078a2bf64e3b84bb7d823dae248f242 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 14 Feb 2020 17:44:14 +0100 Subject: [PATCH 068/199] fix bug --- Hlt/RecoConf/scripts/PrCheckerTrackResolution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index d943412a9b7..02be30980a7 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -53,7 +53,7 @@ def PrCheckerTrackResolution(directory, name, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle - from Legend import place_legend + from utils.Legend import place_legend setLHCbStyle() f = TFile.Open(os.path.join(directory, name + '.root'), 'read') -- GitLab From c6772870a4fba466ab2447af611850900e822133 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 14 Feb 2020 17:47:22 +0100 Subject: [PATCH 069/199] add defaul path for utils --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 2 +- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 2 +- Hlt/RecoConf/scripts/PrCheckerTrackResolution.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 43f3c1f89f2..191e366f4a5 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -77,7 +77,7 @@ def argument_parser(): help='HLT1 reconstruction method') parser.add_argument( '--plotstyle', - default='', + default=os.getcwd(), help='location of LHCb utils plot style file') return parser diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index b1a841dd491..0e142a26731 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -45,7 +45,7 @@ def argument_parser(): help='name of input tuple files') parser.add_argument( '--plotstyle', - default='', + default=os.getcwd(), help='location of LHCb utils plot style file') return parser diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 02be30980a7..bd8ad506675 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -44,7 +44,7 @@ def argument_parser(): help='name of input tuple files') parser.add_argument( '--plotstyle', - default='', + default=os.getcwd(), help='location of LHCb utils plot style file') return parser -- GitLab From 755d8aefc28405e4292ce12df0710966d557b528 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 14 Feb 2020 22:21:08 +0100 Subject: [PATCH 070/199] fix cleanup --- ...1_reco_baseline_and_Allen_with_mcchecking.py | 2 +- Hlt/RecoConf/python/RecoConf/standalone.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py index 7a53a2052bd..3d3321275af 100644 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### from Moore import options, run_reconstruction -from RecoConf.standalone import standalone_hlt1_reco_and_allen, standalone_hlt1_allen +from RecoConf.standalone import standalone_hlt1_reco_and_allen from Configurables import ApplicationMgr from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index ccfc04dc3f0..576696fce39 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -104,6 +104,23 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) +def standalone_hlt1_allen(): + """ Run the Allen HLT1 sequence + Returns: + Reconstruction: Data and control flow of Hlt1 reconstruction. + + """ + # Allen hlt1 + allen_dec_reports_raw = make_allen_dec_reports() + allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw) + data = [allen_dec_reports] + + return CompositeNode( + 'allen', + combineLogic=NodeLogic.LAZY_AND, + children=data + reco_prefilters(), + forceOrder=True) + def standalone_hlt1_reco_velo_only(): """ Run the default Hlt1 Velo reconstruction -- GitLab From aff88189f828212d247b12006312da7835f03f66 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 14 Feb 2020 23:37:52 +0100 Subject: [PATCH 071/199] modify muonID checker --- .../options/hlt1_reco_muonid_efficiency.py | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py index 9bb93bbf5c1..014d270222e 100644 --- a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py @@ -8,10 +8,12 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options +from Moore import options, run_reconstruction +from Moore.config import Reconstruction from PyConf.application import configure_input, configure from PyConf.control_flow import CompositeNode, NodeLogic from RecoConf.hlt1_tracking import (require_gec, + make_hlt1_tracks, make_VeloClusterTrackingSIMD_hits) from RecoConf.mc_checking import monitor_tracking_efficiency, make_links_tracks_mcparticles, make_links_lhcbids_mcparticles_tracking_system from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask @@ -34,8 +36,7 @@ def hlt1_reco_muonid_efficiency(): # appliy selection to tracks to select only tracks which are isMuon full_sel = ISMUON - track_filter = Filter(tracks_with_muon_id, - full_sel)['PrFittedForwardWithMuonID'] + track_filter = Filter(tracks_with_muon_id, full_sel)['PrFittedForwardWithMuonID'] # convert result to v1 (which is what the PrChecker needs) velo_hits = make_VeloClusterTrackingSIMD_hits() @@ -50,19 +51,33 @@ def hlt1_reco_muonid_efficiency(): InputTracks={"v1": v1_tracks.OutputTracksName}, LinksToLHCbIDs=links_to_lhcbids) - # build the PrChecker algorihm - pr_checker_for_muon_id = monitor_tracking_efficiency( + # build the PrChecker algorihm for muon_id track + pr_checker_for_muon_id= monitor_tracking_efficiency( TrackType="MuonMatch", InputTracks={"v1": v1_tracks.OutputTracksName}, + #InputTracks={"v1": v1_tracks.OutputTracksName}, LinksToTracks=links_to_tracks_muon_id, LinksToLHCbIDs=links_to_lhcbids, MCCategories=get_mc_categories("MuonMatch"), HitTypesToCheck=get_hit_type_mask("BestLong"), ) + + # build the PrChecker algorihm for forward track + forward_tracks = make_hlt1_tracks()['Forward'] + links_to_forward_tracks= make_links_tracks_mcparticles( + InputTracks=forward_tracks, + LinksToLHCbIDs=links_to_lhcbids) - return Reconstruction('muonideff', [pr_checker_for_muon_id], - [require_gec()]) + pr_checker_for_forward_track= monitor_tracking_efficiency( + TrackType="Forward", + InputTracks=forward_tracks, + LinksToTracks=links_to_forward_tracks, + LinksToLHCbIDs=links_to_lhcbids, + MCCategories=get_mc_categories("MuonMatch"), + HitTypesToCheck=get_hit_type_mask("BestLong"), + ) + return Reconstruction('muonideff', [pr_checker_for_forward_track, pr_checker_for_muon_id], [require_gec()]) options.histo_file = "PrChecker_MuonID.root" run_reconstruction(options, hlt1_reco_muonid_efficiency) -- GitLab From 006262103f0995dd3ebb599efeb261ccee54c300 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 14 Feb 2020 22:38:39 +0000 Subject: [PATCH 072/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7202571 --- .../options/hlt1_reco_muonid_efficiency.py | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py index 014d270222e..06423ffe9bb 100644 --- a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py @@ -12,8 +12,7 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from PyConf.application import configure_input, configure from PyConf.control_flow import CompositeNode, NodeLogic -from RecoConf.hlt1_tracking import (require_gec, - make_hlt1_tracks, +from RecoConf.hlt1_tracking import (require_gec, make_hlt1_tracks, make_VeloClusterTrackingSIMD_hits) from RecoConf.mc_checking import monitor_tracking_efficiency, make_links_tracks_mcparticles, make_links_lhcbids_mcparticles_tracking_system from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask @@ -36,7 +35,8 @@ def hlt1_reco_muonid_efficiency(): # appliy selection to tracks to select only tracks which are isMuon full_sel = ISMUON - track_filter = Filter(tracks_with_muon_id, full_sel)['PrFittedForwardWithMuonID'] + track_filter = Filter(tracks_with_muon_id, + full_sel)['PrFittedForwardWithMuonID'] # convert result to v1 (which is what the PrChecker needs) velo_hits = make_VeloClusterTrackingSIMD_hits() @@ -52,7 +52,7 @@ def hlt1_reco_muonid_efficiency(): LinksToLHCbIDs=links_to_lhcbids) # build the PrChecker algorihm for muon_id track - pr_checker_for_muon_id= monitor_tracking_efficiency( + pr_checker_for_muon_id = monitor_tracking_efficiency( TrackType="MuonMatch", InputTracks={"v1": v1_tracks.OutputTracksName}, #InputTracks={"v1": v1_tracks.OutputTracksName}, @@ -61,14 +61,13 @@ def hlt1_reco_muonid_efficiency(): MCCategories=get_mc_categories("MuonMatch"), HitTypesToCheck=get_hit_type_mask("BestLong"), ) - + # build the PrChecker algorihm for forward track forward_tracks = make_hlt1_tracks()['Forward'] - links_to_forward_tracks= make_links_tracks_mcparticles( - InputTracks=forward_tracks, - LinksToLHCbIDs=links_to_lhcbids) + links_to_forward_tracks = make_links_tracks_mcparticles( + InputTracks=forward_tracks, LinksToLHCbIDs=links_to_lhcbids) - pr_checker_for_forward_track= monitor_tracking_efficiency( + pr_checker_for_forward_track = monitor_tracking_efficiency( TrackType="Forward", InputTracks=forward_tracks, LinksToTracks=links_to_forward_tracks, @@ -77,7 +76,10 @@ def hlt1_reco_muonid_efficiency(): HitTypesToCheck=get_hit_type_mask("BestLong"), ) - return Reconstruction('muonideff', [pr_checker_for_forward_track, pr_checker_for_muon_id], [require_gec()]) + return Reconstruction( + 'muonideff', [pr_checker_for_forward_track, pr_checker_for_muon_id], + [require_gec()]) + options.histo_file = "PrChecker_MuonID.root" run_reconstruction(options, hlt1_reco_muonid_efficiency) -- GitLab From f998818653bfb62de543c2b9ab76ca2744b1c06a Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 19 Feb 2020 05:46:30 +0100 Subject: [PATCH 073/199] add RecoConf options script for muonid checking of Allen tracks --- .../hlt1_reco_allen_muonid_efficiency.py | 92 +++++++++++++++++++ Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 9 ++ 2 files changed, 101 insertions(+) create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py new file mode 100644 index 00000000000..185ac820c9b --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py @@ -0,0 +1,92 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from PyConf.application import configure_input, configure +from PyConf.control_flow import CompositeNode, NodeLogic +from RecoConf.hlt1_tracking import (require_gec, make_hlt1_tracks, + make_VeloClusterTrackingSIMD_hits) +from RecoConf.mc_checking import monitor_tracking_efficiency, make_links_tracks_mcparticles, make_links_lhcbids_mcparticles_tracking_system +from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask +from RecoConf.hlt1_muonid import make_fitted_tracks_with_muon_id +from Configurables import ApplicationMgr +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks +from RecoConf.hlt1_allen import (make_allen_forward_tracks, make_allen_forward_muon_tracks) + +from Hlt1Conf.algorithms import Filter + +from Functors import ISMUON + +from PyConf.Algorithms import ( + LHCb__Converters__Track__v1__fromV2TrackV1Track as + trackV1FromV2TrackV1Track, + LHCb__Converters__Track__v2__fromPrFittedForwardTrackWithMuonID as + trackV2FromPrFittedForwardTrackWithMuonID) + + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers + +def hlt1_reco_allen_muonid_efficiency(): + # get the fitted tracks with muon ID + forward_muon_tracks = make_allen_forward_muon_tracks() + + # make links to lhcb id for mc matching + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + # make links between tracks and mcparticles for mc matching + links_to_tracks_muon_id = make_links_tracks_mcparticles( + InputTracks=forward_muon_tracks, + LinksToLHCbIDs=links_to_lhcbids) + + # build the PrChecker algorihm for muon_id track + pr_checker_for_muon_id = monitor_tracking_efficiency( + TrackType="MuonMatch", + InputTracks=forward_muon_tracks, + #InputTracks={"v1": v1_tracks.OutputTracksName}, + LinksToTracks=links_to_tracks_muon_id, + LinksToLHCbIDs=links_to_lhcbids, + MCCategories=get_mc_categories("MuonMatch"), + HitTypesToCheck=get_hit_type_mask("BestLong"), + ) + + # build the PrChecker algorihm for forward track + forward_tracks = make_allen_forward_tracks() + links_to_forward_tracks = make_links_tracks_mcparticles( + InputTracks=forward_tracks, LinksToLHCbIDs=links_to_lhcbids) + + pr_checker_for_forward_track = monitor_tracking_efficiency( + TrackType="Forward", + InputTracks=forward_tracks, + LinksToTracks=links_to_forward_tracks, + LinksToLHCbIDs=links_to_lhcbids, + MCCategories=get_mc_categories("MuonMatch"), + HitTypesToCheck=get_hit_type_mask("BestLong"), + ) + + return Reconstruction( + 'muonideff', [pr_checker_for_forward_track, pr_checker_for_muon_id], + [require_gec()]) + + +options.histo_file = "PrChecker_MuonID.root" +run_reconstruction(options, hlt1_reco_allen_muonid_efficiency) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index e829efb0279..4cd1ecdb888 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -64,7 +64,16 @@ def make_allen_forward_tracks(): InputTracksName=forward_tracks_v2).OutputTracksName return {"v2": forward_tracks_v2, "v1": forward_tracks_v1} + +def make_allen_forward_muon_tracks(): + allen_output = make_allen_output() + forward_muon_tracks_v2 = AllenForwardToV2Tracks( + AllenOutput=allen_output).OutputMuonTracks + forward_muon_tracks_v1 = FromV2TrackV1Track( + InputTracksName=forward_muon_tracks_v2).OutputTracksName + return {"v2": forward_muon_tracks_v2, "v1": forward_muon_tracks_v1} + def make_allen_tracks(): velo_tracks = make_allen_velo_tracks() -- GitLab From 9408546ae373e56c04287760717020f522a72cb3 Mon Sep 17 00:00:00 2001 From: Roel Aaij Date: Wed, 19 Feb 2020 13:47:18 +0100 Subject: [PATCH 074/199] Decode only HLT1 DecReports. --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 4cd1ecdb888..53c4ff579e7 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -20,6 +20,7 @@ from PyConf.Algorithms import (LHCb__Converters__Track__v1__fromV2TrackV1Track AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder + @configurable def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): return DumpRawBanks( @@ -27,6 +28,7 @@ def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): ODINLocation=odin_location(), DumpToFile=False).AllenRawInput + def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks, filter_hlt1=False): @@ -64,7 +66,8 @@ def make_allen_forward_tracks(): InputTracksName=forward_tracks_v2).OutputTracksName return {"v2": forward_tracks_v2, "v1": forward_tracks_v1} - + + def make_allen_forward_muon_tracks(): allen_output = make_allen_output() forward_muon_tracks_v2 = AllenForwardToV2Tracks( @@ -73,7 +76,7 @@ def make_allen_forward_muon_tracks(): InputTracksName=forward_muon_tracks_v2).OutputTracksName return {"v2": forward_muon_tracks_v2, "v1": forward_muon_tracks_v1} - + def make_allen_tracks(): velo_tracks = make_allen_velo_tracks() @@ -94,7 +97,6 @@ def make_allen_pvs(): def make_allen_dec_reports(): allen_output = make_allen_output() - allen_dec_reports_raw = AllenDecReportsToTES(AllenOutput=allen_output).OutputDecReports - return HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw).OutputHltDecReportsLocation - - + allen_dec_reports_raw = AllenDecReportsToTES( + AllenOutput=allen_output).OutputDecReports + return HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation -- GitLab From 1ff832b8c52552e0394f3f4200b0e46016bb2a62 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 19 Feb 2020 12:48:22 +0000 Subject: [PATCH 075/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7264657 --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 3 +-- .../options/hlt1_reco_allen_IPresolution.py | 7 +++---- .../options/hlt1_reco_allen_muonid_efficiency.py | 8 ++++---- .../options/hlt1_reco_allen_trackresolution.py | 1 + Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 15 +++++++++------ Hlt/RecoConf/python/RecoConf/standalone.py | 7 +++++-- 6 files changed, 23 insertions(+), 18 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 6753709704d..d525b0c0399 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -20,8 +20,7 @@ def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) pvs = make_pvs() - pr_checker = monitor_IPresolution(fitted_tracks["v1"], - pvs, + pr_checker = monitor_IPresolution(fitted_tracks["v1"], pvs, hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py index cfad3cd96ce..0398d3973a0 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py @@ -20,15 +20,16 @@ from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import AllenUpdater + def hlt1_reco_allen_IPresolution(): allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() - pr_checker = monitor_IPresolution(allen_tracks["Forward"]["v1"], - allen_pvs, + pr_checker = monitor_IPresolution(allen_tracks["Forward"]["v1"], allen_pvs, allen_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) + options.histo_file = "AllenQuantities.root" run_reconstruction(options, hlt1_reco_allen_IPresolution) @@ -50,5 +51,3 @@ producers = [ ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers - - diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py index 185ac820c9b..4893320ef90 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py @@ -22,7 +22,8 @@ from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks -from RecoConf.hlt1_allen import (make_allen_forward_tracks, make_allen_forward_muon_tracks) +from RecoConf.hlt1_allen import (make_allen_forward_tracks, + make_allen_forward_muon_tracks) from Hlt1Conf.algorithms import Filter @@ -34,7 +35,6 @@ from PyConf.Algorithms import ( LHCb__Converters__Track__v2__fromPrFittedForwardTrackWithMuonID as trackV2FromPrFittedForwardTrackWithMuonID) - producers = [ p(DumpToFile=False) for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, @@ -47,6 +47,7 @@ ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers + def hlt1_reco_allen_muonid_efficiency(): # get the fitted tracks with muon ID forward_muon_tracks = make_allen_forward_muon_tracks() @@ -55,8 +56,7 @@ def hlt1_reco_allen_muonid_efficiency(): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() # make links between tracks and mcparticles for mc matching links_to_tracks_muon_id = make_links_tracks_mcparticles( - InputTracks=forward_muon_tracks, - LinksToLHCbIDs=links_to_lhcbids) + InputTracks=forward_muon_tracks, LinksToLHCbIDs=links_to_lhcbids) # build the PrChecker algorihm for muon_id track pr_checker_for_muon_id = monitor_tracking_efficiency( diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py index a7b342b4ad8..7cf6d85fd1a 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py @@ -19,6 +19,7 @@ from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import AllenUpdater + def hlt1_reco_allen_trackresolution(): track_type = "Forward" tracks = make_allen_tracks()[track_type] diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 53c4ff579e7..391461b636c 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -14,10 +14,10 @@ from PyConf.application import default_raw_event, make_odin from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) -from PyConf.Algorithms import (LHCb__Converters__Track__v1__fromV2TrackV1Track - as FromV2TrackV1Track, AllenVeloToV2Tracks, - AllenUTToV2Tracks, AllenForwardToV2Tracks, - AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) +from PyConf.Algorithms import ( + LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, + AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, + AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder @@ -37,7 +37,8 @@ def make_allen_output(odin_location=make_odin, ODINLocation=odin_location(), filter_HLT1=filter_hlt1, ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", - JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json").AllenOutput + JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json" + ).AllenOutput def make_allen_velo_tracks(): @@ -99,4 +100,6 @@ def make_allen_dec_reports(): allen_output = make_allen_output() allen_dec_reports_raw = AllenDecReportsToTES( AllenOutput=allen_output).OutputDecReports - return HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation + return HltDecReportsDecoder( + RawEventLocations=allen_dec_reports_raw, + SourceID=1).OutputHltDecReportsLocation diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 576696fce39..c4f4b389d9f 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -71,6 +71,7 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) + @configurable def standalone_hlt1_reco_and_allen(do_mc_checking=False): """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional both with the baseline and the Allen sequence @@ -92,7 +93,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): # Allen hlt1 allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() - + if do_mc_checking: types_and_locations_for_checkers = { "Velo": allen_tracks["Velo"], @@ -104,6 +105,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) + def standalone_hlt1_allen(): """ Run the Allen HLT1 sequence Returns: @@ -112,7 +114,8 @@ def standalone_hlt1_allen(): """ # Allen hlt1 allen_dec_reports_raw = make_allen_dec_reports() - allen_dec_reports = HltDecReportsDecoder(RawEventLocations=allen_dec_reports_raw) + allen_dec_reports = HltDecReportsDecoder( + RawEventLocations=allen_dec_reports_raw) data = [allen_dec_reports] return CompositeNode( -- GitLab From 0a1f63d4051ac9eeb61b82c08aca02b442c8d77a Mon Sep 17 00:00:00 2001 From: Florian Reiss Date: Fri, 21 Feb 2020 11:06:57 +0100 Subject: [PATCH 076/199] remove MooreCache --- .../options/default_input_and_conds_hlt1.py | 2 +- MooreCache/CMakeLists.txt | 56 ------------------- MooreCache/options/process_zero_events.py | 12 ---- .../options/silence_application_manager.py | 16 ------ 4 files changed, 1 insertion(+), 85 deletions(-) delete mode 100644 MooreCache/CMakeLists.txt delete mode 100644 MooreCache/options/process_zero_events.py delete mode 100644 MooreCache/options/silence_application_manager.py diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 796c9860834..8da7b5b7df0 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") -options.evt_max = 10 +options.evt_max = 1000 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/MooreCache/CMakeLists.txt b/MooreCache/CMakeLists.txt deleted file mode 100644 index 10a8126ede5..00000000000 --- a/MooreCache/CMakeLists.txt +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################### -# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -gaudi_subdir(MooreCache) - -gaudi_depends_on_subdirs(Hlt/Hlt1Conf - Phys/FunctorCore) - -# Suppress compilation warnings from external packages -find_package(Boost) -find_package(ROOT) -include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}) - -# Import the cache creation module -include(LoKiFunctorsCache) - -# Allow build in satellite (lb-dev) projects -if(TARGET MooreConfUserDB) - set(conf_deps DEPENDS MooreConfUserDB) -endif() - -# Disable LoKi-specific hacks in LoKiFunctorsCachePostActionOpts.py -# Save the old value so we don't change the behaviour elsewhere. -set(LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS_TMP ${LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS}) -set(LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS "") - -loki_functors_cache(Moore_FunctorCache_Hlt1 - ${REC_ROOT_DIR}/Phys/FunctorCache/options/DisableLoKiCacheFunctors.py - ${Moore_SOURCE_DIR}/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py - ${Moore_SOURCE_DIR}/MooreCache/options/process_zero_events.py - ${Moore_SOURCE_DIR}/MooreCache/options/silence_application_manager.py - ${Moore_SOURCE_DIR}/Hlt/Hlt1Conf/options/hlt1_pp_default.py - FACTORIES FunctorFactory - LINK_LIBRARIES FunctorCoreLib - ${conf_deps} - SPLIT 15) - -loki_functors_cache(Moore_FunctorCache_Hlt2_generic_lines - ${REC_ROOT_DIR}/Phys/FunctorCache/options/DisableLoKiCacheFunctors.py - ${Moore_SOURCE_DIR}/MooreCache/options/process_zero_events.py - ${Moore_SOURCE_DIR}/MooreCache/options/silence_application_manager.py - ${Moore_SOURCE_DIR}/Hlt/Hlt2Conf/options/generic_example.py - FACTORIES FunctorFactory - LINK_LIBRARIES FunctorCoreLib DaVinciKernelLib LoKiArrayFunctorsLib LoKiPhysLib - ${conf_deps} - SPLIT 15) - -# Restore the old value -set(LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS ${LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS_TMP}) diff --git a/MooreCache/options/process_zero_events.py b/MooreCache/options/process_zero_events.py deleted file mode 100644 index d2f06be43f3..00000000000 --- a/MooreCache/options/process_zero_events.py +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options -options.evt_max = 0 diff --git a/MooreCache/options/silence_application_manager.py b/MooreCache/options/silence_application_manager.py deleted file mode 100644 index a94aac4ef67..00000000000 --- a/MooreCache/options/silence_application_manager.py +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options -from Gaudi.Configuration import ERROR -import logging - -options.output_level = ERROR -options.python_logging_level = logging.ERROR -- GitLab From a8892d857efaaac6a1cf219efbf11d878791cefc Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 21 Feb 2020 16:00:04 +0100 Subject: [PATCH 077/199] adapt the PV input format for IP checker --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 7cd1ebfc2e0..b21619092ed 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -282,9 +282,9 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks, VeloTracks): - vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=make_pvs(), - InputTracksName=VeloTracks).OutputVerticesName + #vertexConverter = FromVectorLHCbRecVertex( + # InputVerticesName=make_pvs(), + # InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks, LinksToLHCbIDs=links_to_lhcbids) @@ -293,6 +293,6 @@ def monitor_IPresolution(InputTracks, VeloTracks): MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), LinkerLocation=links_to_tracks, - PVContainer=vertexConverter, + PVContainer=make_pvs(), NTupleLUN="FILE1") return IPres_checker -- GitLab From 5031c13b04aaf2d0e03b7f0abd975f21e9aceba4 Mon Sep 17 00:00:00 2001 From: Florian Reiss Date: Fri, 21 Feb 2020 18:34:55 +0100 Subject: [PATCH 078/199] fix include --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 9af625d5ea2..f2a0d9921c8 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -33,7 +33,7 @@ from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters) + make_velo_full_clusters, make_pvs) from Hlt2Conf.data_from_file import mc_unpackers -- GitLab From 60c1c72fa624f655a62ff72df1219fc00ec5cdf6 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Mon, 24 Feb 2020 11:32:06 +0000 Subject: [PATCH 079/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7313554 --- Hlt/RecoConf/python/RecoConf/standalone.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 805b9959583..4ac07266b26 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -65,7 +65,7 @@ def standalone_hlt1_reco(do_mc_checking=False): "Forward": hlt1_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) - + return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From 6317f6fec87313a5e060ad10c0cf80f58157547d Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Mon, 24 Feb 2020 16:38:54 +0100 Subject: [PATCH 080/199] add more cut catogeries --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 9 +-- .../python/RecoConf/mc_checking_categories.py | 20 +++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 5 +- MooreCache/CMakeLists.txt | 56 ------------------- MooreCache/options/process_zero_events.py | 12 ---- .../options/silence_application_manager.py | 16 ------ 6 files changed, 26 insertions(+), 92 deletions(-) delete mode 100644 MooreCache/CMakeLists.txt delete mode 100644 MooreCache/options/process_zero_events.py delete mode 100644 MooreCache/options/silence_application_manager.py diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 58f1676d5de..818ae8b5771 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -25,9 +25,6 @@ from PyConf.Algorithms import ( TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker) -from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex - -from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector @@ -110,7 +107,7 @@ def monitor_tracking_efficiency( LinksToLHCbIDs, MCCategories, HitTypesToCheck, - WriteHistos=1, + WriteHistos=2, ): """ Setup tracking efficiency checker @@ -282,6 +279,7 @@ def get_pv_checkers( inputVerticesName=pvs, inputTracksName=tracks["v1"], MCVertexInput=mc_unpackers()["MCVertices"], + MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), MCPropertyInput=make_data_with_FetchDataFromFile( "/Event/MC/TrackInfo")) @@ -310,9 +308,6 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks, VeloTracks): - #vertexConverter = FromVectorLHCbRecVertex( - # InputVerticesName=make_pvs(), - # InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks, LinksToLHCbIDs=links_to_lhcbids) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py b/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py index 586b86c400e..5eb906ac444 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py @@ -20,12 +20,17 @@ categories = { "04_long_strange": "isLong & strange", "05_long_strange_P>5GeV": "isLong & strange & over5", "06_long_fromB": "isLong & fromB", + "06_long_fromD": "isLong & fromD", "07_long_fromB_P>5GeV": "isLong & fromB & over5", + "07_long_fromD_P>5GeV": "isLong & fromD & over5", "08_long_electrons": "isLong & isElectron", "09_long_fromB_electrons": "isLong & isElectron & fromB", "10_long_fromB_electrons_P>5GeV": "isLong & isElectron & over5 & fromB", "11_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger", + "11_long_fromB_electrons_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isElectron", + "11_long_strange_P>3GeV_Pt>0.5GeV": "isLong & strange& trigger", + "11_long_fromD_P>3GeV_Pt>0.5GeV": "isLong & fromD & trigger", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isUT", }, "VeloFull": { @@ -116,12 +121,17 @@ categories = { "03_long_strange": "isLong & strange", "04_long_strange_P>5GeV": "isLong & strange & over5", "05_long_fromB": "isLong & fromB", + "05_long_fromD": "isLong & fromD", "06_long_fromB_P>5GeV": "isLong & fromB & over5", + "06_long_fromD_P>5GeV": "isLong & fromD & over5", "07_long_electrons": "isLong & isElectron", "08_long_fromB_electrons": "isLong & isElectron & fromB", "09_long_fromB_electrons_P>5GeV": "isLong & isElectron & over5 & fromB", "10_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger", + "10_long_fromB_electrons_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isElectron", + "10_long_strange_P>3GeV_Pt>0.5GeV": "isLong & strange & trigger", + "10_long_fromD_P>3GeV_Pt>0.5GeV": "isLong & fromD & trigger", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isUT", }, "Upstream": { @@ -132,14 +142,21 @@ categories = { "05_velo+UT+notLong": "isNotLong & isVelo & isUT", "06_velo+UT+notLong_P>5GeV": "isNotLong & isVelo & isUT & over5", "07_long": "isLong", + "07_long_strange": "isLong & strange", "08_long_P>5GeV": "isLong & over5 ", + "08_long_strange_P>5GeV": "isLong & over5 & strange", "09_long_fromB": "isLong & fromB", + "09_long_fromD": "isLong & fromD", "10_long_fromB_P>5GeV": "isLong & fromB & over5", + "10_long_fromD_P>5GeV": "isLong & fromD & over5", "11_long_electrons": "isLong & isElectron", "12_long_fromB_electrons": "isLong & isElectron & fromB", "13_long_fromB_electrons_P>5GeV": "isLong & isElectron & over5 & fromB", "14_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger", + "14_long_fromB_electrons_P>3GeV_Pt>0.5GeV": "isLong & fromB & isElectron & trigger", + "14_long_strange_P>3GeV_Pt>0.5GeV": "isLong & strange& trigger", + "14_long_fromD_P>3GeV_Pt>0.5GeV": "isLong & fromD & trigger", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isUT", }, "UpstreamForMuons": { @@ -150,8 +167,11 @@ categories = { "MuonMatch": { "01_long": "isLong", "02_long_muon": "isLong & isMuon", + "02_long_muon_p>3GeV_pt>0.5GeV": "isLong & isMuon & (MCPT>500) & (MCP>3000)", "03_long_muon_from_strange": "isLong & strange & isMuon", + "03_long_muon_strange_p>3GeV_pt>0.5GeV": "isLong & isMuon & (MCPT>500) & (MCP>3000) & strange", "04_long_pion": "isLong & isPion", + "04_long_pion_p>3GeV_pt>0.5GeV": "isLong & isPion & (MCPT>500) & (MCP>3000)", }, "MuonID": { "01_long": "isLong", diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 4ac07266b26..e4896f9571b 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -65,6 +65,9 @@ def standalone_hlt1_reco(do_mc_checking=False): "Forward": hlt1_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) + print hlt1_tracks["Velo"] + print pvs + #data += get_pv_checkers(pvs, hlt1_tracks["Velo"]) return Reconstruction('hlt1_reco', data, reco_prefilters()) @@ -98,7 +101,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): "Forward": allen_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) - data += get_pv_checkers(allen_pvs, allen_tracks["Velo"]) + #data += get_pv_checkers(allen_pvs, allen_tracks["Velo"]) return Reconstruction('hlt1_reco', data, reco_prefilters()) diff --git a/MooreCache/CMakeLists.txt b/MooreCache/CMakeLists.txt deleted file mode 100644 index 10a8126ede5..00000000000 --- a/MooreCache/CMakeLists.txt +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################### -# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -gaudi_subdir(MooreCache) - -gaudi_depends_on_subdirs(Hlt/Hlt1Conf - Phys/FunctorCore) - -# Suppress compilation warnings from external packages -find_package(Boost) -find_package(ROOT) -include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}) - -# Import the cache creation module -include(LoKiFunctorsCache) - -# Allow build in satellite (lb-dev) projects -if(TARGET MooreConfUserDB) - set(conf_deps DEPENDS MooreConfUserDB) -endif() - -# Disable LoKi-specific hacks in LoKiFunctorsCachePostActionOpts.py -# Save the old value so we don't change the behaviour elsewhere. -set(LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS_TMP ${LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS}) -set(LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS "") - -loki_functors_cache(Moore_FunctorCache_Hlt1 - ${REC_ROOT_DIR}/Phys/FunctorCache/options/DisableLoKiCacheFunctors.py - ${Moore_SOURCE_DIR}/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py - ${Moore_SOURCE_DIR}/MooreCache/options/process_zero_events.py - ${Moore_SOURCE_DIR}/MooreCache/options/silence_application_manager.py - ${Moore_SOURCE_DIR}/Hlt/Hlt1Conf/options/hlt1_pp_default.py - FACTORIES FunctorFactory - LINK_LIBRARIES FunctorCoreLib - ${conf_deps} - SPLIT 15) - -loki_functors_cache(Moore_FunctorCache_Hlt2_generic_lines - ${REC_ROOT_DIR}/Phys/FunctorCache/options/DisableLoKiCacheFunctors.py - ${Moore_SOURCE_DIR}/MooreCache/options/process_zero_events.py - ${Moore_SOURCE_DIR}/MooreCache/options/silence_application_manager.py - ${Moore_SOURCE_DIR}/Hlt/Hlt2Conf/options/generic_example.py - FACTORIES FunctorFactory - LINK_LIBRARIES FunctorCoreLib DaVinciKernelLib LoKiArrayFunctorsLib LoKiPhysLib - ${conf_deps} - SPLIT 15) - -# Restore the old value -set(LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS ${LOKI_FUNCTORS_CACHE_POST_ACTION_OPTS_TMP}) diff --git a/MooreCache/options/process_zero_events.py b/MooreCache/options/process_zero_events.py deleted file mode 100644 index d2f06be43f3..00000000000 --- a/MooreCache/options/process_zero_events.py +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options -options.evt_max = 0 diff --git a/MooreCache/options/silence_application_manager.py b/MooreCache/options/silence_application_manager.py deleted file mode 100644 index a94aac4ef67..00000000000 --- a/MooreCache/options/silence_application_manager.py +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options -from Gaudi.Configuration import ERROR -import logging - -options.output_level = ERROR -options.python_logging_level = logging.ERROR -- GitLab From 36aaacd7656443a1cbaa78d3aabbef2032222141 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Mon, 24 Feb 2020 15:39:52 +0000 Subject: [PATCH 081/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7318169 --- .../python/RecoConf/mc_checking_categories.py | 177 ++++++++++++------ 1 file changed, 118 insertions(+), 59 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py b/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py index 5eb906ac444..b6d4aea5975 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py @@ -14,24 +14,40 @@ from collections import OrderedDict categories = { "Velo": { - "01_velo": "isVelo", - "02_long": "isLong", - "03_long_P>5GeV": "isLong & over5", - "04_long_strange": "isLong & strange", - "05_long_strange_P>5GeV": "isLong & strange & over5", - "06_long_fromB": "isLong & fromB", - "06_long_fromD": "isLong & fromD", - "07_long_fromB_P>5GeV": "isLong & fromB & over5", - "07_long_fromD_P>5GeV": "isLong & fromD & over5", - "08_long_electrons": "isLong & isElectron", - "09_long_fromB_electrons": "isLong & isElectron & fromB", + "01_velo": + "isVelo", + "02_long": + "isLong", + "03_long_P>5GeV": + "isLong & over5", + "04_long_strange": + "isLong & strange", + "05_long_strange_P>5GeV": + "isLong & strange & over5", + "06_long_fromB": + "isLong & fromB", + "06_long_fromD": + "isLong & fromD", + "07_long_fromB_P>5GeV": + "isLong & fromB & over5", + "07_long_fromD_P>5GeV": + "isLong & fromD & over5", + "08_long_electrons": + "isLong & isElectron", + "09_long_fromB_electrons": + "isLong & isElectron & fromB", "10_long_fromB_electrons_P>5GeV": "isLong & isElectron & over5 & fromB", - "11_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger", - "11_long_fromB_electrons_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isElectron", - "11_long_strange_P>3GeV_Pt>0.5GeV": "isLong & strange& trigger", - "11_long_fromD_P>3GeV_Pt>0.5GeV": "isLong & fromD & trigger", - "12_UT_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isUT", + "11_long_fromB_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger", + "11_long_fromB_electrons_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger & isElectron", + "11_long_strange_P>3GeV_Pt>0.5GeV": + "isLong & strange& trigger", + "11_long_fromD_P>3GeV_Pt>0.5GeV": + "isLong & fromD & trigger", + "12_UT_long_fromB_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger & isUT", }, "VeloFull": { "01_notElectron_Velo": @@ -116,48 +132,84 @@ categories = { "isElectron & isLong & strange & (MCETA>2.0) & (MCETA<5.0) & (MCP>3000) & (MCPT>400)" }, "Forward": { - "01_long": "isLong", - "02_long_P>5GeV": "isLong & over5", - "03_long_strange": "isLong & strange", - "04_long_strange_P>5GeV": "isLong & strange & over5", - "05_long_fromB": "isLong & fromB", - "05_long_fromD": "isLong & fromD", - "06_long_fromB_P>5GeV": "isLong & fromB & over5", - "06_long_fromD_P>5GeV": "isLong & fromD & over5", - "07_long_electrons": "isLong & isElectron", - "08_long_fromB_electrons": "isLong & isElectron & fromB", + "01_long": + "isLong", + "02_long_P>5GeV": + "isLong & over5", + "03_long_strange": + "isLong & strange", + "04_long_strange_P>5GeV": + "isLong & strange & over5", + "05_long_fromB": + "isLong & fromB", + "05_long_fromD": + "isLong & fromD", + "06_long_fromB_P>5GeV": + "isLong & fromB & over5", + "06_long_fromD_P>5GeV": + "isLong & fromD & over5", + "07_long_electrons": + "isLong & isElectron", + "08_long_fromB_electrons": + "isLong & isElectron & fromB", "09_long_fromB_electrons_P>5GeV": "isLong & isElectron & over5 & fromB", - "10_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger", - "10_long_fromB_electrons_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isElectron", - "10_long_strange_P>3GeV_Pt>0.5GeV": "isLong & strange & trigger", - "10_long_fromD_P>3GeV_Pt>0.5GeV": "isLong & fromD & trigger", - "11_UT_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isUT", + "10_long_fromB_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger", + "10_long_fromB_electrons_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger & isElectron", + "10_long_strange_P>3GeV_Pt>0.5GeV": + "isLong & strange & trigger", + "10_long_fromD_P>3GeV_Pt>0.5GeV": + "isLong & fromD & trigger", + "11_UT_long_fromB_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger & isUT", }, "Upstream": { - "01_velo": "isVelo", - "02_velo+UT": "isVelo & isUT", - "03_velo+UT_P>5GeV": "isVelo & isUT & over5", - "04_velo+notLong": "isNotLong & isVelo ", - "05_velo+UT+notLong": "isNotLong & isVelo & isUT", - "06_velo+UT+notLong_P>5GeV": "isNotLong & isVelo & isUT & over5", - "07_long": "isLong", - "07_long_strange": "isLong & strange", - "08_long_P>5GeV": "isLong & over5 ", - "08_long_strange_P>5GeV": "isLong & over5 & strange", - "09_long_fromB": "isLong & fromB", - "09_long_fromD": "isLong & fromD", - "10_long_fromB_P>5GeV": "isLong & fromB & over5", - "10_long_fromD_P>5GeV": "isLong & fromD & over5", - "11_long_electrons": "isLong & isElectron", - "12_long_fromB_electrons": "isLong & isElectron & fromB", + "01_velo": + "isVelo", + "02_velo+UT": + "isVelo & isUT", + "03_velo+UT_P>5GeV": + "isVelo & isUT & over5", + "04_velo+notLong": + "isNotLong & isVelo ", + "05_velo+UT+notLong": + "isNotLong & isVelo & isUT", + "06_velo+UT+notLong_P>5GeV": + "isNotLong & isVelo & isUT & over5", + "07_long": + "isLong", + "07_long_strange": + "isLong & strange", + "08_long_P>5GeV": + "isLong & over5 ", + "08_long_strange_P>5GeV": + "isLong & over5 & strange", + "09_long_fromB": + "isLong & fromB", + "09_long_fromD": + "isLong & fromD", + "10_long_fromB_P>5GeV": + "isLong & fromB & over5", + "10_long_fromD_P>5GeV": + "isLong & fromD & over5", + "11_long_electrons": + "isLong & isElectron", + "12_long_fromB_electrons": + "isLong & isElectron & fromB", "13_long_fromB_electrons_P>5GeV": "isLong & isElectron & over5 & fromB", - "14_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger", - "14_long_fromB_electrons_P>3GeV_Pt>0.5GeV": "isLong & fromB & isElectron & trigger", - "14_long_strange_P>3GeV_Pt>0.5GeV": "isLong & strange& trigger", - "14_long_fromD_P>3GeV_Pt>0.5GeV": "isLong & fromD & trigger", - "15_UT_long_fromB_P>3GeV_Pt>0.5GeV": "isLong & fromB & trigger & isUT", + "14_long_fromB_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger", + "14_long_fromB_electrons_P>3GeV_Pt>0.5GeV": + "isLong & fromB & isElectron & trigger", + "14_long_strange_P>3GeV_Pt>0.5GeV": + "isLong & strange& trigger", + "14_long_fromD_P>3GeV_Pt>0.5GeV": + "isLong & fromD & trigger", + "15_UT_long_fromB_P>3GeV_Pt>0.5GeV": + "isLong & fromB & trigger & isUT", }, "UpstreamForMuons": { "01_long_muon": "isLong & isMuon", @@ -165,13 +217,20 @@ categories = { "03_long_pion": "isLong & isPion", }, "MuonMatch": { - "01_long": "isLong", - "02_long_muon": "isLong & isMuon", - "02_long_muon_p>3GeV_pt>0.5GeV": "isLong & isMuon & (MCPT>500) & (MCP>3000)", - "03_long_muon_from_strange": "isLong & strange & isMuon", - "03_long_muon_strange_p>3GeV_pt>0.5GeV": "isLong & isMuon & (MCPT>500) & (MCP>3000) & strange", - "04_long_pion": "isLong & isPion", - "04_long_pion_p>3GeV_pt>0.5GeV": "isLong & isPion & (MCPT>500) & (MCP>3000)", + "01_long": + "isLong", + "02_long_muon": + "isLong & isMuon", + "02_long_muon_p>3GeV_pt>0.5GeV": + "isLong & isMuon & (MCPT>500) & (MCP>3000)", + "03_long_muon_from_strange": + "isLong & strange & isMuon", + "03_long_muon_strange_p>3GeV_pt>0.5GeV": + "isLong & isMuon & (MCPT>500) & (MCP>3000) & strange", + "04_long_pion": + "isLong & isPion", + "04_long_pion_p>3GeV_pt>0.5GeV": + "isLong & isPion & (MCPT>500) & (MCP>3000)", }, "MuonID": { "01_long": "isLong", -- GitLab From a292597ab23ebecf7a81001361906cb53ba9e349 Mon Sep 17 00:00:00 2001 From: Peilian Li Date: Mon, 24 Feb 2020 16:54:50 +0100 Subject: [PATCH 082/199] to keep the same format as previous --- Hlt/RecoConf/python/RecoConf/mc_checking_categories.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py b/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py index b6d4aea5975..809366bad19 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking_categories.py @@ -221,15 +221,15 @@ categories = { "isLong", "02_long_muon": "isLong & isMuon", - "02_long_muon_p>3GeV_pt>0.5GeV": + "02_long_muon_P>3GeV_Pt>0.5GeV": "isLong & isMuon & (MCPT>500) & (MCP>3000)", "03_long_muon_from_strange": "isLong & strange & isMuon", - "03_long_muon_strange_p>3GeV_pt>0.5GeV": + "03_long_muon_strange_P>3GeV_Pt>0.5GeV": "isLong & isMuon & (MCPT>500) & (MCP>3000) & strange", "04_long_pion": "isLong & isPion", - "04_long_pion_p>3GeV_pt>0.5GeV": + "04_long_pion_P>3GeV_Pt>0.5GeV": "isLong & isPion & (MCPT>500) & (MCP>3000)", }, "MuonID": { -- GitLab From 08fa1f4a2600594fa5bba9248ed777a2ddf6acc1 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 24 Feb 2020 17:01:46 +0100 Subject: [PATCH 083/199] clean up old way of calling pv checker --- Hlt/RecoConf/python/RecoConf/standalone.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 4ac07266b26..5fd1c3ccf8f 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -98,7 +98,6 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): "Forward": allen_tracks["Forward"], } data += get_track_checkers(types_and_locations_for_checkers) - data += get_pv_checkers(allen_pvs, allen_tracks["Velo"]) return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From 51ee905f16f66e467a7393145fc89404e227ba91 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 24 Feb 2020 17:46:17 +0100 Subject: [PATCH 084/199] add options script for Allen PV checking --- .../options/hlt1_reco_allen_pvchecker.py | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py new file mode 100644 index 00000000000..3f2244ffaab --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py @@ -0,0 +1,52 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec +from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs +from RecoConf.mc_checking import get_pv_checkers, get_track_checkers +from Configurables import ApplicationMgr +from Configurables import NTupleSvc +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import AllenUpdater + +def hlt1_reco_pvchecker(): + + allen_tracks = make_allen_tracks() + allen_pvs = make_allen_pvs() + + data = [allen_pvs] + data += get_pv_checkers(allen_pvs, allen_tracks["Velo"], produce_ntuple=True) + + return Reconstruction('PVperformance', data, [require_gec()]) + + +run_reconstruction(options, hlt1_reco_pvchecker) + +NTupleSvc().Output += [ + "FILE1 DATAFILE='Hlt1_PVperformance.root' TYPE='ROOT' OPT='NEW'" +] +ApplicationMgr().ExtSvc += [NTupleSvc()] +ApplicationMgr().HistogramPersistency = "ROOT" + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers -- GitLab From e12c59caa83e54444ccffa9ba18914ab24f8f20c Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 25 Feb 2020 15:37:42 +0100 Subject: [PATCH 085/199] add muonid efficiency plotting scripts --- .../hlt1_reco_baseline_with_mcchecking.py | 2 + Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 195 ++++++++++++++++++ Hlt/RecoConf/scripts/utils/ConfigHistos.py | 107 +++++++--- 3 files changed, 275 insertions(+), 29 deletions(-) create mode 100644 Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py index 6a3072e8c6f..6e154957e5b 100644 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py @@ -13,3 +13,5 @@ from RecoConf.standalone import standalone_hlt1_reco with standalone_hlt1_reco.bind(do_mc_checking=True): run_reconstruction(options, standalone_hlt1_reco) + +options.histo_file = "MCMatching_MiniBias.root" diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py new file mode 100644 index 00000000000..1a3213626bc --- /dev/null +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -0,0 +1,195 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +#!/usr/bin/python + +# Script for accessing histograms of reconstructible and +# reconstructed tracks for different tracking categories +# created by hlt1_reco_baseline_with_mcchecking.py and +# hlt1_reco_baseline_and_Allen_with_mcchecking.py +# +# The efficency is calculated usig TGraphAsymmErrors +# and Bayesian error bars +# +# author: Dorothea vom Bruch (dorothea.vom.bruch@cern.ch) +# date: 10/2018 +# updated by Peilian Li +# + +import os, sys +import argparse +import ROOT +from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TPad +from ROOT import gROOT, gStyle, TStyle, TPaveText, TH1F +from ROOT import ROOT, TH1D, TH1F, TGraphAsymmErrors +import logging +import subprocess + + +def getEfficiencyHistoNames(): + return ["eta", "p", "pt", "phi", "nPV"] + +def getOriginFolders(): + basedict = {"Forward": {}, "MuonMatch":{}} + basedict["Forward"]["folder"] = "ForwardTrackChecker/" + basedict["MuonMatch"]["folder"] = "MuonMatchTrackChecker/" + + return basedict + + +def getGhostHistoNames(): + return ["eta", "nPV", "pt", "p", "phi"] + + +def argument_parser(): + parser = argparse.ArgumentParser(description="location of the tuple file") + parser.add_argument( + '--directory', + type=str, + default=os.getcwd(), + help='location of input tuple files') + parser.add_argument( + '--mode', type=str, default='', help='name of decay mode') + parser.add_argument( + '--output', type=str, default='efficiency_plots_', help='name of output file') + parser.add_argument( + '--plotstyle', + default=os.getcwd(), + help='location of LHCb utils plot style file') + return parser + + +def PrCheckerEfficiency(directory, mode, output, plotstyle): + sys.path.append(os.path.abspath(plotstyle)) + from utils.LHCbStyle import setLHCbStyle + from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, + categoriesDict, getCuts) + from utils.Legend import place_legend + setLHCbStyle() + + f_CPU = TFile(directory + "/PrChecker_MuonID" + mode+ ".root", "read") + outputfile = TFile(directory + "/"+output + mode+ ".root", "recreate") + + latex = TLatex() + latex.SetNDC() + latex.SetTextSize(0.055) + + efficiencyHistoDict = efficiencyHistoDict() + efficiencyHistos = getEfficiencyHistoNames() + ghostHistos = getGhostHistoNames() + ghostHistoDict = ghostHistoDict() + categories = categoriesDict() + cuts = getCuts() + folders = getOriginFolders() + + tracker="MuonMatch" + outputfile.cd() + trackerDir = outputfile.mkdir(tracker) + trackerDir.cd() + + for cut in cuts[tracker]: + cutDir = trackerDir.mkdir(cut) + cutDir.cd() + folder = folders[tracker]["folder"] + print(folder) + histoBaseName = "Track/" + folder + tracker + "/" + cut + "_" + histoBaseName_den = "Track/" + "ForwardTrackChecker/Forward/" + cut + "_" + + # calculate efficiency + for histo in efficiencyHistos: + title = "efficiency vs. " + histo + ", " + categories[tracker][cut]["title"] + name = "efficiency_" + histo + canvas = TCanvas(name, title) + + # get efficiency for not electrons category + histoName = histoBaseName + "" + efficiencyHistoDict[histo]["variable"] + histoName_den = histoBaseName_den + "" + efficiencyHistoDict[histo]["variable"] + print("not electrons: " + histoName) + numeratorName = histoName + "_reconstructed" + numerator_CPU = TH1D() + numerator_CPU = f_CPU.Get(numeratorName) + denominatorName = histoName_den + "_reconstructed" + denominator_CPU = TH1D() + denominator_CPU = f_CPU.Get(denominatorName) + if numerator_CPU.GetEntries() == 0 or denominator_CPU.GetEntries() == 0: + continue + + numerator_CPU.Sumw2() + denominator_CPU.Sumw2() + + g_efficiency_CPU = TGraphAsymmErrors() + g_efficiency_CPU.SetName("g_efficiency_notElectrons") + g_efficiency_CPU.Divide(numerator_CPU, denominator_CPU, "cl=0.683 b(1,1) mode") + g_efficiency_CPU.SetTitle("Baseline") + if (histoName.find('strange') != -1): + g_efficiency_CPU.SetTitle("Baseline, from stranges") + g_efficiency_CPU.SetMarkerStyle(20) + + h_denominator_CPU = denominator_CPU.Clone() + h_denominator_CPU.SetName("h_denominator_notElectrons") + h_denominator_CPU.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. forward reconstructed") + if (histoName.find('strange') != -1): + h_denominator_CPU.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. strange, forward reconstructed") + + #draw them both if there is ref + mg = TMultiGraph() + mg.Add(g_efficiency_CPU) + mg.Draw("ap") + xtitle = efficiencyHistoDict[histo]["xTitle"] + mg.GetXaxis().SetTitle(xtitle) + mg.GetYaxis().SetTitle("Efficiency") + mg.GetYaxis().SetRangeUser(0, 1.05) + + mg.SetName("efficiency vs. " + histo) + mg.SetTitle(tracker + " " + cut) + + if histo == "p": + mg.GetXaxis().SetRangeUser(0, 50000) + if histo == "pt": + mg.GetXaxis().SetRangeUser(0, 5000) + if histo == "eta": + mg.GetXaxis().SetRangeUser(2, 5) + scale_cpu = 1.0 /h_denominator_CPU.GetMaximum() + h_denominator_CPU.Scale(scale_cpu) + h_denominator_CPU.SetFillStyle(3004) + h_denominator_CPU.SetFillColor(kBlue-10) + h_denominator_CPU.SetLineColor(kBlue - 10) + h_denominator_CPU.SetLineWidth(2) + h_denominator_CPU.Draw("hist same") + + canvas.PlaceLegend() + cutName = categories[tracker][cut]["title"] + latex.DrawLatex(0.35,0.3, cutName) + latex.DrawLatex(0.35,0.4, "LHCb simulation") + + canvas.SetRightMargin(0.05) + canvas.Write() + + #print the muonID efficiency in each p bin + if histo == "p": + for i in range(1, numerator_CPU.GetNbinsX()): + if denominator_CPU.GetBinContent(i) == 0: + continue + Eff = numerator_CPU.GetBinContent(i) / (denominator_CPU.GetBinContent(i) + 0.0) + print("Efficiency of muon ID in (" + + format(numerator_CPU.GetBinLowEdge(i), '.2f') + ", " + format( + numerator_CPU.GetBinLowEdge(i) + numerator_CPU.GetBinWidth(i), '.2f') + + ") [GeV/c] : " + format(Eff, '.2%')) + + outputfile.Write() + outputfile.Close() + f_CPU.Close() + + +if __name__ == '__main__': + parser = argument_parser() + args = parser.parse_args() + PrCheckerEfficiency(**vars(args)) diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 6020b49c340..7c3cfa3a6a8 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -62,22 +62,30 @@ def ghostHistoDict(): def getCuts(): - basedict = {"Velo": {}, "Upstream": {}, "Forward": {}} + basedict = {"Velo": {}, "Upstream": {}, "Forward": {}, "MuonMatch":{} } basedict["Velo"] = [ "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", - "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV", + "11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", "06_long_fromD" ] basedict["Upstream"] = [ "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", - "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV", + "09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", "14_long_strange_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", "04_long_strange_P>5GeV", "05_long_fromB", "06_long_fromB_P>5GeV", - "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV", + "05_long_fromD", "10_long_fromD_P>3GeV_Pt>0.5GeV", + "10_long_strange_P>3GeV_Pt>0.5GeV" + ] + basedict["MuonMatch"] = [ + "02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", + "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" ] return basedict @@ -86,28 +94,44 @@ def getCuts(): def categoriesDict(): basedict = defaultdict(lambda: defaultdict(dict)) - basedict["Velo"]["01_velo"]["title"] = "Velo, 2 < eta < 5" - basedict["Velo"]["02_long"]["title"] = "Long, 2 < eta < 5" - basedict["Velo"]["03_long_P>5GeV"]["title"] = "Long, p>5GeV, 2 < eta < 5" + basedict["MuonMatch"]["01_long"]["title"] = "Long, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["02_long_muon"]["title"] = "Long, #mu, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["02_long_muon_P>3GeV_Pt>0.5GeV"]["title"] = "Long, #mu, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" + basedict["MuonMatch"]["03_long_from_strange"]["title"] = "Long, #mu from strange, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["03_long_from_strange_P>3GeV_Pt>0.5GeV"]["title"] = "Long, #mu from strange, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" + basedict["MuonMatch"]["04_long_pion"]["title"] = "Long, #pi, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["04_long_pion_P>3GeV_Pt>0.5GeV"]["title"] = "Long, #pi, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" + + basedict["Velo"]["01_velo"]["title"] = "Velo, 2 <#eta< 5" + basedict["Velo"]["02_long"]["title"] = "Long, 2 <#eta< 5" + basedict["Velo"]["03_long_P>5GeV"]["title"] = "Long, p>5GeV, 2<#eta< 5" basedict["Velo"]["04_long_strange"][ - "title"] = "Long, from Strange, 2 < eta < 5" + "title"] = "Long, from Strange, 2 <#eta < 5" basedict["Velo"]["05_long_strange_P>5GeV"][ - "title"] = "Long, from Strange, p>5GeV, 2 < eta < 5" - basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 25GeV"][ - "title"] = "Long from B, p>5GeV, 23GeV_Pt>0.5GeV"][ - "title"] = "Long from B, p>3GeV, pt>0.5GeV, electron" + "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2<#eta<5" + basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long from D, p>3GeV, pt>0.5GeV, 2<#eta<5" + basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2<#eta<5" basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ - "title"] = "UT Long, from B, p>3GeV, pt>0.5GeV" + "title"] = "UT Long, from B, p>3GeV, pt>0.5GeV, 2<#eta<5" basedict["Velo"]["01_velo"]["plotElectrons"] = False basedict["Velo"]["02_long"]["plotElectrons"] = True basedict["Velo"]["03_long_P>5GeV"]["plotElectrons"] = False basedict["Velo"]["04_long_strange"]["plotElectrons"] = False basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True + basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -115,19 +139,25 @@ def categoriesDict(): basedict["Velo"]["06_long_fromB"]["Electrons"] = "09_long_fromB_electrons" basedict["Velo"]["07_long_fromB_P>5GeV"][ "Electrons"] = "10_long_fromB_electrons_P>5GeV" + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["Electrons"] = "11_long_fromB_electrons_P>3GeV_Pt>0.5GeV" - basedict["Upstream"]["01_velo"]["title"] = "Velo, 2 < eta < 5" - basedict["Upstream"]["02_velo+UT"]["title"] = "VeloUT, 2 < eta < 5" + basedict["Upstream"]["01_velo"]["title"] = "Velo, 2 <#eta < 5" + basedict["Upstream"]["02_velo+UT"]["title"] = "VeloUT, 2 <#eta < 5" basedict["Upstream"]["03_velo+UT_P>5GeV"][ - "title"] = "VeloUT, p>5GeV, 2 < eta < 5" - basedict["Upstream"]["07_long"]["title"] = "Long, 2 < eta < 5" + "title"] = "VeloUT, p>5GeV, 2 <#eta < 5" + basedict["Upstream"]["07_long"]["title"] = "Long, 2 <#eta < 5" basedict["Upstream"]["08_long_P>5GeV"][ - "title"] = "Long, p>5GeV, 2 < eta < 5" - basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 < eta < 5" + "title"] = "Long, p>5GeV, 2 <#eta < 5" + basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 <#eta < 5" + basedict["Upstream"]["09_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Upstream"]["10_long_fromB_P>5GeV"][ - "title"] = "Long from B, p>5GeV, 2 < eta < 5" + "title"] = "Long from B, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, from B, p>3GeV, pt>0.5GeV" + basedict["Upstream"]["14_long_fromD_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, from D, p>3GeV, pt>0.5GeV" + basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, from strange, p>3GeV, pt>0.5GeV" basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, from B, p>3GeV, pt>0.5GeV" @@ -137,8 +167,13 @@ def categoriesDict(): basedict["Upstream"]["07_long"]["plotElectrons"] = True basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True + basedict["Upstream"]["09_long_fromD"]["plotElectrons"] = False basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = True + basedict["Upstream"]["14_long_fromD_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False + basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -147,29 +182,41 @@ def categoriesDict(): "Electrons"] = "12_long_fromB_electrons" basedict["Upstream"]["10_long_fromB_P>5GeV"][ "Electrons"] = "13_long_fromB_electrons_P>5GeV" + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ + "Electrons"] = "14_long_fromB_electrons_P>3GeV_Pt>0.5GeV" - basedict["Forward"]["01_long"]["title"] = "Long, 2 < eta < 5" + basedict["Forward"]["01_long"]["title"] = "Long, 2 <#eta < 5" basedict["Forward"]["02_long_P>5GeV"][ - "title"] = "Long, p>5GeV, 2 < eta < 5" + "title"] = "Long, p>5GeV, 2 <#eta < 5" basedict["Forward"]["03_long_strange"][ - "title"] = "Long, from strange, 2 < eta < 5" + "title"] = "Long, from strange, 2 <#eta < 5" basedict["Forward"]["04_long_strange_P>5GeV"][ - "title"] = "Long, from strange, p>5GeV, 2 < eta < 5" - basedict["Forward"]["05_long_fromB"]["title"] = "Long from B, 2 < eta < 5" + "title"] = "Long, from strange, p>5GeV, 2 <#eta < 5" + basedict["Forward"]["05_long_fromB"]["title"] = "Long from B, 2 <#eta < 5" + basedict["Forward"]["05_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Forward"]["06_long_fromB_P>5GeV"][ - "title"] = "Long from B, p>5GeV 2 < eta < 5" + "title"] = "Long from B, p>5GeV 2 <#eta < 5" basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ - "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" + "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 <#eta < 5" + basedict["Forward"]["10_long_fromD_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long from D, p>3GeV, pt>0.5GeV, 2 <#eta < 5" + basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2 <#eta < 5" basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ - "title"] = "UT Long from B, p>3GeV, pt>0.5GeV, 2 < eta < 5" + "title"] = "UT Long from B, p>3GeV, pt>0.5GeV, 2 <#eta < 5" basedict["Forward"]["01_long"]["plotElectrons"] = True basedict["Forward"]["02_long_P>5GeV"]["plotElectrons"] = False basedict["Forward"]["03_long_strange"]["plotElectrons"] = False basedict["Forward"]["04_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True + basedict["Forward"]["05_long_fromD"]["plotElectrons"] = False basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = True + basedict["Forward"]["10_long_fromD_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False + basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -179,5 +226,7 @@ def categoriesDict(): "Electrons"] = "08_long_fromB_electrons" basedict["Forward"]["06_long_fromB_P>5GeV"][ "Electrons"] = "09_long_fromB_electrons_P>5GeV" + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ + "Electrons"] = "10_long_fromB_electrons_P>3GeV_Pt>0.5GeV" return basedict -- GitLab From b05ed1f20ac51d9b5e04131924d4239dd575c085 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 25 Feb 2020 14:39:20 +0000 Subject: [PATCH 086/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7333030 --- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 63 +++++++++++++--------- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 42 +++++++++------ 2 files changed, 66 insertions(+), 39 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 1a3213626bc..ea9b5ac1324 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -12,8 +12,8 @@ # Script for accessing histograms of reconstructible and # reconstructed tracks for different tracking categories -# created by hlt1_reco_baseline_with_mcchecking.py and -# hlt1_reco_baseline_and_Allen_with_mcchecking.py +# created by hlt1_reco_baseline_with_mcchecking.py and +# hlt1_reco_baseline_and_Allen_with_mcchecking.py # # The efficency is calculated usig TGraphAsymmErrors # and Bayesian error bars @@ -37,8 +37,9 @@ import subprocess def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] + def getOriginFolders(): - basedict = {"Forward": {}, "MuonMatch":{}} + basedict = {"Forward": {}, "MuonMatch": {}} basedict["Forward"]["folder"] = "ForwardTrackChecker/" basedict["MuonMatch"]["folder"] = "MuonMatchTrackChecker/" @@ -59,7 +60,10 @@ def argument_parser(): parser.add_argument( '--mode', type=str, default='', help='name of decay mode') parser.add_argument( - '--output', type=str, default='efficiency_plots_', help='name of output file') + '--output', + type=str, + default='efficiency_plots_', + help='name of output file') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -75,8 +79,8 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): from utils.Legend import place_legend setLHCbStyle() - f_CPU = TFile(directory + "/PrChecker_MuonID" + mode+ ".root", "read") - outputfile = TFile(directory + "/"+output + mode+ ".root", "recreate") + f_CPU = TFile(directory + "/PrChecker_MuonID" + mode + ".root", "read") + outputfile = TFile(directory + "/" + output + mode + ".root", "recreate") latex = TLatex() latex.SetNDC() @@ -90,7 +94,7 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): cuts = getCuts() folders = getOriginFolders() - tracker="MuonMatch" + tracker = "MuonMatch" outputfile.cd() trackerDir = outputfile.mkdir(tracker) trackerDir.cd() @@ -105,13 +109,16 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): # calculate efficiency for histo in efficiencyHistos: - title = "efficiency vs. " + histo + ", " + categories[tracker][cut]["title"] + title = "efficiency vs. " + histo + ", " + categories[tracker][ + cut]["title"] name = "efficiency_" + histo canvas = TCanvas(name, title) # get efficiency for not electrons category - histoName = histoBaseName + "" + efficiencyHistoDict[histo]["variable"] - histoName_den = histoBaseName_den + "" + efficiencyHistoDict[histo]["variable"] + histoName = histoBaseName + "" + efficiencyHistoDict[histo][ + "variable"] + histoName_den = histoBaseName_den + "" + efficiencyHistoDict[ + histo]["variable"] print("not electrons: " + histoName) numeratorName = histoName + "_reconstructed" numerator_CPU = TH1D() @@ -119,7 +126,8 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): denominatorName = histoName_den + "_reconstructed" denominator_CPU = TH1D() denominator_CPU = f_CPU.Get(denominatorName) - if numerator_CPU.GetEntries() == 0 or denominator_CPU.GetEntries() == 0: + if numerator_CPU.GetEntries() == 0 or denominator_CPU.GetEntries( + ) == 0: continue numerator_CPU.Sumw2() @@ -127,7 +135,8 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): g_efficiency_CPU = TGraphAsymmErrors() g_efficiency_CPU.SetName("g_efficiency_notElectrons") - g_efficiency_CPU.Divide(numerator_CPU, denominator_CPU, "cl=0.683 b(1,1) mode") + g_efficiency_CPU.Divide(numerator_CPU, denominator_CPU, + "cl=0.683 b(1,1) mode") g_efficiency_CPU.SetTitle("Baseline") if (histoName.find('strange') != -1): g_efficiency_CPU.SetTitle("Baseline, from stranges") @@ -135,9 +144,12 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): h_denominator_CPU = denominator_CPU.Clone() h_denominator_CPU.SetName("h_denominator_notElectrons") - h_denominator_CPU.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. forward reconstructed") + h_denominator_CPU.SetTitle(efficiencyHistoDict[histo]["variable"] + + " histo. forward reconstructed") if (histoName.find('strange') != -1): - h_denominator_CPU.SetTitle(efficiencyHistoDict[histo]["variable"] +" histo. strange, forward reconstructed") + h_denominator_CPU.SetTitle( + efficiencyHistoDict[histo]["variable"] + + " histo. strange, forward reconstructed") #draw them both if there is ref mg = TMultiGraph() @@ -157,32 +169,35 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): mg.GetXaxis().SetRangeUser(0, 5000) if histo == "eta": mg.GetXaxis().SetRangeUser(2, 5) - scale_cpu = 1.0 /h_denominator_CPU.GetMaximum() + scale_cpu = 1.0 / h_denominator_CPU.GetMaximum() h_denominator_CPU.Scale(scale_cpu) h_denominator_CPU.SetFillStyle(3004) - h_denominator_CPU.SetFillColor(kBlue-10) + h_denominator_CPU.SetFillColor(kBlue - 10) h_denominator_CPU.SetLineColor(kBlue - 10) h_denominator_CPU.SetLineWidth(2) h_denominator_CPU.Draw("hist same") canvas.PlaceLegend() cutName = categories[tracker][cut]["title"] - latex.DrawLatex(0.35,0.3, cutName) - latex.DrawLatex(0.35,0.4, "LHCb simulation") + latex.DrawLatex(0.35, 0.3, cutName) + latex.DrawLatex(0.35, 0.4, "LHCb simulation") canvas.SetRightMargin(0.05) canvas.Write() - #print the muonID efficiency in each p bin + #print the muonID efficiency in each p bin if histo == "p": for i in range(1, numerator_CPU.GetNbinsX()): if denominator_CPU.GetBinContent(i) == 0: continue - Eff = numerator_CPU.GetBinContent(i) / (denominator_CPU.GetBinContent(i) + 0.0) - print("Efficiency of muon ID in (" + - format(numerator_CPU.GetBinLowEdge(i), '.2f') + ", " + format( - numerator_CPU.GetBinLowEdge(i) + numerator_CPU.GetBinWidth(i), '.2f') + - ") [GeV/c] : " + format(Eff, '.2%')) + Eff = numerator_CPU.GetBinContent(i) / ( + denominator_CPU.GetBinContent(i) + 0.0) + print("Efficiency of muon ID in (" + + format(numerator_CPU.GetBinLowEdge(i), '.2f') + + ", " + format( + numerator_CPU.GetBinLowEdge(i) + + numerator_CPU.GetBinWidth(i), '.2f') + + ") [GeV/c] : " + format(Eff, '.2%')) outputfile.Write() outputfile.Close() diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 7c3cfa3a6a8..a6d3c4c4efc 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -62,19 +62,21 @@ def ghostHistoDict(): def getCuts(): - basedict = {"Velo": {}, "Upstream": {}, "Forward": {}, "MuonMatch":{} } + basedict = {"Velo": {}, "Upstream": {}, "Forward": {}, "MuonMatch": {}} basedict["Velo"] = [ "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV", - "11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", "06_long_fromD" + "11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", + "06_long_fromD" ] basedict["Upstream"] = [ "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV", - "09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", "14_long_strange_P>3GeV_Pt>0.5GeV" + "09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", + "14_long_strange_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", @@ -84,8 +86,9 @@ def getCuts(): "10_long_strange_P>3GeV_Pt>0.5GeV" ] basedict["MuonMatch"] = [ - "02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", - "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" + "02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", + "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", "01_long", + "02_long_muon", "03_long_muon_from_strange", "04_long_pion" ] return basedict @@ -94,13 +97,20 @@ def getCuts(): def categoriesDict(): basedict = defaultdict(lambda: defaultdict(dict)) - basedict["MuonMatch"]["01_long"]["title"] = "Long, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["02_long_muon"]["title"] = "Long, #mu, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["02_long_muon_P>3GeV_Pt>0.5GeV"]["title"] = "Long, #mu, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_from_strange"]["title"] = "Long, #mu from strange, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_from_strange_P>3GeV_Pt>0.5GeV"]["title"] = "Long, #mu from strange, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" - basedict["MuonMatch"]["04_long_pion"]["title"] = "Long, #pi, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["04_long_pion_P>3GeV_Pt>0.5GeV"]["title"] = "Long, #pi, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" + basedict["MuonMatch"]["01_long"][ + "title"] = "Long, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["02_long_muon"][ + "title"] = "Long, #mu, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["02_long_muon_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, #mu, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" + basedict["MuonMatch"]["03_long_from_strange"][ + "title"] = "Long, #mu from strange, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["03_long_from_strange_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, #mu from strange, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" + basedict["MuonMatch"]["04_long_pion"][ + "title"] = "Long, #pi, forward track, 2 <#eta< 5" + basedict["MuonMatch"]["04_long_pion_P>3GeV_Pt>0.5GeV"][ + "title"] = "Long, #pi, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" basedict["Velo"]["01_velo"]["title"] = "Velo, 2 <#eta< 5" basedict["Velo"]["02_long"]["title"] = "Long, 2 <#eta< 5" @@ -129,9 +139,10 @@ def categoriesDict(): basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False - basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -139,7 +150,8 @@ def categoriesDict(): basedict["Velo"]["06_long_fromB"]["Electrons"] = "09_long_fromB_electrons" basedict["Velo"]["07_long_fromB_P>5GeV"][ "Electrons"] = "10_long_fromB_electrons_P>5GeV" - basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["Electrons"] = "11_long_fromB_electrons_P>3GeV_Pt>0.5GeV" + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"][ + "Electrons"] = "11_long_fromB_electrons_P>3GeV_Pt>0.5GeV" basedict["Upstream"]["01_velo"]["title"] = "Velo, 2 <#eta < 5" basedict["Upstream"]["02_velo+UT"]["title"] = "VeloUT, 2 <#eta < 5" -- GitLab From 78a50d20eb542ebe8720d043242252c505cc4785 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 25 Feb 2020 16:48:37 +0100 Subject: [PATCH 087/199] add desciption in document about the HLT1 tracking performance check --- .../hlt1_reco_baseline_with_mcchecking.py | 2 +- .../options/hlt1_reco_muonid_efficiency.py | 2 +- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 3 +- .../scripts/PrCheckerEfficiency_HLT1.py | 2 +- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 6 +- doc/index.rst | 1 + doc/tutorials/hlt1_tracking_performance.rst | 60 +++++++++++++++++++ 7 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 doc/tutorials/hlt1_tracking_performance.rst diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py index 6e154957e5b..07e463e8243 100644 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py @@ -14,4 +14,4 @@ from RecoConf.standalone import standalone_hlt1_reco with standalone_hlt1_reco.bind(do_mc_checking=True): run_reconstruction(options, standalone_hlt1_reco) -options.histo_file = "MCMatching_MiniBias.root" +options.histo_file = "MCMatching_baseline_MiniBias.root" diff --git a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py index 06423ffe9bb..6d58dc723fc 100644 --- a/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py @@ -81,5 +81,5 @@ def hlt1_reco_muonid_efficiency(): [require_gec()]) -options.histo_file = "PrChecker_MuonID.root" +options.histo_file = "PrChecker_MuonID_MiniBias.root" run_reconstruction(options, hlt1_reco_muonid_efficiency) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 38137d66d8a..aa891e48c17 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -374,7 +374,8 @@ def make_SciFiTrackForwarding_tracks( DataHandle: SciFiTrackForwarding's Output. """ return SciFiTrackForwarding( - HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"]).Output + #HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"]).Output + HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"], SecondLoop=False).Output @configurable diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 191e366f4a5..a39ab47e3b4 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -69,7 +69,7 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--mode', type=str, default='Bs2PhiPhi', help='decay mode') + '--mode', type=str, default='MiniBias', help='decay mode') parser.add_argument( '--method', type=str, diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index ea9b5ac1324..2620ca98be1 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -58,11 +58,11 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--mode', type=str, default='', help='name of decay mode') + '--mode', type=str, default='MiniBias', help='name of decay mode') parser.add_argument( '--output', type=str, - default='efficiency_plots_', + default='muonIDeff_plots_', help='name of output file') parser.add_argument( '--plotstyle', @@ -79,7 +79,7 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): from utils.Legend import place_legend setLHCbStyle() - f_CPU = TFile(directory + "/PrChecker_MuonID" + mode + ".root", "read") + f_CPU = TFile(directory + "/PrChecker_MuonID_" + mode + ".root", "read") outputfile = TFile(directory + "/" + output + mode + ".root", "recreate") latex = TLatex() diff --git a/doc/index.rst b/doc/index.rst index d61e3f40ee1..7a52ec9fc42 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -42,6 +42,7 @@ flow in order to run a `Gaudi`_-based application. tutorials/developing tutorials/hlt2_line tutorials/documentation + tutorials/hlt1_tracking_performance .. toctree:: :caption: Moore diff --git a/doc/tutorials/hlt1_tracking_performance.rst b/doc/tutorials/hlt1_tracking_performance.rst new file mode 100644 index 00000000000..e354499f8b2 --- /dev/null +++ b/doc/tutorials/hlt1_tracking_performance.rst @@ -0,0 +1,60 @@ +HLT1 Tracking Performance Check +============= + +To check the tracking level performance of HLT1 reconstruction, you need to +run these options files in /Moore/Hlt/RecoConf/options with the description +in :doc:`Runing Moore`, like:: + ./Moore/run gaudirun.py some_options_file.py +Then, run these corresponding python scripts in /Moore/Hlt/Recoconf/scripts to +draw these plots. You can find more details below. + +Tracking Efficiency Check +------------------------- + +To check the tracking efficiency, firstly:: +./Moore/run gaudirun.py ./Moore/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py ./Moore/Hlt/RecoConf/options/hlt1_reco_baseline_with_mcchecking.py +Secondly:: + python ./Moore/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py --plotstyle ./Moore/Hlt/RecoConf/scripts + +Then you will have a root file ``efficiency_plots_baseline_MiniBias.root``, including all the tracking efficiency +distribution along with momentum, transverse momentum, eta, etc... +Note that the tracking efficiency is defined as the reconstructed divided by reconstructible tracks. The definition +of reconstructible particles could be found in the LHCb-Note-XXX (will release soon, it is the conventional definition used in LHCb). + + +IP Resolution Check +------------------- + +To check the IP resolution, the input tracks will be velo tracks. Run as follows:: +./Moore/run gaudirun.py ./Moore/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py ./Moore/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +:: + python ./Moore/Hlt/RecoConf/scripts/PrCheckerIPresolution.py --plotstyle ./Moore/Hlt/RecoConf/scripts + +You will see some output of IPx and IPy resolution in different ``1/pT`` and ``eta`` regions, you +will also have a root file ``IPResolution_plots.root``, saving the resolution distributions along with ``1/pT`` and ``eta``. + + +Tracking Resolution Check +------------------------- + +To check the tracking resolution, the input tracks will be forward tracks. Run in two steps:: +./Moore/run gaudirun.py ./Moore/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py ./Moore/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +:: + python ./Moore/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py --plotstyle ./Moore/Hlt/RecoConf/scripts + +You will see the tracking resolution outputs in different momentum ``p`` and ``eta`` regions, you +will also have a root file ``TrackResolution_plots.root``, saving the resolution distributions along with ``p`` and ``eta``. + + +Muon ID Efficiency Check +------------------------- + +To check the muon ID efficiency, run as follows:: +./Moore/run gaudirun.py ./Moore/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py ./Moore/Hlt/RecoConf/options/hlt1_reco_muonid_efficiency.py +:: + python ./Moore/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py --plotstyle ./Moore/Hlt/RecoConf/scripts + +The resultant root file ``muonIDeff_plots_MiniBias.root`` will include the muonID efficiency distributions +along with momentum, transverse momentum, eta, etc.. +Note the muonID efficiency is defined on these reconstructed forward tracks. + -- GitLab From fac0a7205452fe2fafa72b6b5a92fcb8e132065b Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 25 Feb 2020 17:24:35 +0100 Subject: [PATCH 088/199] add notes --- doc/tutorials/hlt1_tracking_performance.rst | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/tutorials/hlt1_tracking_performance.rst b/doc/tutorials/hlt1_tracking_performance.rst index e354499f8b2..b9c4948a43f 100644 --- a/doc/tutorials/hlt1_tracking_performance.rst +++ b/doc/tutorials/hlt1_tracking_performance.rst @@ -1,12 +1,12 @@ HLT1 Tracking Performance Check ============= - -To check the tracking level performance of HLT1 reconstruction, you need to -run these options files in /Moore/Hlt/RecoConf/options with the description +This part is delicated to introduce how to run the applications and plotting scripts for +the tracking level performance of HLT1 reconstruction. +Generally, you need to run these options files in /Moore/Hlt/RecoConf/options with the description in :doc:`Runing Moore`, like:: ./Moore/run gaudirun.py some_options_file.py Then, run these corresponding python scripts in /Moore/Hlt/Recoconf/scripts to -draw these plots. You can find more details below. +draw the plots. You can find more details below. Tracking Efficiency Check ------------------------- @@ -56,5 +56,9 @@ To check the muon ID efficiency, run as follows:: The resultant root file ``muonIDeff_plots_MiniBias.root`` will include the muonID efficiency distributions along with momentum, transverse momentum, eta, etc.. -Note the muonID efficiency is defined on these reconstructed forward tracks. +Note that the muonID efficiency is defined on these reconstructed forward tracks. + + +.. note:: + The input file used here is for SciFi decoding version 4, if you would like to run for SciFi decoding version 6, you can change the input file to ``default_input_and_conds_hlt1_FT6.py``. If you would like to run for other MC samples, you may change your input files refering to the ``TestFileDB.py`` in PRConfig repository. -- GitLab From b01acdb33a8684177118366dfd1daaf002921068 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 25 Feb 2020 17:42:48 +0100 Subject: [PATCH 089/199] update to changes in IP resolution script --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 4 ++-- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 4 ++-- Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 8da7b5b7df0..0c888f230b3 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -11,8 +11,8 @@ import os from Moore import options -options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_FTv4_DIGI") +#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") options.evt_max = 1000 diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index d525b0c0399..e4cc280f04f 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -19,8 +19,8 @@ from Configurables import NTupleSvc def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) - pvs = make_pvs() - pr_checker = monitor_IPresolution(fitted_tracks["v1"], pvs, + #pvs = make_pvs() + pr_checker = monitor_IPresolution(fitted_tracks["v1"], hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py index 0398d3973a0..54f9289a9a6 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py @@ -23,8 +23,8 @@ from Configurables import AllenUpdater def hlt1_reco_allen_IPresolution(): allen_tracks = make_allen_tracks() - allen_pvs = make_allen_pvs() - pr_checker = monitor_IPresolution(allen_tracks["Forward"]["v1"], allen_pvs, + #allen_pvs = make_allen_pvs() + pr_checker = monitor_IPresolution(allen_tracks["Forward"]["v1"], allen_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) -- GitLab From 5f1e352892cff50b4d1c1dd25028bd79d329138b Mon Sep 17 00:00:00 2001 From: Agnieszka Dziurda Date: Wed, 26 Feb 2020 09:23:18 +0100 Subject: [PATCH 090/199] script for efficiency plots, small bugfix for decay categories --- .../scripts/PrimaryVertexCheckerEfficiency.py | 133 +++++++++++++ Hlt/RecoConf/scripts/utils/pvutils.py | 182 ++++++++++++++++++ 2 files changed, 315 insertions(+) create mode 100644 Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py create mode 100644 Hlt/RecoConf/scripts/utils/pvutils.py diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py new file mode 100644 index 00000000000..58913f387c0 --- /dev/null +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -0,0 +1,133 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +#!/usr/bin/python + +import os, sys +import argparse +import ROOT + +from ROOT import TFile, TTree +from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray +from ROOT import gROOT, TLegend + +parser = argparse.ArgumentParser() +parser.add_argument( '--file', + dest = 'fileName', + default = "", + nargs='+', + help = 'filename to plot') +parser.add_argument( '--label', + dest = 'label', + default = "", + nargs='+', + help = 'labels for files') +parser.add_argument( '--tree', + dest = 'treeName', + default = "", + nargs='+', + help = 'tree name to plot', + ) +parser.add_argument( '--smog', + dest = 'smog', + default = False, + action = 'store_true', + help = 'set true for SMOG' + ) +parser.add_argument( '--multi', + dest = 'multi', + default = False, + action = 'store_true', + help = 'add multiplicity plots' + ) +parser.add_argument( '--dist', + dest = 'dist', + default = False, + action = 'store_true', + help = 'plot distributions in the canvas' + ) +parser.add_argument( '--prefix', + dest = 'prefix', + default = "pv_eff", + help = 'prefix for the plot name', + ) + +def get_categories(multi,smog): + cut = {} + cut["all"] = {"cut":""} + cut["isolated"] = {"cut":"&&isol==1"} + if not smog: + cut["close"] = {"cut":"&&isol==0"} + if multi: + cut["1st"] = {"cut":"&&multimc==1"} + cut["2nd"] = {"cut":"&&multimc==2"} + cut["3rd"] = {"cut":"&&multimc==3"} + cut["4th"] = {"cut":"&&multimc==4"} + cut["5th"] = {"cut":"&&multimc==5"} + + return cut + +def get_colors(): + return [kRed, kBlue, kOrange, kMagenta+2, kGreen+3, kCyan+2] +def get_markers(): + return [21,20,22,23,24,25,26] +def get_labels(number_of_files): + label = [] + for i in range(0,number_of_files): + label.append("PV Checker {number}".format(number=str(i+1))) + return label + + +if __name__ == '__main__' : + args = parser.parse_args() + path = os.getcwd()+"/utils/" + sys.path.append(os.path.abspath(path)) + + gROOT.SetBatch() + + from pvutils import get_default_tree_name + from pvutils import get_files, get_trees, get_eff, plot_eff + from pvutils import set_legend + + markers = get_markers() + colors = get_colors() + + label = args.label + if args.label=="": + label = get_labels(len(args.fileName)) + + tr = {} + tf = {} + tf = get_files(tf, label, args.fileName) + tr = get_trees(tf, tr, label, args.treeName, True) + + eff_tr = {} + eff_z = {} + eff_r = {} + hist_tr = {} + hist_z = {} + hist_r = {} + + cat = get_categories(args.multi,args.smog) + eff_tr, hist_tr = get_eff(eff_tr,hist_tr,tr,"nrectrmc",colors,markers,args.smog,cat,label) + eff_z, hist_z = get_eff(eff_z, hist_z, tr, "zMC",colors,markers,args.smog,cat,label) + eff_r, hist_r = get_eff(eff_r, hist_r, tr, "rMC",colors,markers,args.smog,cat,label) + + if args.dist: + legend = TLegend(0.15, 0.82, 0.88, 0.98 ) + else: + legend = TLegend(0.15, 0.86, 0.88, 0.98 ) + legend = set_legend(legend, label, eff_tr, hist_tr, args.dist) + + plot_eff(eff_tr,hist_tr,args.prefix,"ntracks",cat,label, legend, args.dist) + plot_eff(eff_z, hist_z, args.prefix,"z", cat,label, legend, args.dist) + plot_eff(eff_r, hist_r, args.prefix,"r", cat,label, legend, args.dist) + + diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py new file mode 100644 index 00000000000..3ffa5e54b94 --- /dev/null +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -0,0 +1,182 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### + +from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors +from ROOT import TCanvas +from ROOT import TGraphErrors, TLegend +from ROOT import gPad, kGray + +def get_default_tree_name(is_checker): + if is_checker: + return "PrimaryVertexChecker/101" + else: + return "VertexCompare/102" + +def get_files(tf, label, files): + i = 0 + for f in files: + tf[label[i]] = TFile(f) + i+=1 + return tf + +def get_trees(tf, tr, label, trees, is_checker): + i=0 + for lab in label: + if len(tf) == len(trees): + tr[lab] = tf[lab].Get(trees[i]) + else: + tr[lab] = tf[lab].Get(get_default_tree_name(is_checker)) + i+=1 + return tr + +def set_style(graph, color, marker, xaxis, yaxis, title): + graph.SetTitle(""); + graph.SetLineColor(color); + graph.SetMarkerColor(color); + graph.SetMarkerSize(1.3); + graph.SetMarkerStyle(marker); + if type(graph) == TH1F: + graph.SetFillColor(color); + graph.SetLineWidth(4) + graph.GetYaxis().SetTitleOffset(0.85); + graph.GetYaxis().SetTitleSize(0.06); + graph.GetYaxis().SetLabelSize(0.06); + graph.GetXaxis().SetTitleSize(0.06); + graph.GetXaxis().SetLabelSize(0.06); + graph.GetXaxis().SetTitleFont(132); + graph.GetXaxis().SetLabelFont(132); + graph.GetYaxis().SetTitleFont(132); + graph.GetYaxis().SetLabelFont(132); + + if title != "": + graph.SetTitle(title) + if xaxis != "": + graph.GetXaxis().SetTitle(xaxis) + if yaxis != "": + graph.GetYaxis().SetTitle(yaxis) + + +def get_range(dependence,smog): + if dependence == "zMC": + if smog: + return "(100,-500,200)" + else: + return "(50,-200,200)" + elif dependence == "rMC": + return "(50,0.0,0.2)" + else: + return "(66,4,70)" + +def get_x_axis(dependence): + if dependence=="zMC": + return "z [mm]" + elif dependence == "rMC": + return "radial distance [mm]" + else: + return "number of tracks in Primary Vertex" + + +def get_eff(eff, hist, trees, dependence, colors, markers, smog, categories, label): + + hist_range = get_range(dependence,smog) + + for cat in categories: + eff[cat] = {} + hist[cat] = {} + i = 0 + for lab in label: + var_den = '{dependence}>>hist{code}_{dep}_{cat}_{lab}{hist_range}'.format( + dependence=dependence,code="den",dep=dependence,cat=cat,lab=lab,hist_range=hist_range) + var_nom = '{dependence}>>hist{code}_{dep}_{cat}_{lab}{hist_range}'.format( + dependence=dependence,code="nom",dep=dependence,cat=cat,lab=lab,hist_range=hist_range) + + cut_den = 'nrectrmc>3 {cuts}'.format(cuts = categories[cat]["cut"]) + cut_nom = cut_den + ' && reco == 1' + + trees[lab].Draw(var_nom,cut_nom) + trees[lab].Draw(var_den,cut_den) + + h_nom = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format(code="nom",dep=dependence,cat=cat,lab=lab)) + h_den = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format(code="den",dep=dependence,cat=cat,lab=lab)) + + g_eff = TGraphAsymmErrors() + g_eff.Divide(h_nom,h_den,"cl=0.683 b(1,1) mode") + + set_style(h_nom, colors[i]-8, markers[i], get_x_axis(dependence),"Efficiency","") + set_style(h_den, kGray, markers[i], get_x_axis(dependence),"Efficiency","") + hist[cat][lab] = {} + hist[cat][lab]["nom"] = h_nom + hist[cat][lab]["den"] = h_den + + set_style(g_eff, colors[i], markers[i], get_x_axis(dependence),"Efficiency","") + eff[cat][lab] = g_eff + i+=1 + + return eff, hist + + +def set_legend(legend, label, gr, hist, dist): + legend.SetTextSize(0.04) + legend.SetTextFont(12) + legend.SetFillColor(4000) + legend.SetShadowColor(0) + legend.SetBorderSize(0) + legend.SetTextFont(132) + legend.SetNColumns(2) + #legend.SetHeader("LHCb Preliminary"); + for lab in label: + legend.AddEntry(gr["all"][lab],"Efficiency {lab}".format(lab=lab),"lep") + if dist: + legend.AddEntry(hist["all"][label[0]]["den"],"Distribution MC","f") + for lab in label: + legend.AddEntry(hist["all"][lab]["nom"],"Distribution {lab}".format(lab=lab),"f") + + return legend + +def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): + + for cat in categories: + can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence,cat=cat), "cR", 1200, 800) + can.SetBottomMargin(0.15) + can.SetLeftMargin(0.12) + can.SetTopMargin(0.15) + if dist: + can.SetTopMargin(0.20) + can.SetRightMargin(0.05) + can.cd() + + eff[cat][label[0]].GetYaxis().SetRangeUser(0.0,1.1) + eff[cat][label[0]].Draw("AP") + + for lab in label: + eff[cat][lab].Draw("SAME P") + + if dist: + histmax_den = 1.1*hist[cat][label[0]]["den"].GetMaximum() + scale = gPad.GetUymax()/histmax_den + hist[cat][label[0]]["den"].Scale(scale*0.75) + hist[cat][label[0]]["den"].Draw("hist SAME") + + for lab in label: + histmax_nom = 1.1*hist[cat][lab]["nom"].GetMaximum() + scale = gPad.GetUymax()/histmax_nom + hist[cat][lab]["nom"].Scale(scale*0.75) + hist[cat][lab]["nom"].Draw("SAME") + + legend.Draw("SAME") + + + + saveName = '{prefix}_{dependence}_{cat}.pdf'.format(prefix=prefix,dependence=dependence,cat=cat) + can.SaveAs(saveName) + + + -- GitLab From 8610d321bf78ad7b1717279407ef6ea869fa468a Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 26 Feb 2020 08:26:40 +0000 Subject: [PATCH 091/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7342166 --- .../scripts/PrimaryVertexCheckerEfficiency.py | 160 ++++++++-------- Hlt/RecoConf/scripts/utils/pvutils.py | 177 ++++++++++-------- 2 files changed, 181 insertions(+), 156 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py index 58913f387c0..f05ccd397cb 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -12,122 +12,126 @@ import os, sys import argparse -import ROOT +import ROOT from ROOT import TFile, TTree from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray from ROOT import gROOT, TLegend parser = argparse.ArgumentParser() -parser.add_argument( '--file', - dest = 'fileName', - default = "", - nargs='+', - help = 'filename to plot') -parser.add_argument( '--label', - dest = 'label', - default = "", - nargs='+', - help = 'labels for files') -parser.add_argument( '--tree', - dest = 'treeName', - default = "", - nargs='+', - help = 'tree name to plot', - ) -parser.add_argument( '--smog', - dest = 'smog', - default = False, - action = 'store_true', - help = 'set true for SMOG' - ) -parser.add_argument( '--multi', - dest = 'multi', - default = False, - action = 'store_true', - help = 'add multiplicity plots' - ) -parser.add_argument( '--dist', - dest = 'dist', - default = False, - action = 'store_true', - help = 'plot distributions in the canvas' - ) -parser.add_argument( '--prefix', - dest = 'prefix', - default = "pv_eff", - help = 'prefix for the plot name', - ) - -def get_categories(multi,smog): +parser.add_argument( + '--file', dest='fileName', default="", nargs='+', help='filename to plot') +parser.add_argument( + '--label', dest='label', default="", nargs='+', help='labels for files') +parser.add_argument( + '--tree', + dest='treeName', + default="", + nargs='+', + help='tree name to plot', +) +parser.add_argument( + '--smog', + dest='smog', + default=False, + action='store_true', + help='set true for SMOG') +parser.add_argument( + '--multi', + dest='multi', + default=False, + action='store_true', + help='add multiplicity plots') +parser.add_argument( + '--dist', + dest='dist', + default=False, + action='store_true', + help='plot distributions in the canvas') +parser.add_argument( + '--prefix', + dest='prefix', + default="pv_eff", + help='prefix for the plot name', +) + + +def get_categories(multi, smog): cut = {} - cut["all"] = {"cut":""} - cut["isolated"] = {"cut":"&&isol==1"} + cut["all"] = {"cut": ""} + cut["isolated"] = {"cut": "&&isol==1"} if not smog: - cut["close"] = {"cut":"&&isol==0"} + cut["close"] = {"cut": "&&isol==0"} if multi: - cut["1st"] = {"cut":"&&multimc==1"} - cut["2nd"] = {"cut":"&&multimc==2"} - cut["3rd"] = {"cut":"&&multimc==3"} - cut["4th"] = {"cut":"&&multimc==4"} - cut["5th"] = {"cut":"&&multimc==5"} + cut["1st"] = {"cut": "&&multimc==1"} + cut["2nd"] = {"cut": "&&multimc==2"} + cut["3rd"] = {"cut": "&&multimc==3"} + cut["4th"] = {"cut": "&&multimc==4"} + cut["5th"] = {"cut": "&&multimc==5"} return cut + def get_colors(): - return [kRed, kBlue, kOrange, kMagenta+2, kGreen+3, kCyan+2] + return [kRed, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + + def get_markers(): - return [21,20,22,23,24,25,26] + return [21, 20, 22, 23, 24, 25, 26] + + def get_labels(number_of_files): label = [] - for i in range(0,number_of_files): - label.append("PV Checker {number}".format(number=str(i+1))) - return label + for i in range(0, number_of_files): + label.append("PV Checker {number}".format(number=str(i + 1))) + return label -if __name__ == '__main__' : +if __name__ == '__main__': args = parser.parse_args() - path = os.getcwd()+"/utils/" + path = os.getcwd() + "/utils/" sys.path.append(os.path.abspath(path)) - + gROOT.SetBatch() - from pvutils import get_default_tree_name - from pvutils import get_files, get_trees, get_eff, plot_eff + from pvutils import get_default_tree_name + from pvutils import get_files, get_trees, get_eff, plot_eff from pvutils import set_legend markers = get_markers() colors = get_colors() label = args.label - if args.label=="": + if args.label == "": label = get_labels(len(args.fileName)) - + tr = {} - tf = {} + tf = {} tf = get_files(tf, label, args.fileName) tr = get_trees(tf, tr, label, args.treeName, True) eff_tr = {} eff_z = {} - eff_r = {} - hist_tr = {} + eff_r = {} + hist_tr = {} hist_z = {} - hist_r = {} + hist_r = {} - cat = get_categories(args.multi,args.smog) - eff_tr, hist_tr = get_eff(eff_tr,hist_tr,tr,"nrectrmc",colors,markers,args.smog,cat,label) - eff_z, hist_z = get_eff(eff_z, hist_z, tr, "zMC",colors,markers,args.smog,cat,label) - eff_r, hist_r = get_eff(eff_r, hist_r, tr, "rMC",colors,markers,args.smog,cat,label) + cat = get_categories(args.multi, args.smog) + eff_tr, hist_tr = get_eff(eff_tr, hist_tr, tr, "nrectrmc", colors, markers, + args.smog, cat, label) + eff_z, hist_z = get_eff(eff_z, hist_z, tr, "zMC", colors, markers, + args.smog, cat, label) + eff_r, hist_r = get_eff(eff_r, hist_r, tr, "rMC", colors, markers, + args.smog, cat, label) if args.dist: - legend = TLegend(0.15, 0.82, 0.88, 0.98 ) + legend = TLegend(0.15, 0.82, 0.88, 0.98) else: - legend = TLegend(0.15, 0.86, 0.88, 0.98 ) - legend = set_legend(legend, label, eff_tr, hist_tr, args.dist) - - plot_eff(eff_tr,hist_tr,args.prefix,"ntracks",cat,label, legend, args.dist) - plot_eff(eff_z, hist_z, args.prefix,"z", cat,label, legend, args.dist) - plot_eff(eff_r, hist_r, args.prefix,"r", cat,label, legend, args.dist) - + legend = TLegend(0.15, 0.86, 0.88, 0.98) + legend = set_legend(legend, label, eff_tr, hist_tr, args.dist) + plot_eff(eff_tr, hist_tr, args.prefix, "ntracks", cat, label, legend, + args.dist) + plot_eff(eff_z, hist_z, args.prefix, "z", cat, label, legend, args.dist) + plot_eff(eff_r, hist_r, args.prefix, "r", cat, label, legend, args.dist) diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index 3ffa5e54b94..b04330e898a 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -11,52 +11,56 @@ from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors from ROOT import TCanvas -from ROOT import TGraphErrors, TLegend -from ROOT import gPad, kGray - +from ROOT import TGraphErrors, TLegend +from ROOT import gPad, kGray + + def get_default_tree_name(is_checker): if is_checker: return "PrimaryVertexChecker/101" else: return "VertexCompare/102" + def get_files(tf, label, files): - i = 0 + i = 0 for f in files: tf[label[i]] = TFile(f) - i+=1 + i += 1 return tf + def get_trees(tf, tr, label, trees, is_checker): - i=0 + i = 0 for lab in label: if len(tf) == len(trees): tr[lab] = tf[lab].Get(trees[i]) else: tr[lab] = tf[lab].Get(get_default_tree_name(is_checker)) - i+=1 - return tr + i += 1 + return tr + def set_style(graph, color, marker, xaxis, yaxis, title): - graph.SetTitle(""); - graph.SetLineColor(color); - graph.SetMarkerColor(color); - graph.SetMarkerSize(1.3); - graph.SetMarkerStyle(marker); + graph.SetTitle("") + graph.SetLineColor(color) + graph.SetMarkerColor(color) + graph.SetMarkerSize(1.3) + graph.SetMarkerStyle(marker) if type(graph) == TH1F: - graph.SetFillColor(color); + graph.SetFillColor(color) graph.SetLineWidth(4) - graph.GetYaxis().SetTitleOffset(0.85); - graph.GetYaxis().SetTitleSize(0.06); - graph.GetYaxis().SetLabelSize(0.06); - graph.GetXaxis().SetTitleSize(0.06); - graph.GetXaxis().SetLabelSize(0.06); - graph.GetXaxis().SetTitleFont(132); - graph.GetXaxis().SetLabelFont(132); - graph.GetYaxis().SetTitleFont(132); - graph.GetYaxis().SetLabelFont(132); - - if title != "": + graph.GetYaxis().SetTitleOffset(0.85) + graph.GetYaxis().SetTitleSize(0.06) + graph.GetYaxis().SetLabelSize(0.06) + graph.GetXaxis().SetTitleSize(0.06) + graph.GetXaxis().SetLabelSize(0.06) + graph.GetXaxis().SetTitleFont(132) + graph.GetXaxis().SetLabelFont(132) + graph.GetYaxis().SetTitleFont(132) + graph.GetYaxis().SetLabelFont(132) + + if title != "": graph.SetTitle(title) if xaxis != "": graph.GetXaxis().SetTitle(xaxis) @@ -64,63 +68,80 @@ def set_style(graph, color, marker, xaxis, yaxis, title): graph.GetYaxis().SetTitle(yaxis) -def get_range(dependence,smog): +def get_range(dependence, smog): if dependence == "zMC": if smog: return "(100,-500,200)" else: return "(50,-200,200)" elif dependence == "rMC": - return "(50,0.0,0.2)" + return "(50,0.0,0.2)" else: return "(66,4,70)" + def get_x_axis(dependence): - if dependence=="zMC": + if dependence == "zMC": return "z [mm]" elif dependence == "rMC": return "radial distance [mm]" else: - return "number of tracks in Primary Vertex" + return "number of tracks in Primary Vertex" -def get_eff(eff, hist, trees, dependence, colors, markers, smog, categories, label): +def get_eff(eff, hist, trees, dependence, colors, markers, smog, categories, + label): - hist_range = get_range(dependence,smog) + hist_range = get_range(dependence, smog) for cat in categories: eff[cat] = {} - hist[cat] = {} + hist[cat] = {} i = 0 for lab in label: var_den = '{dependence}>>hist{code}_{dep}_{cat}_{lab}{hist_range}'.format( - dependence=dependence,code="den",dep=dependence,cat=cat,lab=lab,hist_range=hist_range) + dependence=dependence, + code="den", + dep=dependence, + cat=cat, + lab=lab, + hist_range=hist_range) var_nom = '{dependence}>>hist{code}_{dep}_{cat}_{lab}{hist_range}'.format( - dependence=dependence,code="nom",dep=dependence,cat=cat,lab=lab,hist_range=hist_range) - - cut_den = 'nrectrmc>3 {cuts}'.format(cuts = categories[cat]["cut"]) + dependence=dependence, + code="nom", + dep=dependence, + cat=cat, + lab=lab, + hist_range=hist_range) + + cut_den = 'nrectrmc>3 {cuts}'.format(cuts=categories[cat]["cut"]) cut_nom = cut_den + ' && reco == 1' - - trees[lab].Draw(var_nom,cut_nom) - trees[lab].Draw(var_den,cut_den) - - h_nom = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format(code="nom",dep=dependence,cat=cat,lab=lab)) - h_den = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format(code="den",dep=dependence,cat=cat,lab=lab)) - + + trees[lab].Draw(var_nom, cut_nom) + trees[lab].Draw(var_den, cut_den) + + h_nom = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format( + code="nom", dep=dependence, cat=cat, lab=lab)) + h_den = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format( + code="den", dep=dependence, cat=cat, lab=lab)) + g_eff = TGraphAsymmErrors() - g_eff.Divide(h_nom,h_den,"cl=0.683 b(1,1) mode") - - set_style(h_nom, colors[i]-8, markers[i], get_x_axis(dependence),"Efficiency","") - set_style(h_den, kGray, markers[i], get_x_axis(dependence),"Efficiency","") + g_eff.Divide(h_nom, h_den, "cl=0.683 b(1,1) mode") + + set_style(h_nom, colors[i] - 8, markers[i], get_x_axis(dependence), + "Efficiency", "") + set_style(h_den, kGray, markers[i], get_x_axis(dependence), + "Efficiency", "") hist[cat][lab] = {} hist[cat][lab]["nom"] = h_nom hist[cat][lab]["den"] = h_den - set_style(g_eff, colors[i], markers[i], get_x_axis(dependence),"Efficiency","") + set_style(g_eff, colors[i], markers[i], get_x_axis(dependence), + "Efficiency", "") eff[cat][lab] = g_eff - i+=1 - - return eff, hist + i += 1 + + return eff, hist def set_legend(legend, label, gr, hist, dist): @@ -133,18 +154,22 @@ def set_legend(legend, label, gr, hist, dist): legend.SetNColumns(2) #legend.SetHeader("LHCb Preliminary"); for lab in label: - legend.AddEntry(gr["all"][lab],"Efficiency {lab}".format(lab=lab),"lep") + legend.AddEntry(gr["all"][lab], "Efficiency {lab}".format(lab=lab), + "lep") if dist: - legend.AddEntry(hist["all"][label[0]]["den"],"Distribution MC","f") + legend.AddEntry(hist["all"][label[0]]["den"], "Distribution MC", "f") for lab in label: - legend.AddEntry(hist["all"][lab]["nom"],"Distribution {lab}".format(lab=lab),"f") - + legend.AddEntry(hist["all"][lab]["nom"], + "Distribution {lab}".format(lab=lab), "f") + return legend + def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): - - for cat in categories: - can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence,cat=cat), "cR", 1200, 800) + + for cat in categories: + can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), + "cR", 1200, 800) can.SetBottomMargin(0.15) can.SetLeftMargin(0.12) can.SetTopMargin(0.15) @@ -152,31 +177,27 @@ def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): can.SetTopMargin(0.20) can.SetRightMargin(0.05) can.cd() - - eff[cat][label[0]].GetYaxis().SetRangeUser(0.0,1.1) + + eff[cat][label[0]].GetYaxis().SetRangeUser(0.0, 1.1) eff[cat][label[0]].Draw("AP") - + for lab in label: eff[cat][lab].Draw("SAME P") if dist: - histmax_den = 1.1*hist[cat][label[0]]["den"].GetMaximum() - scale = gPad.GetUymax()/histmax_den - hist[cat][label[0]]["den"].Scale(scale*0.75) - hist[cat][label[0]]["den"].Draw("hist SAME") - - for lab in label: - histmax_nom = 1.1*hist[cat][lab]["nom"].GetMaximum() - scale = gPad.GetUymax()/histmax_nom - hist[cat][lab]["nom"].Scale(scale*0.75) + histmax_den = 1.1 * hist[cat][label[0]]["den"].GetMaximum() + scale = gPad.GetUymax() / histmax_den + hist[cat][label[0]]["den"].Scale(scale * 0.75) + hist[cat][label[0]]["den"].Draw("hist SAME") + + for lab in label: + histmax_nom = 1.1 * hist[cat][lab]["nom"].GetMaximum() + scale = gPad.GetUymax() / histmax_nom + hist[cat][lab]["nom"].Scale(scale * 0.75) hist[cat][lab]["nom"].Draw("SAME") - - legend.Draw("SAME") - - - - saveName = '{prefix}_{dependence}_{cat}.pdf'.format(prefix=prefix,dependence=dependence,cat=cat) - can.SaveAs(saveName) - + legend.Draw("SAME") + saveName = '{prefix}_{dependence}_{cat}.pdf'.format( + prefix=prefix, dependence=dependence, cat=cat) + can.SaveAs(saveName) -- GitLab From 928152f98935a5ae93ae421a855bd32d4c8aa78f Mon Sep 17 00:00:00 2001 From: Agnieszka Dziurda Date: Wed, 26 Feb 2020 10:30:00 +0100 Subject: [PATCH 092/199] adding description --- .../scripts/PrimaryVertexCheckerEfficiency.py | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py index f05ccd397cb..d4692b031e6 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -10,6 +10,23 @@ ############################################################################### #!/usr/bin/python + +# The script for plotting PV efficinecy as the function +# of various distributions: nTracks, z, r. +# As input the NTuple created by hlt1_reco_pvchecker.py +# is needed. +# +# The efficency is calculated usig TGraphAsymmErrors +# and Bayesian error bars +# +# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) +# date: 02/2020 +# +# Example of usage: +# ../../../run python PrimaryVertexCheckerEfficiency.py +# --file file1.root file2.root --label name1 name2 --dist +# + import os, sys import argparse import ROOT @@ -54,7 +71,12 @@ parser.add_argument( default="pv_eff", help='prefix for the plot name', ) - +parser.add_argument( + '--dir', + dest='directory', + default=os.getcwd(), + help='tree name to plot', +) def get_categories(multi, smog): cut = {} @@ -89,7 +111,7 @@ def get_labels(number_of_files): if __name__ == '__main__': args = parser.parse_args() - path = os.getcwd() + "/utils/" + path = args.directory + "/utils/" sys.path.append(os.path.abspath(path)) gROOT.SetBatch() -- GitLab From 86edaf81e20c8a72bb184b9fdaa53c77cfa5dc55 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 26 Feb 2020 09:31:21 +0000 Subject: [PATCH 093/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7343320 --- .../scripts/PrimaryVertexCheckerEfficiency.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py index d4692b031e6..56f166169fd 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -10,20 +10,19 @@ ############################################################################### #!/usr/bin/python - -# The script for plotting PV efficinecy as the function -# of various distributions: nTracks, z, r. +# The script for plotting PV efficinecy as the function +# of various distributions: nTracks, z, r. # As input the NTuple created by hlt1_reco_pvchecker.py -# is needed. +# is needed. # # The efficency is calculated usig TGraphAsymmErrors # and Bayesian error bars # # author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) # date: 02/2020 -# +# # Example of usage: -# ../../../run python PrimaryVertexCheckerEfficiency.py +# ../../../run python PrimaryVertexCheckerEfficiency.py # --file file1.root file2.root --label name1 name2 --dist # @@ -78,6 +77,7 @@ parser.add_argument( help='tree name to plot', ) + def get_categories(multi, smog): cut = {} cut["all"] = {"cut": ""} -- GitLab From 2f74472ba8c6d159b7bfa27a29e5cf56bad0ff58 Mon Sep 17 00:00:00 2001 From: Agnieszka Dziurda Date: Thu, 27 Feb 2020 09:50:32 +0100 Subject: [PATCH 094/199] very first scripts for plotting resol and pull, for now only global --- .../scripts/PrimaryVertexCheckerPull.py | 147 ++++++++++++++++++ .../scripts/PrimaryVertexCheckerResolution.py | 147 ++++++++++++++++++ Hlt/RecoConf/scripts/utils/pvutils.py | 133 +++++++++++++++- 3 files changed, 423 insertions(+), 4 deletions(-) create mode 100644 Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py create mode 100644 Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py new file mode 100644 index 00000000000..4c9e1f97df3 --- /dev/null +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py @@ -0,0 +1,147 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +#!/usr/bin/python + +# The script for plotting PV efficinecy as the function +# of various distributions: nTracks, z, r. +# As input the NTuple created by hlt1_reco_pvchecker.py +# is needed. +# +# The efficency is calculated usig TGraphAsymmErrors +# and Bayesian error bars +# +# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) +# date: 02/2020 +# +# Example of usage: +# ../../../run python PrimaryVertexCheckerPull.py +# --file file1.root file2.root --label name1 name2 +# + +import os, sys +import argparse +import ROOT + +from ROOT import TFile, TTree +from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow +from ROOT import gROOT, TLegend + +parser = argparse.ArgumentParser() +parser.add_argument( + '--file', dest='fileName', default="", nargs='+', help='filename to plot') +parser.add_argument( + '--label', dest='label', default="", nargs='+', help='labels for files') +parser.add_argument( + '--tree', + dest='treeName', + default="", + nargs='+', + help='tree name to plot', +) +parser.add_argument( + '--smog', + dest='smog', + default=False, + action='store_true', + help='set true for SMOG') +parser.add_argument( + '--multi', + dest='multi', + default=False, + action='store_true', + help='add multiplicity plots') +parser.add_argument( + '--dist', + dest='dist', + default=False, + action='store_true', + help='plot distributions in the canvas') +parser.add_argument( + '--prefix', + dest='prefix', + default="pv_pull", + help='prefix for the plot name', +) +parser.add_argument( + '--dir', + dest='directory', + default=os.getcwd(), + help='tree name to plot', +) + + +def get_categories(multi, smog): + cut = {} + cut["all"] = {"cut": ""} + cut["isolated"] = {"cut": "&&isol==1"} + if not smog: + cut["close"] = {"cut": "&&isol==0"} + if multi: + cut["1st"] = {"cut": "&&multimc==1"} + cut["2nd"] = {"cut": "&&multimc==2"} + cut["3rd"] = {"cut": "&&multimc==3"} + cut["4th"] = {"cut": "&&multimc==4"} + cut["5th"] = {"cut": "&&multimc==5"} + + return cut + + +def get_colors(): + return [kRed, kBlue, kOrange, kMagenta, kGreen, kCyan] + + +def get_markers(): + return [21, 20, 22, 23, 24, 25, 26] + + +def get_labels(number_of_files): + label = [] + for i in range(0, number_of_files): + label.append("PV Checker {number}".format(number=str(i + 1))) + return label + + +if __name__ == '__main__': + args = parser.parse_args() + path = args.directory + "/utils/" + sys.path.append(os.path.abspath(path)) + + gROOT.SetBatch() + + from pvutils import get_default_tree_name + from pvutils import get_files, get_trees + from pvutils import set_legend, get_global, plot_comparison + + markers = get_markers() + colors = get_colors() + cat = get_categories(args.multi, args.smog) + label = args.label + if args.label == "": + label = get_labels(len(args.fileName)) + + tr = {} + tf = {} + tf = get_files(tf, label, args.fileName) + tr = get_trees(tf, tr, label, args.treeName, True) + + hist_x = {} + hist_y = {} + hist_z = {} + norm = True #to-do + hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", "Candidates Normalized", colors, markers, cat, label) + hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", "Candidates Normalized", colors, markers, cat, label) + hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", "Candidates Normalized", colors, markers, cat, label) + + plot_comparison(hist_x, args.prefix, "pullx", cat, label, colors, norm) + plot_comparison(hist_y, args.prefix, "pully", cat, label, colors, norm) + plot_comparison(hist_z, args.prefix, "pullz", cat, label, colors, norm) + + diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py new file mode 100644 index 00000000000..9ee3f4b1be0 --- /dev/null +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py @@ -0,0 +1,147 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +#!/usr/bin/python + +# The script for plotting PV efficinecy as the function +# of various distributions: nTracks, z, r. +# As input the NTuple created by hlt1_reco_pvchecker.py +# is needed. +# +# The efficency is calculated usig TGraphAsymmErrors +# and Bayesian error bars +# +# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) +# date: 02/2020 +# +# Example of usage: +# ../../../run python PrimaryVertexCheckerResolution.py +# --file file1.root file2.root --label name1 name2 +# + +import os, sys +import argparse +import ROOT + +from ROOT import TFile, TTree +from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow +from ROOT import gROOT, TLegend + +parser = argparse.ArgumentParser() +parser.add_argument( + '--file', dest='fileName', default="", nargs='+', help='filename to plot') +parser.add_argument( + '--label', dest='label', default="", nargs='+', help='labels for files') +parser.add_argument( + '--tree', + dest='treeName', + default="", + nargs='+', + help='tree name to plot', +) +parser.add_argument( + '--smog', + dest='smog', + default=False, + action='store_true', + help='set true for SMOG') +parser.add_argument( + '--multi', + dest='multi', + default=False, + action='store_true', + help='add multiplicity plots') +parser.add_argument( + '--dist', + dest='dist', + default=False, + action='store_true', + help='plot distributions in the canvas') +parser.add_argument( + '--prefix', + dest='prefix', + default="pv_resol", + help='prefix for the plot name', +) +parser.add_argument( + '--dir', + dest='directory', + default=os.getcwd(), + help='tree name to plot', +) + + +def get_categories(multi, smog): + cut = {} + cut["all"] = {"cut": ""} + cut["isolated"] = {"cut": "&&isol==1"} + if not smog: + cut["close"] = {"cut": "&&isol==0"} + if multi: + cut["1st"] = {"cut": "&&multimc==1"} + cut["2nd"] = {"cut": "&&multimc==2"} + cut["3rd"] = {"cut": "&&multimc==3"} + cut["4th"] = {"cut": "&&multimc==4"} + cut["5th"] = {"cut": "&&multimc==5"} + + return cut + + +def get_colors(): + return [kRed, kBlue, kOrange, kMagenta, kGreen, kCyan] + + +def get_markers(): + return [21, 20, 22, 23, 24, 25, 26] + + +def get_labels(number_of_files): + label = [] + for i in range(0, number_of_files): + label.append("PV Checker {number}".format(number=str(i + 1))) + return label + + +if __name__ == '__main__': + args = parser.parse_args() + path = args.directory + "/utils/" + sys.path.append(os.path.abspath(path)) + + gROOT.SetBatch() + + from pvutils import get_default_tree_name + from pvutils import get_files, get_trees + from pvutils import set_legend, get_global, plot_comparison + + markers = get_markers() + colors = get_colors() + cat = get_categories(args.multi, args.smog) + label = args.label + if args.label == "": + label = get_labels(len(args.fileName)) + + tr = {} + tf = {} + tf = get_files(tf, label, args.fileName) + tr = get_trees(tf, tr, label, args.treeName, True) + + hist_x = {} + hist_y = {} + hist_z = {} + norm = True + hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", "Candidates Normalized", colors, markers, cat, label) + hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", "Candidates Normalized", colors, markers, cat, label) + hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", "Candidates Normalized", colors, markers, cat, label) + + plot_comparison(hist_x, args.prefix, "dx", cat, label, colors, norm) + plot_comparison(hist_y, args.prefix, "dy", cat, label, colors, norm) + plot_comparison(hist_z, args.prefix, "dz", cat, label, colors, norm) + + diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index b04330e898a..934a3d42f53 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -9,10 +9,17 @@ # or submit itself to any jurisdiction. # ############################################################################### +# The utils for processing output of the PrimaryVertexChecker output +# +# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) +# date: 02/2020 +# + + from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors from ROOT import TCanvas from ROOT import TGraphErrors, TLegend -from ROOT import gPad, kGray +from ROOT import gPad, kGray, TLatex def get_default_tree_name(is_checker): @@ -47,10 +54,12 @@ def set_style(graph, color, marker, xaxis, yaxis, title): graph.SetMarkerColor(color) graph.SetMarkerSize(1.3) graph.SetMarkerStyle(marker) + graph.GetYaxis().SetTitleOffset(0.85) if type(graph) == TH1F: graph.SetFillColor(color) graph.SetLineWidth(4) - graph.GetYaxis().SetTitleOffset(0.85) + graph.SetStats(False) + graph.GetYaxis().SetTitleOffset(1.1) graph.GetYaxis().SetTitleSize(0.06) graph.GetYaxis().SetLabelSize(0.06) graph.GetXaxis().SetTitleSize(0.06) @@ -76,6 +85,12 @@ def get_range(dependence, smog): return "(50,-200,200)" elif dependence == "rMC": return "(50,0.0,0.2)" + elif (dependence == "dx" or dependence == "dy"): + return "(50,-0.10,0.10)" + elif dependence == "dz": + return "(50,-0.5,0.5)" + elif "err" in dependence or "pull" in dependence: + return "(50,-3.5,3.5)" else: return "(66,4,70)" @@ -114,7 +129,7 @@ def get_eff(eff, hist, trees, dependence, colors, markers, smog, categories, lab=lab, hist_range=hist_range) - cut_den = 'nrectrmc>3 {cuts}'.format(cuts=categories[cat]["cut"]) + cut_den = 'nrectrmc>=4 {cuts}'.format(cuts=categories[cat]["cut"]) cut_nom = cut_den + ' && reco == 1' trees[lab].Draw(var_nom, cut_nom) @@ -195,9 +210,119 @@ def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): scale = gPad.GetUymax() / histmax_nom hist[cat][lab]["nom"].Scale(scale * 0.75) hist[cat][lab]["nom"].Draw("SAME") - + + eff[cat][lab].Draw("SAME P") + legend.Draw("SAME") saveName = '{prefix}_{dependence}_{cat}.pdf'.format( prefix=prefix, dependence=dependence, cat=cat) can.SaveAs(saveName) + +def transfer_dependence(dep): + if dep == "pullx": + return "dx/errx" + elif dep == "pully": + return "dy/erry" + elif dep == "pullz": + return "dz/errz" + else: + return dep + +def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, categories, + label): + + hist_range = get_range(dependence, False) + dep = transfer_dependence(dependence) + + for cat in categories: + hist[cat] = {} + i = 0 + for lab in label: + var = '{dependence}>>hist_{dep}_{cat}_{lab}{hist_range}'.format( + dependence=dep, + dep=dependence, + cat=cat, + lab=lab, + hist_range=hist_range) + + cut = 'nrectrmc>=4 && reco == 1 {cuts}'.format(cuts=categories[cat]["cut"]) + + trees[lab].Draw(var, cut) + h = gDirectory.Get('hist_{dep}_{cat}_{lab}'.format(dep=dependence, cat=cat, lab=lab)) + if i == 0: + col = colors[i]-10 + else: + col = colors[i] + set_style(h, col, markers[i], x_axis, y_axis, "") + + hist[cat][lab] = h + i += 1 + + return hist + +def get_text_cor(): + return {"x":[0.17, 0.65, 0.17, 0.65], "y":[0.92,0.92,0.75,0.75]} + +def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, units ): + s = 1.0 + if scale: + s = 1000.0 + + u = "" + if units: + u = "[#mu m]" + + text.SetNDC() + text.SetTextFont(132); + text.SetTextColor(color) + text.DrawLatex(x,y*1.0,lab) + + text.DrawLatex(x,y*0.95, "#mu = {0:0.2f} #pm {1:0.2f} {unit}".format( + mean*1000.0, mean_err*1000.0,unit=u)) + text.DrawLatex(x,y*0.90, "#sigma = {0:0.2f} #pm {1:0.2f} {unit}".format( + rms*s, rms_err*s,unit=u)) + return text + + +def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): + + for cat in categories: + can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), + "cR", 1200, 800) + can.SetBottomMargin(0.15) + can.SetLeftMargin(0.15) + can.SetTopMargin(0.20) + can.SetRightMargin(0.05) + + can.cd() + cor = get_text_cor() + + hist[cat][label[0]].GetYaxis().SetRangeUser(0.0, hist[cat][label[0]].GetMaximum()*1.1) + scale = True + units = True + if "pull" in dependence: + scale = False + units = False + if norm: + hist[cat][label[0]].DrawNormalized("hist") + hist_max = hist[cat][label[0]].GetMaximum() + i = 0 + for lab in label: + hist[cat][lab].DrawNormalized("SAME PE") + text = TLatex() + text = set_text(text,colors[i],cor["x"][i],cor["y"][i],lab, + hist[cat][lab].GetMean(), hist[cat][lab].GetMeanError(), + hist[cat][lab].GetRMS(), hist[cat][lab].GetRMSError(), + scale,units) + i+=1 + + else: + hist[cat][label[0]].Draw("hist") + for lab in label: + hist[cat][lab].Draw("SAME PE") + + can.Update() + saveName = '{prefix}_{dependence}_{cat}.pdf'.format( + prefix=prefix, dependence=dependence, cat=cat) + can.SaveAs(saveName) -- GitLab From ff00243c818fdaee4a431c578d53d9b71b0e50a2 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 27 Feb 2020 08:51:49 +0000 Subject: [PATCH 095/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7359521 --- .../scripts/PrimaryVertexCheckerPull.py | 23 ++--- .../scripts/PrimaryVertexCheckerResolution.py | 23 ++--- Hlt/RecoConf/scripts/utils/pvutils.py | 88 +++++++++++-------- 3 files changed, 73 insertions(+), 61 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py index 4c9e1f97df3..0e226d931be 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py @@ -132,16 +132,17 @@ if __name__ == '__main__': tf = get_files(tf, label, args.fileName) tr = get_trees(tf, tr, label, args.treeName, True) - hist_x = {} + hist_x = {} hist_y = {} hist_z = {} - norm = True #to-do - hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", "Candidates Normalized", colors, markers, cat, label) - hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", "Candidates Normalized", colors, markers, cat, label) - hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", "Candidates Normalized", colors, markers, cat, label) - - plot_comparison(hist_x, args.prefix, "pullx", cat, label, colors, norm) - plot_comparison(hist_y, args.prefix, "pully", cat, label, colors, norm) - plot_comparison(hist_z, args.prefix, "pullz", cat, label, colors, norm) - - + norm = True #to-do + hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", + "Candidates Normalized", colors, markers, cat, label) + hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", + "Candidates Normalized", colors, markers, cat, label) + hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", + "Candidates Normalized", colors, markers, cat, label) + + plot_comparison(hist_x, args.prefix, "pullx", cat, label, colors, norm) + plot_comparison(hist_y, args.prefix, "pully", cat, label, colors, norm) + plot_comparison(hist_z, args.prefix, "pullz", cat, label, colors, norm) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py index 9ee3f4b1be0..e89588da0e6 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py @@ -132,16 +132,17 @@ if __name__ == '__main__': tf = get_files(tf, label, args.fileName) tr = get_trees(tf, tr, label, args.treeName, True) - hist_x = {} + hist_x = {} hist_y = {} hist_z = {} - norm = True - hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", "Candidates Normalized", colors, markers, cat, label) - hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", "Candidates Normalized", colors, markers, cat, label) - hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", "Candidates Normalized", colors, markers, cat, label) - - plot_comparison(hist_x, args.prefix, "dx", cat, label, colors, norm) - plot_comparison(hist_y, args.prefix, "dy", cat, label, colors, norm) - plot_comparison(hist_z, args.prefix, "dz", cat, label, colors, norm) - - + norm = True + hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", + "Candidates Normalized", colors, markers, cat, label) + hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", + "Candidates Normalized", colors, markers, cat, label) + hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", + "Candidates Normalized", colors, markers, cat, label) + + plot_comparison(hist_x, args.prefix, "dx", cat, label, colors, norm) + plot_comparison(hist_y, args.prefix, "dy", cat, label, colors, norm) + plot_comparison(hist_z, args.prefix, "dz", cat, label, colors, norm) diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index 934a3d42f53..124731fe94f 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -10,11 +10,10 @@ ############################################################################### # The utils for processing output of the PrimaryVertexChecker output -# +# # author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) -# date: 02/2020 -# - +# date: 02/2020 +# from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors from ROOT import TCanvas @@ -210,30 +209,32 @@ def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): scale = gPad.GetUymax() / histmax_nom hist[cat][lab]["nom"].Scale(scale * 0.75) hist[cat][lab]["nom"].Draw("SAME") - + eff[cat][lab].Draw("SAME P") - + legend.Draw("SAME") saveName = '{prefix}_{dependence}_{cat}.pdf'.format( prefix=prefix, dependence=dependence, cat=cat) can.SaveAs(saveName) + def transfer_dependence(dep): if dep == "pullx": return "dx/errx" elif dep == "pully": return "dy/erry" elif dep == "pullz": - return "dz/errz" - else: - return dep + return "dz/errz" + else: + return dep + + +def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, + categories, label): -def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, categories, - label): - hist_range = get_range(dependence, False) - dep = transfer_dependence(dependence) + dep = transfer_dependence(dependence) for cat in categories: hist[cat] = {} @@ -245,13 +246,15 @@ def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, categor cat=cat, lab=lab, hist_range=hist_range) - - cut = 'nrectrmc>=4 && reco == 1 {cuts}'.format(cuts=categories[cat]["cut"]) - + + cut = 'nrectrmc>=4 && reco == 1 {cuts}'.format( + cuts=categories[cat]["cut"]) + trees[lab].Draw(var, cut) - h = gDirectory.Get('hist_{dep}_{cat}_{lab}'.format(dep=dependence, cat=cat, lab=lab)) + h = gDirectory.Get('hist_{dep}_{cat}_{lab}'.format( + dep=dependence, cat=cat, lab=lab)) if i == 0: - col = colors[i]-10 + col = colors[i] - 10 else: col = colors[i] set_style(h, col, markers[i], x_axis, y_axis, "") @@ -261,32 +264,37 @@ def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, categor return hist + def get_text_cor(): - return {"x":[0.17, 0.65, 0.17, 0.65], "y":[0.92,0.92,0.75,0.75]} + return {"x": [0.17, 0.65, 0.17, 0.65], "y": [0.92, 0.92, 0.75, 0.75]} + -def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, units ): +def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, + units): s = 1.0 if scale: s = 1000.0 - u = "" + u = "" if units: u = "[#mu m]" text.SetNDC() - text.SetTextFont(132); + text.SetTextFont(132) text.SetTextColor(color) - text.DrawLatex(x,y*1.0,lab) + text.DrawLatex(x, y * 1.0, lab) - text.DrawLatex(x,y*0.95, "#mu = {0:0.2f} #pm {1:0.2f} {unit}".format( - mean*1000.0, mean_err*1000.0,unit=u)) - text.DrawLatex(x,y*0.90, "#sigma = {0:0.2f} #pm {1:0.2f} {unit}".format( - rms*s, rms_err*s,unit=u)) - return text + text.DrawLatex( + x, y * 0.95, "#mu = {0:0.2f} #pm {1:0.2f} {unit}".format( + mean * 1000.0, mean_err * 1000.0, unit=u)) + text.DrawLatex( + x, y * 0.90, "#sigma = {0:0.2f} #pm {1:0.2f} {unit}".format( + rms * s, rms_err * s, unit=u)) + return text def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): - + for cat in categories: can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), "cR", 1200, 800) @@ -296,14 +304,15 @@ def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): can.SetRightMargin(0.05) can.cd() - cor = get_text_cor() + cor = get_text_cor() - hist[cat][label[0]].GetYaxis().SetRangeUser(0.0, hist[cat][label[0]].GetMaximum()*1.1) + hist[cat][label[0]].GetYaxis().SetRangeUser( + 0.0, hist[cat][label[0]].GetMaximum() * 1.1) scale = True units = True if "pull" in dependence: - scale = False - units = False + scale = False + units = False if norm: hist[cat][label[0]].DrawNormalized("hist") hist_max = hist[cat][label[0]].GetMaximum() @@ -311,18 +320,19 @@ def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): for lab in label: hist[cat][lab].DrawNormalized("SAME PE") text = TLatex() - text = set_text(text,colors[i],cor["x"][i],cor["y"][i],lab, - hist[cat][lab].GetMean(), hist[cat][lab].GetMeanError(), - hist[cat][lab].GetRMS(), hist[cat][lab].GetRMSError(), - scale,units) - i+=1 + text = set_text(text, colors[i], cor["x"][i], cor["y"][i], lab, + hist[cat][lab].GetMean(), + hist[cat][lab].GetMeanError(), + hist[cat][lab].GetRMS(), + hist[cat][lab].GetRMSError(), scale, units) + i += 1 else: hist[cat][label[0]].Draw("hist") for lab in label: hist[cat][lab].Draw("SAME PE") - can.Update() + can.Update() saveName = '{prefix}_{dependence}_{cat}.pdf'.format( prefix=prefix, dependence=dependence, cat=cat) can.SaveAs(saveName) -- GitLab From 7fee7c08b22eeecfeceafcf52965ed4dcf778d59 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 27 Feb 2020 18:39:59 +0100 Subject: [PATCH 096/199] change to the new vertex convertor --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index b21619092ed..97c9d8e166c 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -24,7 +24,7 @@ from PyConf.Algorithms import ( PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_) -from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertex as FromVectorLHCbRecVertex +from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector @@ -282,9 +282,9 @@ def monitor_track_resolution(InputTracks): def monitor_IPresolution(InputTracks, VeloTracks): - #vertexConverter = FromVectorLHCbRecVertex( - # InputVerticesName=make_pvs(), - # InputTracksName=VeloTracks).OutputVerticesName + vertexConverter = FromVectorLHCbRecVertex( + InputVerticesName=make_pvs(), + InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks, LinksToLHCbIDs=links_to_lhcbids) @@ -293,6 +293,6 @@ def monitor_IPresolution(InputTracks, VeloTracks): MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), LinkerLocation=links_to_tracks, - PVContainer=make_pvs(), + PVContainer=vertexConverter, NTupleLUN="FILE1") return IPres_checker -- GitLab From 52269141fbb99ba9c64d98e6996e2b47c19e96fd Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 27 Feb 2020 17:40:41 +0000 Subject: [PATCH 097/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7370431 --- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index aa891e48c17..096234f8d10 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -375,7 +375,9 @@ def make_SciFiTrackForwarding_tracks( """ return SciFiTrackForwarding( #HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"]).Output - HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"], SecondLoop=False).Output + HitsLocation=make_ft_hits(), + InputTracks=input_tracks["Pr"], + SecondLoop=False).Output @configurable -- GitLab From 50f1f3026b36c450930d363d2b2f96e33fd83ea7 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Thu, 27 Feb 2020 23:25:37 +0100 Subject: [PATCH 098/199] add muonID efficiency test --- .../scripts/PrCheckerEfficiency_HLT1.py | 14 ++++---- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 17 +++++---- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 14 ++++---- .../scripts/PrCheckerTrackResolution.py | 15 +++++--- .../hlt1_rec_trackingeff_plots.qmt | 35 +++++++++++++++++++ .../hlt1_reco_IPresolution_plots.qmt | 3 +- .../performance.qms/hlt1_reco_muonIDeff.qmt | 31 ++++++++++++++++ .../hlt1_reco_muonIDeff_plots.qmt | 35 +++++++++++++++++++ .../hlt1_reco_trackresolution_plots.qmt | 2 ++ 9 files changed, 140 insertions(+), 26 deletions(-) create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff.qmt create mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index a39ab47e3b4..d9b53a6b939 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -69,12 +69,12 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--mode', type=str, default='MiniBias', help='decay mode') + '--filename', type=str, default='MCMatching_MiniBias.root', help='input file') parser.add_argument( - '--method', + '--outputfile', type=str, - default='baseline', - help='HLT1 reconstruction method') + default='efficiency_plots.root', + help='output file') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -82,7 +82,7 @@ def argument_parser(): return parser -def PrCheckerEfficiency(directory, mode, method, plotstyle): +def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, @@ -90,10 +90,10 @@ def PrCheckerEfficiency(directory, mode, method, plotstyle): from utils.Legend import place_legend setLHCbStyle() - f = TFile(directory + "/MCMatching_" + method + "_" + mode + ".root", + f = TFile(directory + "/" + filename, "read") outputfile = TFile( - directory + "/efficiency_plots_" + method + "_" + mode + ".root", + directory + "/" + outputfile, "recreate") latex = TLatex() diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 0e142a26731..81f60b13393 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -39,10 +39,15 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--name', + '--filename', type=str, - default='Hlt1ForwardTracking_IPresolution', - help='name of input tuple files') + default='Hlt1ForwardTracking_IPresolution.root', + help='input tuple files') + parser.add_argument( + '--outputfile', + type=str, + default='IPResolution_plots.root', + help='output files for plots') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -50,14 +55,14 @@ def argument_parser(): return parser -def PrCheckerIPresolution(directory, name, plotstyle): +def PrCheckerIPresolution(directory, filename, outputfile, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle setLHCbStyle() - f = TFile.Open(os.path.join(directory, name + '.root'), 'read') - outputfile = TFile("IPResolution_plots.root", "recreate") + f = TFile.Open(os.path.join(directory, filename), 'read') + outputfile = TFile(directory+"/"+outputfile, "recreate") tuples = f.Get("TrackIPResolutionCheckerNT/tracks") outputfile.cd() diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 2620ca98be1..945d9dca7f0 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -58,12 +58,12 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--mode', type=str, default='MiniBias', help='name of decay mode') + '--filename', type=str, default='PrChecker_MuonID_MiniBias.root', help='input file') parser.add_argument( - '--output', + '--outputfile', type=str, - default='muonIDeff_plots_', - help='name of output file') + default='muonIDeff_plots.root', + help='output file') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -71,7 +71,7 @@ def argument_parser(): return parser -def PrCheckerEfficiency(directory, mode, output, plotstyle): +def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, @@ -79,8 +79,8 @@ def PrCheckerEfficiency(directory, mode, output, plotstyle): from utils.Legend import place_legend setLHCbStyle() - f_CPU = TFile(directory + "/PrChecker_MuonID_" + mode + ".root", "read") - outputfile = TFile(directory + "/" + output + mode + ".root", "recreate") + f_CPU = TFile(directory + "/"+ filename, "read") + outputfile = TFile(directory + "/" + outputfile, "recreate") latex = TLatex() latex.SetNDC() diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index bd8ad506675..d6461913390 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -38,9 +38,14 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--name', + '--filename', type=str, - default='Hlt1ForwardTrackingResolution', + default='Hlt1ForwardTrackingResolution.root', + help='name of input tuple files') + parser.add_argument( + '--outputfile', + type=str, + default='TrackResolution_plots.root', help='name of input tuple files') parser.add_argument( '--plotstyle', @@ -49,15 +54,15 @@ def argument_parser(): return parser -def PrCheckerTrackResolution(directory, name, plotstyle): +def PrCheckerTrackResolution(directory, filename, outputfile, plotstyle): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle from utils.Legend import place_legend setLHCbStyle() - f = TFile.Open(os.path.join(directory, name + '.root'), 'read') - outputfile = TFile("TrackResolution_plots.root", "recreate") + f = TFile.Open(os.path.join(directory, filename), 'read') + outputfile = TFile(outputfile, "recreate") outputfile.cd() hres_p = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt new file mode 100644 index 00000000000..731c0006648 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt @@ -0,0 +1,35 @@ + + + + +python + + $RECOCONFROOT/scripts/PrCheckerEfficiency_HLT1.py + --filename=MCMatching_MiniBias.root + --outputfile=efficiency_plots.root + --plotstyle=$RECOCONFROOT/scripts/ + --output=hlt1_reco_trackeff_plot.opts.py + +true + + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + + diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt index ce4f78f3690..ec49d8a7ae3 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @@ -16,7 +16,8 @@ Test script to determine IP resolution on simulation. python $RECOCONFROOT/scripts/PrCheckerIPresolution.py - --name=Hlt1ForwardTracking_IPresolution + --filename=Hlt1ForwardTracking_IPresolution.root + --outputfile=IPResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ --output=hlt1_reco_IPresolution_plot.opts.py diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff.qmt new file mode 100644 index 00000000000..def414f3724 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff.qmt @@ -0,0 +1,31 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $RECOCONFROOT/options/hlt1_reco_muonid_efficiency.py + --output=hlt1_reco_muonid_efficiency.opts.py + --all-opt + +true + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt new file mode 100644 index 00000000000..e8c326d40e1 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt @@ -0,0 +1,35 @@ + + + + +python + + $RECOCONFROOT/scripts/PrCheckerMuonIDEff.py + --filename=PrChecker_MuonID_MiniBias.root + --outputfile=muonIDeff_plots.root + --plotstyle=$RECOCONFROOT/scripts/ + --output=hlt1_reco_muonideff_plot.opts.py + +true + + + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + + diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt index dd1d3b8976f..1bdb4418760 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt @@ -16,6 +16,8 @@ Test plot script to draw the track resolution in Hlt1 and test for changes. python $RECOCONFROOT/scripts/PrCheckerTrackResolution.py + --filename=Hlt1ForwardTrackingResolution.root + --outputfile=TrackResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ --output=hlt1_reco_trackresolution.opts.py --all-opt -- GitLab From 33412cf3406ca87181583648f8158d4227605633 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 27 Feb 2020 22:26:18 +0000 Subject: [PATCH 099/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7372463 --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 12 ++++++------ Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 2 +- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 7 +++++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index d9b53a6b939..43a8c3afaa4 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -69,7 +69,10 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--filename', type=str, default='MCMatching_MiniBias.root', help='input file') + '--filename', + type=str, + default='MCMatching_MiniBias.root', + help='input file') parser.add_argument( '--outputfile', type=str, @@ -90,11 +93,8 @@ def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): from utils.Legend import place_legend setLHCbStyle() - f = TFile(directory + "/" + filename, - "read") - outputfile = TFile( - directory + "/" + outputfile, - "recreate") + f = TFile(directory + "/" + filename, "read") + outputfile = TFile(directory + "/" + outputfile, "recreate") latex = TLatex() latex.SetNDC() diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 81f60b13393..0568d9fb763 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -62,7 +62,7 @@ def PrCheckerIPresolution(directory, filename, outputfile, plotstyle): setLHCbStyle() f = TFile.Open(os.path.join(directory, filename), 'read') - outputfile = TFile(directory+"/"+outputfile, "recreate") + outputfile = TFile(directory + "/" + outputfile, "recreate") tuples = f.Get("TrackIPResolutionCheckerNT/tracks") outputfile.cd() diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 945d9dca7f0..211819d69c8 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -58,7 +58,10 @@ def argument_parser(): default=os.getcwd(), help='location of input tuple files') parser.add_argument( - '--filename', type=str, default='PrChecker_MuonID_MiniBias.root', help='input file') + '--filename', + type=str, + default='PrChecker_MuonID_MiniBias.root', + help='input file') parser.add_argument( '--outputfile', type=str, @@ -79,7 +82,7 @@ def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): from utils.Legend import place_legend setLHCbStyle() - f_CPU = TFile(directory + "/"+ filename, "read") + f_CPU = TFile(directory + "/" + filename, "read") outputfile = TFile(directory + "/" + outputfile, "recreate") latex = TLatex() -- GitLab From e3c7ac3fd371ff288a4b1f3049dcc4b7026b7328 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 28 Feb 2020 11:20:20 +0100 Subject: [PATCH 100/199] modify the monitor_IPresolution --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 9 ++++++--- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 5 +---- Hlt/RecoConf/python/RecoConf/mc_checking.py | 10 +++------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 2d3221e8b59..772a8e709fd 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -10,7 +10,8 @@ ############################################################################### from Moore import options, run_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks, make_pvs +from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from RecoConf.mc_checking import monitor_IPresolution from Configurables import ApplicationMgr from Configurables import NTupleSvc @@ -19,8 +20,10 @@ from Configurables import NTupleSvc def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) - pr_checker = monitor_IPresolution(fitted_tracks["v1"], - hlt1_tracks["Velo"]["v1"]) + vertexConverter = FromVectorLHCbRecVertex( + InputVerticesName=make_pvs(), + InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName + pr_checker = monitor_IPresolution(fitted_tracks["v1"], vertexConverter) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 096234f8d10..38137d66d8a 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -374,10 +374,7 @@ def make_SciFiTrackForwarding_tracks( DataHandle: SciFiTrackForwarding's Output. """ return SciFiTrackForwarding( - #HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"]).Output - HitsLocation=make_ft_hits(), - InputTracks=input_tracks["Pr"], - SecondLoop=False).Output + HitsLocation=make_ft_hits(), InputTracks=input_tracks["Pr"]).Output @configurable diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 97c9d8e166c..ec32806ef14 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -24,14 +24,13 @@ from PyConf.Algorithms import ( PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_) -from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters, make_pvs) + make_velo_full_clusters) from Hlt2Conf.data_from_file import mc_unpackers @@ -280,11 +279,8 @@ def monitor_track_resolution(InputTracks): return res_checker -def monitor_IPresolution(InputTracks, VeloTracks): +def monitor_IPresolution(InputTracks, InputPVs): - vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=make_pvs(), - InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks, LinksToLHCbIDs=links_to_lhcbids) @@ -293,6 +289,6 @@ def monitor_IPresolution(InputTracks, VeloTracks): MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), LinkerLocation=links_to_tracks, - PVContainer=vertexConverter, + PVContainer=InputPVs, NTupleLUN="FILE1") return IPres_checker -- GitLab From 31d362a754c0a1cbdb71493be37caeae9e8cefe9 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 28 Feb 2020 12:01:09 +0100 Subject: [PATCH 101/199] change the input in monitor_IPresolution --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 7 ++----- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 ++++++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 772a8e709fd..19248df61cd 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -11,7 +11,6 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks, make_pvs -from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from RecoConf.mc_checking import monitor_IPresolution from Configurables import ApplicationMgr from Configurables import NTupleSvc @@ -20,10 +19,8 @@ from Configurables import NTupleSvc def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) - vertexConverter = FromVectorLHCbRecVertex( - InputVerticesName=make_pvs(), - InputTracksName=hlt1_tracks["Velo"]["v1"]).OutputVerticesName - pr_checker = monitor_IPresolution(fitted_tracks["v1"], vertexConverter) + inputPVs = make_pvs() + pr_checker = monitor_IPresolution(fitted_tracks["v1"], inputPVs, hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index ec32806ef14..21866764a1f 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -24,6 +24,7 @@ from PyConf.Algorithms import ( PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_) +from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector @@ -279,8 +280,11 @@ def monitor_track_resolution(InputTracks): return res_checker -def monitor_IPresolution(InputTracks, InputPVs): +def monitor_IPresolution(InputTracks, InputPVs, VeloTracks): + vertexConverter = FromVectorLHCbRecVertex( + InputVerticesName=InputPVs, + InputTracksName=VeloTracks).OutputVerticesName links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( InputTracks, LinksToLHCbIDs=links_to_lhcbids) @@ -289,6 +293,6 @@ def monitor_IPresolution(InputTracks, InputPVs): MCParticleInput=mc_unpackers()["MCParticles"], MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), LinkerLocation=links_to_tracks, - PVContainer=InputPVs, + PVContainer=vertexConverter, NTupleLUN="FILE1") return IPres_checker -- GitLab From e46ebedab11113f8f9bc3477374a49fbd5a3ad97 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 28 Feb 2020 11:01:53 +0000 Subject: [PATCH 102/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7378111 --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 19248df61cd..2cc6d335657 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -20,7 +20,8 @@ def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) inputPVs = make_pvs() - pr_checker = monitor_IPresolution(fitted_tracks["v1"], inputPVs, hlt1_tracks["Velo"]["v1"]) + pr_checker = monitor_IPresolution(fitted_tracks["v1"], inputPVs, + hlt1_tracks["Velo"]["v1"]) return Reconstruction('IPresolution', [pr_checker], [require_gec()]) -- GitLab From 88c111239256591716c37907c5ad5acd5da6e3e5 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 28 Feb 2020 12:47:16 +0000 Subject: [PATCH 103/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7379715 --- Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py | 6 ++++-- Hlt/RecoConf/python/RecoConf/mc_checking.py | 2 -- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py index 3f2244ffaab..ce1bc77ceea 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py @@ -20,13 +20,15 @@ from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import AllenUpdater + def hlt1_reco_pvchecker(): - + allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() data = [allen_pvs] - data += get_pv_checkers(allen_pvs, allen_tracks["Velo"], produce_ntuple=True) + data += get_pv_checkers( + allen_pvs, allen_tracks["Velo"], produce_ntuple=True) return Reconstruction('PVperformance', data, [require_gec()]) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index b035b1b6618..01085d90487 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -298,7 +298,6 @@ def make_track_filter(InputTracks, code): return filtered_tracks - def monitor_track_resolution(InputTracks): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() links_to_tracks = make_links_tracks_mcparticles( @@ -326,4 +325,3 @@ def monitor_IPresolution(InputTracks, InputPVs, VeloTracks): PVContainer=vertexConverter, NTupleLUN="FILE1") return IPres_checker - -- GitLab From 4c5513ebb3d423c9003c027c99271c314c273d30 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 3 Mar 2020 00:07:19 +0100 Subject: [PATCH 104/199] add possibility to plot multiply input files --- .../scripts/PrCheckerEfficiency_HLT1.py | 377 ++++++++++-------- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 301 ++++++++------ Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 223 ++++++----- .../scripts/PrCheckerTrackResolution.py | 189 +++++---- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 8 +- Hlt/RecoConf/scripts/utils/LHCbStyle.py | 26 +- 6 files changed, 670 insertions(+), 454 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 43a8c3afaa4..70efeca341a 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -26,7 +26,7 @@ import os, sys import argparse import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad +from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kGray, kOrange, kMagenta, kCyan, kTRUE, kFALSE, gPad from ROOT import gROOT, gStyle, TStyle, TPaveText from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors import logging @@ -36,11 +36,9 @@ import subprocess def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] - def getTrackers(): return ["Velo", "Upstream", "Forward"] - def getOriginFolders(): basedict = {"Velo": {}, "Upstream": {}, "Forward": {}} @@ -50,55 +48,119 @@ def getOriginFolders(): return basedict +def get_colors(): + return [kBlack, kAzure, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + +def get_markers(): + return [20, 24, 21, 22, 23, 25 ] +def get_fillstyles(): + return [3004, 3003, 3325, 3144, 3244, 3444] def getGhostHistoNames(): return ["eta", "nPV", "pt", "p"] - -def getMode(): - return [ - "Bd2Kstee", "Bs2PhiPhi", "Dp2KSPip", "Dst2D0pi", "Z2mumu", "Bd2Dstmumu" - ] - - def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") - parser.add_argument( - '--directory', - type=str, - default=os.getcwd(), - help='location of input tuple files') parser.add_argument( '--filename', type=str, default='MCMatching_MiniBias.root', - help='input file') + nargs='+', + help='input files, including path') parser.add_argument( - '--outputfile', + '--outfile', type=str, default='efficiency_plots.root', help='output file') + parser.add_argument( + '--label', + nargs='+', + default="EffChecker", + help='label for files') parser.add_argument( '--plotstyle', default=os.getcwd(), help='location of LHCb utils plot style file') + parser.add_argument( + '--dist', + default=False, + action='store_true', + help='draw histogram of all files') + parser.add_argument( + '--plotelec', + default=False, + action='store_true', + help='draw eff of electron on the same canvas') + parser.add_argument( + '--savepdf', + default=False, + action='store_true', + help='save plots in pdf format') return parser - -def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): +def get_files(tf, filename, label): + for i, f in enumerate(filename): + tf[label[i]] = TFile(f, "read") + return tf + +def get_eff(eff, hist, tf, histoName, label, var): + eff = {} + hist = {} + for i, lab in enumerate(label): + numeratorName = histoName + "_reconstructed" + numerator = tf[lab].Get(numeratorName) + denominatorName = histoName + "_reconstructible" + denominator = tf[lab].Get(denominatorName) + if numerator.GetEntries() == 0 or denominator.GetEntries() == 0: + continue + numerator.Sumw2() + denominator.Sumw2() + + eff[lab] = TGraphAsymmErrors() + eff[lab].SetName(lab) + eff[lab].Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + eff[lab].SetTitle(lab+"not elec.") + if (histoName.find('strange') != -1): + eff[lab].SetTitle(lab+" from stranges") + if (histoName.find('electron') != -1): + eff[lab].SetTitle(lab+" electron") + + hist[lab]= denominator.Clone() + hist[lab].SetName("h_numerator_notElectrons") + hist[lab].SetTitle(var +" histo. not elec.") + if (histoName.find('strange') != -1): + hist[lab].SetTitle(var +" histo. stranges") + if (histoName.find('electron') != -1): + hist[lab].SetTitle(var +" histo. electron") + + if var== "p": + eff[lab].GetXaxis().SetRangeUser(0, 50000) + hist[lab].GetXaxis().SetRangeUser(0, 50000) + if var== "pt": + eff[lab].GetXaxis().SetRangeUser(0, 5000) + hist[lab].GetXaxis().SetRangeUser(0, 5000) + + return eff, hist + +def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, savepdf): sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle + from utils.LHCbStyle import setLHCbStyle, set_style from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, categoriesDict, getCuts) from utils.Legend import place_legend setLHCbStyle() - f = TFile(directory + "/" + filename, "read") - outputfile = TFile(directory + "/" + outputfile, "recreate") + markers = get_markers() + colors = get_colors() + styles= get_fillstyles() + tf={} + + tf=get_files(tf, filename, label) + outputfile = TFile(outfile, "recreate") latex = TLatex() latex.SetNDC() - latex.SetTextSize(0.045) + latex.SetTextSize(0.05) efficiencyHistoDict = efficiencyHistoDict() efficiencyHistos = getEfficiencyHistoNames() @@ -123,140 +185,134 @@ def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): # calculate efficiency for histo in efficiencyHistos: - title = "efficiency vs. " + histo + ", " + categories[tracker][ + canvastitle = "efficiency_" + histo + ", " + categories[tracker][ cut]["title"] - name = "efficiency vs. " + histo - canvas = TCanvas(name, title) # get efficiency for not electrons category histoName = histoBaseName + "" + efficiencyHistoDict[histo][ "variable"] print("not electrons: " + histoName) - numeratorName = histoName + "_reconstructed" - numerator = f.Get(numeratorName) - denominatorName = histoName + "_reconstructible" - denominator = f.Get(denominatorName) - if numerator.GetEntries() == 0 or denominator.GetEntries( - ) == 0: - continue - - numerator.Sumw2() - denominator.Sumw2() - - g_efficiency_notElectrons = TGraphAsymmErrors() - g_efficiency_notElectrons.SetName("g_efficiency_notElectrons") - g_efficiency_notElectrons.Divide(numerator, denominator, - "cl=0.683 b(1,1) mode") - g_efficiency_notElectrons.SetTitle("Eff. not electrons") - if (histoName.find('strange') != -1): - g_efficiency_notElectrons.SetTitle("Eff. from stranges") - g_efficiency_notElectrons.Draw() - - h_numerator_notElectrons = denominator.Clone() - h_numerator_notElectrons.SetName("h_numerator_notElectrons") - h_numerator_notElectrons.SetTitle( - efficiencyHistoDict[histo]["variable"] + - " histo. not electrons") - if (histoName.find('strange') != -1): - h_numerator_notElectrons.SetTitle( - efficiencyHistoDict[histo]["variable"] + - " histo. stranges") - - # get efficiency for electrons category - if categories[tracker][cut]["plotElectrons"]: - histoNameElec = "Track/" + folder + tracker + "/" + categories[ - tracker][cut]["Electrons"] - histoName = histoNameElec + "_" + efficiencyHistoDict[ - histo]["variable"] - print("electrons: " + histoName) - numeratorName = histoName + "_reconstructed" - numerator = f.Get(numeratorName) - denominatorName = histoName + "_reconstructible" - denominator = f.Get(denominatorName) - if numerator.GetEntries() == 0 or denominator.GetEntries( - ) == 0: - continue - - numerator.Sumw2() - denominator.Sumw2() - - g_efficiency_electrons = TGraphAsymmErrors() - g_efficiency_electrons.SetName("g_efficiency_electrons") - g_efficiency_electrons.Divide(numerator, denominator, - "cl=0.683 b(1,1) mode") - g_efficiency_electrons.SetTitle("Eff. electrons") - g_efficiency_electrons.SetMarkerColor(kAzure - 3) - g_efficiency_electrons.SetMarkerStyle(24) - g_efficiency_electrons.SetLineColor(kAzure - 3) - - h_numerator_electrons = denominator.Clone() - h_numerator_electrons.SetName("h_numerator_electrons") - h_numerator_electrons.SetTitle( - efficiencyHistoDict[histo]["variable"] + - " histo. electrons") - - #draw them both + eff={} + hist_den={} + eff, hist_den = get_eff( eff, hist_den, tf, histoName, label, histo) + name = "efficiency_" + histo + canvas = TCanvas(name, canvastitle) mg = TMultiGraph() - mg.Add(g_efficiency_notElectrons) - if categories[tracker][cut]["plotElectrons"]: - mg.Add(g_efficiency_electrons) - - mg.Draw("ap") + for i, lab in enumerate(label): + mg.Add(eff[lab]) + set_style(eff[lab], colors[i], markers[i], styles[i]) + mg.Draw("AP") + mg.GetYaxis().SetRangeUser(0, 1.05) xtitle = efficiencyHistoDict[histo]["xTitle"] mg.GetXaxis().SetTitle(xtitle) mg.GetYaxis().SetTitle("Efficiency") - mg.GetYaxis().SetRangeUser(0, 1.05) - - mg.SetName("efficiency vs. " + histo) - mg.SetTitle(tracker + " " + cut) - - rightmax = 1.05 * h_numerator_notElectrons.GetMaximum() - scale = gPad.GetUymax() / rightmax - h_numerator_notElectrons.Scale(scale) - h_numerator_notElectrons.SetFillStyle(3004) - h_numerator_notElectrons.SetFillColor(kBlue) - h_numerator_notElectrons.SetLineColor(kBlue - 10) - h_numerator_notElectrons.SetLineWidth(2) - h_numerator_notElectrons.Draw("hist same") - if categories[tracker][cut]["plotElectrons"]: - scale = gPad.GetUymax() / ( - h_numerator_electrons.GetMaximum() * 1.1) - h_numerator_electrons.Scale(scale) - h_numerator_electrons.SetFillStyle(3003) - h_numerator_electrons.SetFillColor(kGreen) - h_numerator_electrons.SetLineColor(kGreen - 10) - h_numerator_electrons.SetLineWidth(2) - h_numerator_electrons.Draw("hist same") - axis = TGaxis(gPad.GetUxmax(), 0, gPad.GetUxmax(), 1.05, 0, - rightmax, 510, "+L") - if histo == "p": - axis = TGaxis(50000, 0, 50000, 1.05, 0, rightmax, 510, - "+L") - mg.GetXaxis().SetRangeUser(0, 50000) - if histo == "pt": - axis = TGaxis(5000, 0, 5000, 1.05, 0, rightmax, 510, "+L") - mg.GetXaxis().SetRangeUser(0, 5000) - axis.SetTitle("Number of events") - axis.SetTextFont(132) - axis.SetLabelFont(132) - axis.SetTitleFont(132) - axis.SetLabelSize(0.06) - axis.SetTitleSize(0.07) - axis.SetNdivisions(505) - gPad.SetRightMargin(0.75) + if dist: + for i, lab in enumerate(label): + rightmax = 1.05 * hist_den[lab].GetMaximum() + scale = gPad.GetUymax() / rightmax + hist_den[lab].Scale(scale) + if i==0: + set_style(hist_den[lab], kGray, markers[i], styles[i]) + else: + set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) + hist_den[lab].Draw("hist SAME") + else: + rightmax = 0.95 * hist_den[label[0]].GetMaximum() + scale = gPad.GetUymax() / rightmax + set_style(hist_den[label[0]], kBlue-10, markers[i], styles[i]) + hist_den[label[0]].Scale(scale) + hist_den[label[0]].Draw("hist SAME") canvas.PlaceLegend() - - pt = TPaveText(0.32, 0.65, 0.68, 0.8, "BRNDC") - pt.SetTextSize(0.05) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) cutName = categories[tracker][cut]["title"] - text = pt.AddText(cutName) - pt.Draw() + latex.DrawLatex(0.7,0.85, "LHCb simultaion") + latex.DrawLatex(0.35,0.3, cutName) + canvasName=tracker+"_"+cut+"_"+histo+".pdf" + if savepdf: + canvas.SaveAs(canvasName) canvas.SetRightMargin(0.05) canvas.Write() + # get efficiency for electrons category + if categories[tracker][cut]["plotElectrons"]: + histoNameElec = "Track/" + folder + tracker + "/" + categories[ + tracker][cut]["Electrons"] + histoName = histoNameElec + "_" + efficiencyHistoDict[ + histo]["variable"] + print("electrons: " + histoName) + eff_elec={} + hist_elec={} + eff_elec, hist_elec=get_eff(eff_elec, hist_elec, tf, histoName, label, histo) + + #draw efficiency of electron + canvas_elec=TCanvas(name+"_elec", canvastitle+"_elec") + mg_elec = TMultiGraph() + for i, lab in enumerate(label): + mg_elec.Add(eff_elec[lab]) + set_style(eff_elec[lab], colors[i], markers[i], styles[i]) + set_style(hist_elec[lab], colors[i]-10, markers[i], styles[i]) + mg_elec.Draw("AP") + mg_elec.GetYaxis().SetRangeUser(0, 1.05) + mg_elec.GetXaxis().SetTitle(xtitle) + mg_elec.GetYaxis().SetTitle("Efficiency") + if dist: + for lab in label: + rightmax = 1.05 * hist_elec[lab].GetMaximum() + scale = gPad.GetUymax() / rightmax + hist_elec[lab].Scale(scale) + hist_elec[lab].Draw("hist SAME") + else: + rightmax = 1.05 * hist_elec[label[0]].GetMaximum() + scale = gPad.GetUymax() / rightmax + hist_elec[label[0]].Scale(scale) + hist_elec[label[0]].Draw("hist SAME") + set_style(hist_elec[label[0]], kBlue-10, markers[i], styles[i]) + + canvas_elec.PlaceLegend() + latex.DrawLatex(0.7,0.85, "LHCb simultaion") + latex.DrawLatex(0.35,0.3, cutName) + canvasName_elec=tracker+"_"+cut+"_"+histo+"_elec.pdf" + if savepdf: + canvas_elec.SaveAs(canvasName_elec) + canvas_elec.SetRightMargin(0.05) + canvas_elec.Write() + + #draw them both + if plotelec: + canvas_com=TCanvas(name+"_combine", title+"_combine") + i=0 + mg_comb = TMultiGraph() + for lab in label: + mg_comb.Add(eff[lab]) + mg_comb.Add(eff_elec[lab]) + set_style(eff[lab], colors[i], markers[i], styles[i]) + set_style(eff_elec[lab], colors[i+1], markers[i+1], styles[i]) + set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) + set_style(hist_elec[lab], colors[i+1]-10, markers[i+1], styles[i]) + rightmax = 1.05 * hist_den[lab].GetMaximum() + scale = gPad.GetUymax() / rightmax + hist_den[lab].Scale(scale) + rightmax_elec = 1.05 * hist_elec[lab].GetMaximum() + scale_elec = gPad.GetUymax() / rightmax_elec + hist_elec[lab].Scale(scale_elec) + i=i+2 + + mg_comb.Draw("ap") + mg_comb.GetYaxis().SetRangeUser(0, 1.05) + rightmax = 1.05 * hist_den[label[0]].GetMaximum() + mg_comb.GetXaxis().SetTitle(xtitle) + mg_comb.GetYaxis().SetTitle("Efficiency") + mg_comb.GetYaxis().SetRangeUser(0, 1.05) + mg_comb.SetTitle(tracker + " " + cut) + for lab in label: + hist_lab[lab].Draw("hist SAME") + hist_elec[lab].Draw("hist SAME") + + canvas_com.PlaceLegend() + latex.DrawLatex(0.7,0.85, "LHCb simultaion") + latex.DrawLatex(0.35,0.3, cutName) + canvas_com.SetRightMargin(0.05) + canvas_com.Write() + # calculate ghost rate if tracker == "Forward": histoBaseName = "Track/" + folder + tracker + "/" @@ -271,28 +327,33 @@ def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): "variable"] + "_Total" print("ghost histo: " + histoBaseName + " " + numeratorName + " " + denominatorName) - numerator = f.Get(numeratorName) - denominator = f.Get(denominatorName) - numerator.Sumw2() - denominator.Sumw2() - - g_efficiency = TGraphAsymmErrors() - g_efficiency.SetName(title + " ref") - g_efficiency.Divide(numerator, denominator, - "cl=0.683 b(1,1) mode") + ghost={} + mg = TMultiGraph() + for i, lab in enumerate(label): + numerator = tf[lab].Get(numeratorName) + denominator = tf[lab].Get(denominatorName) + numerator.Sumw2() + denominator.Sumw2() + + ghost[lab]= TGraphAsymmErrors() + ghost[lab].SetName(lab) + ghost[lab].Divide(numerator, denominator, + "cl=0.683 b(1,1) mode") + set_style(ghost[lab], colors[i], markers[i], styles[i]) + mg.Add(ghost[lab]) xtitle = ghostHistoDict[histo]["xTitle"] - g_efficiency.GetXaxis().SetTitle(xtitle) - g_efficiency.GetYaxis().SetTitle("ghost rate") - g_efficiency.Write() - g_efficiency.Draw("ap") - + mg.GetXaxis().SetTitle(xtitle) + mg.GetYaxis().SetTitle("ghost rate") + mg.Draw("ap") + canvas.PlaceLegend() + if savepdf: + canvas.SaveAs("ghost_rate_"+histo+".pdf") canvas.Write() outputfile.Write() outputfile.Close() - f.Close() - + if __name__ == '__main__': parser = argument_parser() diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 0568d9fb763..0ac5ccb055e 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -22,160 +22,227 @@ import os, sys import argparse import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 -from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import kDashed, kRed, kGreen, kBlue, kCyan, kMagenta, kBlack, kOrange, kAzure, kTRUE, kFALSE, gPad, TH1F, TH2F, TF1 +from ROOT import gDirectory, gROOT, gStyle, TStyle, TPaveText, TString from ROOT import ROOT, vector, TGraphAsymmErrors -from collections import defaultdict +def get_colors(): + return [kBlack, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] -#from collectRunResults import send_notification_mattermost +def get_markers(): + return [20, 24, 21, 22, 23, 25 ] +def get_fillstyles(): + return [3004, 3003, 3325, 3144, 3244, 3444] +def get_files(tf, filename, label): + for i, f in enumerate(filename): + tf[label[i]] = TFile(f, "read") + return tf + +def get_trees(tr, tf, label): + for lab in label: + tr[lab]=tf[lab].Get("TrackIPResolutionCheckerNT/tracks") + return tr def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") - parser.add_argument( - '--directory', - type=str, - default=os.getcwd(), - help='location of input tuple files') parser.add_argument( '--filename', - type=str, - default='Hlt1ForwardTracking_IPresolution.root', - help='input tuple files') + nargs='+', + default=[], + help='input tuple files, including path') parser.add_argument( - '--outputfile', - type=str, - default='IPResolution_plots.root', - help='output files for plots') + '--label', + nargs='+', + default=["IPchecker"], + help='label of input files') + parser.add_argument( + '--outfile', + default='IPresolution_plots.root', + help='output file name ') + parser.add_argument( + '--savepdf', + default=False, + action='store_true', + help='save plots in pdf format') parser.add_argument( '--plotstyle', default=os.getcwd(), help='location of LHCb utils plot style file') return parser +def get_resolution(resx, resy, tr, label): -def PrCheckerIPresolution(directory, filename, outputfile, plotstyle): + resIPx={} + resIPy={} + resIPx_1={} + resIPy_1={} + markers = get_markers() + colors = get_colors() + styles = get_fillstyles() + cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" + print("Velo track from PV in acceptance: " + cutAcc) + for i, lab in enumerate(label): + ### typeofprefix==0 for track from PV and matched with MC + resIPx[lab] = TH2F("resIPx_"+lab, "IPx:1/pt", 20, 0, 2, 100, -300, 300) + resIPy[lab] = TH2F("resIPy_"+lab, "IPy:1/pt", 20, 0, 2, 100, -300, 300) + resIPx[lab].SetMarkerStyle(1) + resIPy[lab].SetMarkerStyle(1) + varx = "recIPx*1000:1.0/truept" + vary = "recIPy*1000:1.0/truept" + print("IPx var: " + varx +" " + " IPy var: " + vary) + tr[lab].Draw(varx + ">>resIPx_"+lab, cutAcc) + tr[lab].Draw(vary + ">>resIPy_"+lab, cutAcc) + resIPx[lab].FitSlicesY() + resIPy[lab].FitSlicesY() + resx[lab] = gDirectory.Get("resIPx_"+lab+"_2") + resy[lab] = gDirectory.Get("resIPy_"+lab+"_2") + resIPx_1[lab]= gDirectory.Get("resIPx_"+lab+"_1") + resIPy_1[lab]= gDirectory.Get("resIPy_"+lab+"_1") + for i in range(1, 20): + print(lab+": in 1/pT region: (" + format(resIPx_1[lab].GetBinLowEdge(i), '.2f') + + ", " + format( + resIPx_1[lab].GetBinLowEdge(i) + resIPx_1[lab].GetBinWidth(i), '.2f') + + ") [c/GeV]" + " ---- " + "resIPx for mean : " + + format(resIPx_1[lab].GetBinContent(i), '.2f') + "[\mum] width : " + + format(resx[lab].GetBinContent(i), '.2f') + "[\mum] ---- " + + "resIPy for mean : " + format(resIPy_1[lab].GetBinContent(i), '.2f') + + "[\mum] width : " + format(resy[lab].GetBinContent(i), '.2f') + + "[\mum]") + + return resx, resy + +def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle + from utils.LHCbStyle import setLHCbStyle, set_style setLHCbStyle() - - f = TFile.Open(os.path.join(directory, filename), 'read') - outputfile = TFile(directory + "/" + outputfile, "recreate") - - tuples = f.Get("TrackIPResolutionCheckerNT/tracks") + from utils.Legend import place_legend + latex = TLatex() + latex.SetNDC() + latex.SetTextSize(0.05) + + markers = get_markers() + colors = get_colors() + styles= get_fillstyles() + tf={} + tr={} + tf=get_files(tf, filename, label) + tr=get_trees(tr, tf, label) + + outputfile = TFile(outfile, "recreate") outputfile.cd() - ### typeofprefix==0 for track from PV and matched with MC - cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" - print("Velo track from PV in acceptance: " + cutAcc) - resIPx = TH2F("resIPx", "IPx:1/pt", 20, 0, 3, 100, -300, 300) - resIPy = TH2F("resIPy", "IPy:1/pt", 20, 0, 3, 100, -300, 300) - resIPx.SetMarkerStyle(1) - resIPy.SetMarkerStyle(1) - varx = "recIPx*1000:1.0/truept" - vary = "recIPy*1000:1.0/truept" - print("IPx var: " + varx) - print("IPy var: " + vary) - tuples.Draw(varx + ">>resIPx", cutAcc) - tuples.Draw(vary + ">>resIPy", cutAcc) - resIPx.FitSlicesY() - resIPy.FitSlicesY() - hresx_2 = outputfile.Get("resIPx_2") - hresy_2 = outputfile.Get("resIPy_2") + gr_resx={} + gr_resy={} + gr_resx, gr_resy = get_resolution(gr_resx, gr_resy, tr, label) canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") - hresx_2.Draw("E1 p1") - hresx_2.GetYaxis().SetTitle("#sigma_{IPx} [#mum]") - hresx_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") - hresx_2.SetTitle("#sigma(IP_{x}):1/p_{T}") - - polx = TF1("polx", "pol1", 0, 3) - polx.SetLineColor(kRed) - print("Fit to Resolution of IPx v.s. 1/pT:") - hresx_2.Fit("polx", "R") - Par0x = format(polx.GetParameter(0), '.2f') - Par1x = format(polx.GetParameter(1), '.2f') - - pt = TPaveText(0.22, 0.65, 0.48, 0.9, "BRNDC") - pt.SetTextSize(0.055) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) - Funcx = Par0x + "+" + Par1x + "/p_{T}" - text = pt.AddText(Funcx) - pt.Draw() + canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") + canvas = TCanvas("IPChi2", "IPChi2") + canvas.SetLogy() + + canvas1.cd() + latex.DrawLatex(0.7,0.85, "LHCb simultaion") + + polx={} + Par0x={} + Par1x={} + Funcx={} + gr_resx[label[0]].GetYaxis().SetTitle("#sigma_{IPx} [#mum]") + gr_resx[label[0]].GetXaxis().SetTitle("1/p_{T} [c/GeV]") + gr_resx[label[0]].SetTitle("#sigma(IP_{x}):1/p_{T}") + for idx, lab in enumerate(label): + set_style(gr_resx[lab], colors[idx], markers[idx], 0) + if idx==0: + gr_resx[lab].Draw("E1 p1") + else: + gr_resx[lab].Draw("E1 p1 same") + polx[lab] = TF1("polx_"+lab, "pol1", 0, 3) + polx[lab].SetLineColor(colors[idx]) + print(lab+": Fit to Resolution of IPx v.s. 1/pT:") + gr_resx[lab].Fit("polx_"+lab, "R") + Par0x[lab] = format(polx[lab].GetParameter(0), '.2f') + Par1x[lab] = format(polx[lab].GetParameter(1), '.2f') + Funcx[lab] = lab+": "+ Par0x[lab] + "+" + Par1x[lab] + "/p_{T}" + gr_resx[lab].SetTitle(Funcx[lab]) + #canvas1.PlaceLegend() + place_legend(canvas1, 0.5,0.2, 0.85, 0.45, header="LHCb simulation", option="lep") canvas1.SetRightMargin(0.05) canvas1.Write() - - canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") - hresy_2.Draw("E1 p1") - hresy_2.GetYaxis().SetTitle("#sigma_{IPy} [#mum]") - hresy_2.GetXaxis().SetTitle("1/p_{T} [c/GeV]") - hresy_2.SetTitle("#sigma(IP_{y}):1/p_{T}") - poly = TF1("poly", "pol1", 0, 3) - poly.SetLineColor(kRed) - hresy_2.Fit("poly", "R") - Par0y = format(poly.GetParameter(0), '.2f') - Par1y = format(poly.GetParameter(1), '.2f') - - pt = TPaveText(0.22, 0.65, 0.48, 0.9, "BRNDC") - pt.SetTextSize(0.055) - pt.SetBorderSize(1) - pt.SetFillColor(10) - pt.SetLineWidth(0) - Funcy = Par0y + "+" + Par1y + "/p_{T}" - texty = pt.AddText(Funcy) - pt.Draw() + if savepdf: + canvas1.SaveAs("resIPx_pt.pdf") + + canvas2.cd() + latex.DrawLatex(0.7,0.85, "LHCb simultaion") + poly={} + Par0y={} + Par1y={} + Funcy={} + gr_resy[label[0]].GetYaxis().SetTitle("#sigma_{IPy} [#mum]") + gr_resy[label[0]].GetXaxis().SetTitle("1/p_{T} [c/GeV]") + gr_resy[label[0]].SetTitle("#sigma(IP_{y}):1/p_{T}") + for idx, lab in enumerate(label): + set_style(gr_resy[lab], colors[idx], markers[idx], 0) + if idx==0: + gr_resy[lab].Draw("E1 p1") + else: + gr_resy[lab].Draw("E1 p1 same") + poly[lab] = TF1("poly_"+lab, "pol1", 0, 3) + poly[lab].SetLineColor(colors[idx]) + print(lab+": Fit to Resolution of IPy v.s. 1/pT:") + gr_resy[lab].Fit("poly_"+lab, "R") + Par0y[lab] = format(poly[lab].GetParameter(0), '.2f') + Par1y[lab] = format(poly[lab].GetParameter(1), '.2f') + Funcy[lab] = lab+": "+Par0y[lab] + "+" + Par1y[lab] + "/p_{T}" + gr_resy[lab].SetTitle(Funcy[lab]) + #canvas2.PlaceLegend() + place_legend(canvas2, 0.5,0.2, 0.85, 0.45, header="LHCb simulation", option="lep") canvas2.SetRightMargin(0.05) canvas2.Write() - - resIPx_1 = outputfile.Get("resIPx_1") - resIPx_2 = outputfile.Get("resIPx_2") - resIPy_1 = outputfile.Get("resIPy_1") - resIPy_2 = outputfile.Get("resIPy_2") - for i in range(1, 20): - print("in 1/pT region: (" + format(resIPx_1.GetBinLowEdge(i), '.2f') + - ", " + format( - resIPx_1.GetBinLowEdge(i) + resIPx_1.GetBinWidth(i), '.2f') + - ") [c/GeV]" + " -***- " + "resIPx for mean : " + - format(resIPx_1.GetBinContent(i), '.2f') + "[\mum] width : " + - format(resIPx_2.GetBinContent(i), '.2f') + "[\mum] -***- " + - "resIPy for mean : " + format(resIPy_1.GetBinContent(i), '.2f') + - "[\mum] width : " + format(resIPy_2.GetBinContent(i), '.2f') + - "[\mum]") + if savepdf: + canvas2.SaveAs("resIPy_pt.pdf") #### rec IP chi2 distribution - recIPChi2 = TH1F("recIPChi2", "recIPChi2", 100, 0, 200) + recIPChi2={} var = "recIPChi2" - tuples.Draw(var + ">>recIPChi2", cutAcc) - canvas = TCanvas("IPChi2", "IPChi2") - canvas.SetLogy() - recIPChi2.Draw() - recIPChi2.SetXTitle("#chi^{2}_{IP}") - recIPChi2.SetYTitle("N_{tracks}") + cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" + for i, lab in enumerate(label): + recIPChi2[lab] = TH1F("recIPChi2_"+lab, lab, 100, 0, 200) + tr[lab].Draw(var + ">>recIPChi2_"+lab, cutAcc) + recIPChi2[lab].SetLineColor(colors[i]) + canvas.cd() + latex.DrawLatex(0.7,0.85, "LHCb simultaion") + recIPChi2[label[0]].Draw() + recIPChi2[label[0]].SetXTitle("#chi^{2}_{IP}") + recIPChi2[label[0]].SetYTitle("N_{tracks}") + for lab in label[1:]: + recIPChi2[lab].Draw("hist same") + + place_legend(canvas, 0.5, 0.5,0.8,0.7, "", "lep") canvas.SetRightMargin(0.05) canvas.Write() + if savepdf: + canvas.SaveAs("recIPchi2.pdf") + + for lab in label: + ### print efficiency of different IPchi2 cut + Numerator = TH1F("Numerator", "Numerator", 100, 0, 200) + Denominator = TH1F("Denominator", "Denominator", 100, 0, 200) + tr[lab].Draw(var + ">>Denominator", cutAcc) + for cut in [100, 25, 16, 9, 4]: + cutChi2 = " && recIPChi2<" + format(cut) + cutNum = cutAcc + cutChi2 + tr[lab].Draw(var + ">>Numerator", cutNum) + if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0: + continue + Eff = Numerator.GetEntries() / (Denominator.GetEntries() + 0.0) + print(lab+ ": Efficiency of IPchi2<" + format(cut) + " : " + + format(Eff, '.2%')) - ### print efficiency of different IPchi2 cut - Numerator = TH1F("Numerator", "Numerator", 100, 0, 200) - Denominator = TH1F("Denominator", "Denominator", 100, 0, 200) - tuples.Draw(var + ">>Denominator", cutAcc, "same") - for cut in [100, 25, 16, 9, 4]: - cutChi2 = " && recIPChi2<" + format(cut) - cutNum = cutAcc + cutChi2 - tuples.Draw(var + ">>Numerator", cutNum) - if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0: - continue - Eff = Numerator.GetEntries() / (Denominator.GetEntries() + 0.0) - print("Efficiency of IPchi2<" + format(cut) + " : " + - format(Eff, '.2%')) outputfile.Write() outputfile.Close() - f.Close() - if __name__ == '__main__': parser = argument_parser() diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 211819d69c8..102ca195bd5 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -27,7 +27,7 @@ import os, sys import argparse import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TPad +from ROOT import kDashed, kGray, kOrange, kMagenta, kRed, kGreen, kCyan, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TPad from ROOT import gROOT, gStyle, TStyle, TPaveText, TH1F from ROOT import ROOT, TH1D, TH1F, TGraphAsymmErrors import logging @@ -37,7 +37,6 @@ import subprocess def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] - def getOriginFolders(): basedict = {"Forward": {}, "MuonMatch": {}} basedict["Forward"]["folder"] = "ForwardTrackChecker/" @@ -45,45 +44,124 @@ def getOriginFolders(): return basedict +def get_colors(): + return [kBlack, kAzure, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] -def getGhostHistoNames(): - return ["eta", "nPV", "pt", "p", "phi"] +def get_markers(): + return [20, 24, 21, 22, 23, 25 ] +def get_fillstyles(): + return [3004, 3003, 3325, 3144, 3244, 3444] def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") - parser.add_argument( - '--directory', - type=str, - default=os.getcwd(), - help='location of input tuple files') parser.add_argument( '--filename', type=str, - default='PrChecker_MuonID_MiniBias.root', - help='input file') + default='MCMatching_MiniBias.root', + nargs='+', + help='input files, including path') parser.add_argument( - '--outputfile', + '--outfile', type=str, - default='muonIDeff_plots.root', + default='MuonIDefficiency_plots.root', help='output file') + parser.add_argument( + '--label', + nargs='+', + default="EffChecker", + help='label for files') parser.add_argument( '--plotstyle', default=os.getcwd(), help='location of LHCb utils plot style file') + parser.add_argument( + '--savepdf', + default=False, + action='store_true', + help='save plots in pdf format') + parser.add_argument( + '--printval', + default=False, + action='store_true', + help='print out the muon ID efficiency in momentum bins ') return parser -def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): +def get_files(tf, filename, label): + for i, f in enumerate(filename): + tf[label[i]] = TFile(f, "read") + return tf + +def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): + eff = {} + hist = {} + for i, lab in enumerate(label): + numeratorName = histoName + "_reconstructed" + numerator = tf[lab].Get(numeratorName) + denominatorName = histoName_Den + "_reconstructed" + denominator = tf[lab].Get(denominatorName) + if numerator.GetEntries() == 0 or denominator.GetEntries() == 0: + continue + numerator.Sumw2() + denominator.Sumw2() + + eff[lab] = TGraphAsymmErrors() + eff[lab].SetName(lab) + eff[lab].Divide(numerator, denominator, "cl=0.683 b(1,1) mode") + eff[lab].SetTitle(lab+"not elec.") + if (histoName.find('strange') != -1): + eff[lab].SetTitle(lab+" from stranges") + if (histoName.find('electron') != -1): + eff[lab].SetTitle(lab+" electron") + + hist[lab]= denominator.Clone() + hist[lab].SetName("h_numerator_notElectrons") + hist[lab].SetTitle(var +" histo. not elec.") + if (histoName.find('strange') != -1): + hist[lab].SetTitle(var +" histo. stranges") + if (histoName.find('electron') != -1): + hist[lab].SetTitle(var +" histo. electron") + + if var== "p": + eff[lab].GetXaxis().SetRangeUser(0, 50000) + hist[lab].GetXaxis().SetRangeUser(0, 50000) + #print the muonID efficiency in each p bin + if var== "p" and printval: + for i in range(1, numerator.GetNbinsX()): + if denominator.GetBinContent(i) == 0: + continue + Eff = numerator.GetBinContent(i) / ( + denominator.GetBinContent(i) + 0.0) + print(lab+": Efficiency of muon ID in (" + + format(numerator.GetBinLowEdge(i), '.2f') + + ", " + format( + numerator.GetBinLowEdge(i) + + numerator.GetBinWidth(i), '.2f') + + ") [GeV/c] : " + format(Eff, '.2%')) + + + if var== "pt": + eff[lab].GetXaxis().SetRangeUser(0, 5000) + hist[lab].GetXaxis().SetRangeUser(0, 5000) + + return eff, hist + + +def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle - from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, - categoriesDict, getCuts) + from utils.LHCbStyle import setLHCbStyle, set_style + from utils.ConfigHistos import (efficiencyHistoDict, categoriesDict, getCuts) from utils.Legend import place_legend setLHCbStyle() - f_CPU = TFile(directory + "/" + filename, "read") - outputfile = TFile(directory + "/" + outputfile, "recreate") + markers = get_markers() + colors = get_colors() + styles= get_fillstyles() + + tf={} + tf=get_files(tf, filename, label) + outputfile = TFile(outfile, "recreate") latex = TLatex() latex.SetNDC() @@ -91,8 +169,6 @@ def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): efficiencyHistoDict = efficiencyHistoDict() efficiencyHistos = getEfficiencyHistoNames() - ghostHistos = getGhostHistoNames() - ghostHistoDict = ghostHistoDict() categories = categoriesDict() cuts = getCuts() folders = getOriginFolders() @@ -112,102 +188,55 @@ def PrCheckerEfficiency(directory, filename, outputfile, plotstyle): # calculate efficiency for histo in efficiencyHistos: - title = "efficiency vs. " + histo + ", " + categories[tracker][ - cut]["title"] - name = "efficiency_" + histo - canvas = TCanvas(name, title) - + canvastitle = "efficiency vs. " + histo + ", " + categories[tracker][cut]["title"] + name = "efficiency_" + histo+"_"+cut # get efficiency for not electrons category histoName = histoBaseName + "" + efficiencyHistoDict[histo][ "variable"] histoName_den = histoBaseName_den + "" + efficiencyHistoDict[ histo]["variable"] print("not electrons: " + histoName) - numeratorName = histoName + "_reconstructed" - numerator_CPU = TH1D() - numerator_CPU = f_CPU.Get(numeratorName) - denominatorName = histoName_den + "_reconstructed" - denominator_CPU = TH1D() - denominator_CPU = f_CPU.Get(denominatorName) - if numerator_CPU.GetEntries() == 0 or denominator_CPU.GetEntries( - ) == 0: - continue - - numerator_CPU.Sumw2() - denominator_CPU.Sumw2() - - g_efficiency_CPU = TGraphAsymmErrors() - g_efficiency_CPU.SetName("g_efficiency_notElectrons") - g_efficiency_CPU.Divide(numerator_CPU, denominator_CPU, - "cl=0.683 b(1,1) mode") - g_efficiency_CPU.SetTitle("Baseline") - if (histoName.find('strange') != -1): - g_efficiency_CPU.SetTitle("Baseline, from stranges") - g_efficiency_CPU.SetMarkerStyle(20) - - h_denominator_CPU = denominator_CPU.Clone() - h_denominator_CPU.SetName("h_denominator_notElectrons") - h_denominator_CPU.SetTitle(efficiencyHistoDict[histo]["variable"] + - " histo. forward reconstructed") - if (histoName.find('strange') != -1): - h_denominator_CPU.SetTitle( - efficiencyHistoDict[histo]["variable"] + - " histo. strange, forward reconstructed") - - #draw them both if there is ref + eff={} + hist_den={} + eff, hist_den = get_eff( eff, hist_den, tf, histoName, histoName_den, label, histo, printval) + + canvas = TCanvas(name, canvastitle) mg = TMultiGraph() - mg.Add(g_efficiency_CPU) - mg.Draw("ap") + for i, lab in enumerate(label): + mg.Add(eff[lab]) + set_style(eff[lab], colors[i], markers[i], styles[i]) + mg.Draw("AP") + mg.GetYaxis().SetRangeUser(0, 1.05) xtitle = efficiencyHistoDict[histo]["xTitle"] mg.GetXaxis().SetTitle(xtitle) - mg.GetYaxis().SetTitle("Efficiency") - mg.GetYaxis().SetRangeUser(0, 1.05) - - mg.SetName("efficiency vs. " + histo) - mg.SetTitle(tracker + " " + cut) - - if histo == "p": - mg.GetXaxis().SetRangeUser(0, 50000) - if histo == "pt": - mg.GetXaxis().SetRangeUser(0, 5000) - if histo == "eta": - mg.GetXaxis().SetRangeUser(2, 5) - scale_cpu = 1.0 / h_denominator_CPU.GetMaximum() - h_denominator_CPU.Scale(scale_cpu) - h_denominator_CPU.SetFillStyle(3004) - h_denominator_CPU.SetFillColor(kBlue - 10) - h_denominator_CPU.SetLineColor(kBlue - 10) - h_denominator_CPU.SetLineWidth(2) - h_denominator_CPU.Draw("hist same") + mg.GetYaxis().SetTitle("Muon ID Efficiency") + for i, lab in enumerate(label): + rightmax = 1.05 * hist_den[lab].GetMaximum() + scale = gPad.GetUymax() / rightmax + hist_den[lab].Scale(scale) + if i==0: + set_style(hist_den[lab], kGray, markers[i], styles[i]) + else: + set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) + hist_den[lab].Draw("hist SAME") canvas.PlaceLegend() cutName = categories[tracker][cut]["title"] latex.DrawLatex(0.35, 0.3, cutName) - latex.DrawLatex(0.35, 0.4, "LHCb simulation") + latex.DrawLatex(0.7, 0.85, "LHCb simulation") canvas.SetRightMargin(0.05) canvas.Write() - - #print the muonID efficiency in each p bin - if histo == "p": - for i in range(1, numerator_CPU.GetNbinsX()): - if denominator_CPU.GetBinContent(i) == 0: - continue - Eff = numerator_CPU.GetBinContent(i) / ( - denominator_CPU.GetBinContent(i) + 0.0) - print("Efficiency of muon ID in (" + - format(numerator_CPU.GetBinLowEdge(i), '.2f') + - ", " + format( - numerator_CPU.GetBinLowEdge(i) + - numerator_CPU.GetBinWidth(i), '.2f') + - ") [GeV/c] : " + format(Eff, '.2%')) + canvasName="MuonIDEff_"+cut+"_"+histo+".pdf" + if savepdf: + canvas.SaveAs(canvasName) + canvas.SetRightMargin(0.05) + canvas.Write() outputfile.Write() outputfile.Close() - f_CPU.Close() - if __name__ == '__main__': parser = argument_parser() args = parser.parse_args() - PrCheckerEfficiency(**vars(args)) + PrCheckerMuonIDEff(**vars(args)) diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index d6461913390..816c725a77c 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -19,34 +19,49 @@ import os, sys import argparse import ROOT -from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject -from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1, TH2, TF1 -from ROOT import gROOT, gStyle, TStyle, TPaveText, TString +from ROOT import TMultiGraph, TMath, TAxis, TH2F, TH2, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject +from ROOT import kDashed, kOrange, kGray, kMagenta, kCyan, kRed, kGreen, kBlue, kBlack, kAzure, kTRUE, kFALSE, gPad, TH1, TH2, TF1 +from ROOT import gROOT, gDirectory, gStyle, TStyle, TPaveText, TString from ROOT import ROOT, vector, TGraphAsymmErrors from collections import defaultdict -#from collectRunResults import send_notification_mattermost +def get_colors(): + return [kBlack, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] +def get_markers(): + return [20, 24, 21, 22, 23, 25 ] +def get_fillstyles(): + return [3004, 3003, 3325, 3144, 3244, 3444] + +def get_files(tf, filename, label): + for i, f in enumerate(filename): + tf[label[i]] = TFile(f, "read") + return tf def argument_parser(): parser = argparse.ArgumentParser( description="location of the histogram file") - parser.add_argument( - '--directory', - type=str, - default=os.getcwd(), - help='location of input tuple files') parser.add_argument( '--filename', - type=str, - default='Hlt1ForwardTrackingResolution.root', + nargs='+', + default=[], + help='name of input files') + parser.add_argument( + '--label', + nargs='+', + default=["TrackRes"], help='name of input tuple files') parser.add_argument( - '--outputfile', + '--outfile', type=str, default='TrackResolution_plots.root', - help='name of input tuple files') + help='name of output files') + parser.add_argument( + '--savepdf', + default=False, + action='store_true', + help='save plots in pdf format') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -54,92 +69,114 @@ def argument_parser(): return parser -def PrCheckerTrackResolution(directory, filename, outputfile, plotstyle): +def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle + from utils.LHCbStyle import setLHCbStyle, set_style from utils.Legend import place_legend setLHCbStyle() - f = TFile.Open(os.path.join(directory, filename), 'read') - outputfile = TFile(outputfile, "recreate") + markers = get_markers() + colors = get_colors() + styles= get_fillstyles() + tf={} + tf=get_files(tf, filename, label) + outputfile = TFile(outfile, "recreate") outputfile.cd() - hres_p = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") - hres_eta = f.Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") - - hres_p.Write() - hres_eta.Write() - hres_p.FitSlicesY() - hres_eta.FitSlicesY() - - hres_p_2 = outputfile.Get("dpoverp_vs_p_2") - hres_eta_2 = outputfile.Get("dpoverp_vs_eta_2") - + hdp_p={} + hdp_eta={} + hres_p={} + hres_eta={} + hmom={} + heta={} canvas1 = TCanvas("res_p", "res v.s. p") canvas1.cd() - for i in range(1, hres_p_2.GetNbinsX()): - hres_p_2.SetBinContent(i, hres_p_2.GetBinContent(i) * 100) - - hres_p_2.Draw("E1 p1") - hres_p_2.SetTitle("dp/p:p") - hres_p_2.GetYaxis().SetTitle("dp/p [%]") - hres_p_2.GetXaxis().SetTitle("p [GeV/c]") - hres_p_2.GetYaxis().SetRangeUser(0, 1.2) - hmom = hres_p.ProjectionX() - hmom.SetTitle("p histo.") - hmom.Scale(0.3 / hres_p.GetMaximum()) - hmom.Draw("hist same") - hmom.SetFillStyle(3004) - hmom.SetLineColor(kBlue - 10) - hmom.SetFillColor(kBlue) - hmom.SetLineWidth(2) + for idx, lab in enumerate(label): + hdp_p[lab] = tf[lab].Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") + hdp_p[lab].SetName("dpoverp_p_"+lab) + hmom[lab] = hdp_p[lab].ProjectionX() + hmom[lab].SetTitle("p histo. "+lab) + hdp_p[lab].FitSlicesY() + + hres_p[lab] = gDirectory.Get("dpoverp_p_"+lab+"_2") + hres_p[lab].GetYaxis().SetTitle("dp/p [%]") + hres_p[lab].GetXaxis().SetTitle("p [GeV/c]") + hres_p[lab].GetYaxis().SetRangeUser(0, 1.2) + hres_p[lab].SetTitle("Res. "+lab) + set_style(hres_p[lab], colors[idx], markers[idx], 0) + + if idx==0: + hres_p[lab].Draw("E1 p1") + set_style(hmom[lab], kGray, markers[idx], styles[idx]) + else: + hres_p[lab].Draw("E1 p1 same") + set_style(hmom[lab], colors[idx]-10, markers[idx], styles[idx]) + hmom[lab].Scale(gPad.GetUymax()/hmom[lab].GetMaximum()) + hmom[lab].Draw("hist same") + + for i in range(1, hres_p[lab].GetNbinsX()): + hres_p[lab].SetBinContent(i, hres_p[lab].GetBinContent(i) * 100) + + print(lab+": Track resolution (dp/p) in p region: (" + + format(hres_p[lab].GetBinLowEdge(i), '.2f') + ", " + format( + hres_p[lab].GetBinLowEdge(i) + hres_p[lab].GetBinWidth(i), '.2f') + + ") [GeV/c]" + " --- " + + format(hres_p[lab].GetBinContent(i), '.2f') + "%") + print("-----------------------------------------------------") canvas1.PlaceLegend() canvas1.SetRightMargin(0.05) canvas1.Write() + if savepdf: + canvas1.SaveAs("trackres_p.pdf") + + print("=====================================================") canvas2 = TCanvas("res_eta", "res v.s. eta") canvas2.cd() - for i in range(1, hres_eta_2.GetNbinsX()): - hres_eta_2.SetBinContent(i, hres_eta_2.GetBinContent(i) * 100) - - hres_eta_2.Draw("E1 p1") - hres_eta_2.SetTitle("dp/p:#eta") - hres_eta_2.GetYaxis().SetTitle("dp/p [%]") - hres_eta_2.GetXaxis().SetTitle("#eta") - hres_eta_2.GetYaxis().SetRangeUser(0, 1.2) - heta = hres_eta.ProjectionX() - heta.SetTitle("#eta histo.") - heta.Scale(0.1 / hres_eta.GetMaximum()) - heta.Draw("hist same") - heta.SetFillStyle(3004) - heta.SetLineColor(kBlue - 10) - heta.SetFillColor(kBlue) - heta.SetLineWidth(2) + + for idx, lab in enumerate(label): + hdp_eta[lab] = tf[lab].Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") + hdp_eta[lab].SetName("dpoverp_eta_"+lab) + hdp_eta[lab].FitSlicesY() + heta[lab] = hdp_eta[lab].ProjectionX() + heta[lab].SetTitle("#eta histo. "+lab) + + hres_eta[lab]= gDirectory.Get("dpoverp_eta_"+lab+"_2") + hres_eta[lab].GetYaxis().SetTitle("dp/p [%]") + hres_eta[lab].GetXaxis().SetTitle("#eta") + hres_eta[lab].GetYaxis().SetRangeUser(0, 1.2) + hres_eta[lab].SetTitle("Res. "+lab) + set_style(hres_eta[lab], colors[idx], markers[idx], 0) + + if idx==0: + hres_eta[lab].Draw("E1 p1") + set_style(heta[lab], kGray, markers[idx], styles[idx]) + else: + hres_eta[lab].Draw("E1 p1 same") + set_style(heta[lab], colors[idx]-10, markers[idx], styles[idx]) + + heta[lab].Scale(gPad.GetUymax()/heta[lab].GetMaximum()) + heta[lab].Draw("hist same") + + for i in range(1, hres_eta[lab].GetNbinsX()): + hres_eta[lab].SetBinContent(i, hres_eta[lab].GetBinContent(i) * 100) + + print(lab+": Track resolution (dp/p) in eta region: (" + + format(hres_eta[lab].GetBinLowEdge(i), '.2f') + ", " + format( + hres_eta[lab].GetBinLowEdge(i) + + hres_eta[lab].GetBinWidth(i), '.2f') + ")" + " --- " + + format(hres_eta[lab].GetBinContent(i), '.2f') + "%") canvas2.PlaceLegend() canvas2.SetRightMargin(0.05) canvas2.Write() - - for i in range(1, hres_p_2.GetNbinsX()): - print("Track resolution (dp/p) in p region: (" + - format(hres_p_2.GetBinLowEdge(i), '.2f') + ", " + format( - hres_p_2.GetBinLowEdge(i) + hres_p_2.GetBinWidth(i), '.2f') + - ") [GeV/c]" + " --- " + - format(hres_p_2.GetBinContent(i), '.2f') + "%") - - print("-----------------------------------") - for i in range(1, hres_eta_2.GetNbinsX()): - print("Track resolution (dp/p) in eta region: (" + - format(hres_eta_2.GetBinLowEdge(i), '.2f') + ", " + format( - hres_eta_2.GetBinLowEdge(i) + - hres_eta_2.GetBinWidth(i), '.2f') + ")" + " --- " + - format(hres_eta_2.GetBinContent(i), '.2f') + "%") + if savepdf: + canvas2.SaveAs("trackres_eta.pdf") outputfile.Write() outputfile.Close() - f.Close() if __name__ == '__main__': diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index a6d3c4c4efc..7b3ec759297 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -87,8 +87,8 @@ def getCuts(): ] basedict["MuonMatch"] = [ "02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", - "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", "01_long", - "02_long_muon", "03_long_muon_from_strange", "04_long_pion" + "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", + "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" ] return basedict @@ -103,9 +103,9 @@ def categoriesDict(): "title"] = "Long, #mu, forward track, 2 <#eta< 5" basedict["MuonMatch"]["02_long_muon_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, #mu, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_from_strange"][ + basedict["MuonMatch"]["03_long_muoon_from_strange"][ "title"] = "Long, #mu from strange, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_from_strange_P>3GeV_Pt>0.5GeV"][ + basedict["MuonMatch"]["03_long_muon_from_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, #mu from strange, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" basedict["MuonMatch"]["04_long_pion"][ "title"] = "Long, #pi, forward track, 2 <#eta< 5" diff --git a/Hlt/RecoConf/scripts/utils/LHCbStyle.py b/Hlt/RecoConf/scripts/utils/LHCbStyle.py index 88799a336e2..1056556c8e5 100644 --- a/Hlt/RecoConf/scripts/utils/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/utils/LHCbStyle.py @@ -10,9 +10,31 @@ ############################################################################### from ROOT import gStyle -from ROOT import gROOT +from ROOT import gROOT, TH1, TH1F, TH1D from ROOT import TStyle +def set_style(graph, color, marker, style): + graph.SetLineColor(color) + graph.SetMarkerColor(color) + graph.SetMarkerSize(1.0) + graph.SetMarkerStyle(marker) + graph.GetYaxis().SetTitleOffset(0.85) + if type(graph) == TH1F or type(graph) == TH1 or type(graph) == TH1D: + graph.SetFillColor(color) + graph.SetFillStyle(style) + graph.SetLineWidth(2) + graph.SetStats(False) + graph.GetYaxis().SetTitleOffset(1.0) + graph.GetYaxis().SetTitleSize(0.06) + graph.GetYaxis().SetLabelSize(0.06) + graph.GetXaxis().SetTitleSize(0.06) + graph.GetXaxis().SetLabelSize(0.06) + graph.GetXaxis().SetTitleFont(132) + graph.GetXaxis().SetLabelFont(132) + graph.GetYaxis().SetTitleFont(132) + graph.GetYaxis().SetLabelFont(132) + + return graph def setLHCbStyle(): global lhcbStyle @@ -83,7 +105,7 @@ def setLHCbStyle(): lhcbStyle.SetOptFit(0) #lhcbStyle.SetOptFit(1011) # order is probability, Chi2, errors, parameters #titles - lhcbStyle.SetTitleOffset(0.85, "X") + lhcbStyle.SetTitleOffset(0.95, "X") lhcbStyle.SetTitleOffset(0.85, "Y") lhcbStyle.SetTitleOffset(1.2, "Z") lhcbStyle.SetTitleFillColor(0) -- GitLab From 52704e6be75d5bfc01755ec54e45ad7d7a1176fb Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Mon, 2 Mar 2020 23:08:07 +0000 Subject: [PATCH 105/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7416971 --- .../scripts/PrCheckerEfficiency_HLT1.py | 139 +++++++++-------- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 140 ++++++++++-------- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 73 ++++----- .../scripts/PrCheckerTrackResolution.py | 81 +++++----- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 4 +- Hlt/RecoConf/scripts/utils/LHCbStyle.py | 2 + 6 files changed, 247 insertions(+), 192 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 70efeca341a..dec2ea13794 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -36,9 +36,11 @@ import subprocess def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] + def getTrackers(): return ["Velo", "Upstream", "Forward"] + def getOriginFolders(): basedict = {"Velo": {}, "Upstream": {}, "Forward": {}} @@ -48,17 +50,23 @@ def getOriginFolders(): return basedict + def get_colors(): return [kBlack, kAzure, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + def get_markers(): - return [20, 24, 21, 22, 23, 25 ] + return [20, 24, 21, 22, 23, 25] + + def get_fillstyles(): return [3004, 3003, 3325, 3144, 3244, 3444] + def getGhostHistoNames(): return ["eta", "nPV", "pt", "p"] + def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") parser.add_argument( @@ -73,10 +81,7 @@ def argument_parser(): default='efficiency_plots.root', help='output file') parser.add_argument( - '--label', - nargs='+', - default="EffChecker", - help='label for files') + '--label', nargs='+', default="EffChecker", help='label for files') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -98,11 +103,13 @@ def argument_parser(): help='save plots in pdf format') return parser + def get_files(tf, filename, label): for i, f in enumerate(filename): tf[label[i]] = TFile(f, "read") return tf + def get_eff(eff, hist, tf, histoName, label, var): eff = {} hist = {} @@ -119,30 +126,32 @@ def get_eff(eff, hist, tf, histoName, label, var): eff[lab] = TGraphAsymmErrors() eff[lab].SetName(lab) eff[lab].Divide(numerator, denominator, "cl=0.683 b(1,1) mode") - eff[lab].SetTitle(lab+"not elec.") + eff[lab].SetTitle(lab + "not elec.") if (histoName.find('strange') != -1): - eff[lab].SetTitle(lab+" from stranges") + eff[lab].SetTitle(lab + " from stranges") if (histoName.find('electron') != -1): - eff[lab].SetTitle(lab+" electron") + eff[lab].SetTitle(lab + " electron") - hist[lab]= denominator.Clone() + hist[lab] = denominator.Clone() hist[lab].SetName("h_numerator_notElectrons") - hist[lab].SetTitle(var +" histo. not elec.") + hist[lab].SetTitle(var + " histo. not elec.") if (histoName.find('strange') != -1): - hist[lab].SetTitle(var +" histo. stranges") + hist[lab].SetTitle(var + " histo. stranges") if (histoName.find('electron') != -1): - hist[lab].SetTitle(var +" histo. electron") + hist[lab].SetTitle(var + " histo. electron") - if var== "p": + if var == "p": eff[lab].GetXaxis().SetRangeUser(0, 50000) hist[lab].GetXaxis().SetRangeUser(0, 50000) - if var== "pt": + if var == "pt": eff[lab].GetXaxis().SetRangeUser(0, 5000) hist[lab].GetXaxis().SetRangeUser(0, 5000) return eff, hist -def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, savepdf): + +def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, + savepdf): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle, set_style from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, @@ -152,10 +161,10 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav markers = get_markers() colors = get_colors() - styles= get_fillstyles() - tf={} + styles = get_fillstyles() + tf = {} - tf=get_files(tf, filename, label) + tf = get_files(tf, filename, label) outputfile = TFile(outfile, "recreate") latex = TLatex() @@ -185,15 +194,16 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav # calculate efficiency for histo in efficiencyHistos: - canvastitle = "efficiency_" + histo + ", " + categories[tracker][ - cut]["title"] + canvastitle = "efficiency_" + histo + ", " + categories[ + tracker][cut]["title"] # get efficiency for not electrons category histoName = histoBaseName + "" + efficiencyHistoDict[histo][ "variable"] print("not electrons: " + histoName) - eff={} - hist_den={} - eff, hist_den = get_eff( eff, hist_den, tf, histoName, label, histo) + eff = {} + hist_den = {} + eff, hist_den = get_eff(eff, hist_den, tf, histoName, label, + histo) name = "efficiency_" + histo canvas = TCanvas(name, canvastitle) mg = TMultiGraph() @@ -210,24 +220,27 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav rightmax = 1.05 * hist_den[lab].GetMaximum() scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) - if i==0: - set_style(hist_den[lab], kGray, markers[i], styles[i]) + if i == 0: + set_style(hist_den[lab], kGray, markers[i], + styles[i]) else: - set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) + set_style(hist_den[lab], colors[i] - 10, + markers[i], styles[i]) hist_den[lab].Draw("hist SAME") else: rightmax = 0.95 * hist_den[label[0]].GetMaximum() scale = gPad.GetUymax() / rightmax - set_style(hist_den[label[0]], kBlue-10, markers[i], styles[i]) + set_style(hist_den[label[0]], kBlue - 10, markers[i], + styles[i]) hist_den[label[0]].Scale(scale) hist_den[label[0]].Draw("hist SAME") canvas.PlaceLegend() cutName = categories[tracker][cut]["title"] - latex.DrawLatex(0.7,0.85, "LHCb simultaion") - latex.DrawLatex(0.35,0.3, cutName) - canvasName=tracker+"_"+cut+"_"+histo+".pdf" - if savepdf: + latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + latex.DrawLatex(0.35, 0.3, cutName) + canvasName = tracker + "_" + cut + "_" + histo + ".pdf" + if savepdf: canvas.SaveAs(canvasName) canvas.SetRightMargin(0.05) canvas.Write() @@ -239,17 +252,21 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav histoName = histoNameElec + "_" + efficiencyHistoDict[ histo]["variable"] print("electrons: " + histoName) - eff_elec={} - hist_elec={} - eff_elec, hist_elec=get_eff(eff_elec, hist_elec, tf, histoName, label, histo) - - #draw efficiency of electron - canvas_elec=TCanvas(name+"_elec", canvastitle+"_elec") + eff_elec = {} + hist_elec = {} + eff_elec, hist_elec = get_eff(eff_elec, hist_elec, tf, + histoName, label, histo) + + #draw efficiency of electron + canvas_elec = TCanvas(name + "_elec", + canvastitle + "_elec") mg_elec = TMultiGraph() for i, lab in enumerate(label): mg_elec.Add(eff_elec[lab]) - set_style(eff_elec[lab], colors[i], markers[i], styles[i]) - set_style(hist_elec[lab], colors[i]-10, markers[i], styles[i]) + set_style(eff_elec[lab], colors[i], markers[i], + styles[i]) + set_style(hist_elec[lab], colors[i] - 10, markers[i], + styles[i]) mg_elec.Draw("AP") mg_elec.GetYaxis().SetRangeUser(0, 1.05) mg_elec.GetXaxis().SetTitle(xtitle) @@ -265,12 +282,13 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav scale = gPad.GetUymax() / rightmax hist_elec[label[0]].Scale(scale) hist_elec[label[0]].Draw("hist SAME") - set_style(hist_elec[label[0]], kBlue-10, markers[i], styles[i]) + set_style(hist_elec[label[0]], kBlue - 10, markers[i], + styles[i]) canvas_elec.PlaceLegend() - latex.DrawLatex(0.7,0.85, "LHCb simultaion") - latex.DrawLatex(0.35,0.3, cutName) - canvasName_elec=tracker+"_"+cut+"_"+histo+"_elec.pdf" + latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + latex.DrawLatex(0.35, 0.3, cutName) + canvasName_elec = tracker + "_" + cut + "_" + histo + "_elec.pdf" if savepdf: canvas_elec.SaveAs(canvasName_elec) canvas_elec.SetRightMargin(0.05) @@ -278,23 +296,28 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav #draw them both if plotelec: - canvas_com=TCanvas(name+"_combine", title+"_combine") - i=0 + canvas_com = TCanvas(name + "_combine", + title + "_combine") + i = 0 mg_comb = TMultiGraph() for lab in label: mg_comb.Add(eff[lab]) mg_comb.Add(eff_elec[lab]) - set_style(eff[lab], colors[i], markers[i], styles[i]) - set_style(eff_elec[lab], colors[i+1], markers[i+1], styles[i]) - set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) - set_style(hist_elec[lab], colors[i+1]-10, markers[i+1], styles[i]) + set_style(eff[lab], colors[i], markers[i], + styles[i]) + set_style(eff_elec[lab], colors[i + 1], + markers[i + 1], styles[i]) + set_style(hist_den[lab], colors[i] - 10, + markers[i], styles[i]) + set_style(hist_elec[lab], colors[i + 1] - 10, + markers[i + 1], styles[i]) rightmax = 1.05 * hist_den[lab].GetMaximum() scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) rightmax_elec = 1.05 * hist_elec[lab].GetMaximum() scale_elec = gPad.GetUymax() / rightmax_elec hist_elec[lab].Scale(scale_elec) - i=i+2 + i = i + 2 mg_comb.Draw("ap") mg_comb.GetYaxis().SetRangeUser(0, 1.05) @@ -308,8 +331,8 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav hist_elec[lab].Draw("hist SAME") canvas_com.PlaceLegend() - latex.DrawLatex(0.7,0.85, "LHCb simultaion") - latex.DrawLatex(0.35,0.3, cutName) + latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + latex.DrawLatex(0.35, 0.3, cutName) canvas_com.SetRightMargin(0.05) canvas_com.Write() @@ -327,18 +350,18 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav "variable"] + "_Total" print("ghost histo: " + histoBaseName + " " + numeratorName + " " + denominatorName) - ghost={} + ghost = {} mg = TMultiGraph() for i, lab in enumerate(label): numerator = tf[lab].Get(numeratorName) denominator = tf[lab].Get(denominatorName) numerator.Sumw2() denominator.Sumw2() - - ghost[lab]= TGraphAsymmErrors() + + ghost[lab] = TGraphAsymmErrors() ghost[lab].SetName(lab) ghost[lab].Divide(numerator, denominator, - "cl=0.683 b(1,1) mode") + "cl=0.683 b(1,1) mode") set_style(ghost[lab], colors[i], markers[i], styles[i]) mg.Add(ghost[lab]) @@ -348,12 +371,12 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, sav mg.Draw("ap") canvas.PlaceLegend() if savepdf: - canvas.SaveAs("ghost_rate_"+histo+".pdf") + canvas.SaveAs("ghost_rate_" + histo + ".pdf") canvas.Write() outputfile.Write() outputfile.Close() - + if __name__ == '__main__': parser = argument_parser() diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 0ac5ccb055e..427358cb3f0 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -26,24 +26,31 @@ from ROOT import kDashed, kRed, kGreen, kBlue, kCyan, kMagenta, kBlack, kOrange, from ROOT import gDirectory, gROOT, gStyle, TStyle, TPaveText, TString from ROOT import ROOT, vector, TGraphAsymmErrors + def get_colors(): return [kBlack, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + def get_markers(): - return [20, 24, 21, 22, 23, 25 ] + return [20, 24, 21, 22, 23, 25] + + def get_fillstyles(): return [3004, 3003, 3325, 3144, 3244, 3444] + def get_files(tf, filename, label): for i, f in enumerate(filename): tf[label[i]] = TFile(f, "read") return tf + def get_trees(tr, tf, label): for lab in label: - tr[lab]=tf[lab].Get("TrackIPResolutionCheckerNT/tracks") + tr[lab] = tf[lab].Get("TrackIPResolutionCheckerNT/tracks") return tr + def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") parser.add_argument( @@ -71,12 +78,13 @@ def argument_parser(): help='location of LHCb utils plot style file') return parser + def get_resolution(resx, resy, tr, label): - resIPx={} - resIPy={} - resIPx_1={} - resIPy_1={} + resIPx = {} + resIPy = {} + resIPx_1 = {} + resIPy_1 = {} markers = get_markers() colors = get_colors() styles = get_fillstyles() @@ -84,34 +92,40 @@ def get_resolution(resx, resy, tr, label): print("Velo track from PV in acceptance: " + cutAcc) for i, lab in enumerate(label): ### typeofprefix==0 for track from PV and matched with MC - resIPx[lab] = TH2F("resIPx_"+lab, "IPx:1/pt", 20, 0, 2, 100, -300, 300) - resIPy[lab] = TH2F("resIPy_"+lab, "IPy:1/pt", 20, 0, 2, 100, -300, 300) + resIPx[lab] = TH2F("resIPx_" + lab, "IPx:1/pt", 20, 0, 2, 100, -300, + 300) + resIPy[lab] = TH2F("resIPy_" + lab, "IPy:1/pt", 20, 0, 2, 100, -300, + 300) resIPx[lab].SetMarkerStyle(1) resIPy[lab].SetMarkerStyle(1) varx = "recIPx*1000:1.0/truept" vary = "recIPy*1000:1.0/truept" - print("IPx var: " + varx +" " + " IPy var: " + vary) - tr[lab].Draw(varx + ">>resIPx_"+lab, cutAcc) - tr[lab].Draw(vary + ">>resIPy_"+lab, cutAcc) + print("IPx var: " + varx + " " + " IPy var: " + vary) + tr[lab].Draw(varx + ">>resIPx_" + lab, cutAcc) + tr[lab].Draw(vary + ">>resIPy_" + lab, cutAcc) resIPx[lab].FitSlicesY() resIPy[lab].FitSlicesY() - resx[lab] = gDirectory.Get("resIPx_"+lab+"_2") - resy[lab] = gDirectory.Get("resIPy_"+lab+"_2") - resIPx_1[lab]= gDirectory.Get("resIPx_"+lab+"_1") - resIPy_1[lab]= gDirectory.Get("resIPy_"+lab+"_1") + resx[lab] = gDirectory.Get("resIPx_" + lab + "_2") + resy[lab] = gDirectory.Get("resIPy_" + lab + "_2") + resIPx_1[lab] = gDirectory.Get("resIPx_" + lab + "_1") + resIPy_1[lab] = gDirectory.Get("resIPy_" + lab + "_1") for i in range(1, 20): - print(lab+": in 1/pT region: (" + format(resIPx_1[lab].GetBinLowEdge(i), '.2f') + - ", " + format( - resIPx_1[lab].GetBinLowEdge(i) + resIPx_1[lab].GetBinWidth(i), '.2f') + - ") [c/GeV]" + " ---- " + "resIPx for mean : " + - format(resIPx_1[lab].GetBinContent(i), '.2f') + "[\mum] width : " + - format(resx[lab].GetBinContent(i), '.2f') + "[\mum] ---- " + - "resIPy for mean : " + format(resIPy_1[lab].GetBinContent(i), '.2f') + - "[\mum] width : " + format(resy[lab].GetBinContent(i), '.2f') + - "[\mum]") + print( + lab + ": in 1/pT region: (" + + format(resIPx_1[lab].GetBinLowEdge(i), '.2f') + ", " + format( + resIPx_1[lab].GetBinLowEdge(i) + + resIPx_1[lab].GetBinWidth(i), '.2f') + ") [c/GeV]" + + " ---- " + "resIPx for mean : " + + format(resIPx_1[lab].GetBinContent(i), '.2f') + + "[\mum] width : " + format(resx[lab].GetBinContent(i), '.2f') + + "[\mum] ---- " + "resIPy for mean : " + + format(resIPy_1[lab].GetBinContent(i), '.2f') + + "[\mum] width : " + format(resy[lab].GetBinContent(i), '.2f') + + "[\mum]") return resx, resy + def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): sys.path.append(os.path.abspath(plotstyle)) @@ -124,102 +138,104 @@ def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): markers = get_markers() colors = get_colors() - styles= get_fillstyles() - tf={} - tr={} - tf=get_files(tf, filename, label) - tr=get_trees(tr, tf, label) + styles = get_fillstyles() + tf = {} + tr = {} + tf = get_files(tf, filename, label) + tr = get_trees(tr, tf, label) outputfile = TFile(outfile, "recreate") outputfile.cd() - gr_resx={} - gr_resy={} + gr_resx = {} + gr_resy = {} gr_resx, gr_resy = get_resolution(gr_resx, gr_resy, tr, label) canvas1 = TCanvas("resIPx_pT", "resIPx v.s. 1/pT") canvas2 = TCanvas("resIPy_pT", "resIPy v.s. 1/pT") canvas = TCanvas("IPChi2", "IPChi2") canvas.SetLogy() - + canvas1.cd() - latex.DrawLatex(0.7,0.85, "LHCb simultaion") - - polx={} - Par0x={} - Par1x={} - Funcx={} + latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + + polx = {} + Par0x = {} + Par1x = {} + Funcx = {} gr_resx[label[0]].GetYaxis().SetTitle("#sigma_{IPx} [#mum]") gr_resx[label[0]].GetXaxis().SetTitle("1/p_{T} [c/GeV]") gr_resx[label[0]].SetTitle("#sigma(IP_{x}):1/p_{T}") for idx, lab in enumerate(label): set_style(gr_resx[lab], colors[idx], markers[idx], 0) - if idx==0: + if idx == 0: gr_resx[lab].Draw("E1 p1") else: gr_resx[lab].Draw("E1 p1 same") - polx[lab] = TF1("polx_"+lab, "pol1", 0, 3) + polx[lab] = TF1("polx_" + lab, "pol1", 0, 3) polx[lab].SetLineColor(colors[idx]) - print(lab+": Fit to Resolution of IPx v.s. 1/pT:") - gr_resx[lab].Fit("polx_"+lab, "R") + print(lab + ": Fit to Resolution of IPx v.s. 1/pT:") + gr_resx[lab].Fit("polx_" + lab, "R") Par0x[lab] = format(polx[lab].GetParameter(0), '.2f') Par1x[lab] = format(polx[lab].GetParameter(1), '.2f') - Funcx[lab] = lab+": "+ Par0x[lab] + "+" + Par1x[lab] + "/p_{T}" + Funcx[lab] = lab + ": " + Par0x[lab] + "+" + Par1x[lab] + "/p_{T}" gr_resx[lab].SetTitle(Funcx[lab]) #canvas1.PlaceLegend() - place_legend(canvas1, 0.5,0.2, 0.85, 0.45, header="LHCb simulation", option="lep") + place_legend( + canvas1, 0.5, 0.2, 0.85, 0.45, header="LHCb simulation", option="lep") canvas1.SetRightMargin(0.05) canvas1.Write() if savepdf: canvas1.SaveAs("resIPx_pt.pdf") canvas2.cd() - latex.DrawLatex(0.7,0.85, "LHCb simultaion") - poly={} - Par0y={} - Par1y={} - Funcy={} + latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + poly = {} + Par0y = {} + Par1y = {} + Funcy = {} gr_resy[label[0]].GetYaxis().SetTitle("#sigma_{IPy} [#mum]") gr_resy[label[0]].GetXaxis().SetTitle("1/p_{T} [c/GeV]") gr_resy[label[0]].SetTitle("#sigma(IP_{y}):1/p_{T}") for idx, lab in enumerate(label): set_style(gr_resy[lab], colors[idx], markers[idx], 0) - if idx==0: + if idx == 0: gr_resy[lab].Draw("E1 p1") else: gr_resy[lab].Draw("E1 p1 same") - poly[lab] = TF1("poly_"+lab, "pol1", 0, 3) + poly[lab] = TF1("poly_" + lab, "pol1", 0, 3) poly[lab].SetLineColor(colors[idx]) - print(lab+": Fit to Resolution of IPy v.s. 1/pT:") - gr_resy[lab].Fit("poly_"+lab, "R") + print(lab + ": Fit to Resolution of IPy v.s. 1/pT:") + gr_resy[lab].Fit("poly_" + lab, "R") Par0y[lab] = format(poly[lab].GetParameter(0), '.2f') Par1y[lab] = format(poly[lab].GetParameter(1), '.2f') - Funcy[lab] = lab+": "+Par0y[lab] + "+" + Par1y[lab] + "/p_{T}" + Funcy[lab] = lab + ": " + Par0y[lab] + "+" + Par1y[lab] + "/p_{T}" gr_resy[lab].SetTitle(Funcy[lab]) #canvas2.PlaceLegend() - place_legend(canvas2, 0.5,0.2, 0.85, 0.45, header="LHCb simulation", option="lep") + place_legend( + canvas2, 0.5, 0.2, 0.85, 0.45, header="LHCb simulation", option="lep") canvas2.SetRightMargin(0.05) canvas2.Write() if savepdf: canvas2.SaveAs("resIPy_pt.pdf") #### rec IP chi2 distribution - recIPChi2={} + recIPChi2 = {} var = "recIPChi2" cutAcc = "trueeta<5 && trueeta>2 && typeofprefix==0" for i, lab in enumerate(label): - recIPChi2[lab] = TH1F("recIPChi2_"+lab, lab, 100, 0, 200) - tr[lab].Draw(var + ">>recIPChi2_"+lab, cutAcc) + recIPChi2[lab] = TH1F("recIPChi2_" + lab, lab, 100, 0, 200) + tr[lab].Draw(var + ">>recIPChi2_" + lab, cutAcc) recIPChi2[lab].SetLineColor(colors[i]) canvas.cd() - latex.DrawLatex(0.7,0.85, "LHCb simultaion") + latex.DrawLatex(0.7, 0.85, "LHCb simultaion") recIPChi2[label[0]].Draw() recIPChi2[label[0]].SetXTitle("#chi^{2}_{IP}") recIPChi2[label[0]].SetYTitle("N_{tracks}") for lab in label[1:]: recIPChi2[lab].Draw("hist same") - place_legend(canvas, 0.5, 0.5,0.8,0.7, "", "lep") + place_legend(canvas, 0.5, 0.5, 0.8, 0.7, "", "lep") canvas.SetRightMargin(0.05) canvas.Write() if savepdf: @@ -237,13 +253,13 @@ def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): if Numerator.GetEntries() == 0 or Denominator.GetEntries() == 0: continue Eff = Numerator.GetEntries() / (Denominator.GetEntries() + 0.0) - print(lab+ ": Efficiency of IPchi2<" + format(cut) + " : " + + print(lab + ": Efficiency of IPchi2<" + format(cut) + " : " + format(Eff, '.2%')) - outputfile.Write() outputfile.Close() + if __name__ == '__main__': parser = argument_parser() args = parser.parse_args() diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 102ca195bd5..eb46c712e1a 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -37,6 +37,7 @@ import subprocess def getEfficiencyHistoNames(): return ["eta", "p", "pt", "phi", "nPV"] + def getOriginFolders(): basedict = {"Forward": {}, "MuonMatch": {}} basedict["Forward"]["folder"] = "ForwardTrackChecker/" @@ -44,15 +45,19 @@ def getOriginFolders(): return basedict + def get_colors(): return [kBlack, kAzure, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + def get_markers(): - return [20, 24, 21, 22, 23, 25 ] + return [20, 24, 21, 22, 23, 25] + def get_fillstyles(): return [3004, 3003, 3325, 3144, 3244, 3444] + def argument_parser(): parser = argparse.ArgumentParser(description="location of the tuple file") parser.add_argument( @@ -67,10 +72,7 @@ def argument_parser(): default='MuonIDefficiency_plots.root', help='output file') parser.add_argument( - '--label', - nargs='+', - default="EffChecker", - help='label for files') + '--label', nargs='+', default="EffChecker", help='label for files') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -93,6 +95,7 @@ def get_files(tf, filename, label): tf[label[i]] = TFile(f, "read") return tf + def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): eff = {} hist = {} @@ -109,39 +112,38 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): eff[lab] = TGraphAsymmErrors() eff[lab].SetName(lab) eff[lab].Divide(numerator, denominator, "cl=0.683 b(1,1) mode") - eff[lab].SetTitle(lab+"not elec.") + eff[lab].SetTitle(lab + "not elec.") if (histoName.find('strange') != -1): - eff[lab].SetTitle(lab+" from stranges") + eff[lab].SetTitle(lab + " from stranges") if (histoName.find('electron') != -1): - eff[lab].SetTitle(lab+" electron") + eff[lab].SetTitle(lab + " electron") - hist[lab]= denominator.Clone() + hist[lab] = denominator.Clone() hist[lab].SetName("h_numerator_notElectrons") - hist[lab].SetTitle(var +" histo. not elec.") + hist[lab].SetTitle(var + " histo. not elec.") if (histoName.find('strange') != -1): - hist[lab].SetTitle(var +" histo. stranges") + hist[lab].SetTitle(var + " histo. stranges") if (histoName.find('electron') != -1): - hist[lab].SetTitle(var +" histo. electron") + hist[lab].SetTitle(var + " histo. electron") - if var== "p": + if var == "p": eff[lab].GetXaxis().SetRangeUser(0, 50000) hist[lab].GetXaxis().SetRangeUser(0, 50000) #print the muonID efficiency in each p bin - if var== "p" and printval: + if var == "p" and printval: for i in range(1, numerator.GetNbinsX()): if denominator.GetBinContent(i) == 0: continue Eff = numerator.GetBinContent(i) / ( denominator.GetBinContent(i) + 0.0) - print(lab+": Efficiency of muon ID in (" + - format(numerator.GetBinLowEdge(i), '.2f') + - ", " + format( + print(lab + ": Efficiency of muon ID in (" + + format(numerator.GetBinLowEdge(i), '.2f') + ", " + + format( numerator.GetBinLowEdge(i) + - numerator.GetBinWidth(i), '.2f') + - ") [GeV/c] : " + format(Eff, '.2%')) + numerator.GetBinWidth(i), '.2f') + ") [GeV/c] : " + + format(Eff, '.2%')) - - if var== "pt": + if var == "pt": eff[lab].GetXaxis().SetRangeUser(0, 5000) hist[lab].GetXaxis().SetRangeUser(0, 5000) @@ -151,16 +153,17 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): sys.path.append(os.path.abspath(plotstyle)) from utils.LHCbStyle import setLHCbStyle, set_style - from utils.ConfigHistos import (efficiencyHistoDict, categoriesDict, getCuts) + from utils.ConfigHistos import (efficiencyHistoDict, categoriesDict, + getCuts) from utils.Legend import place_legend setLHCbStyle() markers = get_markers() colors = get_colors() - styles= get_fillstyles() + styles = get_fillstyles() - tf={} - tf=get_files(tf, filename, label) + tf = {} + tf = get_files(tf, filename, label) outputfile = TFile(outfile, "recreate") latex = TLatex() @@ -188,17 +191,19 @@ def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): # calculate efficiency for histo in efficiencyHistos: - canvastitle = "efficiency vs. " + histo + ", " + categories[tracker][cut]["title"] - name = "efficiency_" + histo+"_"+cut + canvastitle = "efficiency vs. " + histo + ", " + categories[ + tracker][cut]["title"] + name = "efficiency_" + histo + "_" + cut # get efficiency for not electrons category histoName = histoBaseName + "" + efficiencyHistoDict[histo][ "variable"] histoName_den = histoBaseName_den + "" + efficiencyHistoDict[ histo]["variable"] print("not electrons: " + histoName) - eff={} - hist_den={} - eff, hist_den = get_eff( eff, hist_den, tf, histoName, histoName_den, label, histo, printval) + eff = {} + hist_den = {} + eff, hist_den = get_eff(eff, hist_den, tf, histoName, + histoName_den, label, histo, printval) canvas = TCanvas(name, canvastitle) mg = TMultiGraph() @@ -214,10 +219,11 @@ def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): rightmax = 1.05 * hist_den[lab].GetMaximum() scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) - if i==0: + if i == 0: set_style(hist_den[lab], kGray, markers[i], styles[i]) else: - set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) + set_style(hist_den[lab], colors[i] - 10, markers[i], + styles[i]) hist_den[lab].Draw("hist SAME") canvas.PlaceLegend() @@ -227,7 +233,7 @@ def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): canvas.SetRightMargin(0.05) canvas.Write() - canvasName="MuonIDEff_"+cut+"_"+histo+".pdf" + canvasName = "MuonIDEff_" + cut + "_" + histo + ".pdf" if savepdf: canvas.SaveAs(canvasName) canvas.SetRightMargin(0.05) @@ -236,6 +242,7 @@ def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): outputfile.Write() outputfile.Close() + if __name__ == '__main__': parser = argument_parser() args = parser.parse_args() diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 816c725a77c..d368533f249 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -26,27 +26,30 @@ from ROOT import ROOT, vector, TGraphAsymmErrors from collections import defaultdict + def get_colors(): return [kBlack, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + def get_markers(): - return [20, 24, 21, 22, 23, 25 ] + return [20, 24, 21, 22, 23, 25] + + def get_fillstyles(): return [3004, 3003, 3325, 3144, 3244, 3444] + def get_files(tf, filename, label): for i, f in enumerate(filename): tf[label[i]] = TFile(f, "read") return tf + def argument_parser(): parser = argparse.ArgumentParser( description="location of the histogram file") parser.add_argument( - '--filename', - nargs='+', - default=[], - help='name of input files') + '--filename', nargs='+', default=[], help='name of input files') parser.add_argument( '--label', nargs='+', @@ -78,51 +81,52 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): markers = get_markers() colors = get_colors() - styles= get_fillstyles() - tf={} - tf=get_files(tf, filename, label) + styles = get_fillstyles() + tf = {} + tf = get_files(tf, filename, label) outputfile = TFile(outfile, "recreate") outputfile.cd() - hdp_p={} - hdp_eta={} - hres_p={} - hres_eta={} - hmom={} - heta={} + hdp_p = {} + hdp_eta = {} + hres_p = {} + hres_eta = {} + hmom = {} + heta = {} canvas1 = TCanvas("res_p", "res v.s. p") canvas1.cd() for idx, lab in enumerate(label): - hdp_p[lab] = tf[lab].Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") - hdp_p[lab].SetName("dpoverp_p_"+lab) + hdp_p[lab] = tf[lab].Get( + "Track/TrackResChecker/ALL/vertex/dpoverp_vs_p") + hdp_p[lab].SetName("dpoverp_p_" + lab) hmom[lab] = hdp_p[lab].ProjectionX() - hmom[lab].SetTitle("p histo. "+lab) + hmom[lab].SetTitle("p histo. " + lab) hdp_p[lab].FitSlicesY() - hres_p[lab] = gDirectory.Get("dpoverp_p_"+lab+"_2") + hres_p[lab] = gDirectory.Get("dpoverp_p_" + lab + "_2") hres_p[lab].GetYaxis().SetTitle("dp/p [%]") hres_p[lab].GetXaxis().SetTitle("p [GeV/c]") hres_p[lab].GetYaxis().SetRangeUser(0, 1.2) - hres_p[lab].SetTitle("Res. "+lab) + hres_p[lab].SetTitle("Res. " + lab) set_style(hres_p[lab], colors[idx], markers[idx], 0) - if idx==0: + if idx == 0: hres_p[lab].Draw("E1 p1") set_style(hmom[lab], kGray, markers[idx], styles[idx]) else: hres_p[lab].Draw("E1 p1 same") - set_style(hmom[lab], colors[idx]-10, markers[idx], styles[idx]) - hmom[lab].Scale(gPad.GetUymax()/hmom[lab].GetMaximum()) + set_style(hmom[lab], colors[idx] - 10, markers[idx], styles[idx]) + hmom[lab].Scale(gPad.GetUymax() / hmom[lab].GetMaximum()) hmom[lab].Draw("hist same") for i in range(1, hres_p[lab].GetNbinsX()): hres_p[lab].SetBinContent(i, hres_p[lab].GetBinContent(i) * 100) - print(lab+": Track resolution (dp/p) in p region: (" + + print(lab + ": Track resolution (dp/p) in p region: (" + format(hres_p[lab].GetBinLowEdge(i), '.2f') + ", " + format( - hres_p[lab].GetBinLowEdge(i) + hres_p[lab].GetBinWidth(i), '.2f') + - ") [GeV/c]" + " --- " + - format(hres_p[lab].GetBinContent(i), '.2f') + "%") + hres_p[lab].GetBinLowEdge(i) + + hres_p[lab].GetBinWidth(i), '.2f') + ") [GeV/c]" + + " --- " + format(hres_p[lab].GetBinContent(i), '.2f') + "%") print("-----------------------------------------------------") canvas1.PlaceLegend() @@ -137,34 +141,37 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): canvas2.cd() for idx, lab in enumerate(label): - hdp_eta[lab] = tf[lab].Get("Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") - hdp_eta[lab].SetName("dpoverp_eta_"+lab) + hdp_eta[lab] = tf[lab].Get( + "Track/TrackResChecker/ALL/vertex/dpoverp_vs_eta") + hdp_eta[lab].SetName("dpoverp_eta_" + lab) hdp_eta[lab].FitSlicesY() heta[lab] = hdp_eta[lab].ProjectionX() - heta[lab].SetTitle("#eta histo. "+lab) + heta[lab].SetTitle("#eta histo. " + lab) - hres_eta[lab]= gDirectory.Get("dpoverp_eta_"+lab+"_2") + hres_eta[lab] = gDirectory.Get("dpoverp_eta_" + lab + "_2") hres_eta[lab].GetYaxis().SetTitle("dp/p [%]") hres_eta[lab].GetXaxis().SetTitle("#eta") hres_eta[lab].GetYaxis().SetRangeUser(0, 1.2) - hres_eta[lab].SetTitle("Res. "+lab) + hres_eta[lab].SetTitle("Res. " + lab) set_style(hres_eta[lab], colors[idx], markers[idx], 0) - if idx==0: + if idx == 0: hres_eta[lab].Draw("E1 p1") set_style(heta[lab], kGray, markers[idx], styles[idx]) else: hres_eta[lab].Draw("E1 p1 same") - set_style(heta[lab], colors[idx]-10, markers[idx], styles[idx]) + set_style(heta[lab], colors[idx] - 10, markers[idx], styles[idx]) - heta[lab].Scale(gPad.GetUymax()/heta[lab].GetMaximum()) + heta[lab].Scale(gPad.GetUymax() / heta[lab].GetMaximum()) heta[lab].Draw("hist same") for i in range(1, hres_eta[lab].GetNbinsX()): - hres_eta[lab].SetBinContent(i, hres_eta[lab].GetBinContent(i) * 100) + hres_eta[lab].SetBinContent(i, + hres_eta[lab].GetBinContent(i) * 100) - print(lab+": Track resolution (dp/p) in eta region: (" + - format(hres_eta[lab].GetBinLowEdge(i), '.2f') + ", " + format( + print(lab + ": Track resolution (dp/p) in eta region: (" + + format(hres_eta[lab].GetBinLowEdge(i), '.2f') + ", " + + format( hres_eta[lab].GetBinLowEdge(i) + hres_eta[lab].GetBinWidth(i), '.2f') + ")" + " --- " + format(hres_eta[lab].GetBinContent(i), '.2f') + "%") diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 7b3ec759297..76a38a2fb94 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -87,8 +87,8 @@ def getCuts(): ] basedict["MuonMatch"] = [ "02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", - "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", - "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" + "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", "01_long", + "02_long_muon", "03_long_muon_from_strange", "04_long_pion" ] return basedict diff --git a/Hlt/RecoConf/scripts/utils/LHCbStyle.py b/Hlt/RecoConf/scripts/utils/LHCbStyle.py index 1056556c8e5..1429775f1be 100644 --- a/Hlt/RecoConf/scripts/utils/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/utils/LHCbStyle.py @@ -13,6 +13,7 @@ from ROOT import gStyle from ROOT import gROOT, TH1, TH1F, TH1D from ROOT import TStyle + def set_style(graph, color, marker, style): graph.SetLineColor(color) graph.SetMarkerColor(color) @@ -36,6 +37,7 @@ def set_style(graph, color, marker, style): return graph + def setLHCbStyle(): global lhcbStyle -- GitLab From 4dfbb149a03de7a051b3cf26fe1422fac1462392 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 3 Mar 2020 10:23:05 +0100 Subject: [PATCH 106/199] fix bugs --- .../hlt1_rec_trackingeff_plots.qmt | 35 ------------------- .../hlt1_reco_IPresolution_plots.qmt | 2 +- .../hlt1_reco_muonIDeff_plots.qmt | 2 +- .../hlt1_reco_trackresolution_plots.qmt | 3 +- 4 files changed, 3 insertions(+), 39 deletions(-) delete mode 100644 Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt deleted file mode 100644 index 731c0006648..00000000000 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_rec_trackingeff_plots.qmt +++ /dev/null @@ -1,35 +0,0 @@ - - - - -python - - $RECOCONFROOT/scripts/PrCheckerEfficiency_HLT1.py - --filename=MCMatching_MiniBias.root - --outputfile=efficiency_plots.root - --plotstyle=$RECOCONFROOT/scripts/ - --output=hlt1_reco_trackeff_plot.opts.py - -true - - - -from Moore.qmtest.exclusions import remove_known_warnings -countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, - stdout=remove_known_warnings(stdout)) - - - - diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt index ec49d8a7ae3..5d93556337a 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @@ -17,7 +17,7 @@ Test script to determine IP resolution on simulation. $RECOCONFROOT/scripts/PrCheckerIPresolution.py --filename=Hlt1ForwardTracking_IPresolution.root - --outputfile=IPResolution_plots.root + --outfile=IPResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ --output=hlt1_reco_IPresolution_plot.opts.py diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt index e8c326d40e1..1b10fc5c4a2 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt @@ -18,7 +18,7 @@ long reconstructed forward tracks with MC samples. $RECOCONFROOT/scripts/PrCheckerMuonIDEff.py --filename=PrChecker_MuonID_MiniBias.root - --outputfile=muonIDeff_plots.root + --outfile=muonIDeff_plots.root --plotstyle=$RECOCONFROOT/scripts/ --output=hlt1_reco_muonideff_plot.opts.py diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt index 1bdb4418760..ced5bba9249 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt @@ -17,10 +17,9 @@ Test plot script to draw the track resolution in Hlt1 and test for changes. $RECOCONFROOT/scripts/PrCheckerTrackResolution.py --filename=Hlt1ForwardTrackingResolution.root - --outputfile=TrackResolution_plots.root + --outfile=TrackResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ --output=hlt1_reco_trackresolution.opts.py - --all-opt true -- GitLab From 58976915e466902c3a69fabe53b4b31b829f43e5 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 3 Mar 2020 10:24:24 +0100 Subject: [PATCH 107/199] comment on unused cut setting --- .../scripts/PrCheckerEfficiency_HLT1.py | 2 +- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 2 +- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 25 ++++++++++--------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index dec2ea13794..b290fea6729 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -162,8 +162,8 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, markers = get_markers() colors = get_colors() styles = get_fillstyles() - tf = {} + tf = {} tf = get_files(tf, filename, label) outputfile = TFile(outfile, "recreate") diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index eb46c712e1a..10b9359be01 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -63,7 +63,7 @@ def argument_parser(): parser.add_argument( '--filename', type=str, - default='MCMatching_MiniBias.root', + default='PrChecker_MuonID_MiniBias.root', nargs='+', help='input files, including path') parser.add_argument( diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 76a38a2fb94..553475aea3c 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -68,15 +68,15 @@ def getCuts(): "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV", - "11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", - "06_long_fromD" + #"11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", + #"06_long_fromD" ] basedict["Upstream"] = [ "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV", - "09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", - "14_long_strange_P>3GeV_Pt>0.5GeV" + #"09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", + #"14_long_strange_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", @@ -86,9 +86,9 @@ def getCuts(): "10_long_strange_P>3GeV_Pt>0.5GeV" ] basedict["MuonMatch"] = [ - "02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", - "03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", "01_long", - "02_long_muon", "03_long_muon_from_strange", "04_long_pion" + #"02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", + #"03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", + "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" ] return basedict @@ -139,7 +139,8 @@ def categoriesDict(): basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + #basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -181,8 +182,8 @@ def categoriesDict(): basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True basedict["Upstream"]["09_long_fromD"]["plotElectrons"] = False basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ - "plotElectrons"] = True + #basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Upstream"]["14_long_fromD_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ @@ -224,8 +225,8 @@ def categoriesDict(): basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True basedict["Forward"]["05_long_fromD"]["plotElectrons"] = False basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ - "plotElectrons"] = True + #basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Forward"]["10_long_fromD_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ -- GitLab From f29f469d5d7b47d1436e6c76cdd467f052346d1d Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 3 Mar 2020 10:27:16 +0100 Subject: [PATCH 108/199] remove unused library --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index b290fea6729..bafe7151d64 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -28,7 +28,7 @@ import ROOT from ROOT import TMultiGraph, TMath, TAxis, TH1, TLatex, TGaxis, TROOT, TSystem, TCanvas, TFile, TTree, TObject from ROOT import kDashed, kRed, kGreen, kBlue, kBlack, kAzure, kGray, kOrange, kMagenta, kCyan, kTRUE, kFALSE, gPad from ROOT import gROOT, gStyle, TStyle, TPaveText -from ROOT import ROOT, RDataFrame, vector, TGraphAsymmErrors +from ROOT import ROOT, vector, TGraphAsymmErrors import logging import subprocess -- GitLab From b4fc74872449b2524c7aa1ebe0955f0d91eba078 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 3 Mar 2020 09:27:59 +0000 Subject: [PATCH 109/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7420696 --- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 39 ++++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 553475aea3c..9b80e253400 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -65,16 +65,28 @@ def getCuts(): basedict = {"Velo": {}, "Upstream": {}, "Forward": {}, "MuonMatch": {}} basedict["Velo"] = [ - "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", - "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", - "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV", + "01_velo", + "02_long", + "03_long_P>5GeV", + "04_long_strange", + "05_long_strange_P>5GeV", + "06_long_fromB", + "07_long_fromB_P>5GeV", + "11_long_fromB_P>3GeV_Pt>0.5GeV", + "12_UT_long_fromB_P>3GeV_Pt>0.5GeV", #"11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", #"06_long_fromD" ] basedict["Upstream"] = [ - "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", - "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", - "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV", + "01_velo", + "02_velo+UT", + "03_velo+UT_P>5GeV", + "07_long", + "08_long_P>5GeV", + "09_long_fromB", + "10_long_fromB_P>5GeV", + "14_long_fromB_P>3GeV_Pt>0.5GeV", + "15_UT_long_fromB_P>3GeV_Pt>0.5GeV", #"09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", #"14_long_strange_P>3GeV_Pt>0.5GeV" ] @@ -87,8 +99,11 @@ def getCuts(): ] basedict["MuonMatch"] = [ #"02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", - #"03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", - "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" + #"03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", + "01_long", + "02_long_muon", + "03_long_muon_from_strange", + "04_long_pion" ] return basedict @@ -140,7 +155,7 @@ def categoriesDict(): basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True #basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True - basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -183,7 +198,8 @@ def categoriesDict(): basedict["Upstream"]["09_long_fromD"]["plotElectrons"] = False basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True #basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True - basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False basedict["Upstream"]["14_long_fromD_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ @@ -226,7 +242,8 @@ def categoriesDict(): basedict["Forward"]["05_long_fromD"]["plotElectrons"] = False basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True #basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True - basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = False basedict["Forward"]["10_long_fromD_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ -- GitLab From 5f9d81f2ed8a43bf9ac92b752f87a1858a321fa6 Mon Sep 17 00:00:00 2001 From: Agnieszka Dziurda Date: Thu, 5 Mar 2020 11:30:18 +0100 Subject: [PATCH 110/199] adding dependence plot, restructurisation --- .../scripts/PrimaryVertexCheckerEfficiency.py | 72 ++--- .../scripts/PrimaryVertexCheckerPull.py | 93 ++++-- .../scripts/PrimaryVertexCheckerResolution.py | 98 ++++-- Hlt/RecoConf/scripts/utils/pvconfig.py | 136 ++++++++ Hlt/RecoConf/scripts/utils/pvutils.py | 306 ++++++++++-------- 5 files changed, 464 insertions(+), 241 deletions(-) create mode 100644 Hlt/RecoConf/scripts/utils/pvconfig.py diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py index 56f166169fd..05ee126647e 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -78,29 +78,6 @@ parser.add_argument( ) -def get_categories(multi, smog): - cut = {} - cut["all"] = {"cut": ""} - cut["isolated"] = {"cut": "&&isol==1"} - if not smog: - cut["close"] = {"cut": "&&isol==0"} - if multi: - cut["1st"] = {"cut": "&&multimc==1"} - cut["2nd"] = {"cut": "&&multimc==2"} - cut["3rd"] = {"cut": "&&multimc==3"} - cut["4th"] = {"cut": "&&multimc==4"} - cut["5th"] = {"cut": "&&multimc==5"} - - return cut - - -def get_colors(): - return [kRed, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] - - -def get_markers(): - return [21, 20, 22, 23, 24, 25, 26] - def get_labels(number_of_files): label = [] @@ -117,11 +94,14 @@ if __name__ == '__main__': gROOT.SetBatch() from pvutils import get_default_tree_name - from pvutils import get_files, get_trees, get_eff, plot_eff - from pvutils import set_legend + from pvutils import get_files, get_trees, get_eff, plot + + from pvconfig import get_variable_ranges + from pvconfig import get_style, get_categories + from pvconfig import set_legend - markers = get_markers() - colors = get_colors() + ranges = get_variable_ranges(args.smog) + style = get_style() label = args.label if args.label == "": @@ -132,28 +112,32 @@ if __name__ == '__main__': tf = get_files(tf, label, args.fileName) tr = get_trees(tf, tr, label, args.treeName, True) - eff_tr = {} - eff_z = {} - eff_r = {} - hist_tr = {} - hist_z = {} - hist_r = {} + eff = {} + eff["tracks"] = {} + eff["z"] = {} + eff["r"] = {} + hist = {} + hist["tracks"] = {} + hist["z"]={} + hist["r"]={} + cat = get_categories(args.multi, args.smog) - eff_tr, hist_tr = get_eff(eff_tr, hist_tr, tr, "nrectrmc", colors, markers, - args.smog, cat, label) - eff_z, hist_z = get_eff(eff_z, hist_z, tr, "zMC", colors, markers, - args.smog, cat, label) - eff_r, hist_r = get_eff(eff_r, hist_r, tr, "rMC", colors, markers, - args.smog, cat, label) + + eff["tracks"], hist["tracks"] = get_eff(eff["tracks"], hist["tracks"], tr, "nrectrmc", style, + ranges, cat, label) + eff["z"], hist["z"] = get_eff(eff["z"], hist["z"], tr, "zMC", style, + ranges, cat, label) + eff["r"], hist["r"] = get_eff(eff["r"], hist["r"], tr, "rMC", style, + ranges, cat, label) if args.dist: legend = TLegend(0.15, 0.82, 0.88, 0.98) else: legend = TLegend(0.15, 0.86, 0.88, 0.98) - legend = set_legend(legend, label, eff_tr, hist_tr, args.dist) + legend = set_legend(legend, label, eff["tracks"], "eff", hist["z"], args.dist) + - plot_eff(eff_tr, hist_tr, args.prefix, "ntracks", cat, label, legend, - args.dist) - plot_eff(eff_z, hist_z, args.prefix, "z", cat, label, legend, args.dist) - plot_eff(eff_r, hist_r, args.prefix, "r", cat, label, legend, args.dist) + plot(eff["tracks"], "eff", args.prefix, "ntracks", cat, label, legend, hist["tracks"], args.dist) + plot(eff["z"], "eff", args.prefix, "z", cat, label, legend, hist["z"], args.dist) + plot(eff["r"], "eff", args.prefix, "r", cat, label, legend, hist["r"], args.dist) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py index 0e226d931be..5c06da4eb87 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py @@ -78,30 +78,6 @@ parser.add_argument( ) -def get_categories(multi, smog): - cut = {} - cut["all"] = {"cut": ""} - cut["isolated"] = {"cut": "&&isol==1"} - if not smog: - cut["close"] = {"cut": "&&isol==0"} - if multi: - cut["1st"] = {"cut": "&&multimc==1"} - cut["2nd"] = {"cut": "&&multimc==2"} - cut["3rd"] = {"cut": "&&multimc==3"} - cut["4th"] = {"cut": "&&multimc==4"} - cut["5th"] = {"cut": "&&multimc==5"} - - return cut - - -def get_colors(): - return [kRed, kBlue, kOrange, kMagenta, kGreen, kCyan] - - -def get_markers(): - return [21, 20, 22, 23, 24, 25, 26] - - def get_labels(number_of_files): label = [] for i in range(0, number_of_files): @@ -119,9 +95,16 @@ if __name__ == '__main__': from pvutils import get_default_tree_name from pvutils import get_files, get_trees from pvutils import set_legend, get_global, plot_comparison + from pvutils import get_dependence + from pvutils import plot + + from pvconfig import get_variable_ranges + from pvconfig import get_style, get_categories + from pvconfig import get_y_axis - markers = get_markers() - colors = get_colors() + ranges = get_variable_ranges(args.smog) + style = get_style() + cat = get_categories(args.multi, args.smog) label = args.label if args.label == "": @@ -137,12 +120,58 @@ if __name__ == '__main__': hist_z = {} norm = True #to-do hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", - "Candidates Normalized", colors, markers, cat, label) + "Candidates Normalized", style, ranges, cat, label) hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", - "Candidates Normalized", colors, markers, cat, label) + "Candidates Normalized", style, ranges, cat, label) hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", - "Candidates Normalized", colors, markers, cat, label) + "Candidates Normalized", style, ranges, cat, label) + + plot_comparison(hist_x, args.prefix, "pullx", cat, label, style, norm) + plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm) + plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm) + + + from ROOT import gEnv + gEnv.SetValue("Hist.Binning.1D.x","100") + + + graph = {} + graph["tracks"] = {} + graph["tracks"]["pullx"] = {} + graph["tracks"]["pully"] = {} + graph["tracks"]["pullz"] = {} + graph["tracks"]["pullx"] = get_dependence(graph["tracks"]["pullx"], tr, "pullx", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["pully"] = get_dependence(graph["tracks"]["pully"], tr, "pully", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["pullz"] = get_dependence(graph["tracks"]["pullz"], tr, "pullz", "nrectrmc", ranges, style, cat, label) + + legend = TLegend(0.15, 0.86, 0.88, 0.98) + legend = set_legend(legend, label, graph["tracks"]["pullz"], "sigma") + + plot(graph["tracks"]["pullx"], "mean", args.prefix+"_ntracks_mean", "pullx", cat, label, legend) + plot(graph["tracks"]["pullx"], "sigma", args.prefix+"_ntracks_sigma", "pullx", cat, label, legend) + + plot(graph["tracks"]["pully"], "mean", args.prefix+"_ntracks_mean", "pully", cat, label, legend) + plot(graph["tracks"]["pully"], "sigma", args.prefix+"_ntracks_sigma", "pully", cat, label, legend) + + plot(graph["tracks"]["pullz"], "mean", args.prefix+"_ntracks_mean", "pullz", cat, label, legend) + plot(graph["tracks"]["pullz"], "sigma", args.prefix+"_ntracks_sigma", "pullz", cat, label, legend) + + + graph["z"] = {} + graph["z"]["pullx"] = {} + graph["z"]["pully"] = {} + graph["z"]["pullz"] = {} + graph["z"]["pullx"] = get_dependence(graph["z"]["pullx"], tr, "pullx", "zMC", ranges, style, cat, label) + graph["z"]["pully"] = get_dependence(graph["z"]["pully"], tr, "pully", "zMC", ranges, style, cat, label) + graph["z"]["pullz"] = get_dependence(graph["z"]["pullz"], tr, "pullz", "zMC", ranges, style, cat, label) + + plot(graph["z"]["pullx"], "mean", args.prefix+"_z_mean", "pullx", cat, label, legend) + plot(graph["z"]["pullx"], "sigma", args.prefix+"_z_sigma", "pullx", cat, label, legend) + + plot(graph["z"]["pully"], "mean", args.prefix+"_z_mean", "pully", cat, label, legend) + plot(graph["z"]["pully"], "sigma", args.prefix+"_z_sigma", "pully", cat, label, legend) + + plot(graph["z"]["pullz"], "mean", args.prefix+"_z_mean", "pullz", cat, label, legend) + plot(graph["z"]["pullz"], "sigma", args.prefix+"_z_sigma", "pullz", cat, label, legend) + - plot_comparison(hist_x, args.prefix, "pullx", cat, label, colors, norm) - plot_comparison(hist_y, args.prefix, "pully", cat, label, colors, norm) - plot_comparison(hist_z, args.prefix, "pullz", cat, label, colors, norm) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py index e89588da0e6..119963274c0 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py @@ -78,34 +78,10 @@ parser.add_argument( ) -def get_categories(multi, smog): - cut = {} - cut["all"] = {"cut": ""} - cut["isolated"] = {"cut": "&&isol==1"} - if not smog: - cut["close"] = {"cut": "&&isol==0"} - if multi: - cut["1st"] = {"cut": "&&multimc==1"} - cut["2nd"] = {"cut": "&&multimc==2"} - cut["3rd"] = {"cut": "&&multimc==3"} - cut["4th"] = {"cut": "&&multimc==4"} - cut["5th"] = {"cut": "&&multimc==5"} - - return cut - - -def get_colors(): - return [kRed, kBlue, kOrange, kMagenta, kGreen, kCyan] - - -def get_markers(): - return [21, 20, 22, 23, 24, 25, 26] - - def get_labels(number_of_files): label = [] for i in range(0, number_of_files): - label.append("PV Checker {number}".format(number=str(i + 1))) + label.append("PVChecker{number}".format(number=str(i + 1))) return label @@ -119,14 +95,21 @@ if __name__ == '__main__': from pvutils import get_default_tree_name from pvutils import get_files, get_trees from pvutils import set_legend, get_global, plot_comparison + from pvutils import get_dependence + from pvutils import plot + + from pvconfig import get_variable_ranges + from pvconfig import get_style, get_categories - markers = get_markers() - colors = get_colors() + ranges = get_variable_ranges(args.smog) + style = get_style() + cat = get_categories(args.multi, args.smog) label = args.label if args.label == "": label = get_labels(len(args.fileName)) + tr = {} tf = {} tf = get_files(tf, label, args.fileName) @@ -136,13 +119,60 @@ if __name__ == '__main__': hist_y = {} hist_z = {} norm = True + + hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", - "Candidates Normalized", colors, markers, cat, label) + "Candidates Normalized", style, ranges, cat, label) hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", - "Candidates Normalized", colors, markers, cat, label) + "Candidates Normalized", style, ranges, cat, label) hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", - "Candidates Normalized", colors, markers, cat, label) - - plot_comparison(hist_x, args.prefix, "dx", cat, label, colors, norm) - plot_comparison(hist_y, args.prefix, "dy", cat, label, colors, norm) - plot_comparison(hist_z, args.prefix, "dz", cat, label, colors, norm) + "Candidates Normalized", style, ranges, cat, label) + + plot_comparison(hist_x, args.prefix, "dx", cat, label, style, norm) + plot_comparison(hist_y, args.prefix, "dy", cat, label, style, norm) + plot_comparison(hist_z, args.prefix, "dz", cat, label, style, norm) + + + from ROOT import gEnv + gEnv.SetValue("Hist.Binning.1D.x","100") + + graph = {} + graph["tracks"] = {} + graph["tracks"]["dx"] = {} + graph["tracks"]["dy"] = {} + graph["tracks"]["dz"] = {} + graph["tracks"]["dx"] = get_dependence(graph["tracks"]["dx"], tr, "dx", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dy"] = get_dependence(graph["tracks"]["dy"], tr, "dy", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dz"] = get_dependence(graph["tracks"]["dz"], tr, "dz", "nrectrmc", ranges, style, cat, label) + + legend = TLegend(0.15, 0.86, 0.88, 0.98) + legend = set_legend(legend, label, graph["tracks"]["dz"], "sigma") + + plot(graph["tracks"]["dx"], "mean", args.prefix+"_ntracks_mean", "dx", cat, label, legend) + plot(graph["tracks"]["dx"], "sigma", args.prefix+"_ntracks_sigma", "dx", cat, label, legend) + + plot(graph["tracks"]["dy"], "mean", args.prefix+"_ntracks_mean", "dy", cat, label, legend) + plot(graph["tracks"]["dy"], "sigma", args.prefix+"_ntracks_sigma", "dy", cat, label, legend) + + plot(graph["tracks"]["dz"], "mean", args.prefix+"_ntracks_mean", "dz", cat, label, legend) + plot(graph["tracks"]["dz"], "sigma", args.prefix+"_ntracks_sigma", "dz", cat, label, legend) + + + graph["z"] = {} + graph["z"]["dx"] = {} + graph["z"]["dy"] = {} + graph["z"]["dz"] = {} + graph["z"]["dx"] = get_dependence(graph["z"]["dx"], tr, "dx", "zMC", ranges, style, cat, label) + graph["z"]["dy"] = get_dependence(graph["z"]["dy"], tr, "dy", "zMC", ranges, style, cat, label) + graph["z"]["dz"] = get_dependence(graph["z"]["dz"], tr, "dz", "zMC", ranges, style, cat, label) + + plot(graph["z"]["dx"], "mean", args.prefix+"_z_mean", "dx", cat, label, legend) + plot(graph["z"]["dx"], "sigma", args.prefix+"_z_sigma", "dx", cat, label, legend) + + plot(graph["z"]["dy"], "mean", args.prefix+"_z_mean", "dy", cat, label, legend) + plot(graph["z"]["dy"], "sigma", args.prefix+"_z_sigma", "dy", cat, label, legend) + + plot(graph["z"]["dz"], "mean", args.prefix+"_z_mean", "dz", cat, label, legend) + plot(graph["z"]["dz"], "sigma", args.prefix+"_z_sigma", "dz", cat, label, legend) + + diff --git a/Hlt/RecoConf/scripts/utils/pvconfig.py b/Hlt/RecoConf/scripts/utils/pvconfig.py new file mode 100644 index 00000000000..0b7f6890670 --- /dev/null +++ b/Hlt/RecoConf/scripts/utils/pvconfig.py @@ -0,0 +1,136 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +#!/usr/bin/python + +from ROOT import TH1F, TLegend +from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow + +def get_categories(multi, smog): + cut = {} + cut["all"] = {"cut": ""} +# cut["isolated"] = {"cut": "&&isol==1"} +# if not smog: +# cut["close"] = {"cut": "&&isol==0"} + if multi: + cut["1st"] = {"cut": "&&multimc==1"} + cut["2nd"] = {"cut": "&&multimc==2"} + cut["3rd"] = {"cut": "&&multimc==3"} + cut["4th"] = {"cut": "&&multimc==4"} + cut["5th"] = {"cut": "&&multimc==5"} + + return cut + + +def get_style(): + return {"color" :[kRed, kBlue, kOrange, kMagenta, kGreen, kCyan], + "marker":[21, 20, 22, 23, 24, 25 ]} + +def get_default_tree_name(is_checker): + if is_checker: + return "PrimaryVertexChecker/101" + else: + return "VertexCompare/102" + +def transfer_variable(dep): + dictionary = {"pullx":"dx/errx", + "pully":"dy/erry", + "pullz":"dz/errz", + "dx":"dx", + "dy":"dy", + "dz":"dz", } + return dictionary[dep] + +def get_variable_ranges(smog): + dictionary = {"zMC" :{"bins":50, "min":-200, "max":200}, + "rMC" :{"bins":50, "min":0.0, "max":0.2}, + "dx" :{"bins":50, "min":-0.10, "max":0.10}, + "dy" :{"bins":50, "min":-0.10, "max":0.10}, + "dz" :{"bins":50, "min":-0.40, "max":0.40}, + "pullx" :{"bins":50, "min":-3.50, "max":3.50}, + "pully" :{"bins":50, "min":-3.50, "max":3.50}, + "pullz" :{"bins":50, "min":-3.50, "max":3.50}, + "nrectrmc":{"bins":66, "min":4.0, "max":70.0}} + if smog: + dictionary["zMC"] = {"bins":100,"min":-500, "max":200} + + return dictionary + +def get_y_axis(dependence): + dictionary = {"dx":"Resolution #Delta x [#mu m]", + "dy":"Resolution #Delta y [#mu m]", + "dz":"Resolution #Delta z [#mu m]", + "pullx":"Pull #Delta x/#sigma_{x}", + "pully":"Pull #Delta y/#sigma_{y}", + "pullz":"Pull #Delta z/#sigma_{z}"} + return dictionary[dependence] + +def get_x_axis(dependence): + dictionary= {"zMC":"z [mm]", + "rMC":"radial distance [mm]", + "nrectrmc":"number of tracks in Primary Vertex"} + return dictionary[dependence] + +def set_style(graph, color, marker, xaxis, yaxis, title): + graph.SetTitle("") + graph.SetLineColor(color) + graph.SetMarkerColor(color) + graph.SetMarkerSize(1.3) + graph.SetMarkerStyle(marker) + graph.GetYaxis().SetTitleOffset(0.85) + if type(graph) == TH1F: + graph.SetFillColor(color) + graph.SetLineWidth(1) + graph.SetStats(False) + graph.GetYaxis().SetTitleOffset(1.1) + graph.GetYaxis().SetTitleSize(0.06) + graph.GetYaxis().SetLabelSize(0.06) + graph.GetXaxis().SetTitleSize(0.06) + graph.GetXaxis().SetLabelSize(0.06) + graph.GetXaxis().SetTitleFont(132) + graph.GetXaxis().SetLabelFont(132) + graph.GetYaxis().SetTitleFont(132) + graph.GetYaxis().SetLabelFont(132) + + if title != "": + graph.SetTitle(title) + if xaxis != "": + graph.GetXaxis().SetTitle(xaxis) + if yaxis != "": + graph.GetYaxis().SetTitle(yaxis) + +def set_legend(legend, label, gr, gr_type, + hist = None, dist = False): + legend.SetTextSize(0.04) + legend.SetTextFont(12) + legend.SetFillColor(4000) + legend.SetShadowColor(0) + legend.SetBorderSize(0) + legend.SetTextFont(132) + legend.SetNColumns(2) + for lab in label: + legend.AddEntry(gr["all"][lab][gr_type], "{lab}".format(lab=lab), + "lep") + if dist: + legend.AddEntry(hist["all"][label[0]]["den"], "Distribution MC", "f") + for lab in label: + legend.AddEntry(hist["all"][lab]["nom"], + "Distribution {lab}".format(lab=lab), "f") + + return legend + +def get_text_cor(): + return {"x": [0.17, 0.65, 0.17, 0.65], + "y": [0.92, 0.92, 0.75, 0.75]} + + + +def basic_cut(): + return "nrectrmc>=4 && dz < 2.0" diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index 124731fe94f..d734f3e7a62 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -20,13 +20,15 @@ from ROOT import TCanvas from ROOT import TGraphErrors, TLegend from ROOT import gPad, kGray, TLatex +from pvconfig import get_default_tree_name +from pvconfig import transfer_variable +from pvconfig import get_x_axis, get_y_axis +from pvconfig import set_style +from pvconfig import set_legend +from pvconfig import get_text_cor +from pvconfig import basic_cut -def get_default_tree_name(is_checker): - if is_checker: - return "PrimaryVertexChecker/101" - else: - return "VertexCompare/102" - +from array import array def get_files(tf, label, files): i = 0 @@ -47,88 +49,33 @@ def get_trees(tf, tr, label, trees, is_checker): return tr -def set_style(graph, color, marker, xaxis, yaxis, title): - graph.SetTitle("") - graph.SetLineColor(color) - graph.SetMarkerColor(color) - graph.SetMarkerSize(1.3) - graph.SetMarkerStyle(marker) - graph.GetYaxis().SetTitleOffset(0.85) - if type(graph) == TH1F: - graph.SetFillColor(color) - graph.SetLineWidth(4) - graph.SetStats(False) - graph.GetYaxis().SetTitleOffset(1.1) - graph.GetYaxis().SetTitleSize(0.06) - graph.GetYaxis().SetLabelSize(0.06) - graph.GetXaxis().SetTitleSize(0.06) - graph.GetXaxis().SetLabelSize(0.06) - graph.GetXaxis().SetTitleFont(132) - graph.GetXaxis().SetLabelFont(132) - graph.GetYaxis().SetTitleFont(132) - graph.GetYaxis().SetLabelFont(132) - - if title != "": - graph.SetTitle(title) - if xaxis != "": - graph.GetXaxis().SetTitle(xaxis) - if yaxis != "": - graph.GetYaxis().SetTitle(yaxis) - - -def get_range(dependence, smog): - if dependence == "zMC": - if smog: - return "(100,-500,200)" - else: - return "(50,-200,200)" - elif dependence == "rMC": - return "(50,0.0,0.2)" - elif (dependence == "dx" or dependence == "dy"): - return "(50,-0.10,0.10)" - elif dependence == "dz": - return "(50,-0.5,0.5)" - elif "err" in dependence or "pull" in dependence: - return "(50,-3.5,3.5)" - else: - return "(66,4,70)" - - -def get_x_axis(dependence): - if dependence == "zMC": - return "z [mm]" - elif dependence == "rMC": - return "radial distance [mm]" - else: - return "number of tracks in Primary Vertex" - - -def get_eff(eff, hist, trees, dependence, colors, markers, smog, categories, - label): - - hist_range = get_range(dependence, smog) +def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): for cat in categories: eff[cat] = {} hist[cat] = {} i = 0 for lab in label: - var_den = '{dependence}>>hist{code}_{dep}_{cat}_{lab}{hist_range}'.format( + var_den = '{dependence}>>hist{code}_{dep}_{cat}_{lab}({bins},{mins},{maxs})'.format( dependence=dependence, code="den", dep=dependence, cat=cat, lab=lab, - hist_range=hist_range) - var_nom = '{dependence}>>hist{code}_{dep}_{cat}_{lab}{hist_range}'.format( + bins=ranges[dependence]["bins"], + mins=ranges[dependence]["min"], + maxs=ranges[dependence]["max"]) + var_nom = '{dependence}>>hist{code}_{dep}_{cat}_{lab}({bins},{mins},{maxs})'.format( dependence=dependence, code="nom", dep=dependence, cat=cat, lab=lab, - hist_range=hist_range) + bins=ranges[dependence]["bins"], + mins=ranges[dependence]["min"], + maxs=ranges[dependence]["max"]) - cut_den = 'nrectrmc>=4 {cuts}'.format(cuts=categories[cat]["cut"]) + cut_den = 'nrectrmc>=4 && dz < 2.0 {cuts}'.format(cuts=categories[cat]["cut"]) cut_nom = cut_den + ' && reco == 1' trees[lab].Draw(var_nom, cut_nom) @@ -142,47 +89,42 @@ def get_eff(eff, hist, trees, dependence, colors, markers, smog, categories, g_eff = TGraphAsymmErrors() g_eff.Divide(h_nom, h_den, "cl=0.683 b(1,1) mode") - set_style(h_nom, colors[i] - 8, markers[i], get_x_axis(dependence), + set_style(h_nom, style["color"][i] - 8, style["marker"][i], get_x_axis(dependence), "Efficiency", "") - set_style(h_den, kGray, markers[i], get_x_axis(dependence), + set_style(h_den, kGray, style["marker"][i], get_x_axis(dependence), "Efficiency", "") hist[cat][lab] = {} hist[cat][lab]["nom"] = h_nom hist[cat][lab]["den"] = h_den - set_style(g_eff, colors[i], markers[i], get_x_axis(dependence), + set_style(g_eff, style["color"][i], style["marker"][i], get_x_axis(dependence), "Efficiency", "") - eff[cat][lab] = g_eff + eff[cat][lab] = {} + eff[cat][lab]["eff"] = g_eff i += 1 return eff, hist - -def set_legend(legend, label, gr, hist, dist): - legend.SetTextSize(0.04) - legend.SetTextFont(12) - legend.SetFillColor(4000) - legend.SetShadowColor(0) - legend.SetBorderSize(0) - legend.SetTextFont(132) - legend.SetNColumns(2) - #legend.SetHeader("LHCb Preliminary"); +def find_max(gr, gr_type, label): + m = -999999.0 for lab in label: - legend.AddEntry(gr["all"][lab], "Efficiency {lab}".format(lab=lab), - "lep") - if dist: - legend.AddEntry(hist["all"][label[0]]["den"], "Distribution MC", "f") - for lab in label: - legend.AddEntry(hist["all"][lab]["nom"], - "Distribution {lab}".format(lab=lab), "f") + if ( gr[lab][gr_type].GetYaxis().GetXmax() > m ): + m = gr[lab][gr_type].GetYaxis().GetXmax() - return legend + return m +def find_min(gr, gr_type, label): + m =999999.0 + for lab in label: + if ( gr[lab][gr_type].GetYaxis().GetXmin() < m ): + m = gr[lab][gr_type].GetYaxis().GetXmin() + return m + -def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): +def plot(gr, gr_type, prefix, dependence, categories, label, legend=None, hist=None, dist=False): for cat in categories: - can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), + can = TCanvas('canvas_{depen}_{prefix}_{gr_type}_{cat}'.format(depen=dependence, prefix=prefix, gr_type=gr_type, cat=cat), "cR", 1200, 800) can.SetBottomMargin(0.15) can.SetLeftMargin(0.12) @@ -192,11 +134,20 @@ def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): can.SetRightMargin(0.05) can.cd() - eff[cat][label[0]].GetYaxis().SetRangeUser(0.0, 1.1) - eff[cat][label[0]].Draw("AP") + maximum = find_max(gr[cat],gr_type,label) + minimum = find_min(gr[cat],gr_type,label) + if ( abs(maximum) > abs(minimum) and minimum<0): + minimum = -maximum + + gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(minimum*1.1, maximum*1.1) + if ( gr_type == "eff" ): + gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(0.0, 1.1) + if ( gr_type == "sigma"): + gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(0.0, maximum*1.1) + gr[cat][label[0]][gr_type].Draw("AP") for lab in label: - eff[cat][lab].Draw("SAME P") + gr[cat][lab][gr_type].Draw("SAME P") if dist: histmax_den = 1.1 * hist[cat][label[0]]["den"].GetMaximum() @@ -210,54 +161,47 @@ def plot_eff(eff, hist, prefix, dependence, categories, label, legend, dist): hist[cat][lab]["nom"].Scale(scale * 0.75) hist[cat][lab]["nom"].Draw("SAME") - eff[cat][lab].Draw("SAME P") + gr[cat][lab][gr_type].Draw("SAME P") - legend.Draw("SAME") + if legend: + legend.Draw("SAME") saveName = '{prefix}_{dependence}_{cat}.pdf'.format( prefix=prefix, dependence=dependence, cat=cat) can.SaveAs(saveName) -def transfer_dependence(dep): - if dep == "pullx": - return "dx/errx" - elif dep == "pully": - return "dy/erry" - elif dep == "pullz": - return "dz/errz" - else: - return dep - -def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, +def get_global(hist, trees, dependence, x_axis, y_axis, style, ranges, categories, label): - hist_range = get_range(dependence, False) - dep = transfer_dependence(dependence) + dep = transfer_variable(dependence) for cat in categories: hist[cat] = {} i = 0 for lab in label: - var = '{dependence}>>hist_{dep}_{cat}_{lab}{hist_range}'.format( + var = '{dependence}>>hist_{dep}_{cat}_{lab}({bins},{mins},{maxs})'.format( dependence=dep, dep=dependence, cat=cat, lab=lab, - hist_range=hist_range) + bins=ranges[dependence]["bins"], + mins=ranges[dependence]["min"], + maxs=ranges[dependence]["max"] + ) - cut = 'nrectrmc>=4 && reco == 1 {cuts}'.format( + cut = 'nrectrmc>=4 && dz < 2.0 && reco == 1 {cuts}'.format( cuts=categories[cat]["cut"]) trees[lab].Draw(var, cut) h = gDirectory.Get('hist_{dep}_{cat}_{lab}'.format( dep=dependence, cat=cat, lab=lab)) if i == 0: - col = colors[i] - 10 + col = style["color"][i] - 10 else: - col = colors[i] - set_style(h, col, markers[i], x_axis, y_axis, "") + col = style["color"][i] + set_style(h, col, style["marker"][i], x_axis, y_axis, "") hist[cat][lab] = h i += 1 @@ -265,19 +209,17 @@ def get_global(hist, trees, dependence, x_axis, y_axis, colors, markers, return hist -def get_text_cor(): - return {"x": [0.17, 0.65, 0.17, 0.65], "y": [0.92, 0.92, 0.75, 0.75]} - - def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, units): s = 1.0 if scale: s = 1000.0 - u = "" + ur = "" + um = "#times 10^{-3}" if units: - u = "[#mu m]" + ur = "[#mu m]" + um = "[#mu m]" text.SetNDC() text.SetTextFont(132) @@ -285,15 +227,15 @@ def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, text.DrawLatex(x, y * 1.0, lab) text.DrawLatex( - x, y * 0.95, "#mu = {0:0.2f} #pm {1:0.2f} {unit}".format( - mean * 1000.0, mean_err * 1000.0, unit=u)) + x, y * 0.95, "#mu = ({0:0.2f} #pm {1:0.2f}) {unit}".format( + mean * 1000.0, mean_err * 1000.0, unit=um)) text.DrawLatex( - x, y * 0.90, "#sigma = {0:0.2f} #pm {1:0.2f} {unit}".format( - rms * s, rms_err * s, unit=u)) + x, y * 0.90, "#sigma = ({0:0.2f} #pm {1:0.2f}) {unit}".format( + rms * s, rms_err * s, unit=ur)) return text -def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): +def plot_comparison(hist, prefix, dependence, categories, label, style, norm): for cat in categories: can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), @@ -320,7 +262,7 @@ def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): for lab in label: hist[cat][lab].DrawNormalized("SAME PE") text = TLatex() - text = set_text(text, colors[i], cor["x"][i], cor["y"][i], lab, + text = set_text(text, style["color"][i], cor["x"][i], cor["y"][i], lab, hist[cat][lab].GetMean(), hist[cat][lab].GetMeanError(), hist[cat][lab].GetRMS(), @@ -336,3 +278,105 @@ def plot_comparison(hist, prefix, dependence, categories, label, colors, norm): saveName = '{prefix}_{dependence}_{cat}.pdf'.format( prefix=prefix, dependence=dependence, cat=cat) can.SaveAs(saveName) + + +def get_robust_sigma(hist, resol): + + y = array('d',[0.]*3) + x = array('d',[0.]*3) + x[0] = 0.25 + x[1] = 0.50 + x[2] = 0.75 + + hist.GetQuantiles(3, y, x) + + _median = y[1] + _approxstdev = (y[2] - y[0]) / 1.34898; #factor gives correspondence between IQR and stdev for a Gaussian + mult = 4.0 + + histclone = hist.Clone() + nb = histclone.GetNbinsX() + + for i in range(1,nb+1): + if ((histclone.GetBinCenter(i) < (_median - _approxstdev * mult)) or (histclone.GetBinCenter(i) > (_median + _approxstdev * mult))): + histclone.SetBinContent(i, 0) + + if resol: + robustsigma = {"sigma": {"var":histclone.GetRMS()*1000.0, "err":histclone.GetRMSError()*1000.0}, + "mean": {"var":histclone.GetMean()*1000.0, "err":histclone.GetMeanError()*1000.0}} + + else: + robustsigma = {"sigma": {"var":histclone.GetRMS()*1.0, "err":histclone.GetRMSError()*1.0}, + "mean": {"var":histclone.GetMean(), "err":histclone.GetMeanError()}} + + return robustsigma; + +def get_dependence(graph, trees, variable, dependence, ranges, style, categories, label): + + var = transfer_variable(variable) + bin_width = (ranges[dependence]["max"]-ranges[dependence]["min"])/ranges[dependence]["bins"] + + resol = True + mean = "Mean [#mu m]" + if "pull" in variable: + resol = False + mean = "Mean" + + for cat in categories: + graph[cat] = {} + i = 0 + for lab in label: + graph[cat][lab] = {} + graph_rms = TGraphAsymmErrors(ranges[dependence]["bins"]) + graph_mean = TGraphAsymmErrors(ranges[dependence]["bins"]) + + bin_min = ranges[dependence]["min"] + for b in range(0,ranges[dependence]["bins"]): + + cut_bin = '{variable1}>={mins} && {variable2}<{maxs}'.format( + variable1 = dependence, + mins = bin_min, + variable2 = dependence, + maxs = bin_min+bin_width) + + hist_string = '{dependence}>>hist_{dep}_{cat}_{lab}_{number}'.format( + dependence=var, + dep=variable, + cat=cat, + lab=lab, + number=int(b), + ) + + cut = '{basic} && reco == 1 && {bin_cut} {cuts}'.format( + basic = basic_cut(), + bin_cut = cut_bin, + cuts=categories[cat]["cut"]) + + + a = trees[lab].Draw(hist_string, cut) + + bin_min += bin_width + + h = gDirectory.Get('hist_{dep}_{cat}_{lab}_{number}'.format( + dep=variable, + cat=cat, + lab=lab, + number=int(b) )) + + robust_sigma = get_robust_sigma(h, resol) + + graph_mean.SetPoint(b, bin_min+bin_width/2.0, robust_sigma["mean"]["var"]) + graph_mean.SetPointError(b, bin_width/2.0, bin_width/2.0, robust_sigma["mean"]["err"],robust_sigma["mean"]["err"]) + + graph_rms.SetPoint(b, bin_min+bin_width/2.0, robust_sigma["sigma"]["var"]) + graph_rms.SetPointError(b, bin_width/2.0, bin_width/2.0, robust_sigma["sigma"]["err"],robust_sigma["sigma"]["err"]) + + set_style(graph_rms, style["color"][i], style["marker"][i], get_x_axis(dependence), get_y_axis(variable), "") + set_style(graph_mean, style["color"][i], style["marker"][i], get_x_axis(dependence), mean, "") + + graph[cat][lab]["sigma"] = graph_rms + graph[cat][lab]["mean"] = graph_mean + i+=1 + + + return graph -- GitLab From 3e137afa1ecdf95fea7e8b457dc1d770716cdc66 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Thu, 5 Mar 2020 10:34:53 +0000 Subject: [PATCH 111/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7460832 --- .../scripts/PrimaryVertexCheckerEfficiency.py | 43 ++-- .../scripts/PrimaryVertexCheckerPull.py | 74 ++++--- .../scripts/PrimaryVertexCheckerResolution.py | 82 ++++---- Hlt/RecoConf/scripts/utils/pvconfig.py | 126 ++++++++---- Hlt/RecoConf/scripts/utils/pvutils.py | 185 +++++++++++------- 5 files changed, 316 insertions(+), 194 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py index 05ee126647e..a8870f7bcfa 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -78,7 +78,6 @@ parser.add_argument( ) - def get_labels(number_of_files): label = [] for i in range(0, number_of_files): @@ -95,7 +94,7 @@ if __name__ == '__main__': from pvutils import get_default_tree_name from pvutils import get_files, get_trees, get_eff, plot - + from pvconfig import get_variable_ranges from pvconfig import get_style, get_categories from pvconfig import set_legend @@ -112,32 +111,36 @@ if __name__ == '__main__': tf = get_files(tf, label, args.fileName) tr = get_trees(tf, tr, label, args.treeName, True) - eff = {} + eff = {} eff["tracks"] = {} - eff["z"] = {} - eff["r"] = {} + eff["z"] = {} + eff["r"] = {} hist = {} hist["tracks"] = {} - hist["z"]={} - hist["r"]={} - + hist["z"] = {} + hist["r"] = {} + cat = get_categories(args.multi, args.smog) - eff["tracks"], hist["tracks"] = get_eff(eff["tracks"], hist["tracks"], tr, "nrectrmc", style, - ranges, cat, label) - eff["z"], hist["z"] = get_eff(eff["z"], hist["z"], tr, "zMC", style, - ranges, cat, label) - eff["r"], hist["r"] = get_eff(eff["r"], hist["r"], tr, "rMC", style, - ranges, cat, label) + eff["tracks"], hist["tracks"] = get_eff(eff["tracks"], hist["tracks"], tr, + "nrectrmc", style, ranges, cat, + label) + eff["z"], hist["z"] = get_eff(eff["z"], hist["z"], tr, "zMC", style, + ranges, cat, label) + eff["r"], hist["r"] = get_eff(eff["r"], hist["r"], tr, "rMC", style, + ranges, cat, label) if args.dist: legend = TLegend(0.15, 0.82, 0.88, 0.98) else: legend = TLegend(0.15, 0.86, 0.88, 0.98) - legend = set_legend(legend, label, eff["tracks"], "eff", hist["z"], args.dist) - - - plot(eff["tracks"], "eff", args.prefix, "ntracks", cat, label, legend, hist["tracks"], args.dist) - plot(eff["z"], "eff", args.prefix, "z", cat, label, legend, hist["z"], args.dist) - plot(eff["r"], "eff", args.prefix, "r", cat, label, legend, hist["r"], args.dist) + legend = set_legend(legend, label, eff["tracks"], "eff", hist["z"], + args.dist) + + plot(eff["tracks"], "eff", args.prefix, "ntracks", cat, label, legend, + hist["tracks"], args.dist) + plot(eff["z"], "eff", args.prefix, "z", cat, label, legend, hist["z"], + args.dist) + plot(eff["r"], "eff", args.prefix, "r", cat, label, legend, hist["r"], + args.dist) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py index 5c06da4eb87..6b6b2f7532d 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py @@ -100,11 +100,11 @@ if __name__ == '__main__': from pvconfig import get_variable_ranges from pvconfig import get_style, get_categories - from pvconfig import get_y_axis + from pvconfig import get_y_axis ranges = get_variable_ranges(args.smog) style = get_style() - + cat = get_categories(args.multi, args.smog) label = args.label if args.label == "": @@ -130,48 +130,64 @@ if __name__ == '__main__': plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm) plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm) - from ROOT import gEnv - gEnv.SetValue("Hist.Binning.1D.x","100") - + gEnv.SetValue("Hist.Binning.1D.x", "100") graph = {} graph["tracks"] = {} graph["tracks"]["pullx"] = {} graph["tracks"]["pully"] = {} graph["tracks"]["pullz"] = {} - graph["tracks"]["pullx"] = get_dependence(graph["tracks"]["pullx"], tr, "pullx", "nrectrmc", ranges, style, cat, label) - graph["tracks"]["pully"] = get_dependence(graph["tracks"]["pully"], tr, "pully", "nrectrmc", ranges, style, cat, label) - graph["tracks"]["pullz"] = get_dependence(graph["tracks"]["pullz"], tr, "pullz", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["pullx"] = get_dependence(graph["tracks"]["pullx"], tr, + "pullx", "nrectrmc", ranges, + style, cat, label) + graph["tracks"]["pully"] = get_dependence(graph["tracks"]["pully"], tr, + "pully", "nrectrmc", ranges, + style, cat, label) + graph["tracks"]["pullz"] = get_dependence(graph["tracks"]["pullz"], tr, + "pullz", "nrectrmc", ranges, + style, cat, label) legend = TLegend(0.15, 0.86, 0.88, 0.98) legend = set_legend(legend, label, graph["tracks"]["pullz"], "sigma") - plot(graph["tracks"]["pullx"], "mean", args.prefix+"_ntracks_mean", "pullx", cat, label, legend) - plot(graph["tracks"]["pullx"], "sigma", args.prefix+"_ntracks_sigma", "pullx", cat, label, legend) + plot(graph["tracks"]["pullx"], "mean", args.prefix + "_ntracks_mean", + "pullx", cat, label, legend) + plot(graph["tracks"]["pullx"], "sigma", args.prefix + "_ntracks_sigma", + "pullx", cat, label, legend) - plot(graph["tracks"]["pully"], "mean", args.prefix+"_ntracks_mean", "pully", cat, label, legend) - plot(graph["tracks"]["pully"], "sigma", args.prefix+"_ntracks_sigma", "pully", cat, label, legend) - - plot(graph["tracks"]["pullz"], "mean", args.prefix+"_ntracks_mean", "pullz", cat, label, legend) - plot(graph["tracks"]["pullz"], "sigma", args.prefix+"_ntracks_sigma", "pullz", cat, label, legend) + plot(graph["tracks"]["pully"], "mean", args.prefix + "_ntracks_mean", + "pully", cat, label, legend) + plot(graph["tracks"]["pully"], "sigma", args.prefix + "_ntracks_sigma", + "pully", cat, label, legend) + plot(graph["tracks"]["pullz"], "mean", args.prefix + "_ntracks_mean", + "pullz", cat, label, legend) + plot(graph["tracks"]["pullz"], "sigma", args.prefix + "_ntracks_sigma", + "pullz", cat, label, legend) graph["z"] = {} graph["z"]["pullx"] = {} graph["z"]["pully"] = {} graph["z"]["pullz"] = {} - graph["z"]["pullx"] = get_dependence(graph["z"]["pullx"], tr, "pullx", "zMC", ranges, style, cat, label) - graph["z"]["pully"] = get_dependence(graph["z"]["pully"], tr, "pully", "zMC", ranges, style, cat, label) - graph["z"]["pullz"] = get_dependence(graph["z"]["pullz"], tr, "pullz", "zMC", ranges, style, cat, label) - - plot(graph["z"]["pullx"], "mean", args.prefix+"_z_mean", "pullx", cat, label, legend) - plot(graph["z"]["pullx"], "sigma", args.prefix+"_z_sigma", "pullx", cat, label, legend) - - plot(graph["z"]["pully"], "mean", args.prefix+"_z_mean", "pully", cat, label, legend) - plot(graph["z"]["pully"], "sigma", args.prefix+"_z_sigma", "pully", cat, label, legend) - - plot(graph["z"]["pullz"], "mean", args.prefix+"_z_mean", "pullz", cat, label, legend) - plot(graph["z"]["pullz"], "sigma", args.prefix+"_z_sigma", "pullz", cat, label, legend) - - + graph["z"]["pullx"] = get_dependence(graph["z"]["pullx"], tr, "pullx", + "zMC", ranges, style, cat, label) + graph["z"]["pully"] = get_dependence(graph["z"]["pully"], tr, "pully", + "zMC", ranges, style, cat, label) + graph["z"]["pullz"] = get_dependence(graph["z"]["pullz"], tr, "pullz", + "zMC", ranges, style, cat, label) + + plot(graph["z"]["pullx"], "mean", args.prefix + "_z_mean", "pullx", cat, + label, legend) + plot(graph["z"]["pullx"], "sigma", args.prefix + "_z_sigma", "pullx", cat, + label, legend) + + plot(graph["z"]["pully"], "mean", args.prefix + "_z_mean", "pully", cat, + label, legend) + plot(graph["z"]["pully"], "sigma", args.prefix + "_z_sigma", "pully", cat, + label, legend) + + plot(graph["z"]["pullz"], "mean", args.prefix + "_z_mean", "pullz", cat, + label, legend) + plot(graph["z"]["pullz"], "sigma", args.prefix + "_z_sigma", "pullz", cat, + label, legend) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py index 119963274c0..7a753cf251e 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py @@ -95,21 +95,20 @@ if __name__ == '__main__': from pvutils import get_default_tree_name from pvutils import get_files, get_trees from pvutils import set_legend, get_global, plot_comparison - from pvutils import get_dependence - from pvutils import plot + from pvutils import get_dependence + from pvutils import plot from pvconfig import get_variable_ranges from pvconfig import get_style, get_categories - ranges = get_variable_ranges(args.smog) + ranges = get_variable_ranges(args.smog) style = get_style() - + cat = get_categories(args.multi, args.smog) label = args.label if args.label == "": label = get_labels(len(args.fileName)) - tr = {} tf = {} tf = get_files(tf, label, args.fileName) @@ -120,59 +119,72 @@ if __name__ == '__main__': hist_z = {} norm = True - hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", "Candidates Normalized", style, ranges, cat, label) hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", "Candidates Normalized", style, ranges, cat, label) hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", "Candidates Normalized", style, ranges, cat, label) - + plot_comparison(hist_x, args.prefix, "dx", cat, label, style, norm) plot_comparison(hist_y, args.prefix, "dy", cat, label, style, norm) plot_comparison(hist_z, args.prefix, "dz", cat, label, style, norm) - from ROOT import gEnv - gEnv.SetValue("Hist.Binning.1D.x","100") - + gEnv.SetValue("Hist.Binning.1D.x", "100") + graph = {} graph["tracks"] = {} graph["tracks"]["dx"] = {} graph["tracks"]["dy"] = {} graph["tracks"]["dz"] = {} - graph["tracks"]["dx"] = get_dependence(graph["tracks"]["dx"], tr, "dx", "nrectrmc", ranges, style, cat, label) - graph["tracks"]["dy"] = get_dependence(graph["tracks"]["dy"], tr, "dy", "nrectrmc", ranges, style, cat, label) - graph["tracks"]["dz"] = get_dependence(graph["tracks"]["dz"], tr, "dz", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dx"] = get_dependence( + graph["tracks"]["dx"], tr, "dx", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dy"] = get_dependence( + graph["tracks"]["dy"], tr, "dy", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dz"] = get_dependence( + graph["tracks"]["dz"], tr, "dz", "nrectrmc", ranges, style, cat, label) legend = TLegend(0.15, 0.86, 0.88, 0.98) - legend = set_legend(legend, label, graph["tracks"]["dz"], "sigma") + legend = set_legend(legend, label, graph["tracks"]["dz"], "sigma") - plot(graph["tracks"]["dx"], "mean", args.prefix+"_ntracks_mean", "dx", cat, label, legend) - plot(graph["tracks"]["dx"], "sigma", args.prefix+"_ntracks_sigma", "dx", cat, label, legend) - - plot(graph["tracks"]["dy"], "mean", args.prefix+"_ntracks_mean", "dy", cat, label, legend) - plot(graph["tracks"]["dy"], "sigma", args.prefix+"_ntracks_sigma", "dy", cat, label, legend) + plot(graph["tracks"]["dx"], "mean", args.prefix + "_ntracks_mean", "dx", + cat, label, legend) + plot(graph["tracks"]["dx"], "sigma", args.prefix + "_ntracks_sigma", "dx", + cat, label, legend) - plot(graph["tracks"]["dz"], "mean", args.prefix+"_ntracks_mean", "dz", cat, label, legend) - plot(graph["tracks"]["dz"], "sigma", args.prefix+"_ntracks_sigma", "dz", cat, label, legend) + plot(graph["tracks"]["dy"], "mean", args.prefix + "_ntracks_mean", "dy", + cat, label, legend) + plot(graph["tracks"]["dy"], "sigma", args.prefix + "_ntracks_sigma", "dy", + cat, label, legend) + plot(graph["tracks"]["dz"], "mean", args.prefix + "_ntracks_mean", "dz", + cat, label, legend) + plot(graph["tracks"]["dz"], "sigma", args.prefix + "_ntracks_sigma", "dz", + cat, label, legend) graph["z"] = {} graph["z"]["dx"] = {} graph["z"]["dy"] = {} graph["z"]["dz"] = {} - graph["z"]["dx"] = get_dependence(graph["z"]["dx"], tr, "dx", "zMC", ranges, style, cat, label) - graph["z"]["dy"] = get_dependence(graph["z"]["dy"], tr, "dy", "zMC", ranges, style, cat, label) - graph["z"]["dz"] = get_dependence(graph["z"]["dz"], tr, "dz", "zMC", ranges, style, cat, label) - - plot(graph["z"]["dx"], "mean", args.prefix+"_z_mean", "dx", cat, label, legend) - plot(graph["z"]["dx"], "sigma", args.prefix+"_z_sigma", "dx", cat, label, legend) - - plot(graph["z"]["dy"], "mean", args.prefix+"_z_mean", "dy", cat, label, legend) - plot(graph["z"]["dy"], "sigma", args.prefix+"_z_sigma", "dy", cat, label, legend) - - plot(graph["z"]["dz"], "mean", args.prefix+"_z_mean", "dz", cat, label, legend) - plot(graph["z"]["dz"], "sigma", args.prefix+"_z_sigma", "dz", cat, label, legend) - - + graph["z"]["dx"] = get_dependence(graph["z"]["dx"], tr, "dx", "zMC", + ranges, style, cat, label) + graph["z"]["dy"] = get_dependence(graph["z"]["dy"], tr, "dy", "zMC", + ranges, style, cat, label) + graph["z"]["dz"] = get_dependence(graph["z"]["dz"], tr, "dz", "zMC", + ranges, style, cat, label) + + plot(graph["z"]["dx"], "mean", args.prefix + "_z_mean", "dx", cat, label, + legend) + plot(graph["z"]["dx"], "sigma", args.prefix + "_z_sigma", "dx", cat, label, + legend) + + plot(graph["z"]["dy"], "mean", args.prefix + "_z_mean", "dy", cat, label, + legend) + plot(graph["z"]["dy"], "sigma", args.prefix + "_z_sigma", "dy", cat, label, + legend) + + plot(graph["z"]["dz"], "mean", args.prefix + "_z_mean", "dz", cat, label, + legend) + plot(graph["z"]["dz"], "sigma", args.prefix + "_z_sigma", "dz", cat, label, + legend) diff --git a/Hlt/RecoConf/scripts/utils/pvconfig.py b/Hlt/RecoConf/scripts/utils/pvconfig.py index 0b7f6890670..aa85884257c 100644 --- a/Hlt/RecoConf/scripts/utils/pvconfig.py +++ b/Hlt/RecoConf/scripts/utils/pvconfig.py @@ -13,12 +13,13 @@ from ROOT import TH1F, TLegend from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow + def get_categories(multi, smog): cut = {} cut["all"] = {"cut": ""} -# cut["isolated"] = {"cut": "&&isol==1"} -# if not smog: -# cut["close"] = {"cut": "&&isol==0"} + # cut["isolated"] = {"cut": "&&isol==1"} + # if not smog: + # cut["close"] = {"cut": "&&isol==0"} if multi: cut["1st"] = {"cut": "&&multimc==1"} cut["2nd"] = {"cut": "&&multimc==2"} @@ -30,8 +31,11 @@ def get_categories(multi, smog): def get_style(): - return {"color" :[kRed, kBlue, kOrange, kMagenta, kGreen, kCyan], - "marker":[21, 20, 22, 23, 24, 25 ]} + return { + "color": [kRed, kBlue, kOrange, kMagenta, kGreen, kCyan], + "marker": [21, 20, 22, 23, 24, 25] + } + def get_default_tree_name(is_checker): if is_checker: @@ -39,45 +43,94 @@ def get_default_tree_name(is_checker): else: return "VertexCompare/102" + def transfer_variable(dep): - dictionary = {"pullx":"dx/errx", - "pully":"dy/erry", - "pullz":"dz/errz", - "dx":"dx", - "dy":"dy", - "dz":"dz", } + dictionary = { + "pullx": "dx/errx", + "pully": "dy/erry", + "pullz": "dz/errz", + "dx": "dx", + "dy": "dy", + "dz": "dz", + } return dictionary[dep] + def get_variable_ranges(smog): - dictionary = {"zMC" :{"bins":50, "min":-200, "max":200}, - "rMC" :{"bins":50, "min":0.0, "max":0.2}, - "dx" :{"bins":50, "min":-0.10, "max":0.10}, - "dy" :{"bins":50, "min":-0.10, "max":0.10}, - "dz" :{"bins":50, "min":-0.40, "max":0.40}, - "pullx" :{"bins":50, "min":-3.50, "max":3.50}, - "pully" :{"bins":50, "min":-3.50, "max":3.50}, - "pullz" :{"bins":50, "min":-3.50, "max":3.50}, - "nrectrmc":{"bins":66, "min":4.0, "max":70.0}} + dictionary = { + "zMC": { + "bins": 50, + "min": -200, + "max": 200 + }, + "rMC": { + "bins": 50, + "min": 0.0, + "max": 0.2 + }, + "dx": { + "bins": 50, + "min": -0.10, + "max": 0.10 + }, + "dy": { + "bins": 50, + "min": -0.10, + "max": 0.10 + }, + "dz": { + "bins": 50, + "min": -0.40, + "max": 0.40 + }, + "pullx": { + "bins": 50, + "min": -3.50, + "max": 3.50 + }, + "pully": { + "bins": 50, + "min": -3.50, + "max": 3.50 + }, + "pullz": { + "bins": 50, + "min": -3.50, + "max": 3.50 + }, + "nrectrmc": { + "bins": 66, + "min": 4.0, + "max": 70.0 + } + } if smog: - dictionary["zMC"] = {"bins":100,"min":-500, "max":200} - + dictionary["zMC"] = {"bins": 100, "min": -500, "max": 200} + return dictionary + def get_y_axis(dependence): - dictionary = {"dx":"Resolution #Delta x [#mu m]", - "dy":"Resolution #Delta y [#mu m]", - "dz":"Resolution #Delta z [#mu m]", - "pullx":"Pull #Delta x/#sigma_{x}", - "pully":"Pull #Delta y/#sigma_{y}", - "pullz":"Pull #Delta z/#sigma_{z}"} + dictionary = { + "dx": "Resolution #Delta x [#mu m]", + "dy": "Resolution #Delta y [#mu m]", + "dz": "Resolution #Delta z [#mu m]", + "pullx": "Pull #Delta x/#sigma_{x}", + "pully": "Pull #Delta y/#sigma_{y}", + "pullz": "Pull #Delta z/#sigma_{z}" + } return dictionary[dependence] + def get_x_axis(dependence): - dictionary= {"zMC":"z [mm]", - "rMC":"radial distance [mm]", - "nrectrmc":"number of tracks in Primary Vertex"} + dictionary = { + "zMC": "z [mm]", + "rMC": "radial distance [mm]", + "nrectrmc": "number of tracks in Primary Vertex" + } return dictionary[dependence] + def set_style(graph, color, marker, xaxis, yaxis, title): graph.SetTitle("") graph.SetLineColor(color) @@ -106,8 +159,8 @@ def set_style(graph, color, marker, xaxis, yaxis, title): if yaxis != "": graph.GetYaxis().SetTitle(yaxis) -def set_legend(legend, label, gr, gr_type, - hist = None, dist = False): + +def set_legend(legend, label, gr, gr_type, hist=None, dist=False): legend.SetTextSize(0.04) legend.SetTextFont(12) legend.SetFillColor(4000) @@ -126,11 +179,10 @@ def set_legend(legend, label, gr, gr_type, return legend + def get_text_cor(): - return {"x": [0.17, 0.65, 0.17, 0.65], - "y": [0.92, 0.92, 0.75, 0.75]} + return {"x": [0.17, 0.65, 0.17, 0.65], "y": [0.92, 0.92, 0.75, 0.75]} - def basic_cut(): - return "nrectrmc>=4 && dz < 2.0" + return "nrectrmc>=4 && dz < 2.0" diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index d734f3e7a62..5065d911ddf 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -20,7 +20,7 @@ from ROOT import TCanvas from ROOT import TGraphErrors, TLegend from ROOT import gPad, kGray, TLatex -from pvconfig import get_default_tree_name +from pvconfig import get_default_tree_name from pvconfig import transfer_variable from pvconfig import get_x_axis, get_y_axis from pvconfig import set_style @@ -30,6 +30,7 @@ from pvconfig import basic_cut from array import array + def get_files(tf, label, files): i = 0 for f in files: @@ -75,7 +76,8 @@ def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): mins=ranges[dependence]["min"], maxs=ranges[dependence]["max"]) - cut_den = 'nrectrmc>=4 && dz < 2.0 {cuts}'.format(cuts=categories[cat]["cut"]) + cut_den = 'nrectrmc>=4 && dz < 2.0 {cuts}'.format( + cuts=categories[cat]["cut"]) cut_nom = cut_den + ' && reco == 1' trees[lab].Draw(var_nom, cut_nom) @@ -89,43 +91,55 @@ def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): g_eff = TGraphAsymmErrors() g_eff.Divide(h_nom, h_den, "cl=0.683 b(1,1) mode") - set_style(h_nom, style["color"][i] - 8, style["marker"][i], get_x_axis(dependence), - "Efficiency", "") + set_style(h_nom, style["color"][i] - 8, style["marker"][i], + get_x_axis(dependence), "Efficiency", "") set_style(h_den, kGray, style["marker"][i], get_x_axis(dependence), "Efficiency", "") hist[cat][lab] = {} hist[cat][lab]["nom"] = h_nom hist[cat][lab]["den"] = h_den - set_style(g_eff, style["color"][i], style["marker"][i], get_x_axis(dependence), - "Efficiency", "") - eff[cat][lab] = {} + set_style(g_eff, style["color"][i], style["marker"][i], + get_x_axis(dependence), "Efficiency", "") + eff[cat][lab] = {} eff[cat][lab]["eff"] = g_eff i += 1 return eff, hist + def find_max(gr, gr_type, label): m = -999999.0 for lab in label: - if ( gr[lab][gr_type].GetYaxis().GetXmax() > m ): + if (gr[lab][gr_type].GetYaxis().GetXmax() > m): m = gr[lab][gr_type].GetYaxis().GetXmax() - return m + return m + def find_min(gr, gr_type, label): - m =999999.0 + m = 999999.0 for lab in label: - if ( gr[lab][gr_type].GetYaxis().GetXmin() < m ): + if (gr[lab][gr_type].GetYaxis().GetXmin() < m): m = gr[lab][gr_type].GetYaxis().GetXmin() return m - -def plot(gr, gr_type, prefix, dependence, categories, label, legend=None, hist=None, dist=False): + +def plot(gr, + gr_type, + prefix, + dependence, + categories, + label, + legend=None, + hist=None, + dist=False): for cat in categories: - can = TCanvas('canvas_{depen}_{prefix}_{gr_type}_{cat}'.format(depen=dependence, prefix=prefix, gr_type=gr_type, cat=cat), - "cR", 1200, 800) + can = TCanvas( + 'canvas_{depen}_{prefix}_{gr_type}_{cat}'.format( + depen=dependence, prefix=prefix, gr_type=gr_type, cat=cat), + "cR", 1200, 800) can.SetBottomMargin(0.15) can.SetLeftMargin(0.12) can.SetTopMargin(0.15) @@ -134,16 +148,18 @@ def plot(gr, gr_type, prefix, dependence, categories, label, legend=None, hist=N can.SetRightMargin(0.05) can.cd() - maximum = find_max(gr[cat],gr_type,label) - minimum = find_min(gr[cat],gr_type,label) - if ( abs(maximum) > abs(minimum) and minimum<0): + maximum = find_max(gr[cat], gr_type, label) + minimum = find_min(gr[cat], gr_type, label) + if (abs(maximum) > abs(minimum) and minimum < 0): minimum = -maximum - - gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(minimum*1.1, maximum*1.1) - if ( gr_type == "eff" ): + + gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser( + minimum * 1.1, maximum * 1.1) + if (gr_type == "eff"): gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(0.0, 1.1) - if ( gr_type == "sigma"): - gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(0.0, maximum*1.1) + if (gr_type == "sigma"): + gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser( + 0.0, maximum * 1.1) gr[cat][label[0]][gr_type].Draw("AP") for lab in label: @@ -171,7 +187,6 @@ def plot(gr, gr_type, prefix, dependence, categories, label, legend=None, hist=N can.SaveAs(saveName) - def get_global(hist, trees, dependence, x_axis, y_axis, style, ranges, categories, label): @@ -188,8 +203,7 @@ def get_global(hist, trees, dependence, x_axis, y_axis, style, ranges, lab=lab, bins=ranges[dependence]["bins"], mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"] - ) + maxs=ranges[dependence]["max"]) cut = 'nrectrmc>=4 && dz < 2.0 && reco == 1 {cuts}'.format( cuts=categories[cat]["cut"]) @@ -262,8 +276,8 @@ def plot_comparison(hist, prefix, dependence, categories, label, style, norm): for lab in label: hist[cat][lab].DrawNormalized("SAME PE") text = TLatex() - text = set_text(text, style["color"][i], cor["x"][i], cor["y"][i], lab, - hist[cat][lab].GetMean(), + text = set_text(text, style["color"][i], cor["x"][i], + cor["y"][i], lab, hist[cat][lab].GetMean(), hist[cat][lab].GetMeanError(), hist[cat][lab].GetRMS(), hist[cat][lab].GetRMSError(), scale, units) @@ -281,63 +295,85 @@ def plot_comparison(hist, prefix, dependence, categories, label, style, norm): def get_robust_sigma(hist, resol): - - y = array('d',[0.]*3) - x = array('d',[0.]*3) + + y = array('d', [0.] * 3) + x = array('d', [0.] * 3) x[0] = 0.25 x[1] = 0.50 x[2] = 0.75 hist.GetQuantiles(3, y, x) - + _median = y[1] - _approxstdev = (y[2] - y[0]) / 1.34898; #factor gives correspondence between IQR and stdev for a Gaussian + _approxstdev = (y[2] - y[0]) / 1.34898 + #factor gives correspondence between IQR and stdev for a Gaussian mult = 4.0 histclone = hist.Clone() nb = histclone.GetNbinsX() - for i in range(1,nb+1): - if ((histclone.GetBinCenter(i) < (_median - _approxstdev * mult)) or (histclone.GetBinCenter(i) > (_median + _approxstdev * mult))): + for i in range(1, nb + 1): + if ((histclone.GetBinCenter(i) < (_median - _approxstdev * mult)) + or (histclone.GetBinCenter(i) > + (_median + _approxstdev * mult))): histclone.SetBinContent(i, 0) if resol: - robustsigma = {"sigma": {"var":histclone.GetRMS()*1000.0, "err":histclone.GetRMSError()*1000.0}, - "mean": {"var":histclone.GetMean()*1000.0, "err":histclone.GetMeanError()*1000.0}} + robustsigma = { + "sigma": { + "var": histclone.GetRMS() * 1000.0, + "err": histclone.GetRMSError() * 1000.0 + }, + "mean": { + "var": histclone.GetMean() * 1000.0, + "err": histclone.GetMeanError() * 1000.0 + } + } else: - robustsigma = {"sigma": {"var":histclone.GetRMS()*1.0, "err":histclone.GetRMSError()*1.0}, - "mean": {"var":histclone.GetMean(), "err":histclone.GetMeanError()}} - - return robustsigma; + robustsigma = { + "sigma": { + "var": histclone.GetRMS() * 1.0, + "err": histclone.GetRMSError() * 1.0 + }, + "mean": { + "var": histclone.GetMean(), + "err": histclone.GetMeanError() + } + } -def get_dependence(graph, trees, variable, dependence, ranges, style, categories, label): - - var = transfer_variable(variable) - bin_width = (ranges[dependence]["max"]-ranges[dependence]["min"])/ranges[dependence]["bins"] + return robustsigma - resol = True + +def get_dependence(graph, trees, variable, dependence, ranges, style, + categories, label): + + var = transfer_variable(variable) + bin_width = (ranges[dependence]["max"] - + ranges[dependence]["min"]) / ranges[dependence]["bins"] + + resol = True mean = "Mean [#mu m]" if "pull" in variable: resol = False - mean = "Mean" + mean = "Mean" for cat in categories: graph[cat] = {} i = 0 for lab in label: graph[cat][lab] = {} - graph_rms = TGraphAsymmErrors(ranges[dependence]["bins"]) + graph_rms = TGraphAsymmErrors(ranges[dependence]["bins"]) graph_mean = TGraphAsymmErrors(ranges[dependence]["bins"]) bin_min = ranges[dependence]["min"] - for b in range(0,ranges[dependence]["bins"]): + for b in range(0, ranges[dependence]["bins"]): cut_bin = '{variable1}>={mins} && {variable2}<{maxs}'.format( - variable1 = dependence, - mins = bin_min, - variable2 = dependence, - maxs = bin_min+bin_width) + variable1=dependence, + mins=bin_min, + variable2=dependence, + maxs=bin_min + bin_width) hist_string = '{dependence}>>hist_{dep}_{cat}_{lab}_{number}'.format( dependence=var, @@ -346,37 +382,40 @@ def get_dependence(graph, trees, variable, dependence, ranges, style, categories lab=lab, number=int(b), ) - + cut = '{basic} && reco == 1 && {bin_cut} {cuts}'.format( - basic = basic_cut(), - bin_cut = cut_bin, + basic=basic_cut(), + bin_cut=cut_bin, cuts=categories[cat]["cut"]) - a = trees[lab].Draw(hist_string, cut) bin_min += bin_width - + h = gDirectory.Get('hist_{dep}_{cat}_{lab}_{number}'.format( - dep=variable, - cat=cat, - lab=lab, - number=int(b) )) + dep=variable, cat=cat, lab=lab, number=int(b))) robust_sigma = get_robust_sigma(h, resol) - - graph_mean.SetPoint(b, bin_min+bin_width/2.0, robust_sigma["mean"]["var"]) - graph_mean.SetPointError(b, bin_width/2.0, bin_width/2.0, robust_sigma["mean"]["err"],robust_sigma["mean"]["err"]) - - graph_rms.SetPoint(b, bin_min+bin_width/2.0, robust_sigma["sigma"]["var"]) - graph_rms.SetPointError(b, bin_width/2.0, bin_width/2.0, robust_sigma["sigma"]["err"],robust_sigma["sigma"]["err"]) - - set_style(graph_rms, style["color"][i], style["marker"][i], get_x_axis(dependence), get_y_axis(variable), "") - set_style(graph_mean, style["color"][i], style["marker"][i], get_x_axis(dependence), mean, "") + + graph_mean.SetPoint(b, bin_min + bin_width / 2.0, + robust_sigma["mean"]["var"]) + graph_mean.SetPointError(b, bin_width / 2.0, bin_width / 2.0, + robust_sigma["mean"]["err"], + robust_sigma["mean"]["err"]) + + graph_rms.SetPoint(b, bin_min + bin_width / 2.0, + robust_sigma["sigma"]["var"]) + graph_rms.SetPointError(b, bin_width / 2.0, bin_width / 2.0, + robust_sigma["sigma"]["err"], + robust_sigma["sigma"]["err"]) + + set_style(graph_rms, style["color"][i], style["marker"][i], + get_x_axis(dependence), get_y_axis(variable), "") + set_style(graph_mean, style["color"][i], style["marker"][i], + get_x_axis(dependence), mean, "") graph[cat][lab]["sigma"] = graph_rms graph[cat][lab]["mean"] = graph_mean - i+=1 - + i += 1 return graph -- GitLab From a3db2f3fb4197cf2183b0e3dfaf33abfe0f43e1b Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 6 Mar 2020 12:01:56 +0100 Subject: [PATCH 112/199] modify the plotting scripts --- .../scripts/PrCheckerEfficiency_HLT1.py | 18 ++++---- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 10 ++--- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 21 ++++----- .../scripts/PrCheckerTrackResolution.py | 28 ++++++------ Hlt/RecoConf/scripts/utils/ConfigHistos.py | 43 +++---------------- Hlt/RecoConf/scripts/utils/LHCbStyle.py | 2 + Hlt/RecoConf/scripts/utils/Legend.py | 11 +++++ .../hlt1_reco_IPresolution_plots.qmt | 2 +- 8 files changed, 58 insertions(+), 77 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index bafe7151d64..4997a74d4d8 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -52,7 +52,7 @@ def getOriginFolders(): def get_colors(): - return [kBlack, kAzure, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + return [kBlack, kAzure, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): @@ -140,13 +140,6 @@ def get_eff(eff, hist, tf, histoName, label, var): if (histoName.find('electron') != -1): hist[lab].SetTitle(var + " histo. electron") - if var == "p": - eff[lab].GetXaxis().SetRangeUser(0, 50000) - hist[lab].GetXaxis().SetRangeUser(0, 50000) - if var == "pt": - eff[lab].GetXaxis().SetRangeUser(0, 5000) - hist[lab].GetXaxis().SetRangeUser(0, 5000) - return eff, hist @@ -221,7 +214,7 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) if i == 0: - set_style(hist_den[lab], kGray, markers[i], + set_style(hist_den[lab], kGray+1, markers[i], styles[i]) else: set_style(hist_den[lab], colors[i] - 10, @@ -236,6 +229,8 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, hist_den[label[0]].Draw("hist SAME") canvas.PlaceLegend() + for lab in label: + eff[lab].Draw("P SAME") cutName = categories[tracker][cut]["title"] latex.DrawLatex(0.7, 0.85, "LHCb simultaion") latex.DrawLatex(0.35, 0.3, cutName) @@ -286,6 +281,8 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, styles[i]) canvas_elec.PlaceLegend() + for lab in label: + eff_elec[lab].Draw("P SAME") latex.DrawLatex(0.7, 0.85, "LHCb simultaion") latex.DrawLatex(0.35, 0.3, cutName) canvasName_elec = tracker + "_" + cut + "_" + histo + "_elec.pdf" @@ -331,6 +328,9 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, hist_elec[lab].Draw("hist SAME") canvas_com.PlaceLegend() + for lab in label: + eff[lab].Draw("P SAME") + eff_elec[lab].Draw("P SAME") latex.DrawLatex(0.7, 0.85, "LHCb simultaion") latex.DrawLatex(0.35, 0.3, cutName) canvas_com.SetRightMargin(0.05) diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 427358cb3f0..f46f699e348 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -28,7 +28,7 @@ from ROOT import ROOT, vector, TGraphAsymmErrors def get_colors(): - return [kBlack, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + return [kBlack, kBlue, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): @@ -92,9 +92,9 @@ def get_resolution(resx, resy, tr, label): print("Velo track from PV in acceptance: " + cutAcc) for i, lab in enumerate(label): ### typeofprefix==0 for track from PV and matched with MC - resIPx[lab] = TH2F("resIPx_" + lab, "IPx:1/pt", 20, 0, 2, 100, -300, + resIPx[lab] = TH2F("resIPx_" + lab, "IPx:1/pt", 20, 0, 2.0, 100, -300, 300) - resIPy[lab] = TH2F("resIPy_" + lab, "IPy:1/pt", 20, 0, 2, 100, -300, + resIPy[lab] = TH2F("resIPy_" + lab, "IPy:1/pt", 20, 0, 2.0, 100, -300, 300) resIPx[lab].SetMarkerStyle(1) resIPy[lab].SetMarkerStyle(1) @@ -109,7 +109,7 @@ def get_resolution(resx, resy, tr, label): resy[lab] = gDirectory.Get("resIPy_" + lab + "_2") resIPx_1[lab] = gDirectory.Get("resIPx_" + lab + "_1") resIPy_1[lab] = gDirectory.Get("resIPy_" + lab + "_1") - for i in range(1, 20): + for i in range(1, resIPx_1[lab].GetNbinsX()): print( lab + ": in 1/pT region: (" + format(resIPx_1[lab].GetBinLowEdge(i), '.2f') + ", " + format( @@ -180,7 +180,6 @@ def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): Par1x[lab] = format(polx[lab].GetParameter(1), '.2f') Funcx[lab] = lab + ": " + Par0x[lab] + "+" + Par1x[lab] + "/p_{T}" gr_resx[lab].SetTitle(Funcx[lab]) - #canvas1.PlaceLegend() place_legend( canvas1, 0.5, 0.2, 0.85, 0.45, header="LHCb simulation", option="lep") canvas1.SetRightMargin(0.05) @@ -211,7 +210,6 @@ def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): Par1y[lab] = format(poly[lab].GetParameter(1), '.2f') Funcy[lab] = lab + ": " + Par0y[lab] + "+" + Par1y[lab] + "/p_{T}" gr_resy[lab].SetTitle(Funcy[lab]) - #canvas2.PlaceLegend() place_legend( canvas2, 0.5, 0.2, 0.85, 0.45, header="LHCb simulation", option="lep") canvas2.SetRightMargin(0.05) diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 10b9359be01..be63684d4cd 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -47,7 +47,7 @@ def getOriginFolders(): def get_colors(): - return [kBlack, kAzure, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] + return [kBlack, kBlue, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): @@ -72,7 +72,7 @@ def argument_parser(): default='MuonIDefficiency_plots.root', help='output file') parser.add_argument( - '--label', nargs='+', default="EffChecker", help='label for files') + '--label', nargs='+', default="MuonIDEff", help='label for files') parser.add_argument( '--plotstyle', default=os.getcwd(), @@ -84,7 +84,7 @@ def argument_parser(): help='save plots in pdf format') parser.add_argument( '--printval', - default=False, + default=True, action='store_true', help='print out the muon ID efficiency in momentum bins ') return parser @@ -126,9 +126,6 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): if (histoName.find('electron') != -1): hist[lab].SetTitle(var + " histo. electron") - if var == "p": - eff[lab].GetXaxis().SetRangeUser(0, 50000) - hist[lab].GetXaxis().SetRangeUser(0, 50000) #print the muonID efficiency in each p bin if var == "p" and printval: for i in range(1, numerator.GetNbinsX()): @@ -143,10 +140,6 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): numerator.GetBinWidth(i), '.2f') + ") [GeV/c] : " + format(Eff, '.2%')) - if var == "pt": - eff[lab].GetXaxis().SetRangeUser(0, 5000) - hist[lab].GetXaxis().SetRangeUser(0, 5000) - return eff, hist @@ -220,21 +213,23 @@ def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) if i == 0: - set_style(hist_den[lab], kGray, markers[i], styles[i]) + set_style(hist_den[lab], kGray+1, markers[i], styles[i]) else: - set_style(hist_den[lab], colors[i] - 10, markers[i], + set_style(hist_den[lab], colors[i]-10, markers[i], styles[i]) hist_den[lab].Draw("hist SAME") canvas.PlaceLegend() + for lab in label: + eff[lab].Draw("P SAME") cutName = categories[tracker][cut]["title"] latex.DrawLatex(0.35, 0.3, cutName) latex.DrawLatex(0.7, 0.85, "LHCb simulation") canvas.SetRightMargin(0.05) canvas.Write() - canvasName = "MuonIDEff_" + cut + "_" + histo + ".pdf" if savepdf: + canvasName = "MuonIDEff_" + cut + "_" + histo + ".pdf" canvas.SaveAs(canvasName) canvas.SetRightMargin(0.05) canvas.Write() diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index d368533f249..a07106891a1 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -28,8 +28,7 @@ from collections import defaultdict def get_colors(): - return [kBlack, kBlue, kOrange, kMagenta + 2, kGreen + 3, kCyan + 2] - + return [kBlack, kBlue, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): return [20, 24, 21, 22, 23, 25] @@ -107,12 +106,12 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): hres_p[lab].GetYaxis().SetTitle("dp/p [%]") hres_p[lab].GetXaxis().SetTitle("p [GeV/c]") hres_p[lab].GetYaxis().SetRangeUser(0, 1.2) - hres_p[lab].SetTitle("Res. " + lab) + hres_p[lab].SetTitle(lab) set_style(hres_p[lab], colors[idx], markers[idx], 0) if idx == 0: hres_p[lab].Draw("E1 p1") - set_style(hmom[lab], kGray, markers[idx], styles[idx]) + set_style(hmom[lab], kGray+1, markers[idx], styles[idx]) else: hres_p[lab].Draw("E1 p1 same") set_style(hmom[lab], colors[idx] - 10, markers[idx], styles[idx]) @@ -121,21 +120,23 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): for i in range(1, hres_p[lab].GetNbinsX()): hres_p[lab].SetBinContent(i, hres_p[lab].GetBinContent(i) * 100) + hres_p[lab].SetBinError(i, hres_p[lab].GetBinError(i) * 100) print(lab + ": Track resolution (dp/p) in p region: (" + format(hres_p[lab].GetBinLowEdge(i), '.2f') + ", " + format( hres_p[lab].GetBinLowEdge(i) + hres_p[lab].GetBinWidth(i), '.2f') + ") [GeV/c]" + - " --- " + format(hres_p[lab].GetBinContent(i), '.2f') + "%") + " --- (" + format(hres_p[lab].GetBinContent(i), '.2f') + "+-"+ format(hres_p[lab].GetBinError(i),'.2f' )+ ")%") print("-----------------------------------------------------") canvas1.PlaceLegend() + for lab in label: + hres_p[lab].Draw("E1 p1 same") canvas1.SetRightMargin(0.05) canvas1.Write() if savepdf: canvas1.SaveAs("trackres_p.pdf") - print("=====================================================") canvas2 = TCanvas("res_eta", "res v.s. eta") canvas2.cd() @@ -152,12 +153,12 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): hres_eta[lab].GetYaxis().SetTitle("dp/p [%]") hres_eta[lab].GetXaxis().SetTitle("#eta") hres_eta[lab].GetYaxis().SetRangeUser(0, 1.2) - hres_eta[lab].SetTitle("Res. " + lab) + hres_eta[lab].SetTitle(lab) set_style(hres_eta[lab], colors[idx], markers[idx], 0) if idx == 0: hres_eta[lab].Draw("E1 p1") - set_style(heta[lab], kGray, markers[idx], styles[idx]) + set_style(heta[lab], kGray+1, markers[idx], styles[idx]) else: hres_eta[lab].Draw("E1 p1 same") set_style(heta[lab], colors[idx] - 10, markers[idx], styles[idx]) @@ -166,17 +167,20 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): heta[lab].Draw("hist same") for i in range(1, hres_eta[lab].GetNbinsX()): - hres_eta[lab].SetBinContent(i, - hres_eta[lab].GetBinContent(i) * 100) + hres_eta[lab].SetBinContent(i, hres_eta[lab].GetBinContent(i) * 100) + hres_eta[lab].SetBinError(i, hres_eta[lab].GetBinError(i) * 100) print(lab + ": Track resolution (dp/p) in eta region: (" + format(hres_eta[lab].GetBinLowEdge(i), '.2f') + ", " + format( hres_eta[lab].GetBinLowEdge(i) + - hres_eta[lab].GetBinWidth(i), '.2f') + ")" + " --- " + - format(hres_eta[lab].GetBinContent(i), '.2f') + "%") + hres_eta[lab].GetBinWidth(i), '.2f') + ")" + " --- (" + + format(hres_eta[lab].GetBinContent(i), '.2f') + "+-"+format(hres_eta[lab].GetBinError(i), '.2f') + ")%") + print("-----------------------------------------------------") canvas2.PlaceLegend() + for lab in label: + hres_eta[lab].Draw("E1 p1 same") canvas2.SetRightMargin(0.05) canvas2.Write() if savepdf: diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 9b80e253400..28ab9fb16b9 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -73,9 +73,7 @@ def getCuts(): "06_long_fromB", "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", - "12_UT_long_fromB_P>3GeV_Pt>0.5GeV", - #"11_long_fromD_P>3GeV_Pt>0.5GeV", "11_long_strange_P>3GeV_Pt>0.5GeV", - #"06_long_fromD" + "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Upstream"] = [ "01_velo", @@ -86,20 +84,14 @@ def getCuts(): "09_long_fromB", "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", - "15_UT_long_fromB_P>3GeV_Pt>0.5GeV", - #"09_long_fromD", "14_long_fromD_P>3GeV_Pt>0.5GeV", - #"14_long_strange_P>3GeV_Pt>0.5GeV" + "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", "04_long_strange_P>5GeV", "05_long_fromB", "06_long_fromB_P>5GeV", - "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV", - "05_long_fromD", "10_long_fromD_P>3GeV_Pt>0.5GeV", - "10_long_strange_P>3GeV_Pt>0.5GeV" + "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["MuonMatch"] = [ - #"02_long_muon_P>3GeV_Pt>0.5GeV", "04_long_pion_P>3GeV_Pt>0.5GeV", - #"03_long_muon_from_strange_P>3GeV_Pt>0.5GeV", "01_long", "02_long_muon", "03_long_muon_from_strange", @@ -118,7 +110,7 @@ def categoriesDict(): "title"] = "Long, #mu, forward track, 2 <#eta< 5" basedict["MuonMatch"]["02_long_muon_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, #mu, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_muoon_from_strange"][ + basedict["MuonMatch"]["03_long_muon_from_strange"][ "title"] = "Long, #mu from strange, forward track, 2 <#eta< 5" basedict["MuonMatch"]["03_long_muon_from_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, #mu from strange, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" @@ -135,12 +127,10 @@ def categoriesDict(): basedict["Velo"]["05_long_strange_P>5GeV"][ "title"] = "Long, from Strange, p>5GeV, 2 <#eta < 5" basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 2<#eta<5" - basedict["Velo"]["06_long_fromD"]["title"] = "Long from D, 2<#eta<5" basedict["Velo"]["07_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV, 2<#eta<5" basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2<#eta<5" - basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from D, p>3GeV, pt>0.5GeV, 2<#eta<5" basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2<#eta<5" @@ -152,11 +142,8 @@ def categoriesDict(): basedict["Velo"]["04_long_strange"]["plotElectrons"] = False basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True - basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True - #basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True - basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False - basedict["Velo"]["11_long_fromD_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False + basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -177,13 +164,10 @@ def categoriesDict(): basedict["Upstream"]["08_long_P>5GeV"][ "title"] = "Long, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 <#eta < 5" - basedict["Upstream"]["09_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Upstream"]["10_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, from B, p>3GeV, pt>0.5GeV" - basedict["Upstream"]["14_long_fromD_P>3GeV_Pt>0.5GeV"][ - "title"] = "Long, from D, p>3GeV, pt>0.5GeV" basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long, from strange, p>3GeV, pt>0.5GeV" basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -195,13 +179,8 @@ def categoriesDict(): basedict["Upstream"]["07_long"]["plotElectrons"] = True basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True - basedict["Upstream"]["09_long_fromD"]["plotElectrons"] = False basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True - #basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True - basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ - "plotElectrons"] = False - basedict["Upstream"]["14_long_fromD_P>3GeV_Pt>0.5GeV"][ - "plotElectrons"] = False + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -222,13 +201,10 @@ def categoriesDict(): basedict["Forward"]["04_long_strange_P>5GeV"][ "title"] = "Long, from strange, p>5GeV, 2 <#eta < 5" basedict["Forward"]["05_long_fromB"]["title"] = "Long from B, 2 <#eta < 5" - basedict["Forward"]["05_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Forward"]["06_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV 2 <#eta < 5" basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 <#eta < 5" - basedict["Forward"]["10_long_fromD_P>3GeV_Pt>0.5GeV"][ - "title"] = "Long from D, p>3GeV, pt>0.5GeV, 2 <#eta < 5" basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2 <#eta < 5" basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -239,13 +215,8 @@ def categoriesDict(): basedict["Forward"]["03_long_strange"]["plotElectrons"] = False basedict["Forward"]["04_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True - basedict["Forward"]["05_long_fromD"]["plotElectrons"] = False basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True - #basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True - basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ - "plotElectrons"] = False - basedict["Forward"]["10_long_fromD_P>3GeV_Pt>0.5GeV"][ - "plotElectrons"] = False + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ diff --git a/Hlt/RecoConf/scripts/utils/LHCbStyle.py b/Hlt/RecoConf/scripts/utils/LHCbStyle.py index 1429775f1be..467f0401be1 100644 --- a/Hlt/RecoConf/scripts/utils/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/utils/LHCbStyle.py @@ -24,6 +24,8 @@ def set_style(graph, color, marker, style): graph.SetFillColor(color) graph.SetFillStyle(style) graph.SetLineWidth(2) + if style==0: + graph.SetFillColor(0) graph.SetStats(False) graph.GetYaxis().SetTitleOffset(1.0) graph.GetYaxis().SetTitleSize(0.06) diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index ac205a555f5..9126948a61a 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -138,3 +138,14 @@ ROOT.TH1.Overlap = overlap_h ROOT.TGraph.Overlap = overlap_g ROOT.TPad.PadtoU = transform_to_user ROOT.TPad.PlaceLegend = place_legend + +def set_legend(legend, gr, title, colors, label): + legend.SetTextSize(0.05) + legend.SetFillColor(0) + legend.SetShadowColor(0) + legend.SetBorderSize(0) + legend.SetTextFont(132) + for idx, lab in enumerate(label): + legend.AddEntry(gr[lab], title[lab], "lep").SetTextColor(colors[idx]) + + return legend diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt index 5d93556337a..b74bfb4e09b 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @@ -10,7 +10,7 @@ or submit itself to any jurisdiction. --> python -- GitLab From 09c0847d13d2f98062836015f57f6e432aa65488 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 6 Mar 2020 11:02:40 +0000 Subject: [PATCH 113/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7480556 --- .../scripts/PrCheckerEfficiency_HLT1.py | 4 ++-- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 2 +- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 6 +++--- .../scripts/PrCheckerTrackResolution.py | 17 ++++++++++------- Hlt/RecoConf/scripts/utils/LHCbStyle.py | 2 +- Hlt/RecoConf/scripts/utils/Legend.py | 1 + 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 4997a74d4d8..98153faeb90 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -52,7 +52,7 @@ def getOriginFolders(): def get_colors(): - return [kBlack, kAzure, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] + return [kBlack, kAzure, kGreen + 3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): @@ -214,7 +214,7 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) if i == 0: - set_style(hist_den[lab], kGray+1, markers[i], + set_style(hist_den[lab], kGray + 1, markers[i], styles[i]) else: set_style(hist_den[lab], colors[i] - 10, diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index f46f699e348..d4a74b52995 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -28,7 +28,7 @@ from ROOT import ROOT, vector, TGraphAsymmErrors def get_colors(): - return [kBlack, kBlue, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] + return [kBlack, kBlue, kGreen + 3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index be63684d4cd..44aeabafd77 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -47,7 +47,7 @@ def getOriginFolders(): def get_colors(): - return [kBlack, kBlue, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] + return [kBlack, kBlue, kGreen + 3, kMagenta + 2, kOrange, kCyan + 2] def get_markers(): @@ -213,9 +213,9 @@ def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) if i == 0: - set_style(hist_den[lab], kGray+1, markers[i], styles[i]) + set_style(hist_den[lab], kGray + 1, markers[i], styles[i]) else: - set_style(hist_den[lab], colors[i]-10, markers[i], + set_style(hist_den[lab], colors[i] - 10, markers[i], styles[i]) hist_den[lab].Draw("hist SAME") diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index a07106891a1..821ad3c7a61 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -28,7 +28,8 @@ from collections import defaultdict def get_colors(): - return [kBlack, kBlue, kGreen+3, kMagenta + 2, kOrange, kCyan + 2] + return [kBlack, kBlue, kGreen + 3, kMagenta + 2, kOrange, kCyan + 2] + def get_markers(): return [20, 24, 21, 22, 23, 25] @@ -111,7 +112,7 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): if idx == 0: hres_p[lab].Draw("E1 p1") - set_style(hmom[lab], kGray+1, markers[idx], styles[idx]) + set_style(hmom[lab], kGray + 1, markers[idx], styles[idx]) else: hres_p[lab].Draw("E1 p1 same") set_style(hmom[lab], colors[idx] - 10, markers[idx], styles[idx]) @@ -126,7 +127,8 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): format(hres_p[lab].GetBinLowEdge(i), '.2f') + ", " + format( hres_p[lab].GetBinLowEdge(i) + hres_p[lab].GetBinWidth(i), '.2f') + ") [GeV/c]" + - " --- (" + format(hres_p[lab].GetBinContent(i), '.2f') + "+-"+ format(hres_p[lab].GetBinError(i),'.2f' )+ ")%") + " --- (" + format(hres_p[lab].GetBinContent(i), '.2f') + + "+-" + format(hres_p[lab].GetBinError(i), '.2f') + ")%") print("-----------------------------------------------------") canvas1.PlaceLegend() @@ -137,7 +139,6 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): if savepdf: canvas1.SaveAs("trackres_p.pdf") - canvas2 = TCanvas("res_eta", "res v.s. eta") canvas2.cd() @@ -158,7 +159,7 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): if idx == 0: hres_eta[lab].Draw("E1 p1") - set_style(heta[lab], kGray+1, markers[idx], styles[idx]) + set_style(heta[lab], kGray + 1, markers[idx], styles[idx]) else: hres_eta[lab].Draw("E1 p1 same") set_style(heta[lab], colors[idx] - 10, markers[idx], styles[idx]) @@ -167,7 +168,8 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): heta[lab].Draw("hist same") for i in range(1, hres_eta[lab].GetNbinsX()): - hres_eta[lab].SetBinContent(i, hres_eta[lab].GetBinContent(i) * 100) + hres_eta[lab].SetBinContent(i, + hres_eta[lab].GetBinContent(i) * 100) hres_eta[lab].SetBinError(i, hres_eta[lab].GetBinError(i) * 100) print(lab + ": Track resolution (dp/p) in eta region: (" + @@ -175,7 +177,8 @@ def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): format( hres_eta[lab].GetBinLowEdge(i) + hres_eta[lab].GetBinWidth(i), '.2f') + ")" + " --- (" + - format(hres_eta[lab].GetBinContent(i), '.2f') + "+-"+format(hres_eta[lab].GetBinError(i), '.2f') + ")%") + format(hres_eta[lab].GetBinContent(i), '.2f') + "+-" + + format(hres_eta[lab].GetBinError(i), '.2f') + ")%") print("-----------------------------------------------------") canvas2.PlaceLegend() diff --git a/Hlt/RecoConf/scripts/utils/LHCbStyle.py b/Hlt/RecoConf/scripts/utils/LHCbStyle.py index 467f0401be1..f5dd4fceeee 100644 --- a/Hlt/RecoConf/scripts/utils/LHCbStyle.py +++ b/Hlt/RecoConf/scripts/utils/LHCbStyle.py @@ -24,7 +24,7 @@ def set_style(graph, color, marker, style): graph.SetFillColor(color) graph.SetFillStyle(style) graph.SetLineWidth(2) - if style==0: + if style == 0: graph.SetFillColor(0) graph.SetStats(False) graph.GetYaxis().SetTitleOffset(1.0) diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index 9126948a61a..cba662ae1bf 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -139,6 +139,7 @@ ROOT.TGraph.Overlap = overlap_g ROOT.TPad.PadtoU = transform_to_user ROOT.TPad.PlaceLegend = place_legend + def set_legend(legend, gr, title, colors, label): legend.SetTextSize(0.05) legend.SetFillColor(0) -- GitLab From a656c52d31ca711b849dc05e7a267ca766ad2230 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Fri, 6 Mar 2020 15:41:06 +0100 Subject: [PATCH 114/199] add one more checker for fitted tracks --- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index a18e2d82c1d..ecabf4285b5 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -10,7 +10,7 @@ ############################################################################### from Moore import options, run_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks +from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks from RecoConf.mc_checking import monitor_track_resolution from PyConf.application import make_data_with_FetchDataFromFile @@ -18,16 +18,13 @@ from PyConf.application import make_data_with_FetchDataFromFile def hlt1_reco_trackresolution(): track_type = "Forward" tracks = make_hlt1_tracks()[track_type] + fitted_tracks = make_VeloKalman_fitted_tracks(make_hlt1_tracks()) pr_checker = monitor_track_resolution(tracks) + pr_checker_fitted = monitor_track_resolution(fitted_tracks) - #return CompositeNode( - # name='hlt1_trackRes', - # children=pr_checker, - # combineLogic=NodeLogic.NONLAZY_OR, - # forceOrder=False) return Reconstruction( 'track_resolution', - [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker], + [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker, pr_checker_fitted], [require_gec()]) -- GitLab From 5385c6dceacaf4d9e16bc4ffbfafc3e2d57616df Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 6 Mar 2020 14:41:32 +0000 Subject: [PATCH 115/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7484887 --- Hlt/RecoConf/options/hlt1_reco_trackresolution.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py index ecabf4285b5..ffae042d4ab 100644 --- a/Hlt/RecoConf/options/hlt1_reco_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_trackresolution.py @@ -22,10 +22,10 @@ def hlt1_reco_trackresolution(): pr_checker = monitor_track_resolution(tracks) pr_checker_fitted = monitor_track_resolution(fitted_tracks) - return Reconstruction( - 'track_resolution', - [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker, pr_checker_fitted], - [require_gec()]) + return Reconstruction('track_resolution', [ + make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker, + pr_checker_fitted + ], [require_gec()]) options.histo_file = "Hlt1ForwardTrackingResolution.root" -- GitLab From 63cba550c846fd3dff1e42ad8293071f4f10dfe1 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Mon, 9 Mar 2020 10:15:03 +0100 Subject: [PATCH 116/199] fix errors --- .../qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt | 1 - .../tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt | 1 - .../qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt | 1 - 3 files changed, 3 deletions(-) diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt index b74bfb4e09b..33c09038fc3 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @@ -19,7 +19,6 @@ Plotting script to determine IP resolution in each p or eta bin on MC simulation --filename=Hlt1ForwardTracking_IPresolution.root --outfile=IPResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ - --output=hlt1_reco_IPresolution_plot.opts.py true diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt index 1b10fc5c4a2..3dfcb8d3558 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff_plots.qmt @@ -20,7 +20,6 @@ long reconstructed forward tracks with MC samples. --filename=PrChecker_MuonID_MiniBias.root --outfile=muonIDeff_plots.root --plotstyle=$RECOCONFROOT/scripts/ - --output=hlt1_reco_muonideff_plot.opts.py true diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt index ced5bba9249..6e5c27752fa 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_trackresolution_plots.qmt @@ -19,7 +19,6 @@ Test plot script to draw the track resolution in Hlt1 and test for changes. --filename=Hlt1ForwardTrackingResolution.root --outfile=TrackResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ - --output=hlt1_reco_trackresolution.opts.py true -- GitLab From f1dde206bf11b24daabb73486bbbb57cff790fe9 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Mon, 9 Mar 2020 16:23:24 +0100 Subject: [PATCH 117/199] add ntuple_file to enable NTupleSvc --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 7 +------ .../hlt1_reco_IPresolution_plots.qmt | 2 +- PyConf/python/PyConf/application.py | 13 ++++++++++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 2cc6d335657..ecd89155137 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -26,10 +26,5 @@ def hlt1_reco_IPresolution(): return Reconstruction('IPresolution', [pr_checker], [require_gec()]) +options.ntuple_file = "Hlt1_IPresolution.root" run_reconstruction(options, hlt1_reco_IPresolution) - -NTupleSvc().Output += [ - "FILE1 DATAFILE='Hlt1ForwardTracking_IPresolution.root' TYPE='ROOT' OPT='NEW'" -] -ApplicationMgr().ExtSvc += [NTupleSvc()] -ApplicationMgr().HistogramPersistency = "ROOT" diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt index 33c09038fc3..4fb968ddb36 100644 --- a/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt +++ b/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @@ -16,7 +16,7 @@ Plotting script to determine IP resolution in each p or eta bin on MC simulation python $RECOCONFROOT/scripts/PrCheckerIPresolution.py - --filename=Hlt1ForwardTracking_IPresolution.root + --filename=Hlt1_IPresolution.root --outfile=IPResolution_plots.root --plotstyle=$RECOCONFROOT/scripts/ diff --git a/PyConf/python/PyConf/application.py b/PyConf/python/PyConf/application.py index 69470536ffa..38993dc143c 100644 --- a/PyConf/python/PyConf/application.py +++ b/PyConf/python/PyConf/application.py @@ -43,6 +43,7 @@ from Configurables import ( LHCb__Tests__FakeEventTimeProducer as DummyEventTime, Gaudi__Hive__FetchDataFromFile, ApplicationMgr, + NTupleSvc, DataOnDemandSvc, ) @@ -137,6 +138,7 @@ class ApplicationOptions(ConfigurableUser): 'output_file': '', 'output_type': '', 'histo_file': '', + 'ntuple_file': '', 'output_level': INFO, 'python_logging_level': logging.WARNING, # multithreaded processing @@ -505,8 +507,10 @@ def configure(options, control_flow_node, public_tools=[]): appMgr = config.add( ApplicationMgr(OutputLevel=options.output_level, EventLoop=scheduler)) appMgr.ExtSvc.insert( - 0, whiteboard + 0, whiteboard ) # FIXME this cannot work when configurables are not singletons + appMgr.ExtSvc.insert(0, NTupleSvc()) + config.add(setup_component('UpdateManagerSvc', WithoutBeginEvent=True)) config.add( setup_component('HiveDataBrokerSvc', DataProducers=configurable_algs)) @@ -516,6 +520,7 @@ def configure(options, control_flow_node, public_tools=[]): # Give more space for component names in stdout config.add(setup_component('MessageSvc', Format='% F%35W%S %7W%R%T %0W%M')) config.add(setup_component('HistogramPersistencySvc', OutputLevel=5)) + config.add(setup_component('NTupleSvc', OutputLevel=0)) config.add( setup_component('EventClockSvc', InitialTime=int(INITIAL_TIME * 1e9))) @@ -525,6 +530,12 @@ def configure(options, control_flow_node, public_tools=[]): 'HistogramPersistencySvc', OutputFile=options.histo_file)) config.add(ApplicationMgr(HistogramPersistency="ROOT")) + if options.ntuple_file: + config.add( + setup_component( + 'NTupleSvc', Output=["FILE1 DATAFILE='{}' TYPE='ROOT' OPT='NEW'".format(options.ntuple_file)])) + config.add(ApplicationMgr(HistogramPersistency="ROOT")) + if options.control_flow_file: fn_root, fn_ext = os.path.splitext(options.control_flow_file) plot_control_flow( -- GitLab From 150ef2f901b9f678ee8e53c45be7cef98584faa5 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Mon, 9 Mar 2020 15:24:29 +0000 Subject: [PATCH 118/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7513723 --- PyConf/python/PyConf/application.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/PyConf/python/PyConf/application.py b/PyConf/python/PyConf/application.py index 38993dc143c..c91cb5a2add 100644 --- a/PyConf/python/PyConf/application.py +++ b/PyConf/python/PyConf/application.py @@ -507,7 +507,7 @@ def configure(options, control_flow_node, public_tools=[]): appMgr = config.add( ApplicationMgr(OutputLevel=options.output_level, EventLoop=scheduler)) appMgr.ExtSvc.insert( - 0, whiteboard + 0, whiteboard ) # FIXME this cannot work when configurables are not singletons appMgr.ExtSvc.insert(0, NTupleSvc()) @@ -533,7 +533,11 @@ def configure(options, control_flow_node, public_tools=[]): if options.ntuple_file: config.add( setup_component( - 'NTupleSvc', Output=["FILE1 DATAFILE='{}' TYPE='ROOT' OPT='NEW'".format(options.ntuple_file)])) + 'NTupleSvc', + Output=[ + "FILE1 DATAFILE='{}' TYPE='ROOT' OPT='NEW'".format( + options.ntuple_file) + ])) config.add(ApplicationMgr(HistogramPersistency="ROOT")) if options.control_flow_file: -- GitLab From 725f40f9099fe40a82565354048dc2b9006d15a3 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Mon, 9 Mar 2020 17:11:43 +0100 Subject: [PATCH 119/199] fix the warnning --- PyConf/python/PyConf/application.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PyConf/python/PyConf/application.py b/PyConf/python/PyConf/application.py index c91cb5a2add..34e73517cdc 100644 --- a/PyConf/python/PyConf/application.py +++ b/PyConf/python/PyConf/application.py @@ -538,6 +538,9 @@ def configure(options, control_flow_node, public_tools=[]): "FILE1 DATAFILE='{}' TYPE='ROOT' OPT='NEW'".format( options.ntuple_file) ])) + config.add( + setup_component( + 'HistogramPersistencySvc', OutputFile=options.ntuple_file)) config.add(ApplicationMgr(HistogramPersistency="ROOT")) if options.control_flow_file: -- GitLab From d1ff3ae308d6a047e8dfd4a079967742281535e3 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 10 Mar 2020 11:10:37 +0100 Subject: [PATCH 120/199] adapt the scripts to run also for python 2 --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 10 +++++----- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 7 ++++--- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 10 +++++----- Hlt/RecoConf/scripts/PrCheckerTrackResolution.py | 6 +++--- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 1 - Hlt/RecoConf/scripts/utils/Legend.py | 5 ++--- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 98153faeb90..3153fab9215 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -145,11 +145,11 @@ def get_eff(eff, hist, tf, histoName, label, var): def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, savepdf): - sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle, set_style - from utils.ConfigHistos import (efficiencyHistoDict, ghostHistoDict, - categoriesDict, getCuts) - from utils.Legend import place_legend + sys.path.append(os.path.abspath(plotstyle+"/utils/")) + from LHCbStyle import setLHCbStyle, set_style + from ConfigHistos import (efficiencyHistoDict, ghostHistoDict, + categoriesDict, getCuts) + from Legend import place_legend setLHCbStyle() markers = get_markers() diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index d4a74b52995..7026cb730ba 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -128,10 +128,10 @@ def get_resolution(resx, resy, tr, label): def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): - sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle, set_style + sys.path.append(os.path.abspath(plotstyle+"/utils/")) + from LHCbStyle import setLHCbStyle, set_style setLHCbStyle() - from utils.Legend import place_legend + from Legend import place_legend latex = TLatex() latex.SetNDC() latex.SetTextSize(0.05) @@ -225,6 +225,7 @@ def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): recIPChi2[lab] = TH1F("recIPChi2_" + lab, lab, 100, 0, 200) tr[lab].Draw(var + ">>recIPChi2_" + lab, cutAcc) recIPChi2[lab].SetLineColor(colors[i]) + recIPChi2[lab].SetMarkerColor(colors[i]) canvas.cd() latex.DrawLatex(0.7, 0.85, "LHCb simultaion") recIPChi2[label[0]].Draw() diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 44aeabafd77..86d2fcd5932 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -144,11 +144,11 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): - sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle, set_style - from utils.ConfigHistos import (efficiencyHistoDict, categoriesDict, - getCuts) - from utils.Legend import place_legend + sys.path.append(os.path.abspath(plotstyle+"/utils/")) + from LHCbStyle import setLHCbStyle, set_style + from ConfigHistos import (efficiencyHistoDict, categoriesDict, + getCuts) + from Legend import place_legend setLHCbStyle() markers = get_markers() diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 821ad3c7a61..5c9867f43b7 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -74,9 +74,9 @@ def argument_parser(): def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): - sys.path.append(os.path.abspath(plotstyle)) - from utils.LHCbStyle import setLHCbStyle, set_style - from utils.Legend import place_legend + sys.path.append(os.path.abspath(plotstyle+"/utils/")) + from LHCbStyle import setLHCbStyle, set_style + from Legend import place_legend setLHCbStyle() markers = get_markers() diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 28ab9fb16b9..edcd947e4b4 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -131,7 +131,6 @@ def categoriesDict(): "title"] = "Long from B, p>5GeV, 2<#eta<5" basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2<#eta<5" - "title"] = "Long from D, p>3GeV, pt>0.5GeV, 2<#eta<5" basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2<#eta<5" basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index cba662ae1bf..e5daba27c99 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -107,7 +107,7 @@ def place_legend(canvas, gStyle.SetTextSize(0.06) # If position is specified, use that if all(x is not None for x in (x1, x2, y1, y2)): - return canvas.BuildLegend(x1, y1, x2, y2, header, option) + return canvas.BuildLegend(x1, y1, x2, y2, header ) # Make sure all objects are correctly registered canvas.Update() @@ -125,8 +125,7 @@ def place_legend(canvas, # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], - header, option) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], header) # As a fallback, use the default values, taken from TCanvas::BuildLegend return canvas.BuildLegend(0.4, 0.37, 0.88, 0.68, header, option) -- GitLab From b22c48f764d32a3e82cebc4bb1124098d56e4574 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 10 Mar 2020 10:11:02 +0000 Subject: [PATCH 121/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7525194 --- .../scripts/PrCheckerEfficiency_HLT1.py | 4 +-- Hlt/RecoConf/scripts/PrCheckerIPresolution.py | 2 +- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 5 ++- .../scripts/PrCheckerTrackResolution.py | 2 +- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 35 ++++++------------- Hlt/RecoConf/scripts/utils/Legend.py | 5 +-- 6 files changed, 20 insertions(+), 33 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 3153fab9215..cc411059e95 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -145,10 +145,10 @@ def get_eff(eff, hist, tf, histoName, label, var): def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, savepdf): - sys.path.append(os.path.abspath(plotstyle+"/utils/")) + sys.path.append(os.path.abspath(plotstyle + "/utils/")) from LHCbStyle import setLHCbStyle, set_style from ConfigHistos import (efficiencyHistoDict, ghostHistoDict, - categoriesDict, getCuts) + categoriesDict, getCuts) from Legend import place_legend setLHCbStyle() diff --git a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py index 7026cb730ba..b5a5f20ed60 100644 --- a/Hlt/RecoConf/scripts/PrCheckerIPresolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerIPresolution.py @@ -128,7 +128,7 @@ def get_resolution(resx, resy, tr, label): def PrCheckerIPresolution(filename, label, outfile, savepdf, plotstyle): - sys.path.append(os.path.abspath(plotstyle+"/utils/")) + sys.path.append(os.path.abspath(plotstyle + "/utils/")) from LHCbStyle import setLHCbStyle, set_style setLHCbStyle() from Legend import place_legend diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 86d2fcd5932..1d92522d758 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -144,10 +144,9 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): def PrCheckerMuonIDEff(filename, outfile, label, plotstyle, savepdf, printval): - sys.path.append(os.path.abspath(plotstyle+"/utils/")) + sys.path.append(os.path.abspath(plotstyle + "/utils/")) from LHCbStyle import setLHCbStyle, set_style - from ConfigHistos import (efficiencyHistoDict, categoriesDict, - getCuts) + from ConfigHistos import (efficiencyHistoDict, categoriesDict, getCuts) from Legend import place_legend setLHCbStyle() diff --git a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py index 5c9867f43b7..f43ad7c863b 100644 --- a/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py +++ b/Hlt/RecoConf/scripts/PrCheckerTrackResolution.py @@ -74,7 +74,7 @@ def argument_parser(): def PrCheckerTrackResolution(filename, label, outfile, savepdf, plotstyle): - sys.path.append(os.path.abspath(plotstyle+"/utils/")) + sys.path.append(os.path.abspath(plotstyle + "/utils/")) from LHCbStyle import setLHCbStyle, set_style from Legend import place_legend setLHCbStyle() diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index edcd947e4b4..0b00fcc07a6 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -65,26 +65,14 @@ def getCuts(): basedict = {"Velo": {}, "Upstream": {}, "Forward": {}, "MuonMatch": {}} basedict["Velo"] = [ - "01_velo", - "02_long", - "03_long_P>5GeV", - "04_long_strange", - "05_long_strange_P>5GeV", - "06_long_fromB", - "07_long_fromB_P>5GeV", - "11_long_fromB_P>3GeV_Pt>0.5GeV", - "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", + "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", + "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Upstream"] = [ - "01_velo", - "02_velo+UT", - "03_velo+UT_P>5GeV", - "07_long", - "08_long_P>5GeV", - "09_long_fromB", - "10_long_fromB_P>5GeV", - "14_long_fromB_P>3GeV_Pt>0.5GeV", - "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", + "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", + "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", @@ -92,10 +80,7 @@ def getCuts(): "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["MuonMatch"] = [ - "01_long", - "02_long_muon", - "03_long_muon_from_strange", - "04_long_pion" + "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" ] return basedict @@ -179,7 +164,8 @@ def categoriesDict(): basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = True basedict["Upstream"]["14_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Upstream"]["15_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -215,7 +201,8 @@ def categoriesDict(): basedict["Forward"]["04_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Forward"]["05_long_fromB"]["plotElectrons"] = True basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True - basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True + basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ + "plotElectrons"] = True basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ diff --git a/Hlt/RecoConf/scripts/utils/Legend.py b/Hlt/RecoConf/scripts/utils/Legend.py index e5daba27c99..5d31c8dde3d 100644 --- a/Hlt/RecoConf/scripts/utils/Legend.py +++ b/Hlt/RecoConf/scripts/utils/Legend.py @@ -107,7 +107,7 @@ def place_legend(canvas, gStyle.SetTextSize(0.06) # If position is specified, use that if all(x is not None for x in (x1, x2, y1, y2)): - return canvas.BuildLegend(x1, y1, x2, y2, header ) + return canvas.BuildLegend(x1, y1, x2, y2, header) # Make sure all objects are correctly registered canvas.Update() @@ -125,7 +125,8 @@ def place_legend(canvas, # Make sure there are no overlaps if any(obj.Overlap(*place_user) for obj in objects): continue - return canvas.BuildLegend(place[0], place[1], place[2], place[3], header) + return canvas.BuildLegend(place[0], place[1], place[2], place[3], + header) # As a fallback, use the default values, taken from TCanvas::BuildLegend return canvas.BuildLegend(0.4, 0.37, 0.88, 0.68, header, option) -- GitLab From bcb4de5e49aa7f802cf478bc7aa8c91a11f84aac Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 10 Mar 2020 12:14:03 +0100 Subject: [PATCH 122/199] remove duplicated line --- PyConf/python/PyConf/application.py | 1 - 1 file changed, 1 deletion(-) diff --git a/PyConf/python/PyConf/application.py b/PyConf/python/PyConf/application.py index 34e73517cdc..6d974c7a853 100644 --- a/PyConf/python/PyConf/application.py +++ b/PyConf/python/PyConf/application.py @@ -520,7 +520,6 @@ def configure(options, control_flow_node, public_tools=[]): # Give more space for component names in stdout config.add(setup_component('MessageSvc', Format='% F%35W%S %7W%R%T %0W%M')) config.add(setup_component('HistogramPersistencySvc', OutputLevel=5)) - config.add(setup_component('NTupleSvc', OutputLevel=0)) config.add( setup_component('EventClockSvc', InitialTime=int(INITIAL_TIME * 1e9))) -- GitLab From 277e430e0b42eaa9d420adb735411359e749beb5 Mon Sep 17 00:00:00 2001 From: Peilian LI Date: Tue, 10 Mar 2020 12:30:04 +0100 Subject: [PATCH 123/199] remove useless import --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index ecd89155137..23d97c2124b 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -12,9 +12,6 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks, make_pvs from RecoConf.mc_checking import monitor_IPresolution -from Configurables import ApplicationMgr -from Configurables import NTupleSvc - def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() -- GitLab From 8a03fbb5c45fa53c5d4a9944d23181784ab4ae93 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 10 Mar 2020 11:30:50 +0000 Subject: [PATCH 124/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7526872 --- Hlt/RecoConf/options/hlt1_reco_IPresolution.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py index 23d97c2124b..b47cf35c7e1 100644 --- a/Hlt/RecoConf/options/hlt1_reco_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_IPresolution.py @@ -13,6 +13,7 @@ from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_hlt1_tracks, make_VeloKalman_fitted_tracks, make_pvs from RecoConf.mc_checking import monitor_IPresolution + def hlt1_reco_IPresolution(): hlt1_tracks = make_hlt1_tracks() fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) -- GitLab From 3f8159b924a5529cdc79e45d59aba34f08a03abf Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 12 Mar 2020 15:25:16 +0100 Subject: [PATCH 125/199] cleanup --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 2 +- Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 643c5f2a33a..b42bae71350 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") -options.evt_max = 10000 +options.evt_max = 1000 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py index 7cf6d85fd1a..3623fbe7361 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py @@ -25,11 +25,6 @@ def hlt1_reco_allen_trackresolution(): tracks = make_allen_tracks()[track_type] pr_checker = monitor_track_resolution(tracks) - #return CompositeNode( - # name='hlt1_trackRes', - # children=pr_checker, - # combineLogic=NodeLogic.NONLAZY_OR, - # forceOrder=False) return Reconstruction('track_resolution', [pr_checker], [require_gec()]) -- GitLab From 3aae0cde193ab9c7d51e89bcde3498c2908c3eb9 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 13 Mar 2020 13:16:28 +0100 Subject: [PATCH 126/199] fix track resolution options script for Allen --- .../hlt1_reco_allen_trackresolution.py | 5 ++- ...reco_baseline_and_Allen_with_mcchecking.py | 32 ------------------- 2 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py index 3623fbe7361..65f8af35809 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py @@ -18,15 +18,14 @@ from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import AllenUpdater - +from PyConf.application import make_data_with_FetchDataFromFile def hlt1_reco_allen_trackresolution(): track_type = "Forward" tracks = make_allen_tracks()[track_type] pr_checker = monitor_track_resolution(tracks) - return Reconstruction('track_resolution', [pr_checker], [require_gec()]) - + return Reconstruction('track_resolution', [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker], [require_gec()]) options.histo_file = "Hlt1ForwardTrackingResolutionAllen.root" run_reconstruction(options, hlt1_reco_allen_trackresolution) diff --git a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py b/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py deleted file mode 100644 index 3d3321275af..00000000000 --- a/Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options, run_reconstruction -from RecoConf.standalone import standalone_hlt1_reco_and_allen -from Configurables import ApplicationMgr -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks - -with standalone_hlt1_reco_and_allen.bind(do_mc_checking=True): - run_reconstruction(options, standalone_hlt1_reco_and_allen) - -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers -- GitLab From 97659f4525c0a39f6124e8eee2636a8d9cdc620a Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 13 Mar 2020 13:17:08 +0100 Subject: [PATCH 127/199] only call Allen algorithms for track reconstruction check for Allen --- Hlt/RecoConf/options/hlt1_reco_allen.py | 41 ++++++++++++++++++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 15 ++------ 2 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen.py b/Hlt/RecoConf/options/hlt1_reco_allen.py new file mode 100644 index 00000000000..cb016107cd3 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen.py @@ -0,0 +1,41 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from RecoConf.standalone import standalone_hlt1_allen +from Configurables import ApplicationMgr, HltANNSvc +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks + +with standalone_hlt1_allen.bind(): + run_reconstruction(options, standalone_hlt1_allen) + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers + +Hlt1SelectionIDs = {'Hlt1DisplacedDiMuonLine': 4, + 'Hlt1HighMassDiMuonLine': 5, + 'Hlt1OneTrackMVALine': 1, + 'Hlt1PassThroughLine': 0, + 'Hlt1SingleMuonLine': 3, + 'Hlt1TwoTrackMVALine': 2} + +HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 5fd1c3ccf8f..05790664b8b 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -70,23 +70,14 @@ def standalone_hlt1_reco(do_mc_checking=False): @configurable -def standalone_hlt1_reco_and_allen(do_mc_checking=False): - """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional both with the baseline and the Allen sequence +def standalone_hlt1_reco_allen(do_mc_checking=False): + """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional with the Allen sequence Args: do_mc_checking (bool): Enable MC checking. Returns: Reconstruction: Data and control flow of Hlt1 reconstruction. """ - # baseline hlt1 - hlt1_tracks = make_hlt1_tracks() - pvs = make_pvs() - fitted_tracks = make_VeloKalman_fitted_tracks(hlt1_tracks) - muon_ids = make_muon_id(hlt1_tracks["Forward"]) - tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) - - data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] - # Allen hlt1 allen_tracks = make_allen_tracks() allen_pvs = make_allen_pvs() @@ -97,7 +88,7 @@ def standalone_hlt1_reco_and_allen(do_mc_checking=False): "Upstream": allen_tracks["Upstream"], "Forward": allen_tracks["Forward"], } - data += get_track_checkers(types_and_locations_for_checkers) + data = get_track_checkers(types_and_locations_for_checkers) return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From 31be15554737d2c4848c58aa10cca7f243824cbd Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 13 Mar 2020 13:18:07 +0100 Subject: [PATCH 128/199] small fixes in plotting scripts, add fromD category to track reconstruction plots --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 6 ++++-- Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py | 3 ++- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 13 ++++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index cc411059e95..71f9c62aea5 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -126,7 +126,7 @@ def get_eff(eff, hist, tf, histoName, label, var): eff[lab] = TGraphAsymmErrors() eff[lab].SetName(lab) eff[lab].Divide(numerator, denominator, "cl=0.683 b(1,1) mode") - eff[lab].SetTitle(lab + "not elec.") + eff[lab].SetTitle(lab + ", not elec.") if (histoName.find('strange') != -1): eff[lab].SetTitle(lab + " from stranges") if (histoName.find('electron') != -1): @@ -210,7 +210,7 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, mg.GetYaxis().SetTitle("Efficiency") if dist: for i, lab in enumerate(label): - rightmax = 1.05 * hist_den[lab].GetMaximum() + rightmax = 1.1 * hist_den[lab].GetMaximum() scale = gPad.GetUymax() / rightmax hist_den[lab].Scale(scale) if i == 0: @@ -272,6 +272,8 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, scale = gPad.GetUymax() / rightmax hist_elec[lab].Scale(scale) hist_elec[lab].Draw("hist SAME") + set_style(hist_elec[label[0]], kGray + 1, markers[i], + styles[i]) else: rightmax = 1.05 * hist_elec[label[0]].GetMaximum() scale = gPad.GetUymax() / rightmax diff --git a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py index 1d92522d758..bffa36ab54b 100644 --- a/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py +++ b/Hlt/RecoConf/scripts/PrCheckerMuonIDEff.py @@ -100,6 +100,7 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): eff = {} hist = {} for i, lab in enumerate(label): + print(histoName) numeratorName = histoName + "_reconstructed" numerator = tf[lab].Get(numeratorName) denominatorName = histoName_Den + "_reconstructed" @@ -112,7 +113,7 @@ def get_eff(eff, hist, tf, histoName, histoName_Den, label, var, printval): eff[lab] = TGraphAsymmErrors() eff[lab].SetName(lab) eff[lab].Divide(numerator, denominator, "cl=0.683 b(1,1) mode") - eff[lab].SetTitle(lab + "not elec.") + eff[lab].SetTitle(lab + ", not elec.") if (histoName.find('strange') != -1): eff[lab].SetTitle(lab + " from stranges") if (histoName.find('electron') != -1): diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 0b00fcc07a6..5e6f99d59c7 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -66,17 +66,17 @@ def getCuts(): basedict["Velo"] = [ "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", - "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", + "05_long_strange_P>5GeV", "06_long_fromB", "06_long_fromD", "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Upstream"] = [ "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", - "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", + "08_long_P>5GeV", "09_long_fromB", "09_long_fromD", "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", - "04_long_strange_P>5GeV", "05_long_fromB", "06_long_fromB_P>5GeV", + "04_long_strange_P>5GeV", "05_long_fromB", "05_long_fromD", "06_long_fromB_P>5GeV", "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["MuonMatch"] = [ @@ -112,6 +112,7 @@ def categoriesDict(): basedict["Velo"]["05_long_strange_P>5GeV"][ "title"] = "Long, from Strange, p>5GeV, 2 <#eta < 5" basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 2<#eta<5" + basedict["Velo"]["06_long_fromD"]["title"] = "Long from D, 2<#eta<5" basedict["Velo"]["07_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV, 2<#eta<5" basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -120,12 +121,14 @@ def categoriesDict(): "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2<#eta<5" basedict["Velo"]["12_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "UT Long, from B, p>3GeV, pt>0.5GeV, 2<#eta<5" + basedict["Velo"]["01_velo"]["plotElectrons"] = False basedict["Velo"]["02_long"]["plotElectrons"] = True basedict["Velo"]["03_long_P>5GeV"]["plotElectrons"] = False basedict["Velo"]["04_long_strange"]["plotElectrons"] = False basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True + basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = True basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ @@ -148,6 +151,7 @@ def categoriesDict(): basedict["Upstream"]["08_long_P>5GeV"][ "title"] = "Long, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 <#eta < 5" + basedict["Upstream"]["09_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Upstream"]["10_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -163,6 +167,7 @@ def categoriesDict(): basedict["Upstream"]["07_long"]["plotElectrons"] = True basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True + basedict["Upstream"]["09_long_fromD"]["plotElectrons"] = False basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = True @@ -190,6 +195,7 @@ def categoriesDict(): "title"] = "Long from B, p>5GeV 2 <#eta < 5" basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 <#eta < 5" + basedict["Forward"]["05_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2 <#eta < 5" basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -203,6 +209,7 @@ def categoriesDict(): basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = True + basedict["Forward"]["05_long_fromD"]["plotElectrons"] = False basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ -- GitLab From 4b1551c1aab469f1a8e1fb27c5cf48ede3aa89ed Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 16 Mar 2020 14:51:52 +0100 Subject: [PATCH 129/199] typo fix, add efficiency versus z figure --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 4 ++-- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 71f9c62aea5..1d12505bf09 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -34,7 +34,7 @@ import subprocess def getEfficiencyHistoNames(): - return ["eta", "p", "pt", "phi", "nPV"] + return ["eta", "p", "pt", "phi", "nPV", "z", "docaz"] def getTrackers(): @@ -232,7 +232,7 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, for lab in label: eff[lab].Draw("P SAME") cutName = categories[tracker][cut]["title"] - latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + latex.DrawLatex(0.7, 0.85, "LHCb simulation") latex.DrawLatex(0.35, 0.3, cutName) canvasName = tracker + "_" + cut + "_" + histo + ".pdf" if savepdf: diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 5e6f99d59c7..84909443889 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -19,7 +19,8 @@ def efficiencyHistoDict(): "pt": {}, "phi": {}, "nPV": {}, - "docaz": {} + "docaz": {}, + "z": {} } basedict["eta"]["xTitle"] = "#eta" @@ -35,11 +36,14 @@ def efficiencyHistoDict(): basedict["phi"]["variable"] = "Phi" basedict["nPV"]["xTitle"] = "# of PVs" - basedict["nPV"]["variable"] = "nPV" + basedict["nPV"]["variable"] = "nPV" - basedict["docaz"]["xTitle"] = "docaz (mm)" + basedict["docaz"]["xTitle"] = "docaz [mm]" basedict["docaz"]["variable"] = "docaz" + basedict["z"]["xTitle"] = "PV z coordinate [mm]" + basedict["z"]["variable"] = "z" + return basedict -- GitLab From 74aaddadcb8c9c802655086fba06cb3c9e2c4bbb Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 17 Mar 2020 09:49:59 +0100 Subject: [PATCH 130/199] typo fix --- Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index 1d12505bf09..f72d451bfa0 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -34,7 +34,7 @@ import subprocess def getEfficiencyHistoNames(): - return ["eta", "p", "pt", "phi", "nPV", "z", "docaz"] + return ["eta", "p", "pt", "phi", "nPV", "docaz"] def getTrackers(): @@ -285,7 +285,7 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, canvas_elec.PlaceLegend() for lab in label: eff_elec[lab].Draw("P SAME") - latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + latex.DrawLatex(0.7, 0.85, "LHCb simulation") latex.DrawLatex(0.35, 0.3, cutName) canvasName_elec = tracker + "_" + cut + "_" + histo + "_elec.pdf" if savepdf: @@ -333,7 +333,7 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, for lab in label: eff[lab].Draw("P SAME") eff_elec[lab].Draw("P SAME") - latex.DrawLatex(0.7, 0.85, "LHCb simultaion") + latex.DrawLatex(0.7, 0.85, "LHCb simulation") latex.DrawLatex(0.35, 0.3, cutName) canvas_com.SetRightMargin(0.05) canvas_com.Write() -- GitLab From 75a8d4e954bc19409e056b8532f43abfb09c1d34 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 17 Mar 2020 08:51:04 +0000 Subject: [PATCH 131/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7610865 --- Hlt/RecoConf/options/hlt1_reco_allen.py | 14 ++++++++------ .../hlt1_reco_allen_trackresolution.py | 9 +++++++-- .../scripts/PrCheckerEfficiency_HLT1.py | 4 ++-- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 19 +++++++++++-------- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen.py b/Hlt/RecoConf/options/hlt1_reco_allen.py index cb016107cd3..2512654155d 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen.py @@ -31,11 +31,13 @@ ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers -Hlt1SelectionIDs = {'Hlt1DisplacedDiMuonLine': 4, - 'Hlt1HighMassDiMuonLine': 5, - 'Hlt1OneTrackMVALine': 1, - 'Hlt1PassThroughLine': 0, - 'Hlt1SingleMuonLine': 3, - 'Hlt1TwoTrackMVALine': 2} +Hlt1SelectionIDs = { + 'Hlt1DisplacedDiMuonLine': 4, + 'Hlt1HighMassDiMuonLine': 5, + 'Hlt1OneTrackMVALine': 1, + 'Hlt1PassThroughLine': 0, + 'Hlt1SingleMuonLine': 3, + 'Hlt1TwoTrackMVALine': 2 +} HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py index 65f8af35809..d9c02262ed9 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py @@ -18,14 +18,19 @@ from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import AllenUpdater -from PyConf.application import make_data_with_FetchDataFromFile +from PyConf.application import make_data_with_FetchDataFromFile + def hlt1_reco_allen_trackresolution(): track_type = "Forward" tracks = make_allen_tracks()[track_type] pr_checker = monitor_track_resolution(tracks) - return Reconstruction('track_resolution', [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker], [require_gec()]) + return Reconstruction( + 'track_resolution', + [make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), pr_checker], + [require_gec()]) + options.histo_file = "Hlt1ForwardTrackingResolutionAllen.root" run_reconstruction(options, hlt1_reco_allen_trackresolution) diff --git a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py index f72d451bfa0..b2fbc600ccb 100644 --- a/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py +++ b/Hlt/RecoConf/scripts/PrCheckerEfficiency_HLT1.py @@ -272,8 +272,8 @@ def PrCheckerEfficiency(filename, outfile, label, plotstyle, dist, plotelec, scale = gPad.GetUymax() / rightmax hist_elec[lab].Scale(scale) hist_elec[lab].Draw("hist SAME") - set_style(hist_elec[label[0]], kGray + 1, markers[i], - styles[i]) + set_style(hist_elec[label[0]], kGray + 1, + markers[i], styles[i]) else: rightmax = 1.05 * hist_elec[label[0]].GetMaximum() scale = gPad.GetUymax() / rightmax diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index 84909443889..58df4386502 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -36,13 +36,13 @@ def efficiencyHistoDict(): basedict["phi"]["variable"] = "Phi" basedict["nPV"]["xTitle"] = "# of PVs" - basedict["nPV"]["variable"] = "nPV" + basedict["nPV"]["variable"] = "nPV" basedict["docaz"]["xTitle"] = "docaz [mm]" basedict["docaz"]["variable"] = "docaz" basedict["z"]["xTitle"] = "PV z coordinate [mm]" - basedict["z"]["variable"] = "z" + basedict["z"]["variable"] = "z" return basedict @@ -70,18 +70,21 @@ def getCuts(): basedict["Velo"] = [ "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", - "05_long_strange_P>5GeV", "06_long_fromB", "06_long_fromD", "07_long_fromB_P>5GeV", - "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "05_long_strange_P>5GeV", "06_long_fromB", "06_long_fromD", + "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", + "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Upstream"] = [ "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", - "08_long_P>5GeV", "09_long_fromB", "09_long_fromD", "10_long_fromB_P>5GeV", - "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "08_long_P>5GeV", "09_long_fromB", "09_long_fromD", + "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", + "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", - "04_long_strange_P>5GeV", "05_long_fromB", "05_long_fromD", "06_long_fromB_P>5GeV", - "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "04_long_strange_P>5GeV", "05_long_fromB", "05_long_fromD", + "06_long_fromB_P>5GeV", "10_long_fromB_P>3GeV_Pt>0.5GeV", + "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["MuonMatch"] = [ "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" -- GitLab From 7729565e9b939918e4840e1176219688cc38c669 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 3 Apr 2020 12:32:28 +0200 Subject: [PATCH 132/199] adjust to parameter name changes in RunAllen --- Hlt/RecoConf/options/hlt1_reco_allen.py | 43 ---------------------- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 4 +- 2 files changed, 2 insertions(+), 45 deletions(-) delete mode 100644 Hlt/RecoConf/options/hlt1_reco_allen.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen.py b/Hlt/RecoConf/options/hlt1_reco_allen.py deleted file mode 100644 index 2512654155d..00000000000 --- a/Hlt/RecoConf/options/hlt1_reco_allen.py +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options, run_reconstruction -from RecoConf.standalone import standalone_hlt1_allen -from Configurables import ApplicationMgr, HltANNSvc -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks - -with standalone_hlt1_allen.bind(): - run_reconstruction(options, standalone_hlt1_allen) - -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers - -Hlt1SelectionIDs = { - 'Hlt1DisplacedDiMuonLine': 4, - 'Hlt1HighMassDiMuonLine': 5, - 'Hlt1OneTrackMVALine': 1, - 'Hlt1PassThroughLine': 0, - 'Hlt1SingleMuonLine': 3, - 'Hlt1TwoTrackMVALine': 2 -} - -HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 391461b636c..5fa88c2b974 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -35,8 +35,8 @@ def make_allen_output(odin_location=make_odin, return RunAllen( AllenRawInput=dumped_raw_banks(), ODINLocation=odin_location(), - filter_HLT1=filter_hlt1, - ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", + FILTERHLT1=filter_hlt1, + PARAMDIR="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json" ).AllenOutput -- GitLab From 66cfbc0c11814b7e52869da29863d3857dc21dc6 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 8 Apr 2020 10:54:29 +0200 Subject: [PATCH 133/199] add missing options file for track reconstruction efficiency check with Allen --- .../hlt1_reco_allen_track_reconstruction.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py new file mode 100644 index 00000000000..d14d33f9bd9 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -0,0 +1,32 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from RecoConf.standalone import standalone_hlt1_reco_allen +from Configurables import ApplicationMgr +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks + +with standalone_hlt1_reco_allen.bind(do_mc_checking=True): + run_reconstruction(options, standalone_hlt1_reco_allen) + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers -- GitLab From 0f90d5b653bfcb3518e7841921f1c0073c9fd513 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 8 Apr 2020 20:20:23 +0200 Subject: [PATCH 134/199] add tracker_dumper to mc_checking --- .../hlt1_reco_allen_track_reconstruction.py | 4 ++- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 36 +++++++++++-------- Hlt/RecoConf/python/RecoConf/mc_checking.py | 28 +++++++++++---- Hlt/RecoConf/python/RecoConf/standalone.py | 6 ++-- 4 files changed, 49 insertions(+), 25 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index d14d33f9bd9..c2b40b4a844 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -16,7 +16,9 @@ from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks -with standalone_hlt1_reco_allen.bind(do_mc_checking=True): +dumpBinaries = True + +with standalone_hlt1_reco_allen.bind(do_mc_checking=True, dump_binaries=dumpBinaries): run_reconstruction(options, standalone_hlt1_reco_allen) producers = [ diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 5fa88c2b974..d94c83092e8 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -14,6 +14,8 @@ from PyConf.application import default_raw_event, make_odin from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) +from RecoConf.mc_checking import tracker_dumper + from PyConf.Algorithms import ( LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, @@ -22,27 +24,28 @@ from PyConf.Algorithms import HltDecReportsDecoder @configurable -def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin): +def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin, dump_to_file=False): return DumpRawBanks( RawEventLocation=make_raw(), ODINLocation=odin_location(), - DumpToFile=False).AllenRawInput + DumpToFile=dump_to_file).AllenRawInput def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks, - filter_hlt1=False): + filter_hlt1=False, + dump_to_file=False): return RunAllen( - AllenRawInput=dumped_raw_banks(), - ODINLocation=odin_location(), + AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), + ODINLocation=odin_location(), FILTERHLT1=filter_hlt1, PARAMDIR="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json" ).AllenOutput -def make_allen_velo_tracks(): - allen_output = make_allen_output() +def make_allen_velo_tracks(dumpToFile=False): + allen_output = make_allen_output(dump_to_file=dumpToFile) velo_tracks_v2 = AllenVeloToV2Tracks(AllenOutput=allen_output).OutputTracks velo_tracks_v1 = FromV2TrackV1Track( InputTracksName=velo_tracks_v2).OutputTracksName @@ -50,8 +53,8 @@ def make_allen_velo_tracks(): return {"v2": velo_tracks_v2, "v1": velo_tracks_v1} -def make_allen_veloUT_tracks(): - allen_output = make_allen_output() +def make_allen_veloUT_tracks(dumpToFile=False): + allen_output = make_allen_output(dump_to_file=dumpToFile) veloUT_tracks_v2 = AllenUTToV2Tracks(AllenOutput=allen_output).OutputTracks veloUT_tracks_v1 = FromV2TrackV1Track( InputTracksName=veloUT_tracks_v2).OutputTracksName @@ -59,8 +62,8 @@ def make_allen_veloUT_tracks(): return {"v2": veloUT_tracks_v2, "v1": veloUT_tracks_v1} -def make_allen_forward_tracks(): - allen_output = make_allen_output() +def make_allen_forward_tracks(dumpToFile=False): + allen_output = make_allen_output(dump_to_file=dumpToFile) forward_tracks_v2 = AllenForwardToV2Tracks( AllenOutput=allen_output).OutputTracks forward_tracks_v1 = FromV2TrackV1Track( @@ -79,10 +82,13 @@ def make_allen_forward_muon_tracks(): return {"v2": forward_muon_tracks_v2, "v1": forward_muon_tracks_v1} -def make_allen_tracks(): - velo_tracks = make_allen_velo_tracks() - velo_ut_tracks = make_allen_veloUT_tracks() - forward_tracks = make_allen_forward_tracks() +def make_allen_tracks(dump_to_file=False): + velo_tracks = make_allen_velo_tracks(dumpToFile=dump_to_file) + velo_ut_tracks = make_allen_veloUT_tracks(dumpToFile=dump_to_file) + forward_tracks = make_allen_forward_tracks(dumpToFile=dump_to_file) + + if dump_to_file: + tracker_dumper(dump_to_root=True, dump_to_binary=True) return { "Velo": velo_tracks, diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 2d3e5038326..ed699475bcf 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -16,21 +16,22 @@ from PyConf.tonic import (configurable) from PyConf.dataflow import DataHandle from PyConf.components import Tool -from PyConf.application import default_raw_event +from PyConf.application import default_raw_event, make_odin from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, - DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker) + DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker, PrTrackerDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters) + make_velo_full_clusters, + make_VPClus_hits, make_PrStoreFTHit_hits) from Hlt2Conf.data_from_file import mc_unpackers @@ -64,7 +65,7 @@ def make_links_lhcbids_mcparticles_tracking_system(): MCParticlesLocation=mc_unpackers()["MCParticles"], VPFullClustersLocation=make_velo_full_clusters(), VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), - UTHitsLocation=make_PrStoreUTHit_hits(), + UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( '/Event/Link/Raw/UT/Clusters'), FTLiteClustersLocation=make_FTRawBankDecoder_clusters(), @@ -78,7 +79,7 @@ def make_links_lhcbids_mcparticles_tracking_and_muon_system(): """ return PrLHCbID2MCParticleVPUTFTMU( MCParticlesLocation=mc_unpackers()["MCParticles"], - VPFullClustersLocation=make_velo_full_clusters(), + VPFullClustersLocation=make_velo_full_clusters(), VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( @@ -273,7 +274,7 @@ def get_pv_checkers( assert isinstance( pvs, DataHandle), "Please provide reconstructed primary verticies" - links_to_lhcbids = make_links_lhcbids_mcparticles() + links_to_lhcbids = make_links_lhcbids_mcparticles() links_to_tracks = make_links_tracks_mcparticles( InputTracks=tracks, LinksToLHCbIDs=links_to_lhcbids) pv_checkers = [] @@ -330,3 +331,18 @@ def monitor_IPresolution(InputTracks, InputPVs, VeloTracks): PVContainer=vertexConverter, NTupleLUN="FILE1") return IPres_checker + +def tracker_dumper(odin_location=make_odin, dump_to_root=True, dump_to_binary=False): + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + + return PrTrackerDumper( + MCParticlesLocation=mc_unpackers()["MCParticles"], + VPLightClusterLocation=make_VPClus_hits(), + FTHitsLocation=make_PrStoreFTHit_hits(), + UTHitsLocation=make_PrStoreUTHit_hits(), + ODINLocation=odin_location(), + LinkerLocation=links_to_lhcbids, + DumpToROOT=dump_to_root, + DumpToBinary=dump_to_binary + ) + diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 80677ec549c..a53b791137b 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -17,7 +17,7 @@ from .hlt1_tracking import ( all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) from .hlt1_allen import (make_allen_tracks, make_allen_pvs, - make_allen_dec_reports) + make_allen_dec_reports, make_dumped_raw_banks) from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks @@ -71,7 +71,7 @@ def standalone_hlt1_reco(do_mc_checking=False): @configurable -def standalone_hlt1_reco_allen(do_mc_checking=False): +def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional with the Allen sequence Args: do_mc_checking (bool): Enable MC checking. @@ -80,7 +80,7 @@ def standalone_hlt1_reco_allen(do_mc_checking=False): """ # Allen hlt1 - allen_tracks = make_allen_tracks() + allen_tracks = make_allen_tracks(dump_to_file=dump_binaries) allen_pvs = make_allen_pvs() if do_mc_checking: -- GitLab From 88742ab50ada0c585044bf018670ea11b2b6da2c Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 8 Apr 2020 18:20:57 +0000 Subject: [PATCH 135/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7924502 --- .../hlt1_reco_allen_track_reconstruction.py | 3 +- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 6 ++-- Hlt/RecoConf/python/RecoConf/mc_checking.py | 33 ++++++++++--------- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index c2b40b4a844..4599fcdd371 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -18,7 +18,8 @@ from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenV dumpBinaries = True -with standalone_hlt1_reco_allen.bind(do_mc_checking=True, dump_binaries=dumpBinaries): +with standalone_hlt1_reco_allen.bind( + do_mc_checking=True, dump_binaries=dumpBinaries): run_reconstruction(options, standalone_hlt1_reco_allen) producers = [ diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index d94c83092e8..a0790462456 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -24,7 +24,9 @@ from PyConf.Algorithms import HltDecReportsDecoder @configurable -def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin, dump_to_file=False): +def make_dumped_raw_banks(make_raw=default_raw_event, + odin_location=make_odin, + dump_to_file=False): return DumpRawBanks( RawEventLocation=make_raw(), ODINLocation=odin_location(), @@ -37,7 +39,7 @@ def make_allen_output(odin_location=make_odin, dump_to_file=False): return RunAllen( AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), - ODINLocation=odin_location(), + ODINLocation=odin_location(), FILTERHLT1=filter_hlt1, PARAMDIR="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json" diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index ed699475bcf..096ea89b5ed 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -23,15 +23,15 @@ from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, - DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker, PrTrackerDumper) + DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker, + PrTrackerDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector -from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, - make_FTRawBankDecoder_clusters, - make_velo_full_clusters, - make_VPClus_hits, make_PrStoreFTHit_hits) +from RecoConf.hlt1_tracking import ( + make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, + make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits) from Hlt2Conf.data_from_file import mc_unpackers @@ -65,7 +65,7 @@ def make_links_lhcbids_mcparticles_tracking_system(): MCParticlesLocation=mc_unpackers()["MCParticles"], VPFullClustersLocation=make_velo_full_clusters(), VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), - UTHitsLocation=make_PrStoreUTHit_hits(), + UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( '/Event/Link/Raw/UT/Clusters'), FTLiteClustersLocation=make_FTRawBankDecoder_clusters(), @@ -79,7 +79,7 @@ def make_links_lhcbids_mcparticles_tracking_and_muon_system(): """ return PrLHCbID2MCParticleVPUTFTMU( MCParticlesLocation=mc_unpackers()["MCParticles"], - VPFullClustersLocation=make_velo_full_clusters(), + VPFullClustersLocation=make_velo_full_clusters(), VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( @@ -274,7 +274,7 @@ def get_pv_checkers( assert isinstance( pvs, DataHandle), "Please provide reconstructed primary verticies" - links_to_lhcbids = make_links_lhcbids_mcparticles() + links_to_lhcbids = make_links_lhcbids_mcparticles() links_to_tracks = make_links_tracks_mcparticles( InputTracks=tracks, LinksToLHCbIDs=links_to_lhcbids) pv_checkers = [] @@ -332,17 +332,18 @@ def monitor_IPresolution(InputTracks, InputPVs, VeloTracks): NTupleLUN="FILE1") return IPres_checker -def tracker_dumper(odin_location=make_odin, dump_to_root=True, dump_to_binary=False): - links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() - + +def tracker_dumper(odin_location=make_odin, + dump_to_root=True, + dump_to_binary=False): + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() + return PrTrackerDumper( MCParticlesLocation=mc_unpackers()["MCParticles"], VPLightClusterLocation=make_VPClus_hits(), FTHitsLocation=make_PrStoreFTHit_hits(), - UTHitsLocation=make_PrStoreUTHit_hits(), - ODINLocation=odin_location(), + UTHitsLocation=make_PrStoreUTHit_hits(), + ODINLocation=odin_location(), LinkerLocation=links_to_lhcbids, DumpToROOT=dump_to_root, - DumpToBinary=dump_to_binary - ) - + DumpToBinary=dump_to_binary) -- GitLab From f102e403cb40cc32f5b32d0194c5aef707d8b8ca Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 9 Apr 2020 10:45:10 +0200 Subject: [PATCH 136/199] dump banks and info from TrackerDumper into 'dump' directory --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 13 +++++-------- Hlt/RecoConf/python/RecoConf/mc_checking.py | 7 ++++++- Hlt/RecoConf/python/RecoConf/standalone.py | 6 +++++- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index a0790462456..0b605a1b71a 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -14,8 +14,6 @@ from PyConf.application import default_raw_event, make_odin from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) -from RecoConf.mc_checking import tracker_dumper - from PyConf.Algorithms import ( LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, @@ -26,11 +24,13 @@ from PyConf.Algorithms import HltDecReportsDecoder @configurable def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin, - dump_to_file=False): + dump_to_file=False, + output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), ODINLocation=odin_location(), - DumpToFile=dump_to_file).AllenRawInput + DumpToFile=dump_to_file, + OutputDirectory=output_dir).AllenRawInput def make_allen_output(odin_location=make_odin, @@ -88,10 +88,7 @@ def make_allen_tracks(dump_to_file=False): velo_tracks = make_allen_velo_tracks(dumpToFile=dump_to_file) velo_ut_tracks = make_allen_veloUT_tracks(dumpToFile=dump_to_file) forward_tracks = make_allen_forward_tracks(dumpToFile=dump_to_file) - - if dump_to_file: - tracker_dumper(dump_to_root=True, dump_to_binary=True) - + return { "Velo": velo_tracks, "Upstream": velo_ut_tracks, diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 096ea89b5ed..2d38fd04048 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -334,6 +334,8 @@ def monitor_IPresolution(InputTracks, InputPVs, VeloTracks): def tracker_dumper(odin_location=make_odin, + root_output_dir="dump/TrackerDumper", + bin_output_dir="dump/MC_info/tracks", dump_to_root=True, dump_to_binary=False): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system() @@ -346,4 +348,7 @@ def tracker_dumper(odin_location=make_odin, ODINLocation=odin_location(), LinkerLocation=links_to_lhcbids, DumpToROOT=dump_to_root, - DumpToBinary=dump_to_binary) + DumpToBinary=dump_to_binary, + OutputDirectory=root_output_dir, + MCOutputDirectory=bin_output_dir) + diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index a53b791137b..27d98f4b6ff 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -22,7 +22,7 @@ from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks from .calorimeter_reconstruction import make_calo -from .mc_checking import get_track_checkers, get_best_tracks_checkers, get_pv_checkers +from .mc_checking import get_track_checkers, get_best_tracks_checkers, get_pv_checkers, tracker_dumper from .reco_objects_from_file import reconstruction from PyConf.application import default_raw_event from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options @@ -90,7 +90,11 @@ def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): "Forward": allen_tracks["Forward"], } data = get_track_checkers(types_and_locations_for_checkers) + + if dump_binaries: + data.append(tracker_dumper(dump_to_root=False, dump_to_binary=True)) + return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From 92ea97ff76f79ba4e9529629187ef0f2fa0aabf1 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 9 Apr 2020 11:52:33 +0200 Subject: [PATCH 137/199] add pv dumper --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 2 +- Hlt/RecoConf/python/RecoConf/mc_checking.py | 11 +++++++++++ Hlt/RecoConf/python/RecoConf/standalone.py | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 0b605a1b71a..7be9ad93414 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -20,7 +20,6 @@ from PyConf.Algorithms import ( AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder - @configurable def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin, @@ -108,3 +107,4 @@ def make_allen_dec_reports(): return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation + diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 2d38fd04048..c57febdc3a2 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -40,6 +40,7 @@ from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask from RecoConf.hlt1_muonid import make_muon_hits from PyConf.Tools import VisPrimVertTool +from Configurables import PVDumper def get_item(x, key): """Return `key` from `x` if `x` is a dict, otherwise return `x`. @@ -352,3 +353,13 @@ def tracker_dumper(odin_location=make_odin, OutputDirectory=root_output_dir, MCOutputDirectory=bin_output_dir) +def pv_dumper(odin_location=make_odin, + output_dir="dump/MC_info/PVs"): + mc_vertices = mc_unpackers()["MCVertices"] + mc_property_location = make_data_with_FetchDataFromFile("/Event/MC/TrackInfo") + return PVDumper( + MCVerticesLocation=mc_vertices, + MCPropertyLocation=mc_property_location, + ODINLocation=odin_location()) + + diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 27d98f4b6ff..08f11d27be0 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -22,7 +22,7 @@ from RecoConf.hlt1_muonmatch import make_tracks_with_muonmatch_ipcut from .hlt1_muonid import make_muon_id, make_tracks_with_muon_id from .hlt2_tracking import make_hlt2_tracks, make_TrackBestTrackCreator_tracks from .calorimeter_reconstruction import make_calo -from .mc_checking import get_track_checkers, get_best_tracks_checkers, get_pv_checkers, tracker_dumper +from .mc_checking import get_track_checkers, get_best_tracks_checkers, get_pv_checkers, tracker_dumper, pv_dumper from .reco_objects_from_file import reconstruction from PyConf.application import default_raw_event from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options @@ -93,7 +93,7 @@ def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): if dump_binaries: data.append(tracker_dumper(dump_to_root=False, dump_to_binary=True)) - + data.append(pv_dumper()) return Reconstruction('hlt1_reco', data, reco_prefilters()) -- GitLab From 1d32737f276d91f2cf283a55184d62982c87bc29 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Thu, 9 Apr 2020 17:24:56 +0200 Subject: [PATCH 138/199] no import from Configurables --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 2 -- Hlt/RecoConf/python/RecoConf/mc_checking.py | 13 +++++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 7be9ad93414..0c19185cf97 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -12,8 +12,6 @@ from PyConf import configurable from PyConf.application import default_raw_event, make_odin -from Configurables import (VPClus, createODIN, DumpRawBanks, RunAllen) - from PyConf.Algorithms import ( LHCb__Converters__Track__v1__fromV2TrackV1Track as FromV2TrackV1Track, AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index c57febdc3a2..7abb9dbeda5 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -24,7 +24,7 @@ from PyConf.Algorithms import ( PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker, - PrTrackerDumper) + PrTrackerDumper, PVDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector @@ -40,8 +40,6 @@ from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask from RecoConf.hlt1_muonid import make_muon_hits from PyConf.Tools import VisPrimVertTool -from Configurables import PVDumper - def get_item(x, key): """Return `key` from `x` if `x` is a dict, otherwise return `x`. @@ -355,11 +353,10 @@ def tracker_dumper(odin_location=make_odin, def pv_dumper(odin_location=make_odin, output_dir="dump/MC_info/PVs"): - mc_vertices = mc_unpackers()["MCVertices"] - mc_property_location = make_data_with_FetchDataFromFile("/Event/MC/TrackInfo") return PVDumper( - MCVerticesLocation=mc_vertices, - MCPropertyLocation=mc_property_location, - ODINLocation=odin_location()) + MCVerticesLocation=mc_unpackers()["MCVertices"], + MCPropertyLocation=make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), + ODINLocation=odin_location(), + OutputDirectory=output_dir) -- GitLab From 6d50bf6d3656fc467f6351a69e6a10b2809890d7 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 15 Apr 2020 18:23:20 +0200 Subject: [PATCH 139/199] enable dumping of all binaries required for standalone Allen running together --- .../options/hlt1_reco_allen_pvchecker.py | 4 +-- .../hlt1_reco_allen_track_reconstruction.py | 32 +++++++++++++++---- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 4 +-- Hlt/RecoConf/python/RecoConf/standalone.py | 5 ++- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py index ce1bc77ceea..3128aa585d1 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py @@ -11,8 +11,8 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec -from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs -from RecoConf.mc_checking import get_pv_checkers, get_track_checkers +from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs +from RecoConf.mc_checking import get_pv_checkers, get_track_checkers from Configurables import ApplicationMgr from Configurables import NTupleSvc from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index 4599fcdd371..4b9e0d184bd 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -9,21 +9,41 @@ # or submit itself to any jurisdiction. # ############################################################################### from Moore import options, run_reconstruction -from RecoConf.standalone import standalone_hlt1_reco_allen +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec +from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks +from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers from Configurables import ApplicationMgr from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks -dumpBinaries = True +dumpBinaries = False +outputDir = "dump/" -with standalone_hlt1_reco_allen.bind( - do_mc_checking=True, dump_binaries=dumpBinaries): - run_reconstruction(options, standalone_hlt1_reco_allen) +def hlt1_reco_allen_tracks(): + + allen_tracks = make_allen_tracks() + + types_and_locations_for_checkers = { + "Velo": allen_tracks["Velo"], + "Upstream": allen_tracks["Upstream"], + "Forward": allen_tracks["Forward"], + } + data = get_track_checkers(types_and_locations_for_checkers) + + if dumpBinaries: + data.append(make_dumped_raw_banks(dump_to_file=True, output_dir=outputDir + "banks")) + data.append(tracker_dumper(dump_to_root=False, dump_to_binary=True, bin_output_dir=outputDir + "MC_info/tracks")) + data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) + + return Reconstruction('allen_reco', data, [require_gec()]) + +run_reconstruction(options, hlt1_reco_allen_tracks) producers = [ - p(DumpToFile=False) + p(DumpToFile=dumpBinaries) for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, DumpMuonTable, DumpMagneticField, DumpBeamline, DumpUTLookupTables) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 0c19185cf97..616372fc655 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -37,8 +37,8 @@ def make_allen_output(odin_location=make_odin, return RunAllen( AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), ODINLocation=odin_location(), - FILTERHLT1=filter_hlt1, - PARAMDIR="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", + FilterHLT1=filter_hlt1, + ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json" ).AllenOutput diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 08f11d27be0..d788908319d 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -81,7 +81,6 @@ def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): """ # Allen hlt1 allen_tracks = make_allen_tracks(dump_to_file=dump_binaries) - allen_pvs = make_allen_pvs() if do_mc_checking: types_and_locations_for_checkers = { @@ -94,8 +93,8 @@ def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): if dump_binaries: data.append(tracker_dumper(dump_to_root=False, dump_to_binary=True)) data.append(pv_dumper()) - - return Reconstruction('hlt1_reco', data, reco_prefilters()) + + return Reconstruction('hlt1_reco', data, reco_prefilters()) def standalone_hlt1_allen(): -- GitLab From 33ea4ef9bc9a513beca419bc06fcc9b3fae65e43 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 15 Apr 2020 16:24:21 +0000 Subject: [PATCH 140/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/7994193 --- .../options/hlt1_reco_allen_pvchecker.py | 4 ++-- .../hlt1_reco_allen_track_reconstruction.py | 22 +++++++++++++------ Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 4 ++-- Hlt/RecoConf/python/RecoConf/mc_checking.py | 12 +++++----- Hlt/RecoConf/python/RecoConf/standalone.py | 9 ++++---- 5 files changed, 30 insertions(+), 21 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py index 3128aa585d1..ce1bc77ceea 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py @@ -11,8 +11,8 @@ from Moore import options, run_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec -from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs -from RecoConf.mc_checking import get_pv_checkers, get_track_checkers +from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs +from RecoConf.mc_checking import get_pv_checkers, get_track_checkers from Configurables import ApplicationMgr from Configurables import NTupleSvc from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index 4b9e0d184bd..462085b7930 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -20,10 +20,11 @@ from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks dumpBinaries = False -outputDir = "dump/" +outputDir = "dump/" + def hlt1_reco_allen_tracks(): - + allen_tracks = make_allen_tracks() types_and_locations_for_checkers = { @@ -32,14 +33,21 @@ def hlt1_reco_allen_tracks(): "Forward": allen_tracks["Forward"], } data = get_track_checkers(types_and_locations_for_checkers) - + if dumpBinaries: - data.append(make_dumped_raw_banks(dump_to_file=True, output_dir=outputDir + "banks")) - data.append(tracker_dumper(dump_to_root=False, dump_to_binary=True, bin_output_dir=outputDir + "MC_info/tracks")) + data.append( + make_dumped_raw_banks( + dump_to_file=True, output_dir=outputDir + "banks")) + data.append( + tracker_dumper( + dump_to_root=False, + dump_to_binary=True, + bin_output_dir=outputDir + "MC_info/tracks")) data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) - return Reconstruction('allen_reco', data, [require_gec()]) - + return Reconstruction('allen_reco', data, [require_gec()]) + + run_reconstruction(options, hlt1_reco_allen_tracks) producers = [ diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 616372fc655..8612ac71eaa 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -18,6 +18,7 @@ from PyConf.Algorithms import ( AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder + @configurable def make_dumped_raw_banks(make_raw=default_raw_event, odin_location=make_odin, @@ -85,7 +86,7 @@ def make_allen_tracks(dump_to_file=False): velo_tracks = make_allen_velo_tracks(dumpToFile=dump_to_file) velo_ut_tracks = make_allen_veloUT_tracks(dumpToFile=dump_to_file) forward_tracks = make_allen_forward_tracks(dumpToFile=dump_to_file) - + return { "Velo": velo_tracks, "Upstream": velo_ut_tracks, @@ -105,4 +106,3 @@ def make_allen_dec_reports(): return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation - diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 7abb9dbeda5..3fa54ff5e9f 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -40,6 +40,7 @@ from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask from RecoConf.hlt1_muonid import make_muon_hits from PyConf.Tools import VisPrimVertTool + def get_item(x, key): """Return `key` from `x` if `x` is a dict, otherwise return `x`. @@ -350,13 +351,12 @@ def tracker_dumper(odin_location=make_odin, DumpToBinary=dump_to_binary, OutputDirectory=root_output_dir, MCOutputDirectory=bin_output_dir) - -def pv_dumper(odin_location=make_odin, - output_dir="dump/MC_info/PVs"): + + +def pv_dumper(odin_location=make_odin, output_dir="dump/MC_info/PVs"): return PVDumper( MCVerticesLocation=mc_unpackers()["MCVertices"], - MCPropertyLocation=make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"), + MCPropertyLocation=make_data_with_FetchDataFromFile( + "/Event/MC/TrackInfo"), ODINLocation=odin_location(), OutputDirectory=output_dir) - - diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index d788908319d..da7f89cf701 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -89,12 +89,13 @@ def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): "Forward": allen_tracks["Forward"], } data = get_track_checkers(types_and_locations_for_checkers) - + if dump_binaries: - data.append(tracker_dumper(dump_to_root=False, dump_to_binary=True)) + data.append( + tracker_dumper(dump_to_root=False, dump_to_binary=True)) data.append(pv_dumper()) - - return Reconstruction('hlt1_reco', data, reco_prefilters()) + + return Reconstruction('hlt1_reco', data, reco_prefilters()) def standalone_hlt1_allen(): -- GitLab From 17ef839d4bba2f6621d2d46c34c8e965c7aeedd7 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 27 Apr 2020 14:34:33 +0200 Subject: [PATCH 141/199] add options script to dump binary input for standalone Allen --- .../dump_binary_input_for_standalone_Allen.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py diff --git a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py new file mode 100644 index 00000000000..01425ac48b3 --- /dev/null +++ b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py @@ -0,0 +1,51 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_allen import make_dumped_raw_banks +from RecoConf.mc_checking import tracker_dumper, pv_dumper +from Configurables import ApplicationMgr +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import AllenUpdater + +outputDir = "dump/" + +def dump_allen_binary_input(): + + data = [] + data.append( + make_dumped_raw_banks( + dump_to_file=True, output_dir=outputDir + "banks")) + data.append( + tracker_dumper( + dump_to_root=False, + dump_to_binary=True, + bin_output_dir=outputDir + "MC_info/tracks")) + data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) + + return Reconstruction('allen_dump', data) + + +run_reconstruction(options, dump_allen_binary_input) + +producers = [ + p(DumpToFile=True) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers -- GitLab From f94c45564c931ca204846a96bfd4499c382816da Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 27 Apr 2020 14:57:13 +0200 Subject: [PATCH 142/199] cleanup --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 8612ac71eaa..c9d7e902a4d 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -44,8 +44,8 @@ def make_allen_output(odin_location=make_odin, ).AllenOutput -def make_allen_velo_tracks(dumpToFile=False): - allen_output = make_allen_output(dump_to_file=dumpToFile) +def make_allen_velo_tracks(): + allen_output = make_allen_output() velo_tracks_v2 = AllenVeloToV2Tracks(AllenOutput=allen_output).OutputTracks velo_tracks_v1 = FromV2TrackV1Track( InputTracksName=velo_tracks_v2).OutputTracksName @@ -53,8 +53,8 @@ def make_allen_velo_tracks(dumpToFile=False): return {"v2": velo_tracks_v2, "v1": velo_tracks_v1} -def make_allen_veloUT_tracks(dumpToFile=False): - allen_output = make_allen_output(dump_to_file=dumpToFile) +def make_allen_veloUT_tracks(): + allen_output = make_allen_output() veloUT_tracks_v2 = AllenUTToV2Tracks(AllenOutput=allen_output).OutputTracks veloUT_tracks_v1 = FromV2TrackV1Track( InputTracksName=veloUT_tracks_v2).OutputTracksName @@ -62,8 +62,8 @@ def make_allen_veloUT_tracks(dumpToFile=False): return {"v2": veloUT_tracks_v2, "v1": veloUT_tracks_v1} -def make_allen_forward_tracks(dumpToFile=False): - allen_output = make_allen_output(dump_to_file=dumpToFile) +def make_allen_forward_tracks(): + allen_output = make_allen_output() forward_tracks_v2 = AllenForwardToV2Tracks( AllenOutput=allen_output).OutputTracks forward_tracks_v1 = FromV2TrackV1Track( @@ -82,10 +82,10 @@ def make_allen_forward_muon_tracks(): return {"v2": forward_muon_tracks_v2, "v1": forward_muon_tracks_v1} -def make_allen_tracks(dump_to_file=False): - velo_tracks = make_allen_velo_tracks(dumpToFile=dump_to_file) - velo_ut_tracks = make_allen_veloUT_tracks(dumpToFile=dump_to_file) - forward_tracks = make_allen_forward_tracks(dumpToFile=dump_to_file) +def make_allen_tracks(): + velo_tracks = make_allen_velo_tracks() + velo_ut_tracks = make_allen_veloUT_tracks() + forward_tracks = make_allen_forward_tracks() return { "Velo": velo_tracks, -- GitLab From 98251c7c6aec917ce2fa0cfdc906c1178adf8ac7 Mon Sep 17 00:00:00 2001 From: Arthur Hennequin Date: Mon, 9 Mar 2020 15:28:43 +0100 Subject: [PATCH 143/199] Set default velo to faster version --- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 43578f04c8e..23bf7cb0c1f 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -27,7 +27,7 @@ from PyConf.Algorithms import ( TracksFitConverter, VPClus, VPClusFull, - VeloClusterTrackingSIMD, + VeloClusterTrackingSIMDFaster, TrackBeamLineVertexFinderSoA, PrVeloUT, SciFiTrackForwardingStoreHit, @@ -102,7 +102,8 @@ def require_gec(make_raw=default_raw_event, cut=-1, **kwargs): @configurable -def make_VeloClusterTrackingSIMD_hits(make_raw=default_raw_event): +def make_VeloClusterTrackingSIMD_hits( + make_raw=default_raw_event, make_tracks=VeloClusterTrackingSIMDFaster): """Makes velo hits with VeloClusterTrackingSIMD Args: @@ -111,7 +112,7 @@ def make_VeloClusterTrackingSIMD_hits(make_raw=default_raw_event): Returns: DataHandle: VeloClusterTrackingSIMD's HitsLocation. """ - return VeloClusterTrackingSIMD(RawEventLocation=make_raw()).HitsLocation + return make_tracks(RawEventLocation=make_raw()).HitsLocation def make_VPClus_location_and_offsets(make_raw=default_raw_event): @@ -140,7 +141,8 @@ def make_velo_full_clusters(make_raw=default_raw_event): @configurable -def make_VeloClusterTrackingSIMD_tracks(make_raw=default_raw_event): +def make_VeloClusterTrackingSIMD_tracks( + make_raw=default_raw_event, make_tracks=VeloClusterTrackingSIMDFaster): """Makes velo tracks with VeloClusterTrackingSIMD. Args: @@ -149,7 +151,7 @@ def make_VeloClusterTrackingSIMD_tracks(make_raw=default_raw_event): Returns: A dict mapping forward-, backward-going and v2 velo tracks to ``'Pr'``, ``'Pr::backward'`` and ``'v2'`` respectively. """ - tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw()) + tracking = make_tracks(RawEventLocation=make_raw()) forward_going_tracks = tracking.TracksLocation backward_going_tracks = tracking.TracksBackwardLocation v2_tracks = TracksVPMergerConverter( -- GitLab From 454fa7bd67596ecf29477862979075b543f1d07f Mon Sep 17 00:00:00 2001 From: Steffen Georg Weber Date: Fri, 1 May 2020 14:15:49 +0200 Subject: [PATCH 144/199] update references for MR 427, based on lhcb-master-mc:738 --- .../hlt1_pp_track_mva.ref.x86_64+avx2+fma-opt | 28 +- ...hlt1_reco_baseline.ref.x86_64+avx2+fma-opt | 26 +- ...ne_with_mcchecking.ref.x86_64+avx2+fma-opt | 98 +- ...th_mcchecking_FTv6.ref.x86_64+avx2+fma-opt | 112 +- ..._reco_muonmatching.ref.x86_64+avx2+fma-opt | 28 +- ...ng_with_mcchecking.ref.x86_64+avx2+fma-opt | 90 +- .../hlt2_reco_baseline_with_mcchecking.ref | 626 ++++---- ...ne_with_mcchecking.ref.x86_64+avx2+fma-opt | 598 ++++---- .../hlt2_reco_baseline_with_monitoring.ref | 868 +++++------ ...ne_with_monitoring.ref.x86_64+avx2+fma-opt | 836 +++++----- .../tests/refs/hlt2_reco_brunelesque.ref | 228 +-- ...2_reco_brunelesque.ref.x86_64+avx2+fma-opt | 242 +-- ..._reco_brunelesque_with_data_monitoring.ref | 872 +++++------ ...th_data_monitoring.ref.x86_64+avx2+fma-opt | 886 +++++------ .../hlt2_reco_brunelesque_with_mcchecking.ref | 1326 ++++++++-------- ...ue_with_mcchecking.ref.x86_64+avx2+fma-opt | 1350 ++++++++--------- .../tests/refs/hlt2_reco_calo_from_dst.ref | 2 +- ...reco_calo_from_dst.ref.x86_64+avx2+fma-opt | 2 +- 18 files changed, 4109 insertions(+), 4109 deletions(-) diff --git a/Hlt/Hlt1Conf/tests/refs/hlt1_pp_track_mva.ref.x86_64+avx2+fma-opt b/Hlt/Hlt1Conf/tests/refs/hlt1_pp_track_mva.ref.x86_64+avx2+fma-opt index 80fbb117a60..7379d988c29 100644 --- a/Hlt/Hlt1Conf/tests/refs/hlt1_pp_track_mva.ref.x86_64+avx2+fma-opt +++ b/Hlt/Hlt1Conf/tests/refs/hlt1_pp_track_mva.ref.x86_64+avx2+fma-opt @@ -16,13 +16,13 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 1000 | | "Nb events removed" | 65 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 935 | 1617568 | 1730.0 | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 935 | 4398 | 4.7037 | + | "Nb PVs" | 935 | 4381 | 4.6856 | require_pvs SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Cut selection efficiency" | 935 | 929 |( 99.35829 +- 0.2611356)% | @@ -31,32 +31,32 @@ PrStorePrUTHits INFO Number of counters : 1 | "#banks" | 929 | 167220 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 929 | 129009 | 138.87 | - | "#tracks" | 929 | 32820 | 35.328 | + | "#seeds" | 929 | 128257 | 138.06 | + | "#tracks" | 929 | 32786 | 35.292 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 15823 | - | "Created long tracks" | 929 | 19921 | 21.443 | + | "2nd Loop" | 15804 | + | "Created long tracks" | 929 | 19901 | 21.422 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 929 | 19921 | 21.443 | + | "Nb of Produced Tracks" | 929 | 19901 | 21.422 | PrFilter__PrFittedForwardTracksW... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Cut selection efficiency" | 19921 | 18 |(0.09035691 +- 0.02128770)% | + |*"Cut selection efficiency" | 19901 | 18 |(0.09044772 +- 0.02130909)% | DeterministicPrescaler#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"#accept" | 1000 | 1000 |( 100.0000 +- 0.000000)% | PrFilter__PrFittedForwardTracksW... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Cut selection efficiency" | 19921 | 1310 |( 6.575975 +- 0.1756118)% | + |*"Cut selection efficiency" | 19901 | 1310 |( 6.582584 +- 0.1757821)% | CombineTracks__2Body__PrFittedFo... SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"# passed combination cut" | 1383 | 172 |( 12.43673 +- 0.8873665)% | - |*"# passed vertex cut" | 171 | 23 |( 13.45029 +- 2.609159)% | - |*"# passed vertex fit" | 172 | 171 |( 99.41860 +- 0.5797028)% | + |*"# passed combination cut" | 1422 | 183 |( 12.86920 +- 0.8879976)% | + |*"# passed vertex cut" | 182 | 22 |( 12.08791 +- 2.416375)% | + |*"# passed vertex fit" | 183 | 182 |( 99.45355 +- 0.5449530)% | LHCb__Converters__Track__v2__fro... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb of Produced Tracks" | 23 | 18 | 0.78261 | LHCb__Converters__Track__v2__fro... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 23 | 90 | 3.9130 | + | "Nb of Produced Tracks" | 23 | 93 | 4.0435 | diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_baseline.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt1_reco_baseline.ref.x86_64+avx2+fma-opt index ee7bff19463..0e9ee21acbd 100644 --- a/Hlt/RecoConf/tests/refs/hlt1_reco_baseline.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt1_reco_baseline.ref.x86_64+avx2+fma-opt @@ -8,31 +8,31 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 1000 | | "Nb events removed" | 65 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 935 | 1617568 | 1730.0 | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 935 | 4398 | 4.7037 | + | "Nb PVs" | 935 | 4381 | 4.6856 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 935 | 168300 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 935 | 129012 | 137.98 | - | "#tracks" | 935 | 32821 | 35.103 | + | "#seeds" | 935 | 128260 | 137.18 | + | "#tracks" | 935 | 32787 | 35.066 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 15824 | - | "Created long tracks" | 935 | 19921 | 21.306 | + | "2nd Loop" | 15805 | + | "Created long tracks" | 935 | 19901 | 21.284 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 19921 | 21.306 | + | "Nb of Produced Tracks" | 935 | 19901 | 21.284 | MuonIDHlt1AlgPr INFO Number of counters : 5 | Counter | - | "nGoodOffline" | 19921 | - | "nInAcceptance" | 18031 | - | "nIsMuon" | 1200 | - | "nIsMuonTight" | 609 | - | "nMomentumCut" | 19554 | + | "nGoodOffline" | 19901 | + | "nInAcceptance" | 18016 | + | "nIsMuon" | 1201 | + | "nIsMuonTight" | 608 | + | "nMomentumCut" | 19536 | diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt index aeba806e0ce..312daf15d50 100644 --- a/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt @@ -1,56 +1,56 @@ VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 208704 tracks including 2085 ghosts [ 1.00 %], Event average 0.83 % **** -VeloTrackChecker INFO 01_velo : 88280 from 90047 [ 98.04 %] 1379 clones [ 1.54 %], purity: 99.76 %, hitEff: 96.84 %, hitEffFirst3: 96.94 %, hitEffLast: 96.49 % -VeloTrackChecker INFO 02_long : 50176 from 50549 [ 99.26 %] 527 clones [ 1.04 %], purity: 99.84 %, hitEff: 97.78 %, hitEffFirst3: 97.88 %, hitEffLast: 97.54 % -VeloTrackChecker INFO 03_long_P>5GeV : 31705 from 31840 [ 99.58 %] 226 clones [ 0.71 %], purity: 99.85 %, hitEff: 98.34 %, hitEffFirst3: 98.40 %, hitEffLast: 98.20 % -VeloTrackChecker INFO 04_long_strange : 2567 from 2634 [ 97.46 %] 28 clones [ 1.08 %], purity: 99.43 %, hitEff: 97.11 %, hitEffFirst3: 97.12 %, hitEffLast: 96.13 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 1296 from 1327 [ 97.66 %] 9 clones [ 0.69 %], purity: 99.22 %, hitEff: 97.82 %, hitEffFirst3: 97.78 %, hitEffLast: 97.10 % +VeloTrackChecker INFO **** Velo 206746 tracks including 1761 ghosts [ 0.85 %], Event average 0.72 % **** +VeloTrackChecker INFO 01_velo : 88144 from 90047 [ 97.89 %] 1344 clones [ 1.50 %], purity: 99.76 %, hitEff: 96.66 %, hitEffFirst3: 96.96 %, hitEffLast: 96.12 % +VeloTrackChecker INFO 02_long : 50121 from 50549 [ 99.15 %] 520 clones [ 1.03 %], purity: 99.84 %, hitEff: 97.57 %, hitEffFirst3: 97.90 %, hitEffLast: 97.16 % +VeloTrackChecker INFO 03_long_P>5GeV : 31686 from 31840 [ 99.52 %] 215 clones [ 0.67 %], purity: 99.85 %, hitEff: 98.13 %, hitEffFirst3: 98.42 %, hitEffLast: 97.78 % +VeloTrackChecker INFO 04_long_strange : 2557 from 2634 [ 97.08 %] 29 clones [ 1.12 %], purity: 99.41 %, hitEff: 96.87 %, hitEffFirst3: 97.18 %, hitEffLast: 95.49 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 1294 from 1327 [ 97.51 %] 8 clones [ 0.61 %], purity: 99.23 %, hitEff: 97.65 %, hitEffFirst3: 97.88 %, hitEffLast: 96.63 % VeloTrackChecker INFO 06_long_fromB : 41 from 41 [100.00 %] 1 clones [ 2.38 %], purity:100.00 %, hitEff: 96.28 %, hitEffFirst3: 96.83 %, hitEffLast: 95.63 % VeloTrackChecker INFO 07_long_fromB_P>5GeV : 29 from 29 [100.00 %] 1 clones [ 3.33 %], purity:100.00 %, hitEff: 96.67 %, hitEffFirst3: 96.67 %, hitEffLast: 96.67 % -VeloTrackChecker INFO 08_long_electrons : 3766 from 3903 [ 96.49 %] 62 clones [ 1.62 %], purity: 98.18 %, hitEff: 95.27 %, hitEffFirst3: 93.30 %, hitEffLast: 95.73 % +VeloTrackChecker INFO 08_long_electrons : 3764 from 3903 [ 96.44 %] 64 clones [ 1.67 %], purity: 98.17 %, hitEff: 95.12 %, hitEffFirst3: 93.36 %, hitEffLast: 95.41 % VeloTrackChecker INFO 09_long_fromB_electrons : 6 from 6 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.15 %, hitEffFirst3:100.00 %, hitEffLast: 97.22 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 4 from 4 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.22 %, hitEffFirst3:100.00 %, hitEffLast: 95.83 % VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 27 from 27 [100.00 %] 1 clones [ 3.57 %], purity:100.00 %, hitEff: 95.44 %, hitEffFirst3: 95.24 %, hitEffLast: 95.24 % VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 27 from 27 [100.00 %] 1 clones [ 3.57 %], purity:100.00 %, hitEff: 95.44 %, hitEffFirst3: 95.24 %, hitEffLast: 95.24 % VeloTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 19921 tracks including 567 ghosts [ 2.85 %], Event average 1.99 % **** -ForwardTrackChecker INFO 01_long : 18359 from 50549 [ 36.32 %] 69 clones [ 0.37 %], purity: 98.86 %, hitEff: 92.64 % -ForwardTrackChecker INFO 02_long_P>5GeV : 15661 from 31840 [ 49.19 %] 62 clones [ 0.39 %], purity: 99.00 %, hitEff: 93.11 % +ForwardTrackChecker INFO **** Forward 19901 tracks including 560 ghosts [ 2.81 %], Event average 1.96 % **** +ForwardTrackChecker INFO 01_long : 18347 from 50549 [ 36.30 %] 67 clones [ 0.36 %], purity: 98.86 %, hitEff: 92.63 % +ForwardTrackChecker INFO 02_long_P>5GeV : 15654 from 31840 [ 49.16 %] 58 clones [ 0.37 %], purity: 99.00 %, hitEff: 93.10 % ForwardTrackChecker INFO 03_long_strange : 574 from 2634 [ 21.79 %] 1 clones [ 0.17 %], purity: 98.56 %, hitEff: 92.06 % -ForwardTrackChecker INFO 04_long_strange_P>5GeV : 470 from 1327 [ 35.42 %] 1 clones [ 0.21 %], purity: 98.73 %, hitEff: 92.86 % +ForwardTrackChecker INFO 04_long_strange_P>5GeV : 470 from 1327 [ 35.42 %] 1 clones [ 0.21 %], purity: 98.74 %, hitEff: 92.86 % ForwardTrackChecker INFO 05_long_fromB : 27 from 41 [ 65.85 %] 0 clones [ 0.00 %], purity: 98.80 %, hitEff: 93.61 % ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 20 from 29 [ 68.97 %] 0 clones [ 0.00 %], purity: 99.75 %, hitEff: 93.78 % -ForwardTrackChecker INFO 07_long_electrons : 227 from 3903 [ 5.82 %] 4 clones [ 1.73 %], purity: 98.23 %, hitEff: 92.37 % +ForwardTrackChecker INFO 07_long_electrons : 228 from 3903 [ 5.84 %] 4 clones [ 1.72 %], purity: 98.25 %, hitEff: 92.25 % ForwardTrackChecker INFO 08_long_fromB_electrons : 4 from 6 [ 66.67 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 93.37 % ForwardTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 4 from 4 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 93.37 % ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 25 from 27 [ 92.59 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 93.10 % ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 25 from 27 [ 92.59 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 93.10 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#2/OutputTracksName **** 567 ghost, 3.96 UT per track -ForwardUTHitsChecker INFO 01_long : 18428 tr 4.04 from 4.07 mcUT [ 99.2 %] 0.02 ghost hits on real tracks [ 0.5 %] -ForwardUTHitsChecker INFO 01_long >3UT : 18423 tr 4.04 from 4.07 mcUT [ 99.2 %] 0.02 ghost hits on real tracks [ 0.5 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV : 15723 tr 4.05 from 4.07 mcUT [ 99.5 %] 0.02 ghost hits on real tracks [ 0.5 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 15720 tr 4.05 from 4.07 mcUT [ 99.5 %] 0.02 ghost hits on real tracks [ 0.5 %] +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#2/OutputTracksName **** 560 ghost, 3.96 UT per track +ForwardUTHitsChecker INFO 01_long : 18414 tr 4.04 from 4.07 mcUT [ 99.2 %] 0.02 ghost hits on real tracks [ 0.5 %] +ForwardUTHitsChecker INFO 01_long >3UT : 18409 tr 4.04 from 4.07 mcUT [ 99.2 %] 0.02 ghost hits on real tracks [ 0.5 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV : 15712 tr 4.05 from 4.07 mcUT [ 99.5 %] 0.02 ghost hits on real tracks [ 0.5 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 15709 tr 4.05 from 4.07 mcUT [ 99.5 %] 0.02 ghost hits on real tracks [ 0.5 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 25 tr 4.00 from 4.08 mcUT [ 98.0 %] 0.08 ghost hits on real tracks [ 2.0 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 25 tr 4.00 from 4.08 mcUT [ 98.0 %] 0.08 ghost hits on real tracks [ 2.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 25 tr 4.00 from 4.08 mcUT [ 98.0 %] 0.08 ghost hits on real tracks [ 2.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 25 tr 4.00 from 4.08 mcUT [ 98.0 %] 0.08 ghost hits on real tracks [ 2.0 %] ForwardUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 32821 tracks including 1814 ghosts [ 5.53 %], Event average 4.35 % **** -UpstreamTrackChecker INFO 01_velo : 29546 from 90047 [ 32.81 %] 105 clones [ 0.35 %], purity: 99.66 %, hitEff: 98.62 % -UpstreamTrackChecker INFO 02_velo+UT : 29491 from 78196 [ 37.71 %] 105 clones [ 0.35 %], purity: 99.67 %, hitEff: 98.61 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 22713 from 38686 [ 58.71 %] 84 clones [ 0.37 %], purity: 99.73 %, hitEff: 99.36 % -UpstreamTrackChecker INFO 04_velo+notLong : 5636 from 39498 [ 14.27 %] 16 clones [ 0.28 %], purity: 99.41 %, hitEff: 97.68 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 5588 from 28263 [ 19.77 %] 16 clones [ 0.29 %], purity: 99.50 %, hitEff: 97.66 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 3553 from 7382 [ 48.13 %] 12 clones [ 0.34 %], purity: 99.66 %, hitEff: 99.44 % -UpstreamTrackChecker INFO 07_long : 23910 from 50549 [ 47.30 %] 89 clones [ 0.37 %], purity: 99.71 %, hitEff: 98.84 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 19166 from 31840 [ 60.19 %] 72 clones [ 0.37 %], purity: 99.75 %, hitEff: 99.34 % +UpstreamTrackChecker INFO **** Upstream 32787 tracks including 1806 ghosts [ 5.51 %], Event average 4.33 % **** +UpstreamTrackChecker INFO 01_velo : 29528 from 90047 [ 32.79 %] 110 clones [ 0.37 %], purity: 99.65 %, hitEff: 98.61 % +UpstreamTrackChecker INFO 02_velo+UT : 29473 from 78196 [ 37.69 %] 110 clones [ 0.37 %], purity: 99.67 %, hitEff: 98.61 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 22706 from 38686 [ 58.69 %] 81 clones [ 0.36 %], purity: 99.73 %, hitEff: 99.35 % +UpstreamTrackChecker INFO 04_velo+notLong : 5639 from 39498 [ 14.28 %] 20 clones [ 0.35 %], purity: 99.41 %, hitEff: 97.66 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 5591 from 28263 [ 19.78 %] 20 clones [ 0.36 %], purity: 99.49 %, hitEff: 97.64 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 3555 from 7382 [ 48.16 %] 15 clones [ 0.42 %], purity: 99.65 %, hitEff: 99.44 % +UpstreamTrackChecker INFO 07_long : 23889 from 50549 [ 47.26 %] 90 clones [ 0.38 %], purity: 99.71 %, hitEff: 98.84 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 19157 from 31840 [ 60.17 %] 66 clones [ 0.34 %], purity: 99.74 %, hitEff: 99.34 % UpstreamTrackChecker INFO 09_long_fromB : 31 from 41 [ 75.61 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 24 from 29 [ 82.76 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 406 from 3903 [ 10.40 %] 5 clones [ 1.22 %], purity: 98.37 %, hitEff: 97.42 % +UpstreamTrackChecker INFO 11_long_electrons : 407 from 3903 [ 10.43 %] 5 clones [ 1.21 %], purity: 98.40 %, hitEff: 97.42 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 4 from 6 [ 66.67 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 4 from 4 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 26 from 27 [ 96.30 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % @@ -67,37 +67,37 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 1000 | | "Nb events removed" | 65 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 935 | 1617568 | 1730.0 | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 935 | 4398 | 4.7037 | + | "Nb PVs" | 935 | 4381 | 4.6856 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 935 | 168300 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 935 | 129012 | 137.98 | - | "#tracks" | 935 | 32821 | 35.103 | + | "#seeds" | 935 | 128260 | 137.18 | + | "#tracks" | 935 | 32787 | 35.066 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 15824 | - | "Created long tracks" | 935 | 19921 | 21.306 | + | "2nd Loop" | 15805 | + | "Created long tracks" | 935 | 19901 | 21.284 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 19921 | 21.306 | + | "Nb of Produced Tracks" | 935 | 19901 | 21.284 | MuonIDHlt1AlgPr INFO Number of counters : 5 | Counter | - | "nGoodOffline" | 19921 | - | "nInAcceptance" | 18031 | - | "nIsMuon" | 1200 | - | "nIsMuonTight" | 609 | - | "nMomentumCut" | 19554 | + | "nGoodOffline" | 19901 | + | "nInAcceptance" | 18016 | + | "nIsMuon" | 1201 | + | "nIsMuonTight" | 608 | + | "nMomentumCut" | 19536 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 935 | 168300 | 180.00 | @@ -106,22 +106,22 @@ PrLHCbID2MCParticle SUCCESS Number of counters : 1 | "#removed null MCParticles" | 5781508 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 208704 | 206619 |( 99.00098 +- 0.02176918)% | - | "MC particles per track" | 206619 | 207609 | 1.0048 | + |*"Efficiency" | 206746 | 204985 |( 99.14823 +- 0.02021087)% | + | "MC particles per track" | 204985 | 205983 | 1.0049 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 32821 | 35.103 | + | "Nb of Produced Tracks" | 935 | 32787 | 35.066 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 19921 | 21.306 | + | "Nb of Produced Tracks" | 935 | 19901 | 21.284 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 19921 | 19354 |( 97.15376 +- 0.1178176)% | - | "MC particles per track" | 19354 | 22342 | 1.1544 | + |*"Efficiency" | 19901 | 19341 |( 97.18607 +- 0.1172252)% | + | "MC particles per track" | 19341 | 22336 | 1.1549 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 32821 | 31007 |( 94.47305 +- 0.1261307)% | - | "MC particles per track" | 31007 | 31007 | 1.0000 | + |*"Efficiency" | 32787 | 30981 |( 94.49172 +- 0.1259952)% | + | "MC particles per track" | 30981 | 30981 | 1.0000 | UpstreamTrackChecker.LoKi::Hybri... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# loaded from PYTHON" | 15 | 15 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking_FTv6.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking_FTv6.ref.x86_64+avx2+fma-opt index 6728af3344f..c4b7cbf1bed 100644 --- a/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking_FTv6.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt1_reco_baseline_with_mcchecking_FTv6.ref.x86_64+avx2+fma-opt @@ -1,56 +1,56 @@ VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 182781 tracks including 1625 ghosts [ 0.89 %], Event average 0.74 % **** -VeloTrackChecker INFO 01_velo : 77960 from 79304 [ 98.31 %] 1099 clones [ 1.39 %], purity: 99.77 %, hitEff: 97.06 %, hitEffFirst3: 97.16 %, hitEffLast: 96.69 % -VeloTrackChecker INFO 02_long : 46425 from 46756 [ 99.29 %] 408 clones [ 0.87 %], purity: 99.83 %, hitEff: 97.95 %, hitEffFirst3: 98.02 %, hitEffLast: 97.75 % -VeloTrackChecker INFO 03_long_P>5GeV : 31839 from 31974 [ 99.58 %] 202 clones [ 0.63 %], purity: 99.87 %, hitEff: 98.40 %, hitEffFirst3: 98.49 %, hitEffLast: 98.25 % -VeloTrackChecker INFO 04_long_strange : 2524 from 2582 [ 97.75 %] 21 clones [ 0.83 %], purity: 99.56 %, hitEff: 97.70 %, hitEffFirst3: 97.59 %, hitEffLast: 97.22 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 1202 from 1222 [ 98.36 %] 4 clones [ 0.33 %], purity: 99.59 %, hitEff: 98.50 %, hitEffFirst3: 98.42 %, hitEffLast: 97.94 % -VeloTrackChecker INFO 06_long_fromB : 77 from 77 [100.00 %] 1 clones [ 1.28 %], purity: 99.25 %, hitEff: 97.78 %, hitEffFirst3: 97.86 %, hitEffLast: 98.00 % -VeloTrackChecker INFO 07_long_fromB_P>5GeV : 57 from 57 [100.00 %] 1 clones [ 1.72 %], purity: 99.57 %, hitEff: 98.16 %, hitEffFirst3: 98.28 %, hitEffLast: 98.13 % -VeloTrackChecker INFO 08_long_electrons : 3969 from 4114 [ 96.48 %] 84 clones [ 2.07 %], purity: 98.14 %, hitEff: 95.28 %, hitEffFirst3: 93.65 %, hitEffLast: 95.29 % +VeloTrackChecker INFO **** Velo 180886 tracks including 1361 ghosts [ 0.75 %], Event average 0.64 % **** +VeloTrackChecker INFO 01_velo : 77761 from 79304 [ 98.05 %] 1063 clones [ 1.35 %], purity: 99.77 %, hitEff: 96.88 %, hitEffFirst3: 97.18 %, hitEffLast: 96.33 % +VeloTrackChecker INFO 02_long : 46362 from 46756 [ 99.16 %] 412 clones [ 0.88 %], purity: 99.83 %, hitEff: 97.74 %, hitEffFirst3: 98.02 %, hitEffLast: 97.37 % +VeloTrackChecker INFO 03_long_P>5GeV : 31822 from 31974 [ 99.52 %] 207 clones [ 0.65 %], purity: 99.86 %, hitEff: 98.17 %, hitEffFirst3: 98.48 %, hitEffLast: 97.84 % +VeloTrackChecker INFO 04_long_strange : 2506 from 2582 [ 97.06 %] 15 clones [ 0.60 %], purity: 99.55 %, hitEff: 97.50 %, hitEffFirst3: 97.70 %, hitEffLast: 96.63 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 1194 from 1222 [ 97.71 %] 1 clones [ 0.08 %], purity: 99.59 %, hitEff: 98.22 %, hitEffFirst3: 98.55 %, hitEffLast: 97.14 % +VeloTrackChecker INFO 06_long_fromB : 77 from 77 [100.00 %] 1 clones [ 1.28 %], purity: 99.25 %, hitEff: 97.70 %, hitEffFirst3: 97.86 %, hitEffLast: 97.90 % +VeloTrackChecker INFO 07_long_fromB_P>5GeV : 57 from 57 [100.00 %] 1 clones [ 1.72 %], purity: 99.57 %, hitEff: 98.05 %, hitEffFirst3: 98.28 %, hitEffLast: 98.00 % +VeloTrackChecker INFO 08_long_electrons : 3969 from 4114 [ 96.48 %] 84 clones [ 2.07 %], purity: 98.17 %, hitEff: 95.25 %, hitEffFirst3: 93.99 %, hitEffLast: 94.95 % VeloTrackChecker INFO 09_long_fromB_electrons : 4 from 4 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 90.62 %, hitEffFirst3: 83.33 %, hitEffLast:100.00 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 3 from 3 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 77.78 %, hitEffLast:100.00 % -VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 45 from 45 [100.00 %] 1 clones [ 2.17 %], purity: 99.09 %, hitEff: 97.83 %, hitEffFirst3: 97.83 %, hitEffLast: 97.83 % -VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 45 from 45 [100.00 %] 1 clones [ 2.17 %], purity: 99.09 %, hitEff: 97.83 %, hitEffFirst3: 97.83 %, hitEffLast: 97.83 % +VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 45 from 45 [100.00 %] 1 clones [ 2.17 %], purity: 99.09 %, hitEff: 97.69 %, hitEffFirst3: 97.83 %, hitEffLast: 97.66 % +VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 45 from 45 [100.00 %] 1 clones [ 2.17 %], purity: 99.09 %, hitEff: 97.69 %, hitEffFirst3: 97.83 %, hitEffLast: 97.66 % VeloTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 23883 tracks including 581 ghosts [ 2.43 %], Event average 1.80 % **** -ForwardTrackChecker INFO 01_long : 21992 from 46756 [ 47.04 %] 71 clones [ 0.32 %], purity: 99.05 %, hitEff: 95.30 % -ForwardTrackChecker INFO 02_long_P>5GeV : 19291 from 31974 [ 60.33 %] 65 clones [ 0.34 %], purity: 99.14 %, hitEff: 95.50 % -ForwardTrackChecker INFO 03_long_strange : 572 from 2582 [ 22.15 %] 1 clones [ 0.17 %], purity: 99.01 %, hitEff: 95.99 % -ForwardTrackChecker INFO 04_long_strange_P>5GeV : 458 from 1222 [ 37.48 %] 1 clones [ 0.22 %], purity: 99.20 %, hitEff: 96.12 % +ForwardTrackChecker INFO **** Forward 23856 tracks including 587 ghosts [ 2.46 %], Event average 1.84 % **** +ForwardTrackChecker INFO 01_long : 21962 from 46756 [ 46.97 %] 77 clones [ 0.35 %], purity: 99.05 %, hitEff: 95.30 % +ForwardTrackChecker INFO 02_long_P>5GeV : 19280 from 31974 [ 60.30 %] 70 clones [ 0.36 %], purity: 99.14 %, hitEff: 95.50 % +ForwardTrackChecker INFO 03_long_strange : 568 from 2582 [ 22.00 %] 0 clones [ 0.00 %], purity: 99.03 %, hitEff: 96.04 % +ForwardTrackChecker INFO 04_long_strange_P>5GeV : 455 from 1222 [ 37.23 %] 0 clones [ 0.00 %], purity: 99.21 %, hitEff: 96.15 % ForwardTrackChecker INFO 05_long_fromB : 40 from 77 [ 51.95 %] 1 clones [ 2.44 %], purity: 99.10 %, hitEff: 95.54 % ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 38 from 57 [ 66.67 %] 1 clones [ 2.56 %], purity: 99.26 %, hitEff: 95.74 % -ForwardTrackChecker INFO 07_long_electrons : 375 from 4114 [ 9.12 %] 9 clones [ 2.34 %], purity: 98.11 %, hitEff: 94.35 % +ForwardTrackChecker INFO 07_long_electrons : 371 from 4114 [ 9.02 %] 5 clones [ 1.33 %], purity: 98.19 %, hitEff: 94.30 % ForwardTrackChecker INFO 08_long_fromB_electrons : 1 from 4 [ 25.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % ForwardTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 3 [ 33.33 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 38 from 45 [ 84.44 %] 1 clones [ 2.56 %], purity: 99.06 %, hitEff: 95.95 % ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 38 from 45 [ 84.44 %] 1 clones [ 2.56 %], purity: 99.06 %, hitEff: 95.95 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#2/OutputTracksName **** 581 ghost, 4.08 UT per track -ForwardUTHitsChecker INFO 01_long : 22063 tr 4.09 from 4.12 mcUT [ 99.4 %] 0.04 ghost hits on real tracks [ 1.0 %] -ForwardUTHitsChecker INFO 01_long >3UT : 22055 tr 4.09 from 4.12 mcUT [ 99.4 %] 0.04 ghost hits on real tracks [ 1.0 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV : 19356 tr 4.10 from 4.12 mcUT [ 99.5 %] 0.04 ghost hits on real tracks [ 1.0 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 19348 tr 4.10 from 4.12 mcUT [ 99.5 %] 0.04 ghost hits on real tracks [ 1.0 %] +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#2/OutputTracksName **** 587 ghost, 4.08 UT per track +ForwardUTHitsChecker INFO 01_long : 22039 tr 4.09 from 4.12 mcUT [ 99.4 %] 0.04 ghost hits on real tracks [ 1.0 %] +ForwardUTHitsChecker INFO 01_long >3UT : 22031 tr 4.09 from 4.12 mcUT [ 99.4 %] 0.04 ghost hits on real tracks [ 1.0 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV : 19350 tr 4.10 from 4.12 mcUT [ 99.5 %] 0.04 ghost hits on real tracks [ 1.0 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 19342 tr 4.10 from 4.12 mcUT [ 99.5 %] 0.04 ghost hits on real tracks [ 1.0 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 39 tr 4.03 from 4.03 mcUT [100.0 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 39 tr 4.03 from 4.03 mcUT [100.0 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 39 tr 4.03 from 4.03 mcUT [100.0 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 39 tr 4.03 from 4.03 mcUT [100.0 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 35051 tracks including 1410 ghosts [ 4.02 %], Event average 3.38 % **** -UpstreamTrackChecker INFO 01_velo : 31813 from 79304 [ 40.12 %] 99 clones [ 0.31 %], purity: 99.57 %, hitEff: 98.99 % -UpstreamTrackChecker INFO 02_velo+UT : 31763 from 69122 [ 45.95 %] 99 clones [ 0.31 %], purity: 99.59 %, hitEff: 98.99 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 25893 from 38520 [ 67.22 %] 81 clones [ 0.31 %], purity: 99.62 %, hitEff: 99.48 % -UpstreamTrackChecker INFO 04_velo+notLong : 5444 from 32548 [ 16.73 %] 12 clones [ 0.22 %], purity: 99.36 %, hitEff: 98.28 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 5399 from 22818 [ 23.66 %] 12 clones [ 0.22 %], purity: 99.43 %, hitEff: 98.26 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 3723 from 6918 [ 53.82 %] 8 clones [ 0.21 %], purity: 99.54 %, hitEff: 99.50 % -UpstreamTrackChecker INFO 07_long : 26369 from 46756 [ 56.40 %] 87 clones [ 0.33 %], purity: 99.62 %, hitEff: 99.13 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 22174 from 31974 [ 69.35 %] 73 clones [ 0.33 %], purity: 99.63 %, hitEff: 99.47 % -UpstreamTrackChecker INFO 09_long_fromB : 44 from 77 [ 57.14 %] 1 clones [ 2.22 %], purity: 99.50 %, hitEff:100.00 % -UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 42 from 57 [ 73.68 %] 1 clones [ 2.33 %], purity: 99.48 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 620 from 4114 [ 15.07 %] 14 clones [ 2.21 %], purity: 98.42 %, hitEff: 98.49 % +UpstreamTrackChecker INFO **** Upstream 35013 tracks including 1407 ghosts [ 4.02 %], Event average 3.39 % **** +UpstreamTrackChecker INFO 01_velo : 31771 from 79304 [ 40.06 %] 110 clones [ 0.35 %], purity: 99.57 %, hitEff: 98.99 % +UpstreamTrackChecker INFO 02_velo+UT : 31721 from 69122 [ 45.89 %] 110 clones [ 0.35 %], purity: 99.59 %, hitEff: 98.99 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 25877 from 38520 [ 67.18 %] 88 clones [ 0.34 %], purity: 99.62 %, hitEff: 99.48 % +UpstreamTrackChecker INFO 04_velo+notLong : 5437 from 32548 [ 16.70 %] 12 clones [ 0.22 %], purity: 99.36 %, hitEff: 98.28 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 5392 from 22818 [ 23.63 %] 12 clones [ 0.22 %], purity: 99.43 %, hitEff: 98.27 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 3720 from 6918 [ 53.77 %] 9 clones [ 0.24 %], purity: 99.54 %, hitEff: 99.50 % +UpstreamTrackChecker INFO 07_long : 26334 from 46756 [ 56.32 %] 98 clones [ 0.37 %], purity: 99.62 %, hitEff: 99.13 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 22161 from 31974 [ 69.31 %] 79 clones [ 0.36 %], purity: 99.63 %, hitEff: 99.47 % +UpstreamTrackChecker INFO 09_long_fromB : 44 from 77 [ 57.14 %] 1 clones [ 2.22 %], purity: 99.49 %, hitEff:100.00 % +UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 42 from 57 [ 73.68 %] 1 clones [ 2.33 %], purity: 99.47 %, hitEff:100.00 % +UpstreamTrackChecker INFO 11_long_electrons : 620 from 4114 [ 15.07 %] 9 clones [ 1.43 %], purity: 98.59 %, hitEff: 98.45 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 1 from 4 [ 25.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 1 from 3 [ 33.33 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 41 from 45 [ 91.11 %] 1 clones [ 2.38 %], purity: 99.46 %, hitEff:100.00 % @@ -67,37 +67,37 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 1000 | | "Nb events removed" | 43 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 957 | 1412866 | 1476.3 | - | "Nb of Produced Tracks" | 957 | 182781 | 190.99 | + | "Nb of Produced Tracks" | 957 | 180886 | 189.01 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 957 | 4639 | 4.8474 | + | "Nb PVs" | 957 | 4634 | 4.8422 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 957 | 172260 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 957 | 114060 | 119.18 | - | "#tracks" | 957 | 35051 | 36.626 | + | "#seeds" | 957 | 113326 | 118.42 | + | "#tracks" | 957 | 35013 | 36.586 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 14214 | - | "Created long tracks" | 957 | 23883 | 24.956 | + | "2nd Loop" | 14201 | + | "Created long tracks" | 957 | 23856 | 24.928 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 957 | 23883 | 24.956 | + | "Nb of Produced Tracks" | 957 | 23856 | 24.928 | MuonIDHlt1AlgPr INFO Number of counters : 5 | Counter | - | "nGoodOffline" | 23883 | - | "nInAcceptance" | 21632 | - | "nIsMuon" | 1944 | - | "nIsMuonTight" | 722 | - | "nMomentumCut" | 23544 | + | "nGoodOffline" | 23856 | + | "nInAcceptance" | 21608 | + | "nIsMuon" | 1942 | + | "nIsMuonTight" | 721 | + | "nMomentumCut" | 23517 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 957 | 182781 | 190.99 | + | "Nb of Produced Tracks" | 957 | 180886 | 189.01 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 957 | 172260 | 180.00 | @@ -106,22 +106,22 @@ PrLHCbID2MCParticle SUCCESS Number of counters : 1 | "#removed null MCParticles" | 5777818 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 182781 | 181156 |( 99.11096 +- 0.02195616)% | - | "MC particles per track" | 181156 | 182228 | 1.0059 | + |*"Efficiency" | 180886 | 179525 |( 99.24759 +- 0.02031815)% | + | "MC particles per track" | 179525 | 180575 | 1.0058 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 957 | 35051 | 36.626 | + | "Nb of Produced Tracks" | 957 | 35013 | 36.586 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 957 | 23883 | 24.956 | + | "Nb of Produced Tracks" | 957 | 23856 | 24.928 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 23883 | 23302 |( 97.56731 +- 0.09968994)% | - | "MC particles per track" | 23302 | 27434 | 1.1773 | + |*"Efficiency" | 23856 | 23269 |( 97.53940 +- 0.1003024)% | + | "MC particles per track" | 23269 | 27400 | 1.1775 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 35051 | 33641 |( 95.97729 +- 0.1049526)% | - | "MC particles per track" | 33641 | 33642 | 1.0000 | + |*"Efficiency" | 35013 | 33606 |( 95.98149 +- 0.1049570)% | + | "MC particles per track" | 33606 | 33607 | 1.0000 | UpstreamTrackChecker.LoKi::Hybri... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# loaded from PYTHON" | 15 | 15 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching.ref.x86_64+avx2+fma-opt index 5aac98ef18b..ab48d86bee8 100644 --- a/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching.ref.x86_64+avx2+fma-opt @@ -8,39 +8,39 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 1000 | | "Nb events removed" | 65 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 935 | 1617568 | 1730.0 | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 935 | 168300 | 180.00 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 935 | 4398 | 4.7037 | + | "Nb PVs" | 935 | 4381 | 4.6856 | PrFilterIPSoA SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 22649 | 24.224 | + | "Nb of Produced Tracks" | 935 | 22427 | 23.986 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 935 | 22649 | 24.224 | - | "#tracks" | 935 | 6492 | 6.9433 | + | "#seeds" | 935 | 22427 | 23.986 | + | "#tracks" | 935 | 6496 | 6.9476 | MuonMatchVeloUTSoA SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#hits" | 935 | 204196 | 218.39 | - | "#matched" | 935 | 236 | 0.25241 | - | "#seeds" | 935 | 6492 | 6.9433 | + | "#matched" | 935 | 235 | 0.25134 | + | "#seeds" | 935 | 6496 | 6.9476 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 99 | - | "Created long tracks" | 935 | 156 | 0.16684 | + | "2nd Loop" | 97 | + | "Created long tracks" | 935 | 157 | 0.16791 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 156 | 0.16684 | + | "Nb of Produced Tracks" | 935 | 157 | 0.16791 | MuonIDHlt1AlgPr INFO Number of counters : 5 | Counter | - | "nGoodOffline" | 156 | - | "nInAcceptance" | 143 | + | "nGoodOffline" | 157 | + | "nInAcceptance" | 144 | | "nIsMuon" | 81 | | "nIsMuonTight" | 67 | - | "nMomentumCut" | 152 | + | "nMomentumCut" | 153 | diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching_with_mcchecking.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching_with_mcchecking.ref.x86_64+avx2+fma-opt index 994f5d98ea8..e3e7d235f4f 100644 --- a/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching_with_mcchecking.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt1_reco_muonmatching_with_mcchecking.ref.x86_64+avx2+fma-opt @@ -1,24 +1,24 @@ VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 208704 tracks including 2085 ghosts [ 1.00 %], Event average 0.83 % **** -VeloTrackChecker INFO 01_velo : 88280 from 90047 [ 98.04 %] 1379 clones [ 1.54 %], purity: 99.76 %, hitEff: 96.84 %, hitEffFirst3: 96.94 %, hitEffLast: 96.49 % -VeloTrackChecker INFO 02_long : 50176 from 50549 [ 99.26 %] 527 clones [ 1.04 %], purity: 99.84 %, hitEff: 97.78 %, hitEffFirst3: 97.88 %, hitEffLast: 97.54 % -VeloTrackChecker INFO 03_long_P>5GeV : 31705 from 31840 [ 99.58 %] 226 clones [ 0.71 %], purity: 99.85 %, hitEff: 98.34 %, hitEffFirst3: 98.40 %, hitEffLast: 98.20 % -VeloTrackChecker INFO 04_long_strange : 2567 from 2634 [ 97.46 %] 28 clones [ 1.08 %], purity: 99.43 %, hitEff: 97.11 %, hitEffFirst3: 97.12 %, hitEffLast: 96.13 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 1296 from 1327 [ 97.66 %] 9 clones [ 0.69 %], purity: 99.22 %, hitEff: 97.82 %, hitEffFirst3: 97.78 %, hitEffLast: 97.10 % +VeloTrackChecker INFO **** Velo 206746 tracks including 1761 ghosts [ 0.85 %], Event average 0.72 % **** +VeloTrackChecker INFO 01_velo : 88144 from 90047 [ 97.89 %] 1344 clones [ 1.50 %], purity: 99.76 %, hitEff: 96.66 %, hitEffFirst3: 96.96 %, hitEffLast: 96.12 % +VeloTrackChecker INFO 02_long : 50121 from 50549 [ 99.15 %] 520 clones [ 1.03 %], purity: 99.84 %, hitEff: 97.57 %, hitEffFirst3: 97.90 %, hitEffLast: 97.16 % +VeloTrackChecker INFO 03_long_P>5GeV : 31686 from 31840 [ 99.52 %] 215 clones [ 0.67 %], purity: 99.85 %, hitEff: 98.13 %, hitEffFirst3: 98.42 %, hitEffLast: 97.78 % +VeloTrackChecker INFO 04_long_strange : 2557 from 2634 [ 97.08 %] 29 clones [ 1.12 %], purity: 99.41 %, hitEff: 96.87 %, hitEffFirst3: 97.18 %, hitEffLast: 95.49 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 1294 from 1327 [ 97.51 %] 8 clones [ 0.61 %], purity: 99.23 %, hitEff: 97.65 %, hitEffFirst3: 97.88 %, hitEffLast: 96.63 % VeloTrackChecker INFO 06_long_fromB : 41 from 41 [100.00 %] 1 clones [ 2.38 %], purity:100.00 %, hitEff: 96.28 %, hitEffFirst3: 96.83 %, hitEffLast: 95.63 % VeloTrackChecker INFO 07_long_fromB_P>5GeV : 29 from 29 [100.00 %] 1 clones [ 3.33 %], purity:100.00 %, hitEff: 96.67 %, hitEffFirst3: 96.67 %, hitEffLast: 96.67 % -VeloTrackChecker INFO 08_long_electrons : 3766 from 3903 [ 96.49 %] 62 clones [ 1.62 %], purity: 98.18 %, hitEff: 95.27 %, hitEffFirst3: 93.30 %, hitEffLast: 95.73 % +VeloTrackChecker INFO 08_long_electrons : 3764 from 3903 [ 96.44 %] 64 clones [ 1.67 %], purity: 98.17 %, hitEff: 95.12 %, hitEffFirst3: 93.36 %, hitEffLast: 95.41 % VeloTrackChecker INFO 09_long_fromB_electrons : 6 from 6 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.15 %, hitEffFirst3:100.00 %, hitEffLast: 97.22 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 4 from 4 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.22 %, hitEffFirst3:100.00 %, hitEffLast: 95.83 % VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 27 from 27 [100.00 %] 1 clones [ 3.57 %], purity:100.00 %, hitEff: 95.44 %, hitEffFirst3: 95.24 %, hitEffLast: 95.24 % VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 27 from 27 [100.00 %] 1 clones [ 3.57 %], purity:100.00 %, hitEff: 95.44 %, hitEffFirst3: 95.24 %, hitEffLast: 95.24 % VeloTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 156 tracks including 25 ghosts [16.03 %], Event average 2.09 % **** +ForwardTrackChecker INFO **** Forward 157 tracks including 26 ghosts [16.56 %], Event average 2.26 % **** ForwardTrackChecker INFO 01_long : 110 from 50549 [ 0.22 %] 0 clones [ 0.00 %], purity: 98.17 %, hitEff: 92.23 % ForwardTrackChecker INFO 02_long_P>5GeV : 74 from 31840 [ 0.23 %] 0 clones [ 0.00 %], purity: 98.60 %, hitEff: 93.55 % -ForwardTrackChecker INFO 03_long_strange : 55 from 2634 [ 2.09 %] 0 clones [ 0.00 %], purity: 98.13 %, hitEff: 90.91 % -ForwardTrackChecker INFO 04_long_strange_P>5GeV : 38 from 1327 [ 2.86 %] 0 clones [ 0.00 %], purity: 98.75 %, hitEff: 92.66 % +ForwardTrackChecker INFO 03_long_strange : 55 from 2634 [ 2.09 %] 0 clones [ 0.00 %], purity: 98.12 %, hitEff: 90.91 % +ForwardTrackChecker INFO 04_long_strange_P>5GeV : 38 from 1327 [ 2.86 %] 0 clones [ 0.00 %], purity: 98.74 %, hitEff: 92.66 % ForwardTrackChecker INFO 05_long_fromB : 0 from 41 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 0 from 29 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % ForwardTrackChecker INFO 07_long_electrons : 8 from 3903 [ 0.20 %] 0 clones [ 0.00 %], purity: 97.50 %, hitEff: 96.69 % @@ -28,25 +28,25 @@ ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 0 from 27 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#4/OutputTracksName **** 25 ghost, 4.04 UT per track +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#4/OutputTracksName **** 26 ghost, 4.04 UT per track ForwardUTHitsChecker INFO 01_long : 110 tr 4.05 from 4.10 mcUT [ 98.9 %] 0.02 ghost hits on real tracks [ 0.4 %] ForwardUTHitsChecker INFO 01_long >3UT : 110 tr 4.05 from 4.10 mcUT [ 98.9 %] 0.02 ghost hits on real tracks [ 0.4 %] ForwardUTHitsChecker INFO 02_long_P>5GeV : 74 tr 4.07 from 4.12 mcUT [ 98.7 %] 0.01 ghost hits on real tracks [ 0.3 %] ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 74 tr 4.07 from 4.12 mcUT [ 98.7 %] 0.01 ghost hits on real tracks [ 0.3 %] ForwardUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 6492 tracks including 1939 ghosts [29.87 %], Event average 24.40 % **** -UpstreamTrackChecker INFO 01_velo : 4083 from 90047 [ 4.53 %] 5 clones [ 0.12 %], purity: 98.89 %, hitEff: 97.61 % -UpstreamTrackChecker INFO 02_velo+UT : 4071 from 78196 [ 5.21 %] 5 clones [ 0.12 %], purity: 98.93 %, hitEff: 97.61 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2232 from 38686 [ 5.77 %] 2 clones [ 0.09 %], purity: 99.01 %, hitEff: 99.10 % -UpstreamTrackChecker INFO 04_velo+notLong : 701 from 39498 [ 1.77 %] 1 clones [ 0.14 %], purity: 98.02 %, hitEff: 94.20 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 690 from 28263 [ 2.44 %] 1 clones [ 0.14 %], purity: 98.21 %, hitEff: 94.16 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 298 from 7382 [ 4.04 %] 0 clones [ 0.00 %], purity: 98.91 %, hitEff: 99.28 % -UpstreamTrackChecker INFO 07_long : 3382 from 50549 [ 6.69 %] 4 clones [ 0.12 %], purity: 99.07 %, hitEff: 98.31 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 1935 from 31840 [ 6.08 %] 2 clones [ 0.10 %], purity: 99.02 %, hitEff: 99.08 % +UpstreamTrackChecker INFO **** Upstream 6496 tracks including 1960 ghosts [30.17 %], Event average 24.57 % **** +UpstreamTrackChecker INFO 01_velo : 4068 from 90047 [ 4.52 %] 8 clones [ 0.20 %], purity: 98.88 %, hitEff: 97.60 % +UpstreamTrackChecker INFO 02_velo+UT : 4057 from 78196 [ 5.19 %] 8 clones [ 0.20 %], purity: 98.91 %, hitEff: 97.59 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2224 from 38686 [ 5.75 %] 2 clones [ 0.09 %], purity: 98.98 %, hitEff: 99.11 % +UpstreamTrackChecker INFO 04_velo+notLong : 705 from 39498 [ 1.78 %] 1 clones [ 0.14 %], purity: 97.98 %, hitEff: 94.18 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 695 from 28263 [ 2.46 %] 1 clones [ 0.14 %], purity: 98.14 %, hitEff: 94.09 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 300 from 7382 [ 4.06 %] 0 clones [ 0.00 %], purity: 98.78 %, hitEff: 99.28 % +UpstreamTrackChecker INFO 07_long : 3363 from 50549 [ 6.65 %] 7 clones [ 0.21 %], purity: 99.06 %, hitEff: 98.32 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 1925 from 31840 [ 6.05 %] 2 clones [ 0.10 %], purity: 99.01 %, hitEff: 99.09 % UpstreamTrackChecker INFO 09_long_fromB : 8 from 41 [ 19.51 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 6 from 29 [ 20.69 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 368 from 3903 [ 9.43 %] 2 clones [ 0.54 %], purity: 97.39 %, hitEff: 97.17 % +UpstreamTrackChecker INFO 11_long_electrons : 363 from 3903 [ 9.30 %] 2 clones [ 0.55 %], purity: 97.41 %, hitEff: 97.40 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 3 from 6 [ 50.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 2 from 4 [ 50.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 27 [ 14.81 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % @@ -63,45 +63,45 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 1000 | | "Nb events removed" | 65 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 935 | 1617568 | 1730.0 | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 935 | 168300 | 180.00 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 935 | 4398 | 4.7037 | + | "Nb PVs" | 935 | 4381 | 4.6856 | PrFilterIPSoA SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 22649 | 24.224 | + | "Nb of Produced Tracks" | 935 | 22427 | 23.986 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 935 | 22649 | 24.224 | - | "#tracks" | 935 | 6492 | 6.9433 | + | "#seeds" | 935 | 22427 | 23.986 | + | "#tracks" | 935 | 6496 | 6.9476 | MuonMatchVeloUTSoA SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#hits" | 935 | 204196 | 218.39 | - | "#matched" | 935 | 236 | 0.25241 | - | "#seeds" | 935 | 6492 | 6.9433 | + | "#matched" | 935 | 235 | 0.25134 | + | "#seeds" | 935 | 6496 | 6.9476 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 99 | - | "Created long tracks" | 935 | 156 | 0.16684 | + | "2nd Loop" | 97 | + | "Created long tracks" | 935 | 157 | 0.16791 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 156 | 0.16684 | + | "Nb of Produced Tracks" | 935 | 157 | 0.16791 | MuonIDHlt1AlgPr INFO Number of counters : 5 | Counter | - | "nGoodOffline" | 156 | - | "nInAcceptance" | 143 | + | "nGoodOffline" | 157 | + | "nInAcceptance" | 144 | | "nIsMuon" | 81 | | "nIsMuonTight" | 67 | - | "nMomentumCut" | 152 | + | "nMomentumCut" | 153 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 208704 | 223.21 | + | "Nb of Produced Tracks" | 935 | 206746 | 221.12 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 935 | 168300 | 180.00 | @@ -110,28 +110,28 @@ PrLHCbID2MCParticle SUCCESS Number of counters : 1 | "#removed null MCParticles" | 5781508 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 208704 | 206619 |( 99.00098 +- 0.02176918)% | - | "MC particles per track" | 206619 | 207609 | 1.0048 | + |*"Efficiency" | 206746 | 204985 |( 99.14823 +- 0.02021087)% | + | "MC particles per track" | 204985 | 205983 | 1.0049 | TracksVPConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 22649 | 24.224 | + | "Nb of Produced Tracks" | 935 | 22427 | 23.986 | TracksUTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 236 | 0.25241 | + | "Nb of Produced Tracks" | 935 | 235 | 0.25134 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 156 | 0.16684 | + | "Nb of Produced Tracks" | 935 | 157 | 0.16791 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 156 | 131 |( 83.97436 +- 2.937100)% | + |*"Efficiency" | 157 | 131 |( 83.43949 +- 2.966695)% | | "MC particles per track" | 131 | 163 | 1.2443 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 6492 | 6.9433 | + | "Nb of Produced Tracks" | 935 | 6496 | 6.9476 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6492 | 4553 |( 70.13247 +- 0.5680283)% | - | "MC particles per track" | 4553 | 4553 | 1.0000 | + |*"Efficiency" | 6496 | 4536 |( 69.82759 +- 0.5695024)% | + | "MC particles per track" | 4536 | 4536 | 1.0000 | UpstreamTrackChecker.LoKi::Hybri... SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# loaded from PYTHON" | 15 | 15 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref index 8dc6108c78e..b1b6a6d93bb 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref @@ -1,46 +1,46 @@ VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 21042 tracks including 205 ghosts [ 0.97 %], Event average 0.81 % **** -VeloTrackChecker INFO 01_velo : 9021 from 9205 [ 98.00 %] 135 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.71 %, hitEffFirst3: 96.90 %, hitEffLast: 96.28 % -VeloTrackChecker INFO 02_long : 5194 from 5237 [ 99.18 %] 59 clones [ 1.12 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.75 %, hitEffLast: 97.20 % -VeloTrackChecker INFO 03_long_P>5GeV : 3320 from 3332 [ 99.64 %] 19 clones [ 0.57 %], purity: 99.86 %, hitEff: 98.34 %, hitEffFirst3: 98.44 %, hitEffLast: 98.16 % -VeloTrackChecker INFO 04_long_strange : 242 from 249 [ 97.19 %] 2 clones [ 0.82 %], purity: 99.43 %, hitEff: 97.55 %, hitEffFirst3: 98.22 %, hitEffLast: 94.95 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.48 %, hitEffFirst3: 99.19 %, hitEffLast: 95.61 % +VeloTrackChecker INFO **** Velo 20869 tracks including 176 ghosts [ 0.84 %], Event average 0.72 % **** +VeloTrackChecker INFO 01_velo : 9006 from 9205 [ 97.84 %] 142 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.47 %, hitEffFirst3: 96.90 %, hitEffLast: 95.80 % +VeloTrackChecker INFO 02_long : 5189 from 5237 [ 99.08 %] 61 clones [ 1.16 %], purity: 99.83 %, hitEff: 97.28 %, hitEffFirst3: 97.72 %, hitEffLast: 96.78 % +VeloTrackChecker INFO 03_long_P>5GeV : 3319 from 3332 [ 99.61 %] 20 clones [ 0.60 %], purity: 99.86 %, hitEff: 98.11 %, hitEffFirst3: 98.42 %, hitEffLast: 97.77 % +VeloTrackChecker INFO 04_long_strange : 239 from 249 [ 95.98 %] 2 clones [ 0.83 %], purity: 99.42 %, hitEff: 97.40 %, hitEffFirst3: 98.20 %, hitEffLast: 94.87 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.28 %, hitEffFirst3: 99.19 %, hitEffLast: 95.22 % VeloTrackChecker INFO 06_long_fromB : 7 from 7 [100.00 %] 1 clones [12.50 %], purity:100.00 %, hitEff: 83.93 %, hitEffFirst3: 87.50 %, hitEffLast: 81.25 % VeloTrackChecker INFO 07_long_fromB_P>5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % -VeloTrackChecker INFO 08_long_electrons : 362 from 373 [ 97.05 %] 9 clones [ 2.43 %], purity: 97.52 %, hitEff: 93.36 %, hitEffFirst3: 90.48 %, hitEffLast: 94.21 % +VeloTrackChecker INFO 08_long_electrons : 359 from 373 [ 96.25 %] 9 clones [ 2.45 %], purity: 97.56 %, hitEff: 93.91 %, hitEffFirst3: 91.85 %, hitEffLast: 94.10 % VeloTrackChecker INFO 09_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % VeloTrackChecker INFO VeloFullTrackChecker INFO Results -VeloFullTrackChecker INFO **** VeloFull 21042 tracks including 205 ghosts [ 0.97 %], Event average 0.81 % **** -VeloFullTrackChecker INFO 01_notElectron_Velo : 9021 from 9205 [ 98.00 %] 135 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.71 %, hitEffFirst3: 96.90 %, hitEffLast: 96.28 % -VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9021 from 9205 [ 98.00 %] 135 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.71 %, hitEffFirst3: 96.90 %, hitEffLast: 96.28 % -VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9021 from 9205 [ 98.00 %] 135 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.71 %, hitEffFirst3: 96.90 %, hitEffLast: 96.28 % -VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5194 from 5237 [ 99.18 %] 59 clones [ 1.12 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.75 %, hitEffLast: 97.20 % -VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3320 from 3332 [ 99.64 %] 19 clones [ 0.57 %], purity: 99.86 %, hitEff: 98.34 %, hitEffFirst3: 98.44 %, hitEffLast: 98.16 % -VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5194 from 5237 [ 99.18 %] 59 clones [ 1.12 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.75 %, hitEffLast: 97.20 % -VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5194 from 5237 [ 99.18 %] 59 clones [ 1.12 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.75 %, hitEffLast: 97.20 % +VeloFullTrackChecker INFO **** VeloFull 20869 tracks including 176 ghosts [ 0.84 %], Event average 0.72 % **** +VeloFullTrackChecker INFO 01_notElectron_Velo : 9006 from 9205 [ 97.84 %] 142 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.47 %, hitEffFirst3: 96.90 %, hitEffLast: 95.80 % +VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9006 from 9205 [ 97.84 %] 142 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.47 %, hitEffFirst3: 96.90 %, hitEffLast: 95.80 % +VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9006 from 9205 [ 97.84 %] 142 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.47 %, hitEffFirst3: 96.90 %, hitEffLast: 95.80 % +VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5189 from 5237 [ 99.08 %] 61 clones [ 1.16 %], purity: 99.83 %, hitEff: 97.28 %, hitEffFirst3: 97.72 %, hitEffLast: 96.78 % +VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3319 from 3332 [ 99.61 %] 20 clones [ 0.60 %], purity: 99.86 %, hitEff: 98.11 %, hitEffFirst3: 98.42 %, hitEffLast: 97.77 % +VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5189 from 5237 [ 99.08 %] 61 clones [ 1.16 %], purity: 99.83 %, hitEff: 97.28 %, hitEffFirst3: 97.72 %, hitEffLast: 96.78 % +VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5189 from 5237 [ 99.08 %] 61 clones [ 1.16 %], purity: 99.83 %, hitEff: 97.28 %, hitEffFirst3: 97.72 %, hitEffLast: 96.78 % VeloFullTrackChecker INFO 09_notElectron_Long_FromB_Eta25 : 7 from 7 [100.00 %] 1 clones [12.50 %], purity:100.00 %, hitEff: 83.93 %, hitEffFirst3: 87.50 %, hitEffLast: 81.25 % VeloFullTrackChecker INFO 10_notElectron_Long_FromB_Eta25 p>5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % VeloFullTrackChecker INFO 11_notElectron_Long_FromB_Eta25 p<5GeV : 2 from 2 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 85.71 %, hitEffFirst3:100.00 %, hitEffLast: 75.00 % VeloFullTrackChecker INFO 12_notElectron_Long_FromB_Eta25 p>3GeV pt>400MeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % -VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 65 from 66 [ 98.48 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.18 %, hitEffFirst3: 96.92 %, hitEffLast: 97.90 % -VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 37 from 37 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.24 %, hitEffFirst3: 97.30 %, hitEffLast: 99.46 % -VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 28 from 29 [ 96.55 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.77 %, hitEffFirst3: 96.43 %, hitEffLast: 95.77 % +VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 64 from 66 [ 96.97 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.41 %, hitEffFirst3: 97.40 %, hitEffLast: 98.11 % +VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 37 from 37 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.86 %, hitEffFirst3: 97.30 %, hitEffLast: 98.78 % +VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 27 from 29 [ 93.10 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 96.81 %, hitEffFirst3: 97.53 %, hitEffLast: 97.14 % VeloFullTrackChecker INFO 16_notElectron_Long_FromD_Eta25 p>3GeV pt>400MeV : 35 from 36 [ 97.22 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.71 %, hitEffFirst3: 98.10 %, hitEffLast: 99.43 % -VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 242 from 249 [ 97.19 %] 2 clones [ 0.82 %], purity: 99.43 %, hitEff: 97.55 %, hitEffFirst3: 98.22 %, hitEffLast: 94.95 % -VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.48 %, hitEffFirst3: 99.19 %, hitEffLast: 95.61 % -VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 118 from 123 [ 95.93 %] 2 clones [ 1.67 %], purity: 99.42 %, hitEff: 96.58 %, hitEffFirst3: 97.22 %, hitEffLast: 94.25 % -VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 76 from 78 [ 97.44 %] 1 clones [ 1.30 %], purity: 98.61 %, hitEff: 97.49 %, hitEffFirst3: 97.40 %, hitEffLast: 96.81 % -VeloFullTrackChecker INFO 21_Electron_Velo : 1349 from 1923 [ 70.15 %] 97 clones [ 6.71 %], purity: 97.91 %, hitEff: 82.86 %, hitEffFirst3: 78.91 %, hitEffLast: 84.24 % -VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1349 from 1923 [ 70.15 %] 97 clones [ 6.71 %], purity: 97.91 %, hitEff: 82.86 %, hitEffFirst3: 78.91 %, hitEffLast: 84.24 % -VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1349 from 1923 [ 70.15 %] 97 clones [ 6.71 %], purity: 97.91 %, hitEff: 82.86 %, hitEffFirst3: 78.91 %, hitEffLast: 84.24 % -VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 362 from 373 [ 97.05 %] 9 clones [ 2.43 %], purity: 97.52 %, hitEff: 93.36 %, hitEffFirst3: 90.48 %, hitEffLast: 94.21 % -VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 181 from 185 [ 97.84 %] 2 clones [ 1.09 %], purity: 97.36 %, hitEff: 94.97 %, hitEffFirst3: 93.44 %, hitEffLast: 94.47 % -VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 181 from 188 [ 96.28 %] 7 clones [ 3.72 %], purity: 97.67 %, hitEff: 91.79 %, hitEffFirst3: 87.59 %, hitEffLast: 93.96 % -VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 70 from 71 [ 98.59 %] 0 clones [ 0.00 %], purity: 98.92 %, hitEff: 95.36 %, hitEffFirst3: 93.81 %, hitEffLast: 96.48 % +VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 239 from 249 [ 95.98 %] 2 clones [ 0.83 %], purity: 99.42 %, hitEff: 97.40 %, hitEffFirst3: 98.20 %, hitEffLast: 94.87 % +VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.28 %, hitEffFirst3: 99.19 %, hitEffLast: 95.22 % +VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 115 from 123 [ 93.50 %] 2 clones [ 1.71 %], purity: 99.41 %, hitEff: 96.46 %, hitEffFirst3: 97.15 %, hitEffLast: 94.50 % +VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 76 from 78 [ 97.44 %] 1 clones [ 1.30 %], purity: 98.61 %, hitEff: 97.26 %, hitEffFirst3: 97.40 %, hitEffLast: 96.47 % +VeloFullTrackChecker INFO 21_Electron_Velo : 1343 from 1923 [ 69.84 %] 94 clones [ 6.54 %], purity: 98.00 %, hitEff: 83.04 %, hitEffFirst3: 79.45 %, hitEffLast: 84.02 % +VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1343 from 1923 [ 69.84 %] 94 clones [ 6.54 %], purity: 98.00 %, hitEff: 83.04 %, hitEffFirst3: 79.45 %, hitEffLast: 84.02 % +VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1343 from 1923 [ 69.84 %] 94 clones [ 6.54 %], purity: 98.00 %, hitEff: 83.04 %, hitEffFirst3: 79.45 %, hitEffLast: 84.02 % +VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 359 from 373 [ 96.25 %] 9 clones [ 2.45 %], purity: 97.56 %, hitEff: 93.91 %, hitEffFirst3: 91.85 %, hitEffLast: 94.10 % +VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 181 from 185 [ 97.84 %] 3 clones [ 1.63 %], purity: 97.63 %, hitEff: 94.94 %, hitEffFirst3: 93.84 %, hitEffLast: 94.10 % +VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 178 from 188 [ 94.68 %] 6 clones [ 3.26 %], purity: 97.49 %, hitEff: 92.89 %, hitEffFirst3: 89.86 %, hitEffLast: 94.10 % +VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 71 from 71 [100.00 %] 2 clones [ 2.74 %], purity: 98.81 %, hitEff: 93.79 %, hitEffFirst3: 91.78 %, hitEffLast: 94.93 % VeloFullTrackChecker INFO 29_Electron_Long_FromB_Eta25 : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 30_Electron_Long_FromB_Eta25 p>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 32_Electron_Long_FromB_Eta25 p>3GeV pt>400MeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % @@ -50,25 +50,25 @@ VeloFullTrackChecker INFO 35_Electron_Long_FromD_Eta25 p<5Ge VeloFullTrackChecker INFO 36_Electron_Long_FromD_Eta25 p>3GeV pt>400MeV : 2 from 2 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 78.33 %, hitEffFirst3: 66.67 %, hitEffLast: 92.86 % VeloFullTrackChecker INFO MatchTrackChecker INFO Results -MatchTrackChecker INFO **** Match 6008 tracks including 1029 ghosts [17.13 %], Event average 13.40 % **** -MatchTrackChecker INFO 01_long : 4372 from 5237 [ 83.48 %] 22 clones [ 0.50 %], purity: 99.40 %, hitEff: 95.41 % -MatchTrackChecker INFO 02_long_P>5GeV : 2976 from 3332 [ 89.32 %] 8 clones [ 0.27 %], purity: 99.57 %, hitEff: 97.24 % -MatchTrackChecker INFO 03_long_strange : 183 from 249 [ 73.49 %] 0 clones [ 0.00 %], purity: 99.06 %, hitEff: 95.00 % +MatchTrackChecker INFO **** Match 6005 tracks including 1030 ghosts [17.15 %], Event average 13.42 % **** +MatchTrackChecker INFO 01_long : 4367 from 5237 [ 83.39 %] 24 clones [ 0.55 %], purity: 99.41 %, hitEff: 95.41 % +MatchTrackChecker INFO 02_long_P>5GeV : 2974 from 3332 [ 89.26 %] 9 clones [ 0.30 %], purity: 99.57 %, hitEff: 97.24 % +MatchTrackChecker INFO 03_long_strange : 181 from 249 [ 72.69 %] 0 clones [ 0.00 %], purity: 99.08 %, hitEff: 94.99 % MatchTrackChecker INFO 04_long_strange_P>5GeV : 106 from 126 [ 84.13 %] 0 clones [ 0.00 %], purity: 99.16 %, hitEff: 97.16 % MatchTrackChecker INFO 05_long_fromB : 5 from 7 [ 71.43 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.46 % MatchTrackChecker INFO 06_long_fromB_P>5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % -MatchTrackChecker INFO 07_long_electrons : 214 from 373 [ 57.37 %] 3 clones [ 1.38 %], purity: 96.93 %, hitEff: 93.73 % +MatchTrackChecker INFO 07_long_electrons : 212 from 373 [ 56.84 %] 4 clones [ 1.85 %], purity: 96.99 %, hitEff: 93.77 % MatchTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % MatchTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % MatchTrackChecker INFO MatchUTHitsChecker INFO Results -MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#7/OutputTracksName **** 1029 ghost, 2.15 UT per track -MatchUTHitsChecker INFO 01_long : 4394 tr 3.85 from 4.04 mcUT [ 95.2 %] 0.09 ghost hits on real tracks [ 2.3 %] -MatchUTHitsChecker INFO 01_long >3UT : 4347 tr 3.89 from 4.07 mcUT [ 95.6 %] 0.09 ghost hits on real tracks [ 2.2 %] -MatchUTHitsChecker INFO 02_long_P>5GeV : 2984 tr 3.86 from 4.02 mcUT [ 96.0 %] 0.06 ghost hits on real tracks [ 1.4 %] -MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 2938 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.05 ghost hits on real tracks [ 1.3 %] +MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#7/OutputTracksName **** 1030 ghost, 2.15 UT per track +MatchUTHitsChecker INFO 01_long : 4391 tr 3.85 from 4.04 mcUT [ 95.2 %] 0.09 ghost hits on real tracks [ 2.3 %] +MatchUTHitsChecker INFO 01_long >3UT : 4344 tr 3.89 from 4.07 mcUT [ 95.6 %] 0.09 ghost hits on real tracks [ 2.2 %] +MatchUTHitsChecker INFO 02_long_P>5GeV : 2983 tr 3.86 from 4.02 mcUT [ 96.1 %] 0.06 ghost hits on real tracks [ 1.4 %] +MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 2937 tr 3.92 from 4.06 mcUT [ 96.7 %] 0.05 ghost hits on real tracks [ 1.3 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] @@ -97,41 +97,41 @@ DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV : DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV >3UT : 231 tr 4.03 from 4.06 mcUT [ 99.4 %] 0.03 ghost hits on real tracks [ 0.6 %] DownstreamUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 3439 tracks including 199 ghosts [ 5.79 %], Event average 4.28 % **** -UpstreamTrackChecker INFO 01_velo : 3074 from 9205 [ 33.39 %] 7 clones [ 0.23 %], purity: 99.67 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 02_velo+UT : 3068 from 8003 [ 38.34 %] 7 clones [ 0.23 %], purity: 99.69 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2372 from 4017 [ 59.05 %] 7 clones [ 0.29 %], purity: 99.76 %, hitEff: 99.44 % -UpstreamTrackChecker INFO 04_velo+notLong : 555 from 3968 [ 13.99 %] 1 clones [ 0.18 %], purity: 99.53 %, hitEff: 97.97 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 550 from 2843 [ 19.35 %] 1 clones [ 0.18 %], purity: 99.61 %, hitEff: 97.96 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 350 from 756 [ 46.30 %] 1 clones [ 0.28 %], purity: 99.74 %, hitEff: 99.39 % -UpstreamTrackChecker INFO 07_long : 2519 from 5237 [ 48.10 %] 6 clones [ 0.24 %], purity: 99.70 %, hitEff: 98.85 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 2022 from 3332 [ 60.68 %] 6 clones [ 0.30 %], purity: 99.76 %, hitEff: 99.44 % +UpstreamTrackChecker INFO **** Upstream 3444 tracks including 200 ghosts [ 5.81 %], Event average 4.26 % **** +UpstreamTrackChecker INFO 01_velo : 3072 from 9205 [ 33.37 %] 11 clones [ 0.36 %], purity: 99.67 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 02_velo+UT : 3066 from 8003 [ 38.31 %] 11 clones [ 0.36 %], purity: 99.69 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2373 from 4017 [ 59.07 %] 10 clones [ 0.42 %], purity: 99.76 %, hitEff: 99.44 % +UpstreamTrackChecker INFO 04_velo+notLong : 553 from 3968 [ 13.94 %] 4 clones [ 0.72 %], purity: 99.52 %, hitEff: 98.02 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 548 from 2843 [ 19.28 %] 4 clones [ 0.72 %], purity: 99.60 %, hitEff: 98.00 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 350 from 756 [ 46.30 %] 3 clones [ 0.85 %], purity: 99.73 %, hitEff: 99.40 % +UpstreamTrackChecker INFO 07_long : 2519 from 5237 [ 48.10 %] 7 clones [ 0.28 %], purity: 99.70 %, hitEff: 98.85 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 2023 from 3332 [ 60.71 %] 7 clones [ 0.34 %], purity: 99.76 %, hitEff: 99.44 % UpstreamTrackChecker INFO 09_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 39 from 373 [ 10.46 %] 0 clones [ 0.00 %], purity: 98.85 %, hitEff: 96.67 % +UpstreamTrackChecker INFO 11_long_electrons : 40 from 373 [ 10.72 %] 1 clones [ 2.44 %], purity: 98.47 %, hitEff: 96.83 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 15_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 6048 tracks including 1189 ghosts [19.66 %], Event average 15.42 % **** -ForwardTrackChecker INFO 01_long : 4244 from 5237 [ 81.04 %] 24 clones [ 0.56 %], purity: 99.11 %, hitEff: 94.74 % -ForwardTrackChecker INFO 02_long_P>5GeV : 2975 from 3332 [ 89.29 %] 10 clones [ 0.34 %], purity: 99.31 %, hitEff: 96.44 % -ForwardTrackChecker INFO 03_long_strange : 175 from 249 [ 70.28 %] 0 clones [ 0.00 %], purity: 98.72 %, hitEff: 94.60 % +ForwardTrackChecker INFO **** Forward 6042 tracks including 1190 ghosts [19.70 %], Event average 15.46 % **** +ForwardTrackChecker INFO 01_long : 4239 from 5237 [ 80.94 %] 25 clones [ 0.59 %], purity: 99.11 %, hitEff: 94.75 % +ForwardTrackChecker INFO 02_long_P>5GeV : 2974 from 3332 [ 89.26 %] 11 clones [ 0.37 %], purity: 99.31 %, hitEff: 96.44 % +ForwardTrackChecker INFO 03_long_strange : 173 from 249 [ 69.48 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 94.58 % ForwardTrackChecker INFO 04_long_strange_P>5GeV : 107 from 126 [ 84.92 %] 0 clones [ 0.00 %], purity: 98.93 %, hitEff: 96.78 % ForwardTrackChecker INFO 05_long_fromB : 5 from 7 [ 71.43 %] 0 clones [ 0.00 %], purity: 98.10 %, hitEff: 93.46 % ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % -ForwardTrackChecker INFO 07_long_electrons : 237 from 373 [ 63.54 %] 3 clones [ 1.25 %], purity: 95.90 %, hitEff: 92.22 % +ForwardTrackChecker INFO 07_long_electrons : 235 from 373 [ 63.00 %] 4 clones [ 1.67 %], purity: 96.09 %, hitEff: 92.36 % ForwardTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % ForwardTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#4/OutputTracksName **** 1189 ghost, 2.20 UT per track -ForwardUTHitsChecker INFO 01_long : 4268 tr 3.85 from 4.03 mcUT [ 95.5 %] 0.08 ghost hits on real tracks [ 2.2 %] -ForwardUTHitsChecker INFO 01_long >3UT : 4214 tr 3.90 from 4.07 mcUT [ 95.9 %] 0.08 ghost hits on real tracks [ 2.1 %] +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#4/OutputTracksName **** 1190 ghost, 2.22 UT per track +ForwardUTHitsChecker INFO 01_long : 4264 tr 3.85 from 4.03 mcUT [ 95.5 %] 0.08 ghost hits on real tracks [ 2.2 %] +ForwardUTHitsChecker INFO 01_long >3UT : 4210 tr 3.90 from 4.07 mcUT [ 95.9 %] 0.08 ghost hits on real tracks [ 2.1 %] ForwardUTHitsChecker INFO 02_long_P>5GeV : 2985 tr 3.85 from 4.01 mcUT [ 95.9 %] 0.05 ghost hits on real tracks [ 1.4 %] ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 2932 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] @@ -140,14 +140,14 @@ ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0. ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO ForwardHlt1TrackChecker INFO Results -ForwardHlt1TrackChecker INFO **** ForwardHlt1 2125 tracks including 48 ghosts [ 2.26 %], Event average 1.45 % **** -ForwardHlt1TrackChecker INFO 01_long : 1959 from 5237 [ 37.41 %] 6 clones [ 0.31 %], purity: 98.82 %, hitEff: 92.67 % -ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 1669 from 3332 [ 50.09 %] 6 clones [ 0.36 %], purity: 99.00 %, hitEff: 93.22 % +ForwardHlt1TrackChecker INFO **** ForwardHlt1 2132 tracks including 50 ghosts [ 2.35 %], Event average 1.49 % **** +ForwardHlt1TrackChecker INFO 01_long : 1961 from 5237 [ 37.45 %] 7 clones [ 0.36 %], purity: 98.83 %, hitEff: 92.67 % +ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 1670 from 3332 [ 50.12 %] 7 clones [ 0.42 %], purity: 99.00 %, hitEff: 93.22 % ForwardHlt1TrackChecker INFO 03_long_strange : 50 from 249 [ 20.08 %] 0 clones [ 0.00 %], purity: 98.81 %, hitEff: 91.43 % ForwardHlt1TrackChecker INFO 04_long_strange_P>5GeV : 41 from 126 [ 32.54 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 92.94 % ForwardHlt1TrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 97.33 % ForwardHlt1TrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 96.79 % -ForwardHlt1TrackChecker INFO 07_long_electrons : 23 from 373 [ 6.17 %] 0 clones [ 0.00 %], purity: 98.14 %, hitEff: 90.00 % +ForwardHlt1TrackChecker INFO 07_long_electrons : 24 from 373 [ 6.43 %] 1 clones [ 4.00 %], purity: 97.94 %, hitEff: 90.80 % ForwardHlt1TrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % ForwardHlt1TrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % ForwardHlt1TrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 96.79 % @@ -166,52 +166,52 @@ SeedTrackChecker INFO 08_noVelo+UT+T_strange : SeedTrackChecker INFO 09_noVelo+UT+T_strange_P>5GeV : 175 from 182 [ 96.15 %] 0 clones [ 0.00 %], purity: 99.64 %, hitEff: 97.00 % SeedTrackChecker INFO BestTrackChecker INFO Results -BestTrackChecker INFO **** Best 25258 tracks including 1616 ghosts [ 6.40 %], Event average 5.21 % **** -BestTrackChecker INFO 01_long : 5194 from 5237 [ 99.18 %] 351 clones [ 6.33 %], purity: 99.36 %, hitEff: 86.50 % -BestTrackChecker INFO 02_long_P>5GeV : 3313 from 3332 [ 99.43 %] 179 clones [ 5.13 %], purity: 99.46 %, hitEff: 90.97 % -BestTrackChecker INFO 03_long_strange : 245 from 249 [ 98.39 %] 29 clones [10.58 %], purity: 99.37 %, hitEff: 78.41 % -BestTrackChecker INFO 04_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 14 clones [10.14 %], purity: 99.45 %, hitEff: 85.30 % +BestTrackChecker INFO **** Best 25085 tracks including 1587 ghosts [ 6.33 %], Event average 5.17 % **** +BestTrackChecker INFO 01_long : 5193 from 5237 [ 99.16 %] 351 clones [ 6.33 %], purity: 99.36 %, hitEff: 86.41 % +BestTrackChecker INFO 02_long_P>5GeV : 3313 from 3332 [ 99.43 %] 180 clones [ 5.15 %], purity: 99.46 %, hitEff: 90.87 % +BestTrackChecker INFO 03_long_strange : 244 from 249 [ 97.99 %] 29 clones [10.62 %], purity: 99.39 %, hitEff: 78.39 % +BestTrackChecker INFO 04_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 14 clones [10.14 %], purity: 99.45 %, hitEff: 85.24 % BestTrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 1 clones [14.29 %], purity: 99.29 %, hitEff: 85.20 % BestTrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity: 99.17 %, hitEff: 82.74 % -BestTrackChecker INFO 07_long_electrons : 338 from 373 [ 90.62 %] 58 clones [14.65 %], purity: 98.07 %, hitEff: 67.45 % +BestTrackChecker INFO 07_long_electrons : 338 from 373 [ 90.62 %] 53 clones [13.55 %], purity: 98.09 %, hitEff: 68.39 % BestTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity: 99.17 %, hitEff: 82.74 % BestTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity: 99.17 %, hitEff: 82.74 % BestTrackChecker INFO BestLongTrackChecker INFO Results -BestLongTrackChecker INFO **** BestLong 5850 tracks including 715 ghosts [12.22 %], Event average 10.06 % **** -BestLongTrackChecker INFO 01_long : 4500 from 5237 [ 85.93 %] 20 clones [ 0.44 %], purity: 99.37 %, hitEff: 96.45 % -BestLongTrackChecker INFO 02_long_P>5GeV : 3026 from 3332 [ 90.82 %] 7 clones [ 0.23 %], purity: 99.48 %, hitEff: 97.65 % -BestLongTrackChecker INFO 03_long_strange : 185 from 249 [ 74.30 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 96.10 % -BestLongTrackChecker INFO 04_long_strange_P>5GeV : 104 from 126 [ 82.54 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 97.40 % +BestLongTrackChecker INFO **** BestLong 5845 tracks including 715 ghosts [12.23 %], Event average 10.08 % **** +BestLongTrackChecker INFO 01_long : 4495 from 5237 [ 85.83 %] 20 clones [ 0.44 %], purity: 99.37 %, hitEff: 96.39 % +BestLongTrackChecker INFO 02_long_P>5GeV : 3024 from 3332 [ 90.76 %] 7 clones [ 0.23 %], purity: 99.48 %, hitEff: 97.59 % +BestLongTrackChecker INFO 03_long_strange : 183 from 249 [ 73.49 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 96.05 % +BestLongTrackChecker INFO 04_long_strange_P>5GeV : 104 from 126 [ 82.54 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 97.32 % BestLongTrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 94.64 % BestLongTrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % -BestLongTrackChecker INFO 07_long_electrons : 215 from 373 [ 57.64 %] 3 clones [ 1.38 %], purity: 97.73 %, hitEff: 92.64 % +BestLongTrackChecker INFO 07_long_electrons : 218 from 373 [ 58.45 %] 2 clones [ 0.91 %], purity: 97.76 %, hitEff: 92.95 % BestLongTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestLongTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestLongTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % BestLongTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % BestLongTrackChecker INFO LongGhostFilteredTrackChecker INFO Results -LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5437 tracks including 367 ghosts [ 6.75 %], Event average 5.50 % **** -LongGhostFilteredTrackChecker INFO 01_long : 4465 from 5237 [ 85.26 %] 20 clones [ 0.45 %], purity: 99.38 %, hitEff: 96.55 % -LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3003 from 3332 [ 90.13 %] 7 clones [ 0.23 %], purity: 99.49 %, hitEff: 97.74 % -LongGhostFilteredTrackChecker INFO 03_long_strange : 183 from 249 [ 73.49 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 96.15 % -LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 102 from 126 [ 80.95 %] 0 clones [ 0.00 %], purity: 99.52 %, hitEff: 97.51 % +LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5431 tracks including 364 ghosts [ 6.70 %], Event average 5.48 % **** +LongGhostFilteredTrackChecker INFO 01_long : 4460 from 5237 [ 85.16 %] 20 clones [ 0.45 %], purity: 99.39 %, hitEff: 96.49 % +LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3001 from 3332 [ 90.07 %] 7 clones [ 0.23 %], purity: 99.49 %, hitEff: 97.68 % +LongGhostFilteredTrackChecker INFO 03_long_strange : 181 from 249 [ 72.69 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 96.09 % +LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 102 from 126 [ 80.95 %] 0 clones [ 0.00 %], purity: 99.52 %, hitEff: 97.43 % LongGhostFilteredTrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 94.64 % LongGhostFilteredTrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % -LongGhostFilteredTrackChecker INFO 07_long_electrons : 207 from 373 [ 55.50 %] 3 clones [ 1.43 %], purity: 97.95 %, hitEff: 93.03 % +LongGhostFilteredTrackChecker INFO 07_long_electrons : 210 from 373 [ 56.30 %] 2 clones [ 0.94 %], purity: 97.96 %, hitEff: 93.32 % LongGhostFilteredTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % LongGhostFilteredTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % LongGhostFilteredTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % LongGhostFilteredTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % LongGhostFilteredTrackChecker INFO BestDownstreamTrackChecker INFO Results -BestDownstreamTrackChecker INFO **** BestDownstream 1237 tracks including 481 ghosts [38.88 %], Event average 31.78 % **** -BestDownstreamTrackChecker INFO 01_UT+T : 527 from 5901 [ 8.93 %] 0 clones [ 0.00 %], purity: 99.55 %, hitEff: 95.22 % -BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 293 from 3594 [ 8.15 %] 0 clones [ 0.00 %], purity: 99.46 %, hitEff: 97.46 % -BestDownstreamTrackChecker INFO 03_UT+T_strange : 192 from 539 [ 35.62 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.61 % +BestDownstreamTrackChecker INFO **** BestDownstream 1241 tracks including 482 ghosts [38.84 %], Event average 31.76 % **** +BestDownstreamTrackChecker INFO 01_UT+T : 531 from 5901 [ 9.00 %] 0 clones [ 0.00 %], purity: 99.55 %, hitEff: 95.20 % +BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 295 from 3594 [ 8.21 %] 0 clones [ 0.00 %], purity: 99.46 %, hitEff: 97.43 % +BestDownstreamTrackChecker INFO 03_UT+T_strange : 193 from 539 [ 35.81 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.60 % BestDownstreamTrackChecker INFO 04_UT+T_strange_P>5GeV : 132 from 305 [ 43.28 %] 0 clones [ 0.00 %], purity: 99.65 %, hitEff: 97.53 % BestDownstreamTrackChecker INFO 05_noVelo+UT+T_strange : 177 from 294 [ 60.20 %] 0 clones [ 0.00 %], purity: 99.74 %, hitEff: 96.62 % BestDownstreamTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 125 from 182 [ 68.68 %] 0 clones [ 0.00 %], purity: 99.69 %, hitEff: 97.54 % @@ -219,10 +219,10 @@ BestDownstreamTrackChecker INFO 07_UT+T_fromB : BestDownstreamTrackChecker INFO 08_UT+T_fromB_P>5GeV : 0 from 5 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % BestDownstreamTrackChecker INFO DownstreamGhostFilteredTrackChecker INFO Results -DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1000 tracks including 250 ghosts [25.00 %], Event average 20.30 % **** -DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 524 from 5901 [ 8.88 %] 0 clones [ 0.00 %], purity: 99.59 %, hitEff: 95.30 % -DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 291 from 3594 [ 8.10 %] 0 clones [ 0.00 %], purity: 99.50 %, hitEff: 97.59 % -DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 192 from 539 [ 35.62 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.61 % +DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1003 tracks including 250 ghosts [24.93 %], Event average 20.25 % **** +DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 528 from 5901 [ 8.95 %] 0 clones [ 0.00 %], purity: 99.59 %, hitEff: 95.27 % +DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 293 from 3594 [ 8.15 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 97.56 % +DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 193 from 539 [ 35.81 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.60 % DownstreamGhostFilteredTrackChecker INFO 04_UT+T_strange_P>5GeV : 132 from 305 [ 43.28 %] 0 clones [ 0.00 %], purity: 99.65 %, hitEff: 97.53 % DownstreamGhostFilteredTrackChecker INFO 05_noVelo+UT+T_strange : 177 from 294 [ 60.20 %] 0 clones [ 0.00 %], purity: 99.74 %, hitEff: 96.62 % DownstreamGhostFilteredTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 125 from 182 [ 68.68 %] 0 clones [ 0.00 %], purity: 99.69 %, hitEff: 97.54 % @@ -241,145 +241,145 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 100 | | "Nb events removed" | 4 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | - | "Nb of Produced Tracks" | 96 | 21042 | 219.19 | + | "Nb of Produced Tracks" | 96 | 20869 | 217.39 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 21042 | 219.19 | + | "Nb of Produced Tracks" | 96 | 20869 | 217.39 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 95 | 6048 | 63.663 | + | "Nb output tracks" | 95 | 6042 | 63.600 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 6048 | 63.000 | + | "Nb of Produced Tracks" | 96 | 6042 | 62.938 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 96 | 13000 | 135.42 | - | "#tracks" | 96 | 3439 | 35.823 | + | "#seeds" | 96 | 12938 | 134.77 | + | "#tracks" | 96 | 3444 | 35.875 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 1621 | - | "Created long tracks" | 96 | 2125 | 22.135 | + | "2nd Loop" | 1618 | + | "Created long tracks" | 96 | 2132 | 22.208 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2125 | 22.135 | + | "Nb of Produced Tracks" | 96 | 2132 | 22.208 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 3439 | 35.823 | + | "Nb of Produced Tracks" | 96 | 3444 | 35.875 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2125 | 22.135 | + | "Nb of Produced Tracks" | 96 | 2132 | 22.208 | TracksFitConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2125 | 22.135 | + | "Nb of Produced Tracks" | 96 | 2132 | 22.208 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 6713 | | "#UT hits added" | 26456 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 16481 | 89044.74 | 5.4029 | - | "#MatchingTracks" | 95 | 6008 | 63.242 | - | "TracksMLP" | 16481 | 5860.012 | 0.35556 | + | "#MatchingChi2" | 16479 | 89073.07 | 5.4052 | + | "#MatchingTracks" | 95 | 6005 | 63.211 | + | "TracksMLP" | 16479 | 5857.469 | 0.35545 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | TrackBestTrackCreator SUCCESS Number of counters : 32 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 28179 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2293 | 1193 |( 52.02791 +- 1.043303)% | - | "Downstream.chisqProbSum" | 2293 | 343.81 | 0.14994 | - |*"Downstream.flipCharge" | 2293 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2293 | 1232.517 | 0.53751 | - | "Downstream.numOutliers" | 2293 | 2513 | 1.0959 | - |*"FitFailed" | 28179 | 0 |( 0.000000 +- 0.000000)% | - |*"Long.badChisq" | 7557 | 2653 |( 35.10652 +- 0.5490599)% | - | "Long.chisqProbSum" | 7557 | 1838.235 | 0.24325 | - |*"Long.flipCharge" | 7557 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 7557 | 1224.38 | 0.16202 | - | "Long.numOutliers" | 7557 | 6720 | 0.88924 | + |*"BadInput" | 28005 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2298 | 1194 |( 51.95822 +- 1.042225)% | + | "Downstream.chisqProbSum" | 2298 | 345.7526 | 0.15046 | + |*"Downstream.flipCharge" | 2298 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2298 | 1234.031 | 0.53700 | + | "Downstream.numOutliers" | 2298 | 2520 | 1.0966 | + |*"FitFailed" | 28005 | 0 |( 0.000000 +- 0.000000)% | + |*"Long.badChisq" | 7548 | 2650 |( 35.10864 +- 0.5493947)% | + | "Long.chisqProbSum" | 7548 | 1839.142 | 0.24366 | + |*"Long.flipCharge" | 7548 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 7548 | 1220.931 | 0.16176 | + | "Long.numOutliers" | 7548 | 6703 | 0.88805 | |*"Ttrack.badChisq" | 2738 | 60 |( 2.191381 +- 0.2797891)% | - | "Ttrack.chisqProbSum" | 2738 | 1088.855 | 0.39768 | + | "Ttrack.chisqProbSum" | 2738 | 1089.201 | 0.39781 | |*"Ttrack.flipCharge" | 2738 | 41 |( 1.497443 +- 0.2321038)% | - | "Ttrack.ghostProbability" | 2738 | 127.2537 | 0.046477 | - | "Ttrack.numOutliers" | 2738 | 965 | 0.35245 | - |*"Upstream.badChisq" | 878 | 201 |( 22.89294 +- 1.417916)% | - | "Upstream.chisqProbSum" | 878 | 285.333 | 0.32498 | - |*"Upstream.flipCharge" | 878 | 18 |( 2.050114 +- 0.4782376)% | - | "Upstream.ghostProbability" | 878 | 190.0004 | 0.21640 | - | "Upstream.numOutliers" | 878 | 397 | 0.45216 | - |*"Velo.badChisq" | 6678 | 1713 |( 25.65139 +- 0.5344028)% | - | "Velo.chisqProbSum" | 6678 | 1978.878 | 0.29633 | - |*"Velo.flipCharge" | 6678 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 6678 | 694.2524 | 0.10396 | - | "Velo.numOutliers" | 6678 | 4652 | 0.69662 | - |*"VeloBackward.badChisq" | 8035 | 502 |( 6.247666 +- 0.2699958)% | - | "VeloBackward.chisqProbSum" | 8035 | 3585.989 | 0.44630 | - |*"VeloBackward.flipCharge" | 8035 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 8035 | 646.3848 | 0.080446 | - | "VeloBackward.numOutliers" | 8035 | 2233 | 0.27791 | + | "Ttrack.ghostProbability" | 2738 | 127.1888 | 0.046453 | + | "Ttrack.numOutliers" | 2738 | 964 | 0.35208 | + |*"Upstream.badChisq" | 879 | 200 |( 22.75313 +- 1.414056)% | + | "Upstream.chisqProbSum" | 879 | 283.5577 | 0.32259 | + |*"Upstream.flipCharge" | 879 | 18 |( 2.047782 +- 0.4776992)% | + | "Upstream.ghostProbability" | 879 | 191.6806 | 0.21807 | + | "Upstream.numOutliers" | 879 | 402 | 0.45734 | + |*"Velo.badChisq" | 6616 | 1705 |( 25.77086 +- 0.5377172)% | + | "Velo.chisqProbSum" | 6616 | 1960.569 | 0.29634 | + |*"Velo.flipCharge" | 6616 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 6616 | 670.3784 | 0.10133 | + | "Velo.numOutliers" | 6616 | 4605 | 0.69604 | + |*"VeloBackward.badChisq" | 7926 | 487 |( 6.144335 +- 0.2697371)% | + | "VeloBackward.chisqProbSum" | 7926 | 3551.315 | 0.44806 | + |*"VeloBackward.flipCharge" | 7926 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 7926 | 605.4403 | 0.076387 | + | "VeloBackward.numOutliers" | 7926 | 2169 | 0.27366 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 96 | 448 | 4.6667 | + | "Nb PVs" | 96 | 450 | 4.6875 | PrLHCbID2MCParticle SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#removed null MCParticles" | 588105 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 21042 | 20837 |( 99.02576 +- 0.06771174)% | - | "MC particles per track" | 20837 | 20942 | 1.0050 | + |*"Efficiency" | 20869 | 20693 |( 99.15664 +- 0.06330173)% | + | "MC particles per track" | 20693 | 20802 | 1.0053 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6008 | 4979 |( 82.87284 +- 0.4860533)% | - | "MC particles per track" | 4979 | 5740 | 1.1528 | + |*"Efficiency" | 6005 | 4975 |( 82.84763 +- 0.4864583)% | + | "MC particles per track" | 4975 | 5734 | 1.1526 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 6713 | 4834 |( 72.00953 +- 0.5479510)% | | "MC particles per track" | 4834 | 4834 | 1.0000 | PrTrackAssociator#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 3439 | 3240 |( 94.21343 +- 0.3981537)% | - | "MC particles per track" | 3240 | 3240 | 1.0000 | + |*"Efficiency" | 3444 | 3244 |( 94.19280 +- 0.3985297)% | + | "MC particles per track" | 3244 | 3244 | 1.0000 | PrTrackAssociator#4 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6048 | 4859 |( 80.34061 +- 0.5110304)% | - | "MC particles per track" | 4859 | 5630 | 1.1587 | + |*"Efficiency" | 6042 | 4852 |( 80.30453 +- 0.5116380)% | + | "MC particles per track" | 4852 | 5621 | 1.1585 | PrTrackAssociator#5 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 2125 | 2077 |( 97.74118 +- 0.3223298)% | - | "MC particles per track" | 2077 | 2438 | 1.1738 | + |*"Efficiency" | 2132 | 2082 |( 97.65478 +- 0.3277514)% | + | "MC particles per track" | 2082 | 2443 | 1.1734 | PrTrackAssociator#6 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 9075 | 8884 |( 97.89532 +- 0.1506784)% | | "MC particles per track" | 8884 | 8884 | 1.0000 | PrTrackAssociator#7 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 25258 | 23642 |( 93.60203 +- 0.1539800)% | - | "MC particles per track" | 23642 | 24520 | 1.0371 | + |*"Efficiency" | 25085 | 23498 |( 93.67351 +- 0.1537031)% | + | "MC particles per track" | 23498 | 24379 | 1.0375 | TrackListRefiner SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 5850 | 60.938 | 36.434 | 0.0000 | 155.00 | - | "#seeds" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#passed" | 96 | 5845 | 60.885 | 36.374 | 0.0000 | 156.00 | + | "#seeds" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | TrackListRefiner#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 5437 | 56.635 | 32.972 | 0.0000 | 138.00 | - | "#seeds" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#passed" | 96 | 5431 | 56.573 | 32.891 | 0.0000 | 139.00 | + | "#seeds" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | TrackListRefiner#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 1237 | 12.885 | 8.8681 | 0.0000 | 41.000 | - | "#seeds" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#passed" | 96 | 1241 | 12.927 | 8.9025 | 0.0000 | 41.000 | + | "#seeds" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | TrackListRefiner#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 1000 | 10.417 | 6.8002 | 0.0000 | 30.000 | - | "#seeds" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#passed" | 96 | 1003 | 10.448 | 6.8296 | 0.0000 | 30.000 | + | "#seeds" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | @@ -405,74 +405,74 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 96 | 652 | 6.7917 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | - | "#tracks in acceptance" | 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | - | "#tracks in acceptance" | 96 | 7680 | 80.000 | 44.808 | 0.0000 | 187.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 7677 | 79.969 | 44.745 | 0.0000 | 187.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7680 | 80.000 | 44.808 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.745 | 0.0000 | 187.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7680 | 80.000 | 44.808 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.745 | 0.0000 | 187.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 1218600 | 12694. | 11241. | 0.0000 | 46291. | - | "#chi2" | 358941 |1.645255e+08 | 458.36 | 291.61 | 0.00012421 | 1000.0 | - | "#good tracks" | 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | - | "#links in table" | 96 | 358941 | 3739.0 | 3716.1 | 0.0000 | 15083. | + | "#above threshold" | 96 | 1217795 | 12685. | 11220. | 0.0000 | 45777. | + | "#chi2" | 358682 |1.644229e+08 | 458.41 | 291.63 | 0.00012421 | 1000.0 | + | "#good tracks" | 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | + | "#links in table" | 96 | 358682 | 3736.3 | 3709.1 | 0.0000 | 14961. | | "#total calos" | 96 | 14626 | 152.35 | 73.922 | 0.0000 | 318.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 96 | 7690 | 80.104 | 47.246 | 0.0000 | 190.00 | - | "photonHypos" | 96 | 9589 | 99.885 | 46.931 | 0.0000 | 210.00 | + | "electronHypos" | 96 | 7691 | 80.115 | 47.236 | 0.0000 | 190.00 | + | "photonHypos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 779106 | 8115.7 | 8312.5 | 0.0000 | 33588. | - | "#chi2" | 91639 |3.976362e+08 | 4339.2 | 2954.1 | 0.065218 | 9999.9 | - | "#good tracks" | 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | - | "#links in table" | 96 | 91639 | 954.57 | 879.16 | 0.0000 | 3821.0 | - | "#total calos" | 96 | 7690 | 80.104 | 47.246 | 0.0000 | 190.00 | + | "#above threshold" | 96 | 778584 | 8110.2 | 8297.9 | 0.0000 | 33536. | + | "#chi2" | 91586 |3.974492e+08 | 4339.6 | 2954.3 | 0.065218 | 9999.9 | + | "#good tracks" | 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | + | "#links in table" | 96 | 91586 | 954.02 | 877.91 | 0.0000 | 3821.0 | + | "#total calos" | 96 | 7691 | 80.115 | 47.236 | 0.0000 | 190.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13248 | 138.00 | 80.426 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | - | "#tracks in acceptance" | 96 | 8735 | 90.990 | 55.335 | 0.0000 | 219.00 | + | "#links in table" | 96 | 13180 | 137.29 | 80.308 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8717 | 90.802 | 55.321 | 0.0000 | 221.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 777446 | 8098.4 | 7820.8 | 0.0000 | 32365. | - | "#chi2" | 324437 |1.507851e+09 | 4647.6 | 2885.4 | 0.00077800 | 10000. | - | "#good tracks" | 96 | 8735 | 90.990 | 55.335 | 0.0000 | 219.00 | - | "#links in table" | 96 | 324437 | 3379.6 | 2903.9 | 0.0000 | 12155. | - | "#total calos" | 96 | 9589 | 99.885 | 46.931 | 0.0000 | 210.00 | + | "#above threshold" | 96 | 775807 | 8081.3 | 7810.7 | 0.0000 | 31837. | + | "#chi2" | 323939 |1.505512e+09 | 4647.5 | 2884.9 | 0.00077800 | 10000. | + | "#good tracks" | 96 | 8717 | 90.802 | 55.321 | 0.0000 | 221.00 | + | "#links in table" | 96 | 323939 | 3374.4 | 2905.4 | 0.0000 | 12053. | + | "#total calos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13248 | 138.00 | 80.426 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#links in table" | 96 | 13180 | 137.29 | 80.308 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13248 | 138.00 | 80.426 | 0.0000 | 320.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13180 | 137.29 | 80.308 | 0.0000 | 317.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | RichSumUnPack SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# UnPackedData" | 96 | 484291 | 5044.7 | 3026.9 | 0.0000 | 12860. | @@ -480,22 +480,22 @@ RichPIDMonDownstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 226 | 218 |( 96.46018 +- 1.229166)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 228 | 220 |( 96.49123 +- 1.218580)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 9 | 9 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 1163 | 1025 |( 88.13414 +- 0.9482698)% | - |*"Used RICH1 and RICH2" | 1025 | 270 |( 26.34146 +- 1.375845)% | - |*"Used RICH1 only" | 1025 | 637 |( 62.14634 +- 1.514955)% | - |*"Used RICH2 only" | 1025 | 118 |( 11.51220 +- 0.9969166)% | + |*"Track ID rate" | 1167 | 1029 |( 88.17481 +- 0.9452375)% | + |*"Used RICH1 and RICH2" | 1029 | 272 |( 26.43343 +- 1.374704)% | + |*"Used RICH1 only" | 1029 | 639 |( 62.09913 +- 1.512376)% | + |*"Used RICH2 only" | 1029 | 118 |( 11.46744 +- 0.9932924)% | RichPIDMonDownstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 73 | 65 |( 89.04110 +- 3.656094)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 74 | 66 |( 89.18919 +- 3.609686)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 9 | 9 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 227 | 227 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 227 | 152 |( 66.96035 +- 3.121862)% | - |*"Used RICH1 only" | 227 | 6 |( 2.643172 +- 1.064714)% | - |*"Used RICH2 only" | 227 | 69 |( 30.39648 +- 3.052912)% | + |*"Track ID rate" | 228 | 228 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 228 | 153 |( 67.10526 +- 3.111531)% | + |*"Used RICH1 only" | 228 | 6 |( 2.631579 +- 1.060107)% | + |*"Used RICH2 only" | 228 | 69 |( 30.26316 +- 3.042432)% | RichPIDMonDownstream70to100 INFO Number of counters : 5 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | @@ -506,31 +506,31 @@ RichPIDMonDownstream70to100 INFO Number of counters : 5 RichPIDMonDownstream2to10 INFO Number of counters : 6 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 153 | 153 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 934 | 796 |( 85.22484 +- 1.161116)% | - |*"Used RICH1 and RICH2" | 796 | 117 |( 14.69849 +- 1.255042)% | - |*"Used RICH1 only" | 796 | 631 |( 79.27136 +- 1.436769)% | - |*"Used RICH2 only" | 796 | 48 |( 6.030151 +- 0.8437267)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 154 | 154 |( 100.0000 +- 0.000000)% | + |*"Track ID rate" | 937 | 799 |( 85.27215 +- 1.157720)% | + |*"Used RICH1 and RICH2" | 799 | 118 |( 14.76846 +- 1.255146)% | + |*"Used RICH1 only" | 799 | 633 |( 79.22403 +- 1.435277)% | + |*"Used RICH2 only" | 799 | 48 |( 6.007509 +- 0.8406601)% | RichPIDMonLong2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | |*"K->K,Pr,D ID Efficiency" | 200 | 198 |( 99.00000 +- 0.7035624)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 2721 | 2668 |( 98.05219 +- 0.2649342)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 2717 | 2664 |( 98.04932 +- 0.2653204)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 70 | 69 |( 98.57143 +- 1.418331)% | - |*"Track ID rate" | 5709 | 5408 |( 94.72762 +- 0.2957750)% | - |*"Used RICH1 and RICH2" | 5408 | 1871 |( 34.59689 +- 0.6468438)% | - |*"Used RICH1 only" | 5408 | 2428 |( 44.89645 +- 0.6763593)% | - |*"Used RICH2 only" | 5408 | 1109 |( 20.50666 +- 0.5490280)% | + |*"Track ID rate" | 5704 | 5405 |( 94.75806 +- 0.2950966)% | + |*"Used RICH1 and RICH2" | 5405 | 1868 |( 34.56059 +- 0.6468632)% | + |*"Used RICH1 only" | 5405 | 2430 |( 44.95837 +- 0.6766328)% | + |*"Used RICH2 only" | 5405 | 1107 |( 20.48104 +- 0.5489256)% | RichPIDMonLong10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | |*"K->K,Pr,D ID Efficiency" | 195 | 193 |( 98.97436 +- 0.7215090)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1112 | 1064 |( 95.68345 +- 0.6094446)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1109 | 1061 |( 95.67178 +- 0.6110560)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 66 | 65 |( 98.48485 +- 1.503629)% | - |*"Track ID rate" | 2045 | 2043 |( 99.90220 +- 0.06912087)% | - |*"Used RICH1 and RICH2" | 2043 | 1163 |( 56.92609 +- 1.095541)% | - |*"Used RICH1 only" | 2043 | 36 |( 1.762115 +- 0.2910867)% | - |*"Used RICH2 only" | 2043 | 844 |( 41.31180 +- 1.089377)% | + |*"Track ID rate" | 2044 | 2042 |( 99.90215 +- 0.06915467)% | + |*"Used RICH1 and RICH2" | 2042 | 1164 |( 57.00294 +- 1.095570)% | + |*"Used RICH1 only" | 2042 | 36 |( 1.762977 +- 0.2912280)% | + |*"Used RICH2 only" | 2042 | 842 |( 41.23408 +- 1.089339)% | RichPIDMonLong70to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | @@ -545,31 +545,31 @@ RichPIDMonLong2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | |*"K->K,Pr,D ID Efficiency" | 1 | 1 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1601 | 1599 |( 99.87508 +- 0.08827795)% | - |*"Track ID rate" | 3628 | 3332 |( 91.84123 +- 0.4544619)% | - |*"Used RICH1 and RICH2" | 3332 | 700 |( 21.00840 +- 0.7057233)% | - |*"Used RICH1 only" | 3332 | 2392 |( 71.78872 +- 0.7796273)% | - |*"Used RICH2 only" | 3332 | 240 |( 7.202881 +- 0.4478864)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1600 | 1598 |( 99.87500 +- 0.08833309)% | + |*"Track ID rate" | 3624 | 3330 |( 91.88742 +- 0.4535378)% | + |*"Used RICH1 and RICH2" | 3330 | 696 |( 20.90090 +- 0.7046057)% | + |*"Used RICH1 only" | 3330 | 2394 |( 71.89189 +- 0.7789932)% | + |*"Used RICH2 only" | 3330 | 240 |( 7.207207 +- 0.4481450)% | RichPIDMonUpstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | |*"K->K,Pr,D ID Efficiency" | 26 | 22 |( 84.61538 +- 7.075894)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 204 | 194 |( 95.09804 +- 1.511665)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 203 | 193 |( 95.07389 +- 1.518919)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 705 | 618 |( 87.65957 +- 1.238712)% | - |*"Used RICH1 and RICH2" | 618 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 618 | 618 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 618 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 704 | 617 |( 87.64205 +- 1.240347)% | + |*"Used RICH1 and RICH2" | 617 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 617 | 617 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 617 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | |*"K->K,Pr,D ID Efficiency" | 25 | 22 |( 88.00000 +- 6.499231)% | |*"Pi->El,Mu,Pi ID Efficiency" | 88 | 79 |( 89.77273 +- 3.230062)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 267 | 187 |( 70.03745 +- 2.803489)% | - |*"Used RICH1 and RICH2" | 187 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 187 | 187 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 187 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 266 | 186 |( 69.92481 +- 2.811765)% | + |*"Used RICH1 and RICH2" | 186 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 186 | 186 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 186 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream70to100 INFO Number of counters : 5 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | @@ -581,7 +581,7 @@ RichPIDMonUpstream2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | |*"K->K,Pr,D ID Efficiency" | 1 | 0 |( 0.000000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 116 | 115 |( 99.13793 +- 0.8583451)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 115 | 114 |( 99.13043 +- 0.8657762)% | |*"Track ID rate" | 428 | 428 |( 100.0000 +- 0.000000)% | |*"Used RICH1 and RICH2" | 428 | 0 |( 0.000000 +- 0.000000)% | |*"Used RICH1 only" | 428 | 428 |( 100.0000 +- 0.000000)% | @@ -612,54 +612,54 @@ ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2497 | 202854.2 | 81.239 | 0.45853 | 81.241 | 81.241 | | " Middle" | 2271 | 216429.8 | 95.302 | 0.62461 | 95.304 | 95.304 | - | " Outer" | 2922 | 318135 | 108.88 | 0.49639 | 108.88 | 108.88 | + | " Outer" | 2923 | 318243.8 | 108.88 | 0.49769 | 108.88 | 108.88 | | " Inner" | 2497 | 36899.3 | 14.777 | 0.087087 | 14.778 | 14.778 | | " Middle" | 2271 | 32782.23 | 14.435 | 0.0000 | 14.435 | 14.435 | - | " Outer" | 2922 | 42703.34 | 14.614 | 0.033670 | 14.614 | 14.614 | - | "Delta(Z)" | 7690 | 890306.9 | 115.77 | 11.332 | 79.082 | 173.00 | + | " Outer" | 2923 | 42717.96 | 14.614 | 0.033664 | 14.614 | 14.614 | + | "Delta(Z)" | 7691 | 890432.2 | 115.78 | 11.332 | 79.082 | 173.00 | | "Delta(Z) Inner" | 2497 | 282079.2 | 112.97 | 10.847 | 79.082 | 151.50 | - | "Delta(Z) Middle" | 2271 | 259771.8 | 114.39 | 10.362 | 82.952 | 153.95 | - | "Delta(Z) Outer" | 2922 | 348455 | 119.25 | 11.563 | 90.924 | 173.00 | + | "Delta(Z) Middle" | 2271 | 259771.7 | 114.39 | 10.362 | 82.952 | 153.95 | + | "Delta(Z) Outer" | 2923 | 348580.3 | 119.25 | 11.561 | 90.924 | 173.00 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 7690 | -2173.042 | -0.28258 | 11.979 | -23.059 | 22.930 | - | "Delta(Y)" | 7690 | -691.9568 | -0.089981 | 11.925 | -23.059 | 22.930 | + | "Delta(X)" | 7691 | -2153.698 | -0.28003 | 11.980 | -23.059 | 22.930 | + | "Delta(Y)" | 7691 | -707.6002 | -0.092004 | 11.926 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2497 | 2486.189 | 0.99567 | 0.019427 | 0.96514 | 1.1151 | | " Middle" | 2271 | 2286.141 | 1.0067 | 0.018798 | 0.97699 | 1.1113 | - | " Outer" | 2922 | 2923.594 | 1.0005 | 0.014456 | 0.97413 | 1.0473 | - | "Corrected energy" | 7690 |4.97293e+07 | 6466.7 | 7155.4 | 398.04 | 1.1680e+05 | - | "Delta(E)" | 7690 | 1573334 | 204.59 | 203.86 | -2370.9 | 3316.7 | - | "Pileup offset" | 7690 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 7690 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 7690 | 7690 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 2923 | 2924.591 | 1.0005 | 0.014456 | 0.97413 | 1.0473 | + | "Corrected energy" | 7691 |4.973368e+07 | 6466.5 | 7155.0 | 398.04 | 1.1680e+05 | + | "Delta(E)" | 7691 | 1573509 | 204.59 | 203.85 | -2370.9 | 3316.7 | + | "Pileup offset" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 7691 | 7691 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2705 | 219751 | 81.239 | 0.51949 | 81.241 | 81.241 | | " Middle" | 2369 | 225768.9 | 95.301 | 0.62857 | 95.304 | 95.304 | - | " Outer" | 4515 | 491572.8 | 108.88 | 0.97408 | 108.88 | 108.88 | + | " Outer" | 4514 | 491464 | 108.88 | 0.97374 | 108.88 | 108.88 | | " Inner" | 2705 | 39972.98 | 14.777 | 0.085987 | 14.778 | 14.778 | | " Middle" | 2369 | 34196.72 | 14.435 | 0.0000 | 14.435 | 14.435 | - | " Outer" | 4515 | 65982.42 | 14.614 | 0.071276 | 14.614 | 14.614 | - | "Delta(Z)" | 9589 | 1026932 | 107.09 | 11.382 | 76.478 | 159.46 | + | " Outer" | 4514 | 65967.8 | 14.614 | 0.071381 | 14.614 | 14.614 | + | "Delta(Z)" | 9588 | 1026808 | 107.09 | 11.381 | 76.478 | 159.46 | | "Delta(Z) Inner" | 2705 | 290146.4 | 107.26 | 11.677 | 76.478 | 149.83 | | "Delta(Z) Middle" | 2369 | 250650.5 | 105.80 | 10.443 | 79.570 | 147.36 | - | "Delta(Z) Outer" | 4515 | 486135.5 | 107.67 | 11.620 | 78.073 | 159.46 | + | "Delta(Z) Outer" | 4514 | 486010.8 | 107.67 | 11.618 | 78.073 | 159.46 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 9589 | 666.829 | 0.069541 | 12.580 | -23.059 | 22.930 | - | "Delta(Y)" | 9589 | 1574.903 | 0.16424 | 12.574 | -23.059 | 22.930 | + | "Delta(X)" | 9588 | 647.4838 | 0.067531 | 12.579 | -23.059 | 22.930 | + | "Delta(Y)" | 9588 | 1590.546 | 0.16589 | 12.574 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2705 | 2687.988 | 0.99371 | 0.019166 | 0.96447 | 1.1151 | | " Middle" | 2369 | 2379.26 | 1.0043 | 0.018461 | 0.97671 | 1.1078 | - | " Outer" | 4515 | 4498.049 | 0.99625 | 0.015263 | 0.97356 | 1.0515 | - | "Corrected energy" | 9589 |3.59235e+07 | 3746.3 | 5554.4 | 169.51 | 1.0401e+05 | - | "Delta(E)" | 9589 | -113455.5 | -11.832 | 136.02 | -2685.6 | 3043.0 | - | "Pileup offset" | 9589 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 9589 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 9589 | 9589 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 4514 | 4497.053 | 0.99625 | 0.015268 | 0.97356 | 1.0515 | + | "Corrected energy" | 9588 |3.59193e+07 | 3746.3 | 5554.7 | 169.51 | 1.0401e+05 | + | "Delta(E)" | 9588 | -113441.7 | -11.832 | 136.02 | -2685.6 | 3043.0 | + | "Pileup offset" | 9588 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 9588 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 9588 | 9588 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 138 | 11211.28 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -755,79 +755,79 @@ VeloTrackChecker.LoKi::Hybrid::M... SUCCESS Number of counters : 1 | "# loaded from PYTHON" | 12 | 12 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5275 | 33884 | 6.4235 | - | "#tracks with hits added" | 5275 | + | "#UT hits added" | 5272 | 33836 | 6.4181 | + | "#tracks with hits added" | 5272 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5280 | 33835 | 6.4081 | - | "#tracks with hits added" | 5280 | + | "#UT hits added" | 5281 | 33814 | 6.4030 | + | "#tracks with hits added" | 5281 | RiCKMCResDownstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResDownstream10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 45638 |-0.00038837 | 0.0021599 | -0.20852 | -0.70765 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 23166 | 8.7682e-05 | 0.002136 | -0.19232 | -0.47735 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 39812 |-0.00049823 | 0.0023577 | -0.091327 | -1.0191 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 20801 | 6.8954e-05 | 0.0022762 | -0.15455 | -0.74494 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 5826 |-2.1526e-05 | 0.0012274 | -0.3804 | 0.87294 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2365 | 0.00018484 | 0.0011584 | -0.65834 | 2.8043 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 39812 | 3.0909 | 1.8066 | 0.041232 | -1.1785 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 5826 | 3.1652 | 1.8069 | -0.016737 | -1.18 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 39812 | 0.046258 | 0.0064718 | -0.73393 | -0.43615 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 5826 | 0.051547 | 0.0013585 | -0.34502 | 1.0793 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 12846 | 1.9585e-05 | 0.0012169 | -0.016566 | -0.7504 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 14256 | 9.6494e-05 | 0.0012599 | -0.053068 | -0.87625 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 10495 | 2.5339e-05 | 0.0013633 | -0.023489 | -1.1285 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12027 | 6.6204e-05 | 0.001352 | -0.023131 | -1.1088 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2351 | 3.7913e-06 | 0.00066623 | -0.052278 | 0.71195 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2229 | 0.00021131 | 0.00081184 | 0.20368 | 0.49465 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 10495 | 3.0706 | 1.8048 | 0.077096 | -1.1806 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2351 | 3.1608 | 1.7856 | 0.00080982 | -1.2004 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 10495 | 0.027058 | 0.0042078 | -1.6611 | 2.8091 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2351 | 0.028755 | 0.001305 | -1.4065 | 10.443 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 45641 |-0.00038411 | 0.002159 | -0.21001 | -0.70363 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 23275 | 9.0588e-05 | 0.0021337 | -0.19289 | -0.47333 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 39813 |-0.00049566 | 0.0023579 | -0.091209 | -1.0182 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 20867 | 7.1633e-05 | 0.0022763 | -0.15472 | -0.74545 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 5828 |-1.1675e-05 | 0.0012165 | -0.36868 | 0.87893 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2408 | 0.00018734 | 0.0011546 | -0.65435 | 2.7964 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 39813 | 3.0923 | 1.8071 | 0.039788 | -1.1795 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 5828 | 3.1604 | 1.8057 | -0.011077 | -1.1791 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 39813 | 0.046256 | 0.0064764 | -0.7344 | -0.43734 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 5828 | 0.051547 | 0.0013512 | -0.33755 | 1.101 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 12862 | 2.0097e-05 | 0.0012167 | -0.016589 | -0.74957 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 14272 | 9.686e-05 | 0.0012595 | -0.053042 | -0.87539 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 10498 | 2.5546e-05 | 0.0013635 | -0.023156 | -1.1286 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12030 | 6.6372e-05 | 0.0013521 | -0.02285 | -1.1089 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2364 | 5.2164e-06 | 0.000667 | -0.048082 | 0.69672 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2242 | 0.00021174 | 0.00081151 | 0.20358 | 0.48484 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 10498 | 3.0713 | 1.805 | 0.076572 | -1.181 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2364 | 3.1593 | 1.7883 | 0.00044544 | -1.2047 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 10498 | 0.027059 | 0.0042075 | -1.6614 | 2.8103 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2364 | 0.02875 | 0.0013051 | -1.3934 | 10.352 | RiCKMCResLong10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResLong10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 245432 |-0.00026447 | 0.0020155 | -0.26691 | -0.42626 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 185296 |-8.3605e-05 | 0.001974 | -0.26952 | -0.2723 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 216341 |-0.00035145 | 0.0022443 | -0.15127 | -0.88488 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 156784 |-6.7506e-05 | 0.0021738 | -0.23255 | -0.7061 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 29091 | 2.8317e-05 | 0.00081871 | 0.048767 | 0.66679 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 28512 |-0.00013707 | 0.0010681 | -1.3131 | 3.904 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 216341 | 3.1496 | 1.8162 | -0.01103 | -1.1893 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 29091 | 3.1256 | 1.8182 | 0.0067815 | -1.1887 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 216341 | 0.046592 | 0.0064713 | -0.87954 | -0.30296 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 29091 | 0.051179 | 0.0010031 | 0.13084 | 0.26183 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 137943 | 9.6959e-06 | 0.0011657 | 0.022061 | -0.61522 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 137589 | 1.9721e-05 | 0.0011928 | 0.025042 | -0.70396 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 114447 | 1.4811e-05 | 0.001319 | 0.013047 | -1.0483 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 113024 | 3.5077e-05 | 0.0013201 | 0.0075149 | -1.0563 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 23496 |-3.4232e-06 | 0.00061819 | -0.023753 | 0.74207 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 24565 |-2.4763e-05 | 0.00070262 | -0.14709 | 1.0563 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 114447 | 3.1437 | 1.7939 | -0.0029374 | -1.1753 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 23496 | 3.1317 | 1.8046 | 0.013291 | -1.2108 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 114447 | 0.02653 | 0.004702 | -1.5129 | 1.7847 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 23496 | 0.028514 | 0.0011466 | -0.54888 | 0.86892 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 245120 |-0.00026313 | 0.0020138 | -0.26733 | -0.423 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 185503 |-8.4392e-05 | 0.001974 | -0.26954 | -0.27271 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 216031 |-0.00034966 | 0.0022423 | -0.15215 | -0.88199 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 157013 |-6.8374e-05 | 0.0021734 | -0.2325 | -0.7056 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 29089 | 2.8319e-05 | 0.00081844 | 0.050262 | 0.68488 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 28490 |-0.00013773 | 0.0010677 | -1.317 | 3.9064 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 216031 | 3.1487 | 1.816 | -0.010203 | -1.1888 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 29089 | 3.1266 | 1.8184 | 0.0059304 | -1.1885 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 216031 | 0.046607 | 0.0064657 | -0.88335 | -0.29551 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 29089 | 0.05118 | 0.0010036 | 0.13243 | 0.26907 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 137864 | 9.8825e-06 | 0.0011659 | 0.021975 | -0.61573 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 137571 | 2.0075e-05 | 0.0011929 | 0.024638 | -0.70422 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 114423 | 1.5037e-05 | 0.0013188 | 0.012902 | -1.0478 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 113046 | 3.5361e-05 | 0.0013198 | 0.0072538 | -1.0557 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 23441 |-3.3704e-06 | 0.00061833 | -0.023885 | 0.74148 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 24525 |-2.4296e-05 | 0.0007033 | -0.14697 | 1.0586 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 114423 | 3.1438 | 1.7933 | -0.0032109 | -1.1742 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 23441 | 3.1324 | 1.8034 | 0.0124 | -1.2093 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 114423 | 0.02653 | 0.0047013 | -1.5131 | 1.7859 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 23441 | 0.028514 | 0.0011474 | -0.54945 | 0.8665 | RiCKMCResUpstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResUpstream10to70" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 36445 |-0.00051667 | 0.0021477 | -0.17554 | -0.72807 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 48622 |-0.00055081 | 0.0021868 | -0.14267 | -0.80093 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 33505 |-0.00058545 | 0.0023212 | -0.0847 | -1.0223 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 45334 |-0.00057169 | 0.0023126 | -0.097973 | -0.99939 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2940 |-0.00019849 | 0.00094966 | -0.73767 | 2.5698 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3288 |-0.00042728 | 0.0011904 | -1.0055 | 1.6454 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 33505 | 3.1707 | 1.8114 | -0.036433 | -1.2233 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 36193 | -0.0005176 | 0.0021474 | -0.17317 | -0.72749 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 48371 |-0.00055153 | 0.0021866 | -0.14072 | -0.80062 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 33253 |-0.00058717 | 0.0023223 | -0.08149 | -1.0236 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 45083 |-0.00057265 | 0.0023131 | -0.095656 | -1.0002 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2940 |-0.00019855 | 0.0009498 | -0.73756 | 2.5777 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3288 |-0.00042739 | 0.0011904 | -1.0058 | 1.6465 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 33253 | 3.167 | 1.811 | -0.032167 | -1.2228 | | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 2940 | 3.1151 | 1.8224 | 0.015957 | -1.2327 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 33505 | 0.044353 | 0.006769 | -0.34759 | -1.0284 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 2940 | 0.05072 | 0.0019033 | -4.5058 | 31.887 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 33253 | 0.044345 | 0.0067758 | -0.34751 | -1.0298 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 2940 | 0.05072 | 0.0019033 | -4.5058 | 31.886 | RiCKMCResDownstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResDownstream10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 5826 | 9110.4 | 8044 | 0 | -3 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2351 | 17651 | 10775 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 5828 | 9178.5 | 8027.4 | 0 | -3 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2364 | 17619 | 10754 | 0 | -3 | RiCKMCResLong10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResLong10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 29091 | 17803 | 12773 | 33.333 | 144.52 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 23496 | 22863 | 14425 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 29089 | 17820 | 12780 | 33.184 | 143.81 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 23441 | 22893 | 14433 | 0 | -3 | RiCKMCResUpstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResUpstream10to70" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 2940 | 20885 | 12357 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 2940 | 20887 | 12356 | 0 | -3 | RiCKMCResDownstream10to70 SUCCESS Booked 22 Histogram(s) : 1D=20 1DProf=2 RichPIDMonDownstream2to100 SUCCESS Booked 4 Histogram(s) : 1D=3 2D=1 RichPIDMonDownstream10to70 SUCCESS Booked 4 Histogram(s) : 1D=3 2D=1 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt index 013af01c271..c2e4d9b3583 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_mcchecking.ref.x86_64+avx2+fma-opt @@ -1,46 +1,46 @@ VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 21095 tracks including 208 ghosts [ 0.99 %], Event average 0.84 % **** -VeloTrackChecker INFO 01_velo : 9019 from 9205 [ 97.98 %] 146 clones [ 1.59 %], purity: 99.72 %, hitEff: 96.70 %, hitEffFirst3: 96.91 %, hitEffLast: 96.27 % -VeloTrackChecker INFO 02_long : 5193 from 5237 [ 99.16 %] 64 clones [ 1.22 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.76 %, hitEffLast: 97.20 % -VeloTrackChecker INFO 03_long_P>5GeV : 3319 from 3332 [ 99.61 %] 21 clones [ 0.63 %], purity: 99.86 %, hitEff: 98.33 %, hitEffFirst3: 98.44 %, hitEffLast: 98.15 % -VeloTrackChecker INFO 04_long_strange : 242 from 249 [ 97.19 %] 3 clones [ 1.22 %], purity: 99.43 %, hitEff: 97.35 %, hitEffFirst3: 97.96 %, hitEffLast: 94.88 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.38 %, hitEffFirst3: 99.19 %, hitEffLast: 95.61 % +VeloTrackChecker INFO **** Velo 20926 tracks including 175 ghosts [ 0.84 %], Event average 0.71 % **** +VeloTrackChecker INFO 01_velo : 9007 from 9205 [ 97.85 %] 149 clones [ 1.63 %], purity: 99.72 %, hitEff: 96.48 %, hitEffFirst3: 96.91 %, hitEffLast: 95.83 % +VeloTrackChecker INFO 02_long : 5187 from 5237 [ 99.05 %] 63 clones [ 1.20 %], purity: 99.82 %, hitEff: 97.32 %, hitEffFirst3: 97.80 %, hitEffLast: 96.81 % +VeloTrackChecker INFO 03_long_P>5GeV : 3318 from 3332 [ 99.58 %] 20 clones [ 0.60 %], purity: 99.86 %, hitEff: 98.12 %, hitEffFirst3: 98.46 %, hitEffLast: 97.77 % +VeloTrackChecker INFO 04_long_strange : 239 from 249 [ 95.98 %] 3 clones [ 1.24 %], purity: 99.42 %, hitEff: 97.38 %, hitEffFirst3: 98.35 %, hitEffLast: 94.80 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.34 %, hitEffFirst3: 99.46 %, hitEffLast: 95.22 % VeloTrackChecker INFO 06_long_fromB : 7 from 7 [100.00 %] 1 clones [12.50 %], purity:100.00 %, hitEff: 83.93 %, hitEffFirst3: 87.50 %, hitEffLast: 81.25 % VeloTrackChecker INFO 07_long_fromB_P>5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % -VeloTrackChecker INFO 08_long_electrons : 360 from 373 [ 96.51 %] 11 clones [ 2.96 %], purity: 97.56 %, hitEff: 94.10 %, hitEffFirst3: 92.00 %, hitEffLast: 94.28 % +VeloTrackChecker INFO 08_long_electrons : 359 from 373 [ 96.25 %] 10 clones [ 2.71 %], purity: 97.62 %, hitEff: 94.53 %, hitEffFirst3: 92.95 %, hitEffLast: 94.46 % VeloTrackChecker INFO 09_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % VeloTrackChecker INFO VeloFullTrackChecker INFO Results -VeloFullTrackChecker INFO **** VeloFull 21095 tracks including 208 ghosts [ 0.99 %], Event average 0.84 % **** -VeloFullTrackChecker INFO 01_notElectron_Velo : 9019 from 9205 [ 97.98 %] 146 clones [ 1.59 %], purity: 99.72 %, hitEff: 96.70 %, hitEffFirst3: 96.91 %, hitEffLast: 96.27 % -VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9019 from 9205 [ 97.98 %] 146 clones [ 1.59 %], purity: 99.72 %, hitEff: 96.70 %, hitEffFirst3: 96.91 %, hitEffLast: 96.27 % -VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9019 from 9205 [ 97.98 %] 146 clones [ 1.59 %], purity: 99.72 %, hitEff: 96.70 %, hitEffFirst3: 96.91 %, hitEffLast: 96.27 % -VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5193 from 5237 [ 99.16 %] 64 clones [ 1.22 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.76 %, hitEffLast: 97.20 % -VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3319 from 3332 [ 99.61 %] 21 clones [ 0.63 %], purity: 99.86 %, hitEff: 98.33 %, hitEffFirst3: 98.44 %, hitEffLast: 98.15 % -VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5193 from 5237 [ 99.16 %] 64 clones [ 1.22 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.76 %, hitEffLast: 97.20 % -VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5193 from 5237 [ 99.16 %] 64 clones [ 1.22 %], purity: 99.82 %, hitEff: 97.52 %, hitEffFirst3: 97.76 %, hitEffLast: 97.20 % +VeloFullTrackChecker INFO **** VeloFull 20926 tracks including 175 ghosts [ 0.84 %], Event average 0.71 % **** +VeloFullTrackChecker INFO 01_notElectron_Velo : 9007 from 9205 [ 97.85 %] 149 clones [ 1.63 %], purity: 99.72 %, hitEff: 96.48 %, hitEffFirst3: 96.91 %, hitEffLast: 95.83 % +VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9007 from 9205 [ 97.85 %] 149 clones [ 1.63 %], purity: 99.72 %, hitEff: 96.48 %, hitEffFirst3: 96.91 %, hitEffLast: 95.83 % +VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9007 from 9205 [ 97.85 %] 149 clones [ 1.63 %], purity: 99.72 %, hitEff: 96.48 %, hitEffFirst3: 96.91 %, hitEffLast: 95.83 % +VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5187 from 5237 [ 99.05 %] 63 clones [ 1.20 %], purity: 99.82 %, hitEff: 97.32 %, hitEffFirst3: 97.80 %, hitEffLast: 96.81 % +VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3318 from 3332 [ 99.58 %] 20 clones [ 0.60 %], purity: 99.86 %, hitEff: 98.12 %, hitEffFirst3: 98.46 %, hitEffLast: 97.77 % +VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5187 from 5237 [ 99.05 %] 63 clones [ 1.20 %], purity: 99.82 %, hitEff: 97.32 %, hitEffFirst3: 97.80 %, hitEffLast: 96.81 % +VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5187 from 5237 [ 99.05 %] 63 clones [ 1.20 %], purity: 99.82 %, hitEff: 97.32 %, hitEffFirst3: 97.80 %, hitEffLast: 96.81 % VeloFullTrackChecker INFO 09_notElectron_Long_FromB_Eta25 : 7 from 7 [100.00 %] 1 clones [12.50 %], purity:100.00 %, hitEff: 83.93 %, hitEffFirst3: 87.50 %, hitEffLast: 81.25 % VeloFullTrackChecker INFO 10_notElectron_Long_FromB_Eta25 p>5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % VeloFullTrackChecker INFO 11_notElectron_Long_FromB_Eta25 p<5GeV : 2 from 2 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 85.71 %, hitEffFirst3:100.00 %, hitEffLast: 75.00 % VeloFullTrackChecker INFO 12_notElectron_Long_FromB_Eta25 p>3GeV pt>400MeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity:100.00 %, hitEff: 83.33 %, hitEffFirst3: 83.33 %, hitEffLast: 83.33 % -VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 65 from 66 [ 98.48 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.18 %, hitEffFirst3: 96.92 %, hitEffLast: 97.90 % -VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 37 from 37 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.24 %, hitEffFirst3: 97.30 %, hitEffLast: 99.46 % -VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 28 from 29 [ 96.55 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.77 %, hitEffFirst3: 96.43 %, hitEffLast: 95.77 % +VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 64 from 66 [ 96.97 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.41 %, hitEffFirst3: 97.40 %, hitEffLast: 98.11 % +VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 37 from 37 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.86 %, hitEffFirst3: 97.30 %, hitEffLast: 98.78 % +VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 27 from 29 [ 93.10 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 96.81 %, hitEffFirst3: 97.53 %, hitEffLast: 97.14 % VeloFullTrackChecker INFO 16_notElectron_Long_FromD_Eta25 p>3GeV pt>400MeV : 35 from 36 [ 97.22 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.71 %, hitEffFirst3: 98.10 %, hitEffLast: 99.43 % -VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 242 from 249 [ 97.19 %] 3 clones [ 1.22 %], purity: 99.43 %, hitEff: 97.35 %, hitEffFirst3: 97.96 %, hitEffLast: 94.88 % -VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.38 %, hitEffFirst3: 99.19 %, hitEffLast: 95.61 % -VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 118 from 123 [ 95.93 %] 3 clones [ 2.48 %], purity: 99.43 %, hitEff: 96.30 %, hitEffFirst3: 96.69 %, hitEffLast: 94.12 % -VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 76 from 78 [ 97.44 %] 1 clones [ 1.30 %], purity: 98.61 %, hitEff: 97.07 %, hitEffFirst3: 96.54 %, hitEffLast: 96.81 % -VeloFullTrackChecker INFO 21_Electron_Velo : 1355 from 1923 [ 70.46 %] 103 clones [ 7.06 %], purity: 97.87 %, hitEff: 83.29 %, hitEffFirst3: 79.90 %, hitEffLast: 84.24 % -VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1355 from 1923 [ 70.46 %] 103 clones [ 7.06 %], purity: 97.87 %, hitEff: 83.29 %, hitEffFirst3: 79.90 %, hitEffLast: 84.24 % -VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1355 from 1923 [ 70.46 %] 103 clones [ 7.06 %], purity: 97.87 %, hitEff: 83.29 %, hitEffFirst3: 79.90 %, hitEffLast: 84.24 % -VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 360 from 373 [ 96.51 %] 11 clones [ 2.96 %], purity: 97.56 %, hitEff: 94.10 %, hitEffFirst3: 92.00 %, hitEffLast: 94.28 % -VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 180 from 185 [ 97.30 %] 4 clones [ 2.17 %], purity: 97.42 %, hitEff: 95.65 %, hitEffFirst3: 95.47 %, hitEffLast: 94.00 % -VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 180 from 188 [ 95.74 %] 7 clones [ 3.74 %], purity: 97.69 %, hitEff: 92.58 %, hitEffFirst3: 88.59 %, hitEffLast: 94.56 % -VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 71 from 71 [100.00 %] 2 clones [ 2.74 %], purity: 98.58 %, hitEff: 94.94 %, hitEffFirst3: 94.52 %, hitEffLast: 95.05 % +VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 239 from 249 [ 95.98 %] 3 clones [ 1.24 %], purity: 99.42 %, hitEff: 97.38 %, hitEffFirst3: 98.35 %, hitEffLast: 94.80 % +VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 124 from 126 [ 98.41 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 98.34 %, hitEffFirst3: 99.46 %, hitEffLast: 95.22 % +VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 115 from 123 [ 93.50 %] 3 clones [ 2.54 %], purity: 99.41 %, hitEff: 96.38 %, hitEffFirst3: 97.18 %, hitEffLast: 94.36 % +VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 76 from 78 [ 97.44 %] 1 clones [ 1.30 %], purity: 98.61 %, hitEff: 97.26 %, hitEffFirst3: 97.40 %, hitEffLast: 96.47 % +VeloFullTrackChecker INFO 21_Electron_Velo : 1346 from 1923 [ 69.99 %] 105 clones [ 7.24 %], purity: 97.88 %, hitEff: 83.43 %, hitEffFirst3: 80.52 %, hitEffLast: 83.98 % +VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1346 from 1923 [ 69.99 %] 105 clones [ 7.24 %], purity: 97.88 %, hitEff: 83.43 %, hitEffFirst3: 80.52 %, hitEffLast: 83.98 % +VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1346 from 1923 [ 69.99 %] 105 clones [ 7.24 %], purity: 97.88 %, hitEff: 83.43 %, hitEffFirst3: 80.52 %, hitEffLast: 83.98 % +VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 359 from 373 [ 96.25 %] 10 clones [ 2.71 %], purity: 97.62 %, hitEff: 94.53 %, hitEffFirst3: 92.95 %, hitEffLast: 94.46 % +VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 180 from 185 [ 97.30 %] 3 clones [ 1.64 %], purity: 97.69 %, hitEff: 95.90 %, hitEffFirst3: 95.63 %, hitEffLast: 94.26 % +VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 179 from 188 [ 95.21 %] 7 clones [ 3.76 %], purity: 97.55 %, hitEff: 93.18 %, hitEffFirst3: 90.32 %, hitEffLast: 94.67 % +VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 71 from 71 [100.00 %] 2 clones [ 2.74 %], purity: 98.81 %, hitEff: 95.56 %, hitEffFirst3: 94.98 %, hitEffLast: 95.40 % VeloFullTrackChecker INFO 29_Electron_Long_FromB_Eta25 : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 30_Electron_Long_FromB_Eta25 p>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 32_Electron_Long_FromB_Eta25 p>3GeV pt>400MeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % @@ -50,25 +50,25 @@ VeloFullTrackChecker INFO 35_Electron_Long_FromD_Eta25 p<5Ge VeloFullTrackChecker INFO 36_Electron_Long_FromD_Eta25 p>3GeV pt>400MeV : 2 from 2 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 78.33 %, hitEffFirst3: 66.67 %, hitEffLast: 92.86 % VeloFullTrackChecker INFO MatchTrackChecker INFO Results -MatchTrackChecker INFO **** Match 6025 tracks including 1036 ghosts [17.20 %], Event average 13.45 % **** -MatchTrackChecker INFO 01_long : 4372 from 5237 [ 83.48 %] 26 clones [ 0.59 %], purity: 99.41 %, hitEff: 95.40 % -MatchTrackChecker INFO 02_long_P>5GeV : 2976 from 3332 [ 89.32 %] 10 clones [ 0.33 %], purity: 99.57 %, hitEff: 97.24 % -MatchTrackChecker INFO 03_long_strange : 183 from 249 [ 73.49 %] 1 clones [ 0.54 %], purity: 99.06 %, hitEff: 94.91 % +MatchTrackChecker INFO **** Match 6015 tracks including 1034 ghosts [17.19 %], Event average 13.47 % **** +MatchTrackChecker INFO 01_long : 4367 from 5237 [ 83.39 %] 26 clones [ 0.59 %], purity: 99.41 %, hitEff: 95.41 % +MatchTrackChecker INFO 02_long_P>5GeV : 2974 from 3332 [ 89.26 %] 9 clones [ 0.30 %], purity: 99.57 %, hitEff: 97.24 % +MatchTrackChecker INFO 03_long_strange : 181 from 249 [ 72.69 %] 1 clones [ 0.55 %], purity: 99.08 %, hitEff: 94.89 % MatchTrackChecker INFO 04_long_strange_P>5GeV : 106 from 126 [ 84.13 %] 0 clones [ 0.00 %], purity: 99.16 %, hitEff: 97.16 % MatchTrackChecker INFO 05_long_fromB : 5 from 7 [ 71.43 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.46 % MatchTrackChecker INFO 06_long_fromB_P>5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % -MatchTrackChecker INFO 07_long_electrons : 214 from 373 [ 57.37 %] 5 clones [ 2.28 %], purity: 96.95 %, hitEff: 93.68 % +MatchTrackChecker INFO 07_long_electrons : 213 from 373 [ 57.10 %] 4 clones [ 1.84 %], purity: 96.85 %, hitEff: 93.73 % MatchTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % MatchTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % MatchTrackChecker INFO MatchUTHitsChecker INFO Results -MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#7/OutputTracksName **** 1036 ghost, 2.16 UT per track -MatchUTHitsChecker INFO 01_long : 4398 tr 3.85 from 4.04 mcUT [ 95.2 %] 0.09 ghost hits on real tracks [ 2.3 %] -MatchUTHitsChecker INFO 01_long >3UT : 4351 tr 3.89 from 4.07 mcUT [ 95.6 %] 0.09 ghost hits on real tracks [ 2.2 %] -MatchUTHitsChecker INFO 02_long_P>5GeV : 2986 tr 3.86 from 4.02 mcUT [ 96.0 %] 0.06 ghost hits on real tracks [ 1.4 %] -MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 2940 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.05 ghost hits on real tracks [ 1.3 %] +MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#7/OutputTracksName **** 1034 ghost, 2.15 UT per track +MatchUTHitsChecker INFO 01_long : 4393 tr 3.85 from 4.04 mcUT [ 95.2 %] 0.09 ghost hits on real tracks [ 2.3 %] +MatchUTHitsChecker INFO 01_long >3UT : 4346 tr 3.89 from 4.07 mcUT [ 95.6 %] 0.09 ghost hits on real tracks [ 2.2 %] +MatchUTHitsChecker INFO 02_long_P>5GeV : 2983 tr 3.86 from 4.02 mcUT [ 96.1 %] 0.06 ghost hits on real tracks [ 1.4 %] +MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 2937 tr 3.92 from 4.06 mcUT [ 96.7 %] 0.05 ghost hits on real tracks [ 1.3 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] @@ -97,57 +97,57 @@ DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV : DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV >3UT : 231 tr 4.03 from 4.06 mcUT [ 99.4 %] 0.03 ghost hits on real tracks [ 0.6 %] DownstreamUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 3449 tracks including 202 ghosts [ 5.86 %], Event average 4.33 % **** -UpstreamTrackChecker INFO 01_velo : 3075 from 9205 [ 33.41 %] 13 clones [ 0.42 %], purity: 99.67 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 02_velo+UT : 3069 from 8003 [ 38.35 %] 13 clones [ 0.42 %], purity: 99.68 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2372 from 4017 [ 59.05 %] 12 clones [ 0.50 %], purity: 99.76 %, hitEff: 99.44 % -UpstreamTrackChecker INFO 04_velo+notLong : 556 from 3968 [ 14.01 %] 5 clones [ 0.89 %], purity: 99.51 %, hitEff: 97.99 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 551 from 2843 [ 19.38 %] 5 clones [ 0.90 %], purity: 99.59 %, hitEff: 97.97 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 350 from 756 [ 46.30 %] 4 clones [ 1.13 %], purity: 99.71 %, hitEff: 99.40 % -UpstreamTrackChecker INFO 07_long : 2519 from 5237 [ 48.10 %] 8 clones [ 0.32 %], purity: 99.70 %, hitEff: 98.85 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 2022 from 3332 [ 60.68 %] 8 clones [ 0.39 %], purity: 99.76 %, hitEff: 99.44 % +UpstreamTrackChecker INFO **** Upstream 3447 tracks including 201 ghosts [ 5.83 %], Event average 4.28 % **** +UpstreamTrackChecker INFO 01_velo : 3073 from 9205 [ 33.38 %] 13 clones [ 0.42 %], purity: 99.67 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 02_velo+UT : 3067 from 8003 [ 38.32 %] 13 clones [ 0.42 %], purity: 99.68 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2373 from 4017 [ 59.07 %] 11 clones [ 0.46 %], purity: 99.76 %, hitEff: 99.44 % +UpstreamTrackChecker INFO 04_velo+notLong : 555 from 3968 [ 13.99 %] 5 clones [ 0.89 %], purity: 99.52 %, hitEff: 98.03 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 550 from 2843 [ 19.35 %] 5 clones [ 0.90 %], purity: 99.60 %, hitEff: 98.02 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 351 from 756 [ 46.43 %] 4 clones [ 1.13 %], purity: 99.73 %, hitEff: 99.40 % +UpstreamTrackChecker INFO 07_long : 2518 from 5237 [ 48.08 %] 8 clones [ 0.32 %], purity: 99.70 %, hitEff: 98.85 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 2022 from 3332 [ 60.68 %] 7 clones [ 0.34 %], purity: 99.76 %, hitEff: 99.44 % UpstreamTrackChecker INFO 09_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 39 from 373 [ 10.46 %] 0 clones [ 0.00 %], purity: 98.85 %, hitEff: 96.67 % +UpstreamTrackChecker INFO 11_long_electrons : 40 from 373 [ 10.72 %] 1 clones [ 2.44 %], purity: 98.47 %, hitEff: 96.83 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 15_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 6052 tracks including 1186 ghosts [19.60 %], Event average 15.40 % **** -ForwardTrackChecker INFO 01_long : 4243 from 5237 [ 81.02 %] 26 clones [ 0.61 %], purity: 99.12 %, hitEff: 94.76 % -ForwardTrackChecker INFO 02_long_P>5GeV : 2974 from 3332 [ 89.26 %] 12 clones [ 0.40 %], purity: 99.32 %, hitEff: 96.44 % -ForwardTrackChecker INFO 03_long_strange : 175 from 249 [ 70.28 %] 0 clones [ 0.00 %], purity: 98.72 %, hitEff: 94.60 % -ForwardTrackChecker INFO 04_long_strange_P>5GeV : 107 from 126 [ 84.92 %] 0 clones [ 0.00 %], purity: 98.92 %, hitEff: 96.78 % +ForwardTrackChecker INFO **** Forward 6044 tracks including 1189 ghosts [19.67 %], Event average 15.44 % **** +ForwardTrackChecker INFO 01_long : 4237 from 5237 [ 80.91 %] 26 clones [ 0.61 %], purity: 99.12 %, hitEff: 94.76 % +ForwardTrackChecker INFO 02_long_P>5GeV : 2973 from 3332 [ 89.23 %] 11 clones [ 0.37 %], purity: 99.32 %, hitEff: 96.44 % +ForwardTrackChecker INFO 03_long_strange : 173 from 249 [ 69.48 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 94.58 % +ForwardTrackChecker INFO 04_long_strange_P>5GeV : 107 from 126 [ 84.92 %] 0 clones [ 0.00 %], purity: 98.93 %, hitEff: 96.78 % ForwardTrackChecker INFO 05_long_fromB : 5 from 7 [ 71.43 %] 0 clones [ 0.00 %], purity: 98.10 %, hitEff: 93.46 % ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % -ForwardTrackChecker INFO 07_long_electrons : 238 from 373 [ 63.81 %] 5 clones [ 2.06 %], purity: 95.95 %, hitEff: 92.22 % +ForwardTrackChecker INFO 07_long_electrons : 237 from 373 [ 63.54 %] 4 clones [ 1.66 %], purity: 96.04 %, hitEff: 92.30 % ForwardTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % ForwardTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 from 5 [ 80.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.08 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#4/OutputTracksName **** 1186 ghost, 2.22 UT per track -ForwardUTHitsChecker INFO 01_long : 4269 tr 3.85 from 4.04 mcUT [ 95.5 %] 0.08 ghost hits on real tracks [ 2.1 %] -ForwardUTHitsChecker INFO 01_long >3UT : 4216 tr 3.90 from 4.07 mcUT [ 95.9 %] 0.08 ghost hits on real tracks [ 2.1 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV : 2986 tr 3.85 from 4.01 mcUT [ 95.9 %] 0.05 ghost hits on real tracks [ 1.3 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 2934 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.05 ghost hits on real tracks [ 1.3 %] +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#4/OutputTracksName **** 1189 ghost, 2.22 UT per track +ForwardUTHitsChecker INFO 01_long : 4263 tr 3.85 from 4.04 mcUT [ 95.5 %] 0.08 ghost hits on real tracks [ 2.1 %] +ForwardUTHitsChecker INFO 01_long >3UT : 4210 tr 3.90 from 4.07 mcUT [ 95.9 %] 0.08 ghost hits on real tracks [ 2.1 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV : 2984 tr 3.85 from 4.01 mcUT [ 95.9 %] 0.05 ghost hits on real tracks [ 1.3 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 2932 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 4 tr 4.25 from 4.25 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO ForwardHlt1TrackChecker INFO Results -ForwardHlt1TrackChecker INFO **** ForwardHlt1 2129 tracks including 49 ghosts [ 2.30 %], Event average 1.51 % **** -ForwardHlt1TrackChecker INFO 01_long : 1959 from 5237 [ 37.41 %] 8 clones [ 0.41 %], purity: 98.83 %, hitEff: 92.67 % -ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 1669 from 3332 [ 50.09 %] 8 clones [ 0.48 %], purity: 99.00 %, hitEff: 93.23 % +ForwardHlt1TrackChecker INFO **** ForwardHlt1 2133 tracks including 50 ghosts [ 2.34 %], Event average 1.49 % **** +ForwardHlt1TrackChecker INFO 01_long : 1960 from 5237 [ 37.43 %] 8 clones [ 0.41 %], purity: 98.83 %, hitEff: 92.69 % +ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 1669 from 3332 [ 50.09 %] 7 clones [ 0.42 %], purity: 99.00 %, hitEff: 93.23 % ForwardHlt1TrackChecker INFO 03_long_strange : 50 from 249 [ 20.08 %] 0 clones [ 0.00 %], purity: 98.81 %, hitEff: 91.43 % ForwardHlt1TrackChecker INFO 04_long_strange_P>5GeV : 41 from 126 [ 32.54 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 92.94 % ForwardHlt1TrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 97.33 % ForwardHlt1TrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 96.79 % -ForwardHlt1TrackChecker INFO 07_long_electrons : 23 from 373 [ 6.17 %] 0 clones [ 0.00 %], purity: 98.14 %, hitEff: 90.00 % +ForwardHlt1TrackChecker INFO 07_long_electrons : 24 from 373 [ 6.43 %] 1 clones [ 4.00 %], purity: 97.94 %, hitEff: 90.80 % ForwardHlt1TrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % ForwardHlt1TrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % ForwardHlt1TrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 96.79 % @@ -166,52 +166,52 @@ SeedTrackChecker INFO 08_noVelo+UT+T_strange : SeedTrackChecker INFO 09_noVelo+UT+T_strange_P>5GeV : 175 from 182 [ 96.15 %] 0 clones [ 0.00 %], purity: 99.64 %, hitEff: 97.00 % SeedTrackChecker INFO BestTrackChecker INFO Results -BestTrackChecker INFO **** Best 25267 tracks including 1617 ghosts [ 6.40 %], Event average 5.23 % **** -BestTrackChecker INFO 01_long : 5195 from 5237 [ 99.20 %] 349 clones [ 6.30 %], purity: 99.36 %, hitEff: 86.51 % -BestTrackChecker INFO 02_long_P>5GeV : 3313 from 3332 [ 99.43 %] 178 clones [ 5.10 %], purity: 99.45 %, hitEff: 91.00 % -BestTrackChecker INFO 03_long_strange : 245 from 249 [ 98.39 %] 29 clones [10.58 %], purity: 99.37 %, hitEff: 78.39 % -BestTrackChecker INFO 04_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 14 clones [10.14 %], purity: 99.45 %, hitEff: 85.28 % +BestTrackChecker INFO **** Best 25096 tracks including 1587 ghosts [ 6.32 %], Event average 5.16 % **** +BestTrackChecker INFO 01_long : 5193 from 5237 [ 99.16 %] 349 clones [ 6.30 %], purity: 99.36 %, hitEff: 86.44 % +BestTrackChecker INFO 02_long_P>5GeV : 3313 from 3332 [ 99.43 %] 179 clones [ 5.13 %], purity: 99.45 %, hitEff: 90.90 % +BestTrackChecker INFO 03_long_strange : 244 from 249 [ 97.99 %] 29 clones [10.62 %], purity: 99.39 %, hitEff: 78.42 % +BestTrackChecker INFO 04_long_strange_P>5GeV : 124 from 126 [ 98.41 %] 14 clones [10.14 %], purity: 99.45 %, hitEff: 85.26 % BestTrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 1 clones [14.29 %], purity: 99.29 %, hitEff: 85.20 % BestTrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity: 99.17 %, hitEff: 82.74 % -BestTrackChecker INFO 07_long_electrons : 339 from 373 [ 90.88 %] 55 clones [13.96 %], purity: 98.14 %, hitEff: 68.19 % +BestTrackChecker INFO 07_long_electrons : 337 from 373 [ 90.35 %] 54 clones [13.81 %], purity: 98.15 %, hitEff: 68.22 % BestTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity: 99.17 %, hitEff: 82.74 % BestTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 1 clones [16.67 %], purity: 99.17 %, hitEff: 82.74 % BestTrackChecker INFO BestLongTrackChecker INFO Results -BestLongTrackChecker INFO **** BestLong 5853 tracks including 713 ghosts [12.18 %], Event average 10.00 % **** -BestLongTrackChecker INFO 01_long : 4499 from 5237 [ 85.91 %] 20 clones [ 0.44 %], purity: 99.37 %, hitEff: 96.46 % -BestLongTrackChecker INFO 02_long_P>5GeV : 3026 from 3332 [ 90.82 %] 7 clones [ 0.23 %], purity: 99.48 %, hitEff: 97.66 % -BestLongTrackChecker INFO 03_long_strange : 185 from 249 [ 74.30 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 96.12 % -BestLongTrackChecker INFO 04_long_strange_P>5GeV : 104 from 126 [ 82.54 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 97.43 % +BestLongTrackChecker INFO **** BestLong 5842 tracks including 713 ghosts [12.20 %], Event average 10.06 % **** +BestLongTrackChecker INFO 01_long : 4494 from 5237 [ 85.81 %] 20 clones [ 0.44 %], purity: 99.37 %, hitEff: 96.41 % +BestLongTrackChecker INFO 02_long_P>5GeV : 3024 from 3332 [ 90.76 %] 7 clones [ 0.23 %], purity: 99.48 %, hitEff: 97.60 % +BestLongTrackChecker INFO 03_long_strange : 183 from 249 [ 73.49 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 96.06 % +BestLongTrackChecker INFO 04_long_strange_P>5GeV : 104 from 126 [ 82.54 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 97.35 % BestLongTrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 94.64 % BestLongTrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % -BestLongTrackChecker INFO 07_long_electrons : 218 from 373 [ 58.45 %] 3 clones [ 1.36 %], purity: 97.78 %, hitEff: 92.53 % +BestLongTrackChecker INFO 07_long_electrons : 216 from 373 [ 57.91 %] 2 clones [ 0.92 %], purity: 97.76 %, hitEff: 93.11 % BestLongTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestLongTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestLongTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % BestLongTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % BestLongTrackChecker INFO LongGhostFilteredTrackChecker INFO Results -LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5438 tracks including 363 ghosts [ 6.68 %], Event average 5.44 % **** -LongGhostFilteredTrackChecker INFO 01_long : 4464 from 5237 [ 85.24 %] 20 clones [ 0.45 %], purity: 99.39 %, hitEff: 96.56 % -LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3003 from 3332 [ 90.13 %] 7 clones [ 0.23 %], purity: 99.49 %, hitEff: 97.74 % -LongGhostFilteredTrackChecker INFO 03_long_strange : 183 from 249 [ 73.49 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 96.16 % -LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 102 from 126 [ 80.95 %] 0 clones [ 0.00 %], purity: 99.52 %, hitEff: 97.54 % +LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5428 tracks including 362 ghosts [ 6.67 %], Event average 5.46 % **** +LongGhostFilteredTrackChecker INFO 01_long : 4459 from 5237 [ 85.14 %] 20 clones [ 0.45 %], purity: 99.39 %, hitEff: 96.51 % +LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3001 from 3332 [ 90.07 %] 7 clones [ 0.23 %], purity: 99.49 %, hitEff: 97.69 % +LongGhostFilteredTrackChecker INFO 03_long_strange : 181 from 249 [ 72.69 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 96.11 % +LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 102 from 126 [ 80.95 %] 0 clones [ 0.00 %], purity: 99.52 %, hitEff: 97.46 % LongGhostFilteredTrackChecker INFO 05_long_fromB : 6 from 7 [ 85.71 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 94.64 % LongGhostFilteredTrackChecker INFO 06_long_fromB_P>5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % -LongGhostFilteredTrackChecker INFO 07_long_electrons : 210 from 373 [ 56.30 %] 3 clones [ 1.41 %], purity: 98.00 %, hitEff: 92.91 % +LongGhostFilteredTrackChecker INFO 07_long_electrons : 208 from 373 [ 55.76 %] 2 clones [ 0.95 %], purity: 97.96 %, hitEff: 93.49 % LongGhostFilteredTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % LongGhostFilteredTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % LongGhostFilteredTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % LongGhostFilteredTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 5 from 5 [100.00 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.57 % LongGhostFilteredTrackChecker INFO BestDownstreamTrackChecker INFO Results -BestDownstreamTrackChecker INFO **** BestDownstream 1237 tracks including 481 ghosts [38.88 %], Event average 31.78 % **** -BestDownstreamTrackChecker INFO 01_UT+T : 526 from 5901 [ 8.91 %] 0 clones [ 0.00 %], purity: 99.55 %, hitEff: 95.21 % -BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 293 from 3594 [ 8.15 %] 0 clones [ 0.00 %], purity: 99.46 %, hitEff: 97.46 % -BestDownstreamTrackChecker INFO 03_UT+T_strange : 192 from 539 [ 35.62 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.61 % +BestDownstreamTrackChecker INFO **** BestDownstream 1242 tracks including 482 ghosts [38.81 %], Event average 31.75 % **** +BestDownstreamTrackChecker INFO 01_UT+T : 531 from 5901 [ 9.00 %] 0 clones [ 0.00 %], purity: 99.55 %, hitEff: 95.20 % +BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 295 from 3594 [ 8.21 %] 0 clones [ 0.00 %], purity: 99.46 %, hitEff: 97.43 % +BestDownstreamTrackChecker INFO 03_UT+T_strange : 193 from 539 [ 35.81 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.60 % BestDownstreamTrackChecker INFO 04_UT+T_strange_P>5GeV : 132 from 305 [ 43.28 %] 0 clones [ 0.00 %], purity: 99.65 %, hitEff: 97.53 % BestDownstreamTrackChecker INFO 05_noVelo+UT+T_strange : 177 from 294 [ 60.20 %] 0 clones [ 0.00 %], purity: 99.74 %, hitEff: 96.62 % BestDownstreamTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 125 from 182 [ 68.68 %] 0 clones [ 0.00 %], purity: 99.69 %, hitEff: 97.54 % @@ -219,10 +219,10 @@ BestDownstreamTrackChecker INFO 07_UT+T_fromB : BestDownstreamTrackChecker INFO 08_UT+T_fromB_P>5GeV : 0 from 5 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % BestDownstreamTrackChecker INFO DownstreamGhostFilteredTrackChecker INFO Results -DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1000 tracks including 251 ghosts [25.10 %], Event average 20.41 % **** -DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 523 from 5901 [ 8.86 %] 0 clones [ 0.00 %], purity: 99.59 %, hitEff: 95.29 % -DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 291 from 3594 [ 8.10 %] 0 clones [ 0.00 %], purity: 99.50 %, hitEff: 97.59 % -DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 192 from 539 [ 35.62 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.61 % +DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1004 tracks including 251 ghosts [25.00 %], Event average 20.35 % **** +DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 528 from 5901 [ 8.95 %] 0 clones [ 0.00 %], purity: 99.59 %, hitEff: 95.27 % +DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 293 from 3594 [ 8.15 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 97.56 % +DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 193 from 539 [ 35.81 %] 0 clones [ 0.00 %], purity: 99.70 %, hitEff: 96.60 % DownstreamGhostFilteredTrackChecker INFO 04_UT+T_strange_P>5GeV : 132 from 305 [ 43.28 %] 0 clones [ 0.00 %], purity: 99.65 %, hitEff: 97.53 % DownstreamGhostFilteredTrackChecker INFO 05_noVelo+UT+T_strange : 177 from 294 [ 60.20 %] 0 clones [ 0.00 %], purity: 99.74 %, hitEff: 96.62 % DownstreamGhostFilteredTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 125 from 182 [ 68.68 %] 0 clones [ 0.00 %], purity: 99.69 %, hitEff: 97.54 % @@ -241,91 +241,91 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 100 | | "Nb events removed" | 4 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | - | "Nb of Produced Tracks" | 96 | 21095 | 219.74 | + | "Nb of Produced Tracks" | 96 | 20926 | 217.98 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 21095 | 219.74 | + | "Nb of Produced Tracks" | 96 | 20926 | 217.98 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 95 | 6052 | 63.705 | + | "Nb output tracks" | 95 | 6044 | 63.621 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 6052 | 63.042 | + | "Nb of Produced Tracks" | 96 | 6044 | 62.958 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 96 | 13036 | 135.79 | - | "#tracks" | 96 | 3449 | 35.927 | + | "#seeds" | 96 | 12983 | 135.24 | + | "#tracks" | 96 | 3447 | 35.906 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 1626 | - | "Created long tracks" | 96 | 2129 | 22.177 | + | "2nd Loop" | 1620 | + | "Created long tracks" | 96 | 2133 | 22.219 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2129 | 22.177 | + | "Nb of Produced Tracks" | 96 | 2133 | 22.219 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 3449 | 35.927 | + | "Nb of Produced Tracks" | 96 | 3447 | 35.906 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2129 | 22.177 | + | "Nb of Produced Tracks" | 96 | 2133 | 22.219 | TracksFitConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2129 | 22.177 | + | "Nb of Produced Tracks" | 96 | 2133 | 22.219 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 6715 | | "#UT hits added" | 26463 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 16520 | 89281.8 | 5.4045 | - | "#MatchingTracks" | 95 | 6025 | 63.421 | - | "TracksMLP" | 16520 | 5871.041 | 0.35539 | + | "#MatchingChi2" | 16505 | 89204.6 | 5.4047 | + | "#MatchingTracks" | 95 | 6015 | 63.316 | + | "TracksMLP" | 16505 | 5863.825 | 0.35528 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | TrackBestTrackCreator SUCCESS Number of counters : 32 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 28185 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2293 | 1193 |( 52.02791 +- 1.043303)% | - | "Downstream.chisqProbSum" | 2293 | 343.0588 | 0.14961 | - |*"Downstream.flipCharge" | 2293 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2293 | 1232.872 | 0.53767 | - | "Downstream.numOutliers" | 2293 | 2513 | 1.0959 | - |*"FitFailed" | 28185 | 0 |( 0.000000 +- 0.000000)% | - |*"Long.badChisq" | 7553 | 2651 |( 35.09864 +- 0.5491769)% | - | "Long.chisqProbSum" | 7553 | 1837.549 | 0.24329 | - |*"Long.flipCharge" | 7553 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 7553 | 1220.333 | 0.16157 | - | "Long.numOutliers" | 7553 | 6720 | 0.88971 | - |*"Ttrack.badChisq" | 2735 | 60 |( 2.193784 +- 0.2800925)% | - | "Ttrack.chisqProbSum" | 2735 | 1088.45 | 0.39797 | - |*"Ttrack.flipCharge" | 2735 | 41 |( 1.499086 +- 0.2323564)% | - | "Ttrack.ghostProbability" | 2735 | 127.6422 | 0.046670 | - | "Ttrack.numOutliers" | 2735 | 965 | 0.35283 | - |*"Upstream.badChisq" | 883 | 204 |( 23.10306 +- 1.418433)% | - | "Upstream.chisqProbSum" | 883 | 286.5806 | 0.32455 | - |*"Upstream.flipCharge" | 883 | 19 |( 2.151755 +- 0.4883066)% | - | "Upstream.ghostProbability" | 883 | 194.1601 | 0.21989 | - | "Upstream.numOutliers" | 883 | 407 | 0.46093 | - |*"Velo.badChisq" | 6680 | 1728 |( 25.86826 +- 0.5357936)% | - | "Velo.chisqProbSum" | 6680 | 1973.143 | 0.29538 | - |*"Velo.flipCharge" | 6680 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 6680 | 698.1063 | 0.10451 | - | "Velo.numOutliers" | 6680 | 4667 | 0.69865 | - |*"VeloBackward.badChisq" | 8041 | 511 |( 6.354931 +- 0.2720463)% | - | "VeloBackward.chisqProbSum" | 8041 | 3592.997 | 0.44683 | - |*"VeloBackward.flipCharge" | 8041 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 8041 | 652.3245 | 0.081125 | - | "VeloBackward.numOutliers" | 8041 | 2255 | 0.28044 | + |*"BadInput" | 28025 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2300 | 1195 |( 51.95652 +- 1.041774)% | + | "Downstream.chisqProbSum" | 2300 | 345.3281 | 0.15014 | + |*"Downstream.flipCharge" | 2300 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2300 | 1235.105 | 0.53700 | + | "Downstream.numOutliers" | 2300 | 2522 | 1.0965 | + |*"FitFailed" | 28025 | 0 |( 0.000000 +- 0.000000)% | + |*"Long.badChisq" | 7552 | 2657 |( 35.18273 +- 0.5495145)% | + | "Long.chisqProbSum" | 7552 | 1838.13 | 0.24340 | + |*"Long.flipCharge" | 7552 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 7552 | 1223.356 | 0.16199 | + | "Long.numOutliers" | 7552 | 6722 | 0.89010 | + |*"Ttrack.badChisq" | 2740 | 61 |( 2.226277 +- 0.2818548)% | + | "Ttrack.chisqProbSum" | 2740 | 1089.834 | 0.39775 | + |*"Ttrack.flipCharge" | 2740 | 41 |( 1.496350 +- 0.2319357)% | + | "Ttrack.ghostProbability" | 2740 | 127.8402 | 0.046657 | + | "Ttrack.numOutliers" | 2740 | 967 | 0.35292 | + |*"Upstream.badChisq" | 881 | 201 |( 22.81498 +- 1.413802)% | + | "Upstream.chisqProbSum" | 881 | 283.6591 | 0.32197 | + |*"Upstream.flipCharge" | 881 | 18 |( 2.043133 +- 0.4766261)% | + | "Upstream.ghostProbability" | 881 | 193.1946 | 0.21929 | + | "Upstream.numOutliers" | 881 | 405 | 0.45970 | + |*"Velo.badChisq" | 6627 | 1716 |( 25.89407 +- 0.5381064)% | + | "Velo.chisqProbSum" | 6627 | 1962.085 | 0.29607 | + |*"Velo.flipCharge" | 6627 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 6627 | 674.9627 | 0.10185 | + | "Velo.numOutliers" | 6627 | 4625 | 0.69790 | + |*"VeloBackward.badChisq" | 7925 | 493 |( 6.220820 +- 0.2713172)% | + | "VeloBackward.chisqProbSum" | 7925 | 3547.317 | 0.44761 | + |*"VeloBackward.flipCharge" | 7925 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 7925 | 609.4451 | 0.076902 | + | "VeloBackward.numOutliers" | 7925 | 2176 | 0.27457 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | | "Nb PVs" | 96 | 447 | 4.6562 | @@ -334,52 +334,52 @@ PrLHCbID2MCParticle SUCCESS Number of counters : 1 | "#removed null MCParticles" | 588105 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 21095 | 20887 |( 99.01398 +- 0.06802999)% | - | "MC particles per track" | 20887 | 20993 | 1.0051 | + |*"Efficiency" | 20926 | 20751 |( 99.16372 +- 0.06295195)% | + | "MC particles per track" | 20751 | 20862 | 1.0053 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6025 | 4989 |( 82.80498 +- 0.4861285)% | - | "MC particles per track" | 4989 | 5753 | 1.1531 | + |*"Efficiency" | 6015 | 4981 |( 82.80964 +- 0.4864801)% | + | "MC particles per track" | 4981 | 5744 | 1.1532 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 6715 | 4835 |( 72.00298 +- 0.5479086)% | | "MC particles per track" | 4835 | 4835 | 1.0000 | PrTrackAssociator#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 3449 | 3247 |( 94.14323 +- 0.3998315)% | - | "MC particles per track" | 3247 | 3247 | 1.0000 | + |*"Efficiency" | 3447 | 3246 |( 94.16884 +- 0.3991263)% | + | "MC particles per track" | 3246 | 3246 | 1.0000 | PrTrackAssociator#4 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6052 | 4866 |( 80.40317 +- 0.5102465)% | - | "MC particles per track" | 4866 | 5639 | 1.1589 | + |*"Efficiency" | 6044 | 4855 |( 80.32760 +- 0.5113272)% | + | "MC particles per track" | 4855 | 5627 | 1.1590 | PrTrackAssociator#5 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 2129 | 2080 |( 97.69845 +- 0.3249872)% | - | "MC particles per track" | 2080 | 2443 | 1.1745 | + |*"Efficiency" | 2133 | 2083 |( 97.65588 +- 0.3275996)% | + | "MC particles per track" | 2083 | 2447 | 1.1747 | PrTrackAssociator#6 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 9076 | 8884 |( 97.88453 +- 0.1510474)% | | "MC particles per track" | 8884 | 8884 | 1.0000 | PrTrackAssociator#7 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 25267 | 23650 |( 93.60035 +- 0.1539714)% | - | "MC particles per track" | 23650 | 24530 | 1.0372 | + |*"Efficiency" | 25096 | 23509 |( 93.67628 +- 0.1536380)% | + | "MC particles per track" | 23509 | 24389 | 1.0374 | TrackListRefiner SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 5853 | 60.969 | 36.478 | 0.0000 | 155.00 | - | "#seeds" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#passed" | 96 | 5842 | 60.854 | 36.371 | 0.0000 | 155.00 | + | "#seeds" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | TrackListRefiner#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 5438 | 56.646 | 32.959 | 0.0000 | 138.00 | - | "#seeds" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#passed" | 96 | 5428 | 56.542 | 32.866 | 0.0000 | 138.00 | + | "#seeds" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | TrackListRefiner#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 1237 | 12.885 | 8.8363 | 0.0000 | 41.000 | - | "#seeds" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#passed" | 96 | 1242 | 12.938 | 8.8962 | 0.0000 | 41.000 | + | "#seeds" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | TrackListRefiner#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 96 | 1000 | 10.417 | 6.7664 | 0.0000 | 30.000 | - | "#seeds" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#passed" | 96 | 1004 | 10.458 | 6.8235 | 0.0000 | 30.000 | + | "#seeds" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | @@ -405,32 +405,32 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 96 | 652 | 6.7917 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | - | "#tracks in acceptance" | 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | - | "#tracks in acceptance" | 96 | 7677 | 79.969 | 44.823 | 0.0000 | 187.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 7677 | 79.969 | 44.810 | 0.0000 | 187.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.823 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.810 | 0.0000 | 187.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.823 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.810 | 0.0000 | 187.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 1218435 | 12692. | 11247. | 0.0000 | 46537. | - | "#chi2" | 358856 |1.644989e+08 | 458.40 | 291.61 | 0.00012433 | 1000.0 | - | "#good tracks" | 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | - | "#links in table" | 96 | 358856 | 3738.1 | 3717.2 | 0.0000 | 15155. | + | "#above threshold" | 96 | 1217969 | 12687. | 11229. | 0.0000 | 46023. | + | "#chi2" | 358829 |1.644967e+08 | 458.43 | 291.61 | 0.00012433 | 1000.0 | + | "#good tracks" | 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | + | "#links in table" | 96 | 358829 | 3737.8 | 3714.3 | 0.0000 | 15033. | | "#total calos" | 96 | 14626 | 152.35 | 73.922 | 0.0000 | 318.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | @@ -438,41 +438,41 @@ ClassifyPhotonElectronAlg INFO Number of counters : 2 | "photonHypos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 779112 | 8115.8 | 8317.3 | 0.0000 | 33760. | - | "#chi2" | 91601 |3.975076e+08 | 4339.6 | 2954.1 | 0.065218 | 9999.9 | - | "#good tracks" | 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | - | "#links in table" | 96 | 91601 | 954.18 | 878.99 | 0.0000 | 3802.0 | + | "#above threshold" | 96 | 778844 | 8113.0 | 8305.6 | 0.0000 | 33534. | + | "#chi2" | 91597 |3.975218e+08 | 4339.9 | 2954.2 | 0.065218 | 9999.9 | + | "#good tracks" | 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | + | "#links in table" | 96 | 91597 | 954.14 | 878.50 | 0.0000 | 3802.0 | | "#total calos" | 96 | 7691 | 80.115 | 47.236 | 0.0000 | 190.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13254 | 138.06 | 80.409 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | - | "#tracks in acceptance" | 96 | 8735 | 90.990 | 55.348 | 0.0000 | 220.00 | + | "#links in table" | 96 | 13189 | 137.39 | 80.236 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8718 | 90.812 | 55.300 | 0.0000 | 220.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 777551 | 8099.5 | 7825.9 | 0.0000 | 32425. | - | "#chi2" | 324121 |1.506188e+09 | 4647.0 | 2885.5 | 0.00077758 | 10000. | - | "#good tracks" | 96 | 8735 | 90.990 | 55.348 | 0.0000 | 220.00 | - | "#links in table" | 96 | 324121 | 3376.3 | 2901.3 | 0.0000 | 12095. | + | "#above threshold" | 96 | 775877 | 8082.1 | 7810.0 | 0.0000 | 31828. | + | "#chi2" | 323910 |1.505365e+09 | 4647.5 | 2884.9 | 0.00077758 | 10000. | + | "#good tracks" | 96 | 8718 | 90.812 | 55.300 | 0.0000 | 220.00 | + | "#links in table" | 96 | 323910 | 3374.1 | 2901.1 | 0.0000 | 12062. | | "#total calos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13254 | 138.06 | 80.409 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#links in table" | 96 | 13189 | 137.39 | 80.236 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13254 | 138.06 | 80.409 | 0.0000 | 320.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13189 | 137.39 | 80.236 | 0.0000 | 317.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | RichSumUnPack SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# UnPackedData" | 96 | 484291 | 5044.7 | 3026.9 | 0.0000 | 12860. | @@ -480,22 +480,22 @@ RichPIDMonDownstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 227 | 219 |( 96.47577 +- 1.223850)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 230 | 222 |( 96.52174 +- 1.208175)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 8 | 8 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 1162 | 1025 |( 88.20998 +- 0.9460477)% | - |*"Used RICH1 and RICH2" | 1025 | 270 |( 26.34146 +- 1.375845)% | - |*"Used RICH1 only" | 1025 | 636 |( 62.04878 +- 1.515715)% | - |*"Used RICH2 only" | 1025 | 119 |( 11.60976 +- 1.000580)% | + |*"Track ID rate" | 1167 | 1030 |( 88.26050 +- 0.9422640)% | + |*"Used RICH1 and RICH2" | 1030 | 272 |( 26.40777 +- 1.373609)% | + |*"Used RICH1 only" | 1030 | 639 |( 62.03883 +- 1.512109)% | + |*"Used RICH2 only" | 1030 | 119 |( 11.55340 +- 0.9960401)% | RichPIDMonDownstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 74 | 66 |( 89.18919 +- 3.609686)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 75 | 67 |( 89.33333 +- 3.564433)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 8 | 8 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 227 | 227 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 227 | 152 |( 66.96035 +- 3.121862)% | - |*"Used RICH1 only" | 227 | 6 |( 2.643172 +- 1.064714)% | - |*"Used RICH2 only" | 227 | 69 |( 30.39648 +- 3.052912)% | + |*"Track ID rate" | 228 | 228 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 228 | 153 |( 67.10526 +- 3.111531)% | + |*"Used RICH1 only" | 228 | 6 |( 2.631579 +- 1.060107)% | + |*"Used RICH2 only" | 228 | 69 |( 30.26316 +- 3.042432)% | RichPIDMonDownstream70to100 INFO Number of counters : 5 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | @@ -506,31 +506,31 @@ RichPIDMonDownstream70to100 INFO Number of counters : 5 RichPIDMonDownstream2to10 INFO Number of counters : 6 | Counter | |*"Event ID rate" | 96 | 92 |( 95.83333 +- 2.039469)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 153 | 153 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 933 | 796 |( 85.31618 +- 1.158762)% | - |*"Used RICH1 and RICH2" | 796 | 117 |( 14.69849 +- 1.255042)% | - |*"Used RICH1 only" | 796 | 630 |( 79.14573 +- 1.439974)% | - |*"Used RICH2 only" | 796 | 49 |( 6.155779 +- 0.8519002)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 155 | 155 |( 100.0000 +- 0.000000)% | + |*"Track ID rate" | 937 | 800 |( 85.37887 +- 1.154239)% | + |*"Used RICH1 and RICH2" | 800 | 118 |( 14.75000 +- 1.253713)% | + |*"Used RICH1 only" | 800 | 633 |( 79.12500 +- 1.436895)% | + |*"Used RICH2 only" | 800 | 49 |( 6.125000 +- 0.8477797)% | RichPIDMonLong2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | - |*"K->K,Pr,D ID Efficiency" | 204 | 202 |( 99.01961 +- 0.6898353)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 2716 | 2663 |( 98.04860 +- 0.2654171)% | - |*"Pr DLL(Pr)>0 ID Efficiency" | 73 | 71 |( 97.26027 +- 1.910556)% | - |*"Track ID rate" | 5710 | 5408 |( 94.71103 +- 0.2961881)% | - |*"Used RICH1 and RICH2" | 5408 | 1868 |( 34.54142 +- 0.6465990)% | - |*"Used RICH1 only" | 5408 | 2431 |( 44.95192 +- 0.6764362)% | - |*"Used RICH2 only" | 5408 | 1109 |( 20.50666 +- 0.5490280)% | + |*"K->K,Pr,D ID Efficiency" | 203 | 201 |( 99.01478 +- 0.6932166)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 2712 | 2659 |( 98.04572 +- 0.2658047)% | + |*"Pr DLL(Pr)>0 ID Efficiency" | 73 | 70 |( 95.89041 +- 2.323407)% | + |*"Track ID rate" | 5701 | 5401 |( 94.73777 +- 0.2957135)% | + |*"Used RICH1 and RICH2" | 5401 | 1868 |( 34.58619 +- 0.6472156)% | + |*"Used RICH1 only" | 5401 | 2425 |( 44.89909 +- 0.6768011)% | + |*"Used RICH2 only" | 5401 | 1108 |( 20.51472 +- 0.5494638)% | RichPIDMonLong10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | - |*"K->K,Pr,D ID Efficiency" | 197 | 195 |( 98.98477 +- 0.7142216)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1108 | 1062 |( 95.84838 +- 0.5992824)% | - |*"Pr DLL(Pr)>0 ID Efficiency" | 68 | 67 |( 98.52941 +- 1.459735)% | - |*"Track ID rate" | 2045 | 2043 |( 99.90220 +- 0.06912087)% | - |*"Used RICH1 and RICH2" | 2043 | 1162 |( 56.87714 +- 1.095692)% | - |*"Used RICH1 only" | 2043 | 36 |( 1.762115 +- 0.2910867)% | - |*"Used RICH2 only" | 2043 | 845 |( 41.36074 +- 1.089568)% | + |*"K->K,Pr,D ID Efficiency" | 196 | 194 |( 98.97959 +- 0.7178468)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1105 | 1059 |( 95.83710 +- 0.6008741)% | + |*"Pr DLL(Pr)>0 ID Efficiency" | 68 | 66 |( 97.05882 +- 2.048913)% | + |*"Track ID rate" | 2046 | 2044 |( 99.90225 +- 0.06908711)% | + |*"Used RICH1 and RICH2" | 2044 | 1164 |( 56.94716 +- 1.095208)% | + |*"Used RICH1 only" | 2044 | 36 |( 1.761252 +- 0.2909456)% | + |*"Used RICH2 only" | 2044 | 844 |( 41.29159 +- 1.089032)% | RichPIDMonLong70to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | @@ -545,47 +545,47 @@ RichPIDMonLong2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 96 | 95 |( 98.95833 +- 1.036227)% | |*"K->K,Pr,D ID Efficiency" | 2 | 2 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1598 | 1596 |( 99.87484 +- 0.08844357)% | - |*"Track ID rate" | 3629 | 3332 |( 91.81593 +- 0.4550407)% | - |*"Used RICH1 and RICH2" | 3332 | 698 |( 20.94838 +- 0.7049821)% | - |*"Used RICH1 only" | 3332 | 2395 |( 71.87875 +- 0.7788702)% | - |*"Used RICH2 only" | 3332 | 239 |( 7.172869 +- 0.4470246)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1597 | 1595 |( 99.87477 +- 0.08849892)% | + |*"Track ID rate" | 3619 | 3324 |( 91.84858 +- 0.4548400)% | + |*"Used RICH1 and RICH2" | 3324 | 696 |( 20.93863 +- 0.7057092)% | + |*"Used RICH1 only" | 3324 | 2389 |( 71.87124 +- 0.7798703)% | + |*"Used RICH2 only" | 3324 | 239 |( 7.190132 +- 0.4480588)% | RichPIDMonUpstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | |*"K->K,Pr,D ID Efficiency" | 26 | 22 |( 84.61538 +- 7.075894)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 205 | 194 |( 94.63415 +- 1.573861)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 203 | 192 |( 94.58128 +- 1.588923)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 706 | 620 |( 87.81870 +- 1.230943)% | - |*"Used RICH1 and RICH2" | 620 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 620 | 620 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 620 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 705 | 618 |( 87.65957 +- 1.238712)% | + |*"Used RICH1 and RICH2" | 618 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 618 | 618 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 618 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | |*"K->K,Pr,D ID Efficiency" | 25 | 22 |( 88.00000 +- 6.499231)% | |*"Pi->El,Mu,Pi ID Efficiency" | 90 | 80 |( 88.88889 +- 3.312693)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 266 | 187 |( 70.30075 +- 2.801637)% | + |*"Track ID rate" | 267 | 187 |( 70.03745 +- 2.803489)% | |*"Used RICH1 and RICH2" | 187 | 0 |( 0.000000 +- 0.000000)% | |*"Used RICH1 only" | 187 | 187 |( 100.0000 +- 0.000000)% | |*"Used RICH2 only" | 187 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream70to100 INFO Number of counters : 5 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | - |*"Track ID rate" | 10 | 3 |( 30.00000 +- 14.49138)% | - |*"Used RICH1 and RICH2" | 3 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 3 | 3 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 3 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 9 | 2 |( 22.22222 +- 13.85799)% | + |*"Used RICH1 and RICH2" | 2 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 2 | 2 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 2 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 96 | 88 |( 91.66667 +- 2.820847)% | |*"K->K,Pr,D ID Efficiency" | 1 | 0 |( 0.000000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 115 | 114 |( 99.13043 +- 0.8657762)% | - |*"Track ID rate" | 430 | 430 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 430 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 430 | 430 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 430 | 0 |( 0.000000 +- 0.000000)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 113 | 112 |( 99.11504 +- 0.8810313)% | + |*"Track ID rate" | 429 | 429 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 429 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 429 | 429 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 429 | 0 |( 0.000000 +- 0.000000)% | ToolSvc.TrackFunctorFactory SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# loaded from PYTHON" | 4 | 4 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | @@ -630,7 +630,7 @@ ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | " Middle" | 2271 | 2286.141 | 1.0067 | 0.018797 | 0.97699 | 1.1113 | | " Outer" | 2923 | 2924.591 | 1.0005 | 0.014456 | 0.97413 | 1.0473 | | "Corrected energy" | 7691 |4.973383e+07 | 6466.5 | 7154.9 | 398.05 | 1.1680e+05 | - | "Delta(E)" | 7691 | 1573653 | 204.61 | 203.84 | -2370.9 | 3316.7 | + | "Delta(E)" | 7691 | 1573656 | 204.61 | 203.84 | -2370.9 | 3316.7 | | "Pileup offset" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup scale" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup subtracted ratio" | 7691 | 7691 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | @@ -755,79 +755,79 @@ VeloTrackChecker.LoKi::Hybrid::M... SUCCESS Number of counters : 1 | "# loaded from PYTHON" | 12 | 12 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5290 | 33976 | 6.4227 | - | "#tracks with hits added" | 5290 | + | "#UT hits added" | 5281 | 33895 | 6.4183 | + | "#tracks with hits added" | 5281 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5289 | 33890 | 6.4076 | - | "#tracks with hits added" | 5289 | + | "#UT hits added" | 5284 | 33833 | 6.4029 | + | "#tracks with hits added" | 5284 | RiCKMCResDownstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResDownstream10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 45670 |-0.00038843 | 0.0021599 | -0.20859 | -0.70763 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 23166 | 8.7806e-05 | 0.002136 | -0.19238 | -0.47758 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 39844 | -0.0004983 | 0.0023578 | -0.091409 | -1.0191 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 20801 | 6.9086e-05 | 0.0022762 | -0.15461 | -0.74517 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 5826 |-2.1584e-05 | 0.0012274 | -0.38012 | 0.87212 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2365 | 0.00018493 | 0.0011584 | -0.65844 | 2.8056 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 39844 | 3.0906 | 1.8069 | 0.041357 | -1.1788 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 5826 | 3.1652 | 1.8069 | -0.016739 | -1.18 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 39844 | 0.046258 | 0.0064717 | -0.73403 | -0.43589 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 5826 | 0.051547 | 0.0013585 | -0.34507 | 1.0795 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 12867 | 1.967e-05 | 0.0012167 | -0.016918 | -0.75075 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 14254 | 9.6212e-05 | 0.0012598 | -0.052569 | -0.87588 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 10508 | 2.5286e-05 | 0.0013633 | -0.023642 | -1.129 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12025 | 6.5785e-05 | 0.0013518 | -0.022512 | -1.1085 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2359 | 4.2946e-06 | 0.00066685 | -0.050968 | 0.6966 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2229 | 0.00021151 | 0.00081173 | 0.20516 | 0.49376 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 10508 | 3.0711 | 1.8062 | 0.07691 | -1.1817 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2359 | 3.1583 | 1.7879 | 0.0013623 | -1.2043 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 10508 | 0.027059 | 0.0042064 | -1.6609 | 2.8102 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2359 | 0.028759 | 0.0013052 | -1.4051 | 10.412 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 45673 |-0.00038417 | 0.002159 | -0.21008 | -0.70361 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 23275 | 9.0724e-05 | 0.0021337 | -0.19297 | -0.47356 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 39845 |-0.00049572 | 0.002358 | -0.091295 | -1.0182 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 20867 | 7.177e-05 | 0.0022763 | -0.1548 | -0.7457 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 5828 |-1.1716e-05 | 0.0012165 | -0.36838 | 0.87811 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2408 | 0.00018747 | 0.0011546 | -0.65445 | 2.7977 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 39845 | 3.092 | 1.8074 | 0.039915 | -1.1798 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 5828 | 3.1604 | 1.8057 | -0.011078 | -1.1791 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 39845 | 0.046256 | 0.0064763 | -0.7345 | -0.43708 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 5828 | 0.051547 | 0.0013511 | -0.33761 | 1.1013 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 12883 | 2.0181e-05 | 0.0012164 | -0.016941 | -0.74993 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 14270 | 9.6579e-05 | 0.0012594 | -0.052543 | -0.87502 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 10511 | 2.5492e-05 | 0.0013635 | -0.023309 | -1.129 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12028 | 6.5953e-05 | 0.001352 | -0.02223 | -1.1086 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2372 | 5.7123e-06 | 0.00066762 | -0.046825 | 0.68158 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2242 | 0.00021195 | 0.0008114 | 0.20506 | 0.48394 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 10511 | 3.0717 | 1.8063 | 0.076387 | -1.1822 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2372 | 3.1568 | 1.7905 | 0.0010136 | -1.2086 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 10511 | 0.027059 | 0.004206 | -1.6611 | 2.8114 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2372 | 0.028754 | 0.0013054 | -1.392 | 10.32 | RiCKMCResLong10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResLong10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 246133 |-0.00026677 | 0.0020157 | -0.26718 | -0.42709 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 185130 | -8.43e-05 | 0.001974 | -0.26978 | -0.27198 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 216916 |-0.00035455 | 0.0022444 | -0.15065 | -0.88539 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 156618 | -6.844e-05 | 0.002174 | -0.23249 | -0.70633 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 29217 | 2.8199e-05 | 0.00082171 | 0.033514 | 0.72625 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 28512 |-0.00013691 | 0.0010681 | -1.3133 | 3.9051 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 216916 | 3.1494 | 1.8163 | -0.011187 | -1.1895 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 29217 | 3.1254 | 1.8188 | 0.0068109 | -1.1896 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 216916 | 0.046591 | 0.0064696 | -0.87924 | -0.30253 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 29217 | 0.05118 | 0.0010056 | 0.13027 | 0.26933 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 137835 | 9.7448e-06 | 0.0011657 | 0.021848 | -0.61595 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 137591 | 1.9595e-05 | 0.0011927 | 0.024723 | -0.70434 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 114354 | 1.4818e-05 | 0.001319 | 0.012937 | -1.0489 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 113020 | 3.4871e-05 | 0.00132 | 0.0074137 | -1.0566 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 23481 |-3.2649e-06 | 0.00061824 | -0.024226 | 0.74107 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 24571 |-2.4655e-05 | 0.00070278 | -0.14851 | 1.0566 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 114354 | 3.1443 | 1.7936 | -0.0034948 | -1.1747 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 23481 | 3.1321 | 1.8042 | 0.01298 | -1.2104 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 114354 | 0.026528 | 0.0047034 | -1.5125 | 1.7825 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 23481 | 0.028513 | 0.0011465 | -0.54796 | 0.87021 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 244750 |-0.00026243 | 0.0020141 | -0.26719 | -0.42289 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 185485 |-8.3868e-05 | 0.0019743 | -0.26991 | -0.27262 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 215714 |-0.00034867 | 0.0022427 | -0.15227 | -0.88201 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 156995 |-6.7736e-05 | 0.0021737 | -0.23297 | -0.70562 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 29036 | 2.8069e-05 | 0.00081821 | 0.046624 | 0.68708 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 28490 |-0.00013757 | 0.0010677 | -1.3172 | 3.9078 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 215714 | 3.1488 | 1.816 | -0.010209 | -1.1888 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 29036 | 3.1269 | 1.8184 | 0.0055321 | -1.1881 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 215714 | 0.046604 | 0.0064676 | -0.88289 | -0.29617 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 29036 | 0.051178 | 0.001003 | 0.12976 | 0.2618 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 137898 | 9.9762e-06 | 0.0011659 | 0.02174 | -0.61627 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 137657 | 2.0114e-05 | 0.0011929 | 0.024282 | -0.70459 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 114457 | 1.5085e-05 | 0.0013186 | 0.012771 | -1.048 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 113126 | 3.5322e-05 | 0.0013197 | 0.0070265 | -1.0557 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 23441 |-3.1693e-06 | 0.00061829 | -0.024243 | 0.74059 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 24531 |-2.4075e-05 | 0.00070328 | -0.14707 | 1.0574 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 114457 | 3.1441 | 1.7932 | -0.0033713 | -1.1742 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 23441 | 3.1326 | 1.8035 | 0.012302 | -1.2094 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 114457 | 0.026531 | 0.0047009 | -1.5134 | 1.7871 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 23441 | 0.028514 | 0.0011475 | -0.54872 | 0.8667 | RiCKMCResUpstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResUpstream10to70" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 36547 | -0.0005136 | 0.002148 | -0.17593 | -0.72545 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 48725 |-0.00054833 | 0.002187 | -0.14322 | -0.79905 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 33586 |-0.00058221 | 0.0023229 | -0.085216 | -1.0223 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 45416 |-0.00056922 | 0.0023138 | -0.098434 | -0.99937 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2961 |-0.00019841 | 0.00094853 | -0.73249 | 2.5692 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3309 |-0.00042559 | 0.0011881 | -1.0058 | 1.6584 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 33586 | 3.167 | 1.8113 | -0.032411 | -1.2239 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 2961 | 3.113 | 1.8191 | 0.017779 | -1.229 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 33586 | 0.044329 | 0.0067808 | -0.34414 | -1.0332 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 2961 | 0.05072 | 0.0018976 | -4.514 | 32.055 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 36414 | -0.0005124 | 0.0021479 | -0.17442 | -0.72585 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 48714 |-0.00054808 | 0.0021867 | -0.14309 | -0.79894 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 33482 |-0.00057972 | 0.0023218 | -0.085238 | -1.0208 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 45405 |-0.00056891 | 0.0023135 | -0.098344 | -0.99929 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2932 |-0.00020135 | 0.00095104 | -0.7312 | 2.5575 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3309 |-0.00042573 | 0.0011881 | -1.006 | 1.659 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 33482 | 3.1664 | 1.8119 | -0.03237 | -1.225 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 2932 | 3.1147 | 1.8193 | 0.014314 | -1.2288 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 33482 | 0.04432 | 0.0067853 | -0.34268 | -1.0365 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 2932 | 0.050708 | 0.001902 | -4.5124 | 31.953 | RiCKMCResDownstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResDownstream10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 5826 | 9110.4 | 8044 | 0 | -3 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2359 | 17621 | 10768 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 5828 | 9178.5 | 8027.4 | 0 | -3 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2372 | 17590 | 10747 | 0 | -3 | RiCKMCResLong10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResLong10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 29217 | 17779 | 12779 | 33.116 | 143.53 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 23481 | 22872 | 14422 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 29036 | 17843 | 12777 | 33.286 | 144.18 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 23441 | 22891 | 14431 | 0 | -3 | RiCKMCResUpstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResUpstream10to70" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 2961 | 20838 | 12325 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 2932 | 20992 | 12290 | 0 | -3 | RiCKMCResDownstream10to70 SUCCESS Booked 22 Histogram(s) : 1D=20 1DProf=2 RichPIDMonDownstream2to100 SUCCESS Booked 4 Histogram(s) : 1D=3 2D=1 RichPIDMonDownstream10to70 SUCCESS Booked 4 Histogram(s) : 1D=3 2D=1 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref index 76956b6881f..e495caeab3c 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref @@ -13,94 +13,94 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 100 | | "Nb events removed" | 4 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | - | "Nb of Produced Tracks" | 96 | 21042 | 219.19 | + | "Nb of Produced Tracks" | 96 | 20869 | 217.39 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 21042 | 219.19 | + | "Nb of Produced Tracks" | 96 | 20869 | 217.39 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 95 | 6048 | 63.663 | + | "Nb output tracks" | 95 | 6042 | 63.600 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 6048 | 63.000 | + | "Nb of Produced Tracks" | 96 | 6042 | 62.938 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 96 | 13000 | 135.42 | - | "#tracks" | 96 | 3439 | 35.823 | + | "#seeds" | 96 | 12938 | 134.77 | + | "#tracks" | 96 | 3444 | 35.875 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 1621 | - | "Created long tracks" | 96 | 2125 | 22.135 | + | "2nd Loop" | 1618 | + | "Created long tracks" | 96 | 2132 | 22.208 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2125 | 22.135 | + | "Nb of Produced Tracks" | 96 | 2132 | 22.208 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 3439 | 35.823 | + | "Nb of Produced Tracks" | 96 | 3444 | 35.875 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2125 | 22.135 | + | "Nb of Produced Tracks" | 96 | 2132 | 22.208 | TracksFitConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2125 | 22.135 | + | "Nb of Produced Tracks" | 96 | 2132 | 22.208 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 6713 | | "#UT hits added" | 26456 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 16481 | 89044.74 | 5.4029 | - | "#MatchingTracks" | 95 | 6008 | 63.242 | - | "TracksMLP" | 16481 | 5860.012 | 0.35556 | + | "#MatchingChi2" | 16479 | 89073.07 | 5.4052 | + | "#MatchingTracks" | 95 | 6005 | 63.211 | + | "TracksMLP" | 16479 | 5857.469 | 0.35545 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | TrackBestTrackCreator SUCCESS Number of counters : 32 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 28179 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2293 | 1193 |( 52.02791 +- 1.043303)% | - | "Downstream.chisqProbSum" | 2293 | 343.81 | 0.14994 | - |*"Downstream.flipCharge" | 2293 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2293 | 1232.517 | 0.53751 | - | "Downstream.numOutliers" | 2293 | 2513 | 1.0959 | - |*"FitFailed" | 28179 | 0 |( 0.000000 +- 0.000000)% | - |*"Long.badChisq" | 7557 | 2653 |( 35.10652 +- 0.5490599)% | - | "Long.chisqProbSum" | 7557 | 1838.235 | 0.24325 | - |*"Long.flipCharge" | 7557 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 7557 | 1224.38 | 0.16202 | - | "Long.numOutliers" | 7557 | 6720 | 0.88924 | + |*"BadInput" | 28005 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2298 | 1194 |( 51.95822 +- 1.042225)% | + | "Downstream.chisqProbSum" | 2298 | 345.7526 | 0.15046 | + |*"Downstream.flipCharge" | 2298 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2298 | 1234.031 | 0.53700 | + | "Downstream.numOutliers" | 2298 | 2520 | 1.0966 | + |*"FitFailed" | 28005 | 0 |( 0.000000 +- 0.000000)% | + |*"Long.badChisq" | 7548 | 2650 |( 35.10864 +- 0.5493947)% | + | "Long.chisqProbSum" | 7548 | 1839.142 | 0.24366 | + |*"Long.flipCharge" | 7548 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 7548 | 1220.931 | 0.16176 | + | "Long.numOutliers" | 7548 | 6703 | 0.88805 | |*"Ttrack.badChisq" | 2738 | 60 |( 2.191381 +- 0.2797891)% | - | "Ttrack.chisqProbSum" | 2738 | 1088.855 | 0.39768 | + | "Ttrack.chisqProbSum" | 2738 | 1089.201 | 0.39781 | |*"Ttrack.flipCharge" | 2738 | 41 |( 1.497443 +- 0.2321038)% | - | "Ttrack.ghostProbability" | 2738 | 127.2537 | 0.046477 | - | "Ttrack.numOutliers" | 2738 | 965 | 0.35245 | - |*"Upstream.badChisq" | 878 | 201 |( 22.89294 +- 1.417916)% | - | "Upstream.chisqProbSum" | 878 | 285.333 | 0.32498 | - |*"Upstream.flipCharge" | 878 | 18 |( 2.050114 +- 0.4782376)% | - | "Upstream.ghostProbability" | 878 | 190.0004 | 0.21640 | - | "Upstream.numOutliers" | 878 | 397 | 0.45216 | - |*"Velo.badChisq" | 6678 | 1713 |( 25.65139 +- 0.5344028)% | - | "Velo.chisqProbSum" | 6678 | 1978.878 | 0.29633 | - |*"Velo.flipCharge" | 6678 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 6678 | 694.2524 | 0.10396 | - | "Velo.numOutliers" | 6678 | 4652 | 0.69662 | - |*"VeloBackward.badChisq" | 8035 | 502 |( 6.247666 +- 0.2699958)% | - | "VeloBackward.chisqProbSum" | 8035 | 3585.989 | 0.44630 | - |*"VeloBackward.flipCharge" | 8035 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 8035 | 646.3848 | 0.080446 | - | "VeloBackward.numOutliers" | 8035 | 2233 | 0.27791 | + | "Ttrack.ghostProbability" | 2738 | 127.1888 | 0.046453 | + | "Ttrack.numOutliers" | 2738 | 964 | 0.35208 | + |*"Upstream.badChisq" | 879 | 200 |( 22.75313 +- 1.414056)% | + | "Upstream.chisqProbSum" | 879 | 283.5577 | 0.32259 | + |*"Upstream.flipCharge" | 879 | 18 |( 2.047782 +- 0.4776992)% | + | "Upstream.ghostProbability" | 879 | 191.6806 | 0.21807 | + | "Upstream.numOutliers" | 879 | 402 | 0.45734 | + |*"Velo.badChisq" | 6616 | 1705 |( 25.77086 +- 0.5377172)% | + | "Velo.chisqProbSum" | 6616 | 1960.569 | 0.29634 | + |*"Velo.flipCharge" | 6616 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 6616 | 670.3784 | 0.10133 | + | "Velo.numOutliers" | 6616 | 4605 | 0.69604 | + |*"VeloBackward.badChisq" | 7926 | 487 |( 6.144335 +- 0.2697371)% | + | "VeloBackward.chisqProbSum" | 7926 | 3551.315 | 0.44806 | + |*"VeloBackward.flipCharge" | 7926 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 7926 | 605.4403 | 0.076387 | + | "VeloBackward.numOutliers" | 7926 | 2169 | 0.27366 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | - | "Nb PVs" | 96 | 448 | 4.6667 | + | "Nb PVs" | 96 | 450 | 4.6875 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | @@ -126,116 +126,116 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 96 | 652 | 6.7917 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | - | "#tracks in acceptance" | 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | - | "#tracks in acceptance" | 96 | 7680 | 80.000 | 44.808 | 0.0000 | 187.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 7677 | 79.969 | 44.745 | 0.0000 | 187.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7680 | 80.000 | 44.808 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.745 | 0.0000 | 187.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7680 | 80.000 | 44.808 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.745 | 0.0000 | 187.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 1218600 | 12694. | 11241. | 0.0000 | 46291. | - | "#chi2" | 358941 |1.645256e+08 | 458.36 | 291.61 | 0.00012421 | 1000.0 | - | "#good tracks" | 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | - | "#links in table" | 96 | 358941 | 3739.0 | 3716.1 | 0.0000 | 15083. | + | "#above threshold" | 96 | 1217795 | 12685. | 11220. | 0.0000 | 45777. | + | "#chi2" | 358682 |1.64423e+08 | 458.41 | 291.63 | 0.00012421 | 1000.0 | + | "#good tracks" | 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | + | "#links in table" | 96 | 358682 | 3736.3 | 3709.1 | 0.0000 | 14961. | | "#total calos" | 96 | 14626 | 152.35 | 73.922 | 0.0000 | 318.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 96 | 7690 | 80.104 | 47.246 | 0.0000 | 190.00 | - | "photonHypos" | 96 | 9589 | 99.885 | 46.931 | 0.0000 | 210.00 | + | "electronHypos" | 96 | 7691 | 80.115 | 47.236 | 0.0000 | 190.00 | + | "photonHypos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 779106 | 8115.7 | 8312.5 | 0.0000 | 33588. | - | "#chi2" | 91639 |3.976363e+08 | 4339.2 | 2954.1 | 0.065218 | 9999.9 | - | "#good tracks" | 96 | 8189 | 85.302 | 48.037 | 0.0000 | 202.00 | - | "#links in table" | 96 | 91639 | 954.57 | 879.16 | 0.0000 | 3821.0 | - | "#total calos" | 96 | 7690 | 80.104 | 47.246 | 0.0000 | 190.00 | + | "#above threshold" | 96 | 778584 | 8110.2 | 8297.9 | 0.0000 | 33536. | + | "#chi2" | 91586 |3.974493e+08 | 4339.6 | 2954.3 | 0.065218 | 9999.9 | + | "#good tracks" | 96 | 8186 | 85.271 | 47.949 | 0.0000 | 202.00 | + | "#links in table" | 96 | 91586 | 954.02 | 877.91 | 0.0000 | 3821.0 | + | "#total calos" | 96 | 7691 | 80.115 | 47.236 | 0.0000 | 190.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13248 | 138.00 | 80.426 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | - | "#tracks in acceptance" | 96 | 8735 | 90.990 | 55.335 | 0.0000 | 219.00 | + | "#links in table" | 96 | 13180 | 137.29 | 80.308 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8717 | 90.802 | 55.321 | 0.0000 | 221.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 777446 | 8098.4 | 7820.8 | 0.0000 | 32365. | - | "#chi2" | 324437 |1.507851e+09 | 4647.6 | 2885.4 | 0.00077800 | 10000. | - | "#good tracks" | 96 | 8735 | 90.990 | 55.335 | 0.0000 | 219.00 | - | "#links in table" | 96 | 324437 | 3379.6 | 2903.9 | 0.0000 | 12155. | - | "#total calos" | 96 | 9589 | 99.885 | 46.931 | 0.0000 | 210.00 | + | "#above threshold" | 96 | 775807 | 8081.3 | 7810.7 | 0.0000 | 31837. | + | "#chi2" | 323939 |1.505512e+09 | 4647.5 | 2884.8 | 0.00077800 | 10000. | + | "#good tracks" | 96 | 8717 | 90.802 | 55.321 | 0.0000 | 221.00 | + | "#links in table" | 96 | 323939 | 3374.4 | 2905.4 | 0.0000 | 12053. | + | "#total calos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13248 | 138.00 | 80.426 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#links in table" | 96 | 13180 | 137.29 | 80.308 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13248 | 138.00 | 80.426 | 0.0000 | 320.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13180 | 137.29 | 80.308 | 0.0000 | 317.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.830 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25258 | 263.10 | 144.62 | 0.0000 | 640.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.752 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25085 | 261.30 | 143.65 | 0.0000 | 633.00 | RichRecoStatsDownstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 96 | 168861 | 1759.0 | 1926.1 | 0.0000 | 8810.0 | - | "# Rich1Gas Segments" | 96 | 977 | 10.177 | 7.2385 | 0.0000 | 34.000 | - | "# Rich2Gas Photons" | 96 | 18397 | 191.64 | 219.07 | 0.0000 | 912.00 | - | "# Rich2Gas Segments" | 96 | 389 | 4.0521 | 3.2416 | 0.0000 | 15.000 | - | "# Selected Tracks" | 96 | 1096 | 11.417 | 8.0644 | 0.0000 | 37.000 | - |*"RICH selection efficiency" | 1237 | 1096 |( 88.60146 +- 0.9035668)% | + | "# Rich1Gas Photons" | 96 | 169672 | 1767.4 | 1933.2 | 0.0000 | 8810.0 | + | "# Rich1Gas Segments" | 96 | 981 | 10.219 | 7.2818 | 0.0000 | 34.000 | + | "# Rich2Gas Photons" | 96 | 18467 | 192.36 | 218.93 | 0.0000 | 912.00 | + | "# Rich2Gas Segments" | 96 | 391 | 4.0729 | 3.2476 | 0.0000 | 15.000 | + | "# Selected Tracks" | 96 | 1100 | 11.458 | 8.1060 | 0.0000 | 37.000 | + |*"RICH selection efficiency" | 1241 | 1100 |( 88.63820 +- 0.9008412)% | RichDLLsDownstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 96 | 1096 | 11.417 | 8.0644 | 0.0000 | 37.000 | - |*"Used RICH1 and RICH2" | 1096 | 270 |( 24.63504 +- 1.301536)% | - |*"Used RICH1 only" | 1096 | 707 |( 64.50730 +- 1.445336)% | - |*"Used RICH2 only" | 1096 | 119 |( 10.85766 +- 0.9397340)% | + | "# PIDs" | 96 | 1100 | 11.458 | 8.1060 | 0.0000 | 37.000 | + |*"Used RICH1 and RICH2" | 1100 | 272 |( 24.72727 +- 1.300800)% | + |*"Used RICH1 only" | 1100 | 709 |( 64.45455 +- 1.443187)% | + |*"Used RICH2 only" | 1100 | 119 |( 10.81818 +- 0.9365241)% | RichRecoStatsLong INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 96 | 664843 | 6925.4 | 6812.1 | 0.0000 | 28173. | - | "# Rich1Gas Segments" | 96 | 4419 | 46.031 | 28.428 | 0.0000 | 115.00 | - | "# Rich2Gas Photons" | 96 | 161354 | 1680.8 | 1516.3 | 0.0000 | 5770.0 | - | "# Rich2Gas Segments" | 96 | 3007 | 31.323 | 19.161 | 0.0000 | 80.000 | - | "# Selected Tracks" | 96 | 5548 | 57.792 | 34.415 | 0.0000 | 138.00 | - |*"RICH selection efficiency" | 5850 | 5548 |( 94.83761 +- 0.2892930)% | + | "# Rich1Gas Photons" | 96 | 663478 | 6911.2 | 6784.5 | 0.0000 | 28219. | + | "# Rich1Gas Segments" | 96 | 4418 | 46.021 | 28.420 | 0.0000 | 116.00 | + | "# Rich2Gas Photons" | 96 | 161133 | 1678.5 | 1512.5 | 0.0000 | 5681.0 | + | "# Rich2Gas Segments" | 96 | 3002 | 31.271 | 19.116 | 0.0000 | 80.000 | + | "# Selected Tracks" | 96 | 5545 | 57.760 | 34.389 | 0.0000 | 139.00 | + |*"RICH selection efficiency" | 5845 | 5545 |( 94.86741 +- 0.2886255)% | RichDLLsLong INFO Number of counters : 4 | Counter | - | "# PIDs" | 96 | 5548 | 57.792 | 34.415 | 0.0000 | 138.00 | - |*"Used RICH1 and RICH2" | 5548 | 1878 |( 33.85004 +- 0.6352960)% | - |*"Used RICH1 only" | 5548 | 2541 |( 45.80029 +- 0.6689049)% | - |*"Used RICH2 only" | 5548 | 1129 |( 20.34968 +- 0.5405107)% | + | "# PIDs" | 96 | 5545 | 57.760 | 34.389 | 0.0000 | 139.00 | + |*"Used RICH1 and RICH2" | 5545 | 1875 |( 33.81425 +- 0.6353036)% | + |*"Used RICH1 only" | 5545 | 2543 |( 45.86114 +- 0.6691542)% | + |*"Used RICH2 only" | 5545 | 1127 |( 20.32462 +- 0.5404089)% | RichRecoStatsUpstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 96 | 77825 | 810.68 | 992.64 | 0.0000 | 5898.0 | - | "# Rich1Gas Segments" | 96 | 621 | 6.4688 | 4.9370 | 0.0000 | 23.000 | + | "# Rich1Gas Photons" | 96 | 77628 | 808.62 | 991.85 | 0.0000 | 5898.0 | + | "# Rich1Gas Segments" | 96 | 620 | 6.4583 | 4.9559 | 0.0000 | 23.000 | | "# Rich2Gas Photons" | 96 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "# Rich2Gas Segments" | 96 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "# Selected Tracks" | 96 | 621 | 6.4688 | 4.9370 | 0.0000 | 23.000 | - |*"RICH selection efficiency" | 720 | 621 |( 86.25000 +- 1.283408)% | + | "# Selected Tracks" | 96 | 620 | 6.4583 | 4.9559 | 0.0000 | 23.000 | + |*"RICH selection efficiency" | 719 | 620 |( 86.23088 +- 1.285050)% | RichDLLsUpstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 96 | 621 | 6.4688 | 4.9370 | 0.0000 | 23.000 | - |*"Used RICH1 and RICH2" | 621 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 621 | 621 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 621 | 0 |( 0.000000 +- 0.000000)% | + | "# PIDs" | 96 | 620 | 6.4583 | 4.9559 | 0.0000 | 23.000 | + |*"Used RICH1 and RICH2" | 620 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 620 | 620 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 620 | 0 |( 0.000000 +- 0.000000)% | ClusterMonitorEcalClusters SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Monitor /Event/CaloFutureClusterCovarianceAlg/O| 95 | 14626 | 153.96 | 72.629 | 10.000 | 318.00 | @@ -265,54 +265,54 @@ ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2497 | 202854.2 | 81.239 | 0.45853 | 81.241 | 81.241 | | " Middle" | 2271 | 216429.8 | 95.302 | 0.62461 | 95.304 | 95.304 | - | " Outer" | 2922 | 318135 | 108.88 | 0.49639 | 108.88 | 108.88 | + | " Outer" | 2923 | 318243.8 | 108.88 | 0.49769 | 108.88 | 108.88 | | " Inner" | 2497 | 36899.3 | 14.777 | 0.087087 | 14.778 | 14.778 | | " Middle" | 2271 | 32782.23 | 14.435 | 0.0000 | 14.435 | 14.435 | - | " Outer" | 2922 | 42703.34 | 14.614 | 0.033670 | 14.614 | 14.614 | - | "Delta(Z)" | 7690 | 890306.9 | 115.77 | 11.332 | 79.082 | 173.00 | + | " Outer" | 2923 | 42717.96 | 14.614 | 0.033664 | 14.614 | 14.614 | + | "Delta(Z)" | 7691 | 890432.2 | 115.78 | 11.332 | 79.082 | 173.00 | | "Delta(Z) Inner" | 2497 | 282079.2 | 112.97 | 10.847 | 79.082 | 151.50 | - | "Delta(Z) Middle" | 2271 | 259771.8 | 114.39 | 10.362 | 82.952 | 153.95 | - | "Delta(Z) Outer" | 2922 | 348455 | 119.25 | 11.563 | 90.924 | 173.00 | + | "Delta(Z) Middle" | 2271 | 259771.7 | 114.39 | 10.362 | 82.952 | 153.95 | + | "Delta(Z) Outer" | 2923 | 348580.3 | 119.25 | 11.561 | 90.924 | 173.00 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 7690 | -2173.042 | -0.28258 | 11.979 | -23.059 | 22.930 | - | "Delta(Y)" | 7690 | -691.9568 | -0.089981 | 11.925 | -23.059 | 22.930 | + | "Delta(X)" | 7691 | -2153.698 | -0.28003 | 11.980 | -23.059 | 22.930 | + | "Delta(Y)" | 7691 | -707.6002 | -0.092004 | 11.926 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2497 | 2486.189 | 0.99567 | 0.019427 | 0.96514 | 1.1151 | | " Middle" | 2271 | 2286.141 | 1.0067 | 0.018798 | 0.97699 | 1.1113 | - | " Outer" | 2922 | 2923.594 | 1.0005 | 0.014456 | 0.97413 | 1.0473 | - | "Corrected energy" | 7690 |4.97293e+07 | 6466.7 | 7155.4 | 398.04 | 1.1680e+05 | - | "Delta(E)" | 7690 | 1573334 | 204.59 | 203.86 | -2370.9 | 3316.7 | - | "Pileup offset" | 7690 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 7690 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 7690 | 7690 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 2923 | 2924.591 | 1.0005 | 0.014456 | 0.97413 | 1.0473 | + | "Corrected energy" | 7691 |4.973368e+07 | 6466.5 | 7155.0 | 398.04 | 1.1680e+05 | + | "Delta(E)" | 7691 | 1573509 | 204.59 | 203.85 | -2370.9 | 3316.7 | + | "Pileup offset" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 7691 | 7691 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2705 | 219751 | 81.239 | 0.51949 | 81.241 | 81.241 | | " Middle" | 2369 | 225768.9 | 95.301 | 0.62857 | 95.304 | 95.304 | - | " Outer" | 4515 | 491572.8 | 108.88 | 0.97408 | 108.88 | 108.88 | + | " Outer" | 4514 | 491464 | 108.88 | 0.97374 | 108.88 | 108.88 | | " Inner" | 2705 | 39972.98 | 14.777 | 0.085987 | 14.778 | 14.778 | | " Middle" | 2369 | 34196.72 | 14.435 | 0.0000 | 14.435 | 14.435 | - | " Outer" | 4515 | 65982.42 | 14.614 | 0.071276 | 14.614 | 14.614 | - | "Delta(Z)" | 9589 | 1026932 | 107.09 | 11.382 | 76.478 | 159.46 | + | " Outer" | 4514 | 65967.8 | 14.614 | 0.071381 | 14.614 | 14.614 | + | "Delta(Z)" | 9588 | 1026808 | 107.09 | 11.381 | 76.478 | 159.46 | | "Delta(Z) Inner" | 2705 | 290146.4 | 107.26 | 11.677 | 76.478 | 149.83 | | "Delta(Z) Middle" | 2369 | 250650.5 | 105.80 | 10.443 | 79.570 | 147.36 | - | "Delta(Z) Outer" | 4515 | 486135.5 | 107.67 | 11.620 | 78.073 | 159.46 | + | "Delta(Z) Outer" | 4514 | 486010.8 | 107.67 | 11.618 | 78.073 | 159.46 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 9589 | 666.829 | 0.069541 | 12.580 | -23.059 | 22.930 | - | "Delta(Y)" | 9589 | 1574.903 | 0.16424 | 12.574 | -23.059 | 22.930 | + | "Delta(X)" | 9588 | 647.4838 | 0.067531 | 12.579 | -23.059 | 22.930 | + | "Delta(Y)" | 9588 | 1590.546 | 0.16589 | 12.574 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2705 | 2687.988 | 0.99371 | 0.019166 | 0.96447 | 1.1151 | | " Middle" | 2369 | 2379.26 | 1.0043 | 0.018461 | 0.97671 | 1.1078 | - | " Outer" | 4515 | 4498.049 | 0.99625 | 0.015263 | 0.97356 | 1.0515 | - | "Corrected energy" | 9589 |3.59235e+07 | 3746.3 | 5554.4 | 169.51 | 1.0401e+05 | - | "Delta(E)" | 9589 | -113455.5 | -11.832 | 136.02 | -2685.6 | 3043.0 | - | "Pileup offset" | 9589 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 9589 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 9589 | 9589 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 4514 | 4497.053 | 0.99625 | 0.015268 | 0.97356 | 1.0515 | + | "Corrected energy" | 9588 |3.59193e+07 | 3746.3 | 5554.7 | 169.51 | 1.0401e+05 | + | "Delta(E)" | 9588 | -113441.7 | -11.832 | 136.02 | -2685.6 | 3043.0 | + | "Pileup offset" | 9588 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 9588 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 9588 | 9588 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 138 | 11211.28 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -360,12 +360,12 @@ CaloFutureShowerOverlap.PhotonSh... SUCCESS Number of counters : 2 | "Delta(Y)" | 33556 | 2629.253 | 0.078354 | 12.667 | -26.158 | 22.930 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5275 | 33884 | 6.4235 | - | "#tracks with hits added" | 5275 | + | "#UT hits added" | 5272 | 33836 | 6.4181 | + | "#tracks with hits added" | 5272 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5280 | 33835 | 6.4081 | - | "#tracks with hits added" | 5280 | + | "#UT hits added" | 5281 | 33814 | 6.4030 | + | "#tracks with hits added" | 5281 | RichRecPixelClusters SUCCESS 1D histograms in directory "RICH/RichRecPixelClusters" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1/clusterSize | "Rich1 Pixel Cluster Sizes" | 204899 | 1.2895 | 0.96188 | 8.0268 | 136.68 | @@ -381,50 +381,50 @@ RichRecPixelQC SUCCESS 1D histograms in directory "RICH/Ric RiCKResDownstream SUCCESS 1D histograms in directory "RICH/RiCKResDownstream" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 12770 | 7.3154e-05 | 0.0020787 | -0.22508 | -0.43933 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 23166 | 8.7682e-05 | 0.002136 | -0.19232 | -0.47735 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 23166 | 3.1465 | 1.7974 |-0.00082714 | -1.16 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 23166 | 0.04731 | 0.0063186 | -1.0918 | 0.11369 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 10396 | 0.00010594 | 0.0022057 | -0.16014 | -0.53367 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 23275 | 9.0588e-05 | 0.0021337 | -0.19289 | -0.47333 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 23275 | 3.1459 | 1.7979 |-0.00040748 | -1.1616 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 23275 | 0.047306 | 0.0063286 | -1.0933 | 0.11229 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 10505 | 0.00011224 | 0.0021999 | -0.1619 | -0.52432 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 7158 | 5.2946e-05 | 0.0012636 | -0.045126 | -0.90337 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 7098 | 0.00014107 | 0.0012545 | -0.06006 | -0.85031 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14256 | 9.6494e-05 | 0.0012599 | -0.053068 | -0.87625 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14256 | 3.07 | 1.7914 | 0.078619 | -1.1765 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14256 | 0.027208 | 0.0040711 | -1.8341 | 3.4404 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 7114 | 0.00014167 | 0.0012538 | -0.059863 | -0.84869 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14272 | 9.686e-05 | 0.0012595 | -0.053042 | -0.87539 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14272 | 3.0703 | 1.7919 | 0.078124 | -1.1776 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14272 | 0.027209 | 0.0040691 | -1.8353 | 3.4474 | RiTkMaterialDownstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialDownstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 378 | 0.037628 | 0.00095573 | 3.0141 | 6.065 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 378 | 3.4614e-05 | 5.7521e-12 |-7.7227e+12 | 1.5265e+17 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 378 | 1073 | 15.72 | -0.099997 | -1.2027 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 951 | 0.055463 | 0.040928 | 0.61461 | -1.4926 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 951 | 2.3643e-05 | 1.5746e-05 | 0.61618 | -1.5166 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 951 | 2226.8 | 240.33 | -0.21405 | -0.81454 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 379 | 0.03763 | 0.00095489 | 3.0066 | 6.0437 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 379 | 3.4614e-05 | 5.7521e-12 |-7.7227e+12 | 1.5265e+17 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 379 | 1073 | 15.736 | -0.10253 | -1.2074 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 955 | 0.055426 | 0.040925 | 0.61683 | -1.4903 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 955 | 2.3628e-05 | 1.5744e-05 | 0.61801 | -1.5149 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 955 | 2226.7 | 240.17 | -0.21259 | -0.81505 | RiTkSignalYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 10 | 7.252 | 8.9932 | 1.5064 | 1.2698 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 977 | 36.166 | 4.1401 | -2.1685 | 6.1653 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 170 | 19.601 | 9.7637 | -0.059425 | -0.95066 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 912 | 25.379 | 10.035 | -0.64946 | -0.4787 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 771 | 22.931 | 11.254 | -0.44846 | -0.96038 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 981 | 36.153 | 4.1622 | -2.1715 | 6.1191 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 171 | 19.577 | 9.7402 | -0.052424 | -0.94332 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 916 | 25.378 | 10.024 | -0.6482 | -0.47761 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 774 | 22.942 | 11.229 | -0.44606 | -0.95923 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 57 | 16.23 | 9.1087 | -0.19155 | -1.0456 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 4 | 7.2897 | 4.921 | -0.23033 | -1.4882 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 389 | 17.658 | 6.5888 | -0.62443 | -0.81818 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 391 | 17.671 | 6.5763 | -0.62991 | -0.80741 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 105 | 10.85 | 6.0312 | -0.17189 | -1.078 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 377 | 16.247 | 6.6459 | -0.64479 | -0.84948 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 360 | 15.53 | 6.5575 | -0.6353 | -0.87947 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 379 | 16.256 | 6.6293 | -0.64982 | -0.8361 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 362 | 15.535 | 6.5402 | -0.63929 | -0.86658 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 31 | 7.8484 | 5.6762 | 0.58936 | -0.67795 | RiTkEmittedYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 10 | 124.48 | 143.52 | 1.5334 | 1.4675 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 977 | 592.12 | 56.738 | -3.5931 | 13.007 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 175 | 319.85 | 161.34 | -0.20298 | -0.99897 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 914 | 418.02 | 158.59 | -0.76399 | -0.41754 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 784 | 374.28 | 182.04 | -0.53806 | -0.95225 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 981 | 591.94 | 57.156 | -3.5703 | 12.776 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 176 | 319.41 | 160.98 | -0.1956 | -0.99466 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 918 | 418.02 | 158.42 | -0.76262 | -0.41531 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 788 | 374.04 | 182.02 | -0.53513 | -0.95147 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 60 | 258.71 | 155.55 | -0.10644 | -1.0813 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 5 | 99.495 | 83.149 | 0.19383 | -1.56 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1192 | 408.26 | 52.276 | -0.23821 | -0.85419 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1197 | 408.31 | 52.244 | -0.23822 | -0.85358 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 110 | 168.3 | 96.745 | -0.23513 | -1.2419 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 788 | 242.37 | 106.3 | -0.84301 | -0.47901 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 597 | 229.3 | 102.77 | -0.68965 | -0.67158 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 791 | 242.31 | 106.47 | -0.84277 | -0.48391 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 599 | 229.51 | 102.68 | -0.69356 | -0.66442 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 32 | 123.5 | 86.286 | 0.5304 | -0.74419 | RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -433,387 +433,387 @@ RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/Ric | All/Rejected/GhostProb | "Track Ghost Probability" | 141 | 0.18209 | 0.11103 | 0.14787 | -1.0182 | | All/Rejected/P | "Track Momentum" | 141 | 3885.8 | 1259.7 | 0.83936 | 0.57721 | | All/Rejected/Pt | "Track Transverse Momentum" | 141 | 117.14 | 50.327 | 2.4611 | 4.0411 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1096 | 1.4531 | 0.64162 | 0.46507 | -0.58232 | - | All/Selected/CloneDist | "Track Clone Distance" | 1096 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 1096 | 0.058837 | 0.097431 | 1.918 | 2.5526 | - | All/Selected/P | "Track Momentum" | 1096 | 7446 | 8129.4 | 3.5277 | 18.571 | - | All/Selected/Pt | "Track Transverse Momentum" | 1096 | 417.29 | 400.22 | 3.1101 | 15.646 | - | nRichTracks | "# Rich Tracks / Event" | 96 | 11.417 | 8.0644 | 0.7853 | 0.38003 | - | nTracks | "# Tracks / Event" | 96 | 12.885 | 8.8681 | 0.73071 | 0.21649 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1100 | 1.4515 | 0.64146 | 0.46614 | -0.57802 | + | All/Selected/CloneDist | "Track Clone Distance" | 1100 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 1100 | 0.058671 | 0.097311 | 1.9231 | 2.5745 | + | All/Selected/P | "Track Momentum" | 1100 | 7443.4 | 8117.7 | 3.5307 | 18.621 | + | All/Selected/Pt | "Track Transverse Momentum" | 1100 | 417.38 | 399.72 | 3.1111 | 15.67 | + | nRichTracks | "# Rich Tracks / Event" | 96 | 11.458 | 8.106 | 0.77075 | 0.31463 | + | nTracks | "# Tracks / Event" | 96 | 12.927 | 8.9025 | 0.71797 | 0.16664 | RichRecPixBkgsDownstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsDownstream" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.086542 | 0.0753 | 1.2986 | 1.6881 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.043977 | 0.035197 | 1.8737 | 5.3141 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.086531 | 0.075295 | 1.2992 | 1.6898 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.043978 | 0.035198 | 1.8733 | 5.3129 | RichDLLsDownstream SUCCESS 1D histograms in directory "RICH/RichDLLsDownstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 1096 | 0.42875 | 11.59 | -0.33285 | 3.5089 | - | deuteron/dll | "deuteron DLL" | 1096 | 0.3974 | 11.554 | -0.34695 | 3.516 | - | electron/dll | "electron DLL" | 1096 | -7.7428 | 14.931 | 0.3135 | 1.0283 | - | kaon/dll | "kaon DLL" | 1096 | -0.49339 | 11.238 | -0.79504 | 3.4908 | - | muon/dll | "muon DLL" | 1096 | -3.2425 | 7.7203 | -1.3093 | 5.7647 | - | pion/dll | "pion DLL" | 1096 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 1096 | 0.22717 | 11.454 | -0.46804 | 3.4147 | + | below_threshold/dll | "below_threshold DLL" | 1100 | 0.37403 | 11.663 | -0.36262 | 3.4988 | + | deuteron/dll | "deuteron DLL" | 1100 | 0.3428 | 11.627 | -0.3767 | 3.5061 | + | electron/dll | "electron DLL" | 1100 | -7.8376 | 14.93 | 0.30248 | 1.0417 | + | kaon/dll | "kaon DLL" | 1100 | -0.55019 | 11.331 | -0.82709 | 3.5183 | + | muon/dll | "muon DLL" | 1100 | -3.269 | 7.7512 | -1.3175 | 5.7182 | + | pion/dll | "pion DLL" | 1100 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 1100 | 0.17236 | 11.529 | -0.49625 | 3.4059 | RiTkDetectableYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 10 | 10.641 | 13.388 | 1.5943 | 1.5898 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 977 | 54.392 | 5.212 | -3.6023 | 13.061 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 170 | 29.689 | 14.473 | -0.16523 | -1.0216 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 912 | 38.121 | 14.78 | -0.75974 | -0.42841 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 771 | 34.522 | 16.598 | -0.54054 | -0.93789 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 981 | 54.376 | 5.2504 | -3.5749 | 12.802 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 171 | 29.641 | 14.444 | -0.15652 | -1.0188 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 916 | 38.121 | 14.764 | -0.7584 | -0.42607 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 774 | 34.542 | 16.561 | -0.53764 | -0.93626 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 57 | 24.388 | 13.817 | -0.11089 | -1.0045 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 4 | 11.33 | 7.2378 | -0.17232 | -1.4091 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 389 | 34.426 | 2.2575 | -0.22182 | -0.52651 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 391 | 34.431 | 2.2545 | -0.22627 | -0.52258 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 105 | 16.313 | 8.9015 | -0.28247 | -1.1906 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 377 | 30.073 | 3.4638 | -1.456 | 3.7193 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 360 | 27.458 | 5.0024 | -1.0971 | 1.0311 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 379 | 30.078 | 3.4602 | -1.4552 | 3.7215 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 362 | 27.459 | 4.9955 | -1.0959 | 1.033 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 31 | 11.658 | 8.1727 | 0.53684 | -0.73074 | RiTkGeomEffsDownstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 10 | 0.67057 | 0.079816 | 0.021429 | -1.1282 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 977 | 0.66493 | 0.041407 | -1.0303 | 8.1854 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 170 | 0.66196 | 0.058294 | 0.074453 | 0.52077 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 912 | 0.66589 | 0.051707 | -0.34202 | 0.49921 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 771 | 0.66073 | 0.06367 | -1.5315 | 9.4399 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 981 | 0.66488 | 0.041327 | -1.0296 | 8.2216 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 171 | 0.66229 | 0.058284 | 0.061016 | 0.50491 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 916 | 0.66587 | 0.051875 | -0.35525 | 0.50069 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 774 | 0.66068 | 0.063621 | -1.5294 | 9.4295 | | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 57 | 0.66528 | 0.04639 | -0.085161 | -0.53203 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 4 | 0.60145 | 0.070724 | -0.2574 | -1.7558 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 389 | 0.51944 | 0.20145 | -0.64539 | -0.9914 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 391 | 0.51971 | 0.20106 | -0.64913 | -0.98202 | | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 105 | 0.66723 | 0.065944 | -0.99342 | 1.6332 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 377 | 0.53058 | 0.19834 | -0.73101 | -0.75731 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 360 | 0.54748 | 0.19014 | -0.90203 | -0.33191 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 379 | 0.53083 | 0.19788 | -0.73585 | -0.7442 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 362 | 0.54784 | 0.18986 | -0.90446 | -0.32199 | | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 31 | 0.66597 | 0.070596 | -0.32715 | -0.31318 | RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResDownstreamTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 7631 |-7.8835e-05 | 0.0020816 | -0.28139 | -0.44567 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 13494 |-9.3001e-05 | 0.0021354 | -0.2653 | -0.48641 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 13494 | 3.136 | 1.7933 | 0.0059602 | -1.1579 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 13494 | 0.047203 | 0.0062109 | -1.0333 | 0.030309 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 5863 |-0.00011191 | 0.002205 | -0.24379 | -0.547 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 13603 | -8.644e-05 | 0.002132 | -0.26667 | -0.47834 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 13603 | 3.135 | 1.7942 | 0.006629 | -1.1606 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 13603 | 0.047198 | 0.0062284 | -1.0368 | 0.030185 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 5972 |-9.6381e-05 | 0.0021962 | -0.24832 | -0.52777 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 2540 |-6.4129e-06 | 0.0012192 | -0.049985 | -0.80352 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 2807 | 0.00013946 | 0.0011361 | -0.043651 | -0.65016 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 5347 | 6.8943e-05 | 0.0011793 | -0.059814 | -0.71622 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 5347 | 3.0377 | 1.8019 | 0.10296 | -1.2109 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 5347 | 0.026695 | 0.0045024 | -1.5533 | 1.8782 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 2823 | 0.00014104 | 0.0011351 | -0.042115 | -0.64751 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 5363 | 7.0051e-05 | 0.0011786 | -0.059419 | -0.71423 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 5363 | 3.0386 | 1.8033 | 0.10161 | -1.2137 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 5363 | 0.026699 | 0.0044967 | -1.5569 | 1.8938 | RiCKResLong SUCCESS 1D histograms in directory "RICH/RiCKResLong" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 90759 |-8.3986e-05 | 0.0019802 | -0.26339 | -0.26611 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 185296 |-8.3605e-05 | 0.001974 | -0.26952 | -0.2723 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 185296 | 3.1355 | 1.8147 | 0.00023307 | -1.1868 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 185296 | 0.047258 | 0.0062785 | -1.1306 | 0.14483 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 94537 |-8.3239e-05 | 0.0019681 | -0.27549 | -0.27859 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 64656 | 1.5248e-05 | 0.0011922 | 0.020782 | -0.69846 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 72933 | 2.3717e-05 | 0.0011933 | 0.028815 | -0.70901 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 137589 | 1.9721e-05 | 0.0011928 | 0.025042 | -0.70396 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 137589 | 3.1451 | 1.7942 | -0.0034714 | -1.1792 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 137589 | 0.026798 | 0.0044611 | -1.7244 | 2.6318 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 90915 |-8.3324e-05 | 0.0019796 | -0.26327 | -0.26546 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 185503 |-8.4392e-05 | 0.001974 | -0.26954 | -0.27271 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 185503 | 3.1357 | 1.815 | 0.00011567 | -1.1869 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 185503 | 0.047259 | 0.0062769 | -1.1304 | 0.14488 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 94588 |-8.5416e-05 | 0.0019687 | -0.27568 | -0.27999 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 64603 | 1.5275e-05 | 0.0011921 | 0.020363 | -0.69809 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 72968 | 2.4356e-05 | 0.0011936 | 0.028411 | -0.70981 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 137571 | 2.0075e-05 | 0.0011929 | 0.024638 | -0.70422 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 137571 | 3.1451 | 1.7938 | -0.0036477 | -1.1785 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 137571 | 0.026797 | 0.0044611 | -1.7237 | 2.6293 | RiTkMaterialLong SUCCESS 1D histograms in directory "RICH/RiTkMaterialLong" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 1975 | 0.037859 | 0.0024747 | 17.486 | 352.28 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1975 | 3.4696e-05 | 1.8246e-06 | 22.651 | 503.59 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1975 | 1076 | 15.196 | -0.36633 | -0.98421 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 4626 | 0.044005 | 0.035945 | 1.2599 | -0.22625 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 4626 | 1.954e-05 | 1.3892e-05 | 1.2611 | -0.24766 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 4626 | 2127.4 | 230.6 | 0.25591 | -0.77106 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 1976 | 0.037857 | 0.0024747 | 17.481 | 352.2 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1976 | 3.4696e-05 | 1.8241e-06 | 22.657 | 503.84 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1976 | 1075.9 | 15.21 | -0.35909 | -0.99014 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 4619 | 0.044035 | 0.03596 | 1.2576 | -0.2321 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 4619 | 1.9554e-05 | 1.3903e-05 | 1.2591 | -0.25214 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 4619 | 2127.4 | 230.64 | 0.25496 | -0.77166 | RiTkSignalYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 15.25 | 9.4829 | 0.12574 | -1.0478 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4419 | 37.019 | 2.4786 | -0.64693 | 5.7087 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1343 | 20.877 | 10.727 | -0.29324 | -0.97754 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4323 | 29.498 | 8.4949 | -1.3115 | 1.3361 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4007 | 26.873 | 10.159 | -0.99695 | 0.089137 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 517 | 18.555 | 10.522 | -0.11829 | -1.087 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 9.1273 | 5.734 | -0.051691 | -1.2921 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3007 | 18.896 | 5.9463 | -1.0776 | 0.29854 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1179 | 11.949 | 6.1432 | -0.31308 | -1.0088 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2934 | 17.727 | 5.9311 | -1.0862 | 0.10587 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2856 | 17.026 | 5.918 | -1.0519 | 0.041142 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 428 | 9.9483 | 6.0522 | 0.076052 | -1.1099 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 15.25 | 9.483 | 0.12571 | -1.0479 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4418 | 37.017 | 2.4756 | -0.61819 | 5.5034 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1344 | 20.894 | 10.726 | -0.29615 | -0.97722 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4322 | 29.491 | 8.511 | -1.3094 | 1.3201 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4005 | 26.87 | 10.179 | -0.99868 | 0.087792 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 518 | 18.55 | 10.513 | -0.11696 | -1.084 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 9.1275 | 5.734 | -0.051766 | -1.292 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3002 | 18.903 | 5.9435 | -1.0795 | 0.30317 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1179 | 11.957 | 6.138 | -0.31469 | -1.0047 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2930 | 17.731 | 5.9332 | -1.0881 | 0.10857 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2852 | 17.034 | 5.9177 | -1.0548 | 0.048172 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 428 | 9.9487 | 6.0519 | 0.075903 | -1.1096 | RiTkEmittedYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 144 | 253.45 | 154.48 | 0.099977 | -0.96366 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4420 | 606.87 | 18.567 | -5.0593 | 71.355 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1376 | 340.25 | 176.17 | -0.37142 | -1.0365 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4340 | 484.68 | 134.57 | -1.5539 | 1.9244 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4045 | 440.15 | 164.52 | -1.1244 | 0.23178 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 535 | 301.22 | 173.43 | -0.17407 | -1.1802 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 90 | 144.59 | 91.058 | -0.045063 | -1.3168 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 5686 | 388.48 | 47.931 | 0.34031 | -0.76895 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1218 | 187.23 | 98.653 | -0.37252 | -1.0616 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 4744 | 273.16 | 92.69 | -1.3611 | 0.92586 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4068 | 254.1 | 97.243 | -1.1096 | 0.17115 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 443 | 155.03 | 94.503 | 0.029541 | -1.1081 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 144 | 253.45 | 154.48 | 0.099953 | -0.96371 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4419 | 606.91 | 18.125 | -4.7253 | 68.302 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1377 | 340.49 | 176.16 | -0.37462 | -1.0346 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4339 | 484.54 | 134.77 | -1.5509 | 1.9066 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4042 | 440.16 | 164.69 | -1.1252 | 0.22905 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 536 | 301.19 | 173.27 | -0.17357 | -1.177 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 90 | 144.6 | 91.059 | -0.045147 | -1.3168 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 5680 | 388.47 | 47.943 | 0.34052 | -0.76859 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1218 | 187.34 | 98.584 | -0.3751 | -1.0558 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 4736 | 273.31 | 92.615 | -1.3636 | 0.93587 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4063 | 254.19 | 97.253 | -1.1117 | 0.17579 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 443 | 155.03 | 94.503 | 0.029523 | -1.1082 | RichTkSelEffLong SUCCESS 1D histograms in directory "RICH/RichTkSelEffLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 302 | 1.5614 | 0.6685 | 0.54985 | -0.81939 | - | All/Rejected/CloneDist | "Track Clone Distance" | 302 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 302 | 0.14602 | 0.11924 | 0.65831 | -0.97367 | - | All/Rejected/P | "Track Momentum" | 302 | 5547.6 | 8615.6 | 7.532 | 57.927 | - | All/Rejected/Pt | "Track Transverse Momentum" | 302 | 99.186 | 162.07 | 6.7463 | 50.611 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 5548 | 1.2918 | 0.49994 | 1.1252 | 1.1404 | - | All/Selected/CloneDist | "Track Clone Distance" | 5548 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 5548 | 0.039076 | 0.073387 | 2.6893 | 7.0526 | - | All/Selected/P | "Track Momentum" | 5548 | 11616 | 12262 | 2.7907 | 10.565 | - | All/Selected/Pt | "Track Transverse Momentum" | 5548 | 566.94 | 535.08 | 3.2177 | 17.459 | - | nRichTracks | "# Rich Tracks / Event" | 96 | 57.792 | 34.415 | 0.4442 | -0.63574 | - | nTracks | "# Tracks / Event" | 96 | 60.938 | 36.434 | 0.46581 | -0.52965 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 300 | 1.5653 | 0.66977 | 0.53801 | -0.8369 | + | All/Rejected/CloneDist | "Track Clone Distance" | 300 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 300 | 0.14619 | 0.11957 | 0.65279 | -0.98766 | + | All/Rejected/P | "Track Momentum" | 300 | 5551.7 | 8644 | 7.5063 | 57.517 | + | All/Rejected/Pt | "Track Transverse Momentum" | 300 | 99.311 | 162.6 | 6.7233 | 50.251 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 5545 | 1.2911 | 0.50009 | 1.127 | 1.1479 | + | All/Selected/CloneDist | "Track Clone Distance" | 5545 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 5545 | 0.038973 | 0.073378 | 2.7078 | 7.1635 | + | All/Selected/P | "Track Momentum" | 5545 | 11618 | 12267 | 2.7925 | 10.582 | + | All/Selected/Pt | "Track Transverse Momentum" | 5545 | 567.63 | 535.28 | 3.2127 | 17.423 | + | nRichTracks | "# Rich Tracks / Event" | 96 | 57.76 | 34.389 | 0.44745 | -0.62939 | + | nTracks | "# Tracks / Event" | 96 | 60.885 | 36.374 | 0.46828 | -0.51821 | RichRecPixBkgsLong SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsLong" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.066624 | 0.05831 | 1.3809 | 2.0035 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.039529 | 0.034458 | 2.0156 | 6.0683 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.066632 | 0.058324 | 1.3825 | 2.0057 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.039533 | 0.034455 | 2.0161 | 6.0707 | RichDLLsLong SUCCESS 1D histograms in directory "RICH/RichDLLsLong" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 5548 | -2.9458 | 15.941 | -0.28234 | 0.77131 | - | deuteron/dll | "deuteron DLL" | 5548 | -3.0723 | 15.921 | -0.28016 | 0.76239 | - | electron/dll | "electron DLL" | 5548 | -12.881 | 14.022 | -0.20505 | 0.58488 | - | kaon/dll | "kaon DLL" | 5548 | -4.0334 | 15.81 | -0.37302 | 0.73818 | - | muon/dll | "muon DLL" | 5548 | -7.1379 | 10.07 | -1.5058 | 2.7903 | - | pion/dll | "pion DLL" | 5548 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 5548 | -3.4818 | 16.03 | -0.28901 | 0.76854 | + | below_threshold/dll | "below_threshold DLL" | 5545 | -2.9394 | 15.947 | -0.28412 | 0.76869 | + | deuteron/dll | "deuteron DLL" | 5545 | -3.0653 | 15.928 | -0.28125 | 0.76049 | + | electron/dll | "electron DLL" | 5545 | -12.864 | 14.048 | -0.1925 | 0.59267 | + | kaon/dll | "kaon DLL" | 5545 | -4.03 | 15.811 | -0.37338 | 0.74146 | + | muon/dll | "muon DLL" | 5545 | -7.1272 | 10.062 | -1.5076 | 2.7955 | + | pion/dll | "pion DLL" | 5545 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 5545 | -3.4764 | 16.035 | -0.29077 | 0.76925 | RiTkDetectableYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 23.075 | 14.22 | 0.11442 | -0.9339 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4419 | 55.747 | 1.7057 | -5.0441 | 71.175 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1343 | 31.489 | 15.973 | -0.37253 | -1.0224 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4323 | 44.444 | 12.345 | -1.52 | 1.7868 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4007 | 40.473 | 14.999 | -1.1198 | 0.23693 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 517 | 28.027 | 15.682 | -0.1823 | -1.1416 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 13.793 | 8.5372 | -0.082169 | -1.279 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3007 | 33.913 | 2.1967 | 0.14237 | -0.36614 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1179 | 17.938 | 9.1613 | -0.38362 | -1.0311 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2934 | 30.478 | 3.1847 | -1.8522 | 5.7816 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2856 | 28.324 | 4.7714 | -1.6615 | 3.4482 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 428 | 14.791 | 8.8497 | 0.02733 | -1.1272 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 23.075 | 14.22 | 0.1144 | -0.93395 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4418 | 55.751 | 1.6651 | -4.6611 | 67.274 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1344 | 31.512 | 15.971 | -0.37577 | -1.0202 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4322 | 44.431 | 12.365 | -1.5171 | 1.7698 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4005 | 40.465 | 15.028 | -1.1211 | 0.23504 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 518 | 28.021 | 15.667 | -0.1814 | -1.1385 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 13.794 | 8.5373 | -0.082257 | -1.279 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3002 | 33.911 | 2.1969 | 0.14185 | -0.37024 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1179 | 17.949 | 9.1535 | -0.38536 | -1.0267 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2930 | 30.481 | 3.185 | -1.8549 | 5.7962 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2852 | 28.332 | 4.7693 | -1.6665 | 3.4722 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 428 | 14.791 | 8.8498 | 0.027311 | -1.1272 | RiTkGeomEffsLong SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 141 | 0.66262 | 0.072079 | -0.012727 | -0.2372 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4419 | 0.66406 | 0.039719 | -0.47098 | 3.6838 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1343 | 0.66452 | 0.06148 | -0.3046 | 2.4064 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4323 | 0.66382 | 0.052695 | -0.54633 | 2.6151 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4007 | 0.66421 | 0.055593 | -0.53816 | 3.1517 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 517 | 0.66091 | 0.06739 | -0.38517 | 1.815 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4418 | 0.66399 | 0.039915 | -0.52609 | 4.0129 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1344 | 0.66456 | 0.061384 | -0.30666 | 2.428 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4322 | 0.66381 | 0.052782 | -0.5511 | 2.6411 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4005 | 0.66424 | 0.055605 | -0.53635 | 3.1444 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 518 | 0.66086 | 0.067336 | -0.38296 | 1.8197 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 87 | 0.65917 | 0.05933 | -0.19917 | -0.45528 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3007 | 0.56324 | 0.18444 | -1.0968 | 0.07757 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1179 | 0.66913 | 0.066941 | -1.0595 | 6.6187 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2934 | 0.5744 | 0.17548 | -1.1984 | 0.43387 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2856 | 0.58776 | 0.16563 | -1.3284 | 0.93064 | - | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 428 | 0.66945 | 0.066007 | -0.052082 | 1.1866 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3002 | 0.56346 | 0.18434 | -1.0988 | 0.081889 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1179 | 0.66899 | 0.066797 | -1.0665 | 6.6765 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2930 | 0.57449 | 0.17555 | -1.1996 | 0.43501 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2852 | 0.58791 | 0.16564 | -1.3314 | 0.93828 | + | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 428 | 0.6695 | 0.066044 | -0.053201 | 1.1785 | RiCKResLongTight SUCCESS 1D histograms in directory "RICH/RiCKResLongTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 68124 |-0.00022989 | 0.0019825 | -0.30129 | -0.30044 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 141331 |-0.00024256 | 0.0019759 | -0.3091 | -0.32456 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 141331 | 3.133 | 1.8145 | 0.0031131 | -1.1838 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 141331 | 0.047243 | 0.0061436 | -1.1131 | 0.17308 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 73207 | -0.0002543 | 0.0019698 | -0.31674 | -0.34798 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 31644 |-9.5968e-05 | 0.0011406 | 0.02092 | -0.58834 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 34090 |-7.0065e-05 | 0.0011345 | 0.034653 | -0.57617 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 65734 |-8.2494e-05 | 0.0011375 | 0.027824 | -0.58155 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 65734 | 3.142 | 1.7879 | 0.0015499 | -1.1793 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 65734 | 0.026522 | 0.004569 | -1.6056 | 2.1001 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 68125 |-0.00022988 | 0.0019825 | -0.30128 | -0.30037 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 141639 |-0.00024366 | 0.001976 | -0.30959 | -0.32541 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 141639 | 3.1325 | 1.815 | 0.003683 | -1.1841 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 141639 | 0.047241 | 0.0061471 | -1.113 | 0.17091 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 73514 |-0.00025637 | 0.00197 | -0.31768 | -0.34963 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 31478 |-9.4317e-05 | 0.00114 | 0.021856 | -0.58543 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 34228 |-6.7492e-05 | 0.0011341 | 0.03259 | -0.57605 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 65706 |-8.0302e-05 | 0.001137 | 0.027235 | -0.58011 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 65706 | 3.1431 | 1.7867 | 0.00062711 | -1.1773 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 65706 | 0.026527 | 0.0045676 | -1.6086 | 2.1122 | RiCKResUpstream SUCCESS 1D histograms in directory "RICH/RiCKResUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 26377 |-0.00057475 | 0.0021775 | -0.12471 | -0.78064 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 48622 |-0.00055081 | 0.0021868 | -0.14267 | -0.80093 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 48622 | 3.1686 | 1.7985 | -0.033248 | -1.2025 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 48622 | 0.044734 | 0.0067653 | -0.45066 | -0.99037 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 26126 |-0.00057632 | 0.002177 | -0.12092 | -0.77966 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 48371 |-0.00055153 | 0.0021866 | -0.14072 | -0.80062 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 48371 | 3.1661 | 1.7982 | -0.030271 | -1.202 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 48371 | 0.04473 | 0.0067701 | -0.451 | -0.99125 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 22245 |-0.00052159 | 0.0021977 | -0.16479 | -0.82339 | RiTkMaterialUpstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialUpstream" : 3 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 430 | 0.038944 | 0.0056056 | 8.0295 | 68.032 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 430 | 3.5086e-05 | 4.3563e-06 | 9.2816 | 83.128 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 430 | 1070.8 | 17.522 | -0.032718 | -1.3045 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 430 | 0.03894 | 0.0056055 | 8.0318 | 68.058 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 430 | 3.5086e-05 | 4.3563e-06 | 9.2816 | 83.129 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 430 | 1070.9 | 17.421 | -0.030116 | -1.2879 | RiTkSignalYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 28 | 14.404 | 10.239 | 0.38688 | -0.687 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 621 | 37.776 | 2.8317 | -0.15537 | 1.8593 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 208 | 23.327 | 10.177 | -0.61967 | -0.43604 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 620 | 29.559 | 8.4059 | -0.89915 | 0.052278 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 575 | 25.946 | 11.556 | -0.74975 | -0.71625 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 100 | 18.02 | 10.758 | 0.081357 | -1.0088 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 620 | 37.782 | 2.8364 | -0.15989 | 1.8368 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 207 | 23.305 | 10.195 | -0.61346 | -0.44818 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 619 | 29.599 | 8.3982 | -0.91332 | 0.088956 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 574 | 26.022 | 11.49 | -0.76219 | -0.6815 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 100 | 18.028 | 10.752 | 0.079477 | -1.0047 | RiTkEmittedYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 28 | 246.86 | 169.6 | 0.36186 | -0.76911 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 621 | 616.92 | 26.265 | -0.98611 | 14.218 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 211 | 376.87 | 164.38 | -0.68945 | -0.50143 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 620 | 484.23 | 128.26 | -1.094 | 0.30957 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 582 | 422.62 | 184.65 | -0.86302 | -0.62847 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 102 | 297.77 | 170.62 | -0.057213 | -1.0729 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 620 | 616.91 | 26.24 | -0.9936 | 14.299 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 210 | 376.68 | 164.75 | -0.68463 | -0.51539 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 619 | 484.84 | 128.03 | -1.1117 | 0.35667 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 581 | 423.9 | 183.56 | -0.87751 | -0.59035 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 102 | 297.84 | 170.55 | -0.055059 | -1.0771 | RichTkSelEffUpstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffUpstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 99 | 1.194 | 0.44985 | 0.55802 | 0.21465 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 99 | 1.1949 | 0.44893 | 0.55784 | 0.22831 | | All/Rejected/CloneDist | "Track Clone Distance" | 99 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 99 | 0.040981 | 0.062655 | 2.1169 | 4.2153 | - | All/Rejected/P | "Track Momentum" | 99 | 39871 | 18300 | 1.1738 | 0.73981 | - | All/Rejected/Pt | "Track Transverse Momentum" | 99 | 996.5 | 774.84 | 2.7197 | 8.7302 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 621 | 1.196 | 0.55282 | 0.8832 | 0.67196 | - | All/Selected/CloneDist | "Track Clone Distance" | 621 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 621 | 0.052114 | 0.065451 | 2.4743 | 6.5863 | - | All/Selected/P | "Track Momentum" | 621 | 9897.8 | 10759 | 2.8593 | 11.377 | - | All/Selected/Pt | "Track Transverse Momentum" | 621 | 878.39 | 563.99 | 2.9304 | 13.334 | - | nRichTracks | "# Rich Tracks / Event" | 96 | 6.4688 | 4.937 | 0.90915 | 0.4509 | - | nTracks | "# Tracks / Event" | 96 | 7.5 | 5.6476 | 0.81692 | 0.19354 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 99 | 0.041281 | 0.062548 | 2.1158 | 4.2223 | + | All/Rejected/P | "Track Momentum" | 99 | 39855 | 18296 | 1.177 | 0.74733 | + | All/Rejected/Pt | "Track Transverse Momentum" | 99 | 956.91 | 674.42 | 2.3764 | 6.8513 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 620 | 1.1989 | 0.54914 | 0.90529 | 0.73727 | + | All/Selected/CloneDist | "Track Clone Distance" | 620 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 620 | 0.052069 | 0.065078 | 2.4778 | 6.6716 | + | All/Selected/P | "Track Momentum" | 620 | 9898.4 | 10759 | 2.8644 | 11.401 | + | All/Selected/Pt | "Track Transverse Momentum" | 620 | 880.22 | 564.27 | 3.0127 | 14.259 | + | nRichTracks | "# Rich Tracks / Event" | 96 | 6.4583 | 4.9559 | 0.91062 | 0.39847 | + | nTracks | "# Tracks / Event" | 96 | 7.4896 | 5.6716 | 0.8373 | 0.23112 | RichRecPixBkgsUpstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsUpstream" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.088375 | 0.077136 | 1.2871 | 1.6755 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.088376 | 0.077135 | 1.2872 | 1.6755 | RichDLLsUpstream SUCCESS 1D histograms in directory "RICH/RichDLLsUpstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 621 | 0.066729 | 14.453 | -0.46514 | 0.52879 | - | deuteron/dll | "deuteron DLL" | 621 | 0.048254 | 14.42 | -0.50056 | 0.51507 | - | electron/dll | "electron DLL" | 621 | -14.326 | 13.268 | -0.30315 | -0.24449 | - | kaon/dll | "kaon DLL" | 621 | -0.047718 | 14.335 | -0.635 | 0.72128 | - | muon/dll | "muon DLL" | 621 | -5.1845 | 9.3264 | -0.0056488 | 6.1876 | - | pion/dll | "pion DLL" | 621 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 621 | 0.015664 | 14.336 | -0.54733 | 0.58052 | + | below_threshold/dll | "below_threshold DLL" | 620 | 0.071804 | 14.469 | -0.46447 | 0.52069 | + | deuteron/dll | "deuteron DLL" | 620 | 0.053298 | 14.436 | -0.49981 | 0.50705 | + | electron/dll | "electron DLL" | 620 | -14.316 | 13.247 | -0.30677 | -0.25407 | + | kaon/dll | "kaon DLL" | 620 | -0.038872 | 14.343 | -0.63086 | 0.7039 | + | muon/dll | "muon DLL" | 620 | -5.2099 | 9.3247 | 0.0014442 | 6.2089 | + | pion/dll | "pion DLL" | 620 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 620 | 0.019721 | 14.352 | -0.5462 | 0.57154 | RiTkDetectableYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 28 | 21.988 | 15.853 | 0.37714 | -0.82612 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 621 | 56.67 | 2.4127 | -1.0271 | 15.074 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 208 | 34.667 | 14.945 | -0.67815 | -0.51893 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 620 | 44.201 | 12.074 | -1.1048 | 0.3465 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 575 | 38.899 | 16.911 | -0.86718 | -0.62312 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 100 | 27.282 | 15.69 | -0.050267 | -1.062 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 620 | 56.669 | 2.4104 | -1.0324 | 15.164 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 207 | 34.651 | 14.98 | -0.67358 | -0.53292 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 619 | 44.258 | 12.052 | -1.1238 | 0.39794 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 574 | 39.022 | 16.8 | -0.88144 | -0.58505 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 100 | 27.289 | 15.683 | -0.047036 | -1.0683 | RiTkGeomEffsUpstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 28 | 0.66679 | 0.068157 | 0.10166 | -0.66197 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 621 | 0.66675 | 0.04345 | -0.25668 | -0.075653 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 208 | 0.67076 | 0.061323 | -0.84822 | 2.2658 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 620 | 0.66867 | 0.049065 | -0.40811 | 0.33998 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 575 | 0.66671 | 0.056163 | -0.26088 | 0.76547 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 100 | 0.65904 | 0.060277 | -0.18536 | 0.45404 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 620 | 0.66687 | 0.043495 | -0.26191 | -0.078914 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 207 | 0.67045 | 0.061364 | -0.8375 | 2.2589 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 619 | 0.66866 | 0.04923 | -0.40847 | 0.32212 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 574 | 0.66634 | 0.056241 | -0.26723 | 0.74602 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 100 | 0.65884 | 0.059469 | -0.30449 | 0.23666 | RiCKResUpstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResUpstreamTight" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 15104 |-0.00069524 | 0.0021593 | -0.12849 | -0.81447 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 28525 |-0.00067962 | 0.0021438 | -0.15839 | -0.82514 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 15104 |-0.00069529 | 0.0021593 | -0.12856 | -0.81458 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 28525 |-0.00067965 | 0.0021438 | -0.15843 | -0.8252 | | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 28525 | 3.1618 | 1.7871 | -0.034012 | -1.1918 | | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 28525 | 0.044624 | 0.0067205 | -0.43729 | -0.98643 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 13421 | -0.0006614 | 0.0021253 | -0.19416 | -0.83781 | RiTkSignalYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 10 | 43780 | 14586 | 9.4675 | 23.501 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 977 | 6377.6 | 6706.2 | 70.963 | 608.64 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 170 | 17588 | 9461.2 | 19.276 | 114.01 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 912 | 6710.4 | 6820 | 71.311 | 601.51 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 771 | 7520.4 | 7125.2 | 61.147 | 493.02 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 981 | 6379 | 6696.7 | 71.281 | 612.25 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 171 | 17555 | 9443.4 | 19.428 | 115.17 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 916 | 6710.5 | 6809.4 | 71.665 | 605.45 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 774 | 7522.7 | 7114.3 | 61.438 | 496.15 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 57 | 27428 | 10548 | 13.239 | 65.386 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 4 | 73644 | 8945.1 | 1.1398 | -1.4716 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 389 | 14393 | 10301 | 22.389 | 111.02 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 391 | 14372 | 10280 | 22.561 | 112.15 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 105 | 27337 | 11984 | 9.7059 | 34.968 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 377 | 14658 | 10353 | 22.534 | 110.98 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 360 | 15067 | 10417 | 22.167 | 108.11 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 379 | 14634 | 10331 | 22.711 | 112.14 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 362 | 15039 | 10396 | 22.347 | 109.27 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 31 | 41826 | 12745 | 6.179 | 15.211 | RiTkEmittedYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 10 | 43780 | 14586 | 9.3582 | 23.215 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 977 | 6377.6 | 6706.2 | 72.636 | 630.39 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 175 | 17344 | 9433.3 | 20.316 | 121.77 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 914 | 6700 | 6816.2 | 73.137 | 624.56 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 784 | 7438 | 7094.4 | 63.767 | 522.54 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 981 | 6379 | 6696.7 | 72.959 | 634.1 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 176 | 17313 | 9415.4 | 20.476 | 123.01 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 918 | 6700.1 | 6805.6 | 73.498 | 628.63 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 788 | 7434.4 | 7081.4 | 64.154 | 526.71 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 60 | 26915 | 10521 | 14.061 | 70.239 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 5 | 70276 | 9697.9 | 1.8587 | -0.18824 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1192 | 7180.6 | 7833 | 67.36 | 469.31 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1197 | 7175.3 | 7820.7 | 67.701 | 472.47 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 110 | 26817 | 11944 | 10.05 | 36.425 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 788 | 9564.9 | 8716.2 | 48.037 | 294.36 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 597 | 11398 | 9297.4 | 36.841 | 207.9 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 791 | 9558.8 | 8702.7 | 48.278 | 296.33 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 599 | 11394 | 9282.6 | 37.025 | 209.3 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 32 | 41438 | 12716 | 6.3226 | 15.86 | RichTkSelEffDownstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffDownstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1237 | 1.4884 | 0.65143 | 0.39957 | 1.5595 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1237 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1237 | 0.066957 | 0.10303 | 6.9336 | 15.071 | - | All/effVP | "RICH Track Sel. Eff. V P" | 1237 | 7039.8 | 7746.6 | 116.77 | 886.66 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1237 | 432.18 | 396.91 | 108.35 | 809.08 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1241 | 1.4868 | 0.65135 | 0.41085 | 1.5648 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1241 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1241 | 0.066777 | 0.10292 | 6.9701 | 15.195 | + | All/effVP | "RICH Track Sel. Eff. V P" | 1241 | 7038.8 | 7736.9 | 117.21 | 891.13 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1241 | 432.22 | 396.41 | 108.75 | 813.16 | RiTkDetectableYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 10 | 43780 | 14586 | 9.7981 | 24.434 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 977 | 6377.6 | 6706.2 | 72.636 | 630.39 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 170 | 17588 | 9461.2 | 19.932 | 118.97 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 912 | 6710.4 | 6820 | 73.075 | 623.68 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 771 | 7520.4 | 7125.2 | 62.692 | 511.42 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 981 | 6379 | 6696.7 | 72.959 | 634.1 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 171 | 17555 | 9443.4 | 20.09 | 120.19 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 916 | 6710.5 | 6809.4 | 73.437 | 627.75 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 774 | 7522.7 | 7114.3 | 62.989 | 514.65 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 57 | 27428 | 10548 | 13.727 | 67.952 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 4 | 73644 | 8945.1 | 1.0469 | -1.553 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 389 | 14393 | 10301 | 19.876 | 97.443 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 391 | 14372 | 10280 | 20.029 | 98.443 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 105 | 27337 | 11984 | 9.6514 | 34.532 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 377 | 14658 | 10353 | 20.414 | 99.419 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 360 | 15067 | 10417 | 20.455 | 98.632 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 379 | 14634 | 10331 | 20.576 | 100.46 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 362 | 15039 | 10396 | 20.622 | 99.695 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 31 | 41826 | 12745 | 6.2038 | 15.33 | RiTkSignalYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.154 | 13.563 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4419 | 9098.2 | 9628.7 | 87.89 | 546.77 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1343 | 19326 | 12146 | 30.744 | 131.33 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4323 | 9261.4 | 9672.1 | 89.522 | 553.4 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4007 | 9813 | 9837.8 | 83.976 | 506.81 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 517 | 30388 | 13420 | 13.504 | 42.75 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76373 | 12152 | 2.0956 | 0.56957 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3007 | 17841 | 13754 | 38.697 | 180.39 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1179 | 30195 | 15069 | 20.184 | 72.349 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2934 | 18133 | 13799 | 38.555 | 178.53 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2856 | 18461 | 13843 | 38.133 | 175.33 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 428 | 46017 | 15392 | 9.349 | 24.031 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.1538 | 13.562 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4418 | 9102.4 | 9633.6 | 87.736 | 545.5 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1344 | 19332 | 12141 | 30.77 | 131.48 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4322 | 9265.7 | 9677 | 89.364 | 552.11 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4005 | 9819.7 | 9843.3 | 83.804 | 505.44 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 518 | 30376 | 13410 | 13.547 | 42.939 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76374 | 12153 | 2.0944 | 0.56707 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3002 | 17859 | 13760 | 38.608 | 179.84 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1179 | 30201 | 15065 | 20.19 | 72.383 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2930 | 18149 | 13804 | 38.481 | 178.09 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2852 | 18477 | 13848 | 38.06 | 174.89 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 428 | 46017 | 15392 | 9.3478 | 24.027 | RiTkEmittedYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 144 | 48738 | 12395 | 6.0581 | 13.281 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4420 | 9096.6 | 9628.3 | 86.794 | 538.07 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1376 | 19078 | 12102 | 30.97 | 132.77 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4340 | 9232.7 | 9664 | 88.693 | 546.98 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4045 | 9744.6 | 9816.5 | 83.704 | 504.9 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 535 | 29936 | 13407 | 13.824 | 44.08 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 90 | 75580 | 12378 | 2.1328 | 0.67669 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 5686 | 11426 | 12127 | 70.679 | 405.09 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1218 | 29743 | 15024 | 20.846 | 75.533 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 4744 | 13181 | 12565 | 63.103 | 342.07 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4068 | 14738 | 12937 | 55.167 | 285.13 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 443 | 45470 | 15385 | 9.9139 | 25.994 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 144 | 48738 | 12395 | 6.0578 | 13.281 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4419 | 9100.7 | 9633.1 | 86.642 | 536.82 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1377 | 19085 | 12097 | 30.995 | 132.92 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4339 | 9237 | 9668.8 | 88.537 | 545.71 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4042 | 9753 | 9822.5 | 83.511 | 503.37 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 536 | 29925 | 13397 | 13.867 | 44.269 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 90 | 75581 | 12379 | 2.1317 | 0.67422 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 5680 | 11432 | 12133 | 70.546 | 404.07 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1218 | 29748 | 15021 | 20.852 | 75.564 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 4736 | 13195 | 12573 | 62.946 | 340.95 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4063 | 14749 | 12943 | 55.061 | 284.41 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 443 | 45471 | 15385 | 9.9127 | 25.99 | RichTkSelEffLong SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffLong" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 5850 | 1.3057 | 0.51349 | 4.1176 | 11.667 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 5850 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 5850 | 0.042547 | 0.077662 | 19.582 | 67.99 | - | All/effVP | "RICH Track Sel. Eff. V P" | 5850 | 11301 | 12175 | 76.534 | 438.68 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 5850 | 577.12 | 535.58 | 217.43 | 1905.5 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 5845 | 1.3052 | 0.51375 | 4.1145 | 11.644 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 5845 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 5845 | 0.042434 | 0.077659 | 19.832 | 69.105 | + | All/effVP | "RICH Track Sel. Eff. V P" | 5845 | 11305 | 12180 | 76.406 | 437.71 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 5845 | 577.83 | 535.78 | 217.08 | 1901.6 | RiTkDetectableYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.026 | 13.158 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4419 | 9098.2 | 9628.7 | 86.774 | 537.91 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1343 | 19326 | 12146 | 30.249 | 128.69 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4323 | 9261.4 | 9672.1 | 88.396 | 544.49 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4007 | 9813 | 9837.8 | 82.917 | 498.63 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 517 | 30388 | 13420 | 13.415 | 42.335 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76373 | 12152 | 2.0325 | 0.46622 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3007 | 17841 | 13754 | 36.772 | 171.67 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1179 | 30195 | 15069 | 20.206 | 72.45 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2934 | 18133 | 13799 | 37.593 | 174.3 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2856 | 18461 | 13843 | 37.56 | 172.9 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 428 | 46017 | 15392 | 9.5908 | 24.78 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.0258 | 13.157 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4418 | 9102.4 | 9633.6 | 86.621 | 536.66 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1344 | 19332 | 12141 | 30.275 | 128.85 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4322 | 9265.7 | 9677 | 88.241 | 543.23 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4005 | 9819.7 | 9843.3 | 82.748 | 497.29 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 518 | 30376 | 13410 | 13.457 | 42.523 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76374 | 12153 | 2.0314 | 0.46377 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3002 | 17859 | 13760 | 36.686 | 171.15 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1179 | 30201 | 15065 | 20.212 | 72.484 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2930 | 18149 | 13804 | 37.52 | 173.85 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2852 | 18477 | 13848 | 37.486 | 172.46 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 428 | 46017 | 15392 | 9.5896 | 24.775 | RiTkSignalYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 28 | 47872 | 13659 | 5.1547 | 11.337 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 621 | 9897.8 | 10759 | 32.544 | 176.44 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 208 | 20874 | 12661 | 14.911 | 60.34 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 620 | 9910.8 | 10763 | 34.66 | 187.95 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 575 | 10504 | 10959 | 32.632 | 172.67 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 100 | 29758 | 13448 | 10.181 | 34.273 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 620 | 9898.4 | 10759 | 32.541 | 176.44 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 207 | 20894 | 12689 | 14.797 | 59.705 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 619 | 9911.4 | 10762 | 34.661 | 187.97 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 574 | 10506 | 10959 | 32.628 | 172.65 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 100 | 29760 | 13447 | 10.186 | 34.291 | RiTkEmittedYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 28 | 47872 | 13659 | 5.2649 | 11.73 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 621 | 9897.8 | 10759 | 31.094 | 166.18 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 211 | 20704 | 12649 | 14.246 | 56.922 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 620 | 9910.8 | 10763 | 33.084 | 176.85 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 582 | 10408 | 10928 | 31.555 | 165.25 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 102 | 29508 | 13428 | 9.6659 | 32.135 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 620 | 9898.4 | 10759 | 31.096 | 166.2 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 210 | 20723 | 12676 | 14.134 | 56.31 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 619 | 9911.4 | 10762 | 33.087 | 176.88 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 581 | 10409 | 10927 | 31.554 | 165.25 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 102 | 29510 | 13426 | 9.6707 | 32.154 | RichTkSelEffUpstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 720 | 1.1957 | 0.53982 | 5.2211 | 15.296 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 720 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 720 | 0.050634 | 0.065196 | 26.221 | 103.24 | - | All/effVP | "RICH Track Sel. Eff. V P" | 720 | 13591 | 15486 | 13.346 | 50.981 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 720 | 894.56 | 598.64 | 54.933 | 332.84 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 719 | 1.1983 | 0.53646 | 5.2903 | 15.694 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 719 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 719 | 0.050633 | 0.06485 | 26.644 | 105.52 | + | All/effVP | "RICH Track Sel. Eff. V P" | 719 | 13595 | 15487 | 13.377 | 51.134 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 719 | 890.64 | 581.06 | 60.318 | 377.15 | RiTkDetectableYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 28 | 47872 | 13659 | 5.3848 | 12.052 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 621 | 9897.8 | 10759 | 31.094 | 166.18 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 208 | 20874 | 12661 | 14.11 | 56.198 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 620 | 9910.8 | 10763 | 33.115 | 177.03 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 575 | 10504 | 10959 | 31.144 | 162.44 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 100 | 29758 | 13448 | 9.5517 | 31.574 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 620 | 9898.4 | 10759 | 31.096 | 166.2 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 207 | 20894 | 12689 | 13.998 | 55.586 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 619 | 9911.4 | 10762 | 33.118 | 177.05 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 574 | 10506 | 10959 | 31.141 | 162.43 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 100 | 29760 | 13447 | 9.5563 | 31.593 | RichRecPixelClusters SUCCESS Booked 2 Histogram(s) : 1D=2 RichRecPixelQC SUCCESS Booked 6 Histogram(s) : 1D=6 RichDecodingErrors SUCCESS Booked 352 Histogram(s) : 2D=1 1DProf=351 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref.x86_64+avx2+fma-opt index c9adc88c9fd..ef01163f57f 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_baseline_with_monitoring.ref.x86_64+avx2+fma-opt @@ -13,91 +13,91 @@ PrGECFilter SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 100 | | "Nb events removed" | 4 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | - | "Nb of Produced Tracks" | 96 | 21095 | 219.74 | + | "Nb of Produced Tracks" | 96 | 20926 | 217.98 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 21095 | 219.74 | + | "Nb of Produced Tracks" | 96 | 20926 | 217.98 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 95 | 6052 | 63.705 | + | "Nb output tracks" | 95 | 6044 | 63.621 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 6052 | 63.042 | + | "Nb of Produced Tracks" | 96 | 6044 | 62.958 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 96 | 17280 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 96 | 13036 | 135.79 | - | "#tracks" | 96 | 3449 | 35.927 | + | "#seeds" | 96 | 12983 | 135.24 | + | "#tracks" | 96 | 3447 | 35.906 | SciFiTrackForwarding INFO Number of counters : 2 | Counter | - | "2nd Loop" | 1626 | - | "Created long tracks" | 96 | 2129 | 22.177 | + | "2nd Loop" | 1620 | + | "Created long tracks" | 96 | 2133 | 22.219 | VeloKalman SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2129 | 22.177 | + | "Nb of Produced Tracks" | 96 | 2133 | 22.219 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 3449 | 35.927 | + | "Nb of Produced Tracks" | 96 | 3447 | 35.906 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2129 | 22.177 | + | "Nb of Produced Tracks" | 96 | 2133 | 22.219 | TracksFitConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 96 | 2129 | 22.177 | + | "Nb of Produced Tracks" | 96 | 2133 | 22.219 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 6715 | | "#UT hits added" | 26463 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 16520 | 89281.8 | 5.4045 | - | "#MatchingTracks" | 95 | 6025 | 63.421 | - | "TracksMLP" | 16520 | 5871.041 | 0.35539 | + | "#MatchingChi2" | 16505 | 89204.6 | 5.4047 | + | "#MatchingTracks" | 95 | 6015 | 63.316 | + | "TracksMLP" | 16505 | 5863.825 | 0.35528 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 96 | 163746 | 1705.7 | TrackBestTrackCreator SUCCESS Number of counters : 32 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 28185 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2293 | 1193 |( 52.02791 +- 1.043303)% | - | "Downstream.chisqProbSum" | 2293 | 343.0588 | 0.14961 | - |*"Downstream.flipCharge" | 2293 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2293 | 1232.872 | 0.53767 | - | "Downstream.numOutliers" | 2293 | 2513 | 1.0959 | - |*"FitFailed" | 28185 | 0 |( 0.000000 +- 0.000000)% | - |*"Long.badChisq" | 7553 | 2651 |( 35.09864 +- 0.5491769)% | - | "Long.chisqProbSum" | 7553 | 1837.549 | 0.24329 | - |*"Long.flipCharge" | 7553 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 7553 | 1220.333 | 0.16157 | - | "Long.numOutliers" | 7553 | 6720 | 0.88971 | - |*"Ttrack.badChisq" | 2735 | 60 |( 2.193784 +- 0.2800925)% | - | "Ttrack.chisqProbSum" | 2735 | 1088.45 | 0.39797 | - |*"Ttrack.flipCharge" | 2735 | 41 |( 1.499086 +- 0.2323564)% | - | "Ttrack.ghostProbability" | 2735 | 127.6422 | 0.046670 | - | "Ttrack.numOutliers" | 2735 | 965 | 0.35283 | - |*"Upstream.badChisq" | 883 | 204 |( 23.10306 +- 1.418433)% | - | "Upstream.chisqProbSum" | 883 | 286.5806 | 0.32455 | - |*"Upstream.flipCharge" | 883 | 19 |( 2.151755 +- 0.4883066)% | - | "Upstream.ghostProbability" | 883 | 194.1601 | 0.21989 | - | "Upstream.numOutliers" | 883 | 407 | 0.46093 | - |*"Velo.badChisq" | 6680 | 1728 |( 25.86826 +- 0.5357936)% | - | "Velo.chisqProbSum" | 6680 | 1973.143 | 0.29538 | - |*"Velo.flipCharge" | 6680 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 6680 | 698.1063 | 0.10451 | - | "Velo.numOutliers" | 6680 | 4667 | 0.69865 | - |*"VeloBackward.badChisq" | 8041 | 511 |( 6.354931 +- 0.2720463)% | - | "VeloBackward.chisqProbSum" | 8041 | 3592.997 | 0.44683 | - |*"VeloBackward.flipCharge" | 8041 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 8041 | 652.3245 | 0.081125 | - | "VeloBackward.numOutliers" | 8041 | 2255 | 0.28044 | + |*"BadInput" | 28025 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2300 | 1195 |( 51.95652 +- 1.041774)% | + | "Downstream.chisqProbSum" | 2300 | 345.3281 | 0.15014 | + |*"Downstream.flipCharge" | 2300 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2300 | 1235.105 | 0.53700 | + | "Downstream.numOutliers" | 2300 | 2522 | 1.0965 | + |*"FitFailed" | 28025 | 0 |( 0.000000 +- 0.000000)% | + |*"Long.badChisq" | 7552 | 2657 |( 35.18273 +- 0.5495145)% | + | "Long.chisqProbSum" | 7552 | 1838.13 | 0.24340 | + |*"Long.flipCharge" | 7552 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 7552 | 1223.356 | 0.16199 | + | "Long.numOutliers" | 7552 | 6722 | 0.89010 | + |*"Ttrack.badChisq" | 2740 | 61 |( 2.226277 +- 0.2818548)% | + | "Ttrack.chisqProbSum" | 2740 | 1089.834 | 0.39775 | + |*"Ttrack.flipCharge" | 2740 | 41 |( 1.496350 +- 0.2319357)% | + | "Ttrack.ghostProbability" | 2740 | 127.8402 | 0.046657 | + | "Ttrack.numOutliers" | 2740 | 967 | 0.35292 | + |*"Upstream.badChisq" | 881 | 201 |( 22.81498 +- 1.413802)% | + | "Upstream.chisqProbSum" | 881 | 283.6591 | 0.32197 | + |*"Upstream.flipCharge" | 881 | 18 |( 2.043133 +- 0.4766261)% | + | "Upstream.ghostProbability" | 881 | 193.1946 | 0.21929 | + | "Upstream.numOutliers" | 881 | 405 | 0.45970 | + |*"Velo.badChisq" | 6627 | 1716 |( 25.89407 +- 0.5381064)% | + | "Velo.chisqProbSum" | 6627 | 1962.085 | 0.29607 | + |*"Velo.flipCharge" | 6627 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 6627 | 674.9627 | 0.10185 | + | "Velo.numOutliers" | 6627 | 4625 | 0.69790 | + |*"VeloBackward.badChisq" | 7925 | 493 |( 6.220820 +- 0.2713172)% | + | "VeloBackward.chisqProbSum" | 7925 | 3547.317 | 0.44761 | + |*"VeloBackward.flipCharge" | 7925 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 7925 | 609.4451 | 0.076902 | + | "VeloBackward.numOutliers" | 7925 | 2176 | 0.27457 | TrackBeamLineVertexFinderSoA INFO Number of counters : 1 | Counter | | "Nb PVs" | 96 | 447 | 4.6562 | @@ -126,32 +126,32 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 96 | 652 | 6.7917 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | - | "#tracks in acceptance" | 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 96 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | - | "#tracks in acceptance" | 96 | 7677 | 79.969 | 44.823 | 0.0000 | 187.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 7677 | 79.969 | 44.810 | 0.0000 | 187.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.823 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.810 | 0.0000 | 187.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.823 | 0.0000 | 187.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 96 | 7677 | 79.969 | 44.810 | 0.0000 | 187.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 1218435 | 12692. | 11247. | 0.0000 | 46537. | - | "#chi2" | 358856 |1.64499e+08 | 458.40 | 291.61 | 0.00012433 | 1000.0 | - | "#good tracks" | 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | - | "#links in table" | 96 | 358856 | 3738.1 | 3717.2 | 0.0000 | 15155. | + | "#above threshold" | 96 | 1217969 | 12687. | 11229. | 0.0000 | 46023. | + | "#chi2" | 358829 |1.644968e+08 | 458.43 | 291.61 | 0.00012433 | 1000.0 | + | "#good tracks" | 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | + | "#links in table" | 96 | 358829 | 3737.8 | 3714.3 | 0.0000 | 15033. | | "#total calos" | 96 | 14626 | 152.35 | 73.922 | 0.0000 | 318.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | @@ -159,83 +159,83 @@ ClassifyPhotonElectronAlg INFO Number of counters : 2 | "photonHypos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 779112 | 8115.8 | 8317.3 | 0.0000 | 33760. | - | "#chi2" | 91601 |3.975076e+08 | 4339.6 | 2954.1 | 0.065218 | 9999.9 | - | "#good tracks" | 96 | 8187 | 85.281 | 48.049 | 0.0000 | 202.00 | - | "#links in table" | 96 | 91601 | 954.18 | 878.99 | 0.0000 | 3802.0 | + | "#above threshold" | 96 | 778844 | 8113.0 | 8305.6 | 0.0000 | 33534. | + | "#chi2" | 91597 |3.975219e+08 | 4339.9 | 2954.2 | 0.065218 | 9999.9 | + | "#good tracks" | 96 | 8186 | 85.271 | 48.011 | 0.0000 | 202.00 | + | "#links in table" | 96 | 91597 | 954.14 | 878.50 | 0.0000 | 3802.0 | | "#total calos" | 96 | 7691 | 80.115 | 47.236 | 0.0000 | 190.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13254 | 138.06 | 80.409 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | - | "#tracks in acceptance" | 96 | 8735 | 90.990 | 55.348 | 0.0000 | 220.00 | + | "#links in table" | 96 | 13189 | 137.39 | 80.236 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | + | "#tracks in acceptance" | 96 | 8718 | 90.812 | 55.300 | 0.0000 | 220.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 96 | 777551 | 8099.5 | 7825.9 | 0.0000 | 32425. | - | "#chi2" | 324121 |1.506188e+09 | 4647.0 | 2885.5 | 0.00077758 | 10000. | - | "#good tracks" | 96 | 8735 | 90.990 | 55.348 | 0.0000 | 220.00 | - | "#links in table" | 96 | 324121 | 3376.3 | 2901.3 | 0.0000 | 12095. | + | "#above threshold" | 96 | 775877 | 8082.1 | 7810.0 | 0.0000 | 31828. | + | "#chi2" | 323910 |1.505365e+09 | 4647.5 | 2884.9 | 0.00077758 | 10000. | + | "#good tracks" | 96 | 8718 | 90.812 | 55.300 | 0.0000 | 220.00 | + | "#links in table" | 96 | 323910 | 3374.1 | 2901.1 | 0.0000 | 12062. | | "#total calos" | 96 | 9588 | 99.875 | 46.936 | 0.0000 | 210.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 13254 | 138.06 | 80.409 | 0.0000 | 320.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#links in table" | 96 | 13189 | 137.39 | 80.236 | 0.0000 | 317.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13254 | 138.06 | 80.409 | 0.0000 | 320.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 96 | 13189 | 137.39 | 80.236 | 0.0000 | 317.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 96 | 9825 | 102.34 | 57.857 | 0.0000 | 243.00 | - | "#total tracks" | 96 | 25267 | 263.20 | 144.71 | 0.0000 | 642.00 | + | "#links in table" | 96 | 9824 | 102.33 | 57.815 | 0.0000 | 243.00 | + | "#total tracks" | 96 | 25096 | 261.42 | 143.59 | 0.0000 | 633.00 | RichRecoStatsDownstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 96 | 168680 | 1757.1 | 1917.2 | 0.0000 | 8671.0 | - | "# Rich1Gas Segments" | 96 | 977 | 10.177 | 7.2068 | 0.0000 | 34.000 | - | "# Rich2Gas Photons" | 96 | 18417 | 191.84 | 219.05 | 0.0000 | 912.00 | - | "# Rich2Gas Segments" | 96 | 390 | 4.0625 | 3.2398 | 0.0000 | 15.000 | - | "# Selected Tracks" | 96 | 1097 | 11.427 | 8.0386 | 0.0000 | 37.000 | - |*"RICH selection efficiency" | 1237 | 1097 |( 88.68230 +- 0.9007677)% | + | "# Rich1Gas Photons" | 96 | 169720 | 1767.9 | 1932.9 | 0.0000 | 8809.0 | + | "# Rich1Gas Segments" | 96 | 982 | 10.229 | 7.2765 | 0.0000 | 34.000 | + | "# Rich2Gas Photons" | 96 | 18487 | 192.57 | 218.92 | 0.0000 | 912.00 | + | "# Rich2Gas Segments" | 96 | 392 | 4.0833 | 3.2457 | 0.0000 | 15.000 | + | "# Selected Tracks" | 96 | 1102 | 11.479 | 8.1060 | 0.0000 | 37.000 | + |*"RICH selection efficiency" | 1242 | 1102 |( 88.72786 +- 0.8973718)% | RichDLLsDownstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 96 | 1097 | 11.427 | 8.0386 | 0.0000 | 37.000 | - |*"Used RICH1 and RICH2" | 1097 | 270 |( 24.61258 +- 1.300543)% | - |*"Used RICH1 only" | 1097 | 707 |( 64.44850 +- 1.445214)% | - |*"Used RICH2 only" | 1097 | 120 |( 10.93892 +- 0.9423841)% | + | "# PIDs" | 96 | 1102 | 11.479 | 8.1060 | 0.0000 | 37.000 | + |*"Used RICH1 and RICH2" | 1102 | 272 |( 24.68240 +- 1.298826)% | + |*"Used RICH1 only" | 1102 | 710 |( 64.42831 +- 1.442115)% | + |*"Used RICH2 only" | 1102 | 120 |( 10.88929 +- 0.9383697)% | RichRecoStatsLong INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 96 | 665487 | 6932.2 | 6830.4 | 0.0000 | 28169. | - | "# Rich1Gas Segments" | 96 | 4421 | 46.052 | 28.456 | 0.0000 | 115.00 | - | "# Rich2Gas Photons" | 96 | 161275 | 1679.9 | 1516.2 | 0.0000 | 5770.0 | - | "# Rich2Gas Segments" | 96 | 3004 | 31.292 | 19.144 | 0.0000 | 80.000 | - | "# Selected Tracks" | 96 | 5550 | 57.812 | 34.445 | 0.0000 | 138.00 | - |*"RICH selection efficiency" | 5853 | 5550 |( 94.82317 +- 0.2896010)% | + | "# Rich1Gas Photons" | 96 | 662655 | 6902.7 | 6779.0 | 0.0000 | 28169. | + | "# Rich1Gas Segments" | 96 | 4413 | 45.969 | 28.381 | 0.0000 | 115.00 | + | "# Rich2Gas Photons" | 96 | 161197 | 1679.1 | 1514.4 | 0.0000 | 5681.0 | + | "# Rich2Gas Segments" | 96 | 3003 | 31.281 | 19.145 | 0.0000 | 80.000 | + | "# Selected Tracks" | 96 | 5541 | 57.719 | 34.375 | 0.0000 | 138.00 | + |*"RICH selection efficiency" | 5842 | 5541 |( 94.84765 +- 0.2892244)% | RichDLLsLong INFO Number of counters : 4 | Counter | - | "# PIDs" | 96 | 5550 | 57.812 | 34.445 | 0.0000 | 138.00 | - |*"Used RICH1 and RICH2" | 5550 | 1875 |( 33.78378 +- 0.6348773)% | - |*"Used RICH1 only" | 5550 | 2546 |( 45.87387 +- 0.6688669)% | - |*"Used RICH2 only" | 5550 | 1129 |( 20.34234 +- 0.5403408)% | + | "# PIDs" | 96 | 5541 | 57.719 | 34.375 | 0.0000 | 138.00 | + |*"Used RICH1 and RICH2" | 5541 | 1875 |( 33.83866 +- 0.6356450)% | + |*"Used RICH1 only" | 5541 | 2538 |( 45.80401 +- 0.6693315)% | + |*"Used RICH2 only" | 5541 | 1128 |( 20.35734 +- 0.5409278)% | RichRecoStatsUpstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 96 | 77975 | 812.24 | 1002.6 | 0.0000 | 5898.0 | - | "# Rich1Gas Segments" | 96 | 623 | 6.4896 | 4.9916 | 0.0000 | 23.000 | + | "# Rich1Gas Photons" | 96 | 77972 | 812.21 | 1003.5 | 0.0000 | 5898.0 | + | "# Rich1Gas Segments" | 96 | 621 | 6.4688 | 4.9853 | 0.0000 | 23.000 | | "# Rich2Gas Photons" | 96 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "# Rich2Gas Segments" | 96 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "# Selected Tracks" | 96 | 623 | 6.4896 | 4.9916 | 0.0000 | 23.000 | - |*"RICH selection efficiency" | 721 | 623 |( 86.40777 +- 1.276304)% | + | "# Selected Tracks" | 96 | 621 | 6.4688 | 4.9853 | 0.0000 | 23.000 | + |*"RICH selection efficiency" | 720 | 621 |( 86.25000 +- 1.283408)% | RichDLLsUpstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 96 | 623 | 6.4896 | 4.9916 | 0.0000 | 23.000 | - |*"Used RICH1 and RICH2" | 623 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 623 | 623 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 623 | 0 |( 0.000000 +- 0.000000)% | + | "# PIDs" | 96 | 621 | 6.4688 | 4.9853 | 0.0000 | 23.000 | + |*"Used RICH1 and RICH2" | 621 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 621 | 621 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 621 | 0 |( 0.000000 +- 0.000000)% | ClusterMonitorEcalClusters SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Monitor /Event/CaloFutureClusterCovarianceAlg/O| 95 | 14626 | 153.96 | 72.629 | 10.000 | 318.00 | @@ -283,7 +283,7 @@ ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | " Middle" | 2271 | 2286.141 | 1.0067 | 0.018797 | 0.97699 | 1.1113 | | " Outer" | 2923 | 2924.591 | 1.0005 | 0.014456 | 0.97413 | 1.0473 | | "Corrected energy" | 7691 |4.973383e+07 | 6466.5 | 7154.9 | 398.05 | 1.1680e+05 | - | "Delta(E)" | 7691 | 1573653 | 204.61 | 203.84 | -2370.9 | 3316.7 | + | "Delta(E)" | 7691 | 1573656 | 204.61 | 203.84 | -2370.9 | 3316.7 | | "Pileup offset" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup scale" | 7691 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup subtracted ratio" | 7691 | 7691 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | @@ -360,12 +360,12 @@ CaloFutureShowerOverlap.PhotonSh... SUCCESS Number of counters : 2 | "Delta(Y)" | 33556 | 2629.253 | 0.078354 | 12.667 | -26.158 | 22.930 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5290 | 33976 | 6.4227 | - | "#tracks with hits added" | 5290 | + | "#UT hits added" | 5281 | 33895 | 6.4183 | + | "#tracks with hits added" | 5281 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5289 | 33890 | 6.4076 | - | "#tracks with hits added" | 5289 | + | "#UT hits added" | 5284 | 33833 | 6.4029 | + | "#tracks with hits added" | 5284 | RichRecPixelClusters SUCCESS 1D histograms in directory "RICH/RichRecPixelClusters" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1/clusterSize | "Rich1 Pixel Cluster Sizes" | 204899 | 1.2895 | 0.96188 | 8.0268 | 136.68 | @@ -381,50 +381,50 @@ RichRecPixelQC SUCCESS 1D histograms in directory "RICH/Ric RiCKResDownstream SUCCESS 1D histograms in directory "RICH/RiCKResDownstream" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 12770 | 7.3322e-05 | 0.0020787 | -0.22527 | -0.43945 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 23166 | 8.7806e-05 | 0.002136 | -0.19238 | -0.47758 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 23166 | 3.1465 | 1.7974 |-0.00083197 | -1.16 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 23166 | 0.04731 | 0.0063186 | -1.0918 | 0.11367 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 10396 | 0.00010601 | 0.0022057 | -0.16006 | -0.53399 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 23275 | 9.0724e-05 | 0.0021337 | -0.19297 | -0.47356 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 23275 | 3.1459 | 1.7979 |-0.00041228 | -1.1616 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 23275 | 0.047306 | 0.0063286 | -1.0932 | 0.11227 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 10505 | 0.00011233 | 0.0021999 | -0.16185 | -0.52466 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 7156 | 5.2327e-05 | 0.0012632 | -0.044824 | -0.90324 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 7098 | 0.00014111 | 0.0012546 | -0.059427 | -0.84982 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14254 | 9.6212e-05 | 0.0012598 | -0.052569 | -0.87588 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14254 | 3.0702 | 1.7914 | 0.078511 | -1.1766 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14254 | 0.027207 | 0.004071 | -1.834 | 3.4392 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 7114 | 0.00014171 | 0.0012539 | -0.059231 | -0.8482 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14270 | 9.6579e-05 | 0.0012594 | -0.052543 | -0.87502 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14270 | 3.0705 | 1.7919 | 0.078017 | -1.1776 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14270 | 0.027208 | 0.004069 | -1.8352 | 3.4462 | RiTkMaterialDownstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialDownstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 377 | 0.037626 | 0.00095658 | 3.0186 | 6.0751 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 377 | 3.4614e-05 | 5.7341e-12 |-7.7957e+12 | 1.5457e+17 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 377 | 1073 | 15.72 | -0.099997 | -1.2027 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 950 | 0.055442 | 0.040944 | 0.61613 | -1.4922 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 950 | 2.3634e-05 | 1.5751e-05 | 0.61775 | -1.5158 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 950 | 2226.7 | 240.39 | -0.21306 | -0.81498 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 379 | 0.03763 | 0.00095489 | 3.0066 | 6.0436 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 379 | 3.4614e-05 | 5.7521e-12 |-7.7227e+12 | 1.5265e+17 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 379 | 1073 | 15.736 | -0.10253 | -1.2074 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 955 | 0.055371 | 0.040932 | 0.61999 | -1.4878 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 955 | 2.3606e-05 | 1.5746e-05 | 0.62126 | -1.512 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 955 | 2226.4 | 240.17 | -0.2097 | -0.81583 | RiTkSignalYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 10 | 7.1372 | 8.8641 | 1.5854 | 1.5694 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 977 | 36.151 | 4.1571 | -2.1598 | 6.0695 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 170 | 19.553 | 9.7095 | -0.075592 | -0.94603 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 911 | 25.376 | 10.043 | -0.64192 | -0.49408 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 770 | 22.918 | 11.237 | -0.45004 | -0.94827 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 982 | 36.141 | 4.1779 | -2.1636 | 6.0309 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 171 | 19.529 | 9.6861 | -0.068671 | -0.93878 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 916 | 25.384 | 10.028 | -0.64284 | -0.48926 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 774 | 22.933 | 11.204 | -0.4486 | -0.9431 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 57 | 16.16 | 9.2054 | -0.15088 | -1.0682 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 4 | 7.489 | 5.1147 | -0.14272 | -1.3964 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 390 | 17.648 | 6.5834 | -0.6206 | -0.81986 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 392 | 17.661 | 6.5709 | -0.62608 | -0.80915 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 105 | 10.858 | 6.041 | -0.15405 | -1.0493 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 378 | 16.223 | 6.6344 | -0.65126 | -0.86127 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 360 | 15.525 | 6.4825 | -0.63533 | -0.89592 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 380 | 16.23 | 6.6176 | -0.65605 | -0.84804 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 362 | 15.53 | 6.4654 | -0.63935 | -0.88311 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 31 | 7.8955 | 5.6782 | 0.60451 | -0.55956 | RiTkEmittedYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 10 | 124.48 | 143.52 | 1.5334 | 1.4675 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 977 | 591.86 | 57.179 | -3.5555 | 12.68 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 175 | 319.85 | 161.34 | -0.20298 | -0.99897 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 913 | 417.91 | 158.65 | -0.76228 | -0.4205 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 783 | 374.21 | 182.15 | -0.53673 | -0.95521 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 982 | 591.71 | 57.57 | -3.5352 | 12.473 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 176 | 319.41 | 160.98 | -0.1956 | -0.99466 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 918 | 418.02 | 158.42 | -0.76262 | -0.41532 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 788 | 374.04 | 182.02 | -0.53514 | -0.95145 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 60 | 258.71 | 155.55 | -0.10644 | -1.0813 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 5 | 99.495 | 83.149 | 0.19384 | -1.56 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1191 | 408.25 | 52.289 | -0.23756 | -0.85495 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1197 | 408.27 | 52.243 | -0.23632 | -0.85402 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 110 | 168.3 | 96.745 | -0.23513 | -1.2419 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 787 | 242.64 | 106.37 | -0.84892 | -0.4732 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 596 | 230.13 | 102.11 | -0.69588 | -0.65354 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 791 | 242.49 | 106.51 | -0.84616 | -0.48074 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 599 | 229.98 | 102.33 | -0.69807 | -0.65308 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 32 | 123.5 | 86.286 | 0.5304 | -0.74418 | RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -433,387 +433,387 @@ RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/Ric | All/Rejected/GhostProb | "Track Ghost Probability" | 140 | 0.18209 | 0.11103 | 0.1479 | -1.0181 | | All/Rejected/P | "Track Momentum" | 140 | 3880.5 | 1262.6 | 0.84842 | 0.57973 | | All/Rejected/Pt | "Track Transverse Momentum" | 140 | 117.55 | 50.273 | 2.4508 | 4.0398 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1097 | 1.4546 | 0.64194 | 0.45963 | -0.5906 | - | All/Selected/CloneDist | "Track Clone Distance" | 1097 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 1097 | 0.059255 | 0.09797 | 1.9111 | 2.5173 | - | All/Selected/P | "Track Momentum" | 1097 | 7444.6 | 8127.4 | 3.5271 | 18.575 | - | All/Selected/Pt | "Track Transverse Momentum" | 1097 | 416.7 | 400.15 | 3.1132 | 15.661 | - | nRichTracks | "# Rich Tracks / Event" | 96 | 11.427 | 8.0386 | 0.76666 | 0.3388 | - | nTracks | "# Tracks / Event" | 96 | 12.885 | 8.8363 | 0.71778 | 0.1926 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1102 | 1.4527 | 0.64157 | 0.46197 | -0.58431 | + | All/Selected/CloneDist | "Track Clone Distance" | 1102 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 1102 | 0.059023 | 0.097813 | 1.918 | 2.5463 | + | All/Selected/P | "Track Momentum" | 1102 | 7439.5 | 8112.5 | 3.5321 | 18.645 | + | All/Selected/Pt | "Track Transverse Momentum" | 1102 | 416.93 | 399.5 | 3.1139 | 15.691 | + | nRichTracks | "# Rich Tracks / Event" | 96 | 11.479 | 8.106 | 0.76491 | 0.30663 | + | nTracks | "# Tracks / Event" | 96 | 12.938 | 8.8962 | 0.71633 | 0.17102 | RichRecPixBkgsDownstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsDownstream" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.086493 | 0.07516 | 1.2815 | 1.5939 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.043968 | 0.03519 | 1.8737 | 5.3188 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.08647 | 0.075139 | 1.2819 | 1.5959 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.043969 | 0.035191 | 1.8733 | 5.3176 | RichDLLsDownstream SUCCESS 1D histograms in directory "RICH/RichDLLsDownstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 1097 | 0.38546 | 11.619 | -0.33419 | 3.461 | - | deuteron/dll | "deuteron DLL" | 1097 | 0.35459 | 11.587 | -0.34641 | 3.4661 | - | electron/dll | "electron DLL" | 1097 | -7.724 | 14.93 | 0.31097 | 1.0144 | - | kaon/dll | "kaon DLL" | 1097 | -0.57797 | 11.349 | -0.8463 | 3.5281 | - | muon/dll | "muon DLL" | 1097 | -3.2994 | 7.8511 | -1.4665 | 6.3442 | - | pion/dll | "pion DLL" | 1097 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 1097 | 0.19062 | 11.478 | -0.45841 | 3.4054 | + | below_threshold/dll | "below_threshold DLL" | 1102 | 0.32833 | 11.688 | -0.36423 | 3.4631 | + | deuteron/dll | "deuteron DLL" | 1102 | 0.29759 | 11.656 | -0.37645 | 3.4684 | + | electron/dll | "electron DLL" | 1102 | -7.8245 | 14.92 | 0.30261 | 1.0308 | + | kaon/dll | "kaon DLL" | 1102 | -0.63682 | 11.439 | -0.88539 | 3.6014 | + | muon/dll | "muon DLL" | 1102 | -3.3325 | 7.8783 | -1.4649 | 6.2579 | + | pion/dll | "pion DLL" | 1102 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 1102 | 0.13335 | 11.549 | -0.48806 | 3.4098 | RiTkDetectableYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 10 | 10.641 | 13.388 | 1.5943 | 1.5898 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 977 | 54.368 | 5.2524 | -3.566 | 12.739 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 170 | 29.689 | 14.473 | -0.16523 | -1.0216 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 911 | 38.111 | 14.785 | -0.75806 | -0.4314 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 770 | 34.516 | 16.608 | -0.53928 | -0.94092 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 982 | 54.355 | 5.2884 | -3.5411 | 12.505 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 171 | 29.641 | 14.444 | -0.15652 | -1.0188 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 916 | 38.121 | 14.764 | -0.7584 | -0.42607 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 774 | 34.542 | 16.561 | -0.53764 | -0.93625 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 57 | 24.388 | 13.817 | -0.11089 | -1.0045 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 4 | 11.33 | 7.2378 | -0.17232 | -1.4091 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 390 | 34.432 | 2.2577 | -0.22736 | -0.52966 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 392 | 34.437 | 2.2547 | -0.23177 | -0.52567 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 105 | 16.313 | 8.9015 | -0.28247 | -1.1906 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 378 | 30.077 | 3.4599 | -1.4599 | 3.738 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 360 | 27.489 | 4.9675 | -1.1086 | 1.1049 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 380 | 30.081 | 3.4562 | -1.459 | 3.7401 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 362 | 27.49 | 4.9607 | -1.1073 | 1.1064 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 31 | 11.658 | 8.1727 | 0.53684 | -0.73074 | RiTkGeomEffsDownstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 10 | 0.66685 | 0.068434 | 0.10708 | -0.78872 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 977 | 0.66496 | 0.041423 | -1.0305 | 8.172 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 170 | 0.66018 | 0.057968 | -0.12666 | 0.27209 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 911 | 0.66599 | 0.052063 | -0.26168 | 0.4705 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 770 | 0.66096 | 0.063493 | -1.2785 | 7.0508 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 982 | 0.66493 | 0.041329 | -1.0305 | 8.2131 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 171 | 0.66052 | 0.057971 | -0.13908 | 0.26014 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 916 | 0.66605 | 0.052177 | -0.27205 | 0.45768 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 774 | 0.66096 | 0.063428 | -1.2771 | 7.0435 | | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 57 | 0.6602 | 0.048499 | -0.10726 | 0.30559 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 4 | 0.64069 | 0.047184 | -0.20626 | -1.5491 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 390 | 0.51907 | 0.20133 | -0.63941 | -0.99787 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 392 | 0.51935 | 0.20094 | -0.64314 | -0.98856 | | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 105 | 0.66972 | 0.066024 | -0.67631 | 1.2109 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 378 | 0.52977 | 0.19817 | -0.72151 | -0.76422 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 360 | 0.54746 | 0.18779 | -0.86073 | -0.44503 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 380 | 0.53 | 0.1977 | -0.72596 | -0.7516 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 362 | 0.54782 | 0.18752 | -0.86309 | -0.43561 | | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 31 | 0.67209 | 0.060428 | -0.18296 | -0.20989 | RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResDownstreamTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 7631 |-7.8611e-05 | 0.0020816 | -0.28178 | -0.44621 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 13494 |-9.2835e-05 | 0.0021354 | -0.26542 | -0.48701 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 13494 | 3.136 | 1.7933 | 0.0059531 | -1.1579 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 13494 | 0.047203 | 0.0062109 | -1.0333 | 0.030305 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 5863 |-0.00011182 | 0.0022049 | -0.2436 | -0.54762 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 13603 |-8.6254e-05 | 0.002132 | -0.26681 | -0.47895 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 13603 | 3.135 | 1.7942 | 0.0066219 | -1.1606 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 13603 | 0.047198 | 0.0062284 | -1.0368 | 0.030182 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 5972 |-9.6244e-05 | 0.0021962 | -0.24818 | -0.52843 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 2539 |-7.1747e-06 | 0.0012191 | -0.048888 | -0.80363 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 2807 | 0.00013938 | 0.0011362 | -0.043266 | -0.6514 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 5346 | 6.8553e-05 | 0.0011792 | -0.059068 | -0.71689 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 5346 | 3.0382 | 1.8018 | 0.10271 | -1.2108 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 5346 | 0.026694 | 0.0045024 | -1.5529 | 1.8762 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 2823 | 0.00014096 | 0.0011351 | -0.041732 | -0.64875 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 5362 | 6.9664e-05 | 0.0011786 | -0.058675 | -0.71489 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 5362 | 3.0391 | 1.8032 | 0.10135 | -1.2136 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 5362 | 0.026698 | 0.0044967 | -1.5564 | 1.8918 | RiCKResLong SUCCESS 1D histograms in directory "RICH/RiCKResLong" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 90595 |-8.5527e-05 | 0.0019801 | -0.26379 | -0.26543 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 185130 | -8.43e-05 | 0.001974 | -0.26978 | -0.27198 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 185130 | 3.1354 | 1.8146 | 0.00037999 | -1.1866 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 185130 | 0.047256 | 0.0062796 | -1.1298 | 0.14253 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 94535 |-8.3127e-05 | 0.0019681 | -0.27559 | -0.27858 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 64663 | 1.5116e-05 | 0.0011923 | 0.020315 | -0.69897 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 72928 | 2.3596e-05 | 0.0011931 | 0.028639 | -0.70928 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 137591 | 1.9595e-05 | 0.0011927 | 0.024723 | -0.70434 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 137591 | 3.1453 | 1.7941 | -0.00377 | -1.1789 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 137591 | 0.026795 | 0.0044639 | -1.7229 | 2.6226 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 90752 |-8.4927e-05 | 0.0019796 | -0.26364 | -0.26498 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 185485 |-8.3868e-05 | 0.0019743 | -0.26991 | -0.27262 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 185485 | 3.1356 | 1.8148 | 0.00015411 | -1.1865 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 185485 | 0.047257 | 0.0062791 | -1.13 | 0.14371 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 94733 |-8.2856e-05 | 0.0019692 | -0.27597 | -0.2802 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 64624 | 1.5276e-05 | 0.0011924 | 0.019813 | -0.69891 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 73033 | 2.4424e-05 | 0.0011933 | 0.028239 | -0.70979 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 137657 | 2.0114e-05 | 0.0011929 | 0.024282 | -0.70459 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 137657 | 3.1452 | 1.7937 | -0.0037979 | -1.1784 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 137657 | 0.026796 | 0.0044629 | -1.7229 | 2.6237 | RiTkMaterialLong SUCCESS 1D histograms in directory "RICH/RiTkMaterialLong" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 1978 | 0.037859 | 0.002473 | 17.496 | 352.74 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1978 | 3.4696e-05 | 1.8232e-06 | 22.668 | 504.36 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1978 | 1076 | 15.196 | -0.36634 | -0.98531 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 4624 | 0.044031 | 0.03596 | 1.2581 | -0.23053 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 4624 | 1.955e-05 | 1.3897e-05 | 1.2592 | -0.25245 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 4624 | 2127.5 | 230.8 | 0.25376 | -0.77412 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 1974 | 0.037859 | 0.0024755 | 17.479 | 352.02 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1974 | 3.4696e-05 | 1.825e-06 | 22.645 | 503.33 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1974 | 1076 | 15.208 | -0.36192 | -0.98993 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 4615 | 0.04401 | 0.035944 | 1.2592 | -0.22726 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 4615 | 1.9544e-05 | 1.3892e-05 | 1.2606 | -0.24818 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 4615 | 2127.1 | 230.75 | 0.25535 | -0.77121 | RiTkSignalYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 15.177 | 9.4826 | 0.14544 | -1.0576 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4421 | 37.02 | 2.4798 | -0.64329 | 5.6981 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1342 | 20.896 | 10.744 | -0.29551 | -0.97624 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4323 | 29.481 | 8.5211 | -1.3062 | 1.3095 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4004 | 26.878 | 10.164 | -0.99452 | 0.087207 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 517 | 18.564 | 10.563 | -0.099681 | -1.0628 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 9.1018 | 5.7093 | -0.033412 | -1.263 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3004 | 18.904 | 5.9441 | -1.0788 | 0.30248 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1180 | 11.964 | 6.1434 | -0.32773 | -1.0073 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2932 | 17.77 | 5.9473 | -1.0869 | 0.10785 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2854 | 17.037 | 5.9279 | -1.0489 | 0.033689 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 429 | 9.9564 | 6.0556 | 0.087661 | -1.1013 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 15.177 | 9.4827 | 0.1454 | -1.0577 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4413 | 37.021 | 2.4651 | -0.57892 | 5.3494 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1344 | 20.905 | 10.744 | -0.2971 | -0.97673 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4317 | 29.494 | 8.5226 | -1.3093 | 1.3161 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4000 | 26.889 | 10.174 | -0.99907 | 0.093951 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 518 | 18.56 | 10.554 | -0.09866 | -1.0595 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 9.1042 | 5.7085 | -0.034138 | -1.2623 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3003 | 18.905 | 5.9441 | -1.0796 | 0.30401 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1181 | 11.963 | 6.1456 | -0.32958 | -1.0029 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2931 | 17.771 | 5.9485 | -1.0873 | 0.10768 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2853 | 17.042 | 5.9273 | -1.0499 | 0.037182 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 429 | 9.9567 | 6.0554 | 0.087521 | -1.101 | RiTkEmittedYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 144 | 253.45 | 154.48 | 0.099988 | -0.96362 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4422 | 606.87 | 18.565 | -5.0591 | 71.357 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1375 | 340.38 | 176.18 | -0.37313 | -1.0348 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4340 | 484.39 | 134.85 | -1.5499 | 1.9028 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4042 | 440.08 | 164.54 | -1.1233 | 0.2294 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 535 | 301.22 | 173.43 | -0.17407 | -1.1801 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 90 | 144.59 | 91.059 | -0.045015 | -1.3168 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 5687 | 388.52 | 47.982 | 0.33907 | -0.77236 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1219 | 187.3 | 98.644 | -0.37389 | -1.0609 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 4742 | 273.12 | 92.706 | -1.3593 | 0.92127 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4066 | 254.02 | 97.388 | -1.1093 | 0.16794 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 444 | 154.9 | 94.435 | 0.033179 | -1.1065 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 144 | 253.45 | 154.48 | 0.099953 | -0.96371 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4414 | 606.92 | 18.135 | -4.7244 | 68.238 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1377 | 340.52 | 176.14 | -0.37482 | -1.0339 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4334 | 484.58 | 134.88 | -1.5534 | 1.912 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4037 | 440.35 | 164.6 | -1.1271 | 0.23483 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 536 | 301.19 | 173.27 | -0.17359 | -1.177 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 90 | 144.6 | 91.059 | -0.045147 | -1.3168 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 5677 | 388.43 | 47.958 | 0.34144 | -0.76809 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1220 | 187.27 | 98.663 | -0.3754 | -1.0576 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 4735 | 273.35 | 92.582 | -1.3653 | 0.94236 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4064 | 254.15 | 97.321 | -1.1111 | 0.17285 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 444 | 154.9 | 94.436 | 0.033169 | -1.1066 | RichTkSelEffLong SUCCESS 1D histograms in directory "RICH/RichTkSelEffLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 303 | 1.5652 | 0.67087 | 0.54287 | -0.83913 | - | All/Rejected/CloneDist | "Track Clone Distance" | 303 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 303 | 0.14704 | 0.11964 | 0.6415 | -1.0065 | - | All/Rejected/P | "Track Momentum" | 303 | 5544.8 | 8601.6 | 7.5451 | 58.134 | - | All/Rejected/Pt | "Track Transverse Momentum" | 303 | 99.034 | 161.83 | 6.7574 | 50.786 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 5550 | 1.2929 | 0.50131 | 1.1251 | 1.1244 | - | All/Selected/CloneDist | "Track Clone Distance" | 5550 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 5550 | 0.039164 | 0.073626 | 2.6927 | 7.0606 | - | All/Selected/P | "Track Momentum" | 5550 | 11614 | 12267 | 2.7878 | 10.542 | - | All/Selected/Pt | "Track Transverse Momentum" | 5550 | 566.9 | 535.01 | 3.2179 | 17.463 | - | nRichTracks | "# Rich Tracks / Event" | 96 | 57.812 | 34.445 | 0.44732 | -0.62987 | - | nTracks | "# Tracks / Event" | 96 | 60.969 | 36.478 | 0.46906 | -0.52527 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 301 | 1.569 | 0.67214 | 0.53113 | -0.8563 | + | All/Rejected/CloneDist | "Track Clone Distance" | 301 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 301 | 0.14721 | 0.11997 | 0.63594 | -1.0202 | + | All/Rejected/P | "Track Momentum" | 301 | 5548.9 | 8629.8 | 7.5194 | 57.724 | + | All/Rejected/Pt | "Track Transverse Momentum" | 301 | 99.161 | 162.35 | 6.7345 | 50.427 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 5541 | 1.2907 | 0.49906 | 1.1211 | 1.1227 | + | All/Selected/CloneDist | "Track Clone Distance" | 5541 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 5541 | 0.0388 | 0.073146 | 2.7226 | 7.2668 | + | All/Selected/P | "Track Momentum" | 5541 | 11630 | 12274 | 2.7885 | 10.552 | + | All/Selected/Pt | "Track Transverse Momentum" | 5541 | 567.85 | 535.46 | 3.2112 | 17.405 | + | nRichTracks | "# Rich Tracks / Event" | 96 | 57.719 | 34.375 | 0.44877 | -0.63215 | + | nTracks | "# Tracks / Event" | 96 | 60.854 | 36.371 | 0.46842 | -0.52824 | RichRecPixBkgsLong SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsLong" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.066661 | 0.05847 | 1.4008 | 2.1196 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.039545 | 0.034431 | 2.0075 | 6.0495 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.066711 | 0.0585 | 1.3967 | 2.1047 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 161791 | 0.039556 | 0.034427 | 2.0076 | 6.0502 | RichDLLsLong SUCCESS 1D histograms in directory "RICH/RichDLLsLong" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 5550 | -2.9609 | 15.966 | -0.28578 | 0.79016 | - | deuteron/dll | "deuteron DLL" | 5550 | -3.0927 | 15.961 | -0.28484 | 0.78461 | - | electron/dll | "electron DLL" | 5550 | -12.859 | 14.06 | -0.19859 | 0.58135 | - | kaon/dll | "kaon DLL" | 5550 | -4.0806 | 15.831 | -0.37365 | 0.73831 | - | muon/dll | "muon DLL" | 5550 | -7.1319 | 10.066 | -1.5082 | 2.7588 | - | pion/dll | "pion DLL" | 5550 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 5550 | -3.4923 | 16.046 | -0.2901 | 0.79646 | + | below_threshold/dll | "below_threshold DLL" | 5541 | -2.9427 | 15.998 | -0.29054 | 0.78114 | + | deuteron/dll | "deuteron DLL" | 5541 | -3.0741 | 15.994 | -0.28896 | 0.77675 | + | electron/dll | "electron DLL" | 5541 | -12.847 | 14.064 | -0.19041 | 0.59508 | + | kaon/dll | "kaon DLL" | 5541 | -4.0621 | 15.846 | -0.37419 | 0.73578 | + | muon/dll | "muon DLL" | 5541 | -7.1248 | 10.059 | -1.5203 | 2.7284 | + | pion/dll | "pion DLL" | 5541 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 5541 | -3.4862 | 16.09 | -0.29602 | 0.79545 | RiTkDetectableYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 23.075 | 14.22 | 0.11443 | -0.93386 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4421 | 55.748 | 1.7055 | -5.0441 | 71.177 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1342 | 31.501 | 15.972 | -0.37434 | -1.0204 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4323 | 44.416 | 12.372 | -1.5164 | 1.7671 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4004 | 40.467 | 15.002 | -1.1186 | 0.23441 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 517 | 28.027 | 15.682 | -0.1823 | -1.1416 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 13.793 | 8.5373 | -0.082117 | -1.279 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3004 | 33.909 | 2.1957 | 0.14305 | -0.3667 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1180 | 17.945 | 9.1602 | -0.38502 | -1.0303 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2932 | 30.479 | 3.1853 | -1.8533 | 5.7834 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2854 | 28.328 | 4.7718 | -1.6638 | 3.4551 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 429 | 14.777 | 8.8441 | 0.031136 | -1.126 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 23.075 | 14.22 | 0.1144 | -0.93395 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4413 | 55.752 | 1.666 | -4.6603 | 67.211 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1344 | 31.514 | 15.969 | -0.37599 | -1.0194 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4317 | 44.435 | 12.374 | -1.5197 | 1.7761 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4000 | 40.483 | 15.019 | -1.1228 | 0.24063 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 518 | 28.021 | 15.667 | -0.18141 | -1.1385 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 87 | 13.794 | 8.5373 | -0.082258 | -1.279 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3003 | 33.91 | 2.1966 | 0.14303 | -0.36977 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1181 | 17.941 | 9.1627 | -0.38625 | -1.0275 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2931 | 30.483 | 3.1849 | -1.8555 | 5.7976 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2853 | 28.335 | 4.7692 | -1.6679 | 3.4751 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 429 | 14.777 | 8.8442 | 0.031126 | -1.1261 | RiTkGeomEffsLong SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 141 | 0.65961 | 0.073078 | -0.0075844 | 0.18564 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4421 | 0.66408 | 0.039719 | -0.46934 | 3.6824 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1342 | 0.66455 | 0.062878 | -0.3368 | 2.067 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4323 | 0.66387 | 0.053299 | -0.54649 | 2.7952 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4004 | 0.66432 | 0.055796 | -0.50843 | 2.681 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 517 | 0.66125 | 0.067428 | -0.30234 | 1.49 | - | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 87 | 0.65823 | 0.066082 | 0.10939 | 0.30528 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3004 | 0.56351 | 0.18437 | -1.0988 | 0.083233 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1180 | 0.66967 | 0.067745 | -1.0544 | 6.2775 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2932 | 0.57577 | 0.17592 | -1.1934 | 0.41189 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2854 | 0.58803 | 0.16594 | -1.3225 | 0.9327 | - | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 429 | 0.67233 | 0.066708 | 0.26522 | 0.80669 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4413 | 0.66405 | 0.039695 | -0.47015 | 3.6938 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1344 | 0.66451 | 0.062757 | -0.33326 | 2.0776 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4317 | 0.66386 | 0.053257 | -0.54387 | 2.8089 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4000 | 0.66431 | 0.055786 | -0.50938 | 2.6863 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 518 | 0.66124 | 0.067363 | -0.3022 | 1.4984 | + | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 87 | 0.65843 | 0.066172 | 0.10147 | 0.28696 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3003 | 0.56354 | 0.18436 | -1.0994 | 0.08401 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1181 | 0.66964 | 0.067713 | -1.0583 | 6.2867 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2931 | 0.57575 | 0.17596 | -1.193 | 0.40926 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2853 | 0.58808 | 0.16593 | -1.3237 | 0.93597 | + | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 429 | 0.67238 | 0.066742 | 0.2635 | 0.79897 | RiCKResLongTight SUCCESS 1D histograms in directory "RICH/RiCKResLongTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 68123 |-0.00022975 | 0.0019826 | -0.30147 | -0.30037 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 141331 |-0.00024244 | 0.001976 | -0.30925 | -0.32455 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 141331 | 3.1329 | 1.8145 | 0.0031873 | -1.1837 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 141331 | 0.047243 | 0.0061436 | -1.1131 | 0.17288 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 73208 | -0.0002542 | 0.0019697 | -0.31686 | -0.34803 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 31484 |-9.4772e-05 | 0.0011404 | 0.020945 | -0.58646 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 34087 |-6.9534e-05 | 0.0011344 | 0.035269 | -0.57711 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 65571 |-8.1619e-05 | 0.0011373 | 0.028177 | -0.58112 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 65571 | 3.1423 | 1.7878 | 0.0013342 | -1.1788 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 65571 | 0.026524 | 0.0045694 | -1.6085 | 2.1104 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 68125 |-0.00022983 | 0.0019826 | -0.30143 | -0.30056 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 141486 |-0.00024313 | 0.001976 | -0.30958 | -0.32498 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 141486 | 3.1327 | 1.8147 | 0.0034503 | -1.1839 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 141486 | 0.047242 | 0.0061453 | -1.113 | 0.17185 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 73361 |-0.00025543 | 0.0019698 | -0.31754 | -0.34868 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 31484 |-9.4775e-05 | 0.0011406 | 0.020902 | -0.58631 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 34155 |-6.8242e-05 | 0.0011342 | 0.0343 | -0.57695 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 65639 |-8.0932e-05 | 0.0011373 | 0.027638 | -0.58095 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 65639 | 3.1427 | 1.7872 | 0.00094633 | -1.178 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 65639 | 0.026525 | 0.0045684 | -1.6085 | 2.1115 | RiCKResUpstream SUCCESS 1D histograms in directory "RICH/RiCKResUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 26255 |-0.00057553 | 0.0021775 | -0.12231 | -0.77883 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 48725 |-0.00054833 | 0.002187 | -0.14322 | -0.79905 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 48725 | 3.166 | 1.7983 | -0.030386 | -1.2027 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 48725 | 0.044719 | 0.0067742 | -0.44868 | -0.99426 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 26244 |-0.00057508 | 0.0021769 | -0.12205 | -0.77861 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 48714 |-0.00054808 | 0.0021867 | -0.14309 | -0.79894 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 48714 | 3.1661 | 1.7983 | -0.030501 | -1.2026 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 48714 | 0.044719 | 0.0067745 | -0.44868 | -0.99443 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 22470 |-0.00051565 | 0.0021979 | -0.16857 | -0.82056 | RiTkMaterialUpstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialUpstream" : 3 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 432 | 0.038941 | 0.0055934 | 8.046 | 68.336 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 432 | 3.5084e-05 | 4.3463e-06 | 9.3039 | 83.538 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 432 | 1070.8 | 17.48 | -0.031722 | -1.2963 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 430 | 0.038939 | 0.005606 | 8.0303 | 68.039 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 430 | 3.5086e-05 | 4.3563e-06 | 9.2816 | 83.129 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 430 | 1070.8 | 17.485 | -0.029329 | -1.2983 | RiTkSignalYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 28 | 14.318 | 10.034 | 0.36885 | -0.63084 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 623 | 37.791 | 2.829 | -0.16622 | 1.8666 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 208 | 23.23 | 10.168 | -0.60782 | -0.45285 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 622 | 29.57 | 8.4108 | -0.89482 | 0.06062 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 577 | 25.952 | 11.584 | -0.74283 | -0.73628 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 100 | 18.017 | 10.815 | 0.09313 | -1.0115 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 27 | 13.811 | 9.8596 | 0.44679 | -0.44262 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 621 | 37.79 | 2.8361 | -0.16494 | 1.8336 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 207 | 23.167 | 10.15 | -0.60741 | -0.45454 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 620 | 29.595 | 8.4067 | -0.90784 | 0.096667 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 575 | 26.014 | 11.529 | -0.75196 | -0.71148 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 99 | 17.895 | 10.785 | 0.11201 | -0.9847 | RiTkEmittedYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 28 | 246.86 | 169.6 | 0.3619 | -0.76917 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 623 | 616.94 | 26.257 | -0.98452 | 14.188 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 211 | 376.51 | 164.37 | -0.68305 | -0.50692 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 622 | 484.05 | 128.11 | -1.0911 | 0.30863 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 584 | 422.14 | 184.54 | -0.85633 | -0.63747 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 102 | 297.77 | 170.62 | -0.0584 | -1.0744 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 27 | 238.52 | 166.98 | 0.4475 | -0.5948 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 621 | 616.86 | 26.246 | -0.98709 | 14.249 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 210 | 375.49 | 164.08 | -0.68263 | -0.50993 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 620 | 484.46 | 128 | -1.1053 | 0.34668 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 582 | 423.17 | 183.65 | -0.86685 | -0.61047 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 101 | 295.15 | 169.21 | -0.052388 | -1.0707 | RichTkSelEffUpstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffUpstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 98 | 1.1848 | 0.44029 | 0.5475 | 0.3147 | - | All/Rejected/CloneDist | "Track Clone Distance" | 98 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 98 | 0.041434 | 0.063033 | 2.0877 | 4.0679 | - | All/Rejected/P | "Track Momentum" | 98 | 39994 | 18370 | 1.1567 | 0.69287 | - | All/Rejected/Pt | "Track Transverse Momentum" | 98 | 1001.3 | 777.38 | 2.704 | 8.6297 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 623 | 1.1946 | 0.5523 | 0.88617 | 0.67892 | - | All/Selected/CloneDist | "Track Clone Distance" | 623 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 623 | 0.052553 | 0.066558 | 2.495 | 6.6699 | - | All/Selected/P | "Track Momentum" | 623 | 9873.1 | 10745 | 2.8668 | 11.43 | - | All/Selected/Pt | "Track Transverse Momentum" | 623 | 877.83 | 563.29 | 2.9338 | 13.375 | - | nRichTracks | "# Rich Tracks / Event" | 96 | 6.4896 | 4.9916 | 0.92835 | 0.45063 | - | nTracks | "# Tracks / Event" | 96 | 7.5104 | 5.7009 | 0.84866 | 0.24605 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 99 | 1.1861 | 0.43715 | 0.54728 | 0.36117 | + | All/Rejected/CloneDist | "Track Clone Distance" | 99 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 99 | 0.04223 | 0.062745 | 2.0613 | 4.0143 | + | All/Rejected/P | "Track Momentum" | 99 | 39863 | 18290 | 1.1782 | 0.74814 | + | All/Rejected/Pt | "Track Transverse Momentum" | 99 | 957.08 | 674.3 | 2.3769 | 6.856 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 621 | 1.2006 | 0.55113 | 0.89273 | 0.69942 | + | All/Selected/CloneDist | "Track Clone Distance" | 621 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 621 | 0.052401 | 0.066236 | 2.5074 | 6.7843 | + | All/Selected/P | "Track Momentum" | 621 | 9786.1 | 10430 | 2.7771 | 10.942 | + | All/Selected/Pt | "Track Transverse Momentum" | 621 | 878.45 | 563.87 | 3.0172 | 14.291 | + | nRichTracks | "# Rich Tracks / Event" | 96 | 6.4688 | 4.9853 | 0.93404 | 0.46237 | + | nTracks | "# Tracks / Event" | 96 | 7.5 | 5.6954 | 0.84864 | 0.24801 | RichRecPixBkgsUpstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsUpstream" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.088337 | 0.0771 | 1.2912 | 1.6813 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 264224 | 0.088339 | 0.077099 | 1.2912 | 1.6814 | RichDLLsUpstream SUCCESS 1D histograms in directory "RICH/RichDLLsUpstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 623 | 0.079227 | 14.415 | -0.46098 | 0.51155 | - | deuteron/dll | "deuteron DLL" | 623 | 0.061447 | 14.389 | -0.49717 | 0.49264 | - | electron/dll | "electron DLL" | 623 | -14.407 | 13.296 | -0.30883 | -0.2246 | - | kaon/dll | "kaon DLL" | 623 | 0.00097397 | 14.296 | -0.63134 | 0.69282 | - | muon/dll | "muon DLL" | 623 | -5.2847 | 9.4313 | -0.06514 | 6.2221 | - | pion/dll | "pion DLL" | 623 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 623 | 0.025556 | 14.3 | -0.54064 | 0.5623 | + | below_threshold/dll | "below_threshold DLL" | 621 | 0.040901 | 14.364 | -0.48159 | 0.51387 | + | deuteron/dll | "deuteron DLL" | 621 | 0.052115 | 14.39 | -0.4991 | 0.4986 | + | electron/dll | "electron DLL" | 621 | -14.377 | 13.278 | -0.30708 | -0.18851 | + | kaon/dll | "kaon DLL" | 621 | 0.016721 | 14.31 | -0.63224 | 0.68323 | + | muon/dll | "muon DLL" | 621 | -5.2762 | 9.4265 | -0.057137 | 6.2457 | + | pion/dll | "pion DLL" | 621 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 621 | 0.029451 | 14.313 | -0.54186 | 0.56038 | RiTkDetectableYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 28 | 21.988 | 15.853 | 0.37719 | -0.82617 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 623 | 56.672 | 2.412 | -1.0243 | 15.044 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 208 | 34.632 | 14.945 | -0.6713 | -0.52533 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 622 | 44.184 | 12.06 | -1.1018 | 0.34548 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 577 | 38.852 | 16.903 | -0.86053 | -0.63272 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 100 | 27.282 | 15.69 | -0.050268 | -1.062 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 27 | 21.206 | 15.606 | 0.47066 | -0.63701 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 621 | 56.665 | 2.4109 | -1.0256 | 15.111 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 207 | 34.537 | 14.918 | -0.67122 | -0.5285 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 620 | 44.222 | 12.049 | -1.1158 | 0.38257 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 575 | 38.952 | 16.811 | -0.87048 | -0.60684 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 99 | 27.036 | 15.558 | -0.042483 | -1.0583 | RiTkGeomEffsUpstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 28 | 0.66294 | 0.063302 | 0.68755 | 0.27544 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 623 | 0.667 | 0.043474 | -0.26439 | -0.075874 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 208 | 0.66874 | 0.063533 | -0.61528 | 2.2233 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 622 | 0.66899 | 0.049091 | -0.34088 | 0.38647 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 577 | 0.66726 | 0.055727 | -0.10399 | 0.52104 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 100 | 0.65892 | 0.058856 | 0.070877 | 0.41154 | + | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 27 | 0.66342 | 0.064414 | 0.65484 | 0.14844 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 621 | 0.66707 | 0.043551 | -0.26626 | -0.084403 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 207 | 0.66875 | 0.06368 | -0.61461 | 2.2007 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 620 | 0.6689 | 0.04893 | -0.34739 | 0.39803 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 575 | 0.66692 | 0.055886 | -0.11079 | 0.4912 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 99 | 0.65976 | 0.058806 | 0.042324 | 0.44031 | RiCKResUpstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResUpstreamTight" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 15104 |-0.00069518 | 0.0021594 | -0.12844 | -0.81419 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 28525 |-0.00067946 | 0.0021438 | -0.15843 | -0.82488 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 28525 | 3.1618 | 1.7871 | -0.034021 | -1.1918 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 28525 | 0.044624 | 0.006721 | -0.43728 | -0.9866 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 15092 |-0.00069505 | 0.0021589 | -0.12816 | -0.81421 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 28513 |-0.00067938 | 0.0021435 | -0.15828 | -0.82493 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 28513 | 3.162 | 1.7871 | -0.034259 | -1.1916 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 28513 | 0.044624 | 0.0067217 | -0.43759 | -0.98668 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 13421 | -0.0006611 | 0.0021253 | -0.19428 | -0.83758 | RiTkSignalYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 10 | 43780 | 14586 | 9.6487 | 24.009 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 977 | 6374.4 | 6707.8 | 70.934 | 608.23 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 170 | 17588 | 9461.2 | 19.278 | 114.22 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 911 | 6712.7 | 6823.4 | 71.196 | 600.22 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 770 | 7524.2 | 7129.1 | 61.051 | 491.97 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 982 | 6374.1 | 6695.1 | 71.36 | 613.08 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 171 | 17555 | 9443.4 | 19.43 | 115.38 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 916 | 6710.5 | 6809.4 | 71.663 | 605.43 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 774 | 7522.7 | 7114.3 | 61.456 | 496.28 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 57 | 27428 | 10548 | 13.24 | 65.385 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 4 | 73644 | 8945.1 | 1.1154 | -1.4707 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 390 | 14380 | 10291 | 22.477 | 111.59 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 392 | 14358 | 10270 | 22.649 | 112.72 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 105 | 27337 | 11984 | 9.7463 | 35.19 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 378 | 14643 | 10343 | 22.633 | 111.61 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 360 | 15075 | 10412 | 22.232 | 108.49 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 380 | 14620 | 10321 | 22.811 | 112.77 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 362 | 15048 | 10390 | 22.412 | 109.65 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 31 | 41826 | 12745 | 6.1546 | 15.164 | RiTkEmittedYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 10 | 43780 | 14586 | 9.3582 | 23.215 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 977 | 6374.4 | 6707.8 | 72.613 | 630.03 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 175 | 17344 | 9433.3 | 20.316 | 121.77 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 913 | 6702.2 | 6819.6 | 73.018 | 623.22 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 783 | 7441.6 | 7098.2 | 63.65 | 521.3 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 982 | 6374.1 | 6695.1 | 73.047 | 635.03 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 176 | 17313 | 9415.4 | 20.476 | 123.01 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 918 | 6700.1 | 6805.6 | 73.498 | 628.63 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 788 | 7434.4 | 7081.4 | 64.154 | 526.71 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 60 | 26915 | 10521 | 14.061 | 70.239 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 5 | 70276 | 9697.9 | 1.8587 | -0.18824 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1191 | 7186.6 | 7835.8 | 67.259 | 468.41 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1197 | 7179.1 | 7820.5 | 67.687 | 472.37 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 110 | 26817 | 11944 | 10.05 | 36.425 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 787 | 9576.9 | 8718.2 | 47.965 | 293.83 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 596 | 11417 | 9297.3 | 36.793 | 207.59 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 791 | 9564.5 | 8701 | 48.289 | 296.45 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 599 | 11402 | 9278.9 | 37.05 | 209.51 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 32 | 41438 | 12716 | 6.3226 | 15.86 | RichTkSelEffDownstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffDownstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1237 | 1.4901 | 0.65171 | 0.38618 | 1.5447 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1237 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1237 | 0.067348 | 0.10347 | 6.8569 | 14.796 | - | All/effVP | "RICH Track Sel. Eff. V P" | 1237 | 7040.9 | 7747.8 | 116.7 | 885.96 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1237 | 431.56 | 396.87 | 108.46 | 810.11 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1242 | 1.4883 | 0.65144 | 0.39982 | 1.5555 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1242 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1242 | 0.067097 | 0.10333 | 6.9054 | 14.959 | + | All/effVP | "RICH Track Sel. Eff. V P" | 1242 | 7038 | 7735.3 | 117.28 | 891.83 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1242 | 431.73 | 396.2 | 108.98 | 815.37 | RiTkDetectableYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 10 | 43780 | 14586 | 9.7981 | 24.434 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 977 | 6374.4 | 6707.8 | 72.613 | 630.03 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 170 | 17588 | 9461.2 | 19.932 | 118.97 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 911 | 6712.7 | 6823.4 | 72.956 | 622.34 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 770 | 7524.2 | 7129.1 | 62.576 | 510.18 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 982 | 6374.1 | 6695.1 | 73.047 | 635.03 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 171 | 17555 | 9443.4 | 20.09 | 120.19 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 916 | 6710.5 | 6809.4 | 73.437 | 627.75 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 774 | 7522.7 | 7114.3 | 62.989 | 514.65 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 57 | 27428 | 10548 | 13.727 | 67.952 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 4 | 73644 | 8945.1 | 1.0469 | -1.553 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 390 | 14380 | 10291 | 19.951 | 97.926 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 392 | 14358 | 10270 | 20.105 | 98.928 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 105 | 27337 | 11984 | 9.6514 | 34.532 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 378 | 14643 | 10343 | 20.493 | 99.922 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 360 | 15075 | 10412 | 20.476 | 98.787 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 380 | 14620 | 10321 | 20.654 | 100.97 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 362 | 15048 | 10390 | 20.643 | 99.851 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 31 | 41826 | 12745 | 6.2038 | 15.33 | RiTkSignalYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.1695 | 13.612 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4421 | 9090.5 | 9629.4 | 87.907 | 546.89 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1342 | 19332 | 12149 | 30.718 | 131.17 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4323 | 9256.9 | 9673.7 | 89.496 | 553.17 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4004 | 9813.8 | 9841.4 | 83.875 | 506.01 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 517 | 30388 | 13420 | 13.534 | 42.808 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76373 | 12152 | 2.09 | 0.5551 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3004 | 17860 | 13761 | 38.602 | 179.81 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1180 | 30200 | 15063 | 20.208 | 72.51 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2932 | 18149 | 13805 | 38.457 | 177.97 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2854 | 18477 | 13848 | 38.054 | 174.86 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 429 | 45993 | 15380 | 9.3636 | 24.106 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.1686 | 13.609 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4413 | 9107.5 | 9637.6 | 87.599 | 544.39 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1344 | 19333 | 12141 | 30.774 | 131.5 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4317 | 9271.2 | 9681.1 | 89.222 | 550.95 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4000 | 9826.3 | 9847.4 | 83.663 | 504.33 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 518 | 30376 | 13410 | 13.577 | 42.995 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76374 | 12153 | 2.0883 | 0.55157 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3003 | 17868 | 13761 | 38.583 | 179.7 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1181 | 30194 | 15059 | 20.231 | 72.623 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2931 | 18157 | 13805 | 38.44 | 177.86 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2853 | 18486 | 13848 | 38.037 | 174.76 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 429 | 45993 | 15381 | 9.3621 | 24.1 | RiTkEmittedYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 144 | 48738 | 12395 | 6.0586 | 13.284 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4422 | 9088.8 | 9628.9 | 86.814 | 538.21 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1375 | 19084 | 12105 | 30.941 | 132.6 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4340 | 9228.2 | 9665.6 | 88.671 | 546.78 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4042 | 9745.4 | 9820 | 83.611 | 504.16 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 535 | 29936 | 13407 | 13.825 | 44.082 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 90 | 75580 | 12378 | 2.133 | 0.67696 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 5687 | 11427 | 12132 | 70.586 | 404.36 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1219 | 29748 | 15019 | 20.861 | 75.611 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 4742 | 13188 | 12572 | 62.976 | 341.16 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4066 | 14747 | 12944 | 55.052 | 284.34 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 444 | 45448 | 15373 | 9.9527 | 26.142 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 144 | 48738 | 12395 | 6.0578 | 13.281 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4414 | 9105.9 | 9637.2 | 86.508 | 535.73 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1377 | 19085 | 12097 | 30.996 | 132.92 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4334 | 9242.4 | 9672.9 | 88.399 | 544.59 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4037 | 9759.6 | 9826.6 | 83.375 | 502.3 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 536 | 29925 | 13397 | 13.867 | 44.269 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 90 | 75581 | 12379 | 2.1317 | 0.67422 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 5677 | 11443 | 12140 | 70.401 | 402.98 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1220 | 29742 | 15015 | 20.886 | 75.731 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 4735 | 13204 | 12578 | 62.845 | 340.24 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4064 | 14755 | 12946 | 55.005 | 284.02 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 444 | 45448 | 15374 | 9.9513 | 26.136 | RichTkSelEffLong SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffLong" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 5853 | 1.307 | 0.51501 | 4.0503 | 11.422 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 5853 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 5853 | 0.042684 | 0.077964 | 19.436 | 67.275 | - | All/effVP | "RICH Track Sel. Eff. V P" | 5853 | 11298 | 12179 | 76.463 | 438.13 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 5853 | 577.08 | 535.52 | 217.52 | 1906.5 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 5842 | 1.3051 | 0.51311 | 4.1025 | 11.631 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 5842 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 5842 | 0.042322 | 0.077548 | 19.874 | 69.405 | + | All/effVP | "RICH Track Sel. Eff. V P" | 5842 | 11315 | 12187 | 76.254 | 436.56 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 5842 | 578.07 | 535.96 | 216.82 | 1898.6 | RiTkDetectableYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.0266 | 13.16 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4421 | 9090.5 | 9629.4 | 86.793 | 538.04 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1342 | 19332 | 12149 | 30.22 | 128.53 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4323 | 9256.9 | 9673.7 | 88.374 | 544.29 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4004 | 9813.8 | 9841.4 | 82.824 | 497.88 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 517 | 30388 | 13420 | 13.415 | 42.337 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76373 | 12152 | 2.0327 | 0.46646 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3004 | 17860 | 13761 | 36.683 | 171.13 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1180 | 30200 | 15063 | 20.222 | 72.533 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2932 | 18149 | 13805 | 37.517 | 173.83 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2854 | 18477 | 13848 | 37.484 | 172.45 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 429 | 45993 | 15380 | 9.6293 | 24.924 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 49059 | 12344 | 6.0258 | 13.157 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4413 | 9107.5 | 9637.6 | 86.487 | 535.56 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1344 | 19333 | 12141 | 30.276 | 128.86 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4317 | 9271.2 | 9681.1 | 88.103 | 542.11 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4000 | 9826.3 | 9847.4 | 82.613 | 496.22 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 518 | 30376 | 13410 | 13.457 | 42.523 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 87 | 76374 | 12153 | 2.0314 | 0.46376 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3003 | 17868 | 13761 | 36.663 | 171.01 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1181 | 30194 | 15059 | 20.246 | 72.651 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2931 | 18157 | 13805 | 37.497 | 173.72 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2853 | 18486 | 13848 | 37.466 | 172.34 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 429 | 45993 | 15381 | 9.6279 | 24.919 | RiTkSignalYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 28 | 47872 | 13659 | 5.1707 | 11.417 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 623 | 9873.1 | 10745 | 32.708 | 177.61 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 208 | 20860 | 12667 | 14.957 | 60.54 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 622 | 9886 | 10749 | 34.826 | 189.15 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 577 | 10475 | 10946 | 32.783 | 173.74 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 100 | 29758 | 13448 | 10.14 | 34.112 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 27 | 46779 | 12766 | 6.5209 | 17.93 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 621 | 9786.1 | 10430 | 31.532 | 173.73 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 207 | 20596 | 12115 | 15.08 | 64.099 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 620 | 9798.8 | 10434 | 33.625 | 185.31 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 575 | 10383 | 10617 | 31.708 | 170.74 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 99 | 29291 | 12696 | 11.037 | 40.618 | RiTkEmittedYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 28 | 47872 | 13659 | 5.2649 | 11.73 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 623 | 9873.1 | 10745 | 31.26 | 167.34 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 211 | 20691 | 12654 | 14.24 | 56.877 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 622 | 9886 | 10749 | 33.26 | 178.08 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 584 | 10380 | 10914 | 31.729 | 166.43 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 102 | 29508 | 13428 | 9.6659 | 32.135 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 27 | 46779 | 12766 | 6.6849 | 18.446 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 621 | 9786.1 | 10430 | 29.944 | 162.07 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 210 | 20430 | 12106 | 14.211 | 59.38 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 620 | 9798.8 | 10434 | 31.906 | 172.73 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 582 | 10289 | 10588 | 30.48 | 161.85 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 101 | 29048 | 12681 | 10.194 | 37.014 | RichTkSelEffUpstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 721 | 1.1933 | 0.53846 | 5.3053 | 15.541 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 721 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 721 | 0.051095 | 0.066213 | 24.907 | 96.227 | - | All/effVP | "RICH Track Sel. Eff. V P" | 721 | 13537 | 15473 | 13.406 | 51.292 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 721 | 894.53 | 598.25 | 55.026 | 333.63 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 720 | 1.1986 | 0.53692 | 5.2813 | 15.6 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 720 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 720 | 0.051048 | 0.065873 | 25.36 | 98.569 | + | All/effVP | "RICH Track Sel. Eff. V P" | 720 | 13492 | 15309 | 11.358 | 43.753 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 720 | 889.1 | 580.69 | 60.521 | 378.76 | RiTkDetectableYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 28 | 47872 | 13659 | 5.3847 | 12.051 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 623 | 9873.1 | 10745 | 31.26 | 167.34 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 208 | 20860 | 12667 | 14.103 | 56.149 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 622 | 9886 | 10749 | 33.292 | 178.26 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 577 | 10475 | 10946 | 31.316 | 163.6 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 100 | 29758 | 13448 | 9.5517 | 31.575 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 27 | 46779 | 12766 | 6.8535 | 18.974 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 621 | 9786.1 | 10430 | 29.944 | 162.07 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 207 | 20596 | 12115 | 14.087 | 58.712 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 620 | 9798.8 | 10434 | 31.937 | 172.91 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 575 | 10383 | 10617 | 30.089 | 159.16 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 99 | 29291 | 12696 | 10.092 | 36.484 | RichRecPixelClusters SUCCESS Booked 2 Histogram(s) : 1D=2 RichRecPixelQC SUCCESS Booked 6 Histogram(s) : 1D=6 RichDecodingErrors SUCCESS Booked 352 Histogram(s) : 2D=1 1DProf=351 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref index 70d876bfd26..551f8a21402 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref @@ -10,97 +10,97 @@ ApplicationMgr INFO Application Manager Terminated succe PrGECFilter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 50 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | - | "Nb of Produced Tracks" | 50 | 16463 | 329.26 | + | "Nb of Produced Tracks" | 50 | 16323 | 326.46 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 16463 | 329.26 | + | "Nb of Produced Tracks" | 50 | 16323 | 326.46 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 50 | 10431 | 208.62 | - | "#tracks" | 50 | 2942 | 58.840 | + | "#seeds" | 50 | 10362 | 207.24 | + | "#tracks" | 50 | 2943 | 58.860 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 2942 | 58.840 | + | "Nb of Produced Tracks" | 50 | 2943 | 58.860 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrForwardTracking INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 1970 | 39.400 | + | "Nb output tracks" | 50 | 1969 | 39.380 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 1970 | 39.400 | + | "Nb of Produced Tracks" | 50 | 1969 | 39.380 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | TrackEventFitter SUCCESS Number of counters : 7 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Long.badChisq" | 1970 | 579 | 0.29391 | 0.45555 | 0.0000 | 1.0000 | - | "Long.chisqprobSum" | 1970 | 463.3482 | 0.23520 | 0.28075 | 0.0000 | 0.99927 | - | "Long.flipCharge" | 1970 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Long.numOutliers" | 1970 | 2123 | 1.0777 | 0.85944 | 0.0000 | 2.0000 | + | "Long.badChisq" | 1969 | 580 | 0.29457 | 0.45585 | 0.0000 | 1.0000 | + | "Long.chisqprobSum" | 1969 | 464.1378 | 0.23572 | 0.28062 | 0.0000 | 0.99927 | + | "Long.flipCharge" | 1969 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Long.numOutliers" | 1969 | 2120 | 1.0767 | 0.85975 | 0.0000 | 2.0000 | | "nBadInput" | 50 | 0 | 0.0000 | - | "nFitted" | 50 | 1970 | 39.400 | - | "nTracks" | 50 | 1970 | 39.400 | + | "nFitted" | 50 | 1969 | 39.380 | + | "nTracks" | 50 | 1969 | 39.380 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 5146 | 102.92 | + | "Nb output tracks" | 50 | 5148 | 102.96 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 5146 | 102.92 | + | "Nb of Produced Tracks" | 50 | 5148 | 102.96 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 5314 | | "#UT hits added" | 20839 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 14856 | 84262.24 | 5.6719 | - | "#MatchingTracks" | 50 | 4761 | 95.220 | - | "TracksMLP" | 14856 | 4695.18 | 0.31605 | + | "#MatchingChi2" | 14838 | 84102.11 | 5.6680 | + | "#MatchingTracks" | 50 | 4759 | 95.180 | + | "TracksMLP" | 14838 | 4693.888 | 0.31634 | TrackBestTrackCreator SUCCESS Number of counters : 33 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 23986 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2084 | 1407 |( 67.51440 +- 1.025876)% | - | "Downstream.chisqProbSum" | 2084 | 170.1002 | 0.081622 | - |*"Downstream.flipCharge" | 2084 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2084 | 1284.564 | 0.61639 | - | "Downstream.numOutliers" | 2084 | 2840 | 1.3628 | - |*"FitFailed" | 23986 | 0 |( 0.000000 +- 0.000000)% | - | "FittedBefore" | 1749 | - |*"Long.badChisq" | 5045 | 3217 |( 63.76611 +- 0.6767400)% | - | "Long.chisqProbSum" | 5045 | 500.0364 | 0.099115 | - |*"Long.flipCharge" | 5045 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 5045 | 1395.072 | 0.27653 | - | "Long.numOutliers" | 5045 | 7113 | 1.4099 | - |*"Ttrack.badChisq" | 2677 | 200 |( 7.471050 +- 0.5081658)% | - | "Ttrack.chisqProbSum" | 2677 | 782.0437 | 0.29213 | - |*"Ttrack.flipCharge" | 2677 | 122 |( 4.557340 +- 0.4030907)% | - | "Ttrack.ghostProbability" | 2677 | 306.5184 | 0.11450 | - | "Ttrack.numOutliers" | 2677 | 1816 | 0.67837 | - |*"Upstream.badChisq" | 910 | 213 |( 23.40659 +- 1.403602)% | - | "Upstream.chisqProbSum" | 910 | 309.1638 | 0.33974 | - |*"Upstream.flipCharge" | 910 | 17 |( 1.868132 +- 0.4488364)% | - | "Upstream.ghostProbability" | 910 | 202.2125 | 0.22221 | - | "Upstream.numOutliers" | 910 | 444 | 0.48791 | - |*"Velo.badChisq" | 5495 | 1456 |( 26.49682 +- 0.5953414)% | - | "Velo.chisqProbSum" | 5495 | 1632.09 | 0.29701 | - |*"Velo.flipCharge" | 5495 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 5495 | 694.2345 | 0.12634 | - | "Velo.numOutliers" | 5495 | 3848 | 0.70027 | - |*"VeloBackward.badChisq" | 6026 | 342 |( 5.675407 +- 0.2980550)% | - | "VeloBackward.chisqProbSum" | 6026 | 2787.624 | 0.46260 | - |*"VeloBackward.flipCharge" | 6026 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 6026 | 597.7385 | 0.099193 | - | "VeloBackward.numOutliers" | 6026 | 1641 | 0.27232 | + |*"BadInput" | 23867 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2088 | 1410 |( 67.52874 +- 1.024775)% | + | "Downstream.chisqProbSum" | 2088 | 170.2307 | 0.081528 | + |*"Downstream.flipCharge" | 2088 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2088 | 1287.019 | 0.61639 | + | "Downstream.numOutliers" | 2088 | 2847 | 1.3635 | + |*"FitFailed" | 23867 | 0 |( 0.000000 +- 0.000000)% | + | "FittedBefore" | 1745 | + |*"Long.badChisq" | 5052 | 3213 |( 63.59857 +- 0.6769416)% | + | "Long.chisqProbSum" | 5052 | 500.9339 | 0.099156 | + |*"Long.flipCharge" | 5052 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 5052 | 1393.689 | 0.27587 | + | "Long.numOutliers" | 5052 | 7117 | 1.4087 | + |*"Ttrack.badChisq" | 2683 | 200 |( 7.454342 +- 0.5070752)% | + | "Ttrack.chisqProbSum" | 2683 | 783.3302 | 0.29196 | + |*"Ttrack.flipCharge" | 2683 | 122 |( 4.547149 +- 0.4022108)% | + | "Ttrack.ghostProbability" | 2683 | 307.7836 | 0.11472 | + | "Ttrack.numOutliers" | 2683 | 1821 | 0.67872 | + |*"Upstream.badChisq" | 915 | 213 |( 23.27869 +- 1.397098)% | + | "Upstream.chisqProbSum" | 915 | 308.9295 | 0.33763 | + |*"Upstream.flipCharge" | 915 | 17 |( 1.857923 +- 0.4464070)% | + | "Upstream.ghostProbability" | 915 | 203.6713 | 0.22259 | + | "Upstream.numOutliers" | 915 | 452 | 0.49399 | + |*"Velo.badChisq" | 5427 | 1434 |( 26.42344 +- 0.5985280)% | + | "Velo.chisqProbSum" | 5427 | 1612.636 | 0.29715 | + |*"Velo.flipCharge" | 5427 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 5427 | 666.614 | 0.12283 | + | "Velo.numOutliers" | 5427 | 3798 | 0.69983 | + |*"VeloBackward.badChisq" | 5957 | 332 |( 5.573275 +- 0.2972274)% | + | "VeloBackward.chisqProbSum" | 5957 | 2755.082 | 0.46249 | + |*"VeloBackward.flipCharge" | 5957 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 5957 | 568.7658 | 0.095479 | + | "VeloBackward.numOutliers" | 5957 | 1573 | 0.26406 | PatPV3DFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb PVs" | 50 | 285 | 5.7000 | + | "Nb PVs" | 50 | 281 | 5.6200 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | @@ -126,74 +126,74 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 50 | 792 | 15.840 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | - | "#tracks in acceptance" | 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | + | "#tracks in acceptance" | 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | - | "#tracks in acceptance" | 50 | 6184 | 123.68 | 48.819 | 40.000 | 229.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | + | "#tracks in acceptance" | 50 | 6189 | 123.78 | 48.942 | 40.000 | 229.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6184 | 123.68 | 48.819 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6189 | 123.78 | 48.942 | 40.000 | 229.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6184 | 123.68 | 48.819 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6189 | 123.78 | 48.942 | 40.000 | 229.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 1196730 | 23935. | 14014. | 2715.0 | 55235. | - | "#chi2" | 385706 | 1.7813e+08 | 461.83 | 290.01 | 0.00022207 | 999.99 | - | "#good tracks" | 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | - | "#links in table" | 50 | 385706 | 7714.1 | 5225.0 | 483.00 | 21040. | + | "#above threshold" | 50 | 1197822 | 23956. | 14040. | 2715.0 | 55511. | + | "#chi2" | 385842 |1.781771e+08 | 461.79 | 290.01 | 0.00022207 | 999.99 | + | "#good tracks" | 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | + | "#links in table" | 50 | 385842 | 7716.8 | 5232.2 | 483.00 | 21103. | | "#total calos" | 50 | 10948 | 218.96 | 58.725 | 78.000 | 339.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | - | "photonHypos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "electronHypos" | 50 | 6237 | 124.74 | 48.202 | 27.000 | 218.00 | + | "photonHypos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 847588 | 16952. | 12090. | 982.00 | 44287. | - | "#chi2" | 92860 |4.167412e+08 | 4487.8 | 2934.3 | 0.085392 | 9999.9 | - | "#good tracks" | 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | - | "#links in table" | 50 | 92860 | 1857.2 | 1226.3 | 125.00 | 5258.0 | - | "#total calos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | + | "#above threshold" | 50 | 848271 | 16965. | 12110. | 982.00 | 44483. | + | "#chi2" | 93017 |4.17477e+08 | 4488.2 | 2933.7 | 0.085392 | 9999.9 | + | "#good tracks" | 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | + | "#links in table" | 50 | 93017 | 1860.3 | 1229.0 | 125.00 | 5258.0 | + | "#total calos" | 50 | 6237 | 124.74 | 48.202 | 27.000 | 218.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10640 | 212.80 | 74.075 | 83.000 | 379.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | - | "#tracks in acceptance" | 50 | 7096 | 141.92 | 50.911 | 57.000 | 263.00 | + | "#links in table" | 50 | 10572 | 211.44 | 73.456 | 83.000 | 377.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | + | "#tracks in acceptance" | 50 | 7075 | 141.50 | 50.632 | 57.000 | 262.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 784716 | 15694. | 8907.1 | 2389.0 | 37651. | - | "#chi2" | 291450 |1.381139e+09 | 4738.9 | 2877.3 | 0.016992 | 9999.9 | - | "#good tracks" | 50 | 7096 | 141.92 | 50.911 | 57.000 | 263.00 | - | "#links in table" | 50 | 291450 | 5829.0 | 2911.0 | 1023.0 | 14498. | - | "#total calos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "#above threshold" | 50 | 782662 | 15653. | 8878.5 | 2389.0 | 37500. | + | "#chi2" | 290373 |1.376041e+09 | 4738.9 | 2877.4 | 0.016992 | 9999.9 | + | "#good tracks" | 50 | 7075 | 141.50 | 50.632 | 57.000 | 262.00 | + | "#links in table" | 50 | 290373 | 5807.5 | 2897.5 | 1023.0 | 14453. | + | "#total calos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10640 | 212.80 | 74.075 | 83.000 | 379.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | + | "#links in table" | 50 | 10572 | 211.44 | 73.456 | 83.000 | 377.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10640 | 212.80 | 74.075 | 83.000 | 379.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10572 | 211.44 | 73.456 | 83.000 | 377.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | CaloFutureMergedPi0.EcalCovariance SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "parameter updated" | 2 | @@ -221,50 +221,50 @@ ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | " Inner" | 2121 | 31343.02 | 14.777 | 0.089527 | 14.778 | 14.778 | | " Middle" | 1890 | 27282.28 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 2226 | 32532.47 | 14.615 | 0.0000 | 14.614 | 14.614 | - | "Delta(Z)" | 6237 | 726974 | 116.56 | 11.568 | 83.316 | 164.35 | + | "Delta(Z)" | 6237 | 726968.8 | 116.56 | 11.569 | 83.316 | 164.35 | | "Delta(Z) Inner" | 2121 | 241261.2 | 113.75 | 11.124 | 83.316 | 164.35 | | "Delta(Z) Middle" | 1890 | 217953.7 | 115.32 | 10.903 | 86.958 | 163.63 | - | "Delta(Z) Outer" | 2226 | 267759.3 | 120.29 | 11.547 | 94.434 | 160.94 | + | "Delta(Z) Outer" | 2226 | 267754.1 | 120.28 | 11.550 | 94.434 | 160.94 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 6237 | -1195.206 | -0.19163 | 11.795 | -23.059 | 22.930 | - | "Delta(Y)" | 6237 | -599.3564 | -0.096097 | 11.574 | -23.059 | 22.930 | + | "Delta(X)" | 6237 | -1225.862 | -0.19655 | 11.796 | -23.059 | 22.930 | + | "Delta(Y)" | 6237 | -613.9228 | -0.098432 | 11.577 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2121 | 2110.778 | 0.99518 | 0.018972 | 0.96468 | 1.1016 | | " Middle" | 1890 | 1902.562 | 1.0066 | 0.019217 | 0.97678 | 1.1187 | - | " Outer" | 2226 | 2227.223 | 1.0005 | 0.014447 | 0.97356 | 1.0498 | - | "Corrected energy" | 6237 |4.467315e+07 | 7162.6 | 8806.8 | 419.78 | 2.7815e+05 | - | "Delta(E)" | 6237 | 1237072 | 198.34 | 223.26 | -3615.5 | 4037.2 | + | " Outer" | 2226 | 2227.206 | 1.0005 | 0.014436 | 0.97356 | 1.0498 | + | "Corrected energy" | 6237 |4.467234e+07 | 7162.5 | 8806.8 | 419.78 | 2.7815e+05 | + | "Delta(E)" | 6237 | 1237126 | 198.35 | 223.27 | -3615.5 | 4037.2 | | "Pileup offset" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup scale" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup subtracted ratio" | 6237 | 6237 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 159475.1 | 81.240 | 0.050469 | 81.241 | 81.241 | - | " Middle" | 1758 | 167542.5 | 95.303 | 0.55269 | 95.304 | 95.304 | + | " Middle" | 1759 | 167637.8 | 95.303 | 0.55304 | 95.304 | 95.304 | | " Outer" | 3367 | 366584.3 | 108.88 | 0.71390 | 108.88 | 108.88 | | " Inner" | 1963 | 29008.2 | 14.777 | 0.090809 | 14.778 | 14.778 | - | " Middle" | 1758 | 25376.79 | 14.435 | 0.0000 | 14.435 | 14.435 | + | " Middle" | 1759 | 25391.23 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 3367 | 49206.25 | 14.614 | 0.053984 | 14.614 | 14.614 | - | "Delta(Z)" | 7088 | 769171.8 | 108.52 | 11.886 | 76.221 | 164.33 | + | "Delta(Z)" | 7089 | 769272.4 | 108.52 | 11.886 | 76.221 | 164.33 | | "Delta(Z) Inner" | 1963 | 213829.1 | 108.93 | 12.093 | 76.221 | 164.33 | - | "Delta(Z) Middle" | 1758 | 189065.9 | 107.55 | 10.937 | 81.830 | 150.49 | - | "Delta(Z) Outer" | 3367 | 366277.7 | 108.78 | 12.202 | 77.473 | 158.35 | + | "Delta(Z) Middle" | 1759 | 189180.4 | 107.55 | 10.936 | 81.830 | 150.49 | + | "Delta(Z) Outer" | 3367 | 366263.8 | 108.78 | 12.203 | 77.473 | 158.35 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 7088 | -457.0891 | -0.064488 | 12.669 | -23.059 | 22.930 | - | "Delta(Y)" | 7088 | -494.5214 | -0.069769 | 12.657 | -23.059 | 22.930 | + | "Delta(X)" | 7089 | -479.1677 | -0.067593 | 12.668 | -23.059 | 22.930 | + | "Delta(Y)" | 7089 | -517.4447 | -0.072993 | 12.654 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 1952.461 | 0.99463 | 0.019355 | 0.96492 | 1.1127 | - | " Middle" | 1758 | 1766.203 | 1.0047 | 0.019351 | 0.97709 | 1.1325 | - | " Outer" | 3367 | 3358.061 | 0.99735 | 0.015422 | 0.97356 | 1.0596 | - | "Corrected energy" | 7088 |3.011274e+07 | 4248.4 | 6905.1 | 165.95 | 2.7786e+05 | - | "Delta(E)" | 7088 | -79561.65 | -11.225 | 145.47 | -1458.7 | 2142.1 | - | "Pileup offset" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 7088 | 7088 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Middle" | 1759 | 1767.186 | 1.0047 | 0.019346 | 0.97709 | 1.1325 | + | " Outer" | 3367 | 3358.069 | 0.99735 | 0.015434 | 0.97356 | 1.0596 | + | "Corrected energy" | 7089 |3.011568e+07 | 4248.2 | 6904.6 | 165.95 | 2.7786e+05 | + | "Delta(E)" | 7089 | -79634.9 | -11.234 | 145.46 | -1458.7 | 2142.1 | + | "Pileup offset" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 7089 | 7089 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 170 | 13811 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -312,9 +312,9 @@ CaloFutureShowerOverlap.PhotonSh... SUCCESS Number of counters : 2 | "Delta(Y)" | 29368 | -2297.968 | -0.078247 | 12.517 | -23.059 | 23.423 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4191 | 26192 | 6.2496 | - | "#tracks with hits added" | 4191 | + | "#UT hits added" | 4189 | 26209 | 6.2566 | + | "#tracks with hits added" | 4189 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4297 | 26993 | 6.2818 | - | "#tracks with hits added" | 4297 | + | "#UT hits added" | 4302 | 27036 | 6.2845 | + | "#tracks with hits added" | 4302 | diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref.x86_64+avx2+fma-opt index 1a7e77fcaa4..291cc682336 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque.ref.x86_64+avx2+fma-opt @@ -10,97 +10,97 @@ ApplicationMgr INFO Application Manager Terminated succe PrGECFilter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 50 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | - | "Nb of Produced Tracks" | 50 | 16503 | 330.06 | + | "Nb of Produced Tracks" | 50 | 16358 | 327.16 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 16503 | 330.06 | + | "Nb of Produced Tracks" | 50 | 16358 | 327.16 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 50 | 10454 | 209.08 | - | "#tracks" | 50 | 2948 | 58.960 | + | "#seeds" | 50 | 10390 | 207.80 | + | "#tracks" | 50 | 2946 | 58.920 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 2948 | 58.960 | + | "Nb of Produced Tracks" | 50 | 2946 | 58.920 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrForwardTracking INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 1973 | 39.460 | + | "Nb output tracks" | 50 | 1970 | 39.400 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 1973 | 39.460 | + | "Nb of Produced Tracks" | 50 | 1970 | 39.400 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | TrackEventFitter SUCCESS Number of counters : 7 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Long.badChisq" | 1973 | 581 | 0.29448 | 0.45581 | 0.0000 | 1.0000 | - | "Long.chisqprobSum" | 1973 | 464.2292 | 0.23529 | 0.28034 | 0.0000 | 0.99927 | - | "Long.flipCharge" | 1973 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Long.numOutliers" | 1973 | 2127 | 1.0781 | 0.85845 | 0.0000 | 2.0000 | + | "Long.badChisq" | 1970 | 583 | 0.29594 | 0.45646 | 0.0000 | 1.0000 | + | "Long.chisqprobSum" | 1970 | 464.485 | 0.23578 | 0.28063 | 0.0000 | 0.99927 | + | "Long.flipCharge" | 1970 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Long.numOutliers" | 1970 | 2122 | 1.0772 | 0.85978 | 0.0000 | 2.0000 | | "nBadInput" | 50 | 0 | 0.0000 | - | "nFitted" | 50 | 1973 | 39.460 | - | "nTracks" | 50 | 1973 | 39.460 | + | "nFitted" | 50 | 1970 | 39.400 | + | "nTracks" | 50 | 1970 | 39.400 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 5152 | 103.04 | + | "Nb output tracks" | 50 | 5154 | 103.08 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 5152 | 103.04 | + | "Nb of Produced Tracks" | 50 | 5154 | 103.08 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 5314 | | "#UT hits added" | 20839 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 14896 | 84581.09 | 5.6781 | - | "#MatchingTracks" | 50 | 4763 | 95.260 | - | "TracksMLP" | 14896 | 4702.058 | 0.31566 | + | "#MatchingChi2" | 14872 | 84359.01 | 5.6723 | + | "#MatchingTracks" | 50 | 4766 | 95.320 | + | "TracksMLP" | 14872 | 4703.537 | 0.31627 | TrackBestTrackCreator SUCCESS Number of counters : 33 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 24014 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2085 | 1408 |( 67.52998 +- 1.025502)% | - | "Downstream.chisqProbSum" | 2085 | 170.0652 | 0.081566 | - |*"Downstream.flipCharge" | 2085 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2085 | 1285.194 | 0.61640 | - | "Downstream.numOutliers" | 2085 | 2842 | 1.3631 | - |*"FitFailed" | 24014 | 0 |( 0.000000 +- 0.000000)% | - | "FittedBefore" | 1748 | - |*"Long.badChisq" | 5047 | 3222 |( 63.83990 +- 0.6763076)% | - | "Long.chisqProbSum" | 5047 | 498.2301 | 0.098718 | - |*"Long.flipCharge" | 5047 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 5047 | 1393.943 | 0.27619 | - | "Long.numOutliers" | 5047 | 7115 | 1.4097 | - |*"Ttrack.badChisq" | 2681 | 200 |( 7.459903 +- 0.5074382)% | - | "Ttrack.chisqProbSum" | 2681 | 782.9449 | 0.29203 | - |*"Ttrack.flipCharge" | 2681 | 122 |( 4.550541 +- 0.4025037)% | - | "Ttrack.ghostProbability" | 2681 | 307.0588 | 0.11453 | - | "Ttrack.numOutliers" | 2681 | 1820 | 0.67885 | - |*"Upstream.badChisq" | 913 | 216 |( 23.65827 +- 1.406491)% | - | "Upstream.chisqProbSum" | 913 | 308.0974 | 0.33746 | - |*"Upstream.flipCharge" | 913 | 18 |( 1.971522 +- 0.4600887)% | - | "Upstream.ghostProbability" | 913 | 205.8598 | 0.22548 | - | "Upstream.numOutliers" | 913 | 452 | 0.49507 | - |*"Velo.badChisq" | 5505 | 1463 |( 26.57584 +- 0.5953664)% | - | "Velo.chisqProbSum" | 5505 | 1632.745 | 0.29659 | - |*"Velo.flipCharge" | 5505 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 5505 | 692.2785 | 0.12575 | - | "Velo.numOutliers" | 5505 | 3847 | 0.69882 | - |*"VeloBackward.badChisq" | 6035 | 345 |( 5.716653 +- 0.2988476)% | - | "VeloBackward.chisqProbSum" | 6035 | 2787.495 | 0.46189 | - |*"VeloBackward.flipCharge" | 6035 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 6035 | 607.4773 | 0.10066 | - | "VeloBackward.numOutliers" | 6035 | 1665 | 0.27589 | + |*"BadInput" | 23882 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2087 | 1409 |( 67.51318 +- 1.025148)% | + | "Downstream.chisqProbSum" | 2087 | 170.197 | 0.081551 | + |*"Downstream.flipCharge" | 2087 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2087 | 1285.275 | 0.61585 | + | "Downstream.numOutliers" | 2087 | 2848 | 1.3646 | + |*"FitFailed" | 23882 | 0 |( 0.000000 +- 0.000000)% | + | "FittedBefore" | 1746 | + |*"Long.badChisq" | 5058 | 3217 |( 63.60221 +- 0.6765255)% | + | "Long.chisqProbSum" | 5058 | 499.3059 | 0.098716 | + |*"Long.flipCharge" | 5058 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 5058 | 1400.744 | 0.27694 | + | "Long.numOutliers" | 5058 | 7146 | 1.4128 | + |*"Ttrack.badChisq" | 2682 | 200 |( 7.457122 +- 0.5072566)% | + | "Ttrack.chisqProbSum" | 2682 | 783.3091 | 0.29206 | + |*"Ttrack.flipCharge" | 2682 | 122 |( 4.548844 +- 0.4023572)% | + | "Ttrack.ghostProbability" | 2682 | 306.9467 | 0.11445 | + | "Ttrack.numOutliers" | 2682 | 1821 | 0.67897 | + |*"Upstream.badChisq" | 915 | 212 |( 23.16940 +- 1.394806)% | + | "Upstream.chisqProbSum" | 915 | 310.7204 | 0.33959 | + |*"Upstream.flipCharge" | 915 | 16 |( 1.748634 +- 0.4333195)% | + | "Upstream.ghostProbability" | 915 | 205.2586 | 0.22433 | + | "Upstream.numOutliers" | 915 | 459 | 0.50164 | + |*"Velo.badChisq" | 5436 | 1441 |( 26.50846 +- 0.5986476)% | + | "Velo.chisqProbSum" | 5436 | 1609.903 | 0.29616 | + |*"Velo.flipCharge" | 5436 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 5436 | 662.1054 | 0.12180 | + | "Velo.numOutliers" | 5436 | 3805 | 0.69996 | + |*"VeloBackward.badChisq" | 5958 | 331 |( 5.555556 +- 0.2967575)% | + | "VeloBackward.chisqProbSum" | 5958 | 2756.022 | 0.46257 | + |*"VeloBackward.flipCharge" | 5958 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 5958 | 573.7019 | 0.096291 | + | "VeloBackward.numOutliers" | 5958 | 1598 | 0.26821 | PatPV3DFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb PVs" | 50 | 284 | 5.6800 | + | "Nb PVs" | 50 | 281 | 5.6200 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | @@ -126,74 +126,74 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 50 | 792 | 15.840 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | - | "#tracks in acceptance" | 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | + | "#tracks in acceptance" | 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | - | "#tracks in acceptance" | 50 | 6181 | 123.62 | 48.908 | 40.000 | 229.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | + | "#tracks in acceptance" | 50 | 6186 | 123.72 | 49.007 | 40.000 | 229.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6181 | 123.62 | 48.908 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6186 | 123.72 | 49.007 | 40.000 | 229.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6181 | 123.62 | 48.908 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6186 | 123.72 | 49.007 | 40.000 | 229.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 1196519 | 23930. | 14045. | 2715.0 | 55511. | - | "#chi2" | 385419 |1.780033e+08 | 461.84 | 290.02 | 0.00022207 | 999.99 | - | "#good tracks" | 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | - | "#links in table" | 50 | 385419 | 7708.4 | 5232.1 | 483.00 | 21103. | + | "#above threshold" | 50 | 1197511 | 23950. | 14057. | 2715.0 | 55226. | + | "#chi2" | 385685 |1.781105e+08 | 461.80 | 290.01 | 0.00022207 | 999.99 | + | "#good tracks" | 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | + | "#links in table" | 50 | 385685 | 7713.7 | 5235.1 | 483.00 | 21049. | | "#total calos" | 50 | 10948 | 218.96 | 58.725 | 78.000 | 339.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | - | "photonHypos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "electronHypos" | 50 | 6238 | 124.76 | 48.206 | 27.000 | 218.00 | + | "photonHypos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 847416 | 16948. | 12112. | 982.00 | 44483. | - | "#chi2" | 92826 |4.165643e+08 | 4487.6 | 2934.1 | 0.085394 | 9999.9 | - | "#good tracks" | 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | - | "#links in table" | 50 | 92826 | 1856.5 | 1229.1 | 125.00 | 5276.0 | - | "#total calos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | + | "#above threshold" | 50 | 848168 | 16963. | 12120. | 982.00 | 44283. | + | "#chi2" | 93031 |4.176024e+08 | 4488.9 | 2934.0 | 0.085394 | 9999.9 | + | "#good tracks" | 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | + | "#links in table" | 50 | 93031 | 1860.6 | 1231.0 | 125.00 | 5276.0 | + | "#total calos" | 50 | 6238 | 124.76 | 48.206 | 27.000 | 218.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10644 | 212.88 | 74.073 | 83.000 | 380.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | - | "#tracks in acceptance" | 50 | 7098 | 141.96 | 50.882 | 57.000 | 263.00 | + | "#links in table" | 50 | 10582 | 211.64 | 73.455 | 83.000 | 378.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | + | "#tracks in acceptance" | 50 | 7080 | 141.60 | 50.681 | 57.000 | 261.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 784588 | 15692. | 8903.1 | 2389.0 | 37574. | - | "#chi2" | 292018 |1.384252e+09 | 4740.3 | 2877.3 | 0.016993 | 9999.9 | - | "#good tracks" | 50 | 7098 | 141.96 | 50.882 | 57.000 | 263.00 | - | "#links in table" | 50 | 292018 | 5840.4 | 2922.7 | 1023.0 | 14540. | - | "#total calos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "#above threshold" | 50 | 783033 | 15661. | 8884.4 | 2389.0 | 37447. | + | "#chi2" | 290642 |1.377367e+09 | 4739.0 | 2877.1 | 0.016993 | 9999.9 | + | "#good tracks" | 50 | 7080 | 141.60 | 50.681 | 57.000 | 261.00 | + | "#links in table" | 50 | 290642 | 5812.8 | 2897.8 | 1023.0 | 14492. | + | "#total calos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10644 | 212.88 | 74.073 | 83.000 | 380.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | + | "#links in table" | 50 | 10582 | 211.64 | 73.455 | 83.000 | 378.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10644 | 212.88 | 74.073 | 83.000 | 380.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10582 | 211.64 | 73.455 | 83.000 | 378.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | CaloFutureMergedPi0.EcalCovariance SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "parameter updated" | 2 | @@ -215,56 +215,56 @@ CaloFutureMergedPi0.SplitPhotonS... SUCCESS Number of counters : 2 | "Delta(Y)" | 30492 | 9800.474 | 0.32141 | 13.729 | -45.961 | 29.253 | ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2121 | 172310.1 | 81.240 | 0.27287 | 81.241 | 81.241 | + | " Inner" | 2122 | 172391.4 | 81.240 | 0.27438 | 81.241 | 81.241 | | " Middle" | 1890 | 180121.7 | 95.302 | 0.60559 | 95.304 | 95.304 | | " Outer" | 2226 | 242358 | 108.88 | 0.41289 | 108.88 | 108.88 | - | " Inner" | 2121 | 31343.02 | 14.777 | 0.089549 | 14.778 | 14.778 | + | " Inner" | 2122 | 31357.79 | 14.777 | 0.089537 | 14.778 | 14.778 | | " Middle" | 1890 | 27282.28 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 2226 | 32532.47 | 14.615 | 0.0000 | 14.614 | 14.614 | - | "Delta(Z)" | 6237 | 726974.9 | 116.56 | 11.568 | 83.316 | 164.35 | - | "Delta(Z) Inner" | 2121 | 241261.2 | 113.75 | 11.124 | 83.316 | 164.35 | + | "Delta(Z)" | 6238 | 727082.7 | 116.56 | 11.568 | 83.316 | 164.35 | + | "Delta(Z) Inner" | 2122 | 241374 | 113.75 | 11.121 | 83.316 | 164.35 | | "Delta(Z) Middle" | 1890 | 217953.7 | 115.32 | 10.903 | 86.958 | 163.63 | - | "Delta(Z) Outer" | 2226 | 267760.3 | 120.29 | 11.546 | 94.434 | 160.94 | + | "Delta(Z) Outer" | 2226 | 267755.2 | 120.29 | 11.550 | 94.434 | 160.94 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 6237 | -1195.206 | -0.19163 | 11.795 | -23.059 | 22.930 | - | "Delta(Y)" | 6237 | -599.3564 | -0.096097 | 11.574 | -23.059 | 22.930 | + | "Delta(X)" | 6238 | -1229.293 | -0.19707 | 11.795 | -23.059 | 22.930 | + | "Delta(Y)" | 6238 | -609.6474 | -0.097731 | 11.576 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2121 | 2110.778 | 0.99518 | 0.018973 | 0.96468 | 1.1016 | + | " Inner" | 2122 | 2111.752 | 0.99517 | 0.018980 | 0.96468 | 1.1016 | | " Middle" | 1890 | 1902.562 | 1.0066 | 0.019217 | 0.97678 | 1.1187 | - | " Outer" | 2226 | 2227.223 | 1.0005 | 0.014446 | 0.97356 | 1.0498 | - | "Corrected energy" | 6237 |4.467327e+07 | 7162.6 | 8806.7 | 419.78 | 2.7815e+05 | - | "Delta(E)" | 6237 | 1237187 | 198.36 | 223.26 | -3615.5 | 4037.2 | - | "Pileup offset" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 6237 | 6237 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 2226 | 2227.206 | 1.0005 | 0.014436 | 0.97356 | 1.0498 | + | "Corrected energy" | 6238 |4.468104e+07 | 7162.7 | 8806.1 | 419.78 | 2.7815e+05 | + | "Delta(E)" | 6238 | 1237397 | 198.36 | 223.26 | -3615.5 | 4037.2 | + | "Pileup offset" | 6238 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 6238 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 6238 | 6238 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 159475.1 | 81.240 | 0.048613 | 81.241 | 81.241 | - | " Middle" | 1758 | 167542.5 | 95.303 | 0.55255 | 95.304 | 95.304 | + | " Middle" | 1759 | 167637.8 | 95.303 | 0.55287 | 95.304 | 95.304 | | " Outer" | 3367 | 366584.3 | 108.88 | 0.71412 | 108.88 | 108.88 | | " Inner" | 1963 | 29008.2 | 14.777 | 0.090824 | 14.778 | 14.778 | - | " Middle" | 1758 | 25376.79 | 14.435 | 0.0000 | 14.435 | 14.435 | + | " Middle" | 1759 | 25391.23 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 3367 | 49206.25 | 14.614 | 0.053924 | 14.614 | 14.614 | - | "Delta(Z)" | 7088 | 769171.8 | 108.52 | 11.886 | 76.221 | 164.33 | + | "Delta(Z)" | 7089 | 769272.4 | 108.52 | 11.886 | 76.221 | 164.33 | | "Delta(Z) Inner" | 1963 | 213829.1 | 108.93 | 12.093 | 76.221 | 164.33 | - | "Delta(Z) Middle" | 1758 | 189065.9 | 107.55 | 10.937 | 81.830 | 150.49 | - | "Delta(Z) Outer" | 3367 | 366277.7 | 108.78 | 12.202 | 77.473 | 158.35 | + | "Delta(Z) Middle" | 1759 | 189180.4 | 107.55 | 10.936 | 81.830 | 150.49 | + | "Delta(Z) Outer" | 3367 | 366263.8 | 108.78 | 12.203 | 77.473 | 158.35 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 7088 | -457.0891 | -0.064488 | 12.669 | -23.059 | 22.930 | - | "Delta(Y)" | 7088 | -494.5214 | -0.069769 | 12.657 | -23.059 | 22.930 | + | "Delta(X)" | 7089 | -479.1677 | -0.067593 | 12.668 | -23.059 | 22.930 | + | "Delta(Y)" | 7089 | -517.4447 | -0.072993 | 12.654 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 1952.461 | 0.99463 | 0.019355 | 0.96492 | 1.1127 | - | " Middle" | 1758 | 1766.203 | 1.0047 | 0.019351 | 0.97709 | 1.1325 | - | " Outer" | 3367 | 3358.061 | 0.99735 | 0.015423 | 0.97356 | 1.0596 | - | "Corrected energy" | 7088 |3.011274e+07 | 4248.4 | 6905.1 | 165.95 | 2.7786e+05 | - | "Delta(E)" | 7088 | -79561.65 | -11.225 | 145.47 | -1458.7 | 2142.1 | - | "Pileup offset" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 7088 | 7088 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Middle" | 1759 | 1767.186 | 1.0047 | 0.019346 | 0.97709 | 1.1325 | + | " Outer" | 3367 | 3358.069 | 0.99735 | 0.015433 | 0.97356 | 1.0596 | + | "Corrected energy" | 7089 |3.011568e+07 | 4248.2 | 6904.6 | 165.95 | 2.7786e+05 | + | "Delta(E)" | 7089 | -79634.9 | -11.234 | 145.46 | -1458.7 | 2142.1 | + | "Pileup offset" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 7089 | 7089 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 170 | 13811 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -312,9 +312,9 @@ CaloFutureShowerOverlap.PhotonSh... SUCCESS Number of counters : 2 | "Delta(Y)" | 29368 | -2297.968 | -0.078247 | 12.517 | -23.059 | 23.423 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4196 | 26200 | 6.2440 | - | "#tracks with hits added" | 4196 | + | "#UT hits added" | 4194 | 26232 | 6.2546 | + | "#tracks with hits added" | 4194 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4303 | 27032 | 6.2821 | - | "#tracks with hits added" | 4303 | + | "#UT hits added" | 4309 | 27104 | 6.2901 | + | "#tracks with hits added" | 4309 | diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref index 421cadffb79..60850800d56 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref @@ -10,97 +10,97 @@ ApplicationMgr INFO Application Manager Terminated succe PrGECFilter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 50 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | - | "Nb of Produced Tracks" | 50 | 16463 | 329.26 | + | "Nb of Produced Tracks" | 50 | 16323 | 326.46 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 16463 | 329.26 | + | "Nb of Produced Tracks" | 50 | 16323 | 326.46 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 50 | 10431 | 208.62 | - | "#tracks" | 50 | 2942 | 58.840 | + | "#seeds" | 50 | 10362 | 207.24 | + | "#tracks" | 50 | 2943 | 58.860 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 2942 | 58.840 | + | "Nb of Produced Tracks" | 50 | 2943 | 58.860 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrForwardTracking INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 1970 | 39.400 | + | "Nb output tracks" | 50 | 1969 | 39.380 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 1970 | 39.400 | + | "Nb of Produced Tracks" | 50 | 1969 | 39.380 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | TrackEventFitter SUCCESS Number of counters : 7 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Long.badChisq" | 1970 | 579 | 0.29391 | 0.45555 | 0.0000 | 1.0000 | - | "Long.chisqprobSum" | 1970 | 463.3482 | 0.23520 | 0.28075 | 0.0000 | 0.99927 | - | "Long.flipCharge" | 1970 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Long.numOutliers" | 1970 | 2123 | 1.0777 | 0.85944 | 0.0000 | 2.0000 | + | "Long.badChisq" | 1969 | 580 | 0.29457 | 0.45585 | 0.0000 | 1.0000 | + | "Long.chisqprobSum" | 1969 | 464.1378 | 0.23572 | 0.28062 | 0.0000 | 0.99927 | + | "Long.flipCharge" | 1969 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Long.numOutliers" | 1969 | 2120 | 1.0767 | 0.85975 | 0.0000 | 2.0000 | | "nBadInput" | 50 | 0 | 0.0000 | - | "nFitted" | 50 | 1970 | 39.400 | - | "nTracks" | 50 | 1970 | 39.400 | + | "nFitted" | 50 | 1969 | 39.380 | + | "nTracks" | 50 | 1969 | 39.380 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 5146 | 102.92 | + | "Nb output tracks" | 50 | 5148 | 102.96 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 5146 | 102.92 | + | "Nb of Produced Tracks" | 50 | 5148 | 102.96 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 5314 | | "#UT hits added" | 20839 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 14856 | 84262.24 | 5.6719 | - | "#MatchingTracks" | 50 | 4761 | 95.220 | - | "TracksMLP" | 14856 | 4695.18 | 0.31605 | + | "#MatchingChi2" | 14838 | 84102.11 | 5.6680 | + | "#MatchingTracks" | 50 | 4759 | 95.180 | + | "TracksMLP" | 14838 | 4693.888 | 0.31634 | TrackBestTrackCreator SUCCESS Number of counters : 33 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 23986 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2084 | 1407 |( 67.51440 +- 1.025876)% | - | "Downstream.chisqProbSum" | 2084 | 170.1002 | 0.081622 | - |*"Downstream.flipCharge" | 2084 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2084 | 1284.564 | 0.61639 | - | "Downstream.numOutliers" | 2084 | 2840 | 1.3628 | - |*"FitFailed" | 23986 | 0 |( 0.000000 +- 0.000000)% | - | "FittedBefore" | 1749 | - |*"Long.badChisq" | 5045 | 3217 |( 63.76611 +- 0.6767400)% | - | "Long.chisqProbSum" | 5045 | 500.0364 | 0.099115 | - |*"Long.flipCharge" | 5045 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 5045 | 1395.072 | 0.27653 | - | "Long.numOutliers" | 5045 | 7113 | 1.4099 | - |*"Ttrack.badChisq" | 2677 | 200 |( 7.471050 +- 0.5081658)% | - | "Ttrack.chisqProbSum" | 2677 | 782.0437 | 0.29213 | - |*"Ttrack.flipCharge" | 2677 | 122 |( 4.557340 +- 0.4030907)% | - | "Ttrack.ghostProbability" | 2677 | 306.5184 | 0.11450 | - | "Ttrack.numOutliers" | 2677 | 1816 | 0.67837 | - |*"Upstream.badChisq" | 910 | 213 |( 23.40659 +- 1.403602)% | - | "Upstream.chisqProbSum" | 910 | 309.1638 | 0.33974 | - |*"Upstream.flipCharge" | 910 | 17 |( 1.868132 +- 0.4488364)% | - | "Upstream.ghostProbability" | 910 | 202.2125 | 0.22221 | - | "Upstream.numOutliers" | 910 | 444 | 0.48791 | - |*"Velo.badChisq" | 5495 | 1456 |( 26.49682 +- 0.5953414)% | - | "Velo.chisqProbSum" | 5495 | 1632.09 | 0.29701 | - |*"Velo.flipCharge" | 5495 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 5495 | 694.2345 | 0.12634 | - | "Velo.numOutliers" | 5495 | 3848 | 0.70027 | - |*"VeloBackward.badChisq" | 6026 | 342 |( 5.675407 +- 0.2980550)% | - | "VeloBackward.chisqProbSum" | 6026 | 2787.624 | 0.46260 | - |*"VeloBackward.flipCharge" | 6026 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 6026 | 597.7385 | 0.099193 | - | "VeloBackward.numOutliers" | 6026 | 1641 | 0.27232 | + |*"BadInput" | 23867 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2088 | 1410 |( 67.52874 +- 1.024775)% | + | "Downstream.chisqProbSum" | 2088 | 170.2307 | 0.081528 | + |*"Downstream.flipCharge" | 2088 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2088 | 1287.019 | 0.61639 | + | "Downstream.numOutliers" | 2088 | 2847 | 1.3635 | + |*"FitFailed" | 23867 | 0 |( 0.000000 +- 0.000000)% | + | "FittedBefore" | 1745 | + |*"Long.badChisq" | 5052 | 3213 |( 63.59857 +- 0.6769416)% | + | "Long.chisqProbSum" | 5052 | 500.9339 | 0.099156 | + |*"Long.flipCharge" | 5052 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 5052 | 1393.689 | 0.27587 | + | "Long.numOutliers" | 5052 | 7117 | 1.4087 | + |*"Ttrack.badChisq" | 2683 | 200 |( 7.454342 +- 0.5070752)% | + | "Ttrack.chisqProbSum" | 2683 | 783.3302 | 0.29196 | + |*"Ttrack.flipCharge" | 2683 | 122 |( 4.547149 +- 0.4022108)% | + | "Ttrack.ghostProbability" | 2683 | 307.7836 | 0.11472 | + | "Ttrack.numOutliers" | 2683 | 1821 | 0.67872 | + |*"Upstream.badChisq" | 915 | 213 |( 23.27869 +- 1.397098)% | + | "Upstream.chisqProbSum" | 915 | 308.9295 | 0.33763 | + |*"Upstream.flipCharge" | 915 | 17 |( 1.857923 +- 0.4464070)% | + | "Upstream.ghostProbability" | 915 | 203.6713 | 0.22259 | + | "Upstream.numOutliers" | 915 | 452 | 0.49399 | + |*"Velo.badChisq" | 5427 | 1434 |( 26.42344 +- 0.5985280)% | + | "Velo.chisqProbSum" | 5427 | 1612.636 | 0.29715 | + |*"Velo.flipCharge" | 5427 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 5427 | 666.614 | 0.12283 | + | "Velo.numOutliers" | 5427 | 3798 | 0.69983 | + |*"VeloBackward.badChisq" | 5957 | 332 |( 5.573275 +- 0.2972274)% | + | "VeloBackward.chisqProbSum" | 5957 | 2755.082 | 0.46249 | + |*"VeloBackward.flipCharge" | 5957 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 5957 | 568.7658 | 0.095479 | + | "VeloBackward.numOutliers" | 5957 | 1573 | 0.26406 | PatPV3DFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb PVs" | 50 | 285 | 5.7000 | + | "Nb PVs" | 50 | 281 | 5.6200 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | @@ -126,116 +126,116 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 50 | 792 | 15.840 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | - | "#tracks in acceptance" | 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | + | "#tracks in acceptance" | 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | - | "#tracks in acceptance" | 50 | 6184 | 123.68 | 48.819 | 40.000 | 229.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | + | "#tracks in acceptance" | 50 | 6189 | 123.78 | 48.942 | 40.000 | 229.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6184 | 123.68 | 48.819 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6189 | 123.78 | 48.942 | 40.000 | 229.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6184 | 123.68 | 48.819 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6189 | 123.78 | 48.942 | 40.000 | 229.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 1196730 | 23935. | 14014. | 2715.0 | 55235. | - | "#chi2" | 385706 |1.781301e+08 | 461.83 | 290.01 | 0.00022207 | 999.99 | - | "#good tracks" | 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | - | "#links in table" | 50 | 385706 | 7714.1 | 5225.0 | 483.00 | 21040. | + | "#above threshold" | 50 | 1197822 | 23956. | 14040. | 2715.0 | 55511. | + | "#chi2" | 385842 |1.781771e+08 | 461.79 | 290.01 | 0.00022207 | 999.99 | + | "#good tracks" | 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | + | "#links in table" | 50 | 385842 | 7716.8 | 5232.2 | 483.00 | 21103. | | "#total calos" | 50 | 10948 | 218.96 | 58.725 | 78.000 | 339.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | - | "photonHypos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "electronHypos" | 50 | 6237 | 124.74 | 48.202 | 27.000 | 218.00 | + | "photonHypos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 847588 | 16952. | 12090. | 982.00 | 44287. | - | "#chi2" | 92860 |4.167411e+08 | 4487.8 | 2934.3 | 0.085392 | 9999.9 | - | "#good tracks" | 50 | 6587 | 131.74 | 51.372 | 41.000 | 242.00 | - | "#links in table" | 50 | 92860 | 1857.2 | 1226.3 | 125.00 | 5258.0 | - | "#total calos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | + | "#above threshold" | 50 | 848271 | 16965. | 12110. | 982.00 | 44483. | + | "#chi2" | 93017 |4.174771e+08 | 4488.2 | 2933.7 | 0.085392 | 9999.9 | + | "#good tracks" | 50 | 6591 | 131.82 | 51.489 | 41.000 | 242.00 | + | "#links in table" | 50 | 93017 | 1860.3 | 1229.0 | 125.00 | 5258.0 | + | "#total calos" | 50 | 6237 | 124.74 | 48.202 | 27.000 | 218.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10640 | 212.80 | 74.075 | 83.000 | 379.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | - | "#tracks in acceptance" | 50 | 7096 | 141.92 | 50.911 | 57.000 | 263.00 | + | "#links in table" | 50 | 10572 | 211.44 | 73.456 | 83.000 | 377.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | + | "#tracks in acceptance" | 50 | 7075 | 141.50 | 50.632 | 57.000 | 262.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 784716 | 15694. | 8907.1 | 2389.0 | 37651. | - | "#chi2" | 291450 |1.381139e+09 | 4738.9 | 2877.3 | 0.016992 | 9999.9 | - | "#good tracks" | 50 | 7096 | 141.92 | 50.911 | 57.000 | 263.00 | - | "#links in table" | 50 | 291450 | 5829.0 | 2911.0 | 1023.0 | 14498. | - | "#total calos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "#above threshold" | 50 | 782662 | 15653. | 8878.5 | 2389.0 | 37500. | + | "#chi2" | 290373 |1.37604e+09 | 4738.9 | 2877.4 | 0.016992 | 9999.9 | + | "#good tracks" | 50 | 7075 | 141.50 | 50.632 | 57.000 | 262.00 | + | "#links in table" | 50 | 290373 | 5807.5 | 2897.5 | 1023.0 | 14453. | + | "#total calos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10640 | 212.80 | 74.075 | 83.000 | 379.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | + | "#links in table" | 50 | 10572 | 211.44 | 73.456 | 83.000 | 377.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10640 | 212.80 | 74.075 | 83.000 | 379.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10572 | 211.44 | 73.456 | 83.000 | 377.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7909 | 158.18 | 61.302 | 52.000 | 296.00 | - | "#total tracks" | 50 | 20184 | 403.68 | 141.34 | 147.00 | 771.00 | + | "#links in table" | 50 | 7912 | 158.24 | 61.392 | 52.000 | 296.00 | + | "#total tracks" | 50 | 20054 | 401.08 | 140.70 | 147.00 | 765.00 | RichRecoStatsDownstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 50 | 148460 | 2969.2 | 2001.0 | 261.00 | 9613.0 | - | "# Rich1Gas Segments" | 50 | 649 | 12.980 | 5.9076 | 2.0000 | 26.000 | - | "# Rich2Gas Photons" | 50 | 19997 | 399.94 | 418.45 | 0.0000 | 1962.0 | - | "# Rich2Gas Segments" | 50 | 310 | 6.2000 | 4.1473 | 0.0000 | 16.000 | - | "# Selected Tracks" | 50 | 745 | 14.900 | 7.1421 | 2.0000 | 33.000 | - |*"RICH selection efficiency" | 841 | 745 |( 88.58502 +- 1.096528)% | + | "# Rich1Gas Photons" | 50 | 148523 | 2970.5 | 1999.6 | 261.00 | 9613.0 | + | "# Rich1Gas Segments" | 50 | 649 | 12.980 | 5.8940 | 2.0000 | 26.000 | + | "# Rich2Gas Photons" | 50 | 19946 | 398.92 | 416.57 | 0.0000 | 1962.0 | + | "# Rich2Gas Segments" | 50 | 310 | 6.2000 | 4.1521 | 0.0000 | 16.000 | + | "# Selected Tracks" | 50 | 746 | 14.920 | 7.1382 | 2.0000 | 33.000 | + |*"RICH selection efficiency" | 842 | 746 |( 88.59857 +- 1.095310)% | RichDLLsDownstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 50 | 745 | 14.900 | 7.1421 | 2.0000 | 33.000 | - |*"Used RICH1 and RICH2" | 745 | 214 |( 28.72483 +- 1.657753)% | - |*"Used RICH1 only" | 745 | 435 |( 58.38926 +- 1.805889)% | - |*"Used RICH2 only" | 745 | 96 |( 12.88591 +- 1.227506)% | + | "# PIDs" | 50 | 746 | 14.920 | 7.1382 | 2.0000 | 33.000 | + |*"Used RICH1 and RICH2" | 746 | 213 |( 28.55228 +- 1.653656)% | + |*"Used RICH1 only" | 746 | 436 |( 58.44504 +- 1.804330)% | + |*"Used RICH2 only" | 746 | 97 |( 13.00268 +- 1.231402)% | RichRecoStatsLong INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 50 | 661933 | 13239. | 8419.3 | 2554.0 | 36958. | - | "# Rich1Gas Segments" | 50 | 3400 | 68.000 | 26.568 | 26.000 | 131.00 | - | "# Rich2Gas Photons" | 50 | 154893 | 3097.9 | 1945.2 | 248.00 | 10249. | - | "# Rich2Gas Segments" | 50 | 2343 | 46.860 | 17.430 | 9.0000 | 90.000 | - | "# Selected Tracks" | 50 | 4188 | 83.760 | 30.662 | 28.000 | 159.00 | - |*"RICH selection efficiency" | 4391 | 4188 |( 95.37691 +- 0.3168883)% | + | "# Rich1Gas Photons" | 50 | 661285 | 13226. | 8391.3 | 2554.0 | 36539. | + | "# Rich1Gas Segments" | 50 | 3397 | 67.940 | 26.538 | 26.000 | 131.00 | + | "# Rich2Gas Photons" | 50 | 154706 | 3094.1 | 1947.4 | 248.00 | 10249. | + | "# Rich2Gas Segments" | 50 | 2340 | 46.800 | 17.436 | 9.0000 | 90.000 | + | "# Selected Tracks" | 50 | 4183 | 83.660 | 30.674 | 28.000 | 159.00 | + |*"RICH selection efficiency" | 4387 | 4183 |( 95.34990 +- 0.3179125)% | RichDLLsLong INFO Number of counters : 4 | Counter | - | "# PIDs" | 50 | 4188 | 83.760 | 30.662 | 28.000 | 159.00 | - |*"Used RICH1 and RICH2" | 4188 | 1555 |( 37.12989 +- 0.7465873)% | - |*"Used RICH1 only" | 4188 | 1845 |( 44.05444 +- 0.7671395)% | - |*"Used RICH2 only" | 4188 | 788 |( 18.81566 +- 0.6039383)% | + | "# PIDs" | 50 | 4183 | 83.660 | 30.674 | 28.000 | 159.00 | + |*"Used RICH1 and RICH2" | 4183 | 1554 |( 37.15037 +- 0.7471177)% | + |*"Used RICH1 only" | 4183 | 1843 |( 44.05929 +- 0.7676068)% | + |*"Used RICH2 only" | 4183 | 786 |( 18.79034 +- 0.6039865)% | RichRecoStatsUpstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 50 | 110143 | 2202.9 | 1616.1 | 215.00 | 7284.0 | - | "# Rich1Gas Segments" | 50 | 660 | 13.200 | 6.1579 | 2.0000 | 27.000 | + | "# Rich1Gas Photons" | 50 | 111791 | 2235.8 | 1694.8 | 215.00 | 7759.0 | + | "# Rich1Gas Segments" | 50 | 664 | 13.280 | 6.2930 | 2.0000 | 28.000 | | "# Rich2Gas Photons" | 50 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "# Rich2Gas Segments" | 50 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "# Selected Tracks" | 50 | 660 | 13.200 | 6.1579 | 2.0000 | 27.000 | - |*"RICH selection efficiency" | 754 | 660 |( 87.53316 +- 1.203037)% | + | "# Selected Tracks" | 50 | 664 | 13.280 | 6.2930 | 2.0000 | 28.000 | + |*"RICH selection efficiency" | 758 | 664 |( 87.59894 +- 1.197138)% | RichDLLsUpstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 50 | 660 | 13.200 | 6.1579 | 2.0000 | 27.000 | - |*"Used RICH1 and RICH2" | 660 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 660 | 660 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 660 | 0 |( 0.000000 +- 0.000000)% | + | "# PIDs" | 50 | 664 | 13.280 | 6.2930 | 2.0000 | 28.000 | + |*"Used RICH1 and RICH2" | 664 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 664 | 664 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 664 | 0 |( 0.000000 +- 0.000000)% | ClusterMonitorEcalClusters SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Monitor /Event/CaloFutureClusterCovarianceAlg/O| 50 | 10948 | 218.96 | 58.725 | 78.000 | 339.00 | @@ -269,50 +269,50 @@ ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | " Inner" | 2121 | 31343.02 | 14.777 | 0.089527 | 14.778 | 14.778 | | " Middle" | 1890 | 27282.28 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 2226 | 32532.47 | 14.615 | 0.0000 | 14.614 | 14.614 | - | "Delta(Z)" | 6237 | 726974 | 116.56 | 11.568 | 83.316 | 164.35 | + | "Delta(Z)" | 6237 | 726968.8 | 116.56 | 11.569 | 83.316 | 164.35 | | "Delta(Z) Inner" | 2121 | 241261.2 | 113.75 | 11.124 | 83.316 | 164.35 | | "Delta(Z) Middle" | 1890 | 217953.7 | 115.32 | 10.903 | 86.958 | 163.63 | - | "Delta(Z) Outer" | 2226 | 267759.3 | 120.29 | 11.547 | 94.434 | 160.94 | + | "Delta(Z) Outer" | 2226 | 267754.1 | 120.28 | 11.550 | 94.434 | 160.94 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 6237 | -1195.206 | -0.19163 | 11.795 | -23.059 | 22.930 | - | "Delta(Y)" | 6237 | -599.3564 | -0.096097 | 11.574 | -23.059 | 22.930 | + | "Delta(X)" | 6237 | -1225.862 | -0.19655 | 11.796 | -23.059 | 22.930 | + | "Delta(Y)" | 6237 | -613.9228 | -0.098432 | 11.577 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2121 | 2110.778 | 0.99518 | 0.018972 | 0.96468 | 1.1016 | | " Middle" | 1890 | 1902.562 | 1.0066 | 0.019217 | 0.97678 | 1.1187 | - | " Outer" | 2226 | 2227.223 | 1.0005 | 0.014447 | 0.97356 | 1.0498 | - | "Corrected energy" | 6237 |4.467315e+07 | 7162.6 | 8806.8 | 419.78 | 2.7815e+05 | - | "Delta(E)" | 6237 | 1237072 | 198.34 | 223.26 | -3615.5 | 4037.2 | + | " Outer" | 2226 | 2227.206 | 1.0005 | 0.014436 | 0.97356 | 1.0498 | + | "Corrected energy" | 6237 |4.467234e+07 | 7162.5 | 8806.8 | 419.78 | 2.7815e+05 | + | "Delta(E)" | 6237 | 1237126 | 198.35 | 223.27 | -3615.5 | 4037.2 | | "Pileup offset" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup scale" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup subtracted ratio" | 6237 | 6237 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 159475.1 | 81.240 | 0.050469 | 81.241 | 81.241 | - | " Middle" | 1758 | 167542.5 | 95.303 | 0.55269 | 95.304 | 95.304 | + | " Middle" | 1759 | 167637.8 | 95.303 | 0.55304 | 95.304 | 95.304 | | " Outer" | 3367 | 366584.3 | 108.88 | 0.71390 | 108.88 | 108.88 | | " Inner" | 1963 | 29008.2 | 14.777 | 0.090809 | 14.778 | 14.778 | - | " Middle" | 1758 | 25376.79 | 14.435 | 0.0000 | 14.435 | 14.435 | + | " Middle" | 1759 | 25391.23 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 3367 | 49206.25 | 14.614 | 0.053984 | 14.614 | 14.614 | - | "Delta(Z)" | 7088 | 769171.8 | 108.52 | 11.886 | 76.221 | 164.33 | + | "Delta(Z)" | 7089 | 769272.4 | 108.52 | 11.886 | 76.221 | 164.33 | | "Delta(Z) Inner" | 1963 | 213829.1 | 108.93 | 12.093 | 76.221 | 164.33 | - | "Delta(Z) Middle" | 1758 | 189065.9 | 107.55 | 10.937 | 81.830 | 150.49 | - | "Delta(Z) Outer" | 3367 | 366277.7 | 108.78 | 12.202 | 77.473 | 158.35 | + | "Delta(Z) Middle" | 1759 | 189180.4 | 107.55 | 10.936 | 81.830 | 150.49 | + | "Delta(Z) Outer" | 3367 | 366263.8 | 108.78 | 12.203 | 77.473 | 158.35 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 7088 | -457.0891 | -0.064488 | 12.669 | -23.059 | 22.930 | - | "Delta(Y)" | 7088 | -494.5214 | -0.069769 | 12.657 | -23.059 | 22.930 | + | "Delta(X)" | 7089 | -479.1677 | -0.067593 | 12.668 | -23.059 | 22.930 | + | "Delta(Y)" | 7089 | -517.4447 | -0.072993 | 12.654 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 1952.461 | 0.99463 | 0.019355 | 0.96492 | 1.1127 | - | " Middle" | 1758 | 1766.203 | 1.0047 | 0.019351 | 0.97709 | 1.1325 | - | " Outer" | 3367 | 3358.061 | 0.99735 | 0.015422 | 0.97356 | 1.0596 | - | "Corrected energy" | 7088 |3.011274e+07 | 4248.4 | 6905.1 | 165.95 | 2.7786e+05 | - | "Delta(E)" | 7088 | -79561.65 | -11.225 | 145.47 | -1458.7 | 2142.1 | - | "Pileup offset" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 7088 | 7088 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Middle" | 1759 | 1767.186 | 1.0047 | 0.019346 | 0.97709 | 1.1325 | + | " Outer" | 3367 | 3358.069 | 0.99735 | 0.015434 | 0.97356 | 1.0596 | + | "Corrected energy" | 7089 |3.011568e+07 | 4248.2 | 6904.6 | 165.95 | 2.7786e+05 | + | "Delta(E)" | 7089 | -79634.9 | -11.234 | 145.46 | -1458.7 | 2142.1 | + | "Pileup offset" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 7089 | 7089 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 170 | 13811 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -360,12 +360,12 @@ CaloFutureShowerOverlap.PhotonSh... SUCCESS Number of counters : 2 | "Delta(Y)" | 29368 | -2297.968 | -0.078247 | 12.517 | -23.059 | 23.423 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4191 | 26192 | 6.2496 | - | "#tracks with hits added" | 4191 | + | "#UT hits added" | 4189 | 26209 | 6.2566 | + | "#tracks with hits added" | 4189 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4297 | 26993 | 6.2818 | - | "#tracks with hits added" | 4297 | + | "#UT hits added" | 4302 | 27036 | 6.2845 | + | "#tracks with hits added" | 4302 | RichRecPixelClusters SUCCESS 1D histograms in directory "RICH/RichRecPixelClusters" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1/clusterSize | "Rich1 Pixel Cluster Sizes" | 170255 | 1.3556 | 1.1323 | 7.2471 | 95.596 | @@ -385,46 +385,46 @@ RiCKResDownstream SUCCESS 1D histograms in directory "RICH/RiC | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 26581 | 3.1239 | 1.8281 | 0.013327 | -1.1921 | | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 26581 | 0.046931 | 0.0066051 | -1.016 | -0.17114 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 12228 |-0.00017266 | 0.0021444 | -0.21535 | -0.57846 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 6378 | 0.00014707 | 0.0012683 | -0.10013 | -0.88349 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 6457 | 0.00015111 | 0.0012681 | -0.10257 | -0.88722 | | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 8365 | 0.00010169 | 0.0013007 | -0.039586 | -1.0048 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14743 | 0.00012138 | 0.0012869 | -0.066001 | -0.95524 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14743 | 3.1396 | 1.817 | 0.012003 | -1.2046 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14743 | 0.027396 | 0.0040151 | -1.9841 | 4.3034 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14822 | 0.00012333 | 0.0012868 | -0.067378 | -0.95645 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14822 | 3.1367 | 1.8166 | 0.013475 | -1.2044 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14822 | 0.027406 | 0.0040079 | -1.9901 | 4.3372 | RiTkMaterialDownstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialDownstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 271 | 0.037492 | 0.00084418 | 2.5069 | 7.1005 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 271 | 3.4614e-05 | 3.6663e-12 |-2.9825e+13 | 9.2493e+17 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 271 | 1071.7 | 14.747 | 0.0038277 | -1.1261 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 641 | 0.049005 | 0.03869 | 0.9524 | -0.95207 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 641 | 2.1231e-05 | 1.4856e-05 | 0.95815 | -0.96561 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 641 | 2183.9 | 237.59 | 0.036245 | -0.88959 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 270 | 0.037495 | 0.00084398 | 2.5086 | 7.1082 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 270 | 3.4614e-05 | 3.6663e-12 |-2.9825e+13 | 9.2493e+17 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 270 | 1071.8 | 14.748 | -0.0051847 | -1.1231 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 642 | 0.048963 | 0.038675 | 0.95481 | -0.9475 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 642 | 2.1215e-05 | 1.485e-05 | 0.96056 | -0.96097 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 642 | 2183.5 | 237.62 | 0.039311 | -0.89163 | RiTkSignalYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 16 | 13.086 | 11.077 | 0.59399 | -0.9278 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 649 | 36.138 | 3.797 | -1.9248 | 5.7337 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 649 | 36.137 | 3.7966 | -1.9245 | 5.7348 | | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 142 | 20.777 | 10.359 | -0.24627 | -0.93399 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 601 | 26.87 | 9.9255 | -0.92969 | 0.043582 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 525 | 24.762 | 10.58 | -0.67351 | -0.53957 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 601 | 26.83 | 9.954 | -0.92182 | 0.017105 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 524 | 24.748 | 10.585 | -0.67044 | -0.54386 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 55 | 17.571 | 10.62 | 0.042535 | -1.2682 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 7 | 10.555 | 5.9591 | -0.91454 | -1.0133 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 18.883 | 5.998 | -0.85314 | -0.15912 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 91 | 11.665 | 6.5286 | -0.14333 | -1.15 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 17.394 | 6.213 | -0.78839 | -0.44351 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 16.246 | 6.4973 | -0.7103 | -0.62855 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 18.892 | 6.0041 | -0.85311 | -0.16295 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 92 | 11.541 | 6.6006 | -0.13506 | -1.1688 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 17.421 | 6.2202 | -0.79599 | -0.44011 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 16.289 | 6.49 | -0.72513 | -0.60488 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 32 | 9.396 | 6.7006 | 0.1555 | -1.3992 | RiTkEmittedYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 17 | 208.24 | 175.12 | 0.64362 | -0.86736 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 649 | 594.73 | 49.289 | -3.8677 | 15.72 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 649 | 594.75 | 49.294 | -3.8679 | 15.72 | | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 145 | 341.33 | 170.63 | -0.34444 | -0.96789 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 605 | 440.24 | 158.72 | -1.0637 | 0.21348 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 529 | 408.34 | 170.8 | -0.77985 | -0.49142 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 605 | 439.59 | 159.13 | -1.0547 | 0.18389 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 528 | 408.18 | 170.92 | -0.77706 | -0.49685 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 56 | 292.74 | 169.74 | -0.0046114 | -1.1422 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 7 | 166.94 | 89.281 | -0.82507 | -1.0631 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 800 | 399.01 | 51.879 | -0.059638 | -0.84594 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 96 | 174.35 | 100.22 | -0.1756 | -1.1651 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 588 | 251.43 | 102.59 | -0.99051 | -0.057201 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 462 | 236.42 | 100.81 | -0.75479 | -0.5089 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 800 | 399.06 | 51.818 | -0.058326 | -0.84324 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 97 | 172.67 | 101.05 | -0.1625 | -1.1869 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 588 | 251.63 | 102.65 | -0.9938 | -0.05473 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 462 | 236.82 | 100.81 | -0.76312 | -0.49692 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 32 | 148.7 | 100.28 | 0.13199 | -1.2374 | RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -433,53 +433,53 @@ RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/Ric | All/Rejected/GhostProb | "Track Ghost Probability" | 96 | 0.17632 | 0.11093 | 0.33921 | -1.047 | | All/Rejected/P | "Track Momentum" | 96 | 4013.7 | 1408 | 0.63858 | 0.40931 | | All/Rejected/Pt | "Track Transverse Momentum" | 96 | 117.55 | 56.536 | 2.6423 | 7.0899 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 745 | 1.6977 | 0.70422 | 0.068989 | -0.9922 | - | All/Selected/CloneDist | "Track Clone Distance" | 745 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 745 | 0.084378 | 0.10827 | 1.3118 | 0.43429 | - | All/Selected/P | "Track Momentum" | 745 | 8456.3 | 9182.8 | 3.5226 | 19.707 | - | All/Selected/Pt | "Track Transverse Momentum" | 745 | 490.61 | 594.88 | 3.945 | 20.414 | - | nRichTracks | "# Rich Tracks / Event" | 50 | 14.9 | 7.1421 | 0.41492 | -0.23008 | - | nTracks | "# Tracks / Event" | 50 | 16.82 | 7.7812 | 0.24783 | -0.4361 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 746 | 1.6973 | 0.70372 | 0.07056 | -0.98907 | + | All/Selected/CloneDist | "Track Clone Distance" | 746 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 746 | 0.084852 | 0.10828 | 1.2998 | 0.4069 | + | All/Selected/P | "Track Momentum" | 746 | 8461.7 | 9183.7 | 3.5159 | 19.66 | + | All/Selected/Pt | "Track Transverse Momentum" | 746 | 489.62 | 594.63 | 3.9494 | 20.448 | + | nRichTracks | "# Rich Tracks / Event" | 50 | 14.92 | 7.1382 | 0.41942 | -0.23811 | + | nTracks | "# Tracks / Event" | 50 | 16.84 | 7.7675 | 0.25274 | -0.43113 | RichRecPixBkgsDownstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsDownstream" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.10943 | 0.087718 | 0.88982 | 0.14804 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.052686 | 0.037547 | 1.5384 | 3.3063 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.10944 | 0.087715 | 0.88968 | 0.14801 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.052688 | 0.037546 | 1.5386 | 3.3065 | RichDLLsDownstream SUCCESS 1D histograms in directory "RICH/RichDLLsDownstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 745 | -0.19961 | 10.576 | -0.55021 | 3.9296 | - | deuteron/dll | "deuteron DLL" | 745 | -0.2018 | 10.652 | -0.48859 | 3.9715 | - | electron/dll | "electron DLL" | 745 | -5.1387 | 13.537 | 0.18799 | 1.8394 | - | kaon/dll | "kaon DLL" | 745 | -1.0262 | 10.583 | -0.79395 | 3.5879 | - | muon/dll | "muon DLL" | 745 | -2.0784 | 7.1804 | -1.6669 | 7.7959 | - | pion/dll | "pion DLL" | 745 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 745 | -0.28313 | 10.7 | -0.33674 | 4.0986 | + | below_threshold/dll | "below_threshold DLL" | 746 | -0.14038 | 10.452 | -0.49581 | 3.9001 | + | deuteron/dll | "deuteron DLL" | 746 | -0.14264 | 10.529 | -0.43374 | 3.9484 | + | electron/dll | "electron DLL" | 746 | -5.1353 | 13.521 | 0.188 | 1.8493 | + | kaon/dll | "kaon DLL" | 746 | -1.0312 | 10.6 | -0.82336 | 3.7238 | + | muon/dll | "muon DLL" | 746 | -2.0375 | 7.1024 | -1.6515 | 7.957 | + | pion/dll | "pion DLL" | 746 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 746 | -0.22408 | 10.577 | -0.27427 | 4.0681 | RiTkDetectableYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 16 | 19.503 | 16.232 | 0.61116 | -0.91052 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 649 | 54.632 | 4.5277 | -3.8767 | 15.846 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 649 | 54.634 | 4.5281 | -3.8769 | 15.846 | | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 142 | 31.515 | 15.466 | -0.32632 | -0.97862 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 601 | 40.395 | 14.55 | -1.0477 | 0.18199 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 525 | 37.417 | 15.731 | -0.77367 | -0.5003 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 601 | 40.333 | 14.591 | -1.0383 | 0.15106 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 524 | 37.402 | 15.742 | -0.7709 | -0.50578 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 55 | 26.742 | 15.65 | -0.0045951 | -1.1299 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 7 | 15.476 | 8.6023 | -0.8612 | -1.0268 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 34.062 | 2.1389 | 0.057791 | -0.33309 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 91 | 16.926 | 9.261 | -0.22031 | -1.1168 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 29.921 | 3.496 | -1.4004 | 2.9035 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 27.138 | 5.4985 | -1.4129 | 2.3753 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 34.074 | 2.1256 | 0.063638 | -0.31059 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 92 | 16.746 | 9.3691 | -0.21263 | -1.1351 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 29.959 | 3.4558 | -1.4128 | 3.0549 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 27.197 | 5.446 | -1.4291 | 2.503 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 32 | 13.705 | 9.6659 | 0.13015 | -1.2861 | RiTkGeomEffsDownstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 16 | 0.64168 | 0.088689 | -1.1556 | 1.3503 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 649 | 0.66143 | 0.041855 | -0.57927 | 1.6699 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 649 | 0.66139 | 0.041843 | -0.57678 | 1.6725 | | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 142 | 0.65785 | 0.060749 | -0.55905 | 0.6252 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 601 | 0.66421 | 0.054063 | -0.48269 | 0.54069 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 525 | 0.66245 | 0.056203 | -0.093943 | 0.18849 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 601 | 0.66418 | 0.054072 | -0.48143 | 0.53759 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 524 | 0.66237 | 0.056227 | -0.090522 | 0.18809 | | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 55 | 0.656 | 0.061866 | -0.246 | -0.0018633 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 7 | 0.66591 | 0.068989 | 0.23627 | -1.3988 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 310 | 0.56075 | 0.18618 | -0.88281 | -0.3601 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 91 | 0.6883 | 0.065091 | 0.13998 | -0.02579 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 302 | 0.57255 | 0.18169 | -0.9973 | -0.086628 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 298 | 0.58045 | 0.18076 | -1.122 | 0.32524 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 310 | 0.56079 | 0.18621 | -0.88262 | -0.36067 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 92 | 0.68716 | 0.065645 | 0.14448 | -0.081258 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 302 | 0.57249 | 0.18163 | -0.99793 | -0.085445 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 298 | 0.58062 | 0.18084 | -1.1225 | 0.32375 | | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 32 | 0.68185 | 0.061877 | 0.32249 | -1.0223 | RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResDownstreamTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -495,325 +495,325 @@ RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiC | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 5070 | 0.027163 | 0.0040387 | -1.7517 | 3.0506 | RiCKResLong SUCCESS 1D histograms in directory "RICH/RiCKResLong" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 108870 |-0.00025114 | 0.002046 | -0.24835 | -0.47283 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 198493 |-0.00016361 | 0.0020337 | -0.25854 | -0.40269 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 198493 | 3.1587 | 1.809 | -0.020303 | -1.1788 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 198493 | 0.047304 | 0.0061937 | -1.1508 | 0.26459 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 89623 |-5.6004e-05 | 0.0020132 | -0.26843 | -0.31472 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 59629 | 1.4446e-05 | 0.0012026 | 0.029919 | -0.71965 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 70480 | 1.1446e-05 | 0.0012201 | 0.027741 | -0.78199 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 130109 | 1.2824e-05 | 0.0012121 | 0.028667 | -0.75377 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 130109 | 3.1222 | 1.8159 | 0.0099923 | -1.2078 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 130109 | 0.026732 | 0.004552 | -1.6808 | 2.4005 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 109030 |-0.00024864 | 0.002048 | -0.24593 | -0.47177 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 197729 |-0.00016289 | 0.002035 | -0.2569 | -0.40296 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 197729 | 3.1597 | 1.809 | -0.020998 | -1.1788 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 197729 | 0.047313 | 0.0061896 | -1.1546 | 0.27482 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 88699 |-5.6283e-05 | 0.0020135 | -0.26768 | -0.31524 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 59489 | 1.3098e-05 | 0.0012029 | 0.029648 | -0.71947 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 70303 | 1.0022e-05 | 0.0012193 | 0.028652 | -0.77989 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 129792 | 1.1435e-05 | 0.0012118 | 0.02905 | -0.75253 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 129792 | 3.1215 | 1.8158 | 0.010549 | -1.2075 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 129792 | 0.02673 | 0.0045541 | -1.6805 | 2.3977 | RiTkMaterialLong SUCCESS 1D histograms in directory "RICH/RiTkMaterialLong" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 1540 | 0.037697 | 0.00087608 | 2.9891 | 6.5994 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 1540 | 0.037697 | 0.00087802 | 2.9884 | 6.5741 | | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1540 | 3.4614e-05 | 8.9805e-12 |-2.0293e+12 | 2.5692e+16 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1540 | 1075.9 | 15.014 | -0.25905 | -1.046 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 3433 | 0.042429 | 0.034989 | 1.3761 | 0.08682 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 3433 | 1.8973e-05 | 1.3586e-05 | 1.3735 | 0.052629 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 3433 | 2116.1 | 223.82 | 0.26918 | -0.70135 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1540 | 1075.9 | 15.028 | -0.25731 | -1.0509 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 3432 | 0.042461 | 0.035014 | 1.3733 | 0.07887 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 3432 | 1.8985e-05 | 1.3594e-05 | 1.3709 | 0.045293 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 3432 | 2116.2 | 224.02 | 0.26734 | -0.70387 | RiTkSignalYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 134 | 17.138 | 10.648 | 0.12562 | -0.90494 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3400 | 37.036 | 2.4722 | -1.1346 | 7.8549 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1133 | 21.289 | 11.183 | -0.34588 | -1.0299 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3321 | 30.023 | 8.3618 | -1.4331 | 1.7953 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3091 | 27.727 | 9.7503 | -1.0685 | 0.35731 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 476 | 18.625 | 10.901 | 0.03352 | -1.1405 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 81 | 8.6898 | 5.7683 | 0.27985 | -0.9489 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2343 | 18.996 | 5.8252 | -1.0511 | 0.31697 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 975 | 12.006 | 6.3919 | -0.21019 | -1.0014 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2299 | 17.77 | 6.0192 | -1.0382 | 0.097297 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2242 | 17.107 | 6.0072 | -0.97918 | -0.076738 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 360 | 10.245 | 6.4715 | 0.12183 | -1.0596 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 135 | 17.237 | 10.674 | 0.11162 | -0.9256 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3397 | 37.032 | 2.4716 | -1.1387 | 7.8654 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1130 | 21.272 | 11.205 | -0.34256 | -1.0374 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3318 | 30.02 | 8.3475 | -1.4259 | 1.7742 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3089 | 27.711 | 9.7629 | -1.0676 | 0.3537 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 475 | 18.674 | 10.922 | 0.031845 | -1.1409 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 82 | 8.6951 | 5.7325 | 0.2789 | -0.9238 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2340 | 18.996 | 5.8303 | -1.0478 | 0.31052 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 972 | 12.032 | 6.3949 | -0.21206 | -0.99867 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2296 | 17.768 | 6.0244 | -1.0351 | 0.090612 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2239 | 17.1 | 6.0131 | -0.97485 | -0.087124 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 361 | 10.274 | 6.4858 | 0.11781 | -1.0677 | RiTkEmittedYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 140 | 277.15 | 175.34 | -0.00496 | -1.1217 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3400 | 606.23 | 20.572 | -7.5922 | 105.21 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1155 | 347.02 | 181.06 | -0.41469 | -1.0703 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3327 | 494 | 130.72 | -1.7022 | 2.5445 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3113 | 454.71 | 156.37 | -1.2352 | 0.61336 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 490 | 304.07 | 177.1 | -0.070415 | -1.2191 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 83 | 136.81 | 89.405 | 0.22123 | -1.0695 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 4250 | 386.76 | 46.898 | 0.37608 | -0.63962 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1000 | 187.51 | 99.394 | -0.32404 | -1.0985 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3637 | 275.99 | 91.597 | -1.4099 | 1.116 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3133 | 257.38 | 96.56 | -1.1516 | 0.2655 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 373 | 155.98 | 98.495 | 0.028804 | -1.2223 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 141 | 278.64 | 175.61 | -0.018763 | -1.1325 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3397 | 606.24 | 20.595 | -7.5712 | 104.84 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1152 | 346.81 | 181.44 | -0.41119 | -1.0781 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3324 | 494 | 130.47 | -1.697 | 2.5271 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3111 | 454.41 | 156.56 | -1.2331 | 0.60606 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 489 | 304.81 | 177.5 | -0.073481 | -1.2226 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 84 | 136.91 | 88.876 | 0.2193 | -1.0476 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 4248 | 386.79 | 46.953 | 0.37516 | -0.64303 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 997 | 187.9 | 99.466 | -0.32676 | -1.0977 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3634 | 275.67 | 91.947 | -1.4067 | 1.0982 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3126 | 257.42 | 96.424 | -1.1514 | 0.2692 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 374 | 156.37 | 98.654 | 0.024989 | -1.2267 | RichTkSelEffLong SUCCESS 1D histograms in directory "RICH/RichTkSelEffLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 203 | 1.8152 | 0.62113 | 0.061617 | -0.89742 | - | All/Rejected/CloneDist | "Track Clone Distance" | 203 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 203 | 0.18606 | 0.11868 | 0.2799 | -1.1981 | - | All/Rejected/P | "Track Momentum" | 203 | 4726.1 | 3341.5 | 11.432 | 148.9 | - | All/Rejected/Pt | "Track Transverse Momentum" | 203 | 83.206 | 70.814 | 12.311 | 161.53 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 4188 | 1.5139 | 0.567 | 0.66949 | -0.17908 | - | All/Selected/CloneDist | "Track Clone Distance" | 4188 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 4188 | 0.049988 | 0.079653 | 2.3139 | 5.0101 | - | All/Selected/P | "Track Momentum" | 4188 | 12216 | 12907 | 2.6855 | 9.2413 | - | All/Selected/Pt | "Track Transverse Momentum" | 4188 | 623.13 | 668.48 | 3.9945 | 25.117 | - | nRichTracks | "# Rich Tracks / Event" | 50 | 83.76 | 30.662 | 0.33976 | -0.48605 | - | nTracks | "# Tracks / Event" | 50 | 87.82 | 32.62 | 0.32833 | -0.55752 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 204 | 1.8174 | 0.61666 | 0.033833 | -0.89863 | + | All/Rejected/CloneDist | "Track Clone Distance" | 204 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 204 | 0.18555 | 0.11915 | 0.28748 | -1.1976 | + | All/Rejected/P | "Track Momentum" | 204 | 4720 | 3334.5 | 11.453 | 149.52 | + | All/Rejected/Pt | "Track Transverse Momentum" | 204 | 83.11 | 70.647 | 12.342 | 162.35 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 4183 | 1.5118 | 0.56624 | 0.67671 | -0.1598 | + | All/Selected/CloneDist | "Track Clone Distance" | 4183 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 4183 | 0.04957 | 0.079105 | 2.3279 | 5.1056 | + | All/Selected/P | "Track Momentum" | 4183 | 12222 | 12952 | 2.6914 | 9.2488 | + | All/Selected/Pt | "Track Transverse Momentum" | 4183 | 623.59 | 669.85 | 4.0043 | 25.157 | + | nRichTracks | "# Rich Tracks / Event" | 50 | 83.66 | 30.674 | 0.33476 | -0.51286 | + | nTracks | "# Tracks / Event" | 50 | 87.74 | 32.649 | 0.32505 | -0.5705 | RichRecPixBkgsLong SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsLong" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.086494 | 0.068263 | 0.98537 | 0.53419 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.047674 | 0.037218 | 1.7287 | 4.565 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.086539 | 0.068278 | 0.97714 | 0.51453 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.047692 | 0.037217 | 1.7276 | 4.5619 | RichDLLsLong SUCCESS 1D histograms in directory "RICH/RichDLLsLong" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 4188 | -2.3995 | 13.761 | -0.27731 | 0.9777 | - | deuteron/dll | "deuteron DLL" | 4188 | -2.5581 | 13.799 | -0.30927 | 1.0003 | - | electron/dll | "electron DLL" | 4188 | -11.467 | 12.711 | -0.45281 | 0.84143 | - | kaon/dll | "kaon DLL" | 4188 | -3.5634 | 14.423 | -0.23082 | 1.254 | - | muon/dll | "muon DLL" | 4188 | -5.7282 | 8.6617 | -1.4609 | 3.6093 | - | pion/dll | "pion DLL" | 4188 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 4188 | -2.9023 | 13.975 | -0.29303 | 1.0858 | + | below_threshold/dll | "below_threshold DLL" | 4183 | -2.4006 | 13.77 | -0.27553 | 0.97317 | + | deuteron/dll | "deuteron DLL" | 4183 | -2.5608 | 13.807 | -0.30742 | 0.99582 | + | electron/dll | "electron DLL" | 4183 | -11.474 | 12.701 | -0.4517 | 0.84411 | + | kaon/dll | "kaon DLL" | 4183 | -3.5615 | 14.443 | -0.2332 | 1.2569 | + | muon/dll | "muon DLL" | 4183 | -5.7353 | 8.674 | -1.4509 | 3.5427 | + | pion/dll | "pion DLL" | 4183 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 4183 | -2.9061 | 13.984 | -0.29153 | 1.0824 | RiTkDetectableYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 134 | 25.957 | 15.854 | -0.021614 | -1.0809 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3400 | 55.689 | 1.8898 | -7.5743 | 105.16 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1133 | 31.977 | 16.543 | -0.41899 | -1.0538 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3321 | 45.228 | 12.128 | -1.6719 | 2.4104 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3091 | 41.754 | 14.297 | -1.2211 | 0.58311 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 476 | 28.148 | 16.133 | -0.072859 | -1.2176 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 81 | 12.888 | 8.4573 | 0.23719 | -1.0869 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2343 | 33.901 | 2.2111 | 0.1532 | -0.34469 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 975 | 17.847 | 9.3077 | -0.32685 | -1.0843 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2299 | 30.511 | 3.3252 | -1.9741 | 6.6176 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2242 | 28.411 | 4.8475 | -1.7037 | 3.6175 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 360 | 14.933 | 9.235 | 0.0064938 | -1.2177 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 135 | 26.095 | 15.875 | -0.035702 | -1.091 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3397 | 55.69 | 1.8919 | -7.5533 | 104.79 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1130 | 31.959 | 16.58 | -0.41588 | -1.0617 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3318 | 45.228 | 12.104 | -1.6668 | 2.3925 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3089 | 41.726 | 14.316 | -1.2194 | 0.57755 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 475 | 28.221 | 16.168 | -0.075406 | -1.2199 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 82 | 12.894 | 8.4057 | 0.23683 | -1.064 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2340 | 33.903 | 2.2124 | 0.15068 | -0.34581 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 972 | 17.888 | 9.3123 | -0.32904 | -1.0837 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2296 | 30.506 | 3.3343 | -1.9679 | 6.5508 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2239 | 28.401 | 4.8614 | -1.7005 | 3.5872 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 361 | 14.971 | 9.2498 | 0.0021266 | -1.2207 | RiTkGeomEffsLong SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 134 | 0.65514 | 0.079158 | -1.3384 | 4.8079 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 3400 | 0.66513 | 0.039154 | -0.53639 | 2.8781 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1133 | 0.66481 | 0.066505 | -0.71081 | 2.289 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 3321 | 0.6639 | 0.050986 | -0.62507 | 2.2632 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 3091 | 0.66393 | 0.054247 | -0.62046 | 2.1446 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 476 | 0.6632 | 0.067662 | 0.093016 | 0.21155 | - | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 81 | 0.67263 | 0.05845 | 0.25541 | -0.26542 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 2343 | 0.5659 | 0.18051 | -1.068 | 0.076778 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 975 | 0.67196 | 0.072097 | -1.1115 | 7.2602 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2299 | 0.57482 | 0.17721 | -1.1924 | 0.46323 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2242 | 0.5891 | 0.16684 | -1.2752 | 0.8042 | - | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 360 | 0.68534 | 0.072449 | -0.24575 | 2.3267 | + | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 135 | 0.65495 | 0.079047 | -1.3286 | 4.7829 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 3397 | 0.66505 | 0.039221 | -0.5419 | 2.8777 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1130 | 0.66459 | 0.066518 | -0.70605 | 2.2856 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 3318 | 0.66376 | 0.051149 | -0.62988 | 2.2724 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 3089 | 0.66401 | 0.054361 | -0.62064 | 2.133 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 475 | 0.66342 | 0.067489 | 0.093058 | 0.23055 | + | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 82 | 0.67283 | 0.058102 | 0.24736 | -0.23734 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 2340 | 0.56589 | 0.18068 | -1.0649 | 0.070541 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 972 | 0.67203 | 0.071781 | -1.1093 | 7.3487 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2296 | 0.57487 | 0.1774 | -1.1889 | 0.45639 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2239 | 0.58907 | 0.16695 | -1.2719 | 0.79773 | + | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 361 | 0.6855 | 0.07234 | -0.25138 | 2.3451 | RiCKResLongTight SUCCESS 1D histograms in directory "RICH/RiCKResLongTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 78285 |-0.00043699 | 0.0020461 | -0.2723 | -0.57803 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 140937 |-0.00036694 | 0.0020373 | -0.28742 | -0.51542 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 140937 | 3.1676 | 1.8081 | -0.026874 | -1.1754 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 140937 | 0.047205 | 0.0061347 | -1.1272 | 0.25656 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 62652 | -0.0002792 | 0.0020227 | -0.30544 | -0.43344 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 28391 |-4.9444e-05 | 0.0011464 | 0.049225 | -0.60714 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 30308 |-9.1642e-05 | 0.001156 | 0.036933 | -0.63915 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 58699 |-7.0923e-05 | 0.0011515 | 0.042407 | -0.62271 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 58699 | 3.1138 | 1.7957 | 0.021277 | -1.2004 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 58699 | 0.026411 | 0.004669 | -1.5233 | 1.6943 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 78284 |-0.00043681 | 0.0020461 | -0.27221 | -0.57782 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 140680 |-0.00036808 | 0.0020375 | -0.2877 | -0.51651 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 140680 | 3.1676 | 1.8079 | -0.026992 | -1.1753 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 140680 | 0.047209 | 0.0061284 | -1.127 | 0.25812 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 62396 |-0.00028168 | 0.0020234 | -0.30633 | -0.43575 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 28330 |-4.9542e-05 | 0.0011463 | 0.049153 | -0.60717 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 30307 |-9.1596e-05 | 0.0011559 | 0.037035 | -0.63892 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 58637 |-7.0978e-05 | 0.0011514 | 0.042419 | -0.62263 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 58637 | 3.1133 | 1.796 | 0.021816 | -1.2006 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 58637 | 0.026409 | 0.0046711 | -1.5222 | 1.6891 | RiCKResUpstream SUCCESS 1D histograms in directory "RICH/RiCKResUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 38236 |-0.00051465 | 0.0021839 | -0.13738 | -0.78544 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 70692 |-0.00056161 | 0.0022021 | -0.13528 | -0.82058 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 70692 | 3.1413 | 1.8047 | 0.0028042 | -1.196 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 70692 | 0.044699 | 0.0067213 | -0.43027 | -0.99685 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 32456 |-0.00061756 | 0.0022223 | -0.13046 | -0.86292 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 38234 |-0.00051457 | 0.002184 | -0.13725 | -0.78512 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 71617 |-0.00056072 | 0.0022013 | -0.13631 | -0.82026 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 71617 | 3.1383 | 1.8054 | 0.0059209 | -1.1965 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 71617 | 0.044708 | 0.0067183 | -0.43205 | -0.99435 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 33383 |-0.00061419 | 0.0022199 | -0.13309 | -0.8616 | RiTkMaterialUpstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialUpstream" : 3 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 447 | 0.038654 | 0.0036373 | 11.542 | 154.84 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 447 | 3.4794e-05 | 2.6883e-06 | 14.414 | 209.92 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 447 | 1070.8 | 16.507 | -0.17749 | -1.2654 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 450 | 0.03864 | 0.0036276 | 11.567 | 155.64 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 450 | 3.4793e-05 | 2.6794e-06 | 14.463 | 211.36 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 450 | 1070.8 | 16.532 | -0.16248 | -1.2767 | RiTkSignalYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 39 | 16.796 | 11.46 | 0.17074 | -1.1237 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 660 | 37.653 | 2.9128 | 0.025103 | 0.61189 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 261 | 23.818 | 10.436 | -0.63027 | -0.60763 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 659 | 30.924 | 7.5752 | -1.2829 | 1.3022 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 625 | 27.557 | 10.507 | -1.0155 | -0.0078969 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 137 | 18.518 | 11.284 | -0.11502 | -1.1176 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 39 | 16.757 | 11.511 | 0.16095 | -1.1244 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 664 | 37.657 | 2.907 | 0.027007 | 0.63605 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 263 | 23.813 | 10.416 | -0.63156 | -0.60259 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 663 | 30.95 | 7.5559 | -1.2909 | 1.3361 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 629 | 27.574 | 10.49 | -1.0187 | 0.0052097 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 138 | 18.427 | 11.282 | -0.099806 | -1.1268 | RiTkEmittedYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 40 | 280.92 | 193.32 | 0.20119 | -1.1891 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 660 | 617.87 | 24.291 | -0.12481 | 4.4213 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 263 | 392.38 | 166.33 | -0.7329 | -0.5149 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 660 | 507.68 | 118.63 | -1.4784 | 1.8488 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 634 | 451.58 | 173.41 | -1.1375 | 0.14864 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 140 | 305.22 | 183.73 | -0.16757 | -1.151 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 40 | 280.42 | 193.94 | 0.19264 | -1.1863 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 664 | 617.75 | 24.228 | -0.1163 | 4.4484 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 265 | 392.25 | 165.93 | -0.7309 | -0.51126 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 664 | 507.84 | 118.37 | -1.4803 | 1.8642 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 638 | 451.79 | 173.06 | -1.1399 | 0.16054 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 141 | 303.95 | 183.66 | -0.15317 | -1.1596 | RichTkSelEffUpstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffUpstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 94 | 1.1572 | 0.49218 | 0.91486 | 0.7866 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 94 | 1.1588 | 0.49229 | 0.90487 | 0.77164 | | All/Rejected/CloneDist | "Track Clone Distance" | 94 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 94 | 0.055418 | 0.084853 | 2.1439 | 3.7241 | - | All/Rejected/P | "Track Momentum" | 94 | 44899 | 22090 | 0.88257 | -0.31801 | - | All/Rejected/Pt | "Track Transverse Momentum" | 94 | 1039.8 | 725.52 | 2.772 | 9.9492 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 660 | 1.1906 | 0.58441 | 0.93513 | 0.59968 | - | All/Selected/CloneDist | "Track Clone Distance" | 660 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 660 | 0.064918 | 0.081319 | 2.2176 | 4.5842 | - | All/Selected/P | "Track Momentum" | 660 | 11265 | 11898 | 2.7318 | 10.416 | - | All/Selected/Pt | "Track Transverse Momentum" | 660 | 1041.5 | 942.73 | 3.5447 | 15.431 | - | nRichTracks | "# Rich Tracks / Event" | 50 | 13.2 | 6.1579 | 0.57505 | -0.43136 | - | nTracks | "# Tracks / Event" | 50 | 15.08 | 6.968 | 0.59962 | -0.44866 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 94 | 0.056544 | 0.085338 | 2.0866 | 3.4819 | + | All/Rejected/P | "Track Momentum" | 94 | 44832 | 22027 | 0.89196 | -0.2849 | + | All/Rejected/Pt | "Track Transverse Momentum" | 94 | 1038.9 | 725.59 | 2.7749 | 9.9584 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 664 | 1.1945 | 0.58351 | 0.91698 | 0.56286 | + | All/Selected/CloneDist | "Track Clone Distance" | 664 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 664 | 0.065129 | 0.080818 | 2.1855 | 4.4417 | + | All/Selected/P | "Track Momentum" | 664 | 11258 | 11870 | 2.7356 | 10.464 | + | All/Selected/Pt | "Track Transverse Momentum" | 664 | 1039.5 | 940.24 | 3.5569 | 15.544 | + | nRichTracks | "# Rich Tracks / Event" | 50 | 13.28 | 6.293 | 0.63509 | -0.28411 | + | nTracks | "# Tracks / Event" | 50 | 15.16 | 7.1031 | 0.6407 | -0.35872 | RichRecPixBkgsUpstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsUpstream" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.11041 | 0.089926 | 0.92975 | 0.2668 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.11031 | 0.089801 | 0.92795 | 0.2579 | RichDLLsUpstream SUCCESS 1D histograms in directory "RICH/RichDLLsUpstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 660 | 0.019861 | 13.421 | -0.42949 | 0.92823 | - | deuteron/dll | "deuteron DLL" | 660 | 0.05798 | 13.356 | -0.45385 | 0.97565 | - | electron/dll | "electron DLL" | 660 | -11.093 | 12.165 | -0.28151 | 0.57343 | - | kaon/dll | "kaon DLL" | 660 | 0.14491 | 12.914 | -0.61399 | 1.3784 | - | muon/dll | "muon DLL" | 660 | -3.9376 | 7.6561 | -0.21572 | 6.8211 | - | pion/dll | "pion DLL" | 660 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 660 | 0.12194 | 13.004 | -0.47472 | 1.0704 | + | below_threshold/dll | "below_threshold DLL" | 664 | 0.00061658 | 13.393 | -0.42521 | 0.93347 | + | deuteron/dll | "deuteron DLL" | 664 | 0.0384 | 13.328 | -0.44962 | 0.98057 | + | electron/dll | "electron DLL" | 664 | -10.934 | 12.313 | -0.23328 | 0.58592 | + | kaon/dll | "kaon DLL" | 664 | 0.12145 | 12.892 | -0.60716 | 1.3744 | + | muon/dll | "muon DLL" | 664 | -3.9221 | 7.6374 | -0.22361 | 6.8623 | + | pion/dll | "pion DLL" | 664 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 664 | 0.10395 | 12.975 | -0.47084 | 1.078 | RiTkDetectableYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 39 | 25.798 | 17.894 | 0.19526 | -1.1649 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 660 | 56.757 | 2.2314 | -0.1361 | 3.9857 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 261 | 35.88 | 15.35 | -0.7245 | -0.52525 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 659 | 46.475 | 11.019 | -1.4408 | 1.6457 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 625 | 41.746 | 15.606 | -1.1502 | 0.20346 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 137 | 28.043 | 16.902 | -0.18779 | -1.1214 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 39 | 25.75 | 17.956 | 0.19001 | -1.1689 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 664 | 56.746 | 2.2256 | -0.12761 | 4.0129 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 263 | 35.865 | 15.312 | -0.7237 | -0.51844 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 663 | 46.489 | 10.996 | -1.4444 | 1.666 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 629 | 41.762 | 15.575 | -1.1514 | 0.21279 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 138 | 27.916 | 16.902 | -0.17227 | -1.1334 | RiTkGeomEffsUpstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 39 | 0.65981 | 0.063309 | 0.4457 | -0.74267 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 660 | 0.6634 | 0.044042 | -0.35007 | 0.406 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 261 | 0.66018 | 0.059714 | -0.44795 | 1.3803 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 659 | 0.66602 | 0.049778 | -0.46193 | 0.80528 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 625 | 0.66051 | 0.059235 | -1.8511 | 16.086 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 137 | 0.66593 | 0.0569 | -0.027992 | -0.11614 | + | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 39 | 0.65695 | 0.063102 | 0.55348 | -0.62539 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 664 | 0.66361 | 0.043923 | -0.3537 | 0.42482 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 263 | 0.66028 | 0.059629 | -0.44751 | 1.3799 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 663 | 0.66641 | 0.04973 | -0.46513 | 0.81932 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 629 | 0.66057 | 0.059168 | -1.8536 | 16.07 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 138 | 0.66555 | 0.056716 | -0.0137 | -0.10298 | RiCKResUpstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResUpstreamTight" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 22229 |-0.00057938 | 0.0021516 | -0.16775 | -0.76684 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 40794 |-0.00062635 | 0.0021826 | -0.14728 | -0.82245 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 40794 | 3.1314 | 1.8047 | 0.0082311 | -1.1948 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 40794 | 0.044633 | 0.0066882 | -0.41052 | -1.0087 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 18565 |-0.00068017 | 0.0022163 | -0.12173 | -0.88159 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 22227 |-0.00057924 | 0.0021516 | -0.16748 | -0.76619 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 40780 |-0.00062625 | 0.0021826 | -0.14717 | -0.82209 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 40780 | 3.1317 | 1.8048 | 0.0080912 | -1.1948 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 40780 | 0.044632 | 0.0066884 | -0.41024 | -1.0092 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 18553 |-0.00068012 | 0.0022163 | -0.12178 | -0.88156 | RiTkSignalYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 16 | 44032 | 9426.9 | 3.6328 | 4.6655 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 649 | 7307.7 | 7822.8 | 42.878 | 237.48 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 649 | 7301.5 | 7825.2 | 42.861 | 237.33 | | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 142 | 18558 | 10358 | 11.373 | 37.748 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 601 | 7752.9 | 7964.1 | 42.351 | 228.88 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 525 | 8552.9 | 8221.6 | 37.376 | 193.08 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 601 | 7746.2 | 7967 | 42.328 | 228.69 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 524 | 8557.3 | 8228.8 | 37.267 | 192.32 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 55 | 28300 | 11105 | 5.7966 | 13.445 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 7 | 75771 | 16686 | 2.3919 | 0.50904 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 14977 | 11168 | 20.365 | 110.88 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 91 | 27979 | 13409 | 9.9037 | 41.28 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15219 | 11215 | 20.646 | 111.93 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15355 | 11230 | 21.075 | 114.14 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 15010 | 11157 | 20.396 | 111.16 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 92 | 27847 | 13390 | 10.03 | 41.936 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15253 | 11203 | 20.677 | 112.21 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15390 | 11218 | 21.105 | 114.43 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 32 | 42844 | 14465 | 7.4584 | 24.625 | RiTkEmittedYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 17 | 43389 | 9419.6 | 3.8041 | 5.2754 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 649 | 7307.7 | 7822.8 | 43.125 | 239.89 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 649 | 7301.5 | 7825.2 | 43.107 | 239.73 | | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 145 | 18358 | 10340 | 11.681 | 39.35 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 605 | 7714.2 | 7951.7 | 42.902 | 233.39 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 529 | 8507.4 | 8206.8 | 37.828 | 196.8 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 605 | 7707.6 | 7954.6 | 42.879 | 233.2 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 528 | 8511.7 | 8214 | 37.716 | 196.02 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 56 | 28096 | 11101 | 5.8249 | 13.616 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 7 | 75771 | 16686 | 2.1941 | 0.27539 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 800 | 8205.5 | 8882 | 50.983 | 363 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 96 | 27362 | 13296 | 10.364 | 43.796 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 588 | 10270 | 9562.7 | 41.815 | 273.86 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 462 | 12027 | 10112 | 33.605 | 206.22 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 800 | 8218.2 | 8886.4 | 50.863 | 361.94 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 97 | 27244 | 13273 | 10.495 | 44.492 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 588 | 10287 | 9564.5 | 41.743 | 273.31 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 462 | 12049 | 10110 | 33.574 | 206.04 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 32 | 42844 | 14465 | 7.1447 | 23.501 | RichTkSelEffDownstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffDownstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 841 | 1.7245 | 0.69617 | -1.0193 | 1.1485 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 841 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 841 | 0.090934 | 0.11101 | 3.9303 | 5.7767 | - | All/effVP | "RICH Track Sel. Eff. V P" | 841 | 7946.8 | 8768.4 | 85.843 | 634.55 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 841 | 492.74 | 589.74 | 82.293 | 515.73 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 842 | 1.7242 | 0.69574 | -1.019 | 1.1568 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 842 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 842 | 0.091364 | 0.11099 | 3.9007 | 5.7011 | + | All/effVP | "RICH Track Sel. Eff. V P" | 842 | 7952.1 | 8770 | 85.772 | 633.89 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 842 | 491.76 | 589.5 | 82.46 | 517.09 | RiTkDetectableYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 16 | 44032 | 9426.9 | 3.5395 | 4.4875 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 649 | 7307.7 | 7822.8 | 43.125 | 239.89 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 649 | 7301.5 | 7825.2 | 43.107 | 239.73 | | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 142 | 18558 | 10358 | 11.471 | 38.383 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 601 | 7752.9 | 7964.1 | 42.634 | 231.43 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 525 | 8552.9 | 8221.6 | 37.552 | 194.86 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 601 | 7746.2 | 7967 | 42.61 | 231.23 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 524 | 8557.3 | 8228.8 | 37.441 | 194.09 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 55 | 28300 | 11105 | 5.7676 | 13.381 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 7 | 75771 | 16686 | 2.3088 | 0.40913 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 14977 | 11168 | 18.704 | 101.52 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 91 | 27979 | 13409 | 9.8127 | 40.817 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15219 | 11215 | 19.4 | 104.84 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15355 | 11230 | 20.154 | 108.79 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 15010 | 11157 | 18.716 | 101.69 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 92 | 27847 | 13390 | 9.9381 | 41.466 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15253 | 11203 | 19.416 | 105.04 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15390 | 11218 | 20.174 | 109.02 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 32 | 42844 | 14465 | 7.296 | 24.052 | RiTkSignalYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 134 | 51132 | 14614 | 5.0437 | 9.6163 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3400 | 9761.7 | 10532 | 83.908 | 517.77 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1133 | 19918 | 13188 | 31.294 | 135.25 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3321 | 9952.7 | 10584 | 85.17 | 521.93 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3091 | 10527 | 10754 | 80.157 | 480.19 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 476 | 30679 | 14733 | 14.579 | 47.468 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 81 | 74737 | 10193 | 2.736 | 2.591 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2343 | 18418 | 14378 | 27.724 | 115.08 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 975 | 30479 | 15601 | 14.7 | 46.47 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2299 | 18657 | 14411 | 27.856 | 115.03 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2242 | 18979 | 14450 | 27.626 | 113.28 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 360 | 46715 | 15684 | 6.506 | 13.893 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 135 | 51368 | 14779 | 4.8499 | 8.8139 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3397 | 9770.6 | 10598 | 84.986 | 522.77 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1130 | 19972 | 13322 | 31.25 | 133.74 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3318 | 9961.9 | 10650 | 86.204 | 526.54 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3089 | 10534 | 10824 | 81.094 | 484.1 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 475 | 30812 | 14915 | 14.386 | 46.006 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 82 | 74814 | 10128 | 2.6271 | 2.3859 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2340 | 18434 | 14444 | 27.976 | 115.6 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 972 | 30568 | 15692 | 14.661 | 45.874 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2296 | 18674 | 14477 | 28.096 | 115.47 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2239 | 18996 | 14517 | 27.853 | 113.66 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 361 | 46811 | 15760 | 6.434 | 13.483 | RiTkEmittedYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 140 | 50324 | 14705 | 5.4235 | 10.794 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3400 | 9761.7 | 10532 | 83.602 | 515.73 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1155 | 19708 | 13146 | 31.774 | 138.13 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3327 | 9938.1 | 10580 | 84.946 | 520.69 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3113 | 10470 | 10737 | 80.42 | 482.72 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 490 | 30280 | 14694 | 14.959 | 49.035 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 83 | 74280 | 10343 | 2.5974 | 2.3132 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 4250 | 12099 | 12797 | 49.045 | 248.26 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1000 | 30128 | 15562 | 14.766 | 46.642 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3637 | 13701 | 13183 | 44.832 | 215.86 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3133 | 15290 | 13557 | 39.117 | 179.29 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 373 | 46111 | 15700 | 6.6313 | 14.257 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 141 | 50555 | 14874 | 5.211 | 9.919 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3397 | 9770.6 | 10598 | 84.703 | 520.88 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1152 | 19760 | 13279 | 31.745 | 136.68 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3324 | 9947.4 | 10646 | 86.006 | 525.48 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3111 | 10478 | 10806 | 81.391 | 486.87 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 489 | 30409 | 14874 | 14.752 | 47.52 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 84 | 74361 | 10282 | 2.4929 | 2.1109 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 4248 | 12098 | 12841 | 49.706 | 251.07 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 997 | 30213 | 15653 | 14.73 | 46.076 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3634 | 13704 | 13233 | 45.343 | 217.71 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3126 | 15310 | 13615 | 39.461 | 180.19 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 374 | 46205 | 15777 | 6.5596 | 13.852 | RichTkSelEffLong SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffLong" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 4391 | 1.5279 | 0.57312 | 0.74671 | 4.025 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 4391 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 4391 | 0.053687 | 0.083933 | 13.996 | 42.71 | - | All/effVP | "RICH Track Sel. Eff. V P" | 4391 | 11868 | 12722 | 66.637 | 357.1 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 4391 | 630.1 | 669.39 | 215.84 | 1865.7 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 4387 | 1.526 | 0.57231 | 0.7729 | 4.0912 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 4387 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 4387 | 0.053273 | 0.083448 | 14.246 | 43.811 | + | All/effVP | "RICH Track Sel. Eff. V P" | 4387 | 11871 | 12765 | 65.956 | 352.19 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 4387 | 630.57 | 670.77 | 214.93 | 1839.3 | RiTkDetectableYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 134 | 51132 | 14614 | 5.2052 | 10.13 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3400 | 9761.7 | 10532 | 83.602 | 515.73 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1133 | 19918 | 13188 | 31.184 | 134.72 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3321 | 9952.7 | 10584 | 84.849 | 519.81 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3091 | 10527 | 10754 | 79.864 | 478.29 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 476 | 30679 | 14733 | 14.54 | 47.171 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 81 | 74737 | 10193 | 2.5903 | 2.2803 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2343 | 18418 | 14378 | 25.852 | 106.61 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 975 | 30479 | 15601 | 14.392 | 45.028 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2299 | 18657 | 14411 | 26.545 | 108.87 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2242 | 18979 | 14450 | 26.632 | 108.45 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 360 | 46715 | 15684 | 6.3842 | 13.458 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 135 | 51368 | 14779 | 4.9941 | 9.2753 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3397 | 9770.6 | 10598 | 84.703 | 520.88 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1130 | 19972 | 13322 | 31.145 | 133.25 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3318 | 9961.9 | 10650 | 85.905 | 524.57 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3089 | 10534 | 10824 | 80.824 | 482.36 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 475 | 30812 | 14915 | 14.331 | 45.669 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 82 | 74814 | 10128 | 2.4888 | 2.089 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2340 | 18434 | 14444 | 26.102 | 107.17 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 972 | 30568 | 15692 | 14.352 | 44.46 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2296 | 18674 | 14477 | 26.782 | 109.35 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2239 | 18996 | 14517 | 26.854 | 108.85 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 361 | 46811 | 15760 | 6.3118 | 13.061 | RiTkSignalYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 39 | 49606 | 15205 | 4.5247 | 8.287 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 660 | 11265 | 11898 | 26.351 | 132.79 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 261 | 21624 | 13482 | 13.811 | 54.323 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 659 | 11279 | 11901 | 27.893 | 140.58 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 625 | 11768 | 12034 | 26.953 | 133.65 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 137 | 30025 | 14264 | 9.8853 | 32.339 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 39 | 49587 | 15223 | 4.5236 | 8.2726 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 664 | 11258 | 11870 | 26.542 | 134.09 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 263 | 21580 | 13439 | 13.976 | 55.217 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 663 | 11272 | 11874 | 28.094 | 141.96 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 629 | 11758 | 12005 | 27.163 | 135.06 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 138 | 29943 | 14236 | 10.013 | 32.904 | RiTkEmittedYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 40 | 49151 | 15207 | 4.6791 | 8.7998 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 660 | 11265 | 11898 | 26.559 | 133.95 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 263 | 21526 | 13475 | 14.012 | 55.3 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 660 | 11265 | 11898 | 28.127 | 141.95 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 634 | 11636 | 11998 | 27.549 | 137.35 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 140 | 29737 | 14232 | 10.039 | 33.309 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 40 | 49132 | 15223 | 4.6741 | 8.7773 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 664 | 11258 | 11870 | 26.754 | 135.28 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 265 | 21483 | 13432 | 14.184 | 56.23 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 664 | 11258 | 11870 | 28.334 | 143.36 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 638 | 11627 | 11969 | 27.763 | 138.79 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 141 | 29659 | 14202 | 10.152 | 33.826 | RichTkSelEffUpstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 754 | 1.1864 | 0.57382 | 4.1208 | 11.38 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 754 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 754 | 0.063696 | 0.081844 | 12.902 | 39.77 | - | All/effVP | "RICH Track Sel. Eff. V P" | 754 | 15093 | 17178 | 6.2997 | 17.723 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 754 | 1041.3 | 918.75 | 57.456 | 331.13 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 758 | 1.1901 | 0.57311 | 4.0817 | 11.354 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 758 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 758 | 0.064027 | 0.081463 | 13.634 | 42.457 | + | All/effVP | "RICH Track Sel. Eff. V P" | 758 | 15059 | 17118 | 6.8477 | 19.46 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 758 | 1039.4 | 916.65 | 57.911 | 334.62 | RiTkDetectableYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 39 | 49606 | 15205 | 4.6115 | 8.5237 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 660 | 11265 | 11898 | 26.559 | 133.95 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 261 | 21624 | 13482 | 13.965 | 55.021 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 659 | 11279 | 11901 | 28.104 | 141.77 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 625 | 11768 | 12034 | 27.124 | 134.61 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 137 | 30025 | 14264 | 9.8758 | 32.515 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 39 | 49587 | 15223 | 4.606 | 8.4995 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 664 | 11258 | 11870 | 26.754 | 135.28 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 263 | 21580 | 13439 | 14.138 | 55.954 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 663 | 11272 | 11874 | 28.311 | 143.18 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 629 | 11758 | 12005 | 27.338 | 136.05 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 138 | 29943 | 14236 | 9.9877 | 33.025 | RichRecPixelClusters SUCCESS Booked 2 Histogram(s) : 1D=2 RichRecPixelQC SUCCESS Booked 6 Histogram(s) : 1D=6 RichDecodingErrors SUCCESS Booked 352 Histogram(s) : 2D=1 1DProf=351 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref.x86_64+avx2+fma-opt index dfbd24fcb9a..670268df5d0 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_data_monitoring.ref.x86_64+avx2+fma-opt @@ -10,97 +10,97 @@ ApplicationMgr INFO Application Manager Terminated succe PrGECFilter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 50 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | - | "Nb of Produced Tracks" | 50 | 16503 | 330.06 | + | "Nb of Produced Tracks" | 50 | 16358 | 327.16 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 16503 | 330.06 | + | "Nb of Produced Tracks" | 50 | 16358 | 327.16 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 50 | 10454 | 209.08 | - | "#tracks" | 50 | 2948 | 58.960 | + | "#seeds" | 50 | 10390 | 207.80 | + | "#tracks" | 50 | 2946 | 58.920 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 2948 | 58.960 | + | "Nb of Produced Tracks" | 50 | 2946 | 58.920 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 50 | 9000 | 180.00 | PrForwardTracking INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 1973 | 39.460 | + | "Nb output tracks" | 50 | 1970 | 39.400 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 1973 | 39.460 | + | "Nb of Produced Tracks" | 50 | 1970 | 39.400 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 50 | 128936 | 2578.7 | TrackEventFitter SUCCESS Number of counters : 7 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Long.badChisq" | 1973 | 581 | 0.29448 | 0.45581 | 0.0000 | 1.0000 | - | "Long.chisqprobSum" | 1973 | 464.2292 | 0.23529 | 0.28034 | 0.0000 | 0.99927 | - | "Long.flipCharge" | 1973 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Long.numOutliers" | 1973 | 2127 | 1.0781 | 0.85845 | 0.0000 | 2.0000 | + | "Long.badChisq" | 1970 | 583 | 0.29594 | 0.45646 | 0.0000 | 1.0000 | + | "Long.chisqprobSum" | 1970 | 464.485 | 0.23578 | 0.28063 | 0.0000 | 0.99927 | + | "Long.flipCharge" | 1970 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Long.numOutliers" | 1970 | 2122 | 1.0772 | 0.85978 | 0.0000 | 2.0000 | | "nBadInput" | 50 | 0 | 0.0000 | - | "nFitted" | 50 | 1973 | 39.460 | - | "nTracks" | 50 | 1973 | 39.460 | + | "nFitted" | 50 | 1970 | 39.400 | + | "nTracks" | 50 | 1970 | 39.400 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 50 | 5152 | 103.04 | + | "Nb output tracks" | 50 | 5154 | 103.08 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 50 | 5152 | 103.04 | + | "Nb of Produced Tracks" | 50 | 5154 | 103.08 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 5314 | | "#UT hits added" | 20839 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 14896 | 84581.09 | 5.6781 | - | "#MatchingTracks" | 50 | 4763 | 95.260 | - | "TracksMLP" | 14896 | 4702.058 | 0.31566 | + | "#MatchingChi2" | 14872 | 84359.01 | 5.6723 | + | "#MatchingTracks" | 50 | 4766 | 95.320 | + | "TracksMLP" | 14872 | 4703.537 | 0.31627 | TrackBestTrackCreator SUCCESS Number of counters : 33 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 24014 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2085 | 1408 |( 67.52998 +- 1.025502)% | - | "Downstream.chisqProbSum" | 2085 | 170.0652 | 0.081566 | - |*"Downstream.flipCharge" | 2085 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2085 | 1285.194 | 0.61640 | - | "Downstream.numOutliers" | 2085 | 2842 | 1.3631 | - |*"FitFailed" | 24014 | 0 |( 0.000000 +- 0.000000)% | - | "FittedBefore" | 1748 | - |*"Long.badChisq" | 5047 | 3222 |( 63.83990 +- 0.6763076)% | - | "Long.chisqProbSum" | 5047 | 498.2301 | 0.098718 | - |*"Long.flipCharge" | 5047 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 5047 | 1393.943 | 0.27619 | - | "Long.numOutliers" | 5047 | 7115 | 1.4097 | - |*"Ttrack.badChisq" | 2681 | 200 |( 7.459903 +- 0.5074382)% | - | "Ttrack.chisqProbSum" | 2681 | 782.9449 | 0.29203 | - |*"Ttrack.flipCharge" | 2681 | 122 |( 4.550541 +- 0.4025037)% | - | "Ttrack.ghostProbability" | 2681 | 307.0588 | 0.11453 | - | "Ttrack.numOutliers" | 2681 | 1820 | 0.67885 | - |*"Upstream.badChisq" | 913 | 216 |( 23.65827 +- 1.406491)% | - | "Upstream.chisqProbSum" | 913 | 308.0974 | 0.33746 | - |*"Upstream.flipCharge" | 913 | 18 |( 1.971522 +- 0.4600887)% | - | "Upstream.ghostProbability" | 913 | 205.8598 | 0.22548 | - | "Upstream.numOutliers" | 913 | 452 | 0.49507 | - |*"Velo.badChisq" | 5505 | 1463 |( 26.57584 +- 0.5953664)% | - | "Velo.chisqProbSum" | 5505 | 1632.745 | 0.29659 | - |*"Velo.flipCharge" | 5505 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 5505 | 692.2785 | 0.12575 | - | "Velo.numOutliers" | 5505 | 3847 | 0.69882 | - |*"VeloBackward.badChisq" | 6035 | 345 |( 5.716653 +- 0.2988476)% | - | "VeloBackward.chisqProbSum" | 6035 | 2787.495 | 0.46189 | - |*"VeloBackward.flipCharge" | 6035 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 6035 | 607.4773 | 0.10066 | - | "VeloBackward.numOutliers" | 6035 | 1665 | 0.27589 | + |*"BadInput" | 23882 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2087 | 1409 |( 67.51318 +- 1.025148)% | + | "Downstream.chisqProbSum" | 2087 | 170.197 | 0.081551 | + |*"Downstream.flipCharge" | 2087 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2087 | 1285.275 | 0.61585 | + | "Downstream.numOutliers" | 2087 | 2848 | 1.3646 | + |*"FitFailed" | 23882 | 0 |( 0.000000 +- 0.000000)% | + | "FittedBefore" | 1746 | + |*"Long.badChisq" | 5058 | 3217 |( 63.60221 +- 0.6765255)% | + | "Long.chisqProbSum" | 5058 | 499.3059 | 0.098716 | + |*"Long.flipCharge" | 5058 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 5058 | 1400.744 | 0.27694 | + | "Long.numOutliers" | 5058 | 7146 | 1.4128 | + |*"Ttrack.badChisq" | 2682 | 200 |( 7.457122 +- 0.5072566)% | + | "Ttrack.chisqProbSum" | 2682 | 783.3091 | 0.29206 | + |*"Ttrack.flipCharge" | 2682 | 122 |( 4.548844 +- 0.4023572)% | + | "Ttrack.ghostProbability" | 2682 | 306.9467 | 0.11445 | + | "Ttrack.numOutliers" | 2682 | 1821 | 0.67897 | + |*"Upstream.badChisq" | 915 | 212 |( 23.16940 +- 1.394806)% | + | "Upstream.chisqProbSum" | 915 | 310.7204 | 0.33959 | + |*"Upstream.flipCharge" | 915 | 16 |( 1.748634 +- 0.4333195)% | + | "Upstream.ghostProbability" | 915 | 205.2586 | 0.22433 | + | "Upstream.numOutliers" | 915 | 459 | 0.50164 | + |*"Velo.badChisq" | 5436 | 1441 |( 26.50846 +- 0.5986476)% | + | "Velo.chisqProbSum" | 5436 | 1609.903 | 0.29616 | + |*"Velo.flipCharge" | 5436 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 5436 | 662.1054 | 0.12180 | + | "Velo.numOutliers" | 5436 | 3805 | 0.69996 | + |*"VeloBackward.badChisq" | 5958 | 331 |( 5.555556 +- 0.2967575)% | + | "VeloBackward.chisqProbSum" | 5958 | 2756.022 | 0.46257 | + |*"VeloBackward.flipCharge" | 5958 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 5958 | 573.7019 | 0.096291 | + | "VeloBackward.numOutliers" | 5958 | 1598 | 0.26821 | PatPV3DFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb PVs" | 50 | 284 | 5.6800 | + | "Nb PVs" | 50 | 281 | 5.6200 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | @@ -126,116 +126,116 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 50 | 792 | 15.840 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | - | "#tracks in acceptance" | 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | + | "#tracks in acceptance" | 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 50 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | - | "#tracks in acceptance" | 50 | 6181 | 123.62 | 48.908 | 40.000 | 229.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | + | "#tracks in acceptance" | 50 | 6186 | 123.72 | 49.007 | 40.000 | 229.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6181 | 123.62 | 48.908 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6186 | 123.72 | 49.007 | 40.000 | 229.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6181 | 123.62 | 48.908 | 40.000 | 229.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 50 | 6186 | 123.72 | 49.007 | 40.000 | 229.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 1196519 | 23930. | 14045. | 2715.0 | 55511. | - | "#chi2" | 385419 |1.780034e+08 | 461.84 | 290.02 | 0.00022207 | 999.99 | - | "#good tracks" | 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | - | "#links in table" | 50 | 385419 | 7708.4 | 5232.1 | 483.00 | 21103. | + | "#above threshold" | 50 | 1197511 | 23950. | 14057. | 2715.0 | 55226. | + | "#chi2" | 385685 |1.781105e+08 | 461.80 | 290.01 | 0.00022207 | 999.99 | + | "#good tracks" | 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | + | "#links in table" | 50 | 385685 | 7713.7 | 5235.1 | 483.00 | 21049. | | "#total calos" | 50 | 10948 | 218.96 | 58.725 | 78.000 | 339.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | - | "photonHypos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "electronHypos" | 50 | 6238 | 124.76 | 48.206 | 27.000 | 218.00 | + | "photonHypos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 847416 | 16948. | 12112. | 982.00 | 44483. | - | "#chi2" | 92826 |4.165642e+08 | 4487.6 | 2934.1 | 0.085394 | 9999.9 | - | "#good tracks" | 50 | 6584 | 131.68 | 51.460 | 41.000 | 242.00 | - | "#links in table" | 50 | 92826 | 1856.5 | 1229.1 | 125.00 | 5276.0 | - | "#total calos" | 50 | 6237 | 124.74 | 48.195 | 27.000 | 218.00 | + | "#above threshold" | 50 | 848168 | 16963. | 12120. | 982.00 | 44283. | + | "#chi2" | 93031 |4.176023e+08 | 4488.9 | 2934.0 | 0.085394 | 9999.9 | + | "#good tracks" | 50 | 6589 | 131.78 | 51.553 | 41.000 | 242.00 | + | "#links in table" | 50 | 93031 | 1860.6 | 1231.0 | 125.00 | 5276.0 | + | "#total calos" | 50 | 6238 | 124.76 | 48.206 | 27.000 | 218.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10644 | 212.88 | 74.073 | 83.000 | 380.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | - | "#tracks in acceptance" | 50 | 7098 | 141.96 | 50.882 | 57.000 | 263.00 | + | "#links in table" | 50 | 10582 | 211.64 | 73.455 | 83.000 | 378.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | + | "#tracks in acceptance" | 50 | 7080 | 141.60 | 50.681 | 57.000 | 261.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 50 | 784588 | 15692. | 8903.1 | 2389.0 | 37574. | - | "#chi2" | 292018 |1.384252e+09 | 4740.3 | 2877.3 | 0.016993 | 9999.9 | - | "#good tracks" | 50 | 7098 | 141.96 | 50.882 | 57.000 | 263.00 | - | "#links in table" | 50 | 292018 | 5840.4 | 2922.7 | 1023.0 | 14540. | - | "#total calos" | 50 | 7088 | 141.76 | 33.682 | 58.000 | 209.00 | + | "#above threshold" | 50 | 783033 | 15661. | 8884.4 | 2389.0 | 37447. | + | "#chi2" | 290642 |1.377368e+09 | 4739.1 | 2877.1 | 0.016993 | 9999.9 | + | "#good tracks" | 50 | 7080 | 141.60 | 50.681 | 57.000 | 261.00 | + | "#links in table" | 50 | 290642 | 5812.8 | 2897.8 | 1023.0 | 14492. | + | "#total calos" | 50 | 7089 | 141.78 | 33.689 | 58.000 | 209.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 10644 | 212.88 | 74.073 | 83.000 | 380.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | + | "#links in table" | 50 | 10582 | 211.64 | 73.455 | 83.000 | 378.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10644 | 212.88 | 74.073 | 83.000 | 380.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 50 | 10582 | 211.64 | 73.455 | 83.000 | 378.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 50 | 7907 | 158.14 | 61.358 | 53.000 | 296.00 | - | "#total tracks" | 50 | 20201 | 404.02 | 141.71 | 147.00 | 776.00 | + | "#links in table" | 50 | 7911 | 158.22 | 61.429 | 53.000 | 296.00 | + | "#total tracks" | 50 | 20064 | 401.28 | 140.75 | 147.00 | 770.00 | RichRecoStatsDownstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 50 | 148295 | 2965.9 | 2003.0 | 261.00 | 9613.0 | - | "# Rich1Gas Segments" | 50 | 648 | 12.960 | 5.9227 | 2.0000 | 26.000 | - | "# Rich2Gas Photons" | 50 | 20011 | 400.22 | 418.70 | 0.0000 | 1962.0 | - | "# Rich2Gas Segments" | 50 | 310 | 6.2000 | 4.1665 | 0.0000 | 16.000 | - | "# Selected Tracks" | 50 | 745 | 14.900 | 7.1812 | 2.0000 | 33.000 | - |*"RICH selection efficiency" | 841 | 745 |( 88.58502 +- 1.096528)% | + | "# Rich1Gas Photons" | 50 | 148358 | 2967.2 | 2001.7 | 261.00 | 9613.0 | + | "# Rich1Gas Segments" | 50 | 648 | 12.960 | 5.9092 | 2.0000 | 26.000 | + | "# Rich2Gas Photons" | 50 | 19960 | 399.20 | 416.81 | 0.0000 | 1962.0 | + | "# Rich2Gas Segments" | 50 | 310 | 6.2000 | 4.1713 | 0.0000 | 16.000 | + | "# Selected Tracks" | 50 | 746 | 14.920 | 7.1773 | 2.0000 | 33.000 | + |*"RICH selection efficiency" | 842 | 746 |( 88.59857 +- 1.095310)% | RichDLLsDownstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 50 | 745 | 14.900 | 7.1812 | 2.0000 | 33.000 | - |*"Used RICH1 and RICH2" | 745 | 213 |( 28.59060 +- 1.655431)% | - |*"Used RICH1 only" | 745 | 435 |( 58.38926 +- 1.805889)% | - |*"Used RICH2 only" | 745 | 97 |( 13.02013 +- 1.232932)% | + | "# PIDs" | 50 | 746 | 14.920 | 7.1773 | 2.0000 | 33.000 | + |*"Used RICH1 and RICH2" | 746 | 212 |( 28.41823 +- 1.651316)% | + |*"Used RICH1 only" | 746 | 436 |( 58.44504 +- 1.804330)% | + |*"Used RICH2 only" | 746 | 98 |( 13.13673 +- 1.236780)% | RichRecoStatsLong INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 50 | 661245 | 13225. | 8386.4 | 2554.0 | 36396. | - | "# Rich1Gas Segments" | 50 | 3398 | 67.960 | 26.556 | 26.000 | 131.00 | - | "# Rich2Gas Photons" | 50 | 154503 | 3090.1 | 1947.3 | 248.00 | 10245. | - | "# Rich2Gas Segments" | 50 | 2338 | 46.760 | 17.409 | 9.0000 | 90.000 | - | "# Selected Tracks" | 50 | 4182 | 83.640 | 30.625 | 28.000 | 159.00 | - |*"RICH selection efficiency" | 4385 | 4182 |( 95.37058 +- 0.3173114)% | + | "# Rich1Gas Photons" | 50 | 662445 | 13249. | 8416.1 | 2554.0 | 35924. | + | "# Rich1Gas Segments" | 50 | 3402 | 68.040 | 26.647 | 26.000 | 131.00 | + | "# Rich2Gas Photons" | 50 | 154239 | 3084.8 | 1944.8 | 248.00 | 10245. | + | "# Rich2Gas Segments" | 50 | 2336 | 46.720 | 17.374 | 9.0000 | 90.000 | + | "# Selected Tracks" | 50 | 4184 | 83.680 | 30.723 | 28.000 | 159.00 | + |*"RICH selection efficiency" | 4387 | 4184 |( 95.37269 +- 0.3171702)% | RichDLLsLong INFO Number of counters : 4 | Counter | - | "# PIDs" | 50 | 4182 | 83.640 | 30.625 | 28.000 | 159.00 | - |*"Used RICH1 and RICH2" | 4182 | 1554 |( 37.15925 +- 0.7472435)% | - |*"Used RICH1 only" | 4182 | 1844 |( 44.09374 +- 0.7677621)% | - |*"Used RICH2 only" | 4182 | 784 |( 18.74701 +- 0.6035228)% | + | "# PIDs" | 50 | 4184 | 83.680 | 30.723 | 28.000 | 159.00 | + |*"Used RICH1 and RICH2" | 4184 | 1554 |( 37.14149 +- 0.7469919)% | + |*"Used RICH1 only" | 4184 | 1848 |( 44.16826 +- 0.7677148)% | + |*"Used RICH2 only" | 4184 | 782 |( 18.69025 +- 0.6026748)% | RichRecoStatsUpstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 50 | 110044 | 2200.9 | 1607.1 | 215.00 | 7285.0 | - | "# Rich1Gas Segments" | 50 | 660 | 13.200 | 6.1123 | 2.0000 | 27.000 | + | "# Rich1Gas Photons" | 50 | 112091 | 2241.8 | 1728.0 | 215.00 | 8913.0 | + | "# Rich1Gas Segments" | 50 | 665 | 13.300 | 6.3380 | 2.0000 | 29.000 | | "# Rich2Gas Photons" | 50 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "# Rich2Gas Segments" | 50 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "# Selected Tracks" | 50 | 660 | 13.200 | 6.1123 | 2.0000 | 27.000 | - |*"RICH selection efficiency" | 754 | 660 |( 87.53316 +- 1.203037)% | + | "# Selected Tracks" | 50 | 665 | 13.300 | 6.3380 | 2.0000 | 29.000 | + |*"RICH selection efficiency" | 759 | 665 |( 87.61528 +- 1.195672)% | RichDLLsUpstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 50 | 660 | 13.200 | 6.1123 | 2.0000 | 27.000 | - |*"Used RICH1 and RICH2" | 660 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 660 | 660 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 660 | 0 |( 0.000000 +- 0.000000)% | + | "# PIDs" | 50 | 665 | 13.300 | 6.3380 | 2.0000 | 29.000 | + |*"Used RICH1 and RICH2" | 665 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 665 | 665 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 665 | 0 |( 0.000000 +- 0.000000)% | ClusterMonitorEcalClusters SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Monitor /Event/CaloFutureClusterCovarianceAlg/O| 50 | 10948 | 218.96 | 58.725 | 78.000 | 339.00 | @@ -263,56 +263,56 @@ CaloFutureMergedPi0.SplitPhotonS... SUCCESS Number of counters : 2 | "Delta(Y)" | 30492 | 9800.474 | 0.32141 | 13.729 | -45.961 | 29.253 | ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2121 | 172310.1 | 81.240 | 0.27287 | 81.241 | 81.241 | + | " Inner" | 2122 | 172391.4 | 81.240 | 0.27438 | 81.241 | 81.241 | | " Middle" | 1890 | 180121.7 | 95.302 | 0.60559 | 95.304 | 95.304 | | " Outer" | 2226 | 242358 | 108.88 | 0.41289 | 108.88 | 108.88 | - | " Inner" | 2121 | 31343.02 | 14.777 | 0.089549 | 14.778 | 14.778 | + | " Inner" | 2122 | 31357.79 | 14.777 | 0.089537 | 14.778 | 14.778 | | " Middle" | 1890 | 27282.28 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 2226 | 32532.47 | 14.615 | 0.0000 | 14.614 | 14.614 | - | "Delta(Z)" | 6237 | 726974.9 | 116.56 | 11.568 | 83.316 | 164.35 | - | "Delta(Z) Inner" | 2121 | 241261.2 | 113.75 | 11.124 | 83.316 | 164.35 | + | "Delta(Z)" | 6238 | 727082.7 | 116.56 | 11.568 | 83.316 | 164.35 | + | "Delta(Z) Inner" | 2122 | 241374 | 113.75 | 11.121 | 83.316 | 164.35 | | "Delta(Z) Middle" | 1890 | 217953.7 | 115.32 | 10.903 | 86.958 | 163.63 | - | "Delta(Z) Outer" | 2226 | 267760.3 | 120.29 | 11.546 | 94.434 | 160.94 | + | "Delta(Z) Outer" | 2226 | 267755.2 | 120.29 | 11.550 | 94.434 | 160.94 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 6237 | -1195.206 | -0.19163 | 11.795 | -23.059 | 22.930 | - | "Delta(Y)" | 6237 | -599.3564 | -0.096097 | 11.574 | -23.059 | 22.930 | + | "Delta(X)" | 6238 | -1229.293 | -0.19707 | 11.795 | -23.059 | 22.930 | + | "Delta(Y)" | 6238 | -609.6474 | -0.097731 | 11.576 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2121 | 2110.778 | 0.99518 | 0.018973 | 0.96468 | 1.1016 | + | " Inner" | 2122 | 2111.752 | 0.99517 | 0.018980 | 0.96468 | 1.1016 | | " Middle" | 1890 | 1902.562 | 1.0066 | 0.019217 | 0.97678 | 1.1187 | - | " Outer" | 2226 | 2227.223 | 1.0005 | 0.014446 | 0.97356 | 1.0498 | - | "Corrected energy" | 6237 |4.467327e+07 | 7162.6 | 8806.7 | 419.78 | 2.7815e+05 | - | "Delta(E)" | 6237 | 1237187 | 198.36 | 223.26 | -3615.5 | 4037.2 | - | "Pileup offset" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 6237 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 6237 | 6237 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 2226 | 2227.206 | 1.0005 | 0.014436 | 0.97356 | 1.0498 | + | "Corrected energy" | 6238 |4.468104e+07 | 7162.7 | 8806.1 | 419.78 | 2.7815e+05 | + | "Delta(E)" | 6238 | 1237397 | 198.36 | 223.26 | -3615.5 | 4037.2 | + | "Pileup offset" | 6238 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 6238 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 6238 | 6238 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 159475.1 | 81.240 | 0.048613 | 81.241 | 81.241 | - | " Middle" | 1758 | 167542.5 | 95.303 | 0.55255 | 95.304 | 95.304 | + | " Middle" | 1759 | 167637.8 | 95.303 | 0.55287 | 95.304 | 95.304 | | " Outer" | 3367 | 366584.3 | 108.88 | 0.71412 | 108.88 | 108.88 | | " Inner" | 1963 | 29008.2 | 14.777 | 0.090824 | 14.778 | 14.778 | - | " Middle" | 1758 | 25376.79 | 14.435 | 0.0000 | 14.435 | 14.435 | + | " Middle" | 1759 | 25391.23 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 3367 | 49206.25 | 14.614 | 0.053924 | 14.614 | 14.614 | - | "Delta(Z)" | 7088 | 769171.8 | 108.52 | 11.886 | 76.221 | 164.33 | + | "Delta(Z)" | 7089 | 769272.4 | 108.52 | 11.886 | 76.221 | 164.33 | | "Delta(Z) Inner" | 1963 | 213829.1 | 108.93 | 12.093 | 76.221 | 164.33 | - | "Delta(Z) Middle" | 1758 | 189065.9 | 107.55 | 10.937 | 81.830 | 150.49 | - | "Delta(Z) Outer" | 3367 | 366277.7 | 108.78 | 12.202 | 77.473 | 158.35 | + | "Delta(Z) Middle" | 1759 | 189180.4 | 107.55 | 10.936 | 81.830 | 150.49 | + | "Delta(Z) Outer" | 3367 | 366263.8 | 108.78 | 12.203 | 77.473 | 158.35 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 7088 | -457.0891 | -0.064488 | 12.669 | -23.059 | 22.930 | - | "Delta(Y)" | 7088 | -494.5214 | -0.069769 | 12.657 | -23.059 | 22.930 | + | "Delta(X)" | 7089 | -479.1677 | -0.067593 | 12.668 | -23.059 | 22.930 | + | "Delta(Y)" | 7089 | -517.4447 | -0.072993 | 12.654 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 1963 | 1952.461 | 0.99463 | 0.019355 | 0.96492 | 1.1127 | - | " Middle" | 1758 | 1766.203 | 1.0047 | 0.019351 | 0.97709 | 1.1325 | - | " Outer" | 3367 | 3358.061 | 0.99735 | 0.015423 | 0.97356 | 1.0596 | - | "Corrected energy" | 7088 |3.011274e+07 | 4248.4 | 6905.1 | 165.95 | 2.7786e+05 | - | "Delta(E)" | 7088 | -79561.65 | -11.225 | 145.47 | -1458.7 | 2142.1 | - | "Pileup offset" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 7088 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 7088 | 7088 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Middle" | 1759 | 1767.186 | 1.0047 | 0.019346 | 0.97709 | 1.1325 | + | " Outer" | 3367 | 3358.069 | 0.99735 | 0.015433 | 0.97356 | 1.0596 | + | "Corrected energy" | 7089 |3.011568e+07 | 4248.2 | 6904.6 | 165.95 | 2.7786e+05 | + | "Delta(E)" | 7089 | -79634.9 | -11.234 | 145.46 | -1458.7 | 2142.1 | + | "Pileup offset" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 7089 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 7089 | 7089 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 170 | 13811 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -360,12 +360,12 @@ CaloFutureShowerOverlap.PhotonSh... SUCCESS Number of counters : 2 | "Delta(Y)" | 29368 | -2297.968 | -0.078247 | 12.517 | -23.059 | 23.423 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4196 | 26200 | 6.2440 | - | "#tracks with hits added" | 4196 | + | "#UT hits added" | 4194 | 26232 | 6.2546 | + | "#tracks with hits added" | 4194 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 4303 | 27032 | 6.2821 | - | "#tracks with hits added" | 4303 | + | "#UT hits added" | 4309 | 27104 | 6.2901 | + | "#tracks with hits added" | 4309 | RichRecPixelClusters SUCCESS 1D histograms in directory "RICH/RichRecPixelClusters" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1/clusterSize | "Rich1 Pixel Cluster Sizes" | 170255 | 1.3556 | 1.1323 | 7.2471 | 95.596 | @@ -385,46 +385,46 @@ RiCKResDownstream SUCCESS 1D histograms in directory "RICH/RiC | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 26398 | 3.122 | 1.8288 | 0.015335 | -1.192 | | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 26398 | 0.046918 | 0.0066193 | -1.0126 | -0.18328 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 12230 |-0.00017232 | 0.0021448 | -0.21511 | -0.57878 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 6439 | 0.00014513 | 0.0012671 | -0.098411 | -0.88207 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 6518 | 0.00014919 | 0.001267 | -0.10086 | -0.88586 | | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 8318 | 0.00010122 | 0.0013029 | -0.038602 | -1.0079 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14757 | 0.00012038 | 0.0012876 | -0.064843 | -0.95614 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14757 | 3.1368 | 1.8169 | 0.013962 | -1.2038 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14757 | 0.027391 | 0.0040137 | -1.9813 | 4.2965 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 14836 | 0.00012234 | 0.0012874 | -0.066234 | -0.95736 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 14836 | 3.1339 | 1.8165 | 0.015422 | -1.2035 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 14836 | 0.027401 | 0.0040066 | -1.9872 | 4.3302 | RiTkMaterialDownstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialDownstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 271 | 0.037492 | 0.00084418 | 2.5069 | 7.1005 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 271 | 3.4614e-05 | 3.6663e-12 |-2.9825e+13 | 9.2493e+17 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 271 | 1071.7 | 14.747 | 0.0038278 | -1.1261 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 640 | 0.04905 | 0.038704 | 0.9501 | -0.95667 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 640 | 2.1246e-05 | 1.4863e-05 | 0.95574 | -0.97025 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 640 | 2184.5 | 237.19 | 0.036526 | -0.88709 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 270 | 0.037495 | 0.00084398 | 2.5086 | 7.1082 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 270 | 3.4614e-05 | 3.6663e-12 |-2.9825e+13 | 9.2493e+17 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 270 | 1071.8 | 14.748 | -0.0051846 | -1.1231 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 641 | 0.049008 | 0.038688 | 0.95252 | -0.9521 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 641 | 2.1231e-05 | 1.4856e-05 | 0.95816 | -0.96561 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 641 | 2184.1 | 237.22 | 0.039594 | -0.88916 | RiTkSignalYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 16 | 13.007 | 10.92 | 0.58416 | -0.94229 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 648 | 36.136 | 3.8001 | -1.921 | 5.7147 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 648 | 36.135 | 3.7997 | -1.9207 | 5.7157 | | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 141 | 20.691 | 10.284 | -0.28154 | -0.93787 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 600 | 26.889 | 9.9289 | -0.93711 | 0.034797 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 524 | 24.725 | 10.542 | -0.68381 | -0.52898 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 600 | 26.849 | 9.9571 | -0.92939 | 0.0088649 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 523 | 24.711 | 10.548 | -0.68073 | -0.5333 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 54 | 17.505 | 10.559 | 0.027018 | -1.2764 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 7 | 10.775 | 6.0467 | -0.79399 | -1.3065 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 18.884 | 5.9966 | -0.85661 | -0.16017 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 91 | 11.709 | 6.5477 | -0.14214 | -1.187 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 17.404 | 6.247 | -0.78036 | -0.46242 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 16.275 | 6.5076 | -0.6989 | -0.6281 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 18.894 | 6.0027 | -0.85656 | -0.16397 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 92 | 11.584 | 6.6201 | -0.13444 | -1.2036 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 17.431 | 6.2541 | -0.78798 | -0.459 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 16.321 | 6.5007 | -0.71416 | -0.60325 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 31 | 9.7214 | 6.541 | 0.086753 | -1.3084 | RiTkEmittedYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 17 | 208.24 | 175.12 | 0.64362 | -0.86736 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 648 | 594.72 | 49.326 | -3.8641 | 15.689 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 648 | 594.74 | 49.33 | -3.8643 | 15.689 | | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 144 | 339.88 | 170.32 | -0.33552 | -0.96586 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 604 | 439.97 | 158.71 | -1.0623 | 0.21018 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 528 | 407.98 | 170.75 | -0.77838 | -0.49407 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 604 | 439.32 | 159.12 | -1.0533 | 0.18061 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 527 | 407.82 | 170.87 | -0.77558 | -0.4995 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 55 | 290.58 | 170.51 | 0.027073 | -1.1464 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 7 | 166.94 | 89.281 | -0.82506 | -1.0631 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 800 | 399.02 | 51.867 | -0.059113 | -0.8459 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 96 | 174.35 | 100.22 | -0.17571 | -1.1652 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 588 | 251.44 | 102.6 | -0.9904 | -0.057485 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 462 | 236.44 | 100.82 | -0.75459 | -0.50929 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 800 | 399.07 | 51.806 | -0.057795 | -0.8432 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 97 | 172.67 | 101.06 | -0.16261 | -1.187 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 588 | 251.64 | 102.66 | -0.99368 | -0.055012 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 462 | 236.83 | 100.82 | -0.76293 | -0.4973 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 32 | 148.46 | 100.62 | 0.12322 | -1.2329 | RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -433,53 +433,53 @@ RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/Ric | All/Rejected/GhostProb | "Track Ghost Probability" | 96 | 0.17632 | 0.11093 | 0.33923 | -1.0469 | | All/Rejected/P | "Track Momentum" | 96 | 4013.7 | 1408 | 0.63858 | 0.40931 | | All/Rejected/Pt | "Track Transverse Momentum" | 96 | 117.55 | 56.536 | 2.6423 | 7.0899 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 745 | 1.6979 | 0.70422 | 0.067874 | -0.99246 | - | All/Selected/CloneDist | "Track Clone Distance" | 745 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 745 | 0.084501 | 0.10839 | 1.3064 | 0.41636 | - | All/Selected/P | "Track Momentum" | 745 | 8455.2 | 9180.2 | 3.526 | 19.735 | - | All/Selected/Pt | "Track Transverse Momentum" | 745 | 489.77 | 594.13 | 3.9602 | 20.549 | - | nRichTracks | "# Rich Tracks / Event" | 50 | 14.9 | 7.1812 | 0.41998 | -0.26063 | - | nTracks | "# Tracks / Event" | 50 | 16.82 | 7.8223 | 0.26273 | -0.44503 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 746 | 1.6975 | 0.70373 | 0.069446 | -0.98933 | + | All/Selected/CloneDist | "Track Clone Distance" | 746 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 746 | 0.084975 | 0.10839 | 1.2944 | 0.3892 | + | All/Selected/P | "Track Momentum" | 746 | 8460.6 | 9181.1 | 3.5193 | 19.688 | + | All/Selected/Pt | "Track Transverse Momentum" | 746 | 488.78 | 593.88 | 3.9646 | 20.583 | + | nRichTracks | "# Rich Tracks / Event" | 50 | 14.92 | 7.1773 | 0.42432 | -0.26861 | + | nTracks | "# Tracks / Event" | 50 | 16.84 | 7.8086 | 0.26756 | -0.44023 | RichRecPixBkgsDownstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsDownstream" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.10935 | 0.087602 | 0.88794 | 0.13604 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.052651 | 0.037545 | 1.5438 | 3.337 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.10936 | 0.087599 | 0.8878 | 0.13602 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.052652 | 0.037544 | 1.5439 | 3.3373 | RichDLLsDownstream SUCCESS 1D histograms in directory "RICH/RichDLLsDownstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 745 | -0.21668 | 10.608 | -0.53219 | 3.6876 | - | deuteron/dll | "deuteron DLL" | 745 | -0.21933 | 10.684 | -0.47618 | 3.761 | - | electron/dll | "electron DLL" | 745 | -5.1664 | 13.522 | 0.14842 | 1.6483 | - | kaon/dll | "kaon DLL" | 745 | -1.1019 | 10.762 | -0.87209 | 3.9103 | - | muon/dll | "muon DLL" | 745 | -2.1427 | 7.1185 | -1.7482 | 8.1348 | - | pion/dll | "pion DLL" | 745 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 745 | -0.29314 | 10.721 | -0.34907 | 3.8895 | + | below_threshold/dll | "below_threshold DLL" | 746 | -0.15956 | 10.488 | -0.48605 | 3.6758 | + | deuteron/dll | "deuteron DLL" | 746 | -0.16228 | 10.565 | -0.42965 | 3.7562 | + | electron/dll | "electron DLL" | 746 | -5.1619 | 13.506 | 0.14884 | 1.6587 | + | kaon/dll | "kaon DLL" | 746 | -1.0396 | 10.629 | -0.8236 | 3.8386 | + | muon/dll | "muon DLL" | 746 | -2.1003 | 7.0383 | -1.7367 | 8.3233 | + | pion/dll | "pion DLL" | 746 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 746 | -0.23539 | 10.604 | -0.30003 | 3.8858 | RiTkDetectableYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 16 | 19.503 | 16.232 | 0.61116 | -0.91052 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 648 | 54.631 | 4.5311 | -3.8732 | 15.814 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 648 | 54.633 | 4.5315 | -3.8733 | 15.814 | | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 141 | 31.38 | 15.437 | -0.3182 | -0.97806 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 600 | 40.37 | 14.549 | -1.0463 | 0.1787 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 524 | 37.383 | 15.727 | -0.77189 | -0.50247 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 600 | 40.308 | 14.59 | -1.037 | 0.14779 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 523 | 37.368 | 15.738 | -0.76911 | -0.50794 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 54 | 26.544 | 15.726 | 0.027658 | -1.1352 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 7 | 15.476 | 8.6023 | -0.8612 | -1.0268 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 34.064 | 2.1358 | 0.061387 | -0.32989 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 91 | 16.926 | 9.2612 | -0.22039 | -1.1169 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 29.923 | 3.4964 | -1.4016 | 2.9037 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 27.14 | 5.4997 | -1.4126 | 2.373 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 310 | 34.077 | 2.1225 | 0.06742 | -0.30748 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 92 | 16.746 | 9.3693 | -0.21271 | -1.1352 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 302 | 29.961 | 3.4563 | -1.414 | 3.0552 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 298 | 27.199 | 5.4472 | -1.4287 | 2.5006 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 31 | 14.139 | 9.5097 | 0.094001 | -1.2648 | RiTkGeomEffsDownstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 16 | 0.63733 | 0.09253 | -1.305 | 1.5302 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 648 | 0.66141 | 0.041907 | -0.57578 | 1.6541 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 648 | 0.66136 | 0.041895 | -0.57329 | 1.6567 | | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 141 | 0.65845 | 0.061374 | -0.62791 | 1.4048 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 600 | 0.66489 | 0.053187 | -0.36846 | 0.20786 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 524 | 0.66219 | 0.054023 | -0.23169 | 0.56496 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 600 | 0.66489 | 0.053188 | -0.36826 | 0.20751 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 523 | 0.6621 | 0.054043 | -0.22832 | 0.5644 | | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 54 | 0.6603 | 0.055966 | -0.4028 | -0.0025371 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 7 | 0.68591 | 0.059745 | 0.1136 | -1.5243 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 310 | 0.56075 | 0.18615 | -0.88402 | -0.35985 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 91 | 0.6921 | 0.064062 | 0.12159 | 0.22152 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 302 | 0.57264 | 0.18255 | -0.99813 | -0.10293 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 298 | 0.58133 | 0.18086 | -1.1106 | 0.2749 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 310 | 0.56079 | 0.18618 | -0.88383 | -0.36041 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 92 | 0.69092 | 0.064703 | 0.12201 | 0.15054 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 302 | 0.57258 | 0.1825 | -0.99874 | -0.10178 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 298 | 0.58164 | 0.18101 | -1.1115 | 0.27252 | | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 31 | 0.68137 | 0.072336 | -0.44228 | -0.55999 | RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResDownstreamTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -495,325 +495,325 @@ RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiC | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 5083 | 0.02715 | 0.0040342 | -1.7454 | 3.0408 | RiCKResLong SUCCESS 1D histograms in directory "RICH/RiCKResLong" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 108855 |-0.00024546 | 0.0020471 | -0.24652 | -0.47035 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 198093 |-0.00015951 | 0.0020342 | -0.25721 | -0.40174 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 198093 | 3.1591 | 1.8096 | -0.020799 | -1.1795 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 198093 | 0.047307 | 0.0061952 | -1.1527 | 0.26875 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 89238 |-5.3328e-05 | 0.0020131 | -0.26764 | -0.315 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 59647 | 1.5322e-05 | 0.0012032 | 0.029616 | -0.72155 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 70073 | 1.0153e-05 | 0.0012197 | 0.0281 | -0.77988 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 129720 | 1.2536e-05 | 0.0012121 | 0.028698 | -0.75335 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 129720 | 3.1219 | 1.8154 | 0.010155 | -1.2072 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 129720 | 0.026734 | 0.004548 | -1.6807 | 2.4024 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 108969 |-0.00024377 | 0.0020474 | -0.24798 | -0.46889 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 197958 |-0.00015926 | 0.0020346 | -0.25836 | -0.40128 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 197958 | 3.1597 | 1.8095 | -0.021183 | -1.1794 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 197958 | 0.047302 | 0.0061966 | -1.1508 | 0.2636 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 88989 |-5.4639e-05 | 0.0020137 | -0.26846 | -0.31573 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 59354 | 1.5053e-05 | 0.0012033 | 0.02899 | -0.721 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 69973 | 9.319e-06 | 0.0012197 | 0.028919 | -0.77954 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 129327 | 1.1956e-05 | 0.0012122 | 0.028856 | -0.75299 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 129327 | 3.122 | 1.8151 | 0.010085 | -1.2067 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 129327 | 0.026731 | 0.0045515 | -1.6792 | 2.3943 | RiTkMaterialLong SUCCESS 1D histograms in directory "RICH/RiTkMaterialLong" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 1540 | 0.037696 | 0.00087499 | 2.98 | 6.5834 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1540 | 3.4614e-05 | 8.9805e-12 |-2.0293e+12 | 2.5692e+16 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1540 | 1075.9 | 15.02 | -0.25954 | -1.0477 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 3429 | 0.042444 | 0.034974 | 1.3742 | 0.083799 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 3429 | 1.898e-05 | 1.3581e-05 | 1.3713 | 0.048617 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 3429 | 2116.1 | 223.9 | 0.26631 | -0.70302 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 1543 | 0.037697 | 0.00087864 | 2.9994 | 6.6041 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 1543 | 3.4614e-05 | 8.9805e-12 |-2.0293e+12 | 2.5692e+16 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 1543 | 1075.9 | 15.029 | -0.25541 | -1.0536 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 3430 | 0.042488 | 0.035025 | 1.3711 | 0.073381 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 3430 | 1.8996e-05 | 1.3598e-05 | 1.3685 | 0.038903 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 3430 | 2116.4 | 224.15 | 0.26633 | -0.70488 | RiTkSignalYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 134 | 17.197 | 10.699 | 0.11723 | -0.93858 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3398 | 37.036 | 2.4702 | -1.1406 | 7.8954 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1131 | 21.262 | 11.209 | -0.33703 | -1.0382 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3319 | 30.042 | 8.3721 | -1.4372 | 1.7931 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3089 | 27.725 | 9.754 | -1.0695 | 0.34989 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 474 | 18.697 | 10.928 | 0.030634 | -1.1414 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 81 | 8.6918 | 5.7572 | 0.30838 | -0.92062 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2338 | 18.999 | 5.8263 | -1.0478 | 0.31515 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 971 | 12.023 | 6.393 | -0.2111 | -0.98558 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2294 | 17.8 | 6.0279 | -1.0376 | 0.080771 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2239 | 17.115 | 6.0347 | -0.97604 | -0.090146 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 361 | 10.219 | 6.5015 | 0.10477 | -1.1095 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 133 | 17.079 | 10.651 | 0.12734 | -0.91894 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3402 | 37.033 | 2.4718 | -1.136 | 7.8517 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1131 | 21.265 | 11.204 | -0.33904 | -1.0359 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3322 | 30.035 | 8.3607 | -1.4281 | 1.7659 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3092 | 27.701 | 9.7782 | -1.0657 | 0.33577 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 474 | 18.656 | 10.906 | 0.036029 | -1.1342 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 80 | 8.646 | 5.7774 | 0.32928 | -0.91598 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2336 | 18.989 | 5.8312 | -1.0445 | 0.30363 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 968 | 12.024 | 6.3782 | -0.21501 | -0.98653 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2292 | 17.785 | 6.0379 | -1.0354 | 0.07442 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2236 | 17.104 | 6.0379 | -0.97268 | -0.099411 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 360 | 10.183 | 6.4734 | 0.098536 | -1.1199 | RiTkEmittedYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 140 | 277.15 | 175.34 | -0.0049751 | -1.1217 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3398 | 606.24 | 20.571 | -7.6005 | 105.31 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1153 | 346.56 | 181.29 | -0.40973 | -1.0777 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3325 | 493.96 | 130.78 | -1.7037 | 2.5466 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3111 | 454.69 | 156.33 | -1.2364 | 0.61644 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 488 | 304.64 | 177.07 | -0.072348 | -1.2215 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 83 | 136.82 | 89.402 | 0.22116 | -1.0693 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 4245 | 386.79 | 46.939 | 0.37452 | -0.642 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 996 | 187.75 | 99.424 | -0.3281 | -1.0956 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3633 | 275.8 | 91.713 | -1.4069 | 1.1018 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3127 | 257.34 | 96.452 | -1.1498 | 0.26311 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 373 | 156.01 | 98.459 | 0.029571 | -1.2226 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 139 | 275.22 | 174.48 | 0.0012081 | -1.113 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3402 | 606.24 | 20.589 | -7.5656 | 104.82 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1153 | 346.58 | 181.15 | -0.41264 | -1.0752 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3328 | 493.86 | 130.61 | -1.6942 | 2.5117 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3114 | 454.32 | 156.65 | -1.2318 | 0.59959 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 488 | 303.96 | 176.6 | -0.069929 | -1.2174 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 82 | 135.5 | 89.142 | 0.24883 | -1.0349 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 4247 | 386.85 | 46.997 | 0.37377 | -0.64501 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 993 | 187.77 | 99.286 | -0.32975 | -1.0957 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3630 | 275.71 | 91.878 | -1.4063 | 1.0994 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3123 | 257.39 | 96.386 | -1.15 | 0.26838 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 372 | 155.55 | 98.201 | 0.030299 | -1.2216 | RichTkSelEffLong SUCCESS 1D histograms in directory "RICH/RichTkSelEffLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 203 | 1.8105 | 0.61537 | 0.059381 | -0.88268 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 203 | 1.8107 | 0.60994 | 0.040946 | -0.86845 | | All/Rejected/CloneDist | "Track Clone Distance" | 203 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 203 | 0.18535 | 0.11822 | 0.25154 | -1.2197 | - | All/Rejected/P | "Track Momentum" | 203 | 4732.3 | 3334.5 | 11.505 | 150.08 | - | All/Rejected/Pt | "Track Transverse Momentum" | 203 | 83.395 | 70.616 | 12.407 | 163.25 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 4182 | 1.5133 | 0.56658 | 0.67475 | -0.16904 | - | All/Selected/CloneDist | "Track Clone Distance" | 4182 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 4182 | 0.049362 | 0.078799 | 2.3337 | 5.1496 | - | All/Selected/P | "Track Momentum" | 4182 | 12209 | 12912 | 2.6873 | 9.2449 | - | All/Selected/Pt | "Track Transverse Momentum" | 4182 | 622.73 | 666.86 | 4.0016 | 25.296 | - | nRichTracks | "# Rich Tracks / Event" | 50 | 83.64 | 30.625 | 0.34565 | -0.48736 | - | nTracks | "# Tracks / Event" | 50 | 87.7 | 32.597 | 0.34612 | -0.53171 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 203 | 0.18403 | 0.11934 | 0.2987 | -1.1965 | + | All/Rejected/P | "Track Momentum" | 203 | 4715.9 | 3341 | 11.447 | 149.14 | + | All/Rejected/Pt | "Track Transverse Momentum" | 203 | 83.088 | 70.773 | 12.338 | 162 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 4184 | 1.5126 | 0.56636 | 0.67462 | -0.16896 | + | All/Selected/CloneDist | "Track Clone Distance" | 4184 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 4184 | 0.049685 | 0.079258 | 2.3206 | 5.0604 | + | All/Selected/P | "Track Momentum" | 4184 | 12194 | 12909 | 2.6896 | 9.2581 | + | All/Selected/Pt | "Track Transverse Momentum" | 4184 | 621.69 | 659.16 | 3.8512 | 23.207 | + | nRichTracks | "# Rich Tracks / Event" | 50 | 83.68 | 30.723 | 0.3373 | -0.51514 | + | nTracks | "# Tracks / Event" | 50 | 87.74 | 32.643 | 0.32758 | -0.57363 | RichRecPixBkgsLong SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsLong" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.086542 | 0.068309 | 0.99452 | 0.57813 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.047657 | 0.037188 | 1.7352 | 4.6032 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.086648 | 0.06854 | 1.0074 | 0.66541 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 133441 | 0.047704 | 0.037201 | 1.7315 | 4.5861 | RichDLLsLong SUCCESS 1D histograms in directory "RICH/RichDLLsLong" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 4182 | -2.3974 | 13.745 | -0.27492 | 0.96537 | - | deuteron/dll | "deuteron DLL" | 4182 | -2.5493 | 13.768 | -0.30371 | 0.98636 | - | electron/dll | "electron DLL" | 4182 | -11.467 | 12.769 | -0.4107 | 0.90065 | - | kaon/dll | "kaon DLL" | 4182 | -3.5555 | 14.45 | -0.23193 | 1.271 | - | muon/dll | "muon DLL" | 4182 | -5.7823 | 8.7471 | -1.4723 | 3.5432 | - | pion/dll | "pion DLL" | 4182 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 4182 | -2.859 | 13.983 | -0.2642 | 1.1107 | + | below_threshold/dll | "below_threshold DLL" | 4184 | -2.3724 | 13.738 | -0.27782 | 0.9687 | + | deuteron/dll | "deuteron DLL" | 4184 | -2.524 | 13.761 | -0.30678 | 0.99122 | + | electron/dll | "electron DLL" | 4184 | -11.488 | 12.783 | -0.41705 | 0.90656 | + | kaon/dll | "kaon DLL" | 4184 | -3.5412 | 14.448 | -0.23095 | 1.2684 | + | muon/dll | "muon DLL" | 4184 | -5.7829 | 8.7489 | -1.4684 | 3.5195 | + | pion/dll | "pion DLL" | 4184 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 4184 | -2.8341 | 13.974 | -0.2654 | 1.1134 | RiTkDetectableYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 134 | 25.958 | 15.854 | -0.02163 | -1.0809 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3398 | 55.689 | 1.8896 | -7.5819 | 105.26 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1131 | 31.934 | 16.566 | -0.41404 | -1.0615 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3319 | 45.224 | 12.133 | -1.6733 | 2.4123 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3089 | 41.753 | 14.293 | -1.2224 | 0.58639 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 474 | 28.206 | 16.125 | -0.074152 | -1.2215 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 81 | 12.889 | 8.457 | 0.23711 | -1.0867 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2338 | 33.901 | 2.2116 | 0.15214 | -0.34355 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 971 | 17.873 | 9.3085 | -0.33116 | -1.0807 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2294 | 30.51 | 3.3263 | -1.974 | 6.6205 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2239 | 28.402 | 4.8511 | -1.6995 | 3.6019 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 361 | 14.893 | 9.2537 | 0.0086885 | -1.2201 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 133 | 25.777 | 15.775 | -0.01441 | -1.0696 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 3402 | 55.69 | 1.8913 | -7.5485 | 104.77 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1131 | 31.936 | 16.553 | -0.41706 | -1.0587 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 3322 | 45.215 | 12.117 | -1.664 | 2.3771 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 3092 | 41.718 | 14.326 | -1.2184 | 0.57169 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 474 | 28.14 | 16.082 | -0.071318 | -1.2176 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 80 | 12.763 | 8.4342 | 0.26625 | -1.051 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 2336 | 33.902 | 2.2146 | 0.1497 | -0.3497 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 968 | 17.877 | 9.2934 | -0.33195 | -1.0808 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 2292 | 30.501 | 3.3363 | -1.964 | 6.5325 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 2236 | 28.391 | 4.8636 | -1.696 | 3.5707 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 360 | 14.849 | 9.2292 | 0.0087339 | -1.2206 | RiTkGeomEffsLong SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 134 | 0.65789 | 0.083562 | -1.1787 | 3.629 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 3398 | 0.66512 | 0.039161 | -0.54292 | 2.9003 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1131 | 0.66476 | 0.067839 | -0.72109 | 2.4206 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 3319 | 0.66434 | 0.051443 | -0.60124 | 2.1312 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 3089 | 0.6638 | 0.05478 | -0.49684 | 1.8471 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 474 | 0.6639 | 0.066239 | 0.029268 | 0.1219 | - | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 81 | 0.67658 | 0.060584 | 0.42185 | 0.16455 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 2338 | 0.56597 | 0.18052 | -1.0652 | 0.074757 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 971 | 0.67273 | 0.072597 | -1.1722 | 7.8598 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2294 | 0.57581 | 0.17744 | -1.1805 | 0.43219 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2239 | 0.58949 | 0.16781 | -1.2662 | 0.77807 | - | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 361 | 0.68311 | 0.07483 | -0.37878 | 2.4408 | + | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 133 | 0.65788 | 0.083878 | -1.1739 | 3.5787 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 3402 | 0.66507 | 0.039207 | -0.54289 | 2.8787 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1131 | 0.66477 | 0.067809 | -0.72348 | 2.4283 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 3322 | 0.66431 | 0.05147 | -0.60463 | 2.1304 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 3092 | 0.66377 | 0.054804 | -0.49545 | 1.8334 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 474 | 0.66394 | 0.066234 | 0.027481 | 0.12294 | + | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 80 | 0.6784 | 0.059298 | 0.4745 | 0.20239 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 2336 | 0.56569 | 0.18069 | -1.0623 | 0.064952 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 968 | 0.6728 | 0.072508 | -1.1793 | 7.9396 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 2292 | 0.57547 | 0.17782 | -1.1801 | 0.42805 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 2236 | 0.58935 | 0.16782 | -1.2656 | 0.77622 | + | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 360 | 0.68306 | 0.074734 | -0.38043 | 2.4772 | RiCKResLongTight SUCCESS 1D histograms in directory "RICH/RiCKResLongTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 78284 |-0.00043681 | 0.0020461 | -0.27239 | -0.57815 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 140550 |-0.00036618 | 0.0020376 | -0.28678 | -0.51586 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 140550 | 3.1688 | 1.8086 | -0.028409 | -1.1758 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 140550 | 0.047202 | 0.0061371 | -1.1268 | 0.25506 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 62266 |-0.00027706 | 0.0020232 | -0.30402 | -0.43403 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 28320 |-5.0343e-05 | 0.0011469 | 0.050722 | -0.60676 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 30203 |-9.2406e-05 | 0.0011557 | 0.038621 | -0.63484 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 58523 |-7.1741e-05 | 0.0011516 | 0.044055 | -0.6203 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 58523 | 3.1132 | 1.7956 | 0.022226 | -1.2002 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 58523 | 0.02641 | 0.0046663 | -1.5217 | 1.6897 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 78051 | -0.0004325 | 0.002046 | -0.2738 | -0.57487 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 140069 |-0.00036486 | 0.0020376 | -0.28795 | -0.51487 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 140069 | 3.1686 | 1.8086 | -0.028047 | -1.176 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 140069 | 0.0472 | 0.0061342 | -1.1243 | 0.2502 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 62018 |-0.00027966 | 0.0020238 | -0.30494 | -0.43616 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 28179 |-4.9568e-05 | 0.0011475 | 0.050501 | -0.60913 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 30202 | -9.244e-05 | 0.0011557 | 0.038734 | -0.6348 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 58381 |-7.1442e-05 | 0.0011519 | 0.044011 | -0.62146 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 58381 | 3.1134 | 1.7957 | 0.022198 | -1.2003 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 58381 | 0.026406 | 0.0046704 | -1.5195 | 1.6794 | RiCKResUpstream SUCCESS 1D histograms in directory "RICH/RiCKResUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 38235 |-0.00051419 | 0.0021838 | -0.13731 | -0.78537 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 70541 |-0.00056203 | 0.0022019 | -0.13535 | -0.81996 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 70541 | 3.1406 | 1.8047 | 0.0038462 | -1.1956 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 70541 | 0.0447 | 0.0067191 | -0.43051 | -0.99634 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 32306 |-0.00061928 | 0.002222 | -0.13064 | -0.86197 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 39342 |-0.00051844 | 0.0021865 | -0.13888 | -0.79208 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 71781 |-0.00056322 | 0.0022033 | -0.136 | -0.82367 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 71781 | 3.1442 | 1.8031 |-0.00036543 | -1.1937 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 71781 | 0.044708 | 0.0067177 | -0.43142 | -0.99318 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 32439 |-0.00061837 | 0.0022226 | -0.1304 | -0.863 | RiTkMaterialUpstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialUpstream" : 3 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 447 | 0.038648 | 0.0036388 | 11.532 | 154.66 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 447 | 3.4794e-05 | 2.6883e-06 | 14.414 | 209.92 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 447 | 1070.7 | 16.533 | -0.16578 | -1.2778 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 450 | 0.038645 | 0.0036264 | 11.575 | 155.8 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 450 | 3.4793e-05 | 2.6794e-06 | 14.463 | 211.36 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 450 | 1070.8 | 16.554 | -0.17152 | -1.276 | RiTkSignalYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 39 | 16.782 | 11.481 | 0.16468 | -1.1125 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 660 | 37.655 | 2.9123 | 0.027079 | 0.62005 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 260 | 23.762 | 10.433 | -0.62143 | -0.61503 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 659 | 30.895 | 7.6093 | -1.2859 | 1.2998 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 625 | 27.511 | 10.477 | -1.011 | -0.0075001 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 136 | 18.413 | 11.285 | -0.10048 | -1.1173 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 40 | 17.196 | 11.675 | 0.12708 | -1.1866 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 665 | 37.649 | 2.9093 | 0.033754 | 0.62194 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 264 | 23.753 | 10.502 | -0.63247 | -0.60777 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 664 | 30.917 | 7.5852 | -1.2946 | 1.3332 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 630 | 27.539 | 10.458 | -1.0209 | 0.016154 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 138 | 18.555 | 11.289 | -0.11412 | -1.1097 | RiTkEmittedYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 40 | 280.58 | 193.73 | 0.19587 | -1.1877 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 660 | 617.79 | 24.294 | -0.11902 | 4.4163 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 262 | 391.7 | 166.31 | -0.72798 | -0.52037 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 660 | 507.46 | 118.52 | -1.477 | 1.8476 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 634 | 451.23 | 173.26 | -1.1362 | 0.14791 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 139 | 304.72 | 184.29 | -0.15958 | -1.1621 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 41 | 286.87 | 195.86 | 0.14578 | -1.2395 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 665 | 617.78 | 24.206 | -0.1194 | 4.4641 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 266 | 391.58 | 167.54 | -0.7311 | -0.51798 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 665 | 508.01 | 118.36 | -1.4818 | 1.8681 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 639 | 452.03 | 173.03 | -1.1421 | 0.166 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 141 | 307.22 | 184.61 | -0.17116 | -1.1532 | RichTkSelEffUpstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffUpstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 94 | 1.158 | 0.49601 | 0.95945 | 0.95885 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 94 | 1.1596 | 0.49611 | 0.9495 | 0.94338 | | All/Rejected/CloneDist | "Track Clone Distance" | 94 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 94 | 0.054254 | 0.084621 | 2.2076 | 3.9712 | - | All/Rejected/P | "Track Momentum" | 94 | 44892 | 22094 | 0.88306 | -0.31866 | - | All/Rejected/Pt | "Track Transverse Momentum" | 94 | 1039.7 | 725.58 | 2.7718 | 9.9467 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 660 | 1.1929 | 0.58202 | 0.92499 | 0.58696 | - | All/Selected/CloneDist | "Track Clone Distance" | 660 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 660 | 0.064437 | 0.080317 | 2.2053 | 4.5387 | - | All/Selected/P | "Track Momentum" | 660 | 11230 | 11883 | 2.7472 | 10.511 | - | All/Selected/Pt | "Track Transverse Momentum" | 660 | 1035.9 | 933.09 | 3.6024 | 16.034 | - | nRichTracks | "# Rich Tracks / Event" | 50 | 13.2 | 6.1123 | 0.54168 | -0.48884 | - | nTracks | "# Tracks / Event" | 50 | 15.08 | 6.9306 | 0.57227 | -0.4971 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 94 | 0.055392 | 0.085128 | 2.1478 | 3.7127 | + | All/Rejected/P | "Track Momentum" | 94 | 44825 | 22031 | 0.89245 | -0.28555 | + | All/Rejected/Pt | "Track Transverse Momentum" | 94 | 1038.8 | 725.65 | 2.7747 | 9.9559 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 665 | 1.1912 | 0.58479 | 0.91738 | 0.57622 | + | All/Selected/CloneDist | "Track Clone Distance" | 665 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 665 | 0.064995 | 0.080045 | 2.1829 | 4.4744 | + | All/Selected/P | "Track Momentum" | 665 | 11245 | 11866 | 2.7415 | 10.495 | + | All/Selected/Pt | "Track Transverse Momentum" | 665 | 1048.3 | 966.99 | 3.5848 | 15.548 | + | nRichTracks | "# Rich Tracks / Event" | 50 | 13.3 | 6.338 | 0.66034 | -0.22185 | + | nTracks | "# Tracks / Event" | 50 | 15.18 | 7.1462 | 0.65983 | -0.31553 | RichRecPixBkgsUpstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsUpstream" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.11034 | 0.089804 | 0.92444 | 0.24006 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 230802 | 0.11023 | 0.089559 | 0.92042 | 0.20506 | RichDLLsUpstream SUCCESS 1D histograms in directory "RICH/RichDLLsUpstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 660 | -0.035306 | 13.434 | -0.46234 | 0.99916 | - | deuteron/dll | "deuteron DLL" | 660 | 0.0028064 | 13.369 | -0.49042 | 1.0468 | - | electron/dll | "electron DLL" | 660 | -11.071 | 12.263 | -0.22613 | 0.66558 | - | kaon/dll | "kaon DLL" | 660 | 0.15033 | 12.941 | -0.63833 | 1.463 | - | muon/dll | "muon DLL" | 660 | -4.0319 | 7.8448 | -0.4733 | 7.4896 | - | pion/dll | "pion DLL" | 660 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 660 | 0.11081 | 13.06 | -0.50255 | 1.1463 | + | below_threshold/dll | "below_threshold DLL" | 665 | -0.0426 | 13.415 | -0.4581 | 0.99222 | + | deuteron/dll | "deuteron DLL" | 665 | 0.0082656 | 13.335 | -0.48684 | 1.0537 | + | electron/dll | "electron DLL" | 665 | -10.959 | 12.337 | -0.214 | 0.64276 | + | kaon/dll | "kaon DLL" | 665 | 0.15234 | 12.892 | -0.63927 | 1.4902 | + | muon/dll | "muon DLL" | 665 | -4.0214 | 7.8311 | -0.48052 | 7.4949 | + | pion/dll | "pion DLL" | 665 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 665 | 0.12572 | 13.011 | -0.50489 | 1.1734 | RiTkDetectableYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 39 | 25.765 | 17.935 | 0.18808 | -1.1609 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 660 | 56.751 | 2.2316 | -0.12958 | 3.9816 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 260 | 35.817 | 15.347 | -0.71961 | -0.53008 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 659 | 46.454 | 11.009 | -1.4414 | 1.6498 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 625 | 41.713 | 15.594 | -1.1485 | 0.20244 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 136 | 28 | 16.956 | -0.18064 | -1.1339 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 40 | 26.354 | 18.127 | 0.13986 | -1.2266 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 665 | 56.749 | 2.2236 | -0.12975 | 4.027 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 264 | 35.801 | 15.47 | -0.72488 | -0.52659 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 664 | 46.505 | 10.994 | -1.4463 | 1.6706 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 630 | 41.784 | 15.573 | -1.1536 | 0.21892 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 138 | 28.231 | 16.984 | -0.19151 | -1.1239 | RiTkGeomEffsUpstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 39 | 0.66231 | 0.063949 | 0.65583 | -0.39363 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 660 | 0.66351 | 0.043958 | -0.35352 | 0.42658 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 260 | 0.65978 | 0.059706 | -0.46191 | 1.5761 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 659 | 0.66537 | 0.050676 | -0.44507 | 0.76891 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 625 | 0.66033 | 0.058004 | -1.8767 | 17.409 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 136 | 0.66272 | 0.060091 | -0.20631 | 0.10949 | + | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 40 | 0.65915 | 0.065839 | 0.58915 | -0.38714 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 665 | 0.66342 | 0.043884 | -0.34528 | 0.42562 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 264 | 0.66009 | 0.059424 | -0.47414 | 1.6055 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 664 | 0.6652 | 0.050508 | -0.43622 | 0.77922 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 630 | 0.65982 | 0.058246 | -1.8364 | 16.904 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 138 | 0.66245 | 0.059657 | -0.19553 | 0.1506 | RiCKResUpstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResUpstreamTight" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 22228 |-0.00057917 | 0.0021516 | -0.16776 | -0.7669 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 40643 |-0.00062774 | 0.0021822 | -0.14753 | -0.82159 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 40643 | 3.1305 | 1.8046 | 0.0099648 | -1.1941 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 40643 | 0.044635 | 0.006684 | -0.4108 | -1.008 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 18415 | -0.0006838 | 0.0022157 | -0.12194 | -0.88027 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 22228 | -0.000579 | 0.0021516 | -0.16744 | -0.76578 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 40781 |-0.00062653 | 0.002183 | -0.14718 | -0.82207 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 40781 | 3.1317 | 1.8048 | 0.0081545 | -1.1948 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 40781 | 0.044632 | 0.0066885 | -0.41017 | -1.0092 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 18553 |-0.00068098 | 0.002217 | -0.1218 | -0.88195 | RiTkSignalYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 16 | 44032 | 9426.9 | 3.6277 | 4.6545 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 648 | 7270.9 | 7772.9 | 43.842 | 244.64 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 648 | 7264.8 | 7775.3 | 43.825 | 244.49 | | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 141 | 18468 | 10341 | 11.533 | 38.466 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 600 | 7714 | 7913.6 | 43.313 | 235.84 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 524 | 8509.9 | 8170.3 | 38.246 | 199.06 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 600 | 7707.3 | 7916.5 | 43.288 | 235.64 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 523 | 8514.2 | 8177.6 | 38.134 | 198.28 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 54 | 28248 | 11205 | 5.4311 | 12.195 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 7 | 75771 | 16686 | 2.3729 | 0.48705 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 14974 | 11164 | 20.387 | 111.05 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 91 | 27970 | 13407 | 9.9042 | 41.225 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15217 | 11212 | 20.664 | 112.07 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15353 | 11226 | 21.076 | 114.19 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 15007 | 11153 | 20.418 | 111.32 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 92 | 27838 | 13388 | 10.031 | 41.881 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15251 | 11200 | 20.696 | 112.35 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15387 | 11214 | 21.102 | 114.45 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 31 | 43283 | 14547 | 7.0299 | 22.808 | RiTkEmittedYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 17 | 43389 | 9419.6 | 3.8041 | 5.2754 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 648 | 7270.9 | 7772.9 | 44.086 | 247.02 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 648 | 7264.8 | 7775.3 | 44.067 | 246.85 | | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 144 | 18268 | 10321 | 11.841 | 40.068 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 604 | 7675.5 | 7901.3 | 43.861 | 240.35 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 528 | 8464.6 | 8155.6 | 38.675 | 202.68 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 604 | 7668.9 | 7904.2 | 43.837 | 240.15 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 527 | 8468.9 | 8162.8 | 38.561 | 201.88 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 55 | 28041 | 11198 | 5.7106 | 13.165 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 7 | 75771 | 16686 | 2.1941 | 0.27539 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 800 | 8204.4 | 8879.4 | 51.022 | 363.37 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 96 | 27353 | 13294 | 10.372 | 43.84 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 588 | 10268 | 9559.7 | 41.849 | 274.16 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 462 | 12025 | 10109 | 33.634 | 206.46 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 800 | 8217.2 | 8883.8 | 50.902 | 362.31 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 97 | 27235 | 13271 | 10.503 | 44.538 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 588 | 10285 | 9561.5 | 41.777 | 273.61 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 462 | 12047 | 10107 | 33.603 | 206.28 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 32 | 42815 | 14490 | 7.1224 | 23.381 | RichTkSelEffDownstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffDownstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 841 | 1.7247 | 0.69617 | -1.0207 | 1.1496 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 841 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 841 | 0.091049 | 0.11111 | 3.9147 | 5.7317 | - | All/effVP | "RICH Track Sel. Eff. V P" | 841 | 7945.8 | 8765.8 | 85.921 | 635.33 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 841 | 491.9 | 588.99 | 82.668 | 518.84 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 842 | 1.7244 | 0.69574 | -1.0203 | 1.1578 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 842 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 842 | 0.091479 | 0.11109 | 3.8853 | 5.6567 | + | All/effVP | "RICH Track Sel. Eff. V P" | 842 | 7951.1 | 8767.5 | 85.851 | 634.66 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 842 | 490.92 | 588.75 | 82.836 | 520.21 | RiTkDetectableYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 16 | 44032 | 9426.9 | 3.5395 | 4.4875 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 648 | 7270.9 | 7772.9 | 44.086 | 247.02 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 648 | 7264.8 | 7775.3 | 44.067 | 246.85 | | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 141 | 18468 | 10341 | 11.623 | 39.063 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 600 | 7714 | 7913.6 | 43.587 | 238.33 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 524 | 8509.9 | 8170.3 | 38.394 | 200.69 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 600 | 7707.3 | 7916.5 | 43.563 | 238.13 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 523 | 8514.2 | 8177.6 | 38.279 | 199.89 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 54 | 28248 | 11205 | 5.6485 | 12.914 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 7 | 75771 | 16686 | 2.3088 | 0.40913 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 14974 | 11164 | 18.722 | 101.66 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 91 | 27970 | 13407 | 9.8196 | 40.856 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15217 | 11212 | 19.419 | 104.98 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15353 | 11226 | 20.173 | 108.93 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 310 | 15007 | 11153 | 18.734 | 101.82 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 92 | 27838 | 13388 | 9.9452 | 41.506 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 302 | 15251 | 11200 | 19.435 | 105.17 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 298 | 15387 | 11214 | 20.193 | 109.16 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 31 | 43283 | 14547 | 6.9734 | 22.589 | RiTkSignalYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 134 | 51132 | 14613 | 5.0458 | 9.6202 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3398 | 9755 | 10531 | 83.954 | 518.14 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1131 | 19913 | 13202 | 31.193 | 134.67 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3319 | 9945.9 | 10583 | 85.204 | 522.22 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3089 | 10520 | 10754 | 80.19 | 480.44 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 474 | 30722 | 14752 | 14.488 | 47.02 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 81 | 74737 | 10192 | 2.7219 | 2.567 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2338 | 18418 | 14391 | 27.667 | 114.75 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 971 | 30519 | 15620 | 14.626 | 46.109 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2294 | 18658 | 14423 | 27.785 | 114.63 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2239 | 18971 | 14460 | 27.588 | 113.06 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 361 | 46669 | 15683 | 6.527 | 13.965 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 133 | 51132 | 14615 | 5.0442 | 9.6146 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3402 | 9751.2 | 10529 | 84.02 | 518.67 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1131 | 19918 | 13196 | 31.228 | 134.88 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3322 | 9944.1 | 10582 | 85.248 | 522.57 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3092 | 10517 | 10753 | 80.236 | 480.79 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 474 | 30706 | 14740 | 14.538 | 47.239 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 80 | 74739 | 10194 | 2.7178 | 2.5565 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2336 | 18408 | 14397 | 27.644 | 114.61 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 968 | 30539 | 15628 | 14.581 | 45.919 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2292 | 18648 | 14429 | 27.761 | 114.49 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2236 | 18967 | 14467 | 27.55 | 112.84 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 360 | 46669 | 15684 | 6.5261 | 13.962 | RiTkEmittedYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 140 | 50324 | 14705 | 5.4236 | 10.795 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3398 | 9755 | 10531 | 83.653 | 516.12 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1153 | 19703 | 13160 | 31.686 | 137.6 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3325 | 9931.3 | 10579 | 84.994 | 521.06 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3111 | 10463 | 10737 | 80.458 | 483 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 488 | 30320 | 14713 | 14.863 | 48.607 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 83 | 74280 | 10343 | 2.5978 | 2.3145 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 4245 | 12090 | 12801 | 49.021 | 248.08 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 996 | 30164 | 15581 | 14.677 | 46.256 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3633 | 13690 | 13189 | 44.802 | 215.65 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3127 | 15286 | 13567 | 39.043 | 178.83 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 373 | 46113 | 15697 | 6.6331 | 14.264 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 139 | 50325 | 14707 | 5.4219 | 10.789 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3402 | 9751.2 | 10529 | 83.717 | 516.64 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1153 | 19708 | 13154 | 31.72 | 137.8 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3328 | 9929.6 | 10578 | 85.034 | 521.39 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3114 | 10460 | 10735 | 80.5 | 483.34 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 488 | 30306 | 14701 | 14.912 | 48.828 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 82 | 74281 | 10344 | 2.5963 | 2.3105 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 4247 | 12075 | 12799 | 49.081 | 248.48 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 993 | 30184 | 15590 | 14.634 | 46.072 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3630 | 13686 | 13191 | 44.787 | 215.55 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3123 | 15287 | 13570 | 39.01 | 178.62 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 372 | 46113 | 15698 | 6.6324 | 14.261 | RichTkSelEffLong SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffLong" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 4385 | 1.527 | 0.57235 | 0.76622 | 4.084 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 4385 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 4385 | 0.053002 | 0.08306 | 14.555 | 45.207 | - | All/effVP | "RICH Track Sel. Eff. V P" | 4385 | 11861 | 12726 | 66.591 | 356.75 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 4385 | 629.7 | 667.76 | 217.47 | 1884.5 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 4387 | 1.5264 | 0.57189 | 0.77855 | 4.1244 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 4387 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 4387 | 0.053278 | 0.083454 | 14.285 | 43.964 | + | All/effVP | "RICH Track Sel. Eff. V P" | 4387 | 11847 | 12724 | 66.672 | 357.32 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 4387 | 628.77 | 660.02 | 195.74 | 1635.4 | RiTkDetectableYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 134 | 51132 | 14613 | 5.2054 | 10.13 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3398 | 9755 | 10531 | 83.653 | 516.12 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1131 | 19913 | 13202 | 31.094 | 134.19 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3319 | 9945.9 | 10583 | 84.897 | 520.18 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3089 | 10520 | 10754 | 79.901 | 478.56 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 474 | 30722 | 14752 | 14.446 | 46.753 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 81 | 74737 | 10192 | 2.5908 | 2.2817 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2338 | 18418 | 14391 | 25.786 | 106.24 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 971 | 30519 | 15620 | 14.304 | 44.648 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2294 | 18658 | 14423 | 26.475 | 108.48 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2239 | 18971 | 14460 | 26.589 | 108.2 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 361 | 46669 | 15683 | 6.4087 | 13.535 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 133 | 51132 | 14615 | 5.2036 | 10.125 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 3402 | 9751.2 | 10529 | 83.717 | 516.64 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1131 | 19918 | 13196 | 31.129 | 134.39 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 3322 | 9944.1 | 10582 | 84.937 | 520.5 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 3092 | 10517 | 10753 | 79.944 | 478.9 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 474 | 30706 | 14740 | 14.494 | 46.97 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 80 | 74739 | 10194 | 2.5892 | 2.2775 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 2336 | 18408 | 14397 | 25.767 | 106.12 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 968 | 30539 | 15628 | 14.261 | 44.467 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 2292 | 18648 | 14429 | 26.454 | 108.35 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 2236 | 18967 | 14467 | 26.554 | 108.01 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 360 | 46669 | 15684 | 6.408 | 13.532 | RiTkSignalYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 39 | 49592 | 15216 | 4.5172 | 8.2566 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 660 | 11230 | 11883 | 26.473 | 133.58 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 260 | 21600 | 13502 | 13.729 | 53.898 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 659 | 11244 | 11886 | 28.024 | 141.44 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 625 | 11731 | 12020 | 27.087 | 134.5 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 136 | 30044 | 14315 | 9.7678 | 31.81 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 40 | 49586 | 15221 | 4.5184 | 8.2547 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 665 | 11245 | 11866 | 26.564 | 134.23 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 264 | 21545 | 13456 | 13.918 | 54.906 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 664 | 11259 | 11870 | 28.123 | 142.14 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 630 | 11743 | 12002 | 27.203 | 135.28 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 138 | 30021 | 14261 | 9.8906 | 32.389 | RiTkEmittedYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 40 | 49137 | 15216 | 4.6618 | 8.7541 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 660 | 11230 | 11883 | 26.717 | 134.98 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 262 | 21502 | 13495 | 13.972 | 55.063 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 660 | 11230 | 11883 | 28.294 | 143.04 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 634 | 11599 | 11984 | 27.709 | 138.38 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 139 | 29753 | 14281 | 9.9232 | 32.758 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 41 | 49131 | 15222 | 4.6615 | 8.7496 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 665 | 11245 | 11866 | 26.801 | 135.59 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 266 | 21448 | 13449 | 14.162 | 56.081 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 665 | 11245 | 11866 | 28.384 | 143.69 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 639 | 11613 | 11966 | 27.81 | 139.09 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 141 | 29733 | 14229 | 10.046 | 33.342 | RichTkSelEffUpstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 754 | 1.1885 | 0.57212 | 4.1136 | 11.445 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 754 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 754 | 0.063137 | 0.08095 | 13.158 | 40.912 | - | All/effVP | "RICH Track Sel. Eff. V P" | 754 | 15061 | 17175 | 6.3321 | 17.856 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 754 | 1036.4 | 910.09 | 59.516 | 350.3 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 759 | 1.1872 | 0.57465 | 4.0711 | 11.224 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 759 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 759 | 0.063775 | 0.080772 | 13.149 | 40.935 | + | All/effVP | "RICH Track Sel. Eff. V P" | 759 | 15046 | 17118 | 6.8753 | 19.576 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 759 | 1047.2 | 940.8 | 59.388 | 338.86 | RiTkDetectableYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 39 | 49592 | 15216 | 4.5931 | 8.476 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 660 | 11230 | 11883 | 26.717 | 134.98 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 260 | 21600 | 13502 | 13.925 | 54.781 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 659 | 11244 | 11886 | 28.27 | 142.86 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 625 | 11731 | 12020 | 27.28 | 135.61 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 136 | 30044 | 14315 | 9.7582 | 31.961 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 40 | 49586 | 15221 | 4.5928 | 8.4711 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 665 | 11245 | 11866 | 26.801 | 135.59 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 264 | 21545 | 13456 | 14.115 | 55.802 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 664 | 11259 | 11870 | 28.361 | 143.51 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 630 | 11743 | 12002 | 27.385 | 136.34 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 138 | 30021 | 14261 | 9.8823 | 32.548 | RichRecPixelClusters SUCCESS Booked 2 Histogram(s) : 1D=2 RichRecPixelQC SUCCESS Booked 6 Histogram(s) : 1D=6 RichDecodingErrors SUCCESS Booked 352 Histogram(s) : 2D=1 1DProf=351 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref index d85751cde50..e29a7f75c7e 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref @@ -1,47 +1,47 @@ TrackEventFitter INFO Fitting performance : 100.00 % VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 23012 tracks including 236 ghosts [ 1.03 %], Event average 0.84 % **** -VeloTrackChecker INFO 01_velo : 9880 from 10080 [ 98.02 %] 139 clones [ 1.39 %], purity: 99.74 %, hitEff: 96.78 %, hitEffFirst3: 96.97 %, hitEffLast: 96.35 % -VeloTrackChecker INFO 02_long : 5686 from 5731 [ 99.21 %] 61 clones [ 1.06 %], purity: 99.83 %, hitEff: 97.60 %, hitEffFirst3: 97.82 %, hitEffLast: 97.28 % -VeloTrackChecker INFO 03_long_P>5GeV : 3628 from 3640 [ 99.67 %] 19 clones [ 0.52 %], purity: 99.86 %, hitEff: 98.39 %, hitEffFirst3: 98.50 %, hitEffLast: 98.21 % -VeloTrackChecker INFO 04_long_strange : 275 from 282 [ 97.52 %] 2 clones [ 0.72 %], purity: 99.36 %, hitEff: 97.74 %, hitEffFirst3: 98.19 %, hitEffLast: 95.58 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.65 %, hitEffFirst3: 99.28 %, hitEffLast: 96.09 % -VeloTrackChecker INFO 06_long_fromB : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 81.59 %, hitEffFirst3: 83.33 %, hitEffLast: 80.71 % -VeloTrackChecker INFO 07_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % -VeloTrackChecker INFO 08_long_electrons : 395 from 407 [ 97.05 %] 9 clones [ 2.23 %], purity: 97.61 %, hitEff: 93.67 %, hitEffFirst3: 90.92 %, hitEffLast: 94.31 % +VeloTrackChecker INFO **** Velo 22831 tracks including 204 ghosts [ 0.89 %], Event average 0.74 % **** +VeloTrackChecker INFO 01_velo : 9861 from 10080 [ 97.83 %] 147 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.52 %, hitEffFirst3: 96.97 %, hitEffLast: 95.86 % +VeloTrackChecker INFO 02_long : 5679 from 5731 [ 99.09 %] 63 clones [ 1.10 %], purity: 99.83 %, hitEff: 97.34 %, hitEffFirst3: 97.81 %, hitEffLast: 96.83 % +VeloTrackChecker INFO 03_long_P>5GeV : 3626 from 3640 [ 99.62 %] 20 clones [ 0.55 %], purity: 99.86 %, hitEff: 98.17 %, hitEffFirst3: 98.50 %, hitEffLast: 97.82 % +VeloTrackChecker INFO 04_long_strange : 272 from 282 [ 96.45 %] 2 clones [ 0.73 %], purity: 99.35 %, hitEff: 97.43 %, hitEffFirst3: 98.18 %, hitEffLast: 95.12 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.35 %, hitEffFirst3: 99.28 %, hitEffLast: 95.49 % +VeloTrackChecker INFO 06_long_fromB : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 80.40 %, hitEffFirst3: 83.33 %, hitEffLast: 78.33 % +VeloTrackChecker INFO 07_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % +VeloTrackChecker INFO 08_long_electrons : 393 from 407 [ 96.56 %] 9 clones [ 2.24 %], purity: 97.61 %, hitEff: 94.09 %, hitEffFirst3: 92.04 %, hitEffLast: 94.23 % VeloTrackChecker INFO 09_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % -VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % -VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % +VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % +VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % VeloTrackChecker INFO VeloFullTrackChecker INFO Results -VeloFullTrackChecker INFO **** VeloFull 23012 tracks including 236 ghosts [ 1.03 %], Event average 0.84 % **** -VeloFullTrackChecker INFO 01_notElectron_Velo : 9880 from 10080 [ 98.02 %] 139 clones [ 1.39 %], purity: 99.74 %, hitEff: 96.78 %, hitEffFirst3: 96.97 %, hitEffLast: 96.35 % -VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9880 from 10080 [ 98.02 %] 139 clones [ 1.39 %], purity: 99.74 %, hitEff: 96.78 %, hitEffFirst3: 96.97 %, hitEffLast: 96.35 % -VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9880 from 10080 [ 98.02 %] 139 clones [ 1.39 %], purity: 99.74 %, hitEff: 96.78 %, hitEffFirst3: 96.97 %, hitEffLast: 96.35 % -VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5686 from 5731 [ 99.21 %] 61 clones [ 1.06 %], purity: 99.83 %, hitEff: 97.60 %, hitEffFirst3: 97.82 %, hitEffLast: 97.28 % -VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3628 from 3640 [ 99.67 %] 19 clones [ 0.52 %], purity: 99.86 %, hitEff: 98.39 %, hitEffFirst3: 98.50 %, hitEffLast: 98.21 % -VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5686 from 5731 [ 99.21 %] 61 clones [ 1.06 %], purity: 99.83 %, hitEff: 97.60 %, hitEffFirst3: 97.82 %, hitEffLast: 97.28 % -VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5686 from 5731 [ 99.21 %] 61 clones [ 1.06 %], purity: 99.83 %, hitEff: 97.60 %, hitEffFirst3: 97.82 %, hitEffLast: 97.28 % -VeloFullTrackChecker INFO 09_notElectron_Long_FromB_Eta25 : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 81.59 %, hitEffFirst3: 83.33 %, hitEffLast: 80.71 % -VeloFullTrackChecker INFO 10_notElectron_Long_FromB_Eta25 p>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % +VeloFullTrackChecker INFO **** VeloFull 22831 tracks including 204 ghosts [ 0.89 %], Event average 0.74 % **** +VeloFullTrackChecker INFO 01_notElectron_Velo : 9861 from 10080 [ 97.83 %] 147 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.52 %, hitEffFirst3: 96.97 %, hitEffLast: 95.86 % +VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9861 from 10080 [ 97.83 %] 147 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.52 %, hitEffFirst3: 96.97 %, hitEffLast: 95.86 % +VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9861 from 10080 [ 97.83 %] 147 clones [ 1.47 %], purity: 99.73 %, hitEff: 96.52 %, hitEffFirst3: 96.97 %, hitEffLast: 95.86 % +VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5679 from 5731 [ 99.09 %] 63 clones [ 1.10 %], purity: 99.83 %, hitEff: 97.34 %, hitEffFirst3: 97.81 %, hitEffLast: 96.83 % +VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3626 from 3640 [ 99.62 %] 20 clones [ 0.55 %], purity: 99.86 %, hitEff: 98.17 %, hitEffFirst3: 98.50 %, hitEffLast: 97.82 % +VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5679 from 5731 [ 99.09 %] 63 clones [ 1.10 %], purity: 99.83 %, hitEff: 97.34 %, hitEffFirst3: 97.81 %, hitEffLast: 96.83 % +VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5679 from 5731 [ 99.09 %] 63 clones [ 1.10 %], purity: 99.83 %, hitEff: 97.34 %, hitEffFirst3: 97.81 %, hitEffLast: 96.83 % +VeloFullTrackChecker INFO 09_notElectron_Long_FromB_Eta25 : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 80.40 %, hitEffFirst3: 83.33 %, hitEffLast: 78.33 % +VeloFullTrackChecker INFO 10_notElectron_Long_FromB_Eta25 p>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % VeloFullTrackChecker INFO 11_notElectron_Long_FromB_Eta25 p<5GeV : 4 from 4 [100.00 %] 1 clones [20.00 %], purity:100.00 %, hitEff: 70.95 %, hitEffFirst3: 73.33 %, hitEffLast: 70.00 % -VeloFullTrackChecker INFO 12_notElectron_Long_FromB_Eta25 p>3GeV pt>400MeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % -VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 72 from 73 [ 98.63 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.22 %, hitEffFirst3: 96.76 %, hitEffLast: 98.11 % -VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 42 from 42 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.45 %, hitEffFirst3: 97.62 %, hitEffLast: 99.52 % -VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 30 from 31 [ 96.77 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.49 %, hitEffFirst3: 95.56 %, hitEffLast: 96.06 % -VeloFullTrackChecker INFO 16_notElectron_Long_FromD_Eta25 p>3GeV pt>400MeV : 40 from 41 [ 97.56 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.87 %, hitEffFirst3: 98.33 %, hitEffLast: 99.50 % -VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 275 from 282 [ 97.52 %] 2 clones [ 0.72 %], purity: 99.36 %, hitEff: 97.74 %, hitEffFirst3: 98.19 %, hitEffLast: 95.58 % -VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.65 %, hitEffFirst3: 99.28 %, hitEffLast: 96.09 % -VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 136 from 141 [ 96.45 %] 2 clones [ 1.45 %], purity: 99.23 %, hitEff: 96.83 %, hitEffFirst3: 97.10 %, hitEffLast: 95.07 % -VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 86 from 88 [ 97.73 %] 1 clones [ 1.15 %], purity: 98.77 %, hitEff: 97.78 %, hitEffFirst3: 97.70 %, hitEffLast: 97.22 % -VeloFullTrackChecker INFO 21_Electron_Velo : 1494 from 2115 [ 70.64 %] 106 clones [ 6.62 %], purity: 97.90 %, hitEff: 82.86 %, hitEffFirst3: 78.67 %, hitEffLast: 84.29 % -VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1494 from 2115 [ 70.64 %] 106 clones [ 6.62 %], purity: 97.90 %, hitEff: 82.86 %, hitEffFirst3: 78.67 %, hitEffLast: 84.29 % -VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1494 from 2115 [ 70.64 %] 106 clones [ 6.62 %], purity: 97.90 %, hitEff: 82.86 %, hitEffFirst3: 78.67 %, hitEffLast: 84.29 % -VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 395 from 407 [ 97.05 %] 9 clones [ 2.23 %], purity: 97.61 %, hitEff: 93.67 %, hitEffFirst3: 90.92 %, hitEffLast: 94.31 % -VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 201 from 205 [ 98.05 %] 2 clones [ 0.99 %], purity: 97.57 %, hitEff: 95.27 %, hitEffFirst3: 93.60 %, hitEffLast: 94.89 % -VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 194 from 202 [ 96.04 %] 7 clones [ 3.48 %], purity: 97.65 %, hitEff: 92.05 %, hitEffFirst3: 88.23 %, hitEffLast: 93.73 % -VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 75 from 76 [ 98.68 %] 0 clones [ 0.00 %], purity: 98.99 %, hitEff: 95.67 %, hitEffFirst3: 94.22 %, hitEffLast: 96.72 % +VeloFullTrackChecker INFO 12_notElectron_Long_FromB_Eta25 p>3GeV pt>400MeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % +VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 71 from 73 [ 97.26 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.20 %, hitEffFirst3: 97.18 %, hitEffLast: 97.82 % +VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 42 from 42 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.72 %, hitEffFirst3: 97.62 %, hitEffLast: 98.13 % +VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 29 from 31 [ 93.55 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 96.45 %, hitEffFirst3: 96.55 %, hitEffLast: 97.35 % +VeloFullTrackChecker INFO 16_notElectron_Long_FromD_Eta25 p>3GeV pt>400MeV : 40 from 41 [ 97.56 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.46 %, hitEffFirst3: 98.33 %, hitEffLast: 98.67 % +VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 272 from 282 [ 96.45 %] 2 clones [ 0.73 %], purity: 99.35 %, hitEff: 97.43 %, hitEffFirst3: 98.18 %, hitEffLast: 95.12 % +VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.35 %, hitEffFirst3: 99.28 %, hitEffLast: 95.49 % +VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 133 from 141 [ 94.33 %] 2 clones [ 1.48 %], purity: 99.21 %, hitEff: 96.48 %, hitEffFirst3: 97.04 %, hitEffLast: 94.76 % +VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 86 from 88 [ 97.73 %] 1 clones [ 1.15 %], purity: 98.77 %, hitEff: 97.38 %, hitEffFirst3: 97.70 %, hitEffLast: 96.49 % +VeloFullTrackChecker INFO 21_Electron_Velo : 1486 from 2115 [ 70.26 %] 103 clones [ 6.48 %], purity: 97.93 %, hitEff: 82.96 %, hitEffFirst3: 79.04 %, hitEffLast: 84.10 % +VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1486 from 2115 [ 70.26 %] 103 clones [ 6.48 %], purity: 97.93 %, hitEff: 82.96 %, hitEffFirst3: 79.04 %, hitEffLast: 84.10 % +VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1486 from 2115 [ 70.26 %] 103 clones [ 6.48 %], purity: 97.93 %, hitEff: 82.96 %, hitEffFirst3: 79.04 %, hitEffLast: 84.10 % +VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 393 from 407 [ 96.56 %] 9 clones [ 2.24 %], purity: 97.61 %, hitEff: 94.09 %, hitEffFirst3: 92.04 %, hitEffLast: 94.23 % +VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 201 from 205 [ 98.05 %] 3 clones [ 1.47 %], purity: 97.81 %, hitEff: 95.11 %, hitEffFirst3: 93.79 %, hitEffLast: 94.55 % +VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 192 from 202 [ 95.05 %] 6 clones [ 3.03 %], purity: 97.40 %, hitEff: 93.03 %, hitEffFirst3: 90.24 %, hitEffLast: 93.89 % +VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 76 from 76 [100.00 %] 2 clones [ 2.56 %], purity: 98.89 %, hitEff: 94.19 %, hitEffFirst3: 92.31 %, hitEffLast: 95.26 % VeloFullTrackChecker INFO 29_Electron_Long_FromB_Eta25 : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 30_Electron_Long_FromB_Eta25 p>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 32_Electron_Long_FromB_Eta25 p>3GeV pt>400MeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % @@ -51,25 +51,25 @@ VeloFullTrackChecker INFO 35_Electron_Long_FromD_Eta25 p<5Ge VeloFullTrackChecker INFO 36_Electron_Long_FromD_Eta25 p>3GeV pt>400MeV : 2 from 2 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 78.33 %, hitEffFirst3: 66.67 %, hitEffLast: 92.86 % VeloFullTrackChecker INFO MatchTrackChecker INFO Results -MatchTrackChecker INFO **** Match 6648 tracks including 1230 ghosts [18.50 %], Event average 14.10 % **** -MatchTrackChecker INFO 01_long : 4759 from 5731 [ 83.04 %] 22 clones [ 0.46 %], purity: 99.36 %, hitEff: 95.30 % -MatchTrackChecker INFO 02_long_P>5GeV : 3249 from 3640 [ 89.26 %] 8 clones [ 0.25 %], purity: 99.52 %, hitEff: 97.06 % -MatchTrackChecker INFO 03_long_strange : 207 from 282 [ 73.40 %] 0 clones [ 0.00 %], purity: 98.92 %, hitEff: 94.83 % +MatchTrackChecker INFO **** Match 6644 tracks including 1230 ghosts [18.51 %], Event average 14.11 % **** +MatchTrackChecker INFO 01_long : 4753 from 5731 [ 82.93 %] 24 clones [ 0.50 %], purity: 99.36 %, hitEff: 95.31 % +MatchTrackChecker INFO 02_long_P>5GeV : 3246 from 3640 [ 89.18 %] 9 clones [ 0.28 %], purity: 99.52 %, hitEff: 97.06 % +MatchTrackChecker INFO 03_long_strange : 205 from 282 [ 72.70 %] 0 clones [ 0.00 %], purity: 98.93 %, hitEff: 94.81 % MatchTrackChecker INFO 04_long_strange_P>5GeV : 119 from 141 [ 84.40 %] 0 clones [ 0.00 %], purity: 99.10 %, hitEff: 97.09 % MatchTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.96 %, hitEff: 95.84 % MatchTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 97.71 % -MatchTrackChecker INFO 07_long_electrons : 233 from 407 [ 57.25 %] 3 clones [ 1.27 %], purity: 96.92 %, hitEff: 93.41 % +MatchTrackChecker INFO 07_long_electrons : 232 from 407 [ 57.00 %] 4 clones [ 1.69 %], purity: 96.98 %, hitEff: 93.31 % MatchTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 97.71 % MatchTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 97.71 % MatchTrackChecker INFO MatchUTHitsChecker INFO Results -MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#6/OutputTracksName **** 1230 ghost, 2.12 UT per track -MatchUTHitsChecker INFO 01_long : 4781 tr 3.84 from 4.04 mcUT [ 95.1 %] 0.10 ghost hits on real tracks [ 2.4 %] -MatchUTHitsChecker INFO 01_long >3UT : 4726 tr 3.88 from 4.06 mcUT [ 95.5 %] 0.09 ghost hits on real tracks [ 2.3 %] -MatchUTHitsChecker INFO 02_long_P>5GeV : 3257 tr 3.85 from 4.02 mcUT [ 95.9 %] 0.06 ghost hits on real tracks [ 1.6 %] -MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 3203 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.06 ghost hits on real tracks [ 1.4 %] +MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#6/OutputTracksName **** 1230 ghost, 2.11 UT per track +MatchUTHitsChecker INFO 01_long : 4777 tr 3.84 from 4.04 mcUT [ 95.1 %] 0.10 ghost hits on real tracks [ 2.4 %] +MatchUTHitsChecker INFO 01_long >3UT : 4723 tr 3.88 from 4.06 mcUT [ 95.5 %] 0.09 ghost hits on real tracks [ 2.3 %] +MatchUTHitsChecker INFO 02_long_P>5GeV : 3255 tr 3.86 from 4.02 mcUT [ 96.0 %] 0.06 ghost hits on real tracks [ 1.6 %] +MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 3202 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.06 ghost hits on real tracks [ 1.4 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] @@ -102,61 +102,61 @@ DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV : DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV >3UT : 257 tr 4.02 from 4.05 mcUT [ 99.0 %] 0.03 ghost hits on real tracks [ 0.8 %] DownstreamUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 3754 tracks including 235 ghosts [ 6.26 %], Event average 4.53 % **** -UpstreamTrackChecker INFO 01_velo : 3335 from 10080 [ 33.09 %] 7 clones [ 0.21 %], purity: 99.66 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 02_velo+UT : 3329 from 8769 [ 37.96 %] 7 clones [ 0.21 %], purity: 99.68 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2582 from 4394 [ 58.76 %] 7 clones [ 0.27 %], purity: 99.75 %, hitEff: 99.43 % -UpstreamTrackChecker INFO 04_velo+notLong : 602 from 4349 [ 13.84 %] 1 clones [ 0.17 %], purity: 99.50 %, hitEff: 98.01 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 597 from 3126 [ 19.10 %] 1 clones [ 0.17 %], purity: 99.58 %, hitEff: 97.99 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 384 from 833 [ 46.10 %] 1 clones [ 0.26 %], purity: 99.71 %, hitEff: 99.38 % -UpstreamTrackChecker INFO 07_long : 2733 from 5731 [ 47.69 %] 6 clones [ 0.22 %], purity: 99.70 %, hitEff: 98.84 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 2198 from 3640 [ 60.38 %] 6 clones [ 0.27 %], purity: 99.76 %, hitEff: 99.43 % +UpstreamTrackChecker INFO **** Upstream 3759 tracks including 236 ghosts [ 6.28 %], Event average 4.52 % **** +UpstreamTrackChecker INFO 01_velo : 3333 from 10080 [ 33.07 %] 11 clones [ 0.33 %], purity: 99.66 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 02_velo+UT : 3327 from 8769 [ 37.94 %] 11 clones [ 0.33 %], purity: 99.68 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2583 from 4394 [ 58.78 %] 10 clones [ 0.39 %], purity: 99.75 %, hitEff: 99.43 % +UpstreamTrackChecker INFO 04_velo+notLong : 600 from 4349 [ 13.80 %] 4 clones [ 0.66 %], purity: 99.49 %, hitEff: 98.05 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 595 from 3126 [ 19.03 %] 4 clones [ 0.67 %], purity: 99.57 %, hitEff: 98.04 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 384 from 833 [ 46.10 %] 3 clones [ 0.78 %], purity: 99.69 %, hitEff: 99.38 % +UpstreamTrackChecker INFO 07_long : 2733 from 5731 [ 47.69 %] 7 clones [ 0.26 %], purity: 99.70 %, hitEff: 98.84 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 2199 from 3640 [ 60.41 %] 7 clones [ 0.32 %], purity: 99.76 %, hitEff: 99.43 % UpstreamTrackChecker INFO 09_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 8 from 8 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 43 from 407 [ 10.57 %] 0 clones [ 0.00 %], purity: 98.62 %, hitEff: 96.40 % +UpstreamTrackChecker INFO 11_long_electrons : 44 from 407 [ 10.81 %] 1 clones [ 2.22 %], purity: 98.29 %, hitEff: 96.56 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 15_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 6931 tracks including 1638 ghosts [23.63 %], Event average 16.65 % **** -ForwardTrackChecker INFO 01_long : 4612 from 5731 [ 80.47 %] 28 clones [ 0.60 %], purity: 99.04 %, hitEff: 94.48 % -ForwardTrackChecker INFO 02_long_P>5GeV : 3242 from 3640 [ 89.07 %] 12 clones [ 0.37 %], purity: 99.24 %, hitEff: 96.16 % -ForwardTrackChecker INFO 03_long_strange : 197 from 282 [ 69.86 %] 0 clones [ 0.00 %], purity: 98.53 %, hitEff: 93.83 % -ForwardTrackChecker INFO 04_long_strange_P>5GeV : 121 from 141 [ 85.82 %] 0 clones [ 0.00 %], purity: 98.67 %, hitEff: 95.93 % -ForwardTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 97.85 %, hitEff: 91.34 % -ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardTrackChecker INFO 07_long_electrons : 260 from 407 [ 63.88 %] 3 clones [ 1.14 %], purity: 95.80 %, hitEff: 92.10 % +ForwardTrackChecker INFO **** Forward 6920 tracks including 1634 ghosts [23.61 %], Event average 16.67 % **** +ForwardTrackChecker INFO 01_long : 4607 from 5731 [ 80.39 %] 29 clones [ 0.63 %], purity: 99.04 %, hitEff: 94.49 % +ForwardTrackChecker INFO 02_long_P>5GeV : 3241 from 3640 [ 89.04 %] 13 clones [ 0.40 %], purity: 99.24 %, hitEff: 96.16 % +ForwardTrackChecker INFO 03_long_strange : 195 from 282 [ 69.15 %] 0 clones [ 0.00 %], purity: 98.54 %, hitEff: 93.80 % +ForwardTrackChecker INFO 04_long_strange_P>5GeV : 121 from 141 [ 85.82 %] 0 clones [ 0.00 %], purity: 98.66 %, hitEff: 95.93 % +ForwardTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 97.83 %, hitEff: 91.34 % +ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardTrackChecker INFO 07_long_electrons : 258 from 407 [ 63.39 %] 4 clones [ 1.53 %], purity: 95.96 %, hitEff: 92.22 % ForwardTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % ForwardTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % -ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % +ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#3/OutputTracksName **** 1638 ghost, 2.03 UT per track -ForwardUTHitsChecker INFO 01_long : 4640 tr 3.85 from 4.03 mcUT [ 95.4 %] 0.09 ghost hits on real tracks [ 2.2 %] -ForwardUTHitsChecker INFO 01_long >3UT : 4581 tr 3.89 from 4.06 mcUT [ 95.8 %] 0.08 ghost hits on real tracks [ 2.1 %] +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#3/OutputTracksName **** 1634 ghost, 2.04 UT per track +ForwardUTHitsChecker INFO 01_long : 4636 tr 3.85 from 4.03 mcUT [ 95.4 %] 0.09 ghost hits on real tracks [ 2.2 %] +ForwardUTHitsChecker INFO 01_long >3UT : 4578 tr 3.89 from 4.06 mcUT [ 95.8 %] 0.08 ghost hits on real tracks [ 2.1 %] ForwardUTHitsChecker INFO 02_long_P>5GeV : 3254 tr 3.85 from 4.01 mcUT [ 95.9 %] 0.06 ghost hits on real tracks [ 1.4 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 3196 tr 3.91 from 4.06 mcUT [ 96.5 %] 0.05 ghost hits on real tracks [ 1.3 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 3197 tr 3.91 from 4.06 mcUT [ 96.5 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO ForwardHlt1TrackChecker INFO Results -ForwardHlt1TrackChecker INFO **** ForwardHlt1 2564 tracks including 61 ghosts [ 2.38 %], Event average 1.43 % **** -ForwardHlt1TrackChecker INFO 01_long : 2360 from 5731 [ 41.18 %] 11 clones [ 0.46 %], purity: 99.39 %, hitEff: 95.79 % -ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 2001 from 3640 [ 54.97 %] 10 clones [ 0.50 %], purity: 99.44 %, hitEff: 96.43 % +ForwardHlt1TrackChecker INFO **** ForwardHlt1 2570 tracks including 63 ghosts [ 2.45 %], Event average 1.47 % **** +ForwardHlt1TrackChecker INFO 01_long : 2361 from 5731 [ 41.20 %] 12 clones [ 0.51 %], purity: 99.39 %, hitEff: 95.79 % +ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 2002 from 3640 [ 55.00 %] 11 clones [ 0.55 %], purity: 99.44 %, hitEff: 96.43 % ForwardHlt1TrackChecker INFO 03_long_strange : 67 from 282 [ 23.76 %] 1 clones [ 1.47 %], purity: 99.17 %, hitEff: 94.77 % ForwardHlt1TrackChecker INFO 04_long_strange_P>5GeV : 52 from 141 [ 36.88 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 97.12 % -ForwardHlt1TrackChecker INFO 05_long_fromB : 8 from 12 [ 66.67 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 96.96 % -ForwardHlt1TrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardHlt1TrackChecker INFO 07_long_electrons : 34 from 407 [ 8.35 %] 0 clones [ 0.00 %], purity: 97.26 %, hitEff: 92.41 % +ForwardHlt1TrackChecker INFO 05_long_fromB : 8 from 12 [ 66.67 %] 0 clones [ 0.00 %], purity: 99.40 %, hitEff: 96.96 % +ForwardHlt1TrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardHlt1TrackChecker INFO 07_long_electrons : 35 from 407 [ 8.60 %] 1 clones [ 2.78 %], purity: 97.17 %, hitEff: 92.83 % ForwardHlt1TrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % ForwardHlt1TrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % -ForwardHlt1TrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardHlt1TrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % +ForwardHlt1TrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardHlt1TrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % ForwardHlt1TrackChecker INFO SeedTrackChecker INFO Results SeedTrackChecker INFO **** Seed 10294 tracks including 599 ghosts [ 5.82 %], Event average 2.38 % **** @@ -173,52 +173,52 @@ SeedTrackChecker INFO 10_UT+T_SfromDB : SeedTrackChecker INFO 11_UT+T_SfromDB_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % SeedTrackChecker INFO BestTrackChecker INFO Results -BestTrackChecker INFO **** Best 28041 tracks including 2229 ghosts [ 7.95 %], Event average 5.76 % **** -BestTrackChecker INFO 01_long : 5682 from 5731 [ 99.15 %] 379 clones [ 6.25 %], purity: 99.38 %, hitEff: 86.10 % -BestTrackChecker INFO 02_long_P>5GeV : 3619 from 3640 [ 99.42 %] 197 clones [ 5.16 %], purity: 99.45 %, hitEff: 90.68 % -BestTrackChecker INFO 03_long_strange : 278 from 282 [ 98.58 %] 31 clones [10.03 %], purity: 99.28 %, hitEff: 78.30 % -BestTrackChecker INFO 04_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 14 clones [ 9.15 %], purity: 99.43 %, hitEff: 86.03 % -BestTrackChecker INFO 05_long_fromB : 11 from 12 [ 91.67 %] 2 clones [15.38 %], purity: 98.93 %, hitEff: 72.14 % -BestTrackChecker INFO 06_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 99.01 %, hitEff: 81.21 % -BestTrackChecker INFO 07_long_electrons : 371 from 407 [ 91.15 %] 58 clones [13.52 %], purity: 98.01 %, hitEff: 67.80 % +BestTrackChecker INFO **** Best 27862 tracks including 2194 ghosts [ 7.87 %], Event average 5.71 % **** +BestTrackChecker INFO 01_long : 5681 from 5731 [ 99.13 %] 379 clones [ 6.25 %], purity: 99.38 %, hitEff: 86.02 % +BestTrackChecker INFO 02_long_P>5GeV : 3620 from 3640 [ 99.45 %] 198 clones [ 5.19 %], purity: 99.45 %, hitEff: 90.57 % +BestTrackChecker INFO 03_long_strange : 277 from 282 [ 98.23 %] 31 clones [10.06 %], purity: 99.29 %, hitEff: 78.24 % +BestTrackChecker INFO 04_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 14 clones [ 9.15 %], purity: 99.43 %, hitEff: 85.94 % +BestTrackChecker INFO 05_long_fromB : 11 from 12 [ 91.67 %] 2 clones [15.38 %], purity: 98.91 %, hitEff: 71.79 % +BestTrackChecker INFO 06_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 98.99 %, hitEff: 80.71 % +BestTrackChecker INFO 07_long_electrons : 372 from 407 [ 91.40 %] 53 clones [12.47 %], purity: 98.00 %, hitEff: 68.66 % BestTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % -BestTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 99.01 %, hitEff: 81.21 % -BestTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 99.01 %, hitEff: 81.21 % +BestTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 98.99 %, hitEff: 80.71 % +BestTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 98.99 %, hitEff: 80.71 % BestTrackChecker INFO BestLongTrackChecker INFO Results -BestLongTrackChecker INFO **** BestLong 6394 tracks including 834 ghosts [13.04 %], Event average 10.49 % **** -BestLongTrackChecker INFO 01_long : 4882 from 5731 [ 85.19 %] 21 clones [ 0.43 %], purity: 99.39 %, hitEff: 96.41 % -BestLongTrackChecker INFO 02_long_P>5GeV : 3289 from 3640 [ 90.36 %] 8 clones [ 0.24 %], purity: 99.49 %, hitEff: 97.57 % -BestLongTrackChecker INFO 03_long_strange : 210 from 282 [ 74.47 %] 0 clones [ 0.00 %], purity: 99.36 %, hitEff: 96.03 % -BestLongTrackChecker INFO 04_long_strange_P>5GeV : 118 from 141 [ 83.69 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 97.45 % -BestLongTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.46 %, hitEff: 91.17 % -BestLongTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -BestLongTrackChecker INFO 07_long_electrons : 237 from 407 [ 58.23 %] 3 clones [ 1.25 %], purity: 97.71 %, hitEff: 92.58 % +BestLongTrackChecker INFO **** BestLong 6389 tracks including 833 ghosts [13.04 %], Event average 10.51 % **** +BestLongTrackChecker INFO 01_long : 4877 from 5731 [ 85.10 %] 21 clones [ 0.43 %], purity: 99.39 %, hitEff: 96.35 % +BestLongTrackChecker INFO 02_long_P>5GeV : 3287 from 3640 [ 90.30 %] 8 clones [ 0.24 %], purity: 99.49 %, hitEff: 97.51 % +BestLongTrackChecker INFO 03_long_strange : 208 from 282 [ 73.76 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 95.96 % +BestLongTrackChecker INFO 04_long_strange_P>5GeV : 118 from 141 [ 83.69 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 97.34 % +BestLongTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.43 %, hitEff: 90.66 % +BestLongTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +BestLongTrackChecker INFO 07_long_electrons : 241 from 407 [ 59.21 %] 2 clones [ 0.82 %], purity: 97.75 %, hitEff: 92.77 % BestLongTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestLongTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % -BestLongTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -BestLongTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % +BestLongTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +BestLongTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % BestLongTrackChecker INFO LongGhostFilteredTrackChecker INFO Results -LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5909 tracks including 424 ghosts [ 7.18 %], Event average 5.75 % **** -LongGhostFilteredTrackChecker INFO 01_long : 4843 from 5731 [ 84.51 %] 21 clones [ 0.43 %], purity: 99.41 %, hitEff: 96.50 % -LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3263 from 3640 [ 89.64 %] 8 clones [ 0.24 %], purity: 99.50 %, hitEff: 97.66 % -LongGhostFilteredTrackChecker INFO 03_long_strange : 207 from 282 [ 73.40 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.05 % -LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 115 from 141 [ 81.56 %] 0 clones [ 0.00 %], purity: 99.48 %, hitEff: 97.53 % -LongGhostFilteredTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.46 %, hitEff: 91.17 % -LongGhostFilteredTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -LongGhostFilteredTrackChecker INFO 07_long_electrons : 229 from 407 [ 56.27 %] 3 clones [ 1.29 %], purity: 97.91 %, hitEff: 92.93 % +LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5902 tracks including 419 ghosts [ 7.10 %], Event average 5.71 % **** +LongGhostFilteredTrackChecker INFO 01_long : 4838 from 5731 [ 84.42 %] 21 clones [ 0.43 %], purity: 99.41 %, hitEff: 96.45 % +LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3261 from 3640 [ 89.59 %] 8 clones [ 0.24 %], purity: 99.50 %, hitEff: 97.60 % +LongGhostFilteredTrackChecker INFO 03_long_strange : 205 from 282 [ 72.70 %] 0 clones [ 0.00 %], purity: 99.37 %, hitEff: 95.97 % +LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 115 from 141 [ 81.56 %] 0 clones [ 0.00 %], purity: 99.47 %, hitEff: 97.41 % +LongGhostFilteredTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.43 %, hitEff: 90.66 % +LongGhostFilteredTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +LongGhostFilteredTrackChecker INFO 07_long_electrons : 233 from 407 [ 57.25 %] 2 clones [ 0.85 %], purity: 97.93 %, hitEff: 93.10 % LongGhostFilteredTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % LongGhostFilteredTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % -LongGhostFilteredTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -LongGhostFilteredTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % +LongGhostFilteredTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +LongGhostFilteredTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % LongGhostFilteredTrackChecker INFO BestDownstreamTrackChecker INFO Results -BestDownstreamTrackChecker INFO **** BestDownstream 1363 tracks including 549 ghosts [40.28 %], Event average 32.63 % **** -BestDownstreamTrackChecker INFO 01_UT+T : 563 from 6463 [ 8.71 %] 0 clones [ 0.00 %], purity: 99.57 %, hitEff: 95.18 % -BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 314 from 3927 [ 8.00 %] 0 clones [ 0.00 %], purity: 99.50 %, hitEff: 97.40 % -BestDownstreamTrackChecker INFO 03_UT+T_strange : 206 from 599 [ 34.39 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.53 % +BestDownstreamTrackChecker INFO **** BestDownstream 1367 tracks including 550 ghosts [40.23 %], Event average 32.61 % **** +BestDownstreamTrackChecker INFO 01_UT+T : 567 from 6463 [ 8.77 %] 0 clones [ 0.00 %], purity: 99.57 %, hitEff: 95.15 % +BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 316 from 3927 [ 8.05 %] 0 clones [ 0.00 %], purity: 99.50 %, hitEff: 97.38 % +BestDownstreamTrackChecker INFO 03_UT+T_strange : 207 from 599 [ 34.56 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.51 % BestDownstreamTrackChecker INFO 04_UT+T_strange_P>5GeV : 143 from 338 [ 42.31 %] 0 clones [ 0.00 %], purity: 99.68 %, hitEff: 97.43 % BestDownstreamTrackChecker INFO 05_noVelo+UT+T_strange : 190 from 322 [ 59.01 %] 0 clones [ 0.00 %], purity: 99.76 %, hitEff: 96.58 % BestDownstreamTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 136 from 200 [ 68.00 %] 0 clones [ 0.00 %], purity: 99.71 %, hitEff: 97.44 % @@ -230,10 +230,10 @@ BestDownstreamTrackChecker INFO 12_UT+T_SfromDB_P>5GeV : BestDownstreamTrackChecker INFO 13_noVelo+UT+T_SfromDB : 0 from 1 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % BestDownstreamTrackChecker INFO DownstreamGhostFilteredTrackChecker INFO Results -DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1085 tracks including 278 ghosts [25.62 %], Event average 20.83 % **** -DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 560 from 6463 [ 8.66 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 95.25 % -DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 312 from 3927 [ 7.94 %] 0 clones [ 0.00 %], purity: 99.54 %, hitEff: 97.52 % -DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 206 from 599 [ 34.39 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.53 % +DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1088 tracks including 278 ghosts [25.55 %], Event average 20.79 % **** +DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 564 from 6463 [ 8.73 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 95.22 % +DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 314 from 3927 [ 8.00 %] 0 clones [ 0.00 %], purity: 99.54 %, hitEff: 97.50 % +DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 207 from 599 [ 34.56 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.51 % DownstreamGhostFilteredTrackChecker INFO 04_UT+T_strange_P>5GeV : 143 from 338 [ 42.31 %] 0 clones [ 0.00 %], purity: 99.68 %, hitEff: 97.43 % DownstreamGhostFilteredTrackChecker INFO 05_noVelo+UT+T_strange : 190 from 322 [ 59.01 %] 0 clones [ 0.00 %], purity: 99.76 %, hitEff: 96.58 % DownstreamGhostFilteredTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 136 from 200 [ 68.00 %] 0 clones [ 0.00 %], purity: 99.71 %, hitEff: 97.44 % @@ -255,148 +255,148 @@ ApplicationMgr INFO Application Manager Terminated succe PrGECFilter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 100 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 100 | 179234 | 1792.3 | - | "Nb of Produced Tracks" | 100 | 23012 | 230.12 | + | "Nb of Produced Tracks" | 100 | 22831 | 228.31 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 23012 | 230.12 | + | "Nb of Produced Tracks" | 100 | 22831 | 228.31 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 100 | 18000 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 100 | 14279 | 142.79 | - | "#tracks" | 100 | 3754 | 37.540 | + | "#seeds" | 100 | 14209 | 142.09 | + | "#tracks" | 100 | 3759 | 37.590 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 3754 | 37.540 | + | "Nb of Produced Tracks" | 100 | 3759 | 37.590 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 100 | 18000 | 180.00 | PrForwardTracking INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 99 | 2564 | 25.899 | + | "Nb output tracks" | 99 | 2570 | 25.960 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 2564 | 25.640 | + | "Nb of Produced Tracks" | 100 | 2570 | 25.700 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 100 | 179234 | 1792.3 | TrackEventFitter SUCCESS Number of counters : 7 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Long.badChisq" | 2564 | 317 | 0.12363 | 0.32916 | 0.0000 | 1.0000 | - | "Long.chisqprobSum" | 2564 | 948.4817 | 0.36992 | 0.30497 | 0.0000 | 0.99994 | - | "Long.flipCharge" | 2564 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Long.numOutliers" | 2564 | 1639 | 0.63924 | 0.76926 | 0.0000 | 2.0000 | + | "Long.badChisq" | 2570 | 320 | 0.12451 | 0.33017 | 0.0000 | 1.0000 | + | "Long.chisqprobSum" | 2570 | 949.5072 | 0.36946 | 0.30480 | 0.0000 | 0.99994 | + | "Long.flipCharge" | 2570 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Long.numOutliers" | 2570 | 1649 | 0.64163 | 0.76980 | 0.0000 | 2.0000 | | "nBadInput" | 100 | 0 | 0.0000 | - | "nFitted" | 100 | 2564 | 25.640 | - | "nTracks" | 100 | 2564 | 25.640 | + | "nFitted" | 100 | 2570 | 25.700 | + | "nTracks" | 100 | 2570 | 25.700 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 99 | 6931 | 70.010 | + | "Nb output tracks" | 99 | 6920 | 69.899 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 6931 | 69.310 | + | "Nb of Produced Tracks" | 100 | 6920 | 69.200 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 7526 | | "#UT hits added" | 29574 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 19318 | 107146.3 | 5.5465 | - | "#MatchingTracks" | 99 | 6648 | 67.152 | - | "TracksMLP" | 19318 | 6548.312 | 0.33897 | + | "#MatchingChi2" | 19315 | 107200.2 | 5.5501 | + | "#MatchingTracks" | 99 | 6644 | 67.111 | + | "TracksMLP" | 19315 | 6545.192 | 0.33887 | TrackBestTrackCreator SUCCESS Number of counters : 33 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 31886 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2717 | 1505 |( 55.39198 +- 0.9536414)% | - | "Downstream.chisqProbSum" | 2717 | 376.2437 | 0.13848 | - |*"Downstream.flipCharge" | 2717 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2717 | 1559.558 | 0.57400 | - | "Downstream.numOutliers" | 2717 | 3176 | 1.1689 | - |*"FitFailed" | 31886 | 0 |( 0.000000 +- 0.000000)% | - | "FittedBefore" | 2342 | - |*"Long.badChisq" | 6360 | 3096 |( 48.67925 +- 0.6267436)% | - | "Long.chisqProbSum" | 6360 | 1113.24 | 0.17504 | - |*"Long.flipCharge" | 6360 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 6360 | 1553.795 | 0.24431 | - | "Long.numOutliers" | 6360 | 6835 | 1.0747 | + |*"BadInput" | 31702 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2721 | 1505 |( 55.31055 +- 0.9531082)% | + | "Downstream.chisqProbSum" | 2721 | 378.1862 | 0.13899 | + |*"Downstream.flipCharge" | 2721 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2721 | 1560.091 | 0.57335 | + | "Downstream.numOutliers" | 2721 | 3181 | 1.1691 | + |*"FitFailed" | 31702 | 0 |( 0.000000 +- 0.000000)% | + | "FittedBefore" | 2347 | + |*"Long.badChisq" | 6344 | 3088 |( 48.67591 +- 0.6275323)% | + | "Long.chisqProbSum" | 6344 | 1113.423 | 0.17551 | + |*"Long.flipCharge" | 6344 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 6344 | 1551.67 | 0.24459 | + | "Long.numOutliers" | 6344 | 6812 | 1.0738 | |*"Ttrack.badChisq" | 3378 | 93 |( 2.753108 +- 0.2815268)% | - | "Ttrack.chisqProbSum" | 3378 | 1284.742 | 0.38033 | + | "Ttrack.chisqProbSum" | 3378 | 1284.85 | 0.38036 | |*"Ttrack.flipCharge" | 3378 | 120 |( 3.552398 +- 0.3184760)% | - | "Ttrack.ghostProbability" | 3378 | 299.785 | 0.088746 | - | "Ttrack.numOutliers" | 3378 | 1372 | 0.40616 | - |*"Upstream.badChisq" | 1010 | 232 |( 22.97030 +- 1.323585)% | - | "Upstream.chisqProbSum" | 1010 | 331.0671 | 0.32779 | - |*"Upstream.flipCharge" | 1010 | 19 |( 1.881188 +- 0.4274955)% | - | "Upstream.ghostProbability" | 1010 | 222.9549 | 0.22075 | - | "Upstream.numOutliers" | 1010 | 457 | 0.45248 | - |*"Velo.badChisq" | 7353 | 1878 |( 25.54060 +- 0.5085609)% | - | "Velo.chisqProbSum" | 7353 | 2188.772 | 0.29767 | - |*"Velo.flipCharge" | 7353 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 7353 | 815.6978 | 0.11093 | - | "Velo.numOutliers" | 7353 | 5107 | 0.69455 | - |*"VeloBackward.badChisq" | 8726 | 540 |( 6.188402 +- 0.2579348)% | - | "VeloBackward.chisqProbSum" | 8726 | 3902.317 | 0.44721 | - |*"VeloBackward.flipCharge" | 8726 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 8726 | 739.3682 | 0.084732 | - | "VeloBackward.numOutliers" | 8726 | 2419 | 0.27722 | + | "Ttrack.ghostProbability" | 3378 | 299.4881 | 0.088658 | + | "Ttrack.numOutliers" | 3378 | 1370 | 0.40557 | + |*"Upstream.badChisq" | 1011 | 231 |( 22.84866 +- 1.320464)% | + | "Upstream.chisqProbSum" | 1011 | 329.4644 | 0.32588 | + |*"Upstream.flipCharge" | 1011 | 19 |( 1.879327 +- 0.4270767)% | + | "Upstream.ghostProbability" | 1011 | 223.7594 | 0.22132 | + | "Upstream.numOutliers" | 1011 | 462 | 0.45697 | + |*"Velo.badChisq" | 7284 | 1872 |( 25.70016 +- 0.5120082)% | + | "Velo.chisqProbSum" | 7284 | 2170.127 | 0.29793 | + |*"Velo.flipCharge" | 7284 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 7284 | 788.6694 | 0.10827 | + | "Velo.numOutliers" | 7284 | 5059 | 0.69454 | + |*"VeloBackward.badChisq" | 8617 | 524 |( 6.081003 +- 0.2574461)% | + | "VeloBackward.chisqProbSum" | 8617 | 3868.59 | 0.44895 | + |*"VeloBackward.flipCharge" | 8617 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 8617 | 695.4885 | 0.080711 | + | "VeloBackward.numOutliers" | 8617 | 2348 | 0.27248 | PatPV3DFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb PVs" | 100 | 468 | 4.6800 | + | "Nb PVs" | 100 | 466 | 4.6600 | PrLHCbID2MCParticle SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#removed null MCParticles" | 645475 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 23012 | 22776 |( 98.97445 +- 0.06641454)% | - | "MC particles per track" | 22776 | 22889 | 1.0050 | + |*"Efficiency" | 22831 | 22627 |( 99.10648 +- 0.06227893)% | + | "MC particles per track" | 22627 | 22744 | 1.0052 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6648 | 5418 |( 81.49819 +- 0.4762506)% | - | "MC particles per track" | 5418 | 6254 | 1.1543 | + |*"Efficiency" | 6644 | 5414 |( 81.48706 +- 0.4765048)% | + | "MC particles per track" | 5414 | 6248 | 1.1540 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 7526 | 5233 |( 69.53229 +- 0.5305558)% | | "MC particles per track" | 5233 | 5233 | 1.0000 | PrTrackAssociator#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 3754 | 3519 |( 93.74001 +- 0.3953686)% | - | "MC particles per track" | 3519 | 3519 | 1.0000 | + |*"Efficiency" | 3759 | 3523 |( 93.72173 +- 0.3956433)% | + | "MC particles per track" | 3523 | 3523 | 1.0000 | PrTrackAssociator#4 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6931 | 5293 |( 76.36705 +- 0.5102865)% | - | "MC particles per track" | 5293 | 6136 | 1.1593 | + |*"Efficiency" | 6920 | 5286 |( 76.38728 +- 0.5105408)% | + | "MC particles per track" | 5286 | 6127 | 1.1591 | PrTrackAssociator#5 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 2564 | 2503 |( 97.62090 +- 0.3009666)% | - | "MC particles per track" | 2503 | 2940 | 1.1746 | + |*"Efficiency" | 2570 | 2507 |( 97.54864 +- 0.3050337)% | + | "MC particles per track" | 2507 | 2944 | 1.1743 | PrTrackAssociator#6 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 10294 | 9695 |( 94.18108 +- 0.2307337)% | | "MC particles per track" | 9695 | 9695 | 1.0000 | PrTrackAssociator#7 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 28041 | 25812 |( 92.05093 +- 0.1615383)% | - | "MC particles per track" | 25812 | 26737 | 1.0358 | + |*"Efficiency" | 27862 | 25668 |( 92.12548 +- 0.1613600)% | + | "MC particles per track" | 25668 | 26596 | 1.0362 | TrackListRefiner SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 6394 | 63.940 | 39.298 | 0.0000 | 171.00 | - | "#seeds" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#passed" | 100 | 6389 | 63.890 | 39.247 | 0.0000 | 171.00 | + | "#seeds" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | TrackListRefiner#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 5909 | 59.090 | 35.007 | 0.0000 | 146.00 | - | "#seeds" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#passed" | 100 | 5902 | 59.020 | 34.906 | 0.0000 | 145.00 | + | "#seeds" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | TrackListRefiner#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 1363 | 13.630 | 9.5809 | 0.0000 | 43.000 | - | "#seeds" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#passed" | 100 | 1367 | 13.670 | 9.6084 | 0.0000 | 43.000 | + | "#seeds" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | TrackListRefiner#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 1085 | 10.850 | 7.0546 | 0.0000 | 30.000 | - | "#seeds" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#passed" | 100 | 1088 | 10.880 | 7.0799 | 0.0000 | 30.000 | + | "#seeds" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 100 | 0 |( 0.000000 +- 0.000000)% | @@ -422,113 +422,113 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 100 | 758 | 7.5800 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.234 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | - | "#tracks in acceptance" | 100 | 9306 | 93.060 | 65.494 | 0.0000 | 491.00 | + | "#links in table" | 100 | 11134 | 111.34 | 77.177 | 0.0000 | 565.00 | + | "#total tracks" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | + | "#tracks in acceptance" | 100 | 9302 | 93.020 | 65.417 | 0.0000 | 491.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 100 | 9306 | 93.060 | 65.494 | 0.0000 | 491.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 100 | 9302 | 93.020 | 65.417 | 0.0000 | 491.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 100 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.234 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | - | "#tracks in acceptance" | 100 | 8738 | 87.380 | 61.999 | 0.0000 | 473.00 | + | "#links in table" | 100 | 11134 | 111.34 | 77.177 | 0.0000 | 565.00 | + | "#total tracks" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | + | "#tracks in acceptance" | 100 | 8734 | 87.340 | 61.942 | 0.0000 | 473.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8738 | 87.380 | 61.999 | 0.0000 | 473.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8734 | 87.340 | 61.942 | 0.0000 | 473.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8738 | 87.380 | 61.999 | 0.0000 | 473.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8734 | 87.340 | 61.942 | 0.0000 | 473.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 100 | 1484430 | 14844. | 16938. | 0.0000 | 1.2953e+05 | - | "#chi2" | 457033 |2.105426e+08 | 460.67 | 291.06 | 0.00012421 | 1000.0 | - | "#good tracks" | 100 | 9306 | 93.060 | 65.494 | 0.0000 | 491.00 | - | "#links in table" | 100 | 457033 | 4570.3 | 6226.2 | 0.0000 | 50177. | + | "#above threshold" | 100 | 1483486 | 14835. | 16927. | 0.0000 | 1.2962e+05 | + | "#chi2" | 456614 |2.103511e+08 | 460.68 | 291.07 | 0.00012421 | 1000.0 | + | "#good tracks" | 100 | 9302 | 93.020 | 65.417 | 0.0000 | 491.00 | + | "#links in table" | 100 | 456614 | 4566.1 | 6214.6 | 0.0000 | 50088. | | "#total calos" | 100 | 15868 | 158.68 | 79.052 | 0.0000 | 366.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 100 | 8563 | 85.630 | 54.378 | 0.0000 | 286.00 | - | "photonHypos" | 100 | 10309 | 103.09 | 48.576 | 0.0000 | 210.00 | + | "electronHypos" | 100 | 8563 | 85.630 | 54.332 | 0.0000 | 285.00 | + | "photonHypos" | 100 | 10308 | 103.08 | 48.581 | 0.0000 | 210.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 100 | 1015298 | 10153. | 14949. | 0.0000 | 1.2387e+05 | - | "#chi2" | 120909 |5.32671e+08 | 4405.6 | 2939.1 | 0.065218 | 9999.9 | - | "#good tracks" | 100 | 9306 | 93.060 | 65.494 | 0.0000 | 491.00 | - | "#links in table" | 100 | 120909 | 1209.1 | 1858.0 | 0.0000 | 16556. | - | "#total calos" | 100 | 8563 | 85.630 | 54.378 | 0.0000 | 286.00 | + | "#above threshold" | 100 | 1014130 | 10141. | 14903. | 0.0000 | 1.2339e+05 | + | "#chi2" | 120818 |5.323078e+08 | 4405.9 | 2939.3 | 0.065218 | 9999.9 | + | "#good tracks" | 100 | 9302 | 93.020 | 65.417 | 0.0000 | 491.00 | + | "#links in table" | 100 | 120818 | 1208.2 | 1856.0 | 0.0000 | 16544. | + | "#total calos" | 100 | 8563 | 85.630 | 54.332 | 0.0000 | 285.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.234 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#links in table" | 100 | 11134 | 111.34 | 77.177 | 0.0000 | 565.00 | + | "#total tracks" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 100 | 11135 | 111.35 | 77.234 | 0.0000 | 565.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 100 | 11134 | 111.34 | 77.177 | 0.0000 | 565.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 14574 | 145.74 | 88.004 | 0.0000 | 412.00 | - | "#total tracks" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | - | "#tracks in acceptance" | 100 | 9548 | 95.480 | 58.781 | 0.0000 | 245.00 | + | "#links in table" | 100 | 14500 | 145.00 | 87.823 | 0.0000 | 410.00 | + | "#total tracks" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | + | "#tracks in acceptance" | 100 | 9528 | 95.280 | 58.758 | 0.0000 | 246.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 100 | 886423 | 8864.2 | 8591.0 | 0.0000 | 36004. | - | "#chi2" | 362055 |1.692971e+09 | 4676.0 | 2884.5 | 0.00077800 | 10000. | - | "#good tracks" | 100 | 9548 | 95.480 | 58.781 | 0.0000 | 245.00 | - | "#links in table" | 100 | 362055 | 3620.6 | 3092.3 | 0.0000 | 12184. | - | "#total calos" | 100 | 10309 | 103.09 | 48.576 | 0.0000 | 210.00 | + | "#above threshold" | 100 | 884658 | 8846.6 | 8582.5 | 0.0000 | 36147. | + | "#chi2" | 361339 |1.689429e+09 | 4675.5 | 2883.9 | 0.00077800 | 10000. | + | "#good tracks" | 100 | 9528 | 95.280 | 58.758 | 0.0000 | 246.00 | + | "#links in table" | 100 | 361339 | 3613.4 | 3090.7 | 0.0000 | 12082. | + | "#total calos" | 100 | 10308 | 103.08 | 48.581 | 0.0000 | 210.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 14574 | 145.74 | 88.004 | 0.0000 | 412.00 | - | "#total tracks" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#links in table" | 100 | 14500 | 145.00 | 87.823 | 0.0000 | 410.00 | + | "#total tracks" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 100 | 14574 | 145.74 | 88.004 | 0.0000 | 412.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 100 | 14500 | 145.00 | 87.823 | 0.0000 | 410.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.234 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28041 | 280.41 | 170.07 | 0.0000 | 1033.0 | + | "#links in table" | 100 | 11134 | 111.34 | 77.177 | 0.0000 | 565.00 | + | "#total tracks" | 100 | 27862 | 278.62 | 169.38 | 0.0000 | 1035.0 | RichRecoStatsDownstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 100 | 195165 | 1951.7 | 2208.8 | 0.0000 | 11202. | - | "# Rich1Gas Segments" | 100 | 1069 | 10.690 | 7.7301 | 0.0000 | 36.000 | - | "# Rich2Gas Photons" | 100 | 21636 | 216.36 | 254.86 | 0.0000 | 1113.0 | - | "# Rich2Gas Segments" | 100 | 428 | 4.2800 | 3.4237 | 0.0000 | 15.000 | - | "# Selected Tracks" | 100 | 1207 | 12.070 | 8.7421 | 0.0000 | 41.000 | - |*"RICH selection efficiency" | 1363 | 1207 |( 88.55466 +- 0.8623273)% | + | "# Rich1Gas Photons" | 100 | 195976 | 1959.8 | 2214.0 | 0.0000 | 11202. | + | "# Rich1Gas Segments" | 100 | 1073 | 10.730 | 7.7664 | 0.0000 | 36.000 | + | "# Rich2Gas Photons" | 100 | 21706 | 217.06 | 254.68 | 0.0000 | 1113.0 | + | "# Rich2Gas Segments" | 100 | 430 | 4.3000 | 3.4278 | 0.0000 | 15.000 | + | "# Selected Tracks" | 100 | 1211 | 12.110 | 8.7760 | 0.0000 | 41.000 | + |*"RICH selection efficiency" | 1367 | 1211 |( 88.58815 +- 0.8599666)% | RichDLLsDownstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 100 | 1207 | 12.070 | 8.7421 | 0.0000 | 41.000 | - |*"Used RICH1 and RICH2" | 1207 | 290 |( 24.02651 +- 1.229767)% | - |*"Used RICH1 only" | 1207 | 779 |( 64.54018 +- 1.376987)% | - |*"Used RICH2 only" | 1207 | 138 |( 11.43331 +- 0.9159410)% | + | "# PIDs" | 100 | 1211 | 12.110 | 8.7760 | 0.0000 | 41.000 | + |*"Used RICH1 and RICH2" | 1211 | 292 |( 24.11230 +- 1.229229)% | + |*"Used RICH1 only" | 1211 | 781 |( 64.49216 +- 1.375129)% | + |*"Used RICH2 only" | 1211 | 138 |( 11.39554 +- 0.9131102)% | RichRecoStatsLong INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 100 | 758399 | 7584.0 | 7482.7 | 0.0000 | 29574. | - | "# Rich1Gas Segments" | 100 | 4819 | 48.190 | 30.366 | 0.0000 | 128.00 | - | "# Rich2Gas Photons" | 100 | 192071 | 1920.7 | 1947.7 | 0.0000 | 10740. | - | "# Rich2Gas Segments" | 100 | 3303 | 33.030 | 20.799 | 0.0000 | 85.000 | - | "# Selected Tracks" | 100 | 6071 | 60.710 | 37.277 | 0.0000 | 161.00 | - |*"RICH selection efficiency" | 6394 | 6071 |( 94.94839 +- 0.2738876)% | + | "# Rich1Gas Photons" | 100 | 757230 | 7572.3 | 7464.0 | 0.0000 | 29587. | + | "# Rich1Gas Segments" | 100 | 4820 | 48.200 | 30.405 | 0.0000 | 129.00 | + | "# Rich2Gas Photons" | 100 | 191848 | 1918.5 | 1942.1 | 0.0000 | 10625. | + | "# Rich2Gas Segments" | 100 | 3298 | 32.980 | 20.759 | 0.0000 | 84.000 | + | "# Selected Tracks" | 100 | 6069 | 60.690 | 37.277 | 0.0000 | 161.00 | + |*"RICH selection efficiency" | 6389 | 6069 |( 94.99139 +- 0.2728879)% | RichDLLsLong INFO Number of counters : 4 | Counter | - | "# PIDs" | 100 | 6071 | 60.710 | 37.277 | 0.0000 | 161.00 | - |*"Used RICH1 and RICH2" | 6071 | 2051 |( 33.78356 +- 0.6070235)% | - |*"Used RICH1 only" | 6071 | 2768 |( 45.59381 +- 0.6392150)% | - |*"Used RICH2 only" | 6071 | 1252 |( 20.62263 +- 0.5192665)% | + | "# PIDs" | 100 | 6069 | 60.690 | 37.277 | 0.0000 | 161.00 | + |*"Used RICH1 and RICH2" | 6069 | 2049 |( 33.76174 +- 0.6070274)% | + |*"Used RICH1 only" | 6069 | 2771 |( 45.65826 +- 0.6393930)% | + |*"Used RICH2 only" | 6069 | 1249 |( 20.58000 +- 0.5189542)% | RichRecoStatsUpstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 100 | 93440 | 934.40 | 1129.5 | 0.0000 | 5954.0 | - | "# Rich1Gas Segments" | 100 | 704 | 7.0400 | 5.3627 | 0.0000 | 24.000 | + | "# Rich1Gas Photons" | 100 | 93529 | 935.29 | 1140.2 | 0.0000 | 5954.0 | + | "# Rich1Gas Segments" | 100 | 704 | 7.0400 | 5.4054 | 0.0000 | 24.000 | | "# Rich2Gas Photons" | 100 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "# Rich2Gas Segments" | 100 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "# Selected Tracks" | 100 | 704 | 7.0400 | 5.3627 | 0.0000 | 24.000 | + | "# Selected Tracks" | 100 | 704 | 7.0400 | 5.4054 | 0.0000 | 24.000 | |*"RICH selection efficiency" | 827 | 704 |( 85.12696 +- 1.237316)% | RichDLLsUpstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 100 | 704 | 7.0400 | 5.3627 | 0.0000 | 24.000 | + | "# PIDs" | 100 | 704 | 7.0400 | 5.4054 | 0.0000 | 24.000 | |*"Used RICH1 and RICH2" | 704 | 0 |( 0.000000 +- 0.000000)% | |*"Used RICH1 only" | 704 | 704 |( 100.0000 +- 0.000000)% | |*"Used RICH2 only" | 704 | 0 |( 0.000000 +- 0.000000)% | @@ -539,22 +539,22 @@ RichPIDMonDownstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 247 | 239 |( 96.76113 +- 1.126415)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 249 | 241 |( 96.78715 +- 1.117518)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 9 | 9 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 1282 | 1129 |( 88.06552 +- 0.9054420)% | - |*"Used RICH1 and RICH2" | 1129 | 290 |( 25.68645 +- 1.300287)% | - |*"Used RICH1 only" | 1129 | 703 |( 62.26749 +- 1.442585)% | - |*"Used RICH2 only" | 1129 | 136 |( 12.04606 +- 0.9687309)% | + |*"Track ID rate" | 1286 | 1133 |( 88.10264 +- 0.9028159)% | + |*"Used RICH1 and RICH2" | 1133 | 292 |( 25.77229 +- 1.299405)% | + |*"Used RICH1 only" | 1133 | 705 |( 62.22418 +- 1.440362)% | + |*"Used RICH2 only" | 1133 | 136 |( 12.00353 +- 0.9655442)% | RichPIDMonDownstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 83 | 75 |( 90.36145 +- 3.239355)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 84 | 76 |( 90.47619 +- 3.202822)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 9 | 9 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 249 | 249 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 249 | 164 |( 65.86345 +- 3.004916)% | - |*"Used RICH1 only" | 249 | 6 |( 2.409639 +- 0.9718064)% | - |*"Used RICH2 only" | 249 | 79 |( 31.72691 +- 2.949436)% | + |*"Track ID rate" | 250 | 250 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 250 | 165 |( 66.00000 +- 2.995997)% | + |*"Used RICH1 only" | 250 | 6 |( 2.400000 +- 0.9679669)% | + |*"Used RICH2 only" | 250 | 79 |( 31.60000 +- 2.940367)% | RichPIDMonDownstream70to100 INFO Number of counters : 5 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | @@ -565,31 +565,31 @@ RichPIDMonDownstream70to100 INFO Number of counters : 5 RichPIDMonDownstream2to10 INFO Number of counters : 6 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 164 | 164 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 1031 | 878 |( 85.16004 +- 1.107146)% | - |*"Used RICH1 and RICH2" | 878 | 125 |( 14.23690 +- 1.179263)% | - |*"Used RICH1 only" | 878 | 697 |( 79.38497 +- 1.365255)% | - |*"Used RICH2 only" | 878 | 56 |( 6.378132 +- 0.8246851)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 165 | 165 |( 100.0000 +- 0.000000)% | + |*"Track ID rate" | 1034 | 881 |( 85.20309 +- 1.104213)% | + |*"Used RICH1 and RICH2" | 881 | 126 |( 14.30193 +- 1.179492)% | + |*"Used RICH1 only" | 881 | 699 |( 79.34166 +- 1.363988)% | + |*"Used RICH2 only" | 881 | 56 |( 6.356413 +- 0.8219722)% | RichPIDMonLong2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | - |*"K->K,Pr,D ID Efficiency" | 223 | 221 |( 99.10314 +- 0.6313262)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 2924 | 2862 |( 97.87962 +- 0.2664186)% | + |*"K->K,Pr,D ID Efficiency" | 224 | 222 |( 99.10714 +- 0.6285205)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 2918 | 2857 |( 97.90953 +- 0.2648452)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 73 | 72 |( 98.63014 +- 1.360448)% | - |*"Track ID rate" | 6243 | 5921 |( 94.84222 +- 0.2799210)% | - |*"Used RICH1 and RICH2" | 5921 | 2044 |( 34.52120 +- 0.6178681)% | - |*"Used RICH1 only" | 5921 | 2647 |( 44.70529 +- 0.6461357)% | - |*"Used RICH2 only" | 5921 | 1230 |( 20.77352 +- 0.5272210)% | + |*"Track ID rate" | 6237 | 5918 |( 94.88536 +- 0.2789454)% | + |*"Used RICH1 and RICH2" | 5918 | 2042 |( 34.50490 +- 0.6179557)% | + |*"Used RICH1 only" | 5918 | 2649 |( 44.76174 +- 0.6463772)% | + |*"Used RICH2 only" | 5918 | 1227 |( 20.73336 +- 0.5269781)% | RichPIDMonLong10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | - |*"K->K,Pr,D ID Efficiency" | 216 | 214 |( 99.07407 +- 0.6516903)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1193 | 1138 |( 95.38977 +- 0.6071441)% | + |*"K->K,Pr,D ID Efficiency" | 217 | 215 |( 99.07834 +- 0.6487011)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1187 | 1133 |( 95.45072 +- 0.6048334)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 69 | 68 |( 98.55072 +- 1.438735)% | - |*"Track ID rate" | 2231 | 2230 |( 99.95518 +- 0.04481290)% | - |*"Used RICH1 and RICH2" | 2230 | 1250 |( 56.05381 +- 1.051019)% | - |*"Used RICH1 only" | 2230 | 39 |( 1.748879 +- 0.2775851)% | - |*"Used RICH2 only" | 2230 | 941 |( 42.19731 +- 1.045837)% | + |*"Track ID rate" | 2230 | 2229 |( 99.95516 +- 0.04483299)% | + |*"Used RICH1 and RICH2" | 2229 | 1252 |( 56.16869 +- 1.050956)% | + |*"Used RICH1 only" | 2229 | 39 |( 1.749664 +- 0.2777086)% | + |*"Used RICH2 only" | 2229 | 938 |( 42.08165 +- 1.045682)% | RichPIDMonLong70to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | @@ -605,15 +605,15 @@ RichPIDMonLong2to10 INFO Number of counters : 7 |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | |*"K->K,Pr,D ID Efficiency" | 2 | 2 |( 100.0000 +- 0.000000)% | |*"Pi->El,Mu,Pi ID Efficiency" | 1721 | 1719 |( 99.88379 +- 0.08212618)% | - |*"Track ID rate" | 3974 | 3654 |( 91.94766 +- 0.4316358)% | - |*"Used RICH1 and RICH2" | 3654 | 786 |( 21.51067 +- 0.6797481)% | - |*"Used RICH1 only" | 3654 | 2608 |( 71.37384 +- 0.7477679)% | - |*"Used RICH2 only" | 3654 | 260 |( 7.115490 +- 0.4252945)% | + |*"Track ID rate" | 3969 | 3652 |( 92.01310 +- 0.4303020)% | + |*"Used RICH1 and RICH2" | 3652 | 782 |( 21.41292 +- 0.6788099)% | + |*"Used RICH1 only" | 3652 | 2610 |( 71.46769 +- 0.7472363)% | + |*"Used RICH2 only" | 3652 | 260 |( 7.119387 +- 0.4255185)% | RichPIDMonUpstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | |*"K->K,Pr,D ID Efficiency" | 31 | 27 |( 87.09677 +- 6.021010)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 232 | 219 |( 94.39655 +- 1.509947)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 231 | 218 |( 94.37229 +- 1.516289)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 7 | 6 |( 85.71429 +- 13.22600)% | |*"Track ID rate" | 810 | 701 |( 86.54321 +- 1.199071)% | |*"Used RICH1 and RICH2" | 701 | 0 |( 0.000000 +- 0.000000)% | @@ -625,10 +625,10 @@ RichPIDMonUpstream10to70 INFO Number of counters : 8 |*"K->K,Pr,D ID Efficiency" | 29 | 26 |( 89.65517 +- 5.655230)% | |*"Pi->El,Mu,Pi ID Efficiency" | 105 | 93 |( 88.57143 +- 3.104904)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 7 | 6 |( 85.71429 +- 13.22600)% | - |*"Track ID rate" | 321 | 222 |( 69.15888 +- 2.577725)% | - |*"Used RICH1 and RICH2" | 222 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 222 | 222 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 222 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 320 | 221 |( 69.06250 +- 2.583978)% | + |*"Used RICH1 and RICH2" | 221 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 221 | 221 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 221 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream70to100 INFO Number of counters : 6 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | @@ -641,11 +641,11 @@ RichPIDMonUpstream2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | |*"K->K,Pr,D ID Efficiency" | 1 | 0 |( 0.000000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 127 | 126 |( 99.21260 +- 0.7842954)% | - |*"Track ID rate" | 475 | 475 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 475 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 475 | 475 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 475 | 0 |( 0.000000 +- 0.000000)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 126 | 125 |( 99.20635 +- 0.7904951)% | + |*"Track ID rate" | 476 | 476 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 476 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 476 | 476 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 476 | 0 |( 0.000000 +- 0.000000)% | ClusterMonitorEcalClusters SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Monitor /Event/CaloFutureClusterCovarianceAlg/O| 99 | 15868 | 160.28 | 77.816 | 10.000 | 366.00 | @@ -676,27 +676,27 @@ CaloFutureMergedPi0.SplitPhotonS... SUCCESS Number of counters : 2 | "Delta(Y)" | 29183 | -5411.848 | -0.18545 | 13.709 | -30.034 | 22.930 | ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2802 | 227630.7 | 81.239 | 0.54229 | 81.241 | 81.241 | + | " Inner" | 2801 | 227549.5 | 81.239 | 0.54173 | 81.241 | 81.241 | | " Middle" | 2534 | 241492.9 | 95.301 | 0.63383 | 95.304 | 95.304 | - | " Outer" | 3227 | 351341.8 | 108.88 | 0.65961 | 108.88 | 108.88 | - | " Inner" | 2802 | 41406.39 | 14.777 | 0.085535 | 14.778 | 14.778 | + | " Outer" | 3228 | 351450.7 | 108.88 | 0.65950 | 108.88 | 108.88 | + | " Inner" | 2801 | 41391.61 | 14.777 | 0.085550 | 14.778 | 14.778 | | " Middle" | 2534 | 36578.26 | 14.435 | 0.0000 | 14.435 | 14.435 | - | " Outer" | 3227 | 47160.39 | 14.614 | 0.049006 | 14.614 | 14.614 | - | "Delta(Z)" | 8563 | 992517.4 | 115.91 | 11.357 | 79.082 | 173.00 | - | "Delta(Z) Inner" | 2802 | 317371.1 | 113.27 | 11.026 | 79.082 | 151.50 | + | " Outer" | 3228 | 47175.01 | 14.614 | 0.048999 | 14.614 | 14.614 | + | "Delta(Z)" | 8563 | 992531.3 | 115.91 | 11.357 | 79.082 | 173.00 | + | "Delta(Z) Inner" | 2801 | 317259.7 | 113.27 | 11.028 | 79.082 | 151.50 | | "Delta(Z) Middle" | 2534 | 290037.1 | 114.46 | 10.301 | 82.952 | 153.95 | - | "Delta(Z) Outer" | 3227 | 385108.5 | 119.34 | 11.573 | 90.924 | 173.00 | + | "Delta(Z) Outer" | 3228 | 385233.9 | 119.34 | 11.571 | 90.924 | 173.00 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 8563 | -1647.287 | -0.19237 | 11.966 | -23.059 | 22.930 | - | "Delta(Y)" | 8563 | -864.6139 | -0.10097 | 11.902 | -23.059 | 22.930 | + | "Delta(X)" | 8563 | -1633.469 | -0.19076 | 11.967 | -23.059 | 22.930 | + | "Delta(Y)" | 8563 | -877.2698 | -0.10245 | 11.903 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2802 | 2789.305 | 0.99547 | 0.019268 | 0.96514 | 1.1151 | + | " Inner" | 2801 | 2788.327 | 0.99548 | 0.019272 | 0.96514 | 1.1151 | | " Middle" | 2534 | 2550.609 | 1.0066 | 0.018608 | 0.97699 | 1.1113 | - | " Outer" | 3227 | 3228.948 | 1.0006 | 0.014427 | 0.97413 | 1.0473 | - | "Corrected energy" | 8563 |5.662048e+07 | 6612.2 | 7466.4 | 398.04 | 1.1680e+05 | - | "Delta(E)" | 8563 | 1745661 | 203.86 | 206.95 | -2370.9 | 3316.7 | + | " Outer" | 3228 | 3229.945 | 1.0006 | 0.014427 | 0.97413 | 1.0473 | + | "Corrected energy" | 8563 |5.661698e+07 | 6611.8 | 7466.5 | 398.04 | 1.1680e+05 | + | "Delta(E)" | 8563 | 1745966 | 203.90 | 206.95 | -2370.9 | 3316.7 | | "Pileup offset" | 8563 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup scale" | 8563 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "Pileup subtracted ratio" | 8563 | 8563 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | @@ -704,28 +704,28 @@ ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2908 | 236241.6 | 81.239 | 0.56430 | 81.241 | 81.241 | | " Middle" | 2552 | 243208.2 | 95.301 | 0.63468 | 95.304 | 95.304 | - | " Outer" | 4849 | 527937.1 | 108.88 | 1.0175 | 108.88 | 108.88 | + | " Outer" | 4848 | 527828.2 | 108.88 | 1.0172 | 108.88 | 108.88 | | " Inner" | 2908 | 42972.79 | 14.777 | 0.085106 | 14.778 | 14.778 | | " Middle" | 2552 | 36838.07 | 14.435 | 0.011066 | 14.435 | 14.435 | - | " Outer" | 4849 | 70864.56 | 14.614 | 0.0000 | 14.614 | 14.614 | - | "Delta(Z)" | 10309 | 1106104 | 107.29 | 11.476 | 76.478 | 159.46 | + | " Outer" | 4848 | 70849.95 | 14.614 | 0.0000 | 14.614 | 14.614 | + | "Delta(Z)" | 10308 | 1105979 | 107.29 | 11.475 | 76.478 | 159.46 | | "Delta(Z) Inner" | 2908 | 312568.6 | 107.49 | 11.829 | 76.478 | 149.83 | | "Delta(Z) Middle" | 2552 | 270636.3 | 106.05 | 10.475 | 79.570 | 147.36 | - | "Delta(Z) Outer" | 4849 | 522899.4 | 107.84 | 11.713 | 78.073 | 159.46 | + | "Delta(Z) Outer" | 4848 | 522774.7 | 107.83 | 11.711 | 78.073 | 159.46 | ToolSvc.SCorrectionPhoton SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 10309 | 867.4273 | 0.084143 | 12.575 | -23.059 | 22.930 | - | "Delta(Y)" | 10309 | 1111.205 | 0.10779 | 12.581 | -23.059 | 22.930 | + | "Delta(X)" | 10308 | 848.0812 | 0.082274 | 12.574 | -23.059 | 22.930 | + | "Delta(Y)" | 10308 | 1126.848 | 0.10932 | 12.580 | -23.059 | 22.930 | ToolSvc.ECorrectionPhoton SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2908 | 2889.369 | 0.99359 | 0.019029 | 0.96447 | 1.1151 | | " Middle" | 2552 | 2563.426 | 1.0045 | 0.018694 | 0.97671 | 1.1101 | - | " Outer" | 4849 | 4831.688 | 0.99643 | 0.015212 | 0.97356 | 1.0515 | - | "Corrected energy" | 10309 |3.946654e+07 | 3828.4 | 5725.2 | 169.51 | 1.0401e+05 | - | "Delta(E)" | 10309 | -123611 | -11.991 | 140.75 | -2685.6 | 3043.0 | - | "Pileup offset" | 10309 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 10309 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 10309 | 10309 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | " Outer" | 4848 | 4830.691 | 0.99643 | 0.015223 | 0.97356 | 1.0515 | + | "Corrected energy" | 10308 |3.946234e+07 | 3828.3 | 5725.5 | 169.51 | 1.0401e+05 | + | "Delta(E)" | 10308 | -123597.3 | -11.990 | 140.75 | -2685.6 | 3043.0 | + | "Pileup offset" | 10308 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 10308 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 10308 | 10308 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.CaloFutureLCorrection SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 178 | 14460.93 | 81.241 | 0.0000 | 81.241 | 81.241 | @@ -821,12 +821,12 @@ VeloTrackChecker.LoKi::Hybrid::M... SUCCESS Number of counters : 1 | "# loaded from PYTHON" | 12 | 12 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5798 | 37150 | 6.4074 | - | "#tracks with hits added" | 5798 | + | "#UT hits added" | 5792 | 37086 | 6.4030 | + | "#tracks with hits added" | 5792 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5877 | 37548 | 6.3890 | - | "#tracks with hits added" | 5877 | + | "#UT hits added" | 5879 | 37534 | 6.3844 | + | "#tracks with hits added" | 5879 | RichRecPixelClusters SUCCESS 1D histograms in directory "RICH/RichRecPixelClusters" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1/clusterSize | "Rich1 Pixel Cluster Sizes" | 221555 | 1.2981 | 0.98957 | 7.9566 | 129.1 | @@ -842,50 +842,50 @@ RichRecPixelQC SUCCESS 1D histograms in directory "RICH/Ric RiCKResDownstream SUCCESS 1D histograms in directory "RICH/RiCKResDownstream" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 13877 | 7.1594e-05 | 0.0020758 | -0.23566 | -0.43167 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 26015 | 8.7154e-05 | 0.0021332 | -0.19422 | -0.47277 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 26015 | 3.1328 | 1.7951 | 0.011426 | -1.1562 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 26015 | 0.047244 | 0.0064001 | -1.08 | 0.049405 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 12138 | 0.00010546 | 0.0021987 | -0.15544 | -0.52885 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 26124 | 8.9759e-05 | 0.0021312 | -0.19472 | -0.46917 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 26124 | 3.1323 | 1.7955 | 0.01175 | -1.1576 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 26124 | 0.047241 | 0.0064085 | -1.0812 | 0.048128 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 12247 | 0.00011091 | 0.0021937 | -0.15695 | -0.52088 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 8734 | 4.7144e-05 | 0.00127 | -0.045193 | -0.90646 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 8076 | 0.00014002 | 0.0012496 | -0.069352 | -0.84482 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 16810 | 9.1485e-05 | 0.0012612 | -0.05809 | -0.87668 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 16810 | 3.0743 | 1.7948 | 0.068189 | -1.1788 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 16810 | 0.027183 | 0.0040896 | -1.8222 | 3.4025 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 8092 | 0.00014056 | 0.001249 | -0.069157 | -0.84338 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 16826 | 9.1803e-05 | 0.0012609 | -0.058072 | -0.87593 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 16826 | 3.0746 | 1.7953 | 0.067785 | -1.1797 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 16826 | 0.027184 | 0.0040879 | -1.8233 | 3.4085 | RiTkMaterialDownstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialDownstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 413 | 0.037594 | 0.00095326 | 3.0186 | 6.2059 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 413 | 3.4614e-05 | 6.118e-12 |-6.4185e+12 | 1.1928e+17 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 413 | 1072.5 | 15.736 | -0.099378 | -1.1824 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 1045 | 0.055916 | 0.041111 | 0.59258 | -1.5203 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 1045 | 2.3802e-05 | 1.5784e-05 | 0.59442 | -1.5433 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 1045 | 2229.2 | 241.61 | -0.20287 | -0.79431 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 414 | 0.037596 | 0.00095258 | 3.0109 | 6.1823 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 414 | 3.4614e-05 | 6.118e-12 |-6.4185e+12 | 1.1928e+17 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 414 | 1072.5 | 15.752 | -0.10143 | -1.1868 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 1049 | 0.055881 | 0.041108 | 0.59467 | -1.5182 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 1049 | 2.3787e-05 | 1.5782e-05 | 0.59616 | -1.5417 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 1049 | 2229.1 | 241.47 | -0.20153 | -0.79479 | RiTkSignalYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 12 | 7.7022 | 8.4809 | 1.3963 | 1.2383 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1069 | 36.082 | 4.1762 | -2.1805 | 6.1685 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 183 | 19.65 | 9.8538 | -0.061553 | -0.96491 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 998 | 25.269 | 10.103 | -0.63166 | -0.53365 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 841 | 22.803 | 11.328 | -0.43234 | -0.99971 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1073 | 36.071 | 4.1959 | -2.1824 | 6.1226 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 184 | 19.628 | 9.8318 | -0.055044 | -0.95819 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1002 | 25.269 | 10.094 | -0.63062 | -0.53242 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 844 | 22.813 | 11.306 | -0.43033 | -0.9984 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 61 | 16.969 | 8.9897 | -0.29385 | -1.0199 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 5 | 9.5101 | 6.2525 | -0.14223 | -1.3493 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 428 | 17.614 | 6.5816 | -0.61523 | -0.8456 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 430 | 17.625 | 6.5704 | -0.62026 | -0.83595 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 115 | 11.195 | 6.0056 | -0.24189 | -1.0528 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 415 | 16.229 | 6.6835 | -0.65116 | -0.84319 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 396 | 15.57 | 6.5955 | -0.64996 | -0.86097 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 417 | 16.236 | 6.6683 | -0.65576 | -0.83097 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 398 | 15.575 | 6.5796 | -0.65352 | -0.84917 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 37 | 8.546 | 5.778 | 0.40781 | -0.90808 | RiTkEmittedYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 13 | 124.76 | 135.86 | 1.4071 | 1.3917 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1069 | 591.73 | 57.282 | -3.627 | 13.214 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 188 | 320.56 | 162.45 | -0.18399 | -1.0046 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1002 | 415.28 | 160.03 | -0.74521 | -0.45527 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 854 | 372.65 | 182.54 | -0.51964 | -0.97987 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1073 | 591.57 | 57.658 | -3.6051 | 12.994 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 189 | 320.15 | 162.12 | -0.17709 | -1.0004 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1006 | 415.29 | 159.87 | -0.74414 | -0.4529 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 858 | 372.44 | 182.51 | -0.51706 | -0.97891 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 64 | 272.01 | 156.41 | -0.18094 | -1.0681 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 6 | 130.63 | 102.99 | 0.14116 | -1.4812 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1313 | 408.59 | 52.433 | -0.23314 | -0.86211 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1318 | 408.63 | 52.403 | -0.23316 | -0.86155 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 120 | 174.89 | 97.195 | -0.28557 | -1.1906 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 862 | 242.99 | 106.16 | -0.86511 | -0.4462 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 656 | 229.73 | 102.18 | -0.69938 | -0.64893 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 865 | 242.93 | 106.32 | -0.86477 | -0.45093 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 658 | 229.93 | 102.11 | -0.70293 | -0.64235 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 38 | 133.75 | 88.143 | 0.4323 | -0.77097 | RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -894,454 +894,454 @@ RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/Ric | All/Rejected/GhostProb | "Track Ghost Probability" | 156 | 0.19438 | 0.11231 | 0.02625 | -1.0586 | | All/Rejected/P | "Track Momentum" | 156 | 3874.8 | 1272.6 | 0.86578 | 0.39826 | | All/Rejected/Pt | "Track Transverse Momentum" | 156 | 117.28 | 49.571 | 2.5745 | 4.4824 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1207 | 1.4633 | 0.64605 | 0.4391 | -0.63413 | - | All/Selected/CloneDist | "Track Clone Distance" | 1207 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 1207 | 0.062142 | 0.099494 | 1.8187 | 2.1617 | - | All/Selected/P | "Track Momentum" | 1207 | 7474.7 | 8249.6 | 3.4919 | 17.513 | - | All/Selected/Pt | "Track Transverse Momentum" | 1207 | 413.39 | 395.16 | 3.0806 | 15.476 | - | nRichTracks | "# Rich Tracks / Event" | 100 | 12.07 | 8.7421 | 0.90628 | 0.68385 | - | nTracks | "# Tracks / Event" | 100 | 13.63 | 9.5809 | 0.80455 | 0.32327 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1211 | 1.4618 | 0.64592 | 0.44017 | -0.63029 | + | All/Selected/CloneDist | "Track Clone Distance" | 1211 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 1211 | 0.061979 | 0.099384 | 1.8234 | 2.1805 | + | All/Selected/P | "Track Momentum" | 1211 | 7472.3 | 8238.7 | 3.4948 | 17.558 | + | All/Selected/Pt | "Track Transverse Momentum" | 1211 | 413.49 | 394.72 | 3.0813 | 15.495 | + | nRichTracks | "# Rich Tracks / Event" | 100 | 12.11 | 8.776 | 0.89011 | 0.62192 | + | nTracks | "# Tracks / Event" | 100 | 13.67 | 9.6084 | 0.79121 | 0.27935 | RichRecPixBkgsDownstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsDownstream" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.089429 | 0.077293 | 1.2193 | 1.2892 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.046904 | 0.037714 | 1.8158 | 4.7009 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.08942 | 0.077289 | 1.2197 | 1.2905 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.046905 | 0.037715 | 1.8155 | 4.7001 | RichDLLsDownstream SUCCESS 1D histograms in directory "RICH/RichDLLsDownstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 1207 | 0.32974 | 11.313 | -0.36146 | 3.6804 | - | deuteron/dll | "deuteron DLL" | 1207 | 0.28684 | 11.269 | -0.37558 | 3.7063 | - | electron/dll | "electron DLL" | 1207 | -7.4691 | 14.677 | 0.26822 | 1.0874 | - | kaon/dll | "kaon DLL" | 1207 | -0.59473 | 11.033 | -0.83713 | 3.6019 | - | muon/dll | "muon DLL" | 1207 | -3.016 | 7.523 | -1.3278 | 6.1108 | - | pion/dll | "pion DLL" | 1207 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 1207 | 0.11751 | 11.179 | -0.49719 | 3.5893 | + | below_threshold/dll | "below_threshold DLL" | 1211 | 0.28041 | 11.382 | -0.39047 | 3.6725 | + | deuteron/dll | "deuteron DLL" | 1211 | 0.23766 | 11.337 | -0.40464 | 3.6984 | + | electron/dll | "electron DLL" | 1211 | -7.556 | 14.678 | 0.25717 | 1.099 | + | kaon/dll | "kaon DLL" | 1211 | -0.64592 | 11.119 | -0.86739 | 3.6315 | + | muon/dll | "muon DLL" | 1211 | -3.0408 | 7.5532 | -1.3367 | 6.0663 | + | pion/dll | "pion DLL" | 1211 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 1211 | 0.068125 | 11.249 | -0.52471 | 3.5828 | RiTkDetectableYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 12 | 11.601 | 12.721 | 1.4124 | 1.3209 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1069 | 54.357 | 5.262 | -3.6282 | 13.221 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 183 | 29.696 | 14.629 | -0.14731 | -1.029 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 998 | 37.934 | 14.838 | -0.73853 | -0.47054 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 841 | 34.32 | 16.688 | -0.52026 | -0.97331 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1073 | 54.342 | 5.2965 | -3.6024 | 12.979 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 184 | 29.651 | 14.601 | -0.13929 | -1.0261 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1002 | 37.935 | 14.823 | -0.73743 | -0.46819 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 844 | 34.339 | 16.655 | -0.51777 | -0.97155 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 61 | 25.611 | 13.843 | -0.17832 | -1.0179 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 5 | 14.459 | 9.0037 | -0.10608 | -1.2923 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 428 | 34.395 | 2.2539 | -0.20702 | -0.58964 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 430 | 34.399 | 2.2512 | -0.21119 | -0.58635 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 115 | 16.913 | 8.9387 | -0.32404 | -1.1479 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 415 | 30.038 | 3.4306 | -1.455 | 3.7203 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 396 | 27.444 | 4.9518 | -1.0781 | 0.99244 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 417 | 30.043 | 3.4275 | -1.4541 | 3.7217 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 398 | 27.445 | 4.9457 | -1.077 | 0.99382 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 37 | 12.61 | 8.3452 | 0.42336 | -0.82511 | RiTkGeomEffsDownstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 12 | 0.65777 | 0.079317 | 0.29697 | -1.0962 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 1069 | 0.66384 | 0.04195 | -1.0954 | 7.9163 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 183 | 0.66337 | 0.057358 | 0.023349 | 0.56858 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 998 | 0.66589 | 0.052249 | -0.34977 | 0.49375 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 841 | 0.66065 | 0.064319 | -1.4694 | 8.5103 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 1073 | 0.6638 | 0.041875 | -1.0952 | 7.9499 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 184 | 0.66367 | 0.057346 | 0.011106 | 0.55517 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 1002 | 0.66587 | 0.052399 | -0.36136 | 0.49431 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 844 | 0.66061 | 0.064271 | -1.4675 | 8.5025 | | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 61 | 0.66452 | 0.048386 | 0.025046 | -0.70507 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 5 | 0.61752 | 0.070958 | -0.53282 | -1.4443 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 428 | 0.51881 | 0.20199 | -0.62835 | -1.0139 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 430 | 0.51906 | 0.20164 | -0.63177 | -1.0055 | | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 115 | 0.66385 | 0.065869 | -0.90921 | 1.3486 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 415 | 0.53008 | 0.1998 | -0.73257 | -0.76684 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 396 | 0.54857 | 0.1915 | -0.91034 | -0.33031 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 417 | 0.53031 | 0.19937 | -0.73698 | -0.75494 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 398 | 0.5489 | 0.19124 | -0.91257 | -0.3212 | | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 37 | 0.67055 | 0.069286 | -0.31665 | -0.23671 | RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResDownstreamTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 8572 |-7.6059e-05 | 0.002071 | -0.29723 | -0.42732 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 15346 |-6.7274e-05 | 0.0021285 | -0.26797 | -0.47141 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 15346 | 3.1228 | 1.7889 | 0.016466 | -1.1505 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 15346 | 0.047115 | 0.0063421 | -1.0215 | -0.052722 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 6774 |-5.5909e-05 | 0.0022005 | -0.23742 | -0.535 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 15455 |-6.1685e-05 | 0.0021255 | -0.26905 | -0.46438 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 15455 | 3.122 | 1.7897 | 0.016984 | -1.1529 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 15455 | 0.047111 | 0.0063563 | -1.0242 | -0.053302 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 6883 |-4.3426e-05 | 0.0021926 | -0.24093 | -0.51877 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 2903 | 1.368e-05 | 0.0012217 | -0.065138 | -0.79108 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 3229 | 0.00011984 | 0.0011236 | -0.045296 | -0.64252 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 6132 | 6.7775e-05 | 0.001174 | -0.067514 | -0.70587 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 6132 | 3.0393 | 1.806 | 0.10876 | -1.2194 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 6132 | 0.026718 | 0.004367 | -1.4707 | 1.622 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 3245 | 0.00012139 | 0.0011228 | -0.043865 | -0.64008 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 6148 | 6.8757e-05 | 0.0011734 | -0.067125 | -0.70411 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 6148 | 3.0401 | 1.8072 | 0.10755 | -1.2217 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 6148 | 0.026722 | 0.0043623 | -1.4737 | 1.6348 | RiCKResLong SUCCESS 1D histograms in directory "RICH/RiCKResLong" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 100689 |-6.4142e-05 | 0.0019886 | -0.26212 | -0.28463 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 205742 |-6.9468e-05 | 0.0019845 | -0.26575 | -0.29325 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 205742 | 3.1295 | 1.8147 | 0.0062182 | -1.1874 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 205742 | 0.047247 | 0.0063005 | -1.1267 | 0.13414 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 105053 |-7.4571e-05 | 0.0019806 | -0.26933 | -0.30178 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 77857 | 1.7451e-05 | 0.0012047 | 0.021898 | -0.73415 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 85224 | 3.0029e-05 | 0.0012023 | 0.025824 | -0.73716 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 163081 | 2.3988e-05 | 0.0012035 | 0.023901 | -0.73562 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 163081 | 3.1353 | 1.7968 | 0.0043939 | -1.1837 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 163081 | 0.026799 | 0.0044786 | -1.7208 | 2.6116 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 100845 |-6.3577e-05 | 0.001988 | -0.26201 | -0.28404 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 206128 |-6.9895e-05 | 0.0019843 | -0.26579 | -0.29354 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 206128 | 3.1294 | 1.815 | 0.0065854 | -1.1877 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 206128 | 0.047247 | 0.0062979 | -1.1261 | 0.13411 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 105283 |-7.5944e-05 | 0.0019807 | -0.26952 | -0.30291 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 77916 | 1.7455e-05 | 0.0012047 | 0.021884 | -0.73401 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 85075 | 3.0349e-05 | 0.001203 | 0.025622 | -0.73847 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 162991 | 2.4148e-05 | 0.0012038 | 0.023798 | -0.73623 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 162991 | 3.1355 | 1.7965 | 0.0040461 | -1.1831 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 162991 | 0.026799 | 0.004479 | -1.7204 | 2.6095 | RiTkMaterialLong SUCCESS 1D histograms in directory "RICH/RiTkMaterialLong" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 2158 | 0.037832 | 0.0023809 | 18.016 | 377.34 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 2158 | 3.4689e-05 | 1.7457e-06 | 23.683 | 550.71 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 2158 | 1075.8 | 15.265 | -0.34319 | -1.016 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 5048 | 0.043859 | 0.035845 | 1.2718 | -0.19529 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 5048 | 1.9475e-05 | 1.3846e-05 | 1.2722 | -0.21809 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 5048 | 2127.7 | 229.57 | 0.27211 | -0.77414 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 2160 | 0.037829 | 0.0023805 | 18.012 | 377.35 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 2160 | 3.4689e-05 | 1.7449e-06 | 23.694 | 551.23 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 2160 | 1075.8 | 15.279 | -0.33518 | -1.0228 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 5041 | 0.043887 | 0.035859 | 1.2696 | -0.20072 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 5041 | 1.9488e-05 | 1.3857e-05 | 1.2705 | -0.22221 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 5041 | 2127.8 | 229.74 | 0.27235 | -0.77405 | RiTkSignalYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 15.139 | 9.3964 | 0.13179 | -1.0131 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4819 | 36.991 | 2.4731 | -0.66488 | 5.605 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1449 | 20.727 | 10.736 | -0.28267 | -0.99932 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4717 | 29.424 | 8.5194 | -1.2895 | 1.2535 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4362 | 26.817 | 10.167 | -0.97935 | 0.044549 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 553 | 18.484 | 10.473 | -0.12031 | -1.0795 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 8.9747 | 5.7593 | -0.028121 | -1.3514 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3303 | 18.923 | 5.9469 | -1.0731 | 0.29001 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1285 | 11.928 | 6.1409 | -0.31307 | -1.0098 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3227 | 17.717 | 5.9577 | -1.0839 | 0.10287 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3137 | 17.022 | 5.9184 | -1.0434 | 0.013777 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 468 | 9.7806 | 6.0811 | 0.10354 | -1.1214 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 15.139 | 9.3964 | 0.13177 | -1.0132 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4820 | 36.989 | 2.47 | -0.6383 | 5.4149 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1452 | 20.733 | 10.741 | -0.28579 | -0.99936 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4717 | 29.419 | 8.5337 | -1.288 | 1.24 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4361 | 26.817 | 10.185 | -0.98135 | 0.044002 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 554 | 18.48 | 10.464 | -0.1191 | -1.0766 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 8.9748 | 5.7593 | -0.02818 | -1.3514 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3298 | 18.933 | 5.9438 | -1.0762 | 0.29765 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1285 | 11.922 | 6.1435 | -0.31271 | -1.009 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3223 | 17.725 | 5.9576 | -1.0874 | 0.11047 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3133 | 17.031 | 5.9145 | -1.0472 | 0.025139 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 467 | 9.7995 | 6.0741 | 0.10088 | -1.1184 | RiTkEmittedYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 152 | 249.81 | 154.64 | 0.099117 | -0.94672 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4820 | 606.73 | 18.331 | -5.0051 | 70.49 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1490 | 337.06 | 177.33 | -0.35481 | -1.0654 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4736 | 483.44 | 134.96 | -1.5286 | 1.8251 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4402 | 439.29 | 164.44 | -1.1078 | 0.18532 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 572 | 300.49 | 172.57 | -0.17431 | -1.1699 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 100 | 142.65 | 91.7 | -0.0022541 | -1.3344 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 6208 | 388.68 | 47.901 | 0.34453 | -0.76309 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1330 | 186.52 | 98.595 | -0.36871 | -1.0669 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 5174 | 273.36 | 92.653 | -1.3698 | 0.94209 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4440 | 254.4 | 97.047 | -1.1217 | 0.1977 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 484 | 152.88 | 95.302 | 0.062736 | -1.1457 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 152 | 249.81 | 154.64 | 0.099095 | -0.94676 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4821 | 606.77 | 17.918 | -4.6804 | 67.332 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1493 | 337.13 | 177.38 | -0.35746 | -1.0648 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4736 | 483.35 | 135.15 | -1.5262 | 1.81 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4400 | 439.35 | 164.6 | -1.1088 | 0.18339 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 573 | 300.45 | 172.42 | -0.17386 | -1.1669 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 100 | 142.65 | 91.701 | -0.0023184 | -1.3344 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 6202 | 388.68 | 47.932 | 0.34524 | -0.76304 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1330 | 186.43 | 98.638 | -0.36921 | -1.064 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 5165 | 273.52 | 92.586 | -1.3727 | 0.95239 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4434 | 254.54 | 97.017 | -1.1253 | 0.20698 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 483 | 153.15 | 95.22 | 0.060216 | -1.144 | RichTkSelEffLong SUCCESS 1D histograms in directory "RICH/RichTkSelEffLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 323 | 1.5581 | 0.66892 | 0.54277 | -0.81591 | - | All/Rejected/CloneDist | "Track Clone Distance" | 323 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 323 | 0.147 | 0.11765 | 0.6675 | -0.95199 | - | All/Rejected/P | "Track Momentum" | 323 | 4899.5 | 5325 | 11.504 | 140.23 | - | All/Rejected/Pt | "Track Transverse Momentum" | 323 | 89.145 | 121.19 | 9.8545 | 113.11 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 6071 | 1.3021 | 0.50791 | 1.1137 | 1.0596 | - | All/Selected/CloneDist | "Track Clone Distance" | 6071 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 6071 | 0.039895 | 0.073943 | 2.6498 | 6.8104 | - | All/Selected/P | "Track Momentum" | 6071 | 11603 | 12256 | 2.8005 | 10.658 | - | All/Selected/Pt | "Track Transverse Momentum" | 6071 | 560.23 | 526.03 | 3.2363 | 17.82 | - | nRichTracks | "# Rich Tracks / Event" | 100 | 60.71 | 37.277 | 0.54887 | -0.43231 | - | nTracks | "# Tracks / Event" | 100 | 63.94 | 39.298 | 0.55411 | -0.38168 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 320 | 1.5602 | 0.67045 | 0.53426 | -0.82435 | + | All/Rejected/CloneDist | "Track Clone Distance" | 320 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 320 | 0.14769 | 0.11821 | 0.65297 | -0.98808 | + | All/Rejected/P | "Track Momentum" | 320 | 4899 | 5349.7 | 11.452 | 138.93 | + | All/Rejected/Pt | "Track Transverse Momentum" | 320 | 89.168 | 121.74 | 9.8104 | 112.06 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 6069 | 1.3015 | 0.50806 | 1.1159 | 1.0672 | + | All/Selected/CloneDist | "Track Clone Distance" | 6069 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 6069 | 0.039776 | 0.073819 | 2.6675 | 6.9282 | + | All/Selected/P | "Track Momentum" | 6069 | 11601 | 12257 | 2.8039 | 10.687 | + | All/Selected/Pt | "Track Transverse Momentum" | 6069 | 560.87 | 526.18 | 3.232 | 17.789 | + | nRichTracks | "# Rich Tracks / Event" | 100 | 60.69 | 37.277 | 0.55413 | -0.42123 | + | nTracks | "# Tracks / Event" | 100 | 63.89 | 39.247 | 0.55746 | -0.36939 | RichRecPixBkgsLong SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsLong" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.069472 | 0.060435 | 1.3056 | 1.5885 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.042336 | 0.036757 | 1.9497 | 5.4704 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.069477 | 0.060453 | 1.3064 | 1.588 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.042338 | 0.036755 | 1.9502 | 5.4723 | RichDLLsLong SUCCESS 1D histograms in directory "RICH/RichDLLsLong" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 6071 | -2.6803 | 15.551 | -0.30356 | 0.91205 | - | deuteron/dll | "deuteron DLL" | 6071 | -2.8081 | 15.542 | -0.30501 | 0.90704 | - | electron/dll | "electron DLL" | 6071 | -12.53 | 13.806 | -0.25718 | 0.63805 | - | kaon/dll | "kaon DLL" | 6071 | -3.7615 | 15.46 | -0.3971 | 0.86317 | - | muon/dll | "muon DLL" | 6071 | -6.921 | 9.8654 | -1.551 | 3.0147 | - | pion/dll | "pion DLL" | 6071 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 6071 | -3.2061 | 15.65 | -0.31036 | 0.92099 | + | below_threshold/dll | "below_threshold DLL" | 6069 | -2.6731 | 15.555 | -0.30513 | 0.90994 | + | deuteron/dll | "deuteron DLL" | 6069 | -2.8004 | 15.547 | -0.30586 | 0.90566 | + | electron/dll | "electron DLL" | 6069 | -12.519 | 13.829 | -0.24409 | 0.6455 | + | kaon/dll | "kaon DLL" | 6069 | -3.7573 | 15.46 | -0.39766 | 0.86437 | + | muon/dll | "muon DLL" | 6069 | -6.9119 | 9.8556 | -1.5536 | 3.0232 | + | pion/dll | "pion DLL" | 6069 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 6069 | -3.1995 | 15.655 | -0.31206 | 0.92173 | RiTkDetectableYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 23.022 | 14.087 | 0.10838 | -0.89867 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4819 | 55.735 | 1.6839 | -4.9848 | 70.19 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1449 | 31.3 | 16.014 | -0.35855 | -1.0457 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4717 | 44.332 | 12.377 | -1.4927 | 1.6788 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4362 | 40.379 | 15.01 | -1.1025 | 0.18535 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 553 | 27.943 | 15.608 | -0.18091 | -1.135 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 13.551 | 8.6399 | -0.037743 | -1.3031 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3303 | 33.925 | 2.1813 | 0.12958 | -0.34794 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1285 | 17.901 | 9.1365 | -0.38209 | -1.0262 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3227 | 30.461 | 3.2113 | -1.9694 | 6.5766 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3137 | 28.316 | 4.7514 | -1.6645 | 3.4359 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 468 | 14.569 | 8.9478 | 0.06182 | -1.1638 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 23.022 | 14.087 | 0.10835 | -0.89872 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4820 | 55.738 | 1.646 | -4.6134 | 66.207 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1452 | 31.304 | 16.02 | -0.36161 | -1.0442 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4717 | 44.323 | 12.395 | -1.4904 | 1.6644 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4361 | 40.375 | 15.036 | -1.104 | 0.18428 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 554 | 27.938 | 15.594 | -0.18009 | -1.1321 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 13.551 | 8.64 | -0.037814 | -1.3031 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3298 | 33.922 | 2.1815 | 0.12988 | -0.35164 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1285 | 17.892 | 9.1414 | -0.38176 | -1.0253 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3223 | 30.465 | 3.2107 | -1.9732 | 6.6012 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3133 | 28.324 | 4.7464 | -1.6707 | 3.4709 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 467 | 14.597 | 8.9375 | 0.058886 | -1.1605 | RiTkGeomEffsLong SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 147 | 0.65936 | 0.073558 | 0.040177 | -0.31127 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4819 | 0.66372 | 0.039866 | -0.50543 | 3.7205 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1449 | 0.66404 | 0.061481 | -0.27252 | 2.2992 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4717 | 0.66366 | 0.052628 | -0.53648 | 2.5112 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4362 | 0.66454 | 0.055919 | -0.51098 | 2.8825 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 553 | 0.66013 | 0.066713 | -0.32288 | 1.7749 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4820 | 0.66364 | 0.04004 | -0.55395 | 4.0147 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1452 | 0.6641 | 0.061354 | -0.27577 | 2.3248 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4717 | 0.66365 | 0.052689 | -0.54088 | 2.5396 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4361 | 0.66456 | 0.055922 | -0.50911 | 2.8778 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 554 | 0.66008 | 0.066663 | -0.32083 | 1.7796 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 97 | 0.65622 | 0.07038 | -1.9596 | 9.0619 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3303 | 0.56386 | 0.18452 | -1.0915 | 0.065259 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1285 | 0.66902 | 0.066623 | -1.035 | 6.2863 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 3227 | 0.57427 | 0.17638 | -1.1927 | 0.42397 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 3137 | 0.58793 | 0.16581 | -1.3175 | 0.89396 | - | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 468 | 0.66938 | 0.065578 | -0.076115 | 1.1499 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3298 | 0.56419 | 0.18441 | -1.0949 | 0.072759 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1285 | 0.66896 | 0.066573 | -1.0356 | 6.3059 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 3223 | 0.57449 | 0.17642 | -1.1956 | 0.42991 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 3133 | 0.58815 | 0.16576 | -1.3221 | 0.90785 | + | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 467 | 0.66946 | 0.065679 | -0.078304 | 1.1344 | RiCKResLongTight SUCCESS 1D histograms in directory "RICH/RiCKResLongTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 74373 | -0.0002305 | 0.0019907 | -0.30642 | -0.32998 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 154029 |-0.00024493 | 0.0019864 | -0.30609 | -0.34961 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 154029 | 3.128 | 1.8147 | 0.0079191 | -1.1844 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 154029 | 0.047212 | 0.0061689 | -1.103 | 0.14399 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 79656 |-0.00025835 | 0.0019822 | -0.30599 | -0.36823 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 35702 |-9.7501e-05 | 0.0011502 | 0.021214 | -0.61923 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 37992 |-6.9851e-05 | 0.0011429 | 0.037541 | -0.60167 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 73694 |-8.3201e-05 | 0.0011465 | 0.029349 | -0.60961 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 73694 | 3.1312 | 1.7883 | 0.010996 | -1.1802 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 73694 | 0.026484 | 0.0045991 | -1.5901 | 2.0368 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 74374 |-0.00023049 | 0.0019907 | -0.30642 | -0.32993 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 154337 |-0.00024593 | 0.0019864 | -0.30653 | -0.35034 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 154337 | 3.1276 | 1.8151 | 0.0084329 | -1.1847 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 154337 | 0.04721 | 0.006172 | -1.1029 | 0.14207 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 79963 |-0.00026022 | 0.0019823 | -0.30686 | -0.36963 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 35536 |-9.6026e-05 | 0.0011497 | 0.021936 | -0.61687 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 38130 |-6.7523e-05 | 0.0011425 | 0.035616 | -0.60148 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 73666 |-8.1226e-05 | 0.0011461 | 0.028738 | -0.60837 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 73666 | 3.1322 | 1.7872 | 0.010172 | -1.1785 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 73666 | 0.026488 | 0.004598 | -1.5927 | 2.0472 | RiCKResUpstream SUCCESS 1D histograms in directory "RICH/RiCKResUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 30277 |-0.00059108 | 0.0021784 | -0.12183 | -0.80021 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 60635 |-0.00059682 | 0.0021916 | -0.1313 | -0.83 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 60635 | 3.1334 | 1.8006 | 0.0051924 | -1.2049 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 60635 | 0.044719 | 0.0067227 | -0.4474 | -0.97626 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 30026 |-0.00059259 | 0.002178 | -0.1185 | -0.79945 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 60384 |-0.00059762 | 0.0021915 | -0.12968 | -0.82977 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 60384 | 3.1313 | 1.8003 | 0.0077341 | -1.2043 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 60384 | 0.044716 | 0.0067264 | -0.44769 | -0.97689 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 30358 |-0.00060278 | 0.0022053 | -0.14057 | -0.86036 | RiTkMaterialUpstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialUpstream" : 3 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 481 | 0.038929 | 0.0053219 | 8.3967 | 75.258 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 481 | 3.5036e-05 | 4.1215e-06 | 9.8351 | 93.581 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 481 | 1070.7 | 17.181 | -0.023208 | -1.2534 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 482 | 0.038923 | 0.0053166 | 8.4075 | 75.443 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 482 | 3.5035e-05 | 4.1172e-06 | 9.8457 | 93.786 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 482 | 1070.8 | 17.074 | -0.029621 | -1.2383 | RiTkSignalYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 34 | 13.786 | 10.36 | 0.49504 | -0.72064 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 37.747 | 2.8475 | -0.10277 | 1.5657 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 247 | 23.444 | 10.27 | -0.6376 | -0.47905 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 29.549 | 8.4829 | -0.93109 | 0.09605 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 648 | 26.246 | 11.452 | -0.79391 | -0.63647 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 123 | 17.708 | 10.744 | 0.061503 | -1.053 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 37.751 | 2.8498 | -0.10573 | 1.5519 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 246 | 23.425 | 10.286 | -0.63244 | -0.48942 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 29.588 | 8.4706 | -0.94516 | 0.1337 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 648 | 26.322 | 11.384 | -0.80733 | -0.59906 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 123 | 17.714 | 10.739 | 0.059909 | -1.0498 | RiTkEmittedYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 34 | 235.58 | 168.68 | 0.45459 | -0.75046 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 617.18 | 26.21 | -0.80745 | 12.572 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 250 | 379.51 | 165.06 | -0.72491 | -0.50625 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 485.03 | 129.63 | -1.122 | 0.33562 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 657 | 426.57 | 183.84 | -0.89979 | -0.54397 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 127 | 288.97 | 173.41 | -0.044574 | -1.1185 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 617.17 | 26.169 | -0.81322 | 12.657 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 249 | 379.36 | 165.38 | -0.72094 | -0.51811 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 485.69 | 129.37 | -1.1398 | 0.38266 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 657 | 427.87 | 182.76 | -0.91519 | -0.50325 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 127 | 289.03 | 173.35 | -0.043119 | -1.1212 | RichTkSelEffUpstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffUpstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 123 | 1.2039 | 0.4806 | 0.65386 | 0.60332 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 123 | 1.2031 | 0.48055 | 0.6582 | 0.60577 | | All/Rejected/CloneDist | "Track Clone Distance" | 123 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 123 | 0.039373 | 0.058927 | 2.1734 | 4.7682 | - | All/Rejected/P | "Track Momentum" | 123 | 40374 | 18832 | 1.0592 | 0.44487 | - | All/Rejected/Pt | "Track Transverse Momentum" | 123 | 986.11 | 727.77 | 2.7513 | 9.4535 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 704 | 1.1843 | 0.54523 | 0.91645 | 0.81248 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 123 | 0.039074 | 0.058838 | 2.1983 | 4.8582 | + | All/Rejected/P | "Track Momentum" | 123 | 40364 | 18828 | 1.0612 | 0.44916 | + | All/Rejected/Pt | "Track Transverse Momentum" | 123 | 954.39 | 641.86 | 2.3492 | 7.0092 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 704 | 1.1885 | 0.5433 | 0.93197 | 0.84664 | | All/Selected/CloneDist | "Track Clone Distance" | 704 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 704 | 0.050584 | 0.064139 | 2.55 | 7.0307 | - | All/Selected/P | "Track Momentum" | 704 | 10188 | 11072 | 2.7967 | 10.917 | - | All/Selected/Pt | "Track Transverse Momentum" | 704 | 888.71 | 572.29 | 2.9158 | 12.609 | - | nRichTracks | "# Rich Tracks / Event" | 100 | 7.04 | 5.3627 | 0.81862 | 0.0028866 | - | nTracks | "# Tracks / Event" | 100 | 8.27 | 6.3259 | 0.80561 | -0.06418 | + | All/Selected/GhostProb | "Track Ghost Probability" | 704 | 0.050739 | 0.063952 | 2.5341 | 6.9935 | + | All/Selected/P | "Track Momentum" | 704 | 10184 | 11065 | 2.8033 | 10.957 | + | All/Selected/Pt | "Track Transverse Momentum" | 704 | 889.8 | 572.28 | 2.987 | 13.388 | + | nRichTracks | "# Rich Tracks / Event" | 100 | 7.04 | 5.4054 | 0.837 | 0.0071731 | + | nTracks | "# Tracks / Event" | 100 | 8.27 | 6.3747 | 0.83487 | -0.0025239 | RichRecPixBkgsUpstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsUpstream" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.09131 | 0.079184 | 1.2117 | 1.2635 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.091281 | 0.07913 | 1.2136 | 1.2735 | RichDLLsUpstream SUCCESS 1D histograms in directory "RICH/RichDLLsUpstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 704 | 0.1895 | 14.271 | -0.44475 | 0.6722 | - | deuteron/dll | "deuteron DLL" | 704 | 0.20487 | 14.238 | -0.48281 | 0.66807 | - | electron/dll | "electron DLL" | 704 | -14.106 | 13.138 | -0.35802 | -0.29352 | - | kaon/dll | "kaon DLL" | 704 | 0.099066 | 14.127 | -0.64114 | 0.83837 | - | muon/dll | "muon DLL" | 704 | -4.9659 | 9.156 | -0.019753 | 6.068 | + | below_threshold/dll | "below_threshold DLL" | 704 | 0.19917 | 14.274 | -0.44561 | 0.67099 | + | deuteron/dll | "deuteron DLL" | 704 | 0.2146 | 14.241 | -0.48365 | 0.66693 | + | electron/dll | "electron DLL" | 704 | -14.044 | 13.179 | -0.33929 | -0.27178 | + | kaon/dll | "kaon DLL" | 704 | 0.11293 | 14.123 | -0.63902 | 0.82911 | + | muon/dll | "muon DLL" | 704 | -4.967 | 9.1653 | -0.015425 | 6.0386 | | pion/dll | "pion DLL" | 704 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 704 | 0.22867 | 14.194 | -0.51907 | 0.72915 | + | proton/dll | "proton DLL" | 704 | 0.23647 | 14.196 | -0.51988 | 0.7285 | RiTkDetectableYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 34 | 20.94 | 15.755 | 0.47859 | -0.80286 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 56.694 | 2.4076 | -0.85281 | 13.314 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 247 | 34.836 | 15.084 | -0.71656 | -0.52098 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 44.276 | 12.203 | -1.1278 | 0.35661 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 648 | 39.343 | 16.754 | -0.90663 | -0.5297 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 123 | 26.775 | 15.796 | -0.048438 | -1.1005 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 56.693 | 2.4039 | -0.8567 | 13.407 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 246 | 34.823 | 15.114 | -0.71277 | -0.53285 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 44.338 | 12.179 | -1.1467 | 0.40716 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 648 | 39.466 | 16.643 | -0.92179 | -0.48893 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 123 | 26.781 | 15.791 | -0.046039 | -1.1052 | RiTkGeomEffsUpstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 34 | 0.66263 | 0.067062 | 0.17918 | -0.67152 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 704 | 0.66596 | 0.04393 | -0.19905 | -0.14958 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 247 | 0.67284 | 0.060255 | -0.73788 | 2.0997 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 703 | 0.66703 | 0.049217 | -0.37676 | 0.32225 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 648 | 0.66662 | 0.055423 | -0.23682 | 0.75734 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 123 | 0.66232 | 0.059638 | -0.16124 | 0.29839 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 704 | 0.66605 | 0.043941 | -0.20287 | -0.14985 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 246 | 0.67259 | 0.060295 | -0.72824 | 2.0939 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 703 | 0.66694 | 0.049376 | -0.37362 | 0.29878 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 648 | 0.66627 | 0.055453 | -0.2419 | 0.74448 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 123 | 0.66216 | 0.058983 | -0.25531 | 0.12627 | RiCKResUpstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResUpstreamTight" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 17968 |-0.00066916 | 0.0021555 | -0.134 | -0.80522 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 37747 |-0.00069151 | 0.0021545 | -0.1532 | -0.84605 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 17968 | -0.0006692 | 0.0021555 | -0.13406 | -0.80531 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 37747 |-0.00069153 | 0.0021545 | -0.15323 | -0.8461 | | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 37747 | 3.1282 | 1.7937 | 0.0094358 | -1.1945 | | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 37747 | 0.044619 | 0.0066792 | -0.42899 | -0.97617 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 19779 |-0.00071293 | 0.0021533 | -0.17175 | -0.88716 | RiCKMCResDownstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResDownstream10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 53100 |-0.00041113 | 0.0021644 | -0.19905 | -0.72366 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 26015 | 8.7154e-05 | 0.0021332 | -0.19422 | -0.47277 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 46693 |-0.00052171 | 0.0023541 | -0.081344 | -1.0219 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 23376 | 6.5063e-05 | 0.0022756 | -0.15439 | -0.74445 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 6407 |-2.1043e-05 | 0.0012101 | -0.38065 | 0.9399 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2639 | 0.00020121 | 0.0011374 | -0.61018 | 2.767 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 46693 | 3.0872 | 1.8087 | 0.044585 | -1.1808 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 6407 | 3.1625 | 1.8141 | -0.016915 | -1.1889 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 46693 | 0.046169 | 0.0065383 | -0.72352 | -0.48482 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 6407 | 0.051545 | 0.0013393 | -0.32903 | 1.0905 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 15466 | 4.2916e-06 | 0.0012225 | -0.012238 | -0.76098 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 16810 | 9.1485e-05 | 0.0012612 | -0.05809 | -0.87668 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12813 | 2.9491e-06 | 0.0013613 | -0.0064203 | -1.1198 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 14312 | 5.862e-05 | 0.001351 | -0.021828 | -1.1028 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2653 | 8.258e-06 | 0.00065957 | -0.082577 | 0.70069 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2498 | 0.00022166 | 0.00079997 | 0.18642 | 0.48062 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 12813 | 3.074 | 1.8126 | 0.064124 | -1.1872 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2653 | 3.1774 | 1.7925 | -0.021624 | -1.2084 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 12813 | 0.027054 | 0.0042127 | -1.6829 | 2.9148 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2653 | 0.028774 | 0.0012931 | -1.3212 | 9.6178 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 53103 |-0.00040742 | 0.0021636 | -0.20037 | -0.72024 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 26124 | 8.9759e-05 | 0.0021312 | -0.19472 | -0.46917 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 46694 |-0.00051949 | 0.0023544 | -0.081232 | -1.0211 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 23442 | 6.7471e-05 | 0.0022757 | -0.15455 | -0.74492 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 6409 |-1.2088e-05 | 0.0012 | -0.36879 | 0.94372 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2682 | 0.00020317 | 0.0011343 | -0.60634 | 2.7563 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 46694 | 3.0884 | 1.8091 | 0.043353 | -1.1817 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 6409 | 3.1582 | 1.813 | -0.011777 | -1.1881 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 46694 | 0.046167 | 0.0065421 | -0.72386 | -0.48591 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 6409 | 0.051545 | 0.0013325 | -0.32169 | 1.1093 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 15482 | 4.7418e-06 | 0.0012223 | -0.012285 | -0.76027 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 16826 | 9.1803e-05 | 0.0012609 | -0.058072 | -0.87593 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12816 | 3.1243e-06 | 0.0013615 | -0.0061436 | -1.1198 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 14315 | 5.8764e-05 | 0.0013511 | -0.021587 | -1.1029 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2666 | 9.5004e-06 | 0.00066028 | -0.078441 | 0.68721 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2511 | 0.00022199 | 0.00079974 | 0.18647 | 0.47142 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 12816 | 3.0745 | 1.8128 | 0.063697 | -1.1875 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2666 | 3.1759 | 1.7949 | -0.021802 | -1.2121 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 12816 | 0.027054 | 0.0042124 | -1.6831 | 2.9158 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2666 | 0.02877 | 0.0012933 | -1.3097 | 9.5376 | RiCKMCResLong10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResLong10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 270467 |-0.00026357 | 0.0020276 | -0.26167 | -0.45051 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 205742 |-6.9468e-05 | 0.0019845 | -0.26575 | -0.29325 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 239519 |-0.00034587 | 0.002248 | -0.1521 | -0.88805 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 175390 |-4.9442e-05 | 0.002175 | -0.23543 | -0.703 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30948 | 2.6806e-05 | 0.00082326 | 0.014758 | 0.76086 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30352 |-0.00013978 | 0.0010726 | -1.3125 | 3.8457 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 239519 | 3.1458 | 1.816 | -0.0071377 | -1.1896 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 30948 | 3.1252 | 1.8184 | 0.0048596 | -1.1899 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 239519 | 0.046599 | 0.0064787 | -0.8852 | -0.29121 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 30948 | 0.051179 | 0.0010063 | 0.12362 | 0.27822 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 162620 | 1.3468e-05 | 0.0011768 | 0.022285 | -0.652 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 163081 | 2.3988e-05 | 0.0012035 | 0.023901 | -0.73562 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136862 | 2.0231e-05 | 0.0013184 | 0.010127 | -1.0488 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136191 | 4.0113e-05 | 0.0013213 | 0.0041058 | -1.0588 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 25758 | -5.732e-06 | 0.00061719 | -0.019708 | 0.74856 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 26890 |-2.7429e-05 | 0.00070434 | -0.13828 | 1.0629 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 136862 | 3.1332 | 1.7976 | 0.0054393 | -1.1811 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 25758 | 3.1283 | 1.8045 | 0.01434 | -1.212 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 136862 | 0.026541 | 0.0047057 | -1.5162 | 1.7929 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 25758 | 0.028518 | 0.0011483 | -0.61271 | 1.38 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 270459 |-0.00026202 | 0.0020259 | -0.26203 | -0.44782 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 206128 |-6.9895e-05 | 0.0019843 | -0.26579 | -0.29354 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 239474 |-0.00034378 | 0.0022459 | -0.15311 | -0.88529 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 175798 |-4.9884e-05 | 0.0021741 | -0.23549 | -0.70212 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30985 | 2.6653e-05 | 0.0008243 | 0.015822 | 0.7894 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30330 | -0.0001404 | 0.0010723 | -1.3161 | 3.8479 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 239474 | 3.1445 | 1.8161 | -0.0058709 | -1.1893 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 30985 | 3.1259 | 1.8186 | 0.0041749 | -1.1899 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 239474 | 0.046614 | 0.0064714 | -0.88875 | -0.28299 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 30985 | 0.051181 | 0.0010078 | 0.12831 | 0.29312 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 162468 | 1.3507e-05 | 0.0011772 | 0.022493 | -0.65295 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 162991 | 2.4148e-05 | 0.0012038 | 0.023798 | -0.73623 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136784 | 2.0271e-05 | 0.0013184 | 0.010326 | -1.0484 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136160 | 4.0173e-05 | 0.0013213 | 0.0041804 | -1.0583 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 25684 |-5.7653e-06 | 0.00061746 | -0.019633 | 0.74736 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 26831 |-2.7097e-05 | 0.00070514 | -0.13792 | 1.0636 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 136784 | 3.1333 | 1.7971 | 0.0050208 | -1.1801 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 25684 | 3.1293 | 1.8033 | 0.01318 | -1.2102 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 136784 | 0.026543 | 0.0047056 | -1.5168 | 1.7942 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 25684 | 0.028518 | 0.0011491 | -0.61236 | 1.3779 | RiCKMCResUpstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResUpstream10to70" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 44380 |-0.00055054 | 0.0021578 | -0.15709 | -0.75525 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 60635 |-0.00059682 | 0.0021916 | -0.1313 | -0.83 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 40896 |-0.00062767 | 0.0023283 | -0.058477 | -1.0381 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 56643 |-0.00062597 | 0.0023108 | -0.075916 | -1.019 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3484 |-0.00018635 | 0.00094082 | -0.76547 | 2.6964 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3992 |-0.00041755 | 0.0012112 | -1.1513 | 2.0835 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 40896 | 3.135 | 1.8151 | 0.00059032 | -1.2263 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 44128 |-0.00055151 | 0.0021576 | -0.15505 | -0.75481 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 60384 |-0.00059762 | 0.0021915 | -0.12968 | -0.82977 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 40644 |-0.00062938 | 0.0023292 | -0.055652 | -1.0391 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 56392 |-0.00062703 | 0.0023112 | -0.073914 | -1.0196 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3484 |-0.00018641 | 0.00094094 | -0.7654 | 2.7032 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3992 |-0.00041764 | 0.0012113 | -1.1516 | 2.0843 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 40644 | 3.1318 | 1.8148 | 0.0043054 | -1.2255 | | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 3484 | 3.1064 | 1.8108 | 0.019157 | -1.2182 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 40896 | 0.044399 | 0.0067071 | -0.35639 | -1.002 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 3484 | 0.050753 | 0.0017996 | -4.5596 | 34.251 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 40644 | 0.044392 | 0.0067124 | -0.35645 | -1.003 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 3484 | 0.050753 | 0.0017996 | -4.5596 | 34.25 | RiTkSignalYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 12 | 43621 | 13412 | 9.5827 | 26.28 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1069 | 6353.1 | 6769.3 | 73.937 | 603.73 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 183 | 17743 | 9698.8 | 17.807 | 97.798 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 998 | 6683.4 | 6887.6 | 73.81 | 592.12 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 841 | 7505 | 7211 | 62.65 | 478.8 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1073 | 6354.5 | 6760.4 | 74.24 | 607.02 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 184 | 17711 | 9682 | 17.94 | 98.738 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1002 | 6683.6 | 6877.8 | 74.146 | 595.68 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 844 | 7507.1 | 7200.8 | 62.924 | 481.59 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 61 | 28084 | 10586 | 11.547 | 54.715 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 5 | 73644 | 8945.1 | 1.1398 | -1.4716 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 428 | 14507 | 10503 | 21.496 | 101.65 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 430 | 14486 | 10483 | 21.647 | 102.6 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 115 | 27934 | 12113 | 8.7429 | 29.953 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 415 | 14772 | 10556 | 21.574 | 101.32 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 396 | 15196 | 10623 | 21.118 | 98.13 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 417 | 14750 | 10536 | 21.73 | 102.29 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 398 | 15171 | 10603 | 21.276 | 99.103 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 37 | 42129 | 12065 | 6.1861 | 16.1 | RiTkEmittedYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 13 | 42891 | 13131 | 10.357 | 29.88 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1069 | 6353.1 | 6769.3 | 75.504 | 623.96 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 188 | 17511 | 9671 | 18.736 | 104.3 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1002 | 6664.4 | 6880.3 | 75.734 | 615.56 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 854 | 7429.5 | 7181.6 | 65.149 | 506.11 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1073 | 6354.5 | 6760.4 | 75.81 | 627.33 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 189 | 17482 | 9654 | 18.876 | 105.3 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1006 | 6664.7 | 6870.6 | 76.075 | 619.22 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 858 | 7426.3 | 7169.4 | 65.514 | 509.83 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 64 | 27572 | 10590 | 12.1 | 57.638 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 6 | 70276 | 9697.9 | 1.8587 | -0.18824 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1313 | 7203.9 | 7948.5 | 67.162 | 452.28 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1318 | 7198.9 | 7937 | 67.475 | 455.08 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 120 | 27428 | 12095 | 8.971 | 30.753 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 862 | 9650.5 | 8876.2 | 46.862 | 275.77 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 656 | 11481 | 9464.8 | 35.839 | 193.96 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 865 | 9644.7 | 8863.6 | 47.08 | 277.48 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 658 | 11477 | 9451.1 | 36.004 | 195.16 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 38 | 41788 | 12067 | 6.3113 | 16.656 | RichTkSelEffDownstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffDownstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1363 | 1.4949 | 0.65323 | 0.20619 | 1.7217 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1363 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1363 | 0.071311 | 0.1059 | 5.9379 | 11.842 | - | All/effVP | "RICH Track Sel. Eff. V P" | 1363 | 7062.1 | 7858.5 | 113.34 | 836.43 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1363 | 427.68 | 391.72 | 113.29 | 858.13 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1367 | 1.4935 | 0.65317 | 0.21678 | 1.7245 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1367 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1367 | 0.071132 | 0.1058 | 5.967 | 11.936 | + | All/effVP | "RICH Track Sel. Eff. V P" | 1367 | 7061.1 | 7849.5 | 113.73 | 840.3 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1367 | 427.73 | 391.27 | 113.67 | 861.98 | RiTkDetectableYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 12 | 43621 | 13412 | 9.65 | 26.495 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1069 | 6353.1 | 6769.3 | 75.504 | 623.96 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 183 | 17743 | 9698.8 | 18.379 | 101.9 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 998 | 6683.4 | 6887.6 | 75.502 | 612.99 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 841 | 7505 | 7211 | 64.118 | 495.93 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1073 | 6354.5 | 6760.4 | 75.81 | 627.33 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 184 | 17711 | 9682 | 18.518 | 102.88 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1002 | 6683.6 | 6877.8 | 75.844 | 616.67 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 844 | 7507.1 | 7200.8 | 64.396 | 498.8 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 61 | 28084 | 10586 | 11.871 | 56.261 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 5 | 73644 | 8945.1 | 1.0469 | -1.553 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 428 | 14507 | 10503 | 19.22 | 89.892 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 430 | 14486 | 10483 | 19.356 | 90.74 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 115 | 27934 | 12113 | 8.6541 | 29.355 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 415 | 14772 | 10556 | 19.688 | 91.455 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 396 | 15196 | 10623 | 19.639 | 90.264 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 417 | 14750 | 10536 | 19.831 | 92.336 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 398 | 15171 | 10603 | 19.786 | 91.16 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 37 | 42129 | 12065 | 6.2502 | 16.349 | RiTkSignalYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48984 | 12185 | 6.4501 | 14.603 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4819 | 9013.6 | 9501.1 | 91.851 | 579.78 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1449 | 19206 | 12005 | 32.098 | 139.12 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4717 | 9170.8 | 9542.5 | 93.616 | 587.31 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4362 | 9732 | 9710.9 | 87.637 | 536.46 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 553 | 30265 | 13238 | 14.201 | 45.859 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76083 | 12138 | 2.0816 | 0.53365 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3303 | 17764 | 13720 | 40.815 | 191.17 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1285 | 30153 | 15096 | 20.846 | 74.478 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3227 | 18040 | 13761 | 40.77 | 189.76 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3137 | 18383 | 13808 | 40.291 | 186.11 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 468 | 45865 | 15548 | 9.3829 | 23.755 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48985 | 12185 | 6.4499 | 14.602 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4820 | 9017.9 | 9504.7 | 91.724 | 578.73 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1452 | 19204 | 11995 | 32.182 | 139.62 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4717 | 9176.8 | 9546.5 | 93.466 | 586.08 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4361 | 9740.2 | 9715.2 | 87.479 | 535.19 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 554 | 30254 | 13228 | 14.243 | 46.048 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76084 | 12139 | 2.0805 | 0.53138 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3298 | 17776 | 13723 | 40.761 | 190.84 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1285 | 30146 | 15098 | 20.847 | 74.476 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3223 | 18050 | 13764 | 40.731 | 189.52 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3133 | 18393 | 13810 | 40.253 | 185.88 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 467 | 45898 | 15551 | 9.3538 | 23.652 | RiTkEmittedYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 152 | 48479 | 12268 | 6.4113 | 14.491 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4820 | 9012.1 | 9500.6 | 90.797 | 571.16 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1490 | 18925 | 11955 | 32.454 | 141.3 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4736 | 9141.7 | 9534.3 | 92.861 | 581.25 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4402 | 9666.7 | 9690.6 | 87.419 | 534.81 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 572 | 29824 | 13227 | 14.519 | 47.198 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 100 | 75392 | 12326 | 2.1245 | 0.65307 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 6208 | 11418 | 12113 | 74.299 | 427.11 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1330 | 29676 | 15047 | 21.604 | 78.1 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 5174 | 13181 | 12553 | 66.146 | 359.44 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4440 | 14731 | 12921 | 57.865 | 299.82 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 484 | 45335 | 15532 | 9.9066 | 25.578 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 152 | 48479 | 12268 | 6.4111 | 14.49 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4821 | 9016.4 | 9504.3 | 90.67 | 570.11 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1493 | 18923 | 11945 | 32.537 | 141.8 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4736 | 9147.7 | 9538.3 | 92.713 | 580.04 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4400 | 9676.4 | 9695.4 | 87.24 | 533.37 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 573 | 29813 | 13218 | 14.561 | 47.386 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 100 | 75393 | 12327 | 2.1235 | 0.65082 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 6202 | 11420 | 12116 | 74.221 | 426.52 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1330 | 29669 | 15049 | 21.605 | 78.099 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 5165 | 13192 | 12558 | 66.033 | 358.63 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4434 | 14740 | 12924 | 57.795 | 299.35 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 483 | 45366 | 15537 | 9.8762 | 25.468 | RichTkSelEffLong SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffLong" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 6394 | 1.315 | 0.52028 | 3.8853 | 10.808 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 6394 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 6394 | 0.043231 | 0.077939 | 19.421 | 67.157 | - | All/effVP | "RICH Track Sel. Eff. V P" | 6394 | 11263 | 12090 | 83.651 | 487.66 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 6394 | 569.72 | 526.42 | 230.03 | 2053.4 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 6389 | 1.3145 | 0.52048 | 3.8867 | 10.793 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 6389 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 6389 | 0.043118 | 0.077864 | 19.695 | 68.436 | + | All/effVP | "RICH Track Sel. Eff. V P" | 6389 | 11264 | 12094 | 83.58 | 487.11 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 6389 | 570.37 | 526.56 | 229.75 | 2050.1 | RiTkDetectableYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48984 | 12185 | 6.3089 | 14.16 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4819 | 9013.6 | 9501.1 | 90.777 | 571 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1449 | 19206 | 12005 | 31.579 | 136.31 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4717 | 9170.8 | 9542.5 | 92.544 | 578.56 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4362 | 9732 | 9710.9 | 86.633 | 528.44 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 553 | 30265 | 13238 | 14.107 | 45.416 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76083 | 12138 | 2.0394 | 0.4673 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3303 | 17764 | 13720 | 38.96 | 182.68 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1285 | 30153 | 15096 | 20.889 | 74.667 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3227 | 18040 | 13761 | 39.734 | 185.11 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3137 | 18383 | 13808 | 39.723 | 183.64 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 468 | 45865 | 15548 | 9.5744 | 24.345 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48985 | 12185 | 6.3087 | 14.16 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4820 | 9017.9 | 9504.7 | 90.65 | 569.95 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1452 | 19204 | 11995 | 31.663 | 136.81 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4717 | 9176.8 | 9546.5 | 92.396 | 577.34 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4361 | 9740.2 | 9715.2 | 86.477 | 527.2 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 554 | 30254 | 13228 | 14.149 | 45.602 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76084 | 12139 | 2.0384 | 0.46506 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3298 | 17776 | 13723 | 38.908 | 182.36 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1285 | 30146 | 15098 | 20.889 | 74.662 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3223 | 18050 | 13764 | 39.695 | 184.87 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3133 | 18393 | 13810 | 39.684 | 183.41 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 467 | 45898 | 15551 | 9.5449 | 24.24 | RiTkSignalYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 34 | 47640 | 14152 | 5.3516 | 11.018 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10188 | 11072 | 33.218 | 177.32 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 247 | 21055 | 12793 | 15.972 | 64.802 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10199 | 11075 | 35.259 | 188.26 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 648 | 10867 | 11288 | 32.894 | 171.03 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 123 | 29554 | 13535 | 11.298 | 38.477 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10184 | 11065 | 33.288 | 177.83 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 246 | 21072 | 12816 | 15.869 | 64.23 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10196 | 11068 | 35.339 | 188.82 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 648 | 10863 | 11281 | 32.969 | 171.55 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 123 | 29555 | 13534 | 11.302 | 38.493 | RiTkEmittedYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 34 | 47640 | 14152 | 5.3526 | 11.131 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10188 | 11072 | 32.573 | 172.77 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 250 | 20910 | 12783 | 15.753 | 63.613 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10199 | 11075 | 34.534 | 183.21 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 657 | 10753 | 11252 | 32.733 | 169.87 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 127 | 29159 | 13492 | 11.148 | 37.917 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10184 | 11065 | 32.644 | 173.27 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 249 | 20926 | 12806 | 15.65 | 63.045 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10196 | 11068 | 34.61 | 183.75 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 657 | 10749 | 11245 | 32.806 | 170.38 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 127 | 29161 | 13491 | 11.152 | 37.934 | RichTkSelEffUpstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 827 | 1.1872 | 0.53616 | 5.2625 | 15.463 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 827 | 1.1906 | 0.53446 | 5.2821 | 15.617 | | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 827 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 827 | 0.048968 | 0.063536 | 29.11 | 118.55 | - | All/effVP | "RICH Track Sel. Eff. V P" | 827 | 14245 | 16118 | 13.408 | 49.566 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 827 | 903.15 | 598.89 | 56.352 | 337.23 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 827 | 0.049057 | 0.063373 | 29.298 | 119.62 | + | All/effVP | "RICH Track Sel. Eff. V P" | 827 | 14240 | 16112 | 13.485 | 49.952 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 827 | 899.31 | 583.49 | 61.176 | 376.33 | RiTkDetectableYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 34 | 47640 | 14152 | 5.4724 | 11.438 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10188 | 11072 | 32.573 | 172.77 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 247 | 21055 | 12793 | 15.638 | 62.981 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10199 | 11075 | 34.565 | 183.38 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 648 | 10867 | 11288 | 32.243 | 166.57 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 123 | 29554 | 13535 | 10.849 | 36.511 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10184 | 11065 | 32.644 | 173.27 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 246 | 21072 | 12816 | 15.534 | 62.413 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10196 | 11068 | 34.641 | 183.92 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 648 | 10863 | 11281 | 32.315 | 167.07 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 123 | 29555 | 13534 | 10.853 | 36.528 | RiCKMCResDownstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResDownstream10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 6407 | 9328 | 8323.4 | 249.49 | 2104.3 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2653 | 18017 | 11169 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 6409 | 9389.7 | 8307.2 | 219.77 | 1855.8 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2666 | 17987 | 11150 | 0 | -3 | RiCKMCResLong10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResLong10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 30948 | 17759 | 12725 | 28.947 | 133.21 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 25758 | 22984 | 14518 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 30985 | 17776 | 12732 | 28.869 | 132.82 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 25684 | 23004 | 14529 | 0 | -3 | RiCKMCResUpstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResUpstream10to70" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 3484 | 20933 | 12633 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 3484 | 20934 | 12633 | 0 | -3 | RichRecPixelClusters SUCCESS Booked 2 Histogram(s) : 1D=2 RichRecPixelQC SUCCESS Booked 6 Histogram(s) : 1D=6 RichDecodingErrors SUCCESS Booked 352 Histogram(s) : 2D=1 1DProf=351 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref.x86_64+avx2+fma-opt index 036191d5534..53c240e7445 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_brunelesque_with_mcchecking.ref.x86_64+avx2+fma-opt @@ -1,47 +1,47 @@ TrackEventFitter INFO Fitting performance : 100.00 % VeloTrackChecker INFO Results -VeloTrackChecker INFO **** Velo 23069 tracks including 240 ghosts [ 1.04 %], Event average 0.87 % **** -VeloTrackChecker INFO 01_velo : 9878 from 10080 [ 98.00 %] 150 clones [ 1.50 %], purity: 99.73 %, hitEff: 96.77 %, hitEffFirst3: 96.98 %, hitEffLast: 96.35 % -VeloTrackChecker INFO 02_long : 5685 from 5731 [ 99.20 %] 66 clones [ 1.15 %], purity: 99.82 %, hitEff: 97.60 %, hitEffFirst3: 97.83 %, hitEffLast: 97.30 % -VeloTrackChecker INFO 03_long_P>5GeV : 3627 from 3640 [ 99.64 %] 21 clones [ 0.58 %], purity: 99.86 %, hitEff: 98.37 %, hitEffFirst3: 98.50 %, hitEffLast: 98.19 % -VeloTrackChecker INFO 04_long_strange : 275 from 282 [ 97.52 %] 3 clones [ 1.08 %], purity: 99.36 %, hitEff: 97.57 %, hitEffFirst3: 97.96 %, hitEffLast: 95.52 % -VeloTrackChecker INFO 05_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.55 %, hitEffFirst3: 99.28 %, hitEffLast: 96.09 % -VeloTrackChecker INFO 06_long_fromB : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 81.59 %, hitEffFirst3: 83.33 %, hitEffLast: 80.71 % -VeloTrackChecker INFO 07_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % -VeloTrackChecker INFO 08_long_electrons : 393 from 407 [ 96.56 %] 11 clones [ 2.72 %], purity: 97.64 %, hitEff: 94.40 %, hitEffFirst3: 92.41 %, hitEffLast: 94.38 % +VeloTrackChecker INFO **** Velo 22894 tracks including 204 ghosts [ 0.89 %], Event average 0.74 % **** +VeloTrackChecker INFO 01_velo : 9863 from 10080 [ 97.85 %] 155 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.54 %, hitEffFirst3: 96.98 %, hitEffLast: 95.89 % +VeloTrackChecker INFO 02_long : 5677 from 5731 [ 99.06 %] 65 clones [ 1.13 %], purity: 99.82 %, hitEff: 97.39 %, hitEffFirst3: 97.88 %, hitEffLast: 96.88 % +VeloTrackChecker INFO 03_long_P>5GeV : 3625 from 3640 [ 99.59 %] 20 clones [ 0.55 %], purity: 99.86 %, hitEff: 98.18 %, hitEffFirst3: 98.54 %, hitEffLast: 97.82 % +VeloTrackChecker INFO 04_long_strange : 272 from 282 [ 96.45 %] 3 clones [ 1.09 %], purity: 99.36 %, hitEff: 97.42 %, hitEffFirst3: 98.30 %, hitEffLast: 95.07 % +VeloTrackChecker INFO 05_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.40 %, hitEffFirst3: 99.52 %, hitEffLast: 95.49 % +VeloTrackChecker INFO 06_long_fromB : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 80.40 %, hitEffFirst3: 83.33 %, hitEffLast: 78.33 % +VeloTrackChecker INFO 07_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % +VeloTrackChecker INFO 08_long_electrons : 393 from 407 [ 96.56 %] 10 clones [ 2.48 %], purity: 97.71 %, hitEff: 94.80 %, hitEffFirst3: 93.30 %, hitEffLast: 94.56 % VeloTrackChecker INFO 09_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloTrackChecker INFO 10_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % -VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % -VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % +VeloTrackChecker INFO 11_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % +VeloTrackChecker INFO 12_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % VeloTrackChecker INFO VeloFullTrackChecker INFO Results -VeloFullTrackChecker INFO **** VeloFull 23069 tracks including 240 ghosts [ 1.04 %], Event average 0.87 % **** -VeloFullTrackChecker INFO 01_notElectron_Velo : 9878 from 10080 [ 98.00 %] 150 clones [ 1.50 %], purity: 99.73 %, hitEff: 96.77 %, hitEffFirst3: 96.98 %, hitEffLast: 96.35 % -VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9878 from 10080 [ 98.00 %] 150 clones [ 1.50 %], purity: 99.73 %, hitEff: 96.77 %, hitEffFirst3: 96.98 %, hitEffLast: 96.35 % -VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9878 from 10080 [ 98.00 %] 150 clones [ 1.50 %], purity: 99.73 %, hitEff: 96.77 %, hitEffFirst3: 96.98 %, hitEffLast: 96.35 % -VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5685 from 5731 [ 99.20 %] 66 clones [ 1.15 %], purity: 99.82 %, hitEff: 97.60 %, hitEffFirst3: 97.83 %, hitEffLast: 97.30 % -VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3627 from 3640 [ 99.64 %] 21 clones [ 0.58 %], purity: 99.86 %, hitEff: 98.37 %, hitEffFirst3: 98.50 %, hitEffLast: 98.19 % -VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5685 from 5731 [ 99.20 %] 66 clones [ 1.15 %], purity: 99.82 %, hitEff: 97.60 %, hitEffFirst3: 97.83 %, hitEffLast: 97.30 % -VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5685 from 5731 [ 99.20 %] 66 clones [ 1.15 %], purity: 99.82 %, hitEff: 97.60 %, hitEffFirst3: 97.83 %, hitEffLast: 97.30 % -VeloFullTrackChecker INFO 09_notElectron_Long_FromB_Eta25 : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 81.59 %, hitEffFirst3: 83.33 %, hitEffLast: 80.71 % -VeloFullTrackChecker INFO 10_notElectron_Long_FromB_Eta25 p>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % +VeloFullTrackChecker INFO **** VeloFull 22894 tracks including 204 ghosts [ 0.89 %], Event average 0.74 % **** +VeloFullTrackChecker INFO 01_notElectron_Velo : 9863 from 10080 [ 97.85 %] 155 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.54 %, hitEffFirst3: 96.98 %, hitEffLast: 95.89 % +VeloFullTrackChecker INFO 02_notElectron_Velo_Forward : 9863 from 10080 [ 97.85 %] 155 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.54 %, hitEffFirst3: 96.98 %, hitEffLast: 95.89 % +VeloFullTrackChecker INFO 04_notElectron_Velo_Eta25 : 9863 from 10080 [ 97.85 %] 155 clones [ 1.55 %], purity: 99.73 %, hitEff: 96.54 %, hitEffFirst3: 96.98 %, hitEffLast: 95.89 % +VeloFullTrackChecker INFO 05_notElectron_Long_Eta25 : 5677 from 5731 [ 99.06 %] 65 clones [ 1.13 %], purity: 99.82 %, hitEff: 97.39 %, hitEffFirst3: 97.88 %, hitEffLast: 96.88 % +VeloFullTrackChecker INFO 06_notElectron_Long_Eta25 p>5GeV : 3625 from 3640 [ 99.59 %] 20 clones [ 0.55 %], purity: 99.86 %, hitEff: 98.18 %, hitEffFirst3: 98.54 %, hitEffLast: 97.82 % +VeloFullTrackChecker INFO 07_notElectron_Long_Eta25 p<5GeV : 5677 from 5731 [ 99.06 %] 65 clones [ 1.13 %], purity: 99.82 %, hitEff: 97.39 %, hitEffFirst3: 97.88 %, hitEffLast: 96.88 % +VeloFullTrackChecker INFO 08_notElectron_Long_Eta25 p>3GeV pt>400MeV : 5677 from 5731 [ 99.06 %] 65 clones [ 1.13 %], purity: 99.82 %, hitEff: 97.39 %, hitEffFirst3: 97.88 %, hitEffLast: 96.88 % +VeloFullTrackChecker INFO 09_notElectron_Long_FromB_Eta25 : 12 from 12 [100.00 %] 2 clones [14.29 %], purity:100.00 %, hitEff: 80.40 %, hitEffFirst3: 83.33 %, hitEffLast: 78.33 % +VeloFullTrackChecker INFO 10_notElectron_Long_FromB_Eta25 p>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % VeloFullTrackChecker INFO 11_notElectron_Long_FromB_Eta25 p<5GeV : 4 from 4 [100.00 %] 1 clones [20.00 %], purity:100.00 %, hitEff: 70.95 %, hitEffFirst3: 73.33 %, hitEffLast: 70.00 % -VeloFullTrackChecker INFO 12_notElectron_Long_FromB_Eta25 p>3GeV pt>400MeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 87.50 %, hitEffFirst3: 88.89 %, hitEffLast: 86.67 % -VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 72 from 73 [ 98.63 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.22 %, hitEffFirst3: 96.76 %, hitEffLast: 98.11 % -VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 42 from 42 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.45 %, hitEffFirst3: 97.62 %, hitEffLast: 99.52 % -VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 30 from 31 [ 96.77 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.49 %, hitEffFirst3: 95.56 %, hitEffLast: 96.06 % -VeloFullTrackChecker INFO 16_notElectron_Long_FromD_Eta25 p>3GeV pt>400MeV : 40 from 41 [ 97.56 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.87 %, hitEffFirst3: 98.33 %, hitEffLast: 99.50 % -VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 275 from 282 [ 97.52 %] 3 clones [ 1.08 %], purity: 99.36 %, hitEff: 97.57 %, hitEffFirst3: 97.96 %, hitEffLast: 95.52 % -VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.55 %, hitEffFirst3: 99.28 %, hitEffLast: 96.09 % -VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 136 from 141 [ 96.45 %] 3 clones [ 2.16 %], purity: 99.24 %, hitEff: 96.58 %, hitEffFirst3: 96.64 %, hitEffLast: 94.95 % -VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 86 from 88 [ 97.73 %] 1 clones [ 1.15 %], purity: 98.77 %, hitEff: 97.40 %, hitEffFirst3: 96.93 %, hitEffLast: 97.22 % -VeloFullTrackChecker INFO 21_Electron_Velo : 1498 from 2115 [ 70.83 %] 112 clones [ 6.96 %], purity: 97.88 %, hitEff: 83.29 %, hitEffFirst3: 79.71 %, hitEffLast: 84.25 % -VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1498 from 2115 [ 70.83 %] 112 clones [ 6.96 %], purity: 97.88 %, hitEff: 83.29 %, hitEffFirst3: 79.71 %, hitEffLast: 84.25 % -VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1498 from 2115 [ 70.83 %] 112 clones [ 6.96 %], purity: 97.88 %, hitEff: 83.29 %, hitEffFirst3: 79.71 %, hitEffLast: 84.25 % -VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 393 from 407 [ 96.56 %] 11 clones [ 2.72 %], purity: 97.64 %, hitEff: 94.40 %, hitEffFirst3: 92.41 %, hitEffLast: 94.38 % -VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 200 from 205 [ 97.56 %] 4 clones [ 1.96 %], purity: 97.63 %, hitEff: 95.88 %, hitEffFirst3: 95.42 %, hitEffLast: 94.47 % -VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 193 from 202 [ 95.54 %] 7 clones [ 3.50 %], purity: 97.66 %, hitEff: 92.89 %, hitEffFirst3: 89.33 %, hitEffLast: 94.29 % -VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 76 from 76 [100.00 %] 2 clones [ 2.56 %], purity: 98.67 %, hitEff: 95.26 %, hitEffFirst3: 94.87 %, hitEffLast: 95.37 % +VeloFullTrackChecker INFO 12_notElectron_Long_FromB_Eta25 p>3GeV pt>400MeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity:100.00 %, hitEff: 85.65 %, hitEffFirst3: 88.89 %, hitEffLast: 82.96 % +VeloFullTrackChecker INFO 13_notElectron_Long_FromD_Eta25 : 71 from 73 [ 97.26 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.20 %, hitEffFirst3: 97.18 %, hitEffLast: 97.82 % +VeloFullTrackChecker INFO 14_notElectron_Long_FromD_Eta25 p>5GeV : 42 from 42 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 97.72 %, hitEffFirst3: 97.62 %, hitEffLast: 98.13 % +VeloFullTrackChecker INFO 15_notElectron_Long_FromD_Eta25 p<5GeV : 29 from 31 [ 93.55 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 96.45 %, hitEffFirst3: 96.55 %, hitEffLast: 97.35 % +VeloFullTrackChecker INFO 16_notElectron_Long_FromD_Eta25 p>3GeV pt>400MeV : 40 from 41 [ 97.56 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 98.46 %, hitEffFirst3: 98.33 %, hitEffLast: 98.67 % +VeloFullTrackChecker INFO 17_notElectron_Long_strange_Eta25 : 272 from 282 [ 96.45 %] 3 clones [ 1.09 %], purity: 99.36 %, hitEff: 97.42 %, hitEffFirst3: 98.30 %, hitEffLast: 95.07 % +VeloFullTrackChecker INFO 18_notElectron_Long_strange_Eta25 p>5GeV : 139 from 141 [ 98.58 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 98.40 %, hitEffFirst3: 99.52 %, hitEffLast: 95.49 % +VeloFullTrackChecker INFO 19_notElectron_Long_strange_Eta25 p<5GeV : 133 from 141 [ 94.33 %] 3 clones [ 2.21 %], purity: 99.22 %, hitEff: 96.41 %, hitEffFirst3: 97.06 %, hitEffLast: 94.64 % +VeloFullTrackChecker INFO 20_notElectron_Long_strange_Eta25 p>3GeV pt>400MeV : 86 from 88 [ 97.73 %] 1 clones [ 1.15 %], purity: 98.77 %, hitEff: 97.38 %, hitEffFirst3: 97.70 %, hitEffLast: 96.49 % +VeloFullTrackChecker INFO 21_Electron_Velo : 1490 from 2115 [ 70.45 %] 115 clones [ 7.17 %], purity: 97.86 %, hitEff: 83.38 %, hitEffFirst3: 80.17 %, hitEffLast: 84.04 % +VeloFullTrackChecker INFO 22_Electron_Velo_Forward : 1490 from 2115 [ 70.45 %] 115 clones [ 7.17 %], purity: 97.86 %, hitEff: 83.38 %, hitEffFirst3: 80.17 %, hitEffLast: 84.04 % +VeloFullTrackChecker INFO 24_Electron_Velo_Eta25 : 1490 from 2115 [ 70.45 %] 115 clones [ 7.17 %], purity: 97.86 %, hitEff: 83.38 %, hitEffFirst3: 80.17 %, hitEffLast: 84.04 % +VeloFullTrackChecker INFO 25_Electron_Long_Eta25 : 393 from 407 [ 96.56 %] 10 clones [ 2.48 %], purity: 97.71 %, hitEff: 94.80 %, hitEffFirst3: 93.30 %, hitEffLast: 94.56 % +VeloFullTrackChecker INFO 26_Electron_Long_Eta25 p>5GeV : 200 from 205 [ 97.56 %] 3 clones [ 1.48 %], purity: 97.87 %, hitEff: 96.11 %, hitEffFirst3: 95.57 %, hitEffLast: 94.70 % +VeloFullTrackChecker INFO 27_Electron_Long_Eta25 p<5GeV : 193 from 202 [ 95.54 %] 7 clones [ 3.50 %], purity: 97.54 %, hitEff: 93.48 %, hitEffFirst3: 91.00 %, hitEffLast: 94.42 % +VeloFullTrackChecker INFO 28_Electron_Long_Eta25 p>3GeV pt>400MeV : 76 from 76 [100.00 %] 2 clones [ 2.56 %], purity: 98.89 %, hitEff: 95.84 %, hitEffFirst3: 95.30 %, hitEffLast: 95.70 % VeloFullTrackChecker INFO 29_Electron_Long_FromB_Eta25 : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 30_Electron_Long_FromB_Eta25 p>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % VeloFullTrackChecker INFO 32_Electron_Long_FromB_Eta25 p>3GeV pt>400MeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 %, hitEffFirst3:100.00 %, hitEffLast:100.00 % @@ -51,25 +51,25 @@ VeloFullTrackChecker INFO 35_Electron_Long_FromD_Eta25 p<5Ge VeloFullTrackChecker INFO 36_Electron_Long_FromD_Eta25 p>3GeV pt>400MeV : 2 from 2 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 78.33 %, hitEffFirst3: 66.67 %, hitEffLast: 92.86 % VeloFullTrackChecker INFO MatchTrackChecker INFO Results -MatchTrackChecker INFO **** Match 6664 tracks including 1236 ghosts [18.55 %], Event average 14.14 % **** -MatchTrackChecker INFO 01_long : 4759 from 5731 [ 83.04 %] 26 clones [ 0.54 %], purity: 99.36 %, hitEff: 95.30 % -MatchTrackChecker INFO 02_long_P>5GeV : 3249 from 3640 [ 89.26 %] 10 clones [ 0.31 %], purity: 99.52 %, hitEff: 97.06 % -MatchTrackChecker INFO 03_long_strange : 207 from 282 [ 73.40 %] 1 clones [ 0.48 %], purity: 98.92 %, hitEff: 94.74 % +MatchTrackChecker INFO **** Match 6656 tracks including 1236 ghosts [18.57 %], Event average 14.17 % **** +MatchTrackChecker INFO 01_long : 4753 from 5731 [ 82.93 %] 26 clones [ 0.54 %], purity: 99.36 %, hitEff: 95.31 % +MatchTrackChecker INFO 02_long_P>5GeV : 3246 from 3640 [ 89.18 %] 9 clones [ 0.28 %], purity: 99.52 %, hitEff: 97.06 % +MatchTrackChecker INFO 03_long_strange : 205 from 282 [ 72.70 %] 1 clones [ 0.49 %], purity: 98.94 %, hitEff: 94.73 % MatchTrackChecker INFO 04_long_strange_P>5GeV : 119 from 141 [ 84.40 %] 0 clones [ 0.00 %], purity: 99.10 %, hitEff: 97.09 % MatchTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.96 %, hitEff: 95.84 % MatchTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 97.71 % -MatchTrackChecker INFO 07_long_electrons : 233 from 407 [ 57.25 %] 5 clones [ 2.10 %], purity: 96.94 %, hitEff: 93.37 % +MatchTrackChecker INFO 07_long_electrons : 233 from 407 [ 57.25 %] 4 clones [ 1.69 %], purity: 96.86 %, hitEff: 93.28 % MatchTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % MatchTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 97.71 % MatchTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 97.71 % MatchTrackChecker INFO MatchUTHitsChecker INFO Results -MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#6/OutputTracksName **** 1236 ghost, 2.12 UT per track -MatchUTHitsChecker INFO 01_long : 4785 tr 3.84 from 4.04 mcUT [ 95.1 %] 0.10 ghost hits on real tracks [ 2.4 %] -MatchUTHitsChecker INFO 01_long >3UT : 4730 tr 3.88 from 4.06 mcUT [ 95.5 %] 0.09 ghost hits on real tracks [ 2.3 %] -MatchUTHitsChecker INFO 02_long_P>5GeV : 3259 tr 3.85 from 4.02 mcUT [ 95.9 %] 0.06 ghost hits on real tracks [ 1.6 %] -MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 3205 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.06 ghost hits on real tracks [ 1.4 %] +MatchUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#6/OutputTracksName **** 1236 ghost, 2.11 UT per track +MatchUTHitsChecker INFO 01_long : 4779 tr 3.84 from 4.04 mcUT [ 95.1 %] 0.10 ghost hits on real tracks [ 2.4 %] +MatchUTHitsChecker INFO 01_long >3UT : 4725 tr 3.88 from 4.06 mcUT [ 95.5 %] 0.09 ghost hits on real tracks [ 2.3 %] +MatchUTHitsChecker INFO 02_long_P>5GeV : 3255 tr 3.86 from 4.02 mcUT [ 95.9 %] 0.06 ghost hits on real tracks [ 1.6 %] +MatchUTHitsChecker INFO 02_long_P>5GeV >3UT : 3202 tr 3.92 from 4.06 mcUT [ 96.6 %] 0.06 ghost hits on real tracks [ 1.4 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] MatchUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] @@ -102,61 +102,61 @@ DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV : DownstreamUTHitsChecker INFO 04_down+strange+P>5GeV >3UT : 257 tr 4.02 from 4.05 mcUT [ 99.0 %] 0.03 ghost hits on real tracks [ 0.8 %] DownstreamUTHitsChecker INFO UpstreamTrackChecker INFO Results -UpstreamTrackChecker INFO **** Upstream 3764 tracks including 238 ghosts [ 6.32 %], Event average 4.58 % **** -UpstreamTrackChecker INFO 01_velo : 3336 from 10080 [ 33.10 %] 13 clones [ 0.39 %], purity: 99.66 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 02_velo+UT : 3330 from 8769 [ 37.97 %] 13 clones [ 0.39 %], purity: 99.68 %, hitEff: 98.69 % -UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2582 from 4394 [ 58.76 %] 12 clones [ 0.46 %], purity: 99.75 %, hitEff: 99.43 % -UpstreamTrackChecker INFO 04_velo+notLong : 603 from 4349 [ 13.87 %] 5 clones [ 0.82 %], purity: 99.48 %, hitEff: 98.02 % -UpstreamTrackChecker INFO 05_velo+UT+notLong : 598 from 3126 [ 19.13 %] 5 clones [ 0.83 %], purity: 99.56 %, hitEff: 98.01 % -UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 384 from 833 [ 46.10 %] 4 clones [ 1.03 %], purity: 99.67 %, hitEff: 99.39 % -UpstreamTrackChecker INFO 07_long : 2733 from 5731 [ 47.69 %] 8 clones [ 0.29 %], purity: 99.70 %, hitEff: 98.84 % -UpstreamTrackChecker INFO 08_long_P>5GeV : 2198 from 3640 [ 60.38 %] 8 clones [ 0.36 %], purity: 99.76 %, hitEff: 99.43 % +UpstreamTrackChecker INFO **** Upstream 3763 tracks including 238 ghosts [ 6.32 %], Event average 4.55 % **** +UpstreamTrackChecker INFO 01_velo : 3334 from 10080 [ 33.08 %] 13 clones [ 0.39 %], purity: 99.66 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 02_velo+UT : 3328 from 8769 [ 37.95 %] 13 clones [ 0.39 %], purity: 99.68 %, hitEff: 98.70 % +UpstreamTrackChecker INFO 03_velo+UT_P>5GeV : 2583 from 4394 [ 58.78 %] 11 clones [ 0.42 %], purity: 99.75 %, hitEff: 99.43 % +UpstreamTrackChecker INFO 04_velo+notLong : 602 from 4349 [ 13.84 %] 5 clones [ 0.82 %], purity: 99.49 %, hitEff: 98.06 % +UpstreamTrackChecker INFO 05_velo+UT+notLong : 597 from 3126 [ 19.10 %] 5 clones [ 0.83 %], purity: 99.57 %, hitEff: 98.05 % +UpstreamTrackChecker INFO 06_velo+UT+notLong_P>5GeV : 385 from 833 [ 46.22 %] 4 clones [ 1.03 %], purity: 99.69 %, hitEff: 99.39 % +UpstreamTrackChecker INFO 07_long : 2732 from 5731 [ 47.67 %] 8 clones [ 0.29 %], purity: 99.70 %, hitEff: 98.84 % +UpstreamTrackChecker INFO 08_long_P>5GeV : 2198 from 3640 [ 60.38 %] 7 clones [ 0.32 %], purity: 99.76 %, hitEff: 99.43 % UpstreamTrackChecker INFO 09_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 10_long_fromB_P>5GeV : 8 from 8 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % -UpstreamTrackChecker INFO 11_long_electrons : 43 from 407 [ 10.57 %] 0 clones [ 0.00 %], purity: 98.62 %, hitEff: 96.40 % +UpstreamTrackChecker INFO 11_long_electrons : 44 from 407 [ 10.81 %] 1 clones [ 2.22 %], purity: 98.29 %, hitEff: 96.56 % UpstreamTrackChecker INFO 12_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 13_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 14_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO 15_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % UpstreamTrackChecker INFO ForwardTrackChecker INFO Results -ForwardTrackChecker INFO **** Forward 6932 tracks including 1632 ghosts [23.54 %], Event average 16.62 % **** -ForwardTrackChecker INFO 01_long : 4611 from 5731 [ 80.46 %] 30 clones [ 0.65 %], purity: 99.05 %, hitEff: 94.49 % -ForwardTrackChecker INFO 02_long_P>5GeV : 3241 from 3640 [ 89.04 %] 14 clones [ 0.43 %], purity: 99.24 %, hitEff: 96.15 % -ForwardTrackChecker INFO 03_long_strange : 197 from 282 [ 69.86 %] 0 clones [ 0.00 %], purity: 98.53 %, hitEff: 93.83 % +ForwardTrackChecker INFO **** Forward 6923 tracks including 1634 ghosts [23.60 %], Event average 16.66 % **** +ForwardTrackChecker INFO 01_long : 4605 from 5731 [ 80.35 %] 30 clones [ 0.65 %], purity: 99.04 %, hitEff: 94.50 % +ForwardTrackChecker INFO 02_long_P>5GeV : 3240 from 3640 [ 89.01 %] 13 clones [ 0.40 %], purity: 99.24 %, hitEff: 96.16 % +ForwardTrackChecker INFO 03_long_strange : 195 from 282 [ 69.15 %] 0 clones [ 0.00 %], purity: 98.54 %, hitEff: 93.80 % ForwardTrackChecker INFO 04_long_strange_P>5GeV : 121 from 141 [ 85.82 %] 0 clones [ 0.00 %], purity: 98.66 %, hitEff: 95.93 % -ForwardTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 97.85 %, hitEff: 91.34 % -ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardTrackChecker INFO 07_long_electrons : 261 from 407 [ 64.13 %] 5 clones [ 1.88 %], purity: 95.85 %, hitEff: 92.09 % +ForwardTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 97.83 %, hitEff: 91.34 % +ForwardTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardTrackChecker INFO 07_long_electrons : 260 from 407 [ 63.88 %] 4 clones [ 1.52 %], purity: 95.93 %, hitEff: 92.17 % ForwardTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % ForwardTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity: 95.00 %, hitEff: 75.00 % -ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % +ForwardTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % ForwardTrackChecker INFO ForwardUTHitsChecker INFO Results -ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#3/OutputTracksName **** 1632 ghost, 2.04 UT per track -ForwardUTHitsChecker INFO 01_long : 4641 tr 3.85 from 4.03 mcUT [ 95.4 %] 0.09 ghost hits on real tracks [ 2.2 %] -ForwardUTHitsChecker INFO 01_long >3UT : 4583 tr 3.89 from 4.06 mcUT [ 95.8 %] 0.08 ghost hits on real tracks [ 2.1 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV : 3255 tr 3.85 from 4.01 mcUT [ 95.9 %] 0.06 ghost hits on real tracks [ 1.4 %] -ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 3198 tr 3.91 from 4.06 mcUT [ 96.5 %] 0.05 ghost hits on real tracks [ 1.3 %] +ForwardUTHitsChecker INFO **** UT Efficiency for /Event/LHCb__Converters__Track__v1__fromV2TrackV1Track#3/OutputTracksName **** 1634 ghost, 2.05 UT per track +ForwardUTHitsChecker INFO 01_long : 4635 tr 3.85 from 4.03 mcUT [ 95.4 %] 0.09 ghost hits on real tracks [ 2.2 %] +ForwardUTHitsChecker INFO 01_long >3UT : 4578 tr 3.89 from 4.06 mcUT [ 95.8 %] 0.08 ghost hits on real tracks [ 2.1 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV : 3253 tr 3.85 from 4.01 mcUT [ 95.9 %] 0.06 ghost hits on real tracks [ 1.4 %] +ForwardUTHitsChecker INFO 02_long_P>5GeV >3UT : 3197 tr 3.91 from 4.06 mcUT [ 96.5 %] 0.05 ghost hits on real tracks [ 1.3 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 03_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO 04_UT_long_fromB_P>3GeV_Pt>0.5GeV >3UT : 7 tr 4.14 from 4.14 mcUT [100.0 %] 0.00 ghost hits on real tracks [ 0.0 %] ForwardUTHitsChecker INFO ForwardHlt1TrackChecker INFO Results -ForwardHlt1TrackChecker INFO **** ForwardHlt1 2567 tracks including 62 ghosts [ 2.42 %], Event average 1.48 % **** +ForwardHlt1TrackChecker INFO **** ForwardHlt1 2570 tracks including 63 ghosts [ 2.45 %], Event average 1.47 % **** ForwardHlt1TrackChecker INFO 01_long : 2359 from 5731 [ 41.16 %] 13 clones [ 0.55 %], purity: 99.39 %, hitEff: 95.80 % -ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 2001 from 3640 [ 54.97 %] 12 clones [ 0.60 %], purity: 99.44 %, hitEff: 96.43 % +ForwardHlt1TrackChecker INFO 02_long_P>5GeV : 2001 from 3640 [ 54.97 %] 11 clones [ 0.55 %], purity: 99.44 %, hitEff: 96.43 % ForwardHlt1TrackChecker INFO 03_long_strange : 67 from 282 [ 23.76 %] 1 clones [ 1.47 %], purity: 99.17 %, hitEff: 94.77 % ForwardHlt1TrackChecker INFO 04_long_strange_P>5GeV : 52 from 141 [ 36.88 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 97.12 % -ForwardHlt1TrackChecker INFO 05_long_fromB : 8 from 12 [ 66.67 %] 0 clones [ 0.00 %], purity: 99.43 %, hitEff: 96.96 % -ForwardHlt1TrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardHlt1TrackChecker INFO 07_long_electrons : 34 from 407 [ 8.35 %] 0 clones [ 0.00 %], purity: 97.26 %, hitEff: 92.41 % +ForwardHlt1TrackChecker INFO 05_long_fromB : 8 from 12 [ 66.67 %] 0 clones [ 0.00 %], purity: 99.40 %, hitEff: 96.96 % +ForwardHlt1TrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardHlt1TrackChecker INFO 07_long_electrons : 35 from 407 [ 8.60 %] 1 clones [ 2.78 %], purity: 97.17 %, hitEff: 92.83 % ForwardHlt1TrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % ForwardHlt1TrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 91.67 % -ForwardHlt1TrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % -ForwardHlt1TrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.52 % +ForwardHlt1TrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % +ForwardHlt1TrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 99.32 %, hitEff: 96.52 % ForwardHlt1TrackChecker INFO SeedTrackChecker INFO Results SeedTrackChecker INFO **** Seed 10294 tracks including 599 ghosts [ 5.82 %], Event average 2.39 % **** @@ -173,52 +173,52 @@ SeedTrackChecker INFO 10_UT+T_SfromDB : SeedTrackChecker INFO 11_UT+T_SfromDB_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff:100.00 % SeedTrackChecker INFO BestTrackChecker INFO Results -BestTrackChecker INFO **** Best 28053 tracks including 2231 ghosts [ 7.95 %], Event average 5.78 % **** -BestTrackChecker INFO 01_long : 5683 from 5731 [ 99.16 %] 377 clones [ 6.22 %], purity: 99.37 %, hitEff: 86.11 % -BestTrackChecker INFO 02_long_P>5GeV : 3619 from 3640 [ 99.42 %] 196 clones [ 5.14 %], purity: 99.45 %, hitEff: 90.70 % -BestTrackChecker INFO 03_long_strange : 278 from 282 [ 98.58 %] 31 clones [10.03 %], purity: 99.28 %, hitEff: 78.28 % -BestTrackChecker INFO 04_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 14 clones [ 9.15 %], purity: 99.43 %, hitEff: 86.02 % -BestTrackChecker INFO 05_long_fromB : 11 from 12 [ 91.67 %] 2 clones [15.38 %], purity: 98.93 %, hitEff: 72.14 % -BestTrackChecker INFO 06_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 99.01 %, hitEff: 81.21 % -BestTrackChecker INFO 07_long_electrons : 372 from 407 [ 91.40 %] 55 clones [12.88 %], purity: 98.08 %, hitEff: 68.50 % +BestTrackChecker INFO **** Best 27876 tracks including 2195 ghosts [ 7.87 %], Event average 5.71 % **** +BestTrackChecker INFO 01_long : 5681 from 5731 [ 99.13 %] 377 clones [ 6.22 %], purity: 99.37 %, hitEff: 86.05 % +BestTrackChecker INFO 02_long_P>5GeV : 3620 from 3640 [ 99.45 %] 197 clones [ 5.16 %], purity: 99.45 %, hitEff: 90.60 % +BestTrackChecker INFO 03_long_strange : 277 from 282 [ 98.23 %] 31 clones [10.06 %], purity: 99.29 %, hitEff: 78.26 % +BestTrackChecker INFO 04_long_strange_P>5GeV : 139 from 141 [ 98.58 %] 14 clones [ 9.15 %], purity: 99.43 %, hitEff: 85.96 % +BestTrackChecker INFO 05_long_fromB : 11 from 12 [ 91.67 %] 2 clones [15.38 %], purity: 98.91 %, hitEff: 71.79 % +BestTrackChecker INFO 06_long_fromB_P>5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 98.99 %, hitEff: 80.71 % +BestTrackChecker INFO 07_long_electrons : 371 from 407 [ 91.15 %] 54 clones [12.71 %], purity: 98.10 %, hitEff: 68.54 % BestTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % -BestTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 99.01 %, hitEff: 81.21 % -BestTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 99.01 %, hitEff: 81.21 % +BestTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 98.99 %, hitEff: 80.71 % +BestTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 8 from 8 [100.00 %] 1 clones [11.11 %], purity: 98.99 %, hitEff: 80.71 % BestTrackChecker INFO BestLongTrackChecker INFO Results -BestLongTrackChecker INFO **** BestLong 6398 tracks including 833 ghosts [13.02 %], Event average 10.44 % **** -BestLongTrackChecker INFO 01_long : 4881 from 5731 [ 85.17 %] 21 clones [ 0.43 %], purity: 99.40 %, hitEff: 96.42 % -BestLongTrackChecker INFO 02_long_P>5GeV : 3289 from 3640 [ 90.36 %] 8 clones [ 0.24 %], purity: 99.49 %, hitEff: 97.57 % -BestLongTrackChecker INFO 03_long_strange : 210 from 282 [ 74.47 %] 0 clones [ 0.00 %], purity: 99.36 %, hitEff: 96.04 % -BestLongTrackChecker INFO 04_long_strange_P>5GeV : 118 from 141 [ 83.69 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 97.48 % -BestLongTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.46 %, hitEff: 91.17 % -BestLongTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -BestLongTrackChecker INFO 07_long_electrons : 240 from 407 [ 58.97 %] 3 clones [ 1.23 %], purity: 97.76 %, hitEff: 92.48 % +BestLongTrackChecker INFO **** BestLong 6388 tracks including 833 ghosts [13.04 %], Event average 10.49 % **** +BestLongTrackChecker INFO 01_long : 4876 from 5731 [ 85.08 %] 21 clones [ 0.43 %], purity: 99.40 %, hitEff: 96.36 % +BestLongTrackChecker INFO 02_long_P>5GeV : 3287 from 3640 [ 90.30 %] 8 clones [ 0.24 %], purity: 99.49 %, hitEff: 97.52 % +BestLongTrackChecker INFO 03_long_strange : 208 from 282 [ 73.76 %] 0 clones [ 0.00 %], purity: 99.38 %, hitEff: 95.97 % +BestLongTrackChecker INFO 04_long_strange_P>5GeV : 118 from 141 [ 83.69 %] 0 clones [ 0.00 %], purity: 99.49 %, hitEff: 97.37 % +BestLongTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.43 %, hitEff: 90.66 % +BestLongTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +BestLongTrackChecker INFO 07_long_electrons : 239 from 407 [ 58.72 %] 2 clones [ 0.83 %], purity: 97.75 %, hitEff: 92.93 % BestLongTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % BestLongTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % -BestLongTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -BestLongTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % +BestLongTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +BestLongTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % BestLongTrackChecker INFO LongGhostFilteredTrackChecker INFO Results -LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5910 tracks including 420 ghosts [ 7.11 %], Event average 5.69 % **** -LongGhostFilteredTrackChecker INFO 01_long : 4842 from 5731 [ 84.49 %] 21 clones [ 0.43 %], purity: 99.41 %, hitEff: 96.52 % -LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3263 from 3640 [ 89.64 %] 8 clones [ 0.24 %], purity: 99.50 %, hitEff: 97.66 % -LongGhostFilteredTrackChecker INFO 03_long_strange : 207 from 282 [ 73.40 %] 0 clones [ 0.00 %], purity: 99.35 %, hitEff: 96.06 % -LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 115 from 141 [ 81.56 %] 0 clones [ 0.00 %], purity: 99.48 %, hitEff: 97.56 % -LongGhostFilteredTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.46 %, hitEff: 91.17 % -LongGhostFilteredTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -LongGhostFilteredTrackChecker INFO 07_long_electrons : 232 from 407 [ 57.00 %] 3 clones [ 1.28 %], purity: 97.96 %, hitEff: 92.82 % +LongGhostFilteredTrackChecker INFO **** LongGhostFiltered 5901 tracks including 419 ghosts [ 7.10 %], Event average 5.71 % **** +LongGhostFilteredTrackChecker INFO 01_long : 4837 from 5731 [ 84.40 %] 21 clones [ 0.43 %], purity: 99.41 %, hitEff: 96.46 % +LongGhostFilteredTrackChecker INFO 02_long_P>5GeV : 3261 from 3640 [ 89.59 %] 8 clones [ 0.24 %], purity: 99.50 %, hitEff: 97.61 % +LongGhostFilteredTrackChecker INFO 03_long_strange : 205 from 282 [ 72.70 %] 0 clones [ 0.00 %], purity: 99.37 %, hitEff: 95.99 % +LongGhostFilteredTrackChecker INFO 04_long_strange_P>5GeV : 115 from 141 [ 81.56 %] 0 clones [ 0.00 %], purity: 99.47 %, hitEff: 97.44 % +LongGhostFilteredTrackChecker INFO 05_long_fromB : 9 from 12 [ 75.00 %] 0 clones [ 0.00 %], purity: 98.43 %, hitEff: 90.66 % +LongGhostFilteredTrackChecker INFO 06_long_fromB_P>5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +LongGhostFilteredTrackChecker INFO 07_long_electrons : 231 from 407 [ 56.76 %] 2 clones [ 0.86 %], purity: 97.93 %, hitEff: 93.27 % LongGhostFilteredTrackChecker INFO 08_long_fromB_electrons : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % LongGhostFilteredTrackChecker INFO 09_long_fromB_electrons_P>5GeV : 1 from 1 [100.00 %] 0 clones [ 0.00 %], purity:100.00 %, hitEff: 95.45 % -LongGhostFilteredTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % -LongGhostFilteredTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.73 %, hitEff: 93.57 % +LongGhostFilteredTrackChecker INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % +LongGhostFilteredTrackChecker INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 7 from 8 [ 87.50 %] 0 clones [ 0.00 %], purity: 98.70 %, hitEff: 92.92 % LongGhostFilteredTrackChecker INFO BestDownstreamTrackChecker INFO Results -BestDownstreamTrackChecker INFO **** BestDownstream 1362 tracks including 548 ghosts [40.23 %], Event average 32.63 % **** -BestDownstreamTrackChecker INFO 01_UT+T : 562 from 6463 [ 8.70 %] 0 clones [ 0.00 %], purity: 99.56 %, hitEff: 95.17 % -BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 314 from 3927 [ 8.00 %] 0 clones [ 0.00 %], purity: 99.50 %, hitEff: 97.40 % -BestDownstreamTrackChecker INFO 03_UT+T_strange : 206 from 599 [ 34.39 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.53 % +BestDownstreamTrackChecker INFO **** BestDownstream 1367 tracks including 549 ghosts [40.16 %], Event average 32.60 % **** +BestDownstreamTrackChecker INFO 01_UT+T : 567 from 6463 [ 8.77 %] 0 clones [ 0.00 %], purity: 99.57 %, hitEff: 95.15 % +BestDownstreamTrackChecker INFO 02_UT+T_P>5GeV : 316 from 3927 [ 8.05 %] 0 clones [ 0.00 %], purity: 99.50 %, hitEff: 97.38 % +BestDownstreamTrackChecker INFO 03_UT+T_strange : 207 from 599 [ 34.56 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.51 % BestDownstreamTrackChecker INFO 04_UT+T_strange_P>5GeV : 143 from 338 [ 42.31 %] 0 clones [ 0.00 %], purity: 99.68 %, hitEff: 97.43 % BestDownstreamTrackChecker INFO 05_noVelo+UT+T_strange : 190 from 322 [ 59.01 %] 0 clones [ 0.00 %], purity: 99.76 %, hitEff: 96.58 % BestDownstreamTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 136 from 200 [ 68.00 %] 0 clones [ 0.00 %], purity: 99.71 %, hitEff: 97.44 % @@ -230,10 +230,10 @@ BestDownstreamTrackChecker INFO 12_UT+T_SfromDB_P>5GeV : BestDownstreamTrackChecker INFO 13_noVelo+UT+T_SfromDB : 0 from 1 [ 0.00 %] 0 clones [ 0.00 %], purity: 0.00 %, hitEff: 0.00 % BestDownstreamTrackChecker INFO DownstreamGhostFilteredTrackChecker INFO Results -DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1085 tracks including 279 ghosts [25.71 %], Event average 20.94 % **** -DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 559 from 6463 [ 8.65 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 95.24 % -DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 312 from 3927 [ 7.94 %] 0 clones [ 0.00 %], purity: 99.54 %, hitEff: 97.52 % -DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 206 from 599 [ 34.39 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.53 % +DownstreamGhostFilteredTrackChecker INFO **** DownstreamGhostFiltered 1089 tracks including 279 ghosts [25.62 %], Event average 20.88 % **** +DownstreamGhostFilteredTrackChecker INFO 01_UT+T : 564 from 6463 [ 8.73 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 95.22 % +DownstreamGhostFilteredTrackChecker INFO 02_UT+T_P>5GeV : 314 from 3927 [ 8.00 %] 0 clones [ 0.00 %], purity: 99.54 %, hitEff: 97.50 % +DownstreamGhostFilteredTrackChecker INFO 03_UT+T_strange : 207 from 599 [ 34.56 %] 0 clones [ 0.00 %], purity: 99.72 %, hitEff: 96.51 % DownstreamGhostFilteredTrackChecker INFO 04_UT+T_strange_P>5GeV : 143 from 338 [ 42.31 %] 0 clones [ 0.00 %], purity: 99.68 %, hitEff: 97.43 % DownstreamGhostFilteredTrackChecker INFO 05_noVelo+UT+T_strange : 190 from 322 [ 59.01 %] 0 clones [ 0.00 %], purity: 99.76 %, hitEff: 96.58 % DownstreamGhostFilteredTrackChecker INFO 06_noVelo+UT+T_strange_P>5GeV : 136 from 200 [ 68.00 %] 0 clones [ 0.00 %], purity: 99.71 %, hitEff: 97.44 % @@ -255,148 +255,148 @@ ApplicationMgr INFO Application Manager Terminated succe PrGECFilter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Nb Events Processed" | 100 | -VeloClusterTrackingSIMD INFO Number of counters : 2 +VeloClusterTrackingSIMDFaster INFO Number of counters : 2 | Counter | | "Nb of Produced Clusters" | 100 | 179234 | 1792.3 | - | "Nb of Produced Tracks" | 100 | 23069 | 230.69 | + | "Nb of Produced Tracks" | 100 | 22894 | 228.94 | TracksVPMergerConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 23069 | 230.69 | + | "Nb of Produced Tracks" | 100 | 22894 | 228.94 | PrStorePrUTHits INFO Number of counters : 1 | Counter | | "#banks" | 100 | 18000 | 180.00 | PrVeloUT INFO Number of counters : 2 | Counter | - | "#seeds" | 100 | 14312 | 143.12 | - | "#tracks" | 100 | 3764 | 37.640 | + | "#seeds" | 100 | 14258 | 142.58 | + | "#tracks" | 100 | 3763 | 37.630 | TracksUTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 3764 | 37.640 | + | "Nb of Produced Tracks" | 100 | 3763 | 37.630 | PrStoreUTHit INFO Number of counters : 1 | Counter | | "#banks" | 100 | 18000 | 180.00 | PrForwardTracking INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 99 | 2567 | 25.929 | + | "Nb output tracks" | 99 | 2570 | 25.960 | TracksFTConverter SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 2567 | 25.670 | + | "Nb of Produced Tracks" | 100 | 2570 | 25.700 | VPClus INFO Number of counters : 1 | Counter | | "Nb of Produced Clusters" | 100 | 179234 | 1792.3 | TrackEventFitter SUCCESS Number of counters : 7 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Long.badChisq" | 2567 | 318 | 0.12388 | 0.32944 | 0.0000 | 1.0000 | - | "Long.chisqprobSum" | 2567 | 949.5615 | 0.36991 | 0.30483 | 0.0000 | 0.99994 | - | "Long.flipCharge" | 2567 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Long.numOutliers" | 2567 | 1640 | 0.63888 | 0.76855 | 0.0000 | 2.0000 | + | "Long.badChisq" | 2570 | 322 | 0.12529 | 0.33105 | 0.0000 | 1.0000 | + | "Long.chisqprobSum" | 2570 | 948.8621 | 0.36921 | 0.30482 | 0.0000 | 0.99994 | + | "Long.flipCharge" | 2570 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Long.numOutliers" | 2570 | 1647 | 0.64086 | 0.76943 | 0.0000 | 2.0000 | | "nBadInput" | 100 | 0 | 0.0000 | - | "nFitted" | 100 | 2567 | 25.670 | - | "nTracks" | 100 | 2567 | 25.670 | + | "nFitted" | 100 | 2570 | 25.700 | + | "nTracks" | 100 | 2570 | 25.700 | PrForwardTrackingVelo INFO Number of counters : 1 | Counter | - | "Nb output tracks" | 99 | 6932 | 70.020 | + | "Nb output tracks" | 99 | 6923 | 69.929 | TracksFTConverter#1 SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 100 | 6932 | 69.320 | + | "Nb of Produced Tracks" | 100 | 6923 | 69.230 | PrLongLivedTracking INFO Number of counters : 2 | Counter | | "# Downstream tracks made" | 7527 | | "#UT hits added" | 29578 | PrMatchNN SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#MatchingChi2" | 19354 | 107359.8 | 5.5472 | - | "#MatchingTracks" | 99 | 6664 | 67.313 | - | "TracksMLP" | 19354 | 6559.144 | 0.33890 | + | "#MatchingChi2" | 19350 | 107386.2 | 5.5497 | + | "#MatchingTracks" | 99 | 6656 | 67.232 | + | "TracksMLP" | 19350 | 6553.681 | 0.33869 | TrackBestTrackCreator SUCCESS Number of counters : 33 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"BadInput" | 31891 | 0 |( 0.000000 +- 0.000000)% | - |*"Downstream.badChisq" | 2716 | 1504 |( 55.37555 +- 0.9538511)% | - | "Downstream.chisqProbSum" | 2716 | 375.4849 | 0.13825 | - |*"Downstream.flipCharge" | 2716 | 0 |( 0.000000 +- 0.000000)% | - | "Downstream.ghostProbability" | 2716 | 1559.232 | 0.57409 | - | "Downstream.numOutliers" | 2716 | 3176 | 1.1694 | - |*"FitFailed" | 31891 | 0 |( 0.000000 +- 0.000000)% | - | "FittedBefore" | 2341 | - |*"Long.badChisq" | 6354 | 3090 |( 48.63078 +- 0.6270230)% | - | "Long.chisqProbSum" | 6354 | 1112.545 | 0.17509 | - |*"Long.flipCharge" | 6354 | 0 |( 0.000000 +- 0.000000)% | - | "Long.ghostProbability" | 6354 | 1548.534 | 0.24371 | - | "Long.numOutliers" | 6354 | 6836 | 1.0759 | - |*"Ttrack.badChisq" | 3375 | 93 |( 2.755556 +- 0.2817735)% | - | "Ttrack.chisqProbSum" | 3375 | 1284.241 | 0.38052 | - |*"Ttrack.flipCharge" | 3375 | 120 |( 3.555556 +- 0.3187539)% | - | "Ttrack.ghostProbability" | 3375 | 300.1146 | 0.088923 | - | "Ttrack.numOutliers" | 3375 | 1371 | 0.40622 | - |*"Upstream.badChisq" | 1015 | 235 |( 23.15271 +- 1.323982)% | - | "Upstream.chisqProbSum" | 1015 | 332.3151 | 0.32740 | - |*"Upstream.flipCharge" | 1015 | 20 |( 1.970443 +- 0.4362420)% | - | "Upstream.ghostProbability" | 1015 | 227.1147 | 0.22376 | - | "Upstream.numOutliers" | 1015 | 467 | 0.46010 | - |*"Velo.badChisq" | 7352 | 1894 |( 25.76170 +- 0.5100333)% | - | "Velo.chisqProbSum" | 7352 | 2183.123 | 0.29694 | - |*"Velo.flipCharge" | 7352 | 0 |( 0.000000 +- 0.000000)% | - | "Velo.ghostProbability" | 7352 | 817.7388 | 0.11123 | - | "Velo.numOutliers" | 7352 | 5121 | 0.69655 | - |*"VeloBackward.badChisq" | 8738 | 549 |( 6.282902 +- 0.2595874)% | - | "VeloBackward.chisqProbSum" | 8738 | 3913.099 | 0.44783 | - |*"VeloBackward.flipCharge" | 8738 | 0 |( 0.000000 +- 0.000000)% | - | "VeloBackward.ghostProbability" | 8738 | 748.3764 | 0.085646 | - | "VeloBackward.numOutliers" | 8738 | 2445 | 0.27981 | + |*"BadInput" | 31728 | 0 |( 0.000000 +- 0.000000)% | + |*"Downstream.badChisq" | 2722 | 1505 |( 55.29023 +- 0.9529747)% | + | "Downstream.chisqProbSum" | 2722 | 377.7542 | 0.13878 | + |*"Downstream.flipCharge" | 2722 | 0 |( 0.000000 +- 0.000000)% | + | "Downstream.ghostProbability" | 2722 | 1560.483 | 0.57329 | + | "Downstream.numOutliers" | 2722 | 3183 | 1.1694 | + |*"FitFailed" | 31728 | 0 |( 0.000000 +- 0.000000)% | + | "FittedBefore" | 2345 | + |*"Long.badChisq" | 6353 | 3096 |( 48.73288 +- 0.6271062)% | + | "Long.chisqProbSum" | 6353 | 1113.474 | 0.17527 | + |*"Long.flipCharge" | 6353 | 0 |( 0.000000 +- 0.000000)% | + | "Long.ghostProbability" | 6353 | 1555.688 | 0.24487 | + | "Long.numOutliers" | 6353 | 6831 | 1.0752 | + |*"Ttrack.badChisq" | 3380 | 94 |( 2.781065 +- 0.2828282)% | + | "Ttrack.chisqProbSum" | 3380 | 1285.387 | 0.38029 | + |*"Ttrack.flipCharge" | 3380 | 120 |( 3.550296 +- 0.3182910)% | + | "Ttrack.ghostProbability" | 3380 | 300.0806 | 0.088781 | + | "Ttrack.numOutliers" | 3380 | 1372 | 0.40592 | + |*"Upstream.badChisq" | 1014 | 233 |( 22.97830 +- 1.321133)% | + | "Upstream.chisqProbSum" | 1014 | 329.5643 | 0.32501 | + |*"Upstream.flipCharge" | 1014 | 19 |( 1.873767 +- 0.4258252)% | + | "Upstream.ghostProbability" | 1014 | 227.0889 | 0.22395 | + | "Upstream.numOutliers" | 1014 | 467 | 0.46055 | + |*"Velo.badChisq" | 7296 | 1884 |( 25.82237 +- 0.5123799)% | + | "Velo.chisqProbSum" | 7296 | 2171.402 | 0.29762 | + |*"Velo.flipCharge" | 7296 | 0 |( 0.000000 +- 0.000000)% | + | "Velo.ghostProbability" | 7296 | 792.103 | 0.10857 | + | "Velo.numOutliers" | 7296 | 5083 | 0.69668 | + |*"VeloBackward.badChisq" | 8618 | 531 |( 6.161522 +- 0.2590188)% | + | "VeloBackward.chisqProbSum" | 8618 | 3864.455 | 0.44842 | + |*"VeloBackward.flipCharge" | 8618 | 0 |( 0.000000 +- 0.000000)% | + | "VeloBackward.ghostProbability" | 8618 | 701.3176 | 0.081378 | + | "VeloBackward.numOutliers" | 8618 | 2362 | 0.27408 | PatPV3DFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb PVs" | 100 | 464 | 4.6400 | + | "Nb PVs" | 100 | 465 | 4.6500 | PrLHCbID2MCParticle SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#removed null MCParticles" | 645475 | 0 | 0.0000 | PrTrackAssociator SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 23069 | 22829 |( 98.95964 +- 0.06680453)% | - | "MC particles per track" | 22829 | 22943 | 1.0050 | + |*"Efficiency" | 22894 | 22690 |( 99.10894 +- 0.06210832)% | + | "MC particles per track" | 22690 | 22809 | 1.0052 | PrTrackAssociator#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6664 | 5428 |( 81.45258 +- 0.4761312)% | - | "MC particles per track" | 5428 | 6267 | 1.1546 | + |*"Efficiency" | 6656 | 5420 |( 81.43029 +- 0.4766383)% | + | "MC particles per track" | 5420 | 6258 | 1.1546 | PrTrackAssociator#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 7527 | 5234 |( 69.53634 +- 0.5305008)% | | "MC particles per track" | 5234 | 5234 | 1.0000 | PrTrackAssociator#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 3764 | 3526 |( 93.67694 +- 0.3966936)% | - | "MC particles per track" | 3526 | 3526 | 1.0000 | + |*"Efficiency" | 3763 | 3525 |( 93.67526 +- 0.3967955)% | + | "MC particles per track" | 3525 | 3525 | 1.0000 | PrTrackAssociator#4 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 6932 | 5300 |( 76.45701 +- 0.5095774)% | - | "MC particles per track" | 5300 | 6145 | 1.1594 | + |*"Efficiency" | 6923 | 5289 |( 76.39752 +- 0.5103538)% | + | "MC particles per track" | 5289 | 6133 | 1.1596 | PrTrackAssociator#5 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 2567 | 2505 |( 97.58473 +- 0.3030128)% | - | "MC particles per track" | 2505 | 2944 | 1.1752 | + |*"Efficiency" | 2570 | 2507 |( 97.54864 +- 0.3050337)% | + | "MC particles per track" | 2507 | 2947 | 1.1755 | PrTrackAssociator#6 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"Efficiency" | 10294 | 9695 |( 94.18108 +- 0.2307337)% | | "MC particles per track" | 9695 | 9695 | 1.0000 | PrTrackAssociator#7 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - |*"Efficiency" | 28053 | 25822 |( 92.04720 +- 0.1615384)% | - | "MC particles per track" | 25822 | 26749 | 1.0359 | + |*"Efficiency" | 27876 | 25681 |( 92.12584 +- 0.1613160)% | + | "MC particles per track" | 25681 | 26608 | 1.0361 | TrackListRefiner SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 6398 | 63.980 | 39.363 | 0.0000 | 172.00 | - | "#seeds" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#passed" | 100 | 6388 | 63.880 | 39.290 | 0.0000 | 171.00 | + | "#seeds" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | TrackListRefiner#2 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 5910 | 59.100 | 34.995 | 0.0000 | 146.00 | - | "#seeds" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#passed" | 100 | 5901 | 59.010 | 34.922 | 0.0000 | 145.00 | + | "#seeds" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | TrackListRefiner#1 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 1362 | 13.620 | 9.5224 | 0.0000 | 42.000 | - | "#seeds" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#passed" | 100 | 1367 | 13.670 | 9.5719 | 0.0000 | 42.000 | + | "#seeds" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | TrackListRefiner#3 SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#passed" | 100 | 1085 | 10.850 | 7.0234 | 0.0000 | 30.000 | - | "#seeds" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#passed" | 100 | 1089 | 10.890 | 7.0737 | 0.0000 | 30.000 | + | "#seeds" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | FutureEcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 100 | 0 |( 0.000000 +- 0.000000)% | @@ -422,116 +422,116 @@ CaloFutureMergedPi0 INFO Number of counters : 9 | "clusters => splitPhotons" | 100 | 758 | 7.5800 | InEcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.253 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | - | "#tracks in acceptance" | 100 | 9304 | 93.040 | 65.505 | 0.0000 | 491.00 | + | "#links in table" | 100 | 11135 | 111.35 | 77.203 | 0.0000 | 564.00 | + | "#total tracks" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | + | "#tracks in acceptance" | 100 | 9303 | 93.030 | 65.437 | 0.0000 | 490.00 | FutureEcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 100 | 9304 | 93.040 | 65.505 | 0.0000 | 491.00 | + | "/Event/FutureTrack2EcalEAlg/Output=>/Event/Futu| 100 | 9303 | 93.030 | 65.437 | 0.0000 | 490.00 | FutureHcalZSup INFO Number of counters : 1 | Counter | |*"No bank found" | 100 | 0 |( 0.000000 +- 0.000000)% | InHcalFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.253 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | - | "#tracks in acceptance" | 100 | 8735 | 87.350 | 62.013 | 0.0000 | 473.00 | + | "#links in table" | 100 | 11135 | 111.35 | 77.203 | 0.0000 | 564.00 | + | "#total tracks" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | + | "#tracks in acceptance" | 100 | 8735 | 87.350 | 61.960 | 0.0000 | 472.00 | FutureHcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8735 | 87.350 | 62.013 | 0.0000 | 473.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8735 | 87.350 | 61.960 | 0.0000 | 472.00 | FutureHcalPIDmuAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8735 | 87.350 | 62.013 | 0.0000 | 473.00 | + | "/Event/FutureTrack2HcalEAlg/Output=>/Event/Futu| 100 | 8735 | 87.350 | 61.960 | 0.0000 | 472.00 | FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 100 | 1484251 | 14843. | 16941. | 0.0000 | 1.2952e+05 | - | "#chi2" | 456962 |2.10519e+08 | 460.69 | 291.06 | 0.00012433 | 1000.0 | - | "#good tracks" | 100 | 9304 | 93.040 | 65.505 | 0.0000 | 491.00 | - | "#links in table" | 100 | 456962 | 4569.6 | 6227.9 | 0.0000 | 50191. | + | "#above threshold" | 100 | 1483817 | 14838. | 16920. | 0.0000 | 1.2930e+05 | + | "#chi2" | 456836 |2.104621e+08 | 460.70 | 291.05 | 0.00012433 | 1000.0 | + | "#good tracks" | 100 | 9303 | 93.030 | 65.437 | 0.0000 | 490.00 | + | "#links in table" | 100 | 456836 | 4568.4 | 6216.2 | 0.0000 | 50039. | | "#total calos" | 100 | 15868 | 158.68 | 79.052 | 0.0000 | 366.00 | ClassifyPhotonElectronAlg INFO Number of counters : 2 | Counter | - | "electronHypos" | 100 | 8564 | 85.640 | 54.368 | 0.0000 | 286.00 | + | "electronHypos" | 100 | 8563 | 85.630 | 54.332 | 0.0000 | 285.00 | | "photonHypos" | 100 | 10308 | 103.08 | 48.581 | 0.0000 | 210.00 | FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 100 | 1015285 | 10153. | 14950. | 0.0000 | 1.2385e+05 | - | "#chi2" | 120890 |5.326374e+08 | 4406.0 | 2938.9 | 0.065218 | 9999.9 | - | "#good tracks" | 100 | 9304 | 93.040 | 65.505 | 0.0000 | 491.00 | - | "#links in table" | 100 | 120890 | 1208.9 | 1859.6 | 0.0000 | 16577. | - | "#total calos" | 100 | 8564 | 85.640 | 54.368 | 0.0000 | 286.00 | + | "#above threshold" | 100 | 1014470 | 10145. | 14893. | 0.0000 | 1.2314e+05 | + | "#chi2" | 120850 |5.324834e+08 | 4406.2 | 2939.1 | 0.065218 | 9999.9 | + | "#good tracks" | 100 | 9303 | 93.030 | 65.437 | 0.0000 | 490.00 | + | "#links in table" | 100 | 120850 | 1208.5 | 1854.7 | 0.0000 | 16515. | + | "#total calos" | 100 | 8563 | 85.630 | 54.332 | 0.0000 | 285.00 | FutureEcalChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.253 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#links in table" | 100 | 11135 | 111.35 | 77.203 | 0.0000 | 564.00 | + | "#total tracks" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | FutureEcalPIDeAlg SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 100 | 11135 | 111.35 | 77.253 | 0.0000 | 565.00 | + | "/Event/FutureEcalChi22ID/Output=>/Event/FutureE| 100 | 11135 | 111.35 | 77.203 | 0.0000 | 564.00 | FutureInBremFutureAcceptanceAlg SUCCESS Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 14578 | 145.78 | 87.928 | 0.0000 | 410.00 | - | "#total tracks" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | - | "#tracks in acceptance" | 100 | 9548 | 95.480 | 58.785 | 0.0000 | 244.00 | + | "#links in table" | 100 | 14511 | 145.11 | 87.787 | 0.0000 | 409.00 | + | "#total tracks" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | + | "#tracks in acceptance" | 100 | 9531 | 95.310 | 58.775 | 0.0000 | 246.00 | BremMatchAlgFuture SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#above threshold" | 100 | 886631 | 8866.3 | 8597.3 | 0.0000 | 35998. | - | "#chi2" | 361610 |1.690673e+09 | 4675.4 | 2884.5 | 0.00077758 | 10000. | - | "#good tracks" | 100 | 9548 | 95.480 | 58.785 | 0.0000 | 244.00 | - | "#links in table" | 100 | 361610 | 3616.1 | 3086.2 | 0.0000 | 12124. | + | "#above threshold" | 100 | 884965 | 8849.6 | 8587.2 | 0.0000 | 36156. | + | "#chi2" | 361427 |1.689854e+09 | 4675.5 | 2884.0 | 0.00077758 | 10000. | + | "#good tracks" | 100 | 9531 | 95.310 | 58.775 | 0.0000 | 246.00 | + | "#links in table" | 100 | 361427 | 3614.3 | 3088.9 | 0.0000 | 12091. | | "#total calos" | 100 | 10308 | 103.08 | 48.581 | 0.0000 | 210.00 | BremChi22IDFuture SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 14578 | 145.78 | 87.928 | 0.0000 | 410.00 | - | "#total tracks" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#links in table" | 100 | 14511 | 145.11 | 87.787 | 0.0000 | 409.00 | + | "#total tracks" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | BremPIDeAlgFuture SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 100 | 14578 | 145.78 | 87.928 | 0.0000 | 410.00 | + | "/Event/BremChi22IDFuture/Output=>/Event/BremPID| 100 | 14511 | 145.11 | 87.787 | 0.0000 | 409.00 | FutureClusChi22ID SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#links in table" | 100 | 11135 | 111.35 | 77.253 | 0.0000 | 565.00 | - | "#total tracks" | 100 | 28053 | 280.53 | 170.17 | 0.0000 | 1032.0 | + | "#links in table" | 100 | 11135 | 111.35 | 77.203 | 0.0000 | 564.00 | + | "#total tracks" | 100 | 27876 | 278.76 | 169.33 | 0.0000 | 1033.0 | RichRecoStatsDownstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 100 | 194922 | 1949.2 | 2198.8 | 0.0000 | 11139. | - | "# Rich1Gas Segments" | 100 | 1068 | 10.680 | 7.6693 | 0.0000 | 35.000 | - | "# Rich2Gas Photons" | 100 | 21655 | 216.55 | 254.80 | 0.0000 | 1113.0 | - | "# Rich2Gas Segments" | 100 | 429 | 4.2900 | 3.4214 | 0.0000 | 15.000 | - | "# Selected Tracks" | 100 | 1207 | 12.070 | 8.6859 | 0.0000 | 40.000 | - |*"RICH selection efficiency" | 1362 | 1207 |( 88.61968 +- 0.8605058)% | + | "# Rich1Gas Photons" | 100 | 195962 | 1959.6 | 2211.1 | 0.0000 | 11139. | + | "# Rich1Gas Segments" | 100 | 1073 | 10.730 | 7.7290 | 0.0000 | 35.000 | + | "# Rich2Gas Photons" | 100 | 21725 | 217.25 | 254.62 | 0.0000 | 1113.0 | + | "# Rich2Gas Segments" | 100 | 431 | 4.3100 | 3.4255 | 0.0000 | 15.000 | + | "# Selected Tracks" | 100 | 1212 | 12.120 | 8.7422 | 0.0000 | 40.000 | + |*"RICH selection efficiency" | 1367 | 1212 |( 88.66130 +- 0.8575597)% | RichDLLsDownstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 100 | 1207 | 12.070 | 8.6859 | 0.0000 | 40.000 | - |*"Used RICH1 and RICH2" | 1207 | 290 |( 24.02651 +- 1.229767)% | - |*"Used RICH1 only" | 1207 | 778 |( 64.45733 +- 1.377709)% | - |*"Used RICH2 only" | 1207 | 139 |( 11.51616 +- 0.9188236)% | + | "# PIDs" | 100 | 1212 | 12.120 | 8.7422 | 0.0000 | 40.000 | + |*"Used RICH1 and RICH2" | 1212 | 292 |( 24.09241 +- 1.228376)% | + |*"Used RICH1 only" | 1212 | 781 |( 64.43894 +- 1.375024)% | + |*"Used RICH2 only" | 1212 | 139 |( 11.46865 +- 0.9152786)% | RichRecoStatsLong INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 100 | 759078 | 7590.8 | 7499.2 | 0.0000 | 29607. | - | "# Rich1Gas Segments" | 100 | 4822 | 48.220 | 30.416 | 0.0000 | 129.00 | - | "# Rich2Gas Photons" | 100 | 191988 | 1919.9 | 1947.5 | 0.0000 | 10737. | - | "# Rich2Gas Segments" | 100 | 3300 | 33.000 | 20.786 | 0.0000 | 85.000 | - | "# Selected Tracks" | 100 | 6074 | 60.740 | 37.330 | 0.0000 | 162.00 | - |*"RICH selection efficiency" | 6398 | 6074 |( 94.93592 +- 0.2741218)% | + | "# Rich1Gas Photons" | 100 | 756817 | 7568.2 | 7468.5 | 0.0000 | 29586. | + | "# Rich1Gas Segments" | 100 | 4816 | 48.160 | 30.393 | 0.0000 | 129.00 | + | "# Rich2Gas Photons" | 100 | 191908 | 1919.1 | 1943.2 | 0.0000 | 10622. | + | "# Rich2Gas Segments" | 100 | 3299 | 32.990 | 20.783 | 0.0000 | 84.000 | + | "# Selected Tracks" | 100 | 6066 | 60.660 | 37.290 | 0.0000 | 161.00 | + |*"RICH selection efficiency" | 6388 | 6066 |( 94.95930 +- 0.2737359)% | RichDLLsLong INFO Number of counters : 4 | Counter | - | "# PIDs" | 100 | 6074 | 60.740 | 37.330 | 0.0000 | 162.00 | - |*"Used RICH1 and RICH2" | 6074 | 2048 |( 33.71748 +- 0.6065822)% | - |*"Used RICH1 only" | 6074 | 2774 |( 45.67007 +- 0.6391430)% | - |*"Used RICH2 only" | 6074 | 1252 |( 20.61245 +- 0.5190433)% | + | "# PIDs" | 100 | 6066 | 60.660 | 37.290 | 0.0000 | 161.00 | + |*"Used RICH1 and RICH2" | 6066 | 2049 |( 33.77844 +- 0.6072511)% | + |*"Used RICH1 only" | 6066 | 2767 |( 45.61490 +- 0.6395023)% | + |*"Used RICH2 only" | 6066 | 1250 |( 20.60666 +- 0.5193315)% | RichRecoStatsUpstream INFO Number of counters : 6 | Counter | - | "# Rich1Gas Photons" | 100 | 93590 | 935.90 | 1137.8 | 0.0000 | 5954.0 | - | "# Rich1Gas Segments" | 100 | 706 | 7.0600 | 5.4089 | 0.0000 | 24.000 | + | "# Rich1Gas Photons" | 100 | 93587 | 935.87 | 1138.5 | 0.0000 | 5954.0 | + | "# Rich1Gas Segments" | 100 | 704 | 7.0400 | 5.4036 | 0.0000 | 24.000 | | "# Rich2Gas Photons" | 100 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | "# Rich2Gas Segments" | 100 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "# Selected Tracks" | 100 | 706 | 7.0600 | 5.4089 | 0.0000 | 24.000 | - |*"RICH selection efficiency" | 828 | 706 |( 85.26570 +- 1.231790)% | + | "# Selected Tracks" | 100 | 704 | 7.0400 | 5.4036 | 0.0000 | 24.000 | + |*"RICH selection efficiency" | 827 | 704 |( 85.12696 +- 1.237316)% | RichDLLsUpstream INFO Number of counters : 4 | Counter | - | "# PIDs" | 100 | 706 | 7.0600 | 5.4089 | 0.0000 | 24.000 | - |*"Used RICH1 and RICH2" | 706 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 706 | 706 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 706 | 0 |( 0.000000 +- 0.000000)% | + | "# PIDs" | 100 | 704 | 7.0400 | 5.4036 | 0.0000 | 24.000 | + |*"Used RICH1 and RICH2" | 704 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 704 | 704 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 704 | 0 |( 0.000000 +- 0.000000)% | RichSumUnPack SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "# UnPackedData" | 100 | 532199 | 5322.0 | 3270.5 | 0.0000 | 13545. | @@ -539,22 +539,22 @@ RichPIDMonDownstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 248 | 240 |( 96.77419 +- 1.121949)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 251 | 243 |( 96.81275 +- 1.108760)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 8 | 8 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 1280 | 1128 |( 88.12500 +- 0.9041935)% | - |*"Used RICH1 and RICH2" | 1128 | 290 |( 25.70922 +- 1.301240)% | - |*"Used RICH1 only" | 1128 | 701 |( 62.14539 +- 1.444140)% | - |*"Used RICH2 only" | 1128 | 137 |( 12.14539 +- 0.9725982)% | + |*"Track ID rate" | 1285 | 1133 |( 88.17121 +- 0.9009113)% | + |*"Used RICH1 and RICH2" | 1133 | 292 |( 25.77229 +- 1.299405)% | + |*"Used RICH1 only" | 1133 | 704 |( 62.13592 +- 1.441020)% | + |*"Used RICH2 only" | 1133 | 137 |( 12.09179 +- 0.9686014)% | RichPIDMonDownstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | |*"K->K,Pr,D ID Efficiency" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 84 | 76 |( 90.47619 +- 3.202822)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 85 | 77 |( 90.58824 +- 3.167101)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 8 | 8 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 249 | 249 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 249 | 164 |( 65.86345 +- 3.004916)% | - |*"Used RICH1 only" | 249 | 6 |( 2.409639 +- 0.9718064)% | - |*"Used RICH2 only" | 249 | 79 |( 31.72691 +- 2.949436)% | + |*"Track ID rate" | 250 | 250 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 250 | 165 |( 66.00000 +- 2.995997)% | + |*"Used RICH1 only" | 250 | 6 |( 2.400000 +- 0.9679669)% | + |*"Used RICH2 only" | 250 | 79 |( 31.60000 +- 2.940367)% | RichPIDMonDownstream70to100 INFO Number of counters : 5 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | @@ -565,31 +565,31 @@ RichPIDMonDownstream70to100 INFO Number of counters : 5 RichPIDMonDownstream2to10 INFO Number of counters : 6 | Counter | |*"Event ID rate" | 100 | 96 |( 96.00000 +- 1.959592)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 164 | 164 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 1029 | 877 |( 85.22838 +- 1.106111)% | - |*"Used RICH1 and RICH2" | 877 | 125 |( 14.25314 +- 1.180496)% | - |*"Used RICH1 only" | 877 | 695 |( 79.24743 +- 1.369395)% | - |*"Used RICH2 only" | 877 | 57 |( 6.499430 +- 0.8324247)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 166 | 166 |( 100.0000 +- 0.000000)% | + |*"Track ID rate" | 1033 | 881 |( 85.28558 +- 1.102197)% | + |*"Used RICH1 and RICH2" | 881 | 126 |( 14.30193 +- 1.179492)% | + |*"Used RICH1 only" | 881 | 698 |( 79.22815 +- 1.366751)% | + |*"Used RICH2 only" | 881 | 57 |( 6.469921 +- 0.8287760)% | RichPIDMonLong2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | - |*"K->K,Pr,D ID Efficiency" | 228 | 226 |( 99.12281 +- 0.6175426)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 2923 | 2860 |( 97.84468 +- 0.2686025)% | - |*"Pr DLL(Pr)>0 ID Efficiency" | 75 | 73 |( 97.33333 +- 1.860307)% | - |*"Track ID rate" | 6244 | 5921 |( 94.82703 +- 0.2802880)% | - |*"Used RICH1 and RICH2" | 5921 | 2041 |( 34.47053 +- 0.6176533)% | - |*"Used RICH1 only" | 5921 | 2650 |( 44.75595 +- 0.6462055)% | - |*"Used RICH2 only" | 5921 | 1230 |( 20.77352 +- 0.5272210)% | + |*"K->K,Pr,D ID Efficiency" | 227 | 225 |( 99.11894 +- 0.6202510)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 2920 | 2857 |( 97.84247 +- 0.2688754)% | + |*"Pr DLL(Pr)>0 ID Efficiency" | 75 | 72 |( 96.00000 +- 2.262742)% | + |*"Track ID rate" | 6236 | 5915 |( 94.85247 +- 0.2798148)% | + |*"Used RICH1 and RICH2" | 5915 | 2042 |( 34.52240 +- 0.6181865)% | + |*"Used RICH1 only" | 5915 | 2645 |( 44.71682 +- 0.6464793)% | + |*"Used RICH2 only" | 5915 | 1228 |( 20.76078 +- 0.5273689)% | RichPIDMonLong10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | - |*"K->K,Pr,D ID Efficiency" | 219 | 217 |( 99.08676 +- 0.6428042)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1190 | 1136 |( 95.46218 +- 0.6033448)% | - |*"Pr DLL(Pr)>0 ID Efficiency" | 70 | 69 |( 98.57143 +- 1.418331)% | - |*"Track ID rate" | 2231 | 2230 |( 99.95518 +- 0.04481290)% | - |*"Used RICH1 and RICH2" | 2230 | 1249 |( 56.00897 +- 1.051135)% | - |*"Used RICH1 only" | 2230 | 39 |( 1.748879 +- 0.2775851)% | - |*"Used RICH2 only" | 2230 | 942 |( 42.24215 +- 1.045987)% | + |*"K->K,Pr,D ID Efficiency" | 218 | 216 |( 99.08257 +- 0.6457392)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1186 | 1132 |( 95.44688 +- 0.6053312)% | + |*"Pr DLL(Pr)>0 ID Efficiency" | 70 | 68 |( 97.14286 +- 1.991234)% | + |*"Track ID rate" | 2232 | 2231 |( 99.95520 +- 0.04479283)% | + |*"Used RICH1 and RICH2" | 2231 | 1252 |( 56.11833 +- 1.050616)% | + |*"Used RICH1 only" | 2231 | 39 |( 1.748095 +- 0.2774618)% | + |*"Used RICH2 only" | 2231 | 940 |( 42.13357 +- 1.045388)% | RichPIDMonLong70to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | @@ -604,28 +604,28 @@ RichPIDMonLong2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 100 | 99 |( 99.00000 +- 0.9949874)% | |*"K->K,Pr,D ID Efficiency" | 3 | 3 |( 100.0000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 1721 | 1719 |( 99.88379 +- 0.08212618)% | - |*"Track ID rate" | 3975 | 3654 |( 91.92453 +- 0.4321466)% | - |*"Used RICH1 and RICH2" | 3654 | 784 |( 21.45594 +- 0.6791194)% | - |*"Used RICH1 only" | 3654 | 2611 |( 71.45594 +- 0.7471242)% | - |*"Used RICH2 only" | 3654 | 259 |( 7.088123 +- 0.4245384)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 1722 | 1720 |( 99.88386 +- 0.08207852)% | + |*"Track ID rate" | 3966 | 3647 |( 91.95663 +- 0.4318512)% | + |*"Used RICH1 and RICH2" | 3647 | 782 |( 21.44228 +- 0.6796136)% | + |*"Used RICH1 only" | 3647 | 2606 |( 71.45599 +- 0.7478404)% | + |*"Used RICH2 only" | 3647 | 259 |( 7.101727 +- 0.4253221)% | RichPIDMonUpstream2to100 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | |*"K->K,Pr,D ID Efficiency" | 31 | 27 |( 87.09677 +- 6.021010)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 235 | 220 |( 93.61702 +- 1.594613)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 233 | 218 |( 93.56223 +- 1.607830)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 7 | 6 |( 85.71429 +- 13.22600)% | - |*"Track ID rate" | 811 | 703 |( 86.68311 +- 1.193049)% | - |*"Used RICH1 and RICH2" | 703 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 703 | 703 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 703 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 810 | 701 |( 86.54321 +- 1.199071)% | + |*"Used RICH1 and RICH2" | 701 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 701 | 701 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 701 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream10to70 INFO Number of counters : 8 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | |*"K->K,Pr,D ID Efficiency" | 29 | 26 |( 89.65517 +- 5.655230)% | |*"Pi->El,Mu,Pi ID Efficiency" | 109 | 95 |( 87.15596 +- 3.204690)% | |*"Pr DLL(Pr)>0 ID Efficiency" | 7 | 6 |( 85.71429 +- 13.22600)% | - |*"Track ID rate" | 320 | 222 |( 69.37500 +- 2.576704)% | + |*"Track ID rate" | 321 | 222 |( 69.15888 +- 2.577725)% | |*"Used RICH1 and RICH2" | 222 | 0 |( 0.000000 +- 0.000000)% | |*"Used RICH1 only" | 222 | 222 |( 100.0000 +- 0.000000)% | |*"Used RICH2 only" | 222 | 0 |( 0.000000 +- 0.000000)% | @@ -633,19 +633,19 @@ RichPIDMonUpstream70to100 INFO Number of counters : 6 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | |*"K->K,Pr,D ID Efficiency" | 1 | 1 |( 100.0000 +- 0.000000)% | - |*"Track ID rate" | 14 | 4 |( 28.57143 +- 12.07363)% | - |*"Used RICH1 and RICH2" | 4 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 4 | 4 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 4 | 0 |( 0.000000 +- 0.000000)% | + |*"Track ID rate" | 13 | 3 |( 23.07692 +- 11.68545)% | + |*"Used RICH1 and RICH2" | 3 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 3 | 3 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 3 | 0 |( 0.000000 +- 0.000000)% | RichPIDMonUpstream2to10 INFO Number of counters : 7 | Counter | |*"Event ID rate" | 100 | 93 |( 93.00000 +- 2.551470)% | |*"K->K,Pr,D ID Efficiency" | 1 | 0 |( 0.000000 +- 0.000000)% | - |*"Pi->El,Mu,Pi ID Efficiency" | 126 | 125 |( 99.20635 +- 0.7904951)% | - |*"Track ID rate" | 477 | 477 |( 100.0000 +- 0.000000)% | - |*"Used RICH1 and RICH2" | 477 | 0 |( 0.000000 +- 0.000000)% | - |*"Used RICH1 only" | 477 | 477 |( 100.0000 +- 0.000000)% | - |*"Used RICH2 only" | 477 | 0 |( 0.000000 +- 0.000000)% | + |*"Pi->El,Mu,Pi ID Efficiency" | 124 | 123 |( 99.19355 +- 0.8031932)% | + |*"Track ID rate" | 476 | 476 |( 100.0000 +- 0.000000)% | + |*"Used RICH1 and RICH2" | 476 | 0 |( 0.000000 +- 0.000000)% | + |*"Used RICH1 only" | 476 | 476 |( 100.0000 +- 0.000000)% | + |*"Used RICH2 only" | 476 | 0 |( 0.000000 +- 0.000000)% | ClusterMonitorEcalClusters SUCCESS Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "Monitor /Event/CaloFutureClusterCovarianceAlg/O| 99 | 15868 | 160.28 | 77.816 | 10.000 | 366.00 | @@ -676,30 +676,30 @@ CaloFutureMergedPi0.SplitPhotonS... SUCCESS Number of counters : 2 | "Delta(Y)" | 29183 | -5411.848 | -0.18545 | 13.709 | -30.034 | 22.930 | ToolSvc.LCorrectionElectron SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2802 | 227630.7 | 81.239 | 0.54214 | 81.241 | 81.241 | + | " Inner" | 2801 | 227549.5 | 81.239 | 0.54203 | 81.241 | 81.241 | | " Middle" | 2534 | 241492.9 | 95.301 | 0.63404 | 95.304 | 95.304 | | " Outer" | 3228 | 351450.7 | 108.88 | 0.65990 | 108.88 | 108.88 | - | " Inner" | 2802 | 41406.39 | 14.777 | 0.085486 | 14.778 | 14.778 | + | " Inner" | 2801 | 41391.61 | 14.777 | 0.085494 | 14.778 | 14.778 | | " Middle" | 2534 | 36578.26 | 14.435 | 0.0000 | 14.435 | 14.435 | | " Outer" | 3228 | 47175.01 | 14.614 | 0.049035 | 14.614 | 14.614 | - | "Delta(Z)" | 8564 | 992644.3 | 115.91 | 11.356 | 79.082 | 173.00 | - | "Delta(Z) Inner" | 2802 | 317371.1 | 113.27 | 11.026 | 79.082 | 151.50 | + | "Delta(Z)" | 8563 | 992533 | 115.91 | 11.357 | 79.082 | 173.00 | + | "Delta(Z) Inner" | 2801 | 317259.7 | 113.27 | 11.028 | 79.082 | 151.50 | | "Delta(Z) Middle" | 2534 | 290037.1 | 114.46 | 10.301 | 82.952 | 153.95 | | "Delta(Z) Outer" | 3228 | 385235.5 | 119.34 | 11.571 | 90.924 | 173.00 | ToolSvc.SCorrectionElectron SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Delta(X)" | 8564 | -1627.941 | -0.19009 | 11.967 | -23.059 | 22.930 | - | "Delta(Y)" | 8564 | -880.257 | -0.10279 | 11.903 | -23.059 | 22.930 | + | "Delta(X)" | 8563 | -1633.469 | -0.19076 | 11.967 | -23.059 | 22.930 | + | "Delta(Y)" | 8563 | -877.2698 | -0.10245 | 11.903 | -23.059 | 22.930 | ToolSvc.ECorrectionElectron SUCCESS Number of counters : 8 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | " Inner" | 2802 | 2789.305 | 0.99547 | 0.019267 | 0.96514 | 1.1151 | + | " Inner" | 2801 | 2788.327 | 0.99548 | 0.019271 | 0.96514 | 1.1151 | | " Middle" | 2534 | 2550.609 | 1.0066 | 0.018609 | 0.97699 | 1.1113 | | " Outer" | 3228 | 3229.945 | 1.0006 | 0.014428 | 0.97413 | 1.0473 | - | "Corrected energy" | 8564 |5.662501e+07 | 6612.0 | 7466.0 | 398.05 | 1.1680e+05 | - | "Delta(E)" | 8564 | 1745981 | 203.87 | 206.93 | -2370.9 | 3316.7 | - | "Pileup offset" | 8564 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup scale" | 8564 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | - | "Pileup subtracted ratio" | 8564 | 8564 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | + | "Corrected energy" | 8563 |5.661713e+07 | 6611.8 | 7466.5 | 398.05 | 1.1680e+05 | + | "Delta(E)" | 8563 | 1746114 | 203.91 | 206.94 | -2370.9 | 3316.7 | + | "Pileup offset" | 8563 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup scale" | 8563 | 0 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | + | "Pileup subtracted ratio" | 8563 | 8563 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | ToolSvc.LCorrectionPhoton SUCCESS Number of counters : 10 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | " Inner" | 2908 | 236241.6 | 81.239 | 0.56435 | 81.241 | 81.241 | @@ -821,12 +821,12 @@ VeloTrackChecker.LoKi::Hybrid::M... SUCCESS Number of counters : 1 | "# loaded from PYTHON" | 12 | 12 | 1.0000 | 0.0000 | 1.0000 | 1.0000 | PrMatchNN.PrAddUTHitsTool SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5812 | 37242 | 6.4078 | - | "#tracks with hits added" | 5812 | + | "#UT hits added" | 5802 | 37148 | 6.4026 | + | "#tracks with hits added" | 5802 | PrForwardTrackingVelo.PrAddUTHit... SUCCESS Number of counters : 2 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "#UT hits added" | 5884 | 37591 | 6.3887 | - | "#tracks with hits added" | 5884 | + | "#UT hits added" | 5883 | 37563 | 6.3850 | + | "#tracks with hits added" | 5883 | RichRecPixelClusters SUCCESS 1D histograms in directory "RICH/RichRecPixelClusters" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1/clusterSize | "Rich1 Pixel Cluster Sizes" | 221555 | 1.2981 | 0.98957 | 7.9566 | 129.1 | @@ -842,50 +842,50 @@ RichRecPixelQC SUCCESS 1D histograms in directory "RICH/Ric RiCKResDownstream SUCCESS 1D histograms in directory "RICH/RiCKResDownstream" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 13878 | 7.1829e-05 | 0.0020758 | -0.23583 | -0.43171 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 26016 | 8.7309e-05 | 0.0021332 | -0.19426 | -0.47298 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 26016 | 3.1329 | 1.7951 | 0.011342 | -1.1563 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 26016 | 0.047244 | 0.0064 | -1.08 | 0.049497 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 12138 | 0.00010552 | 0.0021987 | -0.15534 | -0.52922 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 26125 | 8.9924e-05 | 0.0021312 | -0.19478 | -0.46938 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 26125 | 3.1324 | 1.7955 | 0.011667 | -1.1577 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 26125 | 0.047241 | 0.0064084 | -1.0812 | 0.04822 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 12247 | 0.000111 | 0.0021937 | -0.15688 | -0.52126 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 8732 | 4.6616e-05 | 0.0012697 | -0.045054 | -0.90691 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 8076 | 0.00014004 | 0.0012497 | -0.068717 | -0.84445 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 16808 | 9.1226e-05 | 0.001261 | -0.057686 | -0.8767 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 16808 | 3.0745 | 1.7948 | 0.068105 | -1.1788 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 16808 | 0.027183 | 0.0040896 | -1.8222 | 3.4015 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 8092 | 0.00014058 | 0.0012491 | -0.068524 | -0.84302 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 16824 | 9.1545e-05 | 0.0012607 | -0.057669 | -0.87596 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 16824 | 3.0747 | 1.7953 | 0.067701 | -1.1797 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 16824 | 0.027184 | 0.0040879 | -1.8232 | 3.4075 | RiTkMaterialDownstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialDownstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 411 | 0.037596 | 0.00095239 | 3.0348 | 6.2571 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 411 | 3.4614e-05 | 6.0671e-12 |-6.5814e+12 | 1.2334e+17 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 411 | 1072.6 | 15.674 | -0.10019 | -1.1787 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 1043 | 0.055838 | 0.0411 | 0.59651 | -1.5168 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 1043 | 2.3773e-05 | 1.5783e-05 | 0.59844 | -1.5393 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 1043 | 2228.8 | 241.49 | -0.20197 | -0.79366 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 413 | 0.037599 | 0.00095097 | 3.0222 | 6.2216 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 413 | 3.4614e-05 | 6.118e-12 |-6.4185e+12 | 1.1928e+17 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 413 | 1072.6 | 15.689 | -0.10228 | -1.1832 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 1048 | 0.055772 | 0.04109 | 0.60009 | -1.5128 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 1048 | 2.3747e-05 | 1.5778e-05 | 0.60172 | -1.5359 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 1048 | 2228.5 | 241.29 | -0.1989 | -0.79444 | RiTkSignalYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 12 | 7.6066 | 8.3721 | 1.4649 | 1.4966 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1068 | 36.068 | 4.1933 | -2.1708 | 6.0716 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 183 | 19.583 | 9.8005 | -0.072164 | -0.96206 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 996 | 25.285 | 10.091 | -0.62409 | -0.5476 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 840 | 22.785 | 11.304 | -0.43281 | -0.98766 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1073 | 36.059 | 4.2118 | -2.1734 | 6.0327 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 184 | 19.56 | 9.7785 | -0.065746 | -0.95534 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1001 | 25.293 | 10.078 | -0.62503 | -0.54312 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 844 | 22.799 | 11.275 | -0.43169 | -0.98276 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 61 | 16.946 | 9.1324 | -0.24633 | -1.0559 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 5 | 9.6695 | 6.3204 | -0.17934 | -1.377 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 429 | 17.605 | 6.5767 | -0.61179 | -0.847 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 431 | 17.617 | 6.5655 | -0.61682 | -0.8374 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 115 | 11.209 | 6.0173 | -0.21943 | -1.0382 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 416 | 16.214 | 6.6691 | -0.66155 | -0.84426 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 396 | 15.555 | 6.5167 | -0.64866 | -0.87717 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 418 | 16.221 | 6.6538 | -0.66592 | -0.83213 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 398 | 15.56 | 6.501 | -0.65228 | -0.86543 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 37 | 8.5548 | 5.7465 | 0.43261 | -0.77687 | RiTkEmittedYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 13 | 124.76 | 135.86 | 1.4071 | 1.3918 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1068 | 591.49 | 57.706 | -3.5904 | 12.894 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 188 | 320.56 | 162.45 | -0.18399 | -1.0046 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1000 | 415.55 | 159.74 | -0.74424 | -0.45365 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 853 | 372.59 | 182.63 | -0.51841 | -0.98254 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1073 | 591.36 | 58.059 | -3.5707 | 12.697 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 189 | 320.15 | 162.12 | -0.17709 | -1.0004 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1005 | 415.66 | 159.53 | -0.74471 | -0.44871 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 858 | 372.44 | 182.51 | -0.51706 | -0.9789 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 64 | 272.01 | 156.41 | -0.18094 | -1.0681 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 6 | 130.63 | 102.99 | 0.14116 | -1.4812 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1311 | 408.53 | 52.428 | -0.23211 | -0.86258 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 1317 | 408.54 | 52.385 | -0.23098 | -0.86174 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 120 | 174.89 | 97.195 | -0.28557 | -1.1906 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 861 | 243.24 | 106.22 | -0.87057 | -0.44058 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 655 | 230.49 | 101.58 | -0.70495 | -0.63245 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 865 | 243.1 | 106.35 | -0.86789 | -0.44785 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 658 | 230.35 | 101.78 | -0.70698 | -0.63197 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 38 | 133.75 | 88.143 | 0.4323 | -0.77097 | RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | @@ -894,454 +894,454 @@ RichTkSelEffDownstream SUCCESS 1D histograms in directory "RICH/Ric | All/Rejected/GhostProb | "Track Ghost Probability" | 155 | 0.19438 | 0.11231 | 0.026282 | -1.0586 | | All/Rejected/P | "Track Momentum" | 155 | 3869.9 | 1275.2 | 0.8737 | 0.40145 | | All/Rejected/Pt | "Track Transverse Momentum" | 155 | 117.65 | 49.515 | 2.5657 | 4.4854 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1207 | 1.4636 | 0.64553 | 0.4349 | -0.63688 | - | All/Selected/CloneDist | "Track Clone Distance" | 1207 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 1207 | 0.062527 | 0.099968 | 1.813 | 2.1332 | - | All/Selected/P | "Track Momentum" | 1207 | 7478 | 8249.6 | 3.4904 | 17.508 | - | All/Selected/Pt | "Track Transverse Momentum" | 1207 | 412.95 | 395.25 | 3.0819 | 15.473 | - | nRichTracks | "# Rich Tracks / Event" | 100 | 12.07 | 8.6859 | 0.8712 | 0.56667 | - | nTracks | "# Tracks / Event" | 100 | 13.62 | 9.5224 | 0.77907 | 0.24652 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 1212 | 1.4618 | 0.6452 | 0.43713 | -0.63131 | + | All/Selected/CloneDist | "Track Clone Distance" | 1212 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 1212 | 0.062299 | 0.099825 | 1.8192 | 2.158 | + | All/Selected/P | "Track Momentum" | 1212 | 7473.2 | 8235.8 | 3.4951 | 17.569 | + | All/Selected/Pt | "Track Transverse Momentum" | 1212 | 413.17 | 394.67 | 3.0823 | 15.499 | + | nRichTracks | "# Rich Tracks / Event" | 100 | 12.12 | 8.7422 | 0.86233 | 0.51717 | + | nTracks | "# Tracks / Event" | 100 | 13.67 | 9.5719 | 0.77241 | 0.21436 | RichRecPixBkgsDownstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsDownstream" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.089379 | 0.077159 | 1.2115 | 1.2368 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.046897 | 0.037713 | 1.8151 | 4.7007 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.089358 | 0.077141 | 1.2118 | 1.2384 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.046898 | 0.037714 | 1.8148 | 4.6999 | RichDLLsDownstream SUCCESS 1D histograms in directory "RICH/RichDLLsDownstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 1207 | 0.27928 | 11.347 | -0.36347 | 3.6354 | - | deuteron/dll | "deuteron DLL" | 1207 | 0.2373 | 11.307 | -0.37561 | 3.6584 | - | electron/dll | "electron DLL" | 1207 | -7.456 | 14.676 | 0.26373 | 1.0632 | - | kaon/dll | "kaon DLL" | 1207 | -0.6816 | 11.131 | -0.88366 | 3.6437 | - | muon/dll | "muon DLL" | 1207 | -3.082 | 7.6518 | -1.4812 | 6.7016 | - | pion/dll | "pion DLL" | 1207 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 1207 | 0.070884 | 11.208 | -0.48855 | 3.5836 | + | below_threshold/dll | "below_threshold DLL" | 1212 | 0.22781 | 11.412 | -0.39271 | 3.6391 | + | deuteron/dll | "deuteron DLL" | 1212 | 0.18601 | 11.372 | -0.40492 | 3.6621 | + | electron/dll | "electron DLL" | 1212 | -7.5483 | 14.669 | 0.25516 | 1.0772 | + | kaon/dll | "kaon DLL" | 1212 | -0.73462 | 11.214 | -0.92098 | 3.7185 | + | muon/dll | "muon DLL" | 1212 | -3.113 | 7.6788 | -1.4805 | 6.6152 | + | pion/dll | "pion DLL" | 1212 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 1212 | 0.019363 | 11.274 | -0.51741 | 3.5896 | RiTkDetectableYieldsDownstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 12 | 11.601 | 12.721 | 1.4125 | 1.3209 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1068 | 54.335 | 5.3009 | -3.5929 | 12.908 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 183 | 29.696 | 14.629 | -0.14731 | -1.029 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 996 | 37.96 | 14.81 | -0.73718 | -0.47018 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 840 | 34.315 | 16.697 | -0.51908 | -0.97603 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 1073 | 54.323 | 5.3333 | -3.5693 | 12.689 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 184 | 29.651 | 14.601 | -0.13929 | -1.0261 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 1001 | 37.97 | 14.79 | -0.73759 | -0.46523 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 844 | 34.339 | 16.655 | -0.51778 | -0.97154 | | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 61 | 25.611 | 13.843 | -0.17832 | -1.0179 | | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 5 | 14.459 | 9.0037 | -0.10608 | -1.2923 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 429 | 34.4 | 2.2541 | -0.21211 | -0.59272 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 431 | 34.405 | 2.2514 | -0.21624 | -0.58937 | | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 115 | 16.913 | 8.9387 | -0.32404 | -1.1479 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 416 | 30.042 | 3.4272 | -1.4586 | 3.7371 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 396 | 27.472 | 4.9198 | -1.088 | 1.0578 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 418 | 30.046 | 3.424 | -1.4577 | 3.7384 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 398 | 27.473 | 4.9138 | -1.0868 | 1.0589 | | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 37 | 12.61 | 8.3452 | 0.42336 | -0.82511 | RiTkGeomEffsDownstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 12 | 0.65467 | 0.069337 | 0.34181 | -0.80058 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 1068 | 0.66386 | 0.041983 | -1.0943 | 7.8948 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 183 | 0.66094 | 0.056737 | -0.16123 | 0.35807 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 996 | 0.66579 | 0.052412 | -0.28952 | 0.48962 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 840 | 0.66077 | 0.063501 | -1.2648 | 6.6276 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 1073 | 0.66383 | 0.041895 | -1.0947 | 7.9329 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 184 | 0.66126 | 0.056742 | -0.17258 | 0.34675 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 1001 | 0.66585 | 0.052515 | -0.29852 | 0.47756 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 844 | 0.66077 | 0.063442 | -1.2635 | 6.6214 | | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 61 | 0.66077 | 0.049626 | -0.016744 | 0.13141 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 5 | 0.64891 | 0.045296 | -0.54842 | -1.2496 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 429 | 0.51848 | 0.20188 | -0.62296 | -1.0195 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 431 | 0.51873 | 0.20153 | -0.62638 | -1.0112 | | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 115 | 0.66662 | 0.065873 | -0.6326 | 1.0592 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 416 | 0.52963 | 0.19963 | -0.725 | -0.76581 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 396 | 0.54826 | 0.18908 | -0.87381 | -0.42715 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 418 | 0.52984 | 0.19921 | -0.72905 | -0.75432 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 398 | 0.54858 | 0.18883 | -0.87599 | -0.41845 | | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 37 | 0.67412 | 0.059463 | -0.076318 | -0.1231 | RiCKResDownstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResDownstreamTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 8573 |-7.5736e-05 | 0.0020711 | -0.29757 | -0.42768 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 15347 |-6.7056e-05 | 0.0021284 | -0.26807 | -0.47189 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 15347 | 3.1229 | 1.7889 | 0.016325 | -1.1505 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 15347 | 0.047115 | 0.0063419 | -1.0215 | -0.052543 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 6774 |-5.5827e-05 | 0.0022004 | -0.23724 | -0.53561 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 15456 |-6.1451e-05 | 0.0021255 | -0.26917 | -0.46487 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 15456 | 3.1221 | 1.7897 | 0.016844 | -1.153 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 15456 | 0.047111 | 0.0063561 | -1.0242 | -0.053123 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 6883 |-4.3304e-05 | 0.0021925 | -0.24079 | -0.51941 | | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 2902 | 1.2797e-05 | 0.0012216 | -0.064391 | -0.792 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 3229 | 0.00011974 | 0.0011237 | -0.044978 | -0.64347 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 6131 | 6.7303e-05 | 0.0011739 | -0.066983 | -0.70681 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 6131 | 3.0397 | 1.8059 | 0.10854 | -1.2193 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 6131 | 0.026717 | 0.004367 | -1.4703 | 1.6202 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 3245 | 0.00012129 | 0.0011228 | -0.043549 | -0.64103 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 6147 | 6.8286e-05 | 0.0011734 | -0.066595 | -0.70505 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 6147 | 3.0405 | 1.8071 | 0.10733 | -1.2216 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 6147 | 0.026721 | 0.0043623 | -1.4733 | 1.633 | RiCKResLong SUCCESS 1D histograms in directory "RICH/RiCKResLong" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 100529 |-6.5603e-05 | 0.0019887 | -0.26249 | -0.28417 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 205579 |-7.0133e-05 | 0.0019846 | -0.26597 | -0.29304 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 205579 | 3.1295 | 1.8146 | 0.006297 | -1.1872 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 205579 | 0.047244 | 0.0063014 | -1.1259 | 0.1322 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 105050 |-7.4466e-05 | 0.0019806 | -0.2694 | -0.30178 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 77860 | 1.7363e-05 | 0.001205 | 0.021428 | -0.73451 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 85220 | 2.9857e-05 | 0.0012022 | 0.02571 | -0.73725 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 163080 | 2.3855e-05 | 0.0012035 | 0.023609 | -0.73583 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 163080 | 3.1355 | 1.7968 | 0.0041226 | -1.1836 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 163080 | 0.026797 | 0.0044808 | -1.7197 | 2.6047 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 100685 |-6.5037e-05 | 0.0019881 | -0.26236 | -0.28364 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 206112 |-6.9444e-05 | 0.0019846 | -0.26614 | -0.29347 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 206112 | 3.1294 | 1.8148 | 0.0065707 | -1.1873 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 206112 | 0.047246 | 0.0062997 | -1.1258 | 0.13314 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 105427 |-7.3651e-05 | 0.0019811 | -0.26982 | -0.3031 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 77933 | 1.7471e-05 | 0.001205 | 0.021319 | -0.73461 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 85141 | 3.0379e-05 | 0.0012028 | 0.025518 | -0.73827 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 163074 | 2.4174e-05 | 0.0012039 | 0.023464 | -0.73641 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 163074 | 3.1355 | 1.7965 | 0.0039088 | -1.183 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 163074 | 0.026798 | 0.0044805 | -1.7199 | 2.6054 | RiTkMaterialLong SUCCESS 1D histograms in directory "RICH/RiTkMaterialLong" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 2162 | 0.037831 | 0.002379 | 18.027 | 377.88 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 2162 | 3.4689e-05 | 1.744e-06 | 23.705 | 551.74 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 2162 | 1075.8 | 15.267 | -0.34173 | -1.0189 | - | Rich2Gas/EffL | "Rich2Gas Effective length" | 5047 | 0.04388 | 0.035856 | 1.2705 | -0.19849 | - | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 5047 | 1.9482e-05 | 1.3851e-05 | 1.2708 | -0.22176 | - | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 5047 | 2128 | 229.85 | 0.27085 | -0.7758 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 2158 | 0.03783 | 0.0023812 | 18.01 | 377.18 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 2158 | 3.4689e-05 | 1.7457e-06 | 23.683 | 550.71 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 2158 | 1075.8 | 15.277 | -0.33769 | -1.0228 | + | Rich2Gas/EffL | "Rich2Gas Effective length" | 5039 | 0.043857 | 0.035838 | 1.2718 | -0.1946 | + | Rich2Gas/EffLOvPathL | "Rich2Gas Effective length / unit pathlength" | 5039 | 1.9475e-05 | 1.3845e-05 | 1.2724 | -0.21694 | + | Rich2Gas/PathL | "Rich2Gas Track pathlength" | 5039 | 2127.7 | 229.82 | 0.27201 | -0.77376 | RiTkSignalYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 15.08 | 9.3865 | 0.15055 | -1.0195 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4822 | 36.993 | 2.4741 | -0.66134 | 5.5952 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1448 | 20.753 | 10.758 | -0.28332 | -0.99229 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4717 | 29.408 | 8.5456 | -1.2846 | 1.2267 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4359 | 26.817 | 10.168 | -0.97854 | 0.045103 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 553 | 18.483 | 10.51 | -0.10354 | -1.062 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 8.9557 | 5.7515 | -0.010614 | -1.3219 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3300 | 18.93 | 5.9448 | -1.0742 | 0.29358 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1286 | 11.939 | 6.1368 | -0.3288 | -1.0104 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3225 | 17.755 | 5.9707 | -1.0874 | 0.11092 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3135 | 17.033 | 5.9273 | -1.0438 | 0.012858 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 469 | 9.7935 | 6.0933 | 0.11555 | -1.1192 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 15.08 | 9.3865 | 0.15053 | -1.0196 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4816 | 36.992 | 2.4601 | -0.60217 | 5.2731 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1452 | 20.751 | 10.763 | -0.2852 | -0.99307 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4713 | 29.42 | 8.5459 | -1.2877 | 1.2337 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4357 | 26.826 | 10.178 | -0.98232 | 0.049967 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 554 | 18.48 | 10.501 | -0.10262 | -1.0588 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 8.9558 | 5.7515 | -0.010673 | -1.3219 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3299 | 18.935 | 5.9442 | -1.0763 | 0.29853 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1287 | 11.923 | 6.1454 | -0.32855 | -1.009 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3224 | 17.76 | 5.9694 | -1.0897 | 0.11603 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3134 | 17.039 | 5.9234 | -1.0455 | 0.020537 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 468 | 9.8124 | 6.0863 | 0.11298 | -1.1164 | RiTkEmittedYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 152 | 249.81 | 154.64 | 0.099117 | -0.94672 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4823 | 606.74 | 18.328 | -5.0047 | 70.497 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1489 | 337.18 | 177.34 | -0.35636 | -1.064 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4736 | 483.18 | 135.22 | -1.5251 | 1.8061 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4399 | 439.23 | 164.46 | -1.1068 | 0.18317 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 572 | 300.49 | 172.57 | -0.17431 | -1.1699 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 100 | 142.65 | 91.7 | -0.0022543 | -1.3344 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 6210 | 388.73 | 47.961 | 0.34359 | -0.76614 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1331 | 186.58 | 98.587 | -0.36996 | -1.0662 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 5172 | 273.32 | 92.667 | -1.3682 | 0.93779 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4438 | 254.33 | 97.18 | -1.1214 | 0.19464 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 485 | 152.77 | 95.236 | 0.065951 | -1.1439 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 152 | 249.81 | 154.64 | 0.099095 | -0.94676 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4817 | 606.78 | 17.925 | -4.6798 | 67.285 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1493 | 337.15 | 177.37 | -0.35766 | -1.0642 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4732 | 483.37 | 135.23 | -1.528 | 1.8144 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4396 | 439.48 | 164.52 | -1.1098 | 0.18671 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 573 | 300.45 | 172.42 | -0.17387 | -1.1669 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 100 | 142.65 | 91.701 | -0.0023186 | -1.3344 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 6201 | 388.65 | 47.942 | 0.3455 | -0.76281 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1332 | 186.36 | 98.709 | -0.36947 | -1.0657 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 5166 | 273.49 | 92.617 | -1.3738 | 0.95657 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 4436 | 254.46 | 97.111 | -1.1237 | 0.20047 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 484 | 153.04 | 95.154 | 0.063459 | -1.1423 | RichTkSelEffLong SUCCESS 1D histograms in directory "RICH/RichTkSelEffLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 324 | 1.5622 | 0.67088 | 0.53471 | -0.83302 | - | All/Rejected/CloneDist | "Track Clone Distance" | 324 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 324 | 0.14731 | 0.11818 | 0.66332 | -0.97731 | - | All/Rejected/P | "Track Momentum" | 324 | 4898.9 | 5316.8 | 11.522 | 140.68 | - | All/Rejected/Pt | "Track Transverse Momentum" | 324 | 89.033 | 121.01 | 9.8684 | 113.44 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 6074 | 1.3031 | 0.50903 | 1.1127 | 1.0451 | - | All/Selected/CloneDist | "Track Clone Distance" | 6074 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 6074 | 0.039985 | 0.074167 | 2.6517 | 6.81 | - | All/Selected/P | "Track Momentum" | 6074 | 11599 | 12260 | 2.7979 | 10.638 | - | All/Selected/Pt | "Track Transverse Momentum" | 6074 | 560.17 | 525.93 | 3.2369 | 17.827 | - | nRichTracks | "# Rich Tracks / Event" | 100 | 60.74 | 37.33 | 0.55431 | -0.41804 | - | nTracks | "# Tracks / Event" | 100 | 63.98 | 39.363 | 0.55939 | -0.36919 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 322 | 1.5649 | 0.67131 | 0.5269 | -0.83937 | + | All/Rejected/CloneDist | "Track Clone Distance" | 322 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 322 | 0.1479 | 0.11881 | 0.64854 | -1.0142 | + | All/Rejected/P | "Track Momentum" | 322 | 4898.7 | 5333.1 | 11.488 | 139.81 | + | All/Rejected/Pt | "Track Transverse Momentum" | 322 | 89.089 | 121.38 | 9.8388 | 112.74 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 6066 | 1.3014 | 0.50737 | 1.1102 | 1.0418 | + | All/Selected/CloneDist | "Track Clone Distance" | 6066 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 6066 | 0.039663 | 0.073695 | 2.6782 | 7.0008 | + | All/Selected/P | "Track Momentum" | 6066 | 11611 | 12263 | 2.8005 | 10.662 | + | All/Selected/Pt | "Track Transverse Momentum" | 6066 | 561.01 | 526.32 | 3.2308 | 17.774 | + | nRichTracks | "# Rich Tracks / Event" | 100 | 60.66 | 37.29 | 0.55798 | -0.41645 | + | nTracks | "# Tracks / Event" | 100 | 63.88 | 39.29 | 0.56151 | -0.36834 | RichRecPixBkgsLong SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsLong" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.069487 | 0.060574 | 1.3272 | 1.7304 | - | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.042346 | 0.036725 | 1.9485 | 5.4777 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.069521 | 0.060592 | 1.324 | 1.7206 | + | Rich2/pixBkg | "Rich2 Pixel Background Likelihood" | 179264 | 0.042356 | 0.036721 | 1.9487 | 5.4786 | RichDLLsLong SUCCESS 1D histograms in directory "RICH/RichDLLsLong" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 6074 | -2.6845 | 15.558 | -0.29934 | 0.92585 | - | deuteron/dll | "deuteron DLL" | 6074 | -2.8105 | 15.553 | -0.29934 | 0.92096 | - | electron/dll | "electron DLL" | 6074 | -12.504 | 13.839 | -0.24787 | 0.6303 | - | kaon/dll | "kaon DLL" | 6074 | -3.7985 | 15.478 | -0.39688 | 0.85793 | - | muon/dll | "muon DLL" | 6074 | -6.9048 | 9.8552 | -1.5493 | 2.9718 | - | pion/dll | "pion DLL" | 6074 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 6074 | -3.1951 | 15.643 | -0.30211 | 0.9369 | + | below_threshold/dll | "below_threshold DLL" | 6066 | -2.6724 | 15.587 | -0.30397 | 0.91999 | + | deuteron/dll | "deuteron DLL" | 6066 | -2.798 | 15.582 | -0.30322 | 0.91676 | + | electron/dll | "electron DLL" | 6066 | -12.498 | 13.842 | -0.23966 | 0.64284 | + | kaon/dll | "kaon DLL" | 6066 | -3.7853 | 15.49 | -0.39688 | 0.85506 | + | muon/dll | "muon DLL" | 6066 | -6.9008 | 9.8461 | -1.5618 | 2.9459 | + | pion/dll | "pion DLL" | 6066 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 6066 | -3.1856 | 15.672 | -0.30586 | 0.93827 | RiTkDetectableYieldsLong SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 23.022 | 14.087 | 0.10838 | -0.89867 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4822 | 55.735 | 1.6836 | -4.9846 | 70.196 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1448 | 31.311 | 16.013 | -0.3602 | -1.0439 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4717 | 44.307 | 12.402 | -1.4895 | 1.6616 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4359 | 40.373 | 15.012 | -1.1014 | 0.18308 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 553 | 27.943 | 15.608 | -0.18091 | -1.135 | - | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 13.551 | 8.6399 | -0.037743 | -1.3031 | - | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3300 | 33.922 | 2.1804 | 0.13013 | -0.34857 | - | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1286 | 17.907 | 9.1356 | -0.38337 | -1.0255 | - | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3225 | 30.463 | 3.2119 | -1.9704 | 6.5781 | - | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3135 | 28.319 | 4.7517 | -1.6666 | 3.4422 | - | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 469 | 14.557 | 8.9423 | 0.065198 | -1.1623 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 147 | 23.022 | 14.087 | 0.10835 | -0.89872 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 4816 | 55.739 | 1.6467 | -4.6128 | 66.161 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 1452 | 31.306 | 16.018 | -0.36182 | -1.0435 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 4713 | 44.325 | 12.403 | -1.4924 | 1.6696 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 4357 | 40.388 | 15.028 | -1.1048 | 0.18725 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 554 | 27.938 | 15.594 | -0.1801 | -1.1321 | + | Rich2Gas/deuteron/yield | "Rich2Gas deuteron Photon Yield (>0)" | 97 | 13.551 | 8.64 | -0.037814 | -1.3031 | + | Rich2Gas/electron/yield | "Rich2Gas electron Photon Yield (>0)" | 3299 | 33.921 | 2.1813 | 0.13096 | -0.35125 | + | Rich2Gas/kaon/yield | "Rich2Gas kaon Photon Yield (>0)" | 1287 | 17.885 | 9.1499 | -0.38257 | -1.0261 | + | Rich2Gas/muon/yield | "Rich2Gas muon Photon Yield (>0)" | 3224 | 30.466 | 3.2106 | -1.9737 | 6.6025 | + | Rich2Gas/pion/yield | "Rich2Gas pion Photon Yield (>0)" | 3134 | 28.327 | 4.7463 | -1.6719 | 3.4735 | + | Rich2Gas/proton/yield | "Rich2Gas proton Photon Yield (>0)" | 468 | 14.584 | 8.9319 | 0.062293 | -1.1591 | RiTkGeomEffsLong SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 147 | 0.65748 | 0.073826 | 0.073558 | 0.080071 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4822 | 0.66374 | 0.039863 | -0.50357 | 3.7191 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1448 | 0.6643 | 0.062438 | -0.32152 | 2.0073 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4717 | 0.66365 | 0.053189 | -0.55278 | 2.7594 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4359 | 0.66448 | 0.056026 | -0.50088 | 2.5403 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 553 | 0.65999 | 0.067317 | -0.24726 | 1.3649 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 4816 | 0.66369 | 0.039836 | -0.50364 | 3.7304 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 1452 | 0.66429 | 0.062285 | -0.31916 | 2.0229 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 4713 | 0.66366 | 0.053136 | -0.55122 | 2.774 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 4357 | 0.66447 | 0.056005 | -0.50097 | 2.5471 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 554 | 0.65998 | 0.067256 | -0.24718 | 1.3727 | | Rich2Gas/deuteron/eff | "Rich2Gas deuteron Geom. Eff. (>0)" | 97 | 0.65526 | 0.07799 | -1.3097 | 5.8719 | - | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3300 | 0.56411 | 0.18445 | -1.0934 | 0.070403 | - | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1286 | 0.66941 | 0.067715 | -0.99467 | 5.863 | - | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 3225 | 0.57552 | 0.17678 | -1.1888 | 0.40961 | - | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 3135 | 0.58822 | 0.16616 | -1.3122 | 0.8967 | - | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 469 | 0.6719 | 0.066809 | 0.17501 | 0.88935 | + | Rich2Gas/electron/eff | "Rich2Gas electron Geom. Eff. (>0)" | 3299 | 0.56425 | 0.18442 | -1.0955 | 0.07481 | + | Rich2Gas/kaon/eff | "Rich2Gas kaon Geom. Eff. (>0)" | 1287 | 0.66941 | 0.067735 | -0.99417 | 5.8548 | + | Rich2Gas/muon/eff | "Rich2Gas muon Geom. Eff. (>0)" | 3224 | 0.57561 | 0.17678 | -1.1904 | 0.4123 | + | Rich2Gas/pion/eff | "Rich2Gas pion Geom. Eff. (>0)" | 3134 | 0.58834 | 0.16609 | -1.3149 | 0.90629 | + | Rich2Gas/proton/eff | "Rich2Gas proton Geom. Eff. (>0)" | 468 | 0.67198 | 0.066908 | 0.17194 | 0.87458 | RiCKResLongTight SUCCESS 1D histograms in directory "RICH/RiCKResLongTight" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 74376 | -0.0002305 | 0.001991 | -0.30657 | -0.33015 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 154032 |-0.00024488 | 0.0019865 | -0.3062 | -0.34971 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 154032 | 3.1281 | 1.8147 | 0.0079093 | -1.1844 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 154032 | 0.047212 | 0.0061689 | -1.103 | 0.14396 | - | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 79656 |-0.00025825 | 0.0019822 | -0.30606 | -0.36826 | - | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 35537 |-9.6386e-05 | 0.00115 | 0.020905 | -0.61781 | - | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 37987 |-6.9347e-05 | 0.0011428 | 0.038142 | -0.6022 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 73524 |-8.2378e-05 | 0.0011464 | 0.029528 | -0.60916 | - | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 73524 | 3.1315 | 1.7882 | 0.010814 | -1.1799 | - | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 73524 | 0.026486 | 0.0045993 | -1.593 | 2.0472 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 74377 | -0.0002305 | 0.001991 | -0.30656 | -0.33017 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 154186 |-0.00024548 | 0.0019865 | -0.3065 | -0.35002 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 154186 | 3.1279 | 1.8149 | 0.0081574 | -1.1845 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 154186 | 0.047211 | 0.0061704 | -1.103 | 0.14301 | + | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 79809 |-0.00025937 | 0.0019822 | -0.30668 | -0.36883 | + | Rich2Gas/ASide-left/ckRes | "Rich2Gas ASide-left Rec-Exp Cktheta - All ph | 35537 |-9.6398e-05 | 0.0011502 | 0.020826 | -0.61773 | + | Rich2Gas/CSide-right/ckRe | "Rich2Gas CSide-right Rec-Exp Cktheta - All p | 38056 |-6.8175e-05 | 0.0011426 | 0.037211 | -0.60197 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - All photons" | 73593 |-8.1763e-05 | 0.0011464 | 0.028995 | -0.60898 | + | Rich2Gas/phiRec | "Rich2Gas Reconstructed Ch Phi - All photons" | 73593 | 3.1318 | 1.7877 | 0.010472 | -1.1792 | + | Rich2Gas/thetaRec | "Rich2Gas Reconstructed Ch Theta - All photon | 73593 | 0.026487 | 0.0045986 | -1.593 | 2.0478 | RiCKResUpstream SUCCESS 1D histograms in directory "RICH/RiCKResUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 30155 | -0.0005921 | 0.0021787 | -0.11974 | -0.79893 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 60738 | -0.0005949 | 0.002192 | -0.13169 | -0.82847 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 60738 | 3.1314 | 1.8004 | 0.0074215 | -1.2049 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 60738 | 0.044707 | 0.0067299 | -0.44585 | -0.97942 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 30144 | -0.0005917 | 0.0021782 | -0.11953 | -0.79875 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 60727 | -0.0005947 | 0.0021917 | -0.13159 | -0.82837 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 60727 | 3.1315 | 1.8004 | 0.007336 | -1.2048 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 60727 | 0.044707 | 0.0067301 | -0.44585 | -0.97956 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 30583 |-0.00059778 | 0.0022056 | -0.14339 | -0.85809 | RiTkMaterialUpstream SUCCESS 1D histograms in directory "RICH/RiTkMaterialUpstream" : 3 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/EffL | "Rich1Gas Effective length" | 483 | 0.038926 | 0.0053116 | 8.4119 | 75.553 | - | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 483 | 3.5034e-05 | 4.113e-06 | 9.8562 | 93.991 | - | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 483 | 1070.7 | 17.143 | -0.022351 | -1.2456 | + | Rich1Gas/EffL | "Rich1Gas Effective length" | 481 | 0.038924 | 0.0053222 | 8.3974 | 75.263 | + | Rich1Gas/EffLOvPathL | "Rich1Gas Effective length / unit pathlength" | 481 | 3.5036e-05 | 4.1215e-06 | 9.8351 | 93.581 | + | Rich1Gas/PathL | "Rich1Gas Track pathlength" | 481 | 1070.7 | 17.148 | -0.020099 | -1.2474 | RiTkSignalYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 34 | 13.783 | 10.26 | 0.50136 | -0.65093 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 706 | 37.761 | 2.8459 | -0.1124 | 1.567 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 247 | 23.38 | 10.26 | -0.636 | -0.49453 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 705 | 29.556 | 8.4861 | -0.92585 | 0.10549 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 650 | 26.25 | 11.485 | -0.78557 | -0.65808 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 123 | 17.7 | 10.797 | 0.076673 | -1.0513 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 33 | 13.353 | 10.107 | 0.57444 | -0.47476 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 37.76 | 2.8522 | -0.1114 | 1.5399 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 246 | 23.328 | 10.247 | -0.63537 | -0.497 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 29.579 | 8.4827 | -0.93731 | 0.13694 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 648 | 26.306 | 11.435 | -0.79386 | -0.63448 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 122 | 17.599 | 10.77 | 0.091332 | -1.0303 | RiTkEmittedYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 34 | 235.58 | 168.68 | 0.45464 | -0.75049 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 706 | 617.2 | 26.203 | -0.80639 | 12.548 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 250 | 379.2 | 165.06 | -0.71947 | -0.51143 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 705 | 484.87 | 129.5 | -1.1194 | 0.33468 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 659 | 426.14 | 183.76 | -0.89359 | -0.55298 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 127 | 288.97 | 173.4 | -0.04559 | -1.1198 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 33 | 228.41 | 166.04 | 0.52861 | -0.58457 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 617.13 | 26.193 | -0.80786 | 12.596 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 249 | 378.35 | 164.83 | -0.71895 | -0.51484 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 485.24 | 129.4 | -1.1319 | 0.36814 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 657 | 427.06 | 182.95 | -0.90315 | -0.52719 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 126 | 286.8 | 172.21 | -0.041592 | -1.118 | RichTkSelEffUpstream SUCCESS 1D histograms in directory "RICH/RichTkSelEffUpstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 122 | 1.1966 | 0.47385 | 0.66088 | 0.72982 | - | All/Rejected/CloneDist | "Track Clone Distance" | 122 | 5500 | 0 | 0 | 0 | - | All/Rejected/GhostProb | "Track Ghost Probability" | 122 | 0.039722 | 0.059225 | 2.1492 | 4.637 | - | All/Rejected/P | "Track Momentum" | 122 | 40476 | 18888 | 1.0456 | 0.411 | - | All/Rejected/Pt | "Track Transverse Momentum" | 122 | 989.86 | 729.59 | 2.7392 | 9.3743 | - | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 706 | 1.1832 | 0.54477 | 0.919 | 0.81882 | - | All/Selected/CloneDist | "Track Clone Distance" | 706 | 5500 | 0 | 0 | 0 | - | All/Selected/GhostProb | "Track Ghost Probability" | 706 | 0.050979 | 0.065152 | 2.5699 | 7.1179 | - | All/Selected/P | "Track Momentum" | 706 | 10165 | 11060 | 2.803 | 10.962 | - | All/Selected/Pt | "Track Transverse Momentum" | 706 | 888.18 | 571.66 | 2.9189 | 12.644 | - | nRichTracks | "# Rich Tracks / Event" | 100 | 7.06 | 5.4089 | 0.82741 | -0.014962 | - | nTracks | "# Tracks / Event" | 100 | 8.28 | 6.3735 | 0.82562 | -0.036873 | + | All/Rejected/Chi2PDOF | "Track Chi^2 / D.O.F." | 123 | 1.196 | 0.47186 | 0.66675 | 0.76189 | + | All/Rejected/CloneDist | "Track Clone Distance" | 123 | 5500 | 0 | 0 | 0 | + | All/Rejected/GhostProb | "Track Ghost Probability" | 123 | 0.039836 | 0.059036 | 2.1487 | 4.6513 | + | All/Rejected/P | "Track Momentum" | 123 | 40371 | 18824 | 1.0621 | 0.44972 | + | All/Rejected/Pt | "Track Transverse Momentum" | 123 | 954.52 | 641.75 | 2.3497 | 7.0135 | + | All/Selected/Chi2PDOF | "Track Chi^2 / D.O.F." | 704 | 1.1884 | 0.54382 | 0.92519 | 0.83822 | + | All/Selected/CloneDist | "Track Clone Distance" | 704 | 5500 | 0 | 0 | 0 | + | All/Selected/GhostProb | "Track Ghost Probability" | 704 | 0.050837 | 0.064852 | 2.5816 | 7.2287 | + | All/Selected/P | "Track Momentum" | 704 | 10089 | 10794 | 2.7371 | 10.656 | + | All/Selected/Pt | "Track Transverse Momentum" | 704 | 888.75 | 572.17 | 2.9888 | 13.4 | + | nRichTracks | "# Rich Tracks / Event" | 100 | 7.04 | 5.4036 | 0.83407 | -0.0026924 | + | nTracks | "# Tracks / Event" | 100 | 8.27 | 6.3684 | 0.82645 | -0.031033 | RichRecPixBkgsUpstream SUCCESS 1D histograms in directory "RICH/RichRecPixBkgsUpstream" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.091233 | 0.079097 | 1.2176 | 1.2863 | + | Rich1/pixBkg | "Rich1 Pixel Background Likelihood" | 287594 | 0.091235 | 0.079096 | 1.2177 | 1.2864 | RichDLLsUpstream SUCCESS 1D histograms in directory "RICH/RichDLLsUpstream" : 7 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | below_threshold/dll | "below_threshold DLL" | 706 | 0.19141 | 14.244 | -0.43206 | 0.6354 | - | deuteron/dll | "deuteron DLL" | 706 | 0.20494 | 14.217 | -0.47039 | 0.6261 | - | electron/dll | "electron DLL" | 706 | -14.191 | 13.173 | -0.36059 | -0.28802 | - | kaon/dll | "kaon DLL" | 706 | 0.12687 | 14.097 | -0.62709 | 0.78247 | - | muon/dll | "muon DLL" | 706 | -5.0574 | 9.2422 | -0.087821 | 6.1094 | - | pion/dll | "pion DLL" | 706 | 0 | 0 | 0 | 0 | - | proton/dll | "proton DLL" | 706 | 0.23056 | 14.176 | -0.50224 | 0.69385 | + | below_threshold/dll | "below_threshold DLL" | 704 | 0.15794 | 14.198 | -0.45045 | 0.63929 | + | deuteron/dll | "deuteron DLL" | 704 | 0.19712 | 14.217 | -0.47211 | 0.63216 | + | electron/dll | "electron DLL" | 704 | -14.164 | 13.156 | -0.35913 | -0.25573 | + | kaon/dll | "kaon DLL" | 704 | 0.14111 | 14.109 | -0.6279 | 0.77384 | + | muon/dll | "muon DLL" | 704 | -5.0493 | 9.2373 | -0.080218 | 6.1305 | + | pion/dll | "pion DLL" | 704 | 0 | 0 | 0 | 0 | + | proton/dll | "proton DLL" | 704 | 0.23458 | 14.187 | -0.50339 | 0.69235 | RiTkDetectableYieldsUpstream SUCCESS 1D histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 34 | 20.94 | 15.755 | 0.47864 | -0.80291 | - | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 706 | 56.696 | 2.407 | -0.85065 | 13.29 | - | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 247 | 34.807 | 15.085 | -0.7108 | -0.52684 | - | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 705 | 44.261 | 12.19 | -1.1252 | 0.3556 | - | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 650 | 39.3 | 16.749 | -0.90039 | -0.53953 | - | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 123 | 26.775 | 15.796 | -0.048442 | -1.1005 | + | Rich1Gas/deuteron/yield | "Rich1Gas deuteron Photon Yield (>0)" | 33 | 20.269 | 15.506 | 0.56059 | -0.62109 | + | Rich1Gas/electron/yield | "Rich1Gas electron Photon Yield (>0)" | 704 | 56.69 | 2.4061 | -0.85113 | 13.343 | + | Rich1Gas/kaon/yield | "Rich1Gas kaon Photon Yield (>0)" | 246 | 34.728 | 15.063 | -0.71052 | -0.53041 | + | Rich1Gas/muon/yield | "Rich1Gas muon Photon Yield (>0)" | 703 | 44.295 | 12.181 | -1.1374 | 0.38811 | + | Rich1Gas/pion/yield | "Rich1Gas pion Photon Yield (>0)" | 648 | 39.39 | 16.664 | -0.90934 | -0.51489 | + | Rich1Gas/proton/yield | "Rich1Gas proton Photon Yield (>0)" | 122 | 26.571 | 15.685 | -0.043141 | -1.0991 | RiTkGeomEffsUpstream SUCCESS 1D histograms in directory "RICH/RiTkGeomEffsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 34 | 0.65989 | 0.070542 | 0.25814 | -0.17058 | - | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 706 | 0.66619 | 0.043975 | -0.20472 | -0.15277 | - | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 247 | 0.67162 | 0.061889 | -0.58161 | 2.1821 | - | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 705 | 0.66734 | 0.049456 | -0.32165 | 0.34133 | - | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 650 | 0.6669 | 0.055137 | -0.12172 | 0.5804 | - | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 123 | 0.66238 | 0.058726 | 0.013573 | 0.18004 | + | Rich1Gas/deuteron/eff | "Rich1Gas deuteron Geom. Eff. (>0)" | 33 | 0.66019 | 0.071581 | 0.24211 | -0.25468 | + | Rich1Gas/electron/eff | "Rich1Gas electron Geom. Eff. (>0)" | 704 | 0.66625 | 0.044046 | -0.20633 | -0.16058 | + | Rich1Gas/kaon/eff | "Rich1Gas kaon Geom. Eff. (>0)" | 246 | 0.67165 | 0.062009 | -0.58169 | 2.164 | + | Rich1Gas/muon/eff | "Rich1Gas muon Geom. Eff. (>0)" | 703 | 0.66726 | 0.049314 | -0.32754 | 0.35092 | + | Rich1Gas/pion/eff | "Rich1Gas pion Geom. Eff. (>0)" | 648 | 0.6666 | 0.055275 | -0.12814 | 0.55269 | + | Rich1Gas/proton/eff | "Rich1Gas proton Geom. Eff. (>0)" | 122 | 0.6631 | 0.058644 | -0.010052 | 0.20966 | RiCKResUpstreamTight SUCCESS 1D histograms in directory "RICH/RiCKResUpstreamTight" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 17968 |-0.00066956 | 0.0021559 | -0.134 | -0.80544 | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 37747 |-0.00069164 | 0.0021547 | -0.15311 | -0.84589 | - | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 37747 | 3.1282 | 1.7937 | 0.0094289 | -1.1945 | - | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 37747 | 0.044619 | 0.0066796 | -0.42897 | -0.97635 | + | Rich1Gas/bottom/ckResAllP | "Rich1Gas bottom Rec-Exp Cktheta - All photon | 17956 |-0.00066943 | 0.0021555 | -0.13376 | -0.80548 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - All photons" | 37735 |-0.00069159 | 0.0021545 | -0.15301 | -0.84592 | + | Rich1Gas/phiRec | "Rich1Gas Reconstructed Ch Phi - All photons" | 37735 | 3.1283 | 1.7937 | 0.0092629 | -1.1944 | + | Rich1Gas/thetaRec | "Rich1Gas Reconstructed Ch Theta - All photon | 37735 | 0.044619 | 0.0066801 | -0.4292 | -0.97641 | | Rich1Gas/top/ckResAllPerP | "Rich1Gas top Rec-Exp Cktheta - All photons" | 19779 | -0.0007128 | 0.0021533 | -0.1716 | -0.88662 | RiCKMCResDownstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResDownstream10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 53137 |-0.00041116 | 0.0021644 | -0.19912 | -0.72361 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 26016 | 8.7309e-05 | 0.0021332 | -0.19426 | -0.47298 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 46730 |-0.00052174 | 0.0023542 | -0.081426 | -1.0218 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 23377 | 6.5227e-05 | 0.0022756 | -0.15444 | -0.74467 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 6407 |-2.1082e-05 | 0.0012101 | -0.38044 | 0.93904 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2639 | 0.00020132 | 0.0011374 | -0.61044 | 2.7681 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 46730 | 3.0871 | 1.809 | 0.044524 | -1.1812 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 6407 | 3.1625 | 1.8141 | -0.016916 | -1.1889 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 46730 | 0.046169 | 0.0065381 | -0.72362 | -0.48454 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 6407 | 0.051545 | 0.0013393 | -0.32906 | 1.0906 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 15486 | 4.1576e-06 | 0.0012222 | -0.012629 | -0.7615 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 16808 | 9.1226e-05 | 0.001261 | -0.057686 | -0.8767 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12825 | 2.6312e-06 | 0.0013612 | -0.0065344 | -1.1204 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 14310 | 5.8255e-05 | 0.0013509 | -0.021352 | -1.1029 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2661 | 8.656e-06 | 0.00066014 | -0.081053 | 0.68764 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2498 | 0.00022179 | 0.00079988 | 0.18793 | 0.4799 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 12825 | 3.0745 | 1.8137 | 0.063918 | -1.1881 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2661 | 3.1752 | 1.7946 | -0.021026 | -1.2119 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 12825 | 0.027054 | 0.0042114 | -1.6827 | 2.9157 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2661 | 0.028778 | 0.0012933 | -1.3203 | 9.5926 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 53140 |-0.00040745 | 0.0021637 | -0.20044 | -0.72019 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 26125 | 8.9924e-05 | 0.0021312 | -0.19478 | -0.46938 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 46731 |-0.00051951 | 0.0023544 | -0.081317 | -1.021 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 23443 | 6.764e-05 | 0.0022757 | -0.1546 | -0.74514 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 6409 |-1.2111e-05 | 0.0012001 | -0.36856 | 0.94286 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 2682 | 0.00020332 | 0.0011342 | -0.60659 | 2.7575 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 46731 | 3.0883 | 1.8093 | 0.043294 | -1.182 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 6409 | 3.1582 | 1.813 | -0.011779 | -1.1881 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 46731 | 0.046167 | 0.006542 | -0.72395 | -0.48563 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 6409 | 0.051545 | 0.0013325 | -0.32172 | 1.1095 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 15502 | 4.6075e-06 | 0.0012219 | -0.012675 | -0.76079 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 16824 | 9.1545e-05 | 0.0012607 | -0.057669 | -0.87596 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 12828 | 2.8064e-06 | 0.0013613 | -0.0062573 | -1.1204 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 14313 | 5.8399e-05 | 0.001351 | -0.021111 | -1.1029 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2674 | 9.8928e-06 | 0.00066084 | -0.076965 | 0.67431 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 2511 | 0.00022212 | 0.00079964 | 0.18797 | 0.47069 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 12828 | 3.0751 | 1.8138 | 0.063492 | -1.1884 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 2674 | 3.1737 | 1.7968 | -0.021193 | -1.2156 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 12828 | 0.027054 | 0.0042111 | -1.6829 | 2.9168 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 2674 | 0.028773 | 0.0012936 | -1.3088 | 9.5124 | RiCKMCResLong10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResLong10to70" : 20 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 271174 |-0.00026567 | 0.0020278 | -0.26187 | -0.45128 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 205579 |-7.0133e-05 | 0.0019846 | -0.26597 | -0.29304 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 240100 |-0.00034867 | 0.0022482 | -0.15151 | -0.88856 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 175227 |-5.0324e-05 | 0.0021752 | -0.23537 | -0.70323 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 31074 | 2.6713e-05 | 0.00082605 | 0.001248 | 0.81211 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30352 |-0.00013961 | 0.0010726 | -1.3125 | 3.8457 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 240100 | 3.1457 | 1.8161 | -0.0073292 | -1.1898 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 31074 | 3.125 | 1.819 | 0.004894 | -1.1907 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 240100 | 0.046599 | 0.0064772 | -0.88495 | -0.29076 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 31074 | 0.051181 | 0.0010086 | 0.12331 | 0.28506 | - | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 162508 | 1.3455e-05 | 0.0011768 | 0.022041 | -0.65248 | - | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 163080 | 2.3855e-05 | 0.0012035 | 0.023609 | -0.73583 | - | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136765 | 2.0164e-05 | 0.0013185 | 0.0099967 | -1.0492 | - | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136184 | 3.991e-05 | 0.0013214 | 0.0039856 | -1.0589 | - | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 25743 |-5.5919e-06 | 0.00061723 | -0.019924 | 0.74855 | - | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 26896 |-2.7336e-05 | 0.00070449 | -0.13925 | 1.0632 | - | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 136765 | 3.1336 | 1.7974 | 0.004985 | -1.1807 | - | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 25743 | 3.1287 | 1.8041 | 0.014044 | -1.2116 | - | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 136765 | 0.02654 | 0.0047066 | -1.516 | 1.7917 | - | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 25743 | 0.028517 | 0.0011482 | -0.61179 | 1.3814 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 270092 |-0.00026139 | 0.0020262 | -0.26192 | -0.44781 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 206112 |-6.9444e-05 | 0.0019846 | -0.26614 | -0.29347 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 239160 |-0.00034289 | 0.0022463 | -0.15322 | -0.88533 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 175782 |-4.9347e-05 | 0.0021745 | -0.23592 | -0.70212 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30932 | 2.6426e-05 | 0.00082409 | 0.012536 | 0.79038 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 30330 |-0.00014023 | 0.0010723 | -1.3161 | 3.8481 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 239160 | 3.1446 | 1.816 | -0.0059107 | -1.1894 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 30932 | 3.1261 | 1.8186 | 0.0037982 | -1.1895 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 239160 | 0.046612 | 0.006473 | -0.88836 | -0.28353 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 30932 | 0.051179 | 0.0010072 | 0.12607 | 0.2868 | + | Rich2Gas/ckResAll | "Rich2Gas Rec-Exp Cktheta - True Type" | 162500 | 1.3525e-05 | 0.0011772 | 0.022209 | -0.65323 | + | Rich2Gas/ckResAllPion | "Rich2Gas Rec-Exp Cktheta - Pion Type" | 163074 | 2.4174e-05 | 0.0012039 | 0.023464 | -0.73641 | + | Rich2Gas/ckResFake | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136816 | 2.023e-05 | 0.0013184 | 0.010162 | -1.0484 | + | Rich2Gas/ckResFakePion | "Rich2Gas Rec-Exp Cktheta - MC fake photons - | 136237 | 4.0133e-05 | 0.0013212 | 0.0039412 | -1.0582 | + | Rich2Gas/ckResTrue | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 25684 |-5.5894e-06 | 0.00061741 | -0.019732 | 0.74753 | + | Rich2Gas/ckResTruePion | "Rich2Gas Rec-Exp Cktheta - MC true photons - | 26837 |-2.6902e-05 | 0.00070512 | -0.13771 | 1.0628 | + | Rich2Gas/phiRecFake | "Rich2Gas Reconstructed Ch Phi - MC fake phot | 136816 | 3.1335 | 1.7971 | 0.0048951 | -1.1802 | + | Rich2Gas/phiRecTrue | "Rich2Gas Reconstructed Ch Phi - MC true phot | 25684 | 3.1294 | 1.8034 | 0.01308 | -1.2103 | + | Rich2Gas/thetaRecFake | "Rich2Gas Reconstructed Ch Theta - MC fake ph | 136816 | 0.026543 | 0.0047053 | -1.5172 | 1.7956 | + | Rich2Gas/thetaRecTrue | "Rich2Gas Reconstructed Ch Theta - MC true ph | 25684 | 0.028518 | 0.0011492 | -0.61156 | 1.378 | RiCKMCResUpstream10to70 SUCCESS 1D histograms in directory "RICH/RiCKMCResUpstream10to70" : 10 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 44482 |-0.00054816 | 0.0021583 | -0.15743 | -0.75317 | - | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 60738 | -0.0005949 | 0.002192 | -0.13169 | -0.82847 | - | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 40977 |-0.00062524 | 0.0023299 | -0.058845 | -1.0381 | - | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 56725 |-0.00062413 | 0.002312 | -0.076166 | -1.019 | - | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3505 |-0.00018634 | 0.00093993 | -0.76074 | 2.6946 | - | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 4013 |-0.00041614 | 0.0012092 | -1.1516 | 2.0964 | - | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 40977 | 3.1321 | 1.8151 | 0.0038111 | -1.2264 | - | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 3505 | 3.1048 | 1.8081 | 0.020648 | -1.2151 | - | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 40977 | 0.044379 | 0.0067172 | -0.35361 | -1.0061 | - | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 3505 | 0.050752 | 0.0017952 | -4.5655 | 34.393 | + | Rich1Gas/ckResAll | "Rich1Gas Rec-Exp Cktheta - True Type" | 44349 |-0.00054732 | 0.0021583 | -0.15614 | -0.75353 | + | Rich1Gas/ckResAllPion | "Rich1Gas Rec-Exp Cktheta - Pion Type" | 60727 | -0.0005947 | 0.0021917 | -0.13159 | -0.82837 | + | Rich1Gas/ckResFake | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 40873 |-0.00062333 | 0.002329 | -0.058801 | -1.037 | + | Rich1Gas/ckResFakePion | "Rich1Gas Rec-Exp Cktheta - MC fake photons - | 56714 |-0.00062389 | 0.0023117 | -0.076095 | -1.0189 | + | Rich1Gas/ckResTrue | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 3476 |-0.00018871 | 0.00094202 | -0.75997 | 2.685 | + | Rich1Gas/ckResTruePion | "Rich1Gas Rec-Exp Cktheta - MC true photons - | 4013 |-0.00041626 | 0.0012093 | -1.1518 | 2.0966 | + | Rich1Gas/phiRecFake | "Rich1Gas Reconstructed Ch Phi - MC fake phot | 40873 | 3.1315 | 1.8155 | 0.0039418 | -1.2273 | + | Rich1Gas/phiRecTrue | "Rich1Gas Reconstructed Ch Phi - MC true phot | 3476 | 3.1061 | 1.8081 | 0.017725 | -1.2149 | + | Rich1Gas/thetaRecFake | "Rich1Gas Reconstructed Ch Theta - MC fake ph | 40873 | 0.044371 | 0.0067209 | -0.35247 | -1.0087 | + | Rich1Gas/thetaRecTrue | "Rich1Gas Reconstructed Ch Theta - MC true ph | 3476 | 0.050742 | 0.0017985 | -4.5664 | 34.326 | RiTkSignalYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 12 | 43621 | 13412 | 9.7247 | 26.715 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1068 | 6354.2 | 6772.6 | 73.826 | 602.52 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 183 | 17743 | 9698.8 | 17.808 | 97.968 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 996 | 6690.1 | 6892.6 | 73.612 | 590.07 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 840 | 7508.4 | 7214.6 | 62.568 | 477.92 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1073 | 6354 | 6760.8 | 74.233 | 606.92 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 184 | 17711 | 9682 | 17.941 | 98.909 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1001 | 6688.2 | 6879.6 | 74.056 | 594.78 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 844 | 7507.1 | 7200.8 | 62.949 | 481.78 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 61 | 28084 | 10586 | 11.506 | 54.487 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 5 | 73644 | 8945.1 | 1.1154 | -1.4707 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 429 | 14494 | 10494 | 21.573 | 102.13 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 431 | 14474 | 10474 | 21.725 | 103.09 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 115 | 27934 | 12113 | 8.7713 | 30.115 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 416 | 14759 | 10547 | 21.661 | 101.84 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 396 | 15203 | 10618 | 21.171 | 98.43 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 418 | 14737 | 10527 | 21.817 | 102.81 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 398 | 15178 | 10598 | 21.33 | 99.405 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 37 | 42129 | 12065 | 6.1888 | 16.136 | RiTkEmittedYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 13 | 42891 | 13131 | 10.357 | 29.88 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1068 | 6354.2 | 6772.6 | 75.398 | 622.78 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 188 | 17511 | 9671 | 18.736 | 104.3 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1000 | 6671.1 | 6885.4 | 75.533 | 613.45 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 853 | 7432.8 | 7185.1 | 65.038 | 504.98 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1073 | 6354 | 6760.8 | 75.811 | 627.3 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 189 | 17482 | 9654 | 18.876 | 105.3 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1005 | 6669.3 | 6872.5 | 75.986 | 618.32 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 858 | 7426.3 | 7169.4 | 65.514 | 509.83 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 64 | 27572 | 10590 | 12.1 | 57.638 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 6 | 70276 | 9697.9 | 1.8587 | -0.18824 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1311 | 7213.2 | 7952.8 | 67.01 | 450.97 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 1317 | 7206.3 | 7938.6 | 67.401 | 454.46 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 120 | 27428 | 12095 | 8.971 | 30.753 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 861 | 9661.6 | 8878 | 46.798 | 275.31 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 655 | 11499 | 9464.8 | 35.795 | 193.68 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 865 | 9649.9 | 8861.9 | 47.089 | 277.58 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 658 | 11484 | 9447.7 | 36.024 | 195.33 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 38 | 41788 | 12067 | 6.3113 | 16.656 | RichTkSelEffDownstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffDownstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1362 | 1.4956 | 0.65283 | 0.19899 | 1.7266 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1362 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1362 | 0.071669 | 0.10629 | 5.8881 | 11.668 | - | All/effVP | "RICH Track Sel. Eff. V P" | 1362 | 7066.7 | 7861.3 | 113.18 | 834.91 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1362 | 427.22 | 391.82 | 113.25 | 857.7 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 1367 | 1.4939 | 0.65259 | 0.21168 | 1.7342 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 1367 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 1367 | 0.071422 | 0.10616 | 5.9269 | 11.793 | + | All/effVP | "RICH Track Sel. Eff. V P" | 1367 | 7064 | 7849.7 | 113.7 | 839.98 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 1367 | 427.39 | 391.23 | 113.74 | 862.67 | RiTkDetectableYieldsDownstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsDownstream" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 12 | 43621 | 13412 | 9.65 | 26.495 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1068 | 6354.2 | 6772.6 | 75.398 | 622.78 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 183 | 17743 | 9698.8 | 18.379 | 101.9 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 996 | 6690.1 | 6892.6 | 75.301 | 610.89 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 840 | 7508.4 | 7214.6 | 64.008 | 494.82 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 1073 | 6354 | 6760.8 | 75.811 | 627.3 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 184 | 17711 | 9682 | 18.518 | 102.88 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 1001 | 6688.2 | 6879.6 | 75.756 | 615.77 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 844 | 7507.1 | 7200.8 | 64.396 | 498.8 | | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 61 | 28084 | 10586 | 11.871 | 56.261 | | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 5 | 73644 | 8945.1 | 1.0469 | -1.553 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 429 | 14494 | 10494 | 19.286 | 90.303 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 431 | 14474 | 10474 | 19.423 | 91.153 | | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 115 | 27934 | 12113 | 8.6541 | 29.355 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 416 | 14759 | 10547 | 19.758 | 91.882 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 396 | 15203 | 10618 | 19.657 | 90.388 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 418 | 14737 | 10527 | 19.901 | 92.765 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 398 | 15178 | 10598 | 19.804 | 91.285 | | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 37 | 42129 | 12065 | 6.2502 | 16.349 | RiTkSignalYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48984 | 12185 | 6.4627 | 14.645 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4822 | 9005 | 9501.3 | 91.886 | 580.05 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1448 | 19212 | 12007 | 32.059 | 138.9 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4717 | 9166.6 | 9544 | 93.589 | 587.08 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4359 | 9732.7 | 9714.1 | 87.543 | 535.69 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 553 | 30265 | 13238 | 14.228 | 45.915 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76083 | 12138 | 2.0736 | 0.51562 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3300 | 17780 | 13726 | 40.722 | 190.6 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1286 | 30158 | 15091 | 20.86 | 74.57 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3225 | 18054 | 13767 | 40.673 | 189.2 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3135 | 18397 | 13813 | 40.213 | 185.65 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 469 | 45843 | 15537 | 9.4026 | 23.846 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48985 | 12185 | 6.4625 | 14.644 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4816 | 9021.4 | 9507.7 | 91.618 | 577.85 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1452 | 19204 | 11995 | 32.172 | 139.57 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4713 | 9180.4 | 9549.6 | 93.355 | 585.16 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4357 | 9744.8 | 9718.3 | 87.372 | 534.33 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 554 | 30254 | 13228 | 14.27 | 46.103 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76084 | 12139 | 2.0726 | 0.51336 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3299 | 17784 | 13724 | 40.736 | 190.69 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1287 | 30140 | 15092 | 20.878 | 74.648 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3224 | 18058 | 13764 | 40.688 | 189.29 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3134 | 18401 | 13811 | 40.229 | 185.74 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 468 | 45876 | 15540 | 9.3735 | 23.742 | RiTkEmittedYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 152 | 48479 | 12268 | 6.4113 | 14.491 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4823 | 9003.5 | 9500.9 | 90.833 | 571.44 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1489 | 18930 | 11957 | 32.425 | 141.14 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4736 | 9137.6 | 9535.8 | 92.839 | 581.05 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4399 | 9667.3 | 9693.8 | 87.329 | 534.07 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 572 | 29824 | 13227 | 14.519 | 47.198 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 100 | 75392 | 12326 | 2.1245 | 0.65307 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 6210 | 11416 | 12117 | 74.217 | 426.48 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1331 | 29681 | 15043 | 21.618 | 78.172 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 5172 | 13187 | 12560 | 66.025 | 358.56 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4438 | 14739 | 12928 | 57.754 | 299.06 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 485 | 45315 | 15521 | 9.9422 | 25.711 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 152 | 48479 | 12268 | 6.4111 | 14.49 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4817 | 9019.9 | 9507.3 | 90.565 | 569.25 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1493 | 18923 | 11945 | 32.538 | 141.8 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4732 | 9151.3 | 9541.4 | 92.606 | 579.15 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4396 | 9680.9 | 9698.5 | 87.135 | 532.53 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 573 | 29813 | 13218 | 14.561 | 47.386 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 100 | 75393 | 12327 | 2.1235 | 0.65082 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 6201 | 11427 | 12121 | 74.113 | 425.7 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1332 | 29664 | 15043 | 21.637 | 78.257 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 5166 | 13198 | 12561 | 65.966 | 358.15 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 4436 | 14743 | 12926 | 57.755 | 299.08 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 484 | 45345 | 15525 | 9.9118 | 25.601 | RichTkSelEffLong SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffLong" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 6398 | 1.3163 | 0.52154 | 3.8251 | 10.6 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 6398 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 6398 | 0.043345 | 0.0782 | 19.293 | 66.54 | - | All/effVP | "RICH Track Sel. Eff. V P" | 6398 | 11259 | 12094 | 83.591 | 487.18 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 6398 | 569.66 | 526.32 | 230.18 | 2055.1 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 6388 | 1.3146 | 0.52009 | 3.8697 | 10.764 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 6388 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 6388 | 0.043037 | 0.077816 | 19.704 | 68.526 | + | All/effVP | "RICH Track Sel. Eff. V P" | 6388 | 11271 | 12098 | 83.462 | 486.21 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 6388 | 570.52 | 526.7 | 229.54 | 2047.7 | RiTkDetectableYieldsLong SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsLong" : 12 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48984 | 12185 | 6.3089 | 14.16 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4822 | 9005 | 9501.3 | 90.813 | 571.28 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1448 | 19212 | 12007 | 31.551 | 136.15 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4717 | 9166.6 | 9544 | 92.521 | 578.35 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4359 | 9732.7 | 9714.1 | 86.543 | 527.71 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 553 | 30265 | 13238 | 14.107 | 45.416 | - | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76083 | 12138 | 2.0394 | 0.4673 | - | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3300 | 17780 | 13726 | 38.873 | 182.15 | - | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1286 | 30158 | 15091 | 20.904 | 74.744 | - | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3225 | 18054 | 13767 | 39.66 | 184.66 | - | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3135 | 18397 | 13813 | 39.649 | 183.2 | - | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 469 | 45843 | 15537 | 9.6099 | 24.476 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 147 | 48985 | 12185 | 6.3087 | 14.16 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 4816 | 9021.4 | 9507.7 | 90.546 | 569.09 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 1452 | 19204 | 11995 | 31.664 | 136.81 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 4713 | 9180.4 | 9549.6 | 92.289 | 576.46 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 4357 | 9744.8 | 9718.3 | 86.372 | 526.36 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 554 | 30254 | 13228 | 14.149 | 45.602 | + | Rich2Gas/deuteron/yieldVp | "Rich2Gas deuteron Photon Yield (>0) V P (MeV | 97 | 76084 | 12139 | 2.0384 | 0.46506 | + | Rich2Gas/electron/yieldVp | "Rich2Gas electron Photon Yield (>0) V P (MeV | 3299 | 17784 | 13724 | 38.885 | 182.23 | + | Rich2Gas/kaon/yieldVp | "Rich2Gas kaon Photon Yield (>0) V P (MeV)" | 1287 | 30140 | 15092 | 20.921 | 74.82 | + | Rich2Gas/muon/yieldVp | "Rich2Gas muon Photon Yield (>0) V P (MeV)" | 3224 | 18058 | 13764 | 39.673 | 184.74 | + | Rich2Gas/pion/yieldVp | "Rich2Gas pion Photon Yield (>0) V P (MeV)" | 3134 | 18401 | 13811 | 39.663 | 183.29 | + | Rich2Gas/proton/yieldVp | "Rich2Gas proton Photon Yield (>0) V P (MeV)" | 468 | 45876 | 15540 | 9.5803 | 24.37 | RiTkSignalYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkSignalYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 34 | 47639 | 14152 | 5.4109 | 11.183 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 706 | 10165 | 11060 | 33.365 | 178.35 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 247 | 21044 | 12798 | 16.011 | 64.968 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 705 | 10177 | 11063 | 35.408 | 189.32 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 650 | 10840 | 11276 | 33.024 | 171.95 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 123 | 29554 | 13535 | 11.341 | 38.648 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 33 | 46751 | 13470 | 6.5588 | 16.032 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10089 | 10794 | 32.432 | 175.93 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 246 | 20822 | 12344 | 16.173 | 68.431 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10101 | 10797 | 34.465 | 187 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 648 | 10760 | 10998 | 32.197 | 170.33 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 122 | 29175 | 12930 | 12.209 | 44.693 | RiTkEmittedYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkEmittedYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 34 | 47639 | 14152 | 5.3527 | 11.131 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 706 | 10165 | 11060 | 32.723 | 173.81 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 250 | 20898 | 12787 | 15.747 | 63.571 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 705 | 10177 | 11063 | 34.693 | 184.31 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 659 | 10727 | 11240 | 32.889 | 170.92 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 127 | 29159 | 13492 | 11.148 | 37.917 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 33 | 46751 | 13470 | 6.4834 | 15.941 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10089 | 10794 | 31.764 | 171.03 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 249 | 20679 | 12337 | 15.86 | 66.671 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10101 | 10797 | 33.719 | 181.61 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 657 | 10647 | 10964 | 32.01 | 168.82 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 126 | 28789 | 12894 | 11.745 | 42.863 | RichTkSelEffUpstream SUCCESS 1D profile histograms in directory "RICH/RichTkSelEffUpstream" : 5 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 828 | 1.1851 | 0.53493 | 5.3389 | 15.695 | - | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 828 | 5500 | 0 | 0 | 0 | - | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 828 | 0.049375 | 0.064461 | 27.756 | 111.09 | - | All/effVP | "RICH Track Sel. Eff. V P" | 828 | 14196 | 16107 | 13.457 | 49.816 | - | All/effVPt | "RICH Track Sel. Eff. V Pt" | 828 | 903.11 | 598.56 | 56.434 | 337.92 | + | All/effVChi2PDOF | "RICH Track Sel. Eff. V Chi^2 / D.O.F." | 827 | 1.1895 | 0.53374 | 5.3316 | 15.752 | + | All/effVCloneDist | "RICH Track Sel. Eff. V Clone Distance" | 827 | 5500 | 0 | 0 | 0 | + | All/effVGhostProb | "RICH Track Sel. Eff. V Ghost Probability" | 827 | 0.049251 | 0.064163 | 28.229 | 113.63 | + | All/effVP | "RICH Track Sel. Eff. V P" | 827 | 14159 | 15974 | 11.854 | 44.366 | + | All/effVPt | "RICH Track Sel. Eff. V Pt" | 827 | 898.42 | 583.39 | 61.263 | 376.99 | RiTkDetectableYieldsUpstream SUCCESS 1D profile histograms in directory "RICH/RiTkDetectableYieldsUpstream" : 6 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 34 | 47639 | 14152 | 5.4725 | 11.438 | - | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 706 | 10165 | 11060 | 32.723 | 173.81 | - | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 247 | 21044 | 12798 | 15.631 | 62.935 | - | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 705 | 10177 | 11063 | 34.725 | 184.48 | - | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 650 | 10840 | 11276 | 32.398 | 167.6 | - | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 123 | 29554 | 13535 | 10.849 | 36.512 | + | Rich1Gas/deuteron/yieldVp | "Rich1Gas deuteron Photon Yield (>0) V P (MeV | 33 | 46751 | 13470 | 6.6417 | 16.394 | + | Rich1Gas/electron/yieldVp | "Rich1Gas electron Photon Yield (>0) V P (MeV | 704 | 10089 | 10794 | 31.764 | 171.03 | + | Rich1Gas/kaon/yieldVp | "Rich1Gas kaon Photon Yield (>0) V P (MeV)" | 246 | 20822 | 12344 | 15.754 | 66.078 | + | Rich1Gas/muon/yieldVp | "Rich1Gas muon Photon Yield (>0) V P (MeV)" | 703 | 10101 | 10797 | 33.75 | 181.77 | + | Rich1Gas/pion/yieldVp | "Rich1Gas pion Photon Yield (>0) V P (MeV)" | 648 | 10760 | 10998 | 31.538 | 165.61 | + | Rich1Gas/proton/yieldVp | "Rich1Gas proton Photon Yield (>0) V P (MeV)" | 122 | 29175 | 12930 | 11.453 | 41.424 | RiCKMCResDownstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResDownstream10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 6407 | 9328 | 8323.4 | 249.31 | 2102.8 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2661 | 17990 | 11163 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 6409 | 9389.7 | 8307.2 | 219.56 | 1853.9 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 2674 | 17960 | 11144 | 0 | -3 | RiCKMCResLong10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResLong10to70" : 2 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 31074 | 17738 | 12731 | 28.847 | 132.69 | - | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 25743 | 22992 | 14516 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 30932 | 17797 | 12730 | 29.012 | 133.37 | + | Rich2Gas/ckResTrueVP | "Rich2Gas V P - MC true pho | 25684 | 23003 | 14527 | 0 | -3 | RiCKMCResUpstream10to70 SUCCESS 1D profile histograms in directory "RICH/RiCKMCResUpstream10to70" : 1 | ID | Title | # | Mean | RMS | Skewness | Kurtosis | - | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 3505 | 20893 | 12605 | 0 | -3 | + | Rich1Gas/ckResTrueVP | "Rich1Gas V P - MC true pho | 3476 | 21023 | 12579 | 0 | -3 | RichRecPixelClusters SUCCESS Booked 2 Histogram(s) : 1D=2 RichRecPixelQC SUCCESS Booked 6 Histogram(s) : 1D=6 RichDecodingErrors SUCCESS Booked 352 Histogram(s) : 2D=1 1DProf=351 diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref b/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref index 01c2a9c9c87..31d3891e117 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref @@ -57,7 +57,7 @@ FutureHcalPIDmuAlg SUCCESS Number of counters : 1 FuturePhotonMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#above threshold" | 80 | 1776629 | 22208. | 11948. | 655.00 | 49536. | - | "#chi2" | 530028 |2.439215e+08 | 460.20 | 290.62 | 0.00072430 | 1000.0 | + | "#chi2" | 530028 |2.439216e+08 | 460.21 | 290.62 | 0.00072430 | 1000.0 | | "#good tracks" | 80 | 10207 | 127.59 | 47.108 | 19.000 | 222.00 | | "#links in table" | 80 | 530028 | 6625.4 | 4025.6 | 124.00 | 16705. | | "#total calos" | 80 | 16537 | 206.71 | 55.676 | 41.000 | 322.00 | diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt index 69dca0d14b1..5368be77ce7 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt @@ -68,7 +68,7 @@ ClassifyPhotonElectronAlg INFO Number of counters : 2 FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#above threshold" | 80 | 1208612 | 15108. | 9833.2 | 222.00 | 40394. | - | "#chi2" | 128101 |5.636456e+08 | 4400.0 | 2933.3 | 0.025692 | 9999.9 | + | "#chi2" | 128101 |5.636457e+08 | 4400.0 | 2933.3 | 0.025692 | 9999.9 | | "#good tracks" | 80 | 10207 | 127.59 | 47.108 | 19.000 | 222.00 | | "#links in table" | 80 | 128101 | 1601.3 | 909.95 | 25.000 | 3733.0 | | "#total calos" | 80 | 9255 | 115.69 | 42.669 | 13.000 | 197.00 | -- GitLab From 134c4ddeb9eced953ed78d3fdca39bb3edaf113b Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 5 May 2020 09:42:33 +0000 Subject: [PATCH 145/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8245710 --- .../options/dump_binary_input_for_standalone_Allen.py | 7 ++++--- Hlt/RecoConf/python/RecoConf/standalone.py | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py index 01425ac48b3..1d0ddeee1f0 100644 --- a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py +++ b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py @@ -20,19 +20,20 @@ from Configurables import AllenUpdater outputDir = "dump/" + def dump_allen_binary_input(): - + data = [] data.append( make_dumped_raw_banks( dump_to_file=True, output_dir=outputDir + "banks")) data.append( tracker_dumper( - dump_to_root=False, + dump_to_root=False, dump_to_binary=True, bin_output_dir=outputDir + "MC_info/tracks")) data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) - + return Reconstruction('allen_dump', data) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 56b98e9ae24..b07dd9d23f6 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -24,9 +24,9 @@ from .calorimeter_mc_checking import (monitor_calo_cluster_resolution, monitor_calo_photon_resolution, monitor_calo_pi0_resolution) from PyConf.Algorithms import CaloDigit2MCLinks2Table -from .mc_checking import get_track_checkers, get_best_tracks_checkers, tracker_dumper, pv_dumper +from .mc_checking import get_track_checkers, get_best_tracks_checkers, tracker_dumper, pv_dumper from .hlt1_allen import (make_allen_tracks, make_allen_pvs, - make_allen_dec_reports, make_dumped_raw_banks) + make_allen_dec_reports, make_dumped_raw_banks) from .reco_objects_from_file import reconstruction from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options from .rich_data_monitoring import (make_rich_pixel_monitors, -- GitLab From e1edab0e3890ee45532431deb1800b09080f4998 Mon Sep 17 00:00:00 2001 From: Florian Reiss Date: Tue, 5 May 2020 22:38:52 +0200 Subject: [PATCH 146/199] updates to PV plotting scripts to create plots for figure document --- .../scripts/PrimaryVertexCheckerEfficiency.py | 14 +++- .../scripts/PrimaryVertexCheckerPull.py | 58 +++++++------- .../scripts/PrimaryVertexCheckerResolution.py | 60 +++++++++------ Hlt/RecoConf/scripts/utils/pvconfig.py | 2 +- Hlt/RecoConf/scripts/utils/pvutils.py | 75 ++++++++++++------- 5 files changed, 127 insertions(+), 82 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py index a8870f7bcfa..bfc3151734f 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py @@ -77,6 +77,13 @@ parser.add_argument( help='tree name to plot', ) +parser.add_argument( + '--offset', + dest='offset', + default=0, + help='offset for plot colors', +) + def get_labels(number_of_files): label = [] @@ -89,6 +96,7 @@ if __name__ == '__main__': args = parser.parse_args() path = args.directory + "/utils/" sys.path.append(os.path.abspath(path)) + offset = int(args.offset) gROOT.SetBatch() @@ -125,11 +133,11 @@ if __name__ == '__main__': eff["tracks"], hist["tracks"] = get_eff(eff["tracks"], hist["tracks"], tr, "nrectrmc", style, ranges, cat, - label) + label, offset) eff["z"], hist["z"] = get_eff(eff["z"], hist["z"], tr, "zMC", style, - ranges, cat, label) + ranges, cat, label, offset) eff["r"], hist["r"] = get_eff(eff["r"], hist["r"], tr, "rMC", style, - ranges, cat, label) + ranges, cat, label, offset) if args.dist: legend = TLegend(0.15, 0.82, 0.88, 0.98) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py index 6b6b2f7532d..127154700bb 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py @@ -77,6 +77,13 @@ parser.add_argument( help='tree name to plot', ) +parser.add_argument( + '--offset', + dest='offset', + default=0, + help='offset for plot colors', +) + def get_labels(number_of_files): label = [] @@ -89,7 +96,7 @@ if __name__ == '__main__': args = parser.parse_args() path = args.directory + "/utils/" sys.path.append(os.path.abspath(path)) - + offset = int(args.offset) gROOT.SetBatch() from pvutils import get_default_tree_name @@ -120,15 +127,15 @@ if __name__ == '__main__': hist_z = {} norm = True #to-do hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", - "Candidates Normalized", style, ranges, cat, label) + "Candidates Normalized", style, ranges, cat, label, offset) hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", - "Candidates Normalized", style, ranges, cat, label) + "Candidates Normalized", style, ranges, cat, label, offset) hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", - "Candidates Normalized", style, ranges, cat, label) + "Candidates Normalized", style, ranges, cat, label, offset) - plot_comparison(hist_x, args.prefix, "pullx", cat, label, style, norm) - plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm) - plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm) + plot_comparison(hist_x, args.prefix, "pullx", cat, label, style, norm, offset) + plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm, offset) + plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm, offset) from ROOT import gEnv gEnv.SetValue("Hist.Binning.1D.x", "100") @@ -140,54 +147,55 @@ if __name__ == '__main__': graph["tracks"]["pullz"] = {} graph["tracks"]["pullx"] = get_dependence(graph["tracks"]["pullx"], tr, "pullx", "nrectrmc", ranges, - style, cat, label) + style, cat, label, offset) graph["tracks"]["pully"] = get_dependence(graph["tracks"]["pully"], tr, "pully", "nrectrmc", ranges, - style, cat, label) + style, cat, label, offset) graph["tracks"]["pullz"] = get_dependence(graph["tracks"]["pullz"], tr, "pullz", "nrectrmc", ranges, - style, cat, label) + style, cat, label, offset) legend = TLegend(0.15, 0.86, 0.88, 0.98) legend = set_legend(legend, label, graph["tracks"]["pullz"], "sigma") + labelpos=(0.75, 0.75,0.9,0.87) plot(graph["tracks"]["pullx"], "mean", args.prefix + "_ntracks_mean", - "pullx", cat, label, legend) + "pullx", cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["pullx"], "sigma", args.prefix + "_ntracks_sigma", - "pullx", cat, label, legend) + "pullx", cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["pully"], "mean", args.prefix + "_ntracks_mean", - "pully", cat, label, legend) + "pully", cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["pully"], "sigma", args.prefix + "_ntracks_sigma", - "pully", cat, label, legend) + "pully", cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["pullz"], "mean", args.prefix + "_ntracks_mean", - "pullz", cat, label, legend) + "pullz", cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["pullz"], "sigma", args.prefix + "_ntracks_sigma", - "pullz", cat, label, legend) + "pullz", cat, label, legend, labelpos=labelpos) graph["z"] = {} graph["z"]["pullx"] = {} graph["z"]["pully"] = {} graph["z"]["pullz"] = {} graph["z"]["pullx"] = get_dependence(graph["z"]["pullx"], tr, "pullx", - "zMC", ranges, style, cat, label) + "zMC", ranges, style, cat, label, offset) graph["z"]["pully"] = get_dependence(graph["z"]["pully"], tr, "pully", - "zMC", ranges, style, cat, label) + "zMC", ranges, style, cat, label, offset) graph["z"]["pullz"] = get_dependence(graph["z"]["pullz"], tr, "pullz", - "zMC", ranges, style, cat, label) + "zMC", ranges, style, cat, label, offset) plot(graph["z"]["pullx"], "mean", args.prefix + "_z_mean", "pullx", cat, - label, legend) + label, legend, labelpos=labelpos) plot(graph["z"]["pullx"], "sigma", args.prefix + "_z_sigma", "pullx", cat, - label, legend) + label, legend, labelpos=labelpos) plot(graph["z"]["pully"], "mean", args.prefix + "_z_mean", "pully", cat, - label, legend) + label, legend, labelpos=labelpos) plot(graph["z"]["pully"], "sigma", args.prefix + "_z_sigma", "pully", cat, - label, legend) + label, legend, labelpos=labelpos) plot(graph["z"]["pullz"], "mean", args.prefix + "_z_mean", "pullz", cat, - label, legend) + label, legend, labelpos=labelpos) plot(graph["z"]["pullz"], "sigma", args.prefix + "_z_sigma", "pullz", cat, - label, legend) + label, legend, labelpos=labelpos) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py index 7a753cf251e..f195826d0df 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py @@ -77,6 +77,13 @@ parser.add_argument( help='tree name to plot', ) +parser.add_argument( + '--offset', + dest='offset', + default=0, + help='offset for plot colors', +) + def get_labels(number_of_files): label = [] @@ -89,6 +96,7 @@ if __name__ == '__main__': args = parser.parse_args() path = args.directory + "/utils/" sys.path.append(os.path.abspath(path)) + offset = int(args.offset) gROOT.SetBatch() @@ -120,15 +128,15 @@ if __name__ == '__main__': norm = True hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", - "Candidates Normalized", style, ranges, cat, label) + "Candidates Normalized", style, ranges, cat, label, offset) hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", - "Candidates Normalized", style, ranges, cat, label) + "Candidates Normalized", style, ranges, cat, label, offset) hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", - "Candidates Normalized", style, ranges, cat, label) + "Candidates Normalized", style, ranges, cat, label, offset) - plot_comparison(hist_x, args.prefix, "dx", cat, label, style, norm) - plot_comparison(hist_y, args.prefix, "dy", cat, label, style, norm) - plot_comparison(hist_z, args.prefix, "dz", cat, label, style, norm) + plot_comparison(hist_x, args.prefix, "dx", cat, label, style, norm, offset) + plot_comparison(hist_y, args.prefix, "dy", cat, label, style, norm, offset) + plot_comparison(hist_z, args.prefix, "dz", cat, label, style, norm, offset) from ROOT import gEnv gEnv.SetValue("Hist.Binning.1D.x", "100") @@ -139,52 +147,56 @@ if __name__ == '__main__': graph["tracks"]["dy"] = {} graph["tracks"]["dz"] = {} graph["tracks"]["dx"] = get_dependence( - graph["tracks"]["dx"], tr, "dx", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dx"], tr, "dx", "nrectrmc", ranges, style, cat, label, offset) graph["tracks"]["dy"] = get_dependence( - graph["tracks"]["dy"], tr, "dy", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dy"], tr, "dy", "nrectrmc", ranges, style, cat, label, offset) graph["tracks"]["dz"] = get_dependence( - graph["tracks"]["dz"], tr, "dz", "nrectrmc", ranges, style, cat, label) + graph["tracks"]["dz"], tr, "dz", "nrectrmc", ranges, style, cat, label, offset) legend = TLegend(0.15, 0.86, 0.88, 0.98) legend = set_legend(legend, label, graph["tracks"]["dz"], "sigma") + + labelpos=(0.73, 0.75,0.88,0.87) plot(graph["tracks"]["dx"], "mean", args.prefix + "_ntracks_mean", "dx", - cat, label, legend) + cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["dx"], "sigma", args.prefix + "_ntracks_sigma", "dx", - cat, label, legend) + cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["dy"], "mean", args.prefix + "_ntracks_mean", "dy", - cat, label, legend) + cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["dy"], "sigma", args.prefix + "_ntracks_sigma", "dy", - cat, label, legend) + cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["dz"], "mean", args.prefix + "_ntracks_mean", "dz", - cat, label, legend) + cat, label, legend, labelpos=labelpos) plot(graph["tracks"]["dz"], "sigma", args.prefix + "_ntracks_sigma", "dz", - cat, label, legend) + cat, label, legend, labelpos=labelpos) graph["z"] = {} graph["z"]["dx"] = {} graph["z"]["dy"] = {} graph["z"]["dz"] = {} graph["z"]["dx"] = get_dependence(graph["z"]["dx"], tr, "dx", "zMC", - ranges, style, cat, label) + ranges, style, cat, label, offset) graph["z"]["dy"] = get_dependence(graph["z"]["dy"], tr, "dy", "zMC", - ranges, style, cat, label) + ranges, style, cat, label, offset) graph["z"]["dz"] = get_dependence(graph["z"]["dz"], tr, "dz", "zMC", - ranges, style, cat, label) + ranges, style, cat, label, offset) + plot(graph["z"]["dx"], "mean", args.prefix + "_z_mean", "dx", cat, label, - legend) + legend, labelpos=labelpos) plot(graph["z"]["dx"], "sigma", args.prefix + "_z_sigma", "dx", cat, label, - legend) + legend, labelpos=labelpos) plot(graph["z"]["dy"], "mean", args.prefix + "_z_mean", "dy", cat, label, - legend) + legend, labelpos=labelpos) plot(graph["z"]["dy"], "sigma", args.prefix + "_z_sigma", "dy", cat, label, - legend) + legend, labelpos=labelpos) + plot(graph["z"]["dz"], "mean", args.prefix + "_z_mean", "dz", cat, label, - legend) + legend, labelpos=labelpos) plot(graph["z"]["dz"], "sigma", args.prefix + "_z_sigma", "dz", cat, label, - legend) + legend, labelpos=labelpos) diff --git a/Hlt/RecoConf/scripts/utils/pvconfig.py b/Hlt/RecoConf/scripts/utils/pvconfig.py index aa85884257c..09bccd2963f 100644 --- a/Hlt/RecoConf/scripts/utils/pvconfig.py +++ b/Hlt/RecoConf/scripts/utils/pvconfig.py @@ -175,7 +175,7 @@ def set_legend(legend, label, gr, gr_type, hist=None, dist=False): legend.AddEntry(hist["all"][label[0]]["den"], "Distribution MC", "f") for lab in label: legend.AddEntry(hist["all"][lab]["nom"], - "Distribution {lab}".format(lab=lab), "f") + "Distribution {lab}".format(lab=lab), "lep") return legend diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index 5065d911ddf..02e0ab776a1 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -15,7 +15,7 @@ # date: 02/2020 # -from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors +from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors, TPaveText, gStyle from ROOT import TCanvas from ROOT import TGraphErrors, TLegend from ROOT import gPad, kGray, TLatex @@ -50,14 +50,14 @@ def get_trees(tf, tr, label, trees, is_checker): return tr -def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): +def get_eff(eff, hist, trees, dependence, style, ranges, categories, label, offset): for cat in categories: eff[cat] = {} hist[cat] = {} - i = 0 + i = offset for lab in label: - var_den = '{dependence}>>hist{code}_{dep}_{cat}_{lab}({bins},{mins},{maxs})'.format( + var_den = '{dependence}>>hist{code}_{dep}_{cat}_denom{i}({bins},{mins},{maxs})'.format( dependence=dependence, code="den", dep=dependence, @@ -65,8 +65,9 @@ def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): lab=lab, bins=ranges[dependence]["bins"], mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"]) - var_nom = '{dependence}>>hist{code}_{dep}_{cat}_{lab}({bins},{mins},{maxs})'.format( + maxs=ranges[dependence]["max"], + i=i) + var_nom = '{dependence}>>hist{code}_{dep}_{cat}_num{i}({bins},{mins},{maxs})'.format( dependence=dependence, code="nom", dep=dependence, @@ -74,7 +75,8 @@ def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): lab=lab, bins=ranges[dependence]["bins"], mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"]) + maxs=ranges[dependence]["max"], + i=i) cut_den = 'nrectrmc>=4 && dz < 2.0 {cuts}'.format( cuts=categories[cat]["cut"]) @@ -83,15 +85,15 @@ def get_eff(eff, hist, trees, dependence, style, ranges, categories, label): trees[lab].Draw(var_nom, cut_nom) trees[lab].Draw(var_den, cut_den) - h_nom = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format( - code="nom", dep=dependence, cat=cat, lab=lab)) - h_den = gDirectory.Get('hist{code}_{dep}_{cat}_{lab}'.format( - code="den", dep=dependence, cat=cat, lab=lab)) + h_nom = gDirectory.Get('hist{code}_{dep}_{cat}_num{i}'.format( + code="nom", dep=dependence, cat=cat, lab=lab, i=i)) + h_den = gDirectory.Get('hist{code}_{dep}_{cat}_denom{i}'.format( + code="den", dep=dependence, cat=cat, lab=lab, i=i)) g_eff = TGraphAsymmErrors() g_eff.Divide(h_nom, h_den, "cl=0.683 b(1,1) mode") - set_style(h_nom, style["color"][i] - 8, style["marker"][i], + set_style(h_nom, style["color"][i]-7, style["marker"][i]+4, get_x_axis(dependence), "Efficiency", "") set_style(h_den, kGray, style["marker"][i], get_x_axis(dependence), "Efficiency", "") @@ -133,7 +135,8 @@ def plot(gr, label, legend=None, hist=None, - dist=False): + dist=False, + labelpos=(0.75, 0.78,0.9,0.9)): for cat in categories: can = TCanvas( @@ -173,14 +176,21 @@ def plot(gr, for lab in label: histmax_nom = 1.1 * hist[cat][lab]["nom"].GetMaximum() - scale = gPad.GetUymax() / histmax_nom + #scale = gPad.GetUymax() / histmax_nom hist[cat][lab]["nom"].Scale(scale * 0.75) - hist[cat][lab]["nom"].Draw("SAME") + hist[cat][lab]["nom"].Draw("ep SAME") gr[cat][lab][gr_type].Draw("SAME P") if legend: legend.Draw("SAME") + pavetext = TPaveText(labelpos[0],labelpos[1],labelpos[2],labelpos[3], "NBNDC") + pavetext.AddText("LHCb simulation") + pavetext.SetFillColor(0) + pavetext.SetFillStyle(3000) + pavetext.SetTextSize(0.06) + pavetext.SetTextFont(132) + pavetext.Draw() saveName = '{prefix}_{dependence}_{cat}.pdf'.format( prefix=prefix, dependence=dependence, cat=cat) @@ -188,29 +198,30 @@ def plot(gr, def get_global(hist, trees, dependence, x_axis, y_axis, style, ranges, - categories, label): + categories, label, offset): dep = transfer_variable(dependence) for cat in categories: hist[cat] = {} - i = 0 + i = offset for lab in label: - var = '{dependence}>>hist_{dep}_{cat}_{lab}({bins},{mins},{maxs})'.format( + var = '{dependence}>>hist_{dep}_{cat}_{i}({bins},{mins},{maxs})'.format( dependence=dep, dep=dependence, cat=cat, lab=lab, bins=ranges[dependence]["bins"], mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"]) + maxs=ranges[dependence]["max"], + i=i) cut = 'nrectrmc>=4 && dz < 2.0 && reco == 1 {cuts}'.format( cuts=categories[cat]["cut"]) trees[lab].Draw(var, cut) - h = gDirectory.Get('hist_{dep}_{cat}_{lab}'.format( - dep=dependence, cat=cat, lab=lab)) + h = gDirectory.Get('hist_{dep}_{cat}_{i}'.format( + dep=dependence, cat=cat, lab=lab, i=i)) if i == 0: col = style["color"][i] - 10 else: @@ -249,7 +260,7 @@ def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, return text -def plot_comparison(hist, prefix, dependence, categories, label, style, norm): +def plot_comparison(hist, prefix, dependence, categories, label, style, norm, offset): for cat in categories: can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), @@ -272,7 +283,7 @@ def plot_comparison(hist, prefix, dependence, categories, label, style, norm): if norm: hist[cat][label[0]].DrawNormalized("hist") hist_max = hist[cat][label[0]].GetMaximum() - i = 0 + i = offset for lab in label: hist[cat][lab].DrawNormalized("SAME PE") text = TLatex() @@ -287,6 +298,12 @@ def plot_comparison(hist, prefix, dependence, categories, label, style, norm): hist[cat][label[0]].Draw("hist") for lab in label: hist[cat][lab].Draw("SAME PE") + pavetext = TPaveText(0.72, 0.77 - gStyle.GetPadTopMargin(), 0.87, 0.89 - gStyle.GetPadTopMargin(), "NBNDC") + pavetext.AddText("LHCb simulation") + pavetext.SetFillColor(0) + pavetext.SetTextSize(0.06) + pavetext.SetTextFont(132) + pavetext.Draw() can.Update() saveName = '{prefix}_{dependence}_{cat}.pdf'.format( @@ -346,7 +363,7 @@ def get_robust_sigma(hist, resol): def get_dependence(graph, trees, variable, dependence, ranges, style, - categories, label): + categories, label, offset): var = transfer_variable(variable) bin_width = (ranges[dependence]["max"] - @@ -360,7 +377,7 @@ def get_dependence(graph, trees, variable, dependence, ranges, style, for cat in categories: graph[cat] = {} - i = 0 + i = offset for lab in label: graph[cat][lab] = {} graph_rms = TGraphAsymmErrors(ranges[dependence]["bins"]) @@ -375,11 +392,11 @@ def get_dependence(graph, trees, variable, dependence, ranges, style, variable2=dependence, maxs=bin_min + bin_width) - hist_string = '{dependence}>>hist_{dep}_{cat}_{lab}_{number}'.format( + hist_string = '{dependence}>>hist_{dep}_{cat}_{i}_{number}'.format( dependence=var, dep=variable, cat=cat, - lab=lab, + i=i, number=int(b), ) @@ -392,8 +409,8 @@ def get_dependence(graph, trees, variable, dependence, ranges, style, bin_min += bin_width - h = gDirectory.Get('hist_{dep}_{cat}_{lab}_{number}'.format( - dep=variable, cat=cat, lab=lab, number=int(b))) + h = gDirectory.Get('hist_{dep}_{cat}_{i}_{number}'.format( + dep=variable, cat=cat, i=i, number=int(b))) robust_sigma = get_robust_sigma(h, resol) -- GitLab From 37efe35e2a9bcefbc0549b9ff0265548ac4c9562 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 6 May 2020 08:20:23 +0000 Subject: [PATCH 147/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8259820 --- .../scripts/PrimaryVertexCheckerPull.py | 167 ++++++++++++++---- .../scripts/PrimaryVertexCheckerResolution.py | 161 +++++++++++++---- Hlt/RecoConf/scripts/utils/pvutils.py | 16 +- 3 files changed, 264 insertions(+), 80 deletions(-) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py index 127154700bb..cf30de6cca3 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py @@ -127,15 +127,21 @@ if __name__ == '__main__': hist_z = {} norm = True #to-do hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", - "Candidates Normalized", style, ranges, cat, label, offset) + "Candidates Normalized", style, ranges, cat, label, + offset) hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", - "Candidates Normalized", style, ranges, cat, label, offset) + "Candidates Normalized", style, ranges, cat, label, + offset) hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", - "Candidates Normalized", style, ranges, cat, label, offset) + "Candidates Normalized", style, ranges, cat, label, + offset) - plot_comparison(hist_x, args.prefix, "pullx", cat, label, style, norm, offset) - plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm, offset) - plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm, offset) + plot_comparison(hist_x, args.prefix, "pullx", cat, label, style, norm, + offset) + plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm, + offset) + plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm, + offset) from ROOT import gEnv gEnv.SetValue("Hist.Binning.1D.x", "100") @@ -158,44 +164,131 @@ if __name__ == '__main__': legend = TLegend(0.15, 0.86, 0.88, 0.98) legend = set_legend(legend, label, graph["tracks"]["pullz"], "sigma") - labelpos=(0.75, 0.75,0.9,0.87) - plot(graph["tracks"]["pullx"], "mean", args.prefix + "_ntracks_mean", - "pullx", cat, label, legend, labelpos=labelpos) - plot(graph["tracks"]["pullx"], "sigma", args.prefix + "_ntracks_sigma", - "pullx", cat, label, legend, labelpos=labelpos) + labelpos = (0.75, 0.75, 0.9, 0.87) + plot( + graph["tracks"]["pullx"], + "mean", + args.prefix + "_ntracks_mean", + "pullx", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["tracks"]["pullx"], + "sigma", + args.prefix + "_ntracks_sigma", + "pullx", + cat, + label, + legend, + labelpos=labelpos) - plot(graph["tracks"]["pully"], "mean", args.prefix + "_ntracks_mean", - "pully", cat, label, legend, labelpos=labelpos) - plot(graph["tracks"]["pully"], "sigma", args.prefix + "_ntracks_sigma", - "pully", cat, label, legend, labelpos=labelpos) + plot( + graph["tracks"]["pully"], + "mean", + args.prefix + "_ntracks_mean", + "pully", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["tracks"]["pully"], + "sigma", + args.prefix + "_ntracks_sigma", + "pully", + cat, + label, + legend, + labelpos=labelpos) - plot(graph["tracks"]["pullz"], "mean", args.prefix + "_ntracks_mean", - "pullz", cat, label, legend, labelpos=labelpos) - plot(graph["tracks"]["pullz"], "sigma", args.prefix + "_ntracks_sigma", - "pullz", cat, label, legend, labelpos=labelpos) + plot( + graph["tracks"]["pullz"], + "mean", + args.prefix + "_ntracks_mean", + "pullz", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["tracks"]["pullz"], + "sigma", + args.prefix + "_ntracks_sigma", + "pullz", + cat, + label, + legend, + labelpos=labelpos) graph["z"] = {} graph["z"]["pullx"] = {} graph["z"]["pully"] = {} graph["z"]["pullz"] = {} graph["z"]["pullx"] = get_dependence(graph["z"]["pullx"], tr, "pullx", - "zMC", ranges, style, cat, label, offset) + "zMC", ranges, style, cat, label, + offset) graph["z"]["pully"] = get_dependence(graph["z"]["pully"], tr, "pully", - "zMC", ranges, style, cat, label, offset) + "zMC", ranges, style, cat, label, + offset) graph["z"]["pullz"] = get_dependence(graph["z"]["pullz"], tr, "pullz", - "zMC", ranges, style, cat, label, offset) - - plot(graph["z"]["pullx"], "mean", args.prefix + "_z_mean", "pullx", cat, - label, legend, labelpos=labelpos) - plot(graph["z"]["pullx"], "sigma", args.prefix + "_z_sigma", "pullx", cat, - label, legend, labelpos=labelpos) - - plot(graph["z"]["pully"], "mean", args.prefix + "_z_mean", "pully", cat, - label, legend, labelpos=labelpos) - plot(graph["z"]["pully"], "sigma", args.prefix + "_z_sigma", "pully", cat, - label, legend, labelpos=labelpos) - - plot(graph["z"]["pullz"], "mean", args.prefix + "_z_mean", "pullz", cat, - label, legend, labelpos=labelpos) - plot(graph["z"]["pullz"], "sigma", args.prefix + "_z_sigma", "pullz", cat, - label, legend, labelpos=labelpos) + "zMC", ranges, style, cat, label, + offset) + + plot( + graph["z"]["pullx"], + "mean", + args.prefix + "_z_mean", + "pullx", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["z"]["pullx"], + "sigma", + args.prefix + "_z_sigma", + "pullx", + cat, + label, + legend, + labelpos=labelpos) + + plot( + graph["z"]["pully"], + "mean", + args.prefix + "_z_mean", + "pully", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["z"]["pully"], + "sigma", + args.prefix + "_z_sigma", + "pully", + cat, + label, + legend, + labelpos=labelpos) + + plot( + graph["z"]["pullz"], + "mean", + args.prefix + "_z_mean", + "pullz", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["z"]["pullz"], + "sigma", + args.prefix + "_z_sigma", + "pullz", + cat, + label, + legend, + labelpos=labelpos) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py index f195826d0df..e1bdce35d1c 100644 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py +++ b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py @@ -128,11 +128,14 @@ if __name__ == '__main__': norm = True hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", - "Candidates Normalized", style, ranges, cat, label, offset) + "Candidates Normalized", style, ranges, cat, label, + offset) hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", - "Candidates Normalized", style, ranges, cat, label, offset) + "Candidates Normalized", style, ranges, cat, label, + offset) hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", - "Candidates Normalized", style, ranges, cat, label, offset) + "Candidates Normalized", style, ranges, cat, label, + offset) plot_comparison(hist_x, args.prefix, "dx", cat, label, style, norm, offset) plot_comparison(hist_y, args.prefix, "dy", cat, label, style, norm, offset) @@ -146,32 +149,76 @@ if __name__ == '__main__': graph["tracks"]["dx"] = {} graph["tracks"]["dy"] = {} graph["tracks"]["dz"] = {} - graph["tracks"]["dx"] = get_dependence( - graph["tracks"]["dx"], tr, "dx", "nrectrmc", ranges, style, cat, label, offset) - graph["tracks"]["dy"] = get_dependence( - graph["tracks"]["dy"], tr, "dy", "nrectrmc", ranges, style, cat, label, offset) - graph["tracks"]["dz"] = get_dependence( - graph["tracks"]["dz"], tr, "dz", "nrectrmc", ranges, style, cat, label, offset) + graph["tracks"]["dx"] = get_dependence(graph["tracks"]["dx"], tr, "dx", + "nrectrmc", ranges, style, cat, + label, offset) + graph["tracks"]["dy"] = get_dependence(graph["tracks"]["dy"], tr, "dy", + "nrectrmc", ranges, style, cat, + label, offset) + graph["tracks"]["dz"] = get_dependence(graph["tracks"]["dz"], tr, "dz", + "nrectrmc", ranges, style, cat, + label, offset) legend = TLegend(0.15, 0.86, 0.88, 0.98) legend = set_legend(legend, label, graph["tracks"]["dz"], "sigma") + labelpos = (0.73, 0.75, 0.88, 0.87) + plot( + graph["tracks"]["dx"], + "mean", + args.prefix + "_ntracks_mean", + "dx", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["tracks"]["dx"], + "sigma", + args.prefix + "_ntracks_sigma", + "dx", + cat, + label, + legend, + labelpos=labelpos) - labelpos=(0.73, 0.75,0.88,0.87) - plot(graph["tracks"]["dx"], "mean", args.prefix + "_ntracks_mean", "dx", - cat, label, legend, labelpos=labelpos) - plot(graph["tracks"]["dx"], "sigma", args.prefix + "_ntracks_sigma", "dx", - cat, label, legend, labelpos=labelpos) + plot( + graph["tracks"]["dy"], + "mean", + args.prefix + "_ntracks_mean", + "dy", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["tracks"]["dy"], + "sigma", + args.prefix + "_ntracks_sigma", + "dy", + cat, + label, + legend, + labelpos=labelpos) - plot(graph["tracks"]["dy"], "mean", args.prefix + "_ntracks_mean", "dy", - cat, label, legend, labelpos=labelpos) - plot(graph["tracks"]["dy"], "sigma", args.prefix + "_ntracks_sigma", "dy", - cat, label, legend, labelpos=labelpos) - - plot(graph["tracks"]["dz"], "mean", args.prefix + "_ntracks_mean", "dz", - cat, label, legend, labelpos=labelpos) - plot(graph["tracks"]["dz"], "sigma", args.prefix + "_ntracks_sigma", "dz", - cat, label, legend, labelpos=labelpos) + plot( + graph["tracks"]["dz"], + "mean", + args.prefix + "_ntracks_mean", + "dz", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["tracks"]["dz"], + "sigma", + args.prefix + "_ntracks_sigma", + "dz", + cat, + label, + legend, + labelpos=labelpos) graph["z"] = {} graph["z"]["dx"] = {} @@ -184,19 +231,59 @@ if __name__ == '__main__': graph["z"]["dz"] = get_dependence(graph["z"]["dz"], tr, "dz", "zMC", ranges, style, cat, label, offset) + plot( + graph["z"]["dx"], + "mean", + args.prefix + "_z_mean", + "dx", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["z"]["dx"], + "sigma", + args.prefix + "_z_sigma", + "dx", + cat, + label, + legend, + labelpos=labelpos) - plot(graph["z"]["dx"], "mean", args.prefix + "_z_mean", "dx", cat, label, - legend, labelpos=labelpos) - plot(graph["z"]["dx"], "sigma", args.prefix + "_z_sigma", "dx", cat, label, - legend, labelpos=labelpos) - - plot(graph["z"]["dy"], "mean", args.prefix + "_z_mean", "dy", cat, label, - legend, labelpos=labelpos) - plot(graph["z"]["dy"], "sigma", args.prefix + "_z_sigma", "dy", cat, label, - legend, labelpos=labelpos) - + plot( + graph["z"]["dy"], + "mean", + args.prefix + "_z_mean", + "dy", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["z"]["dy"], + "sigma", + args.prefix + "_z_sigma", + "dy", + cat, + label, + legend, + labelpos=labelpos) - plot(graph["z"]["dz"], "mean", args.prefix + "_z_mean", "dz", cat, label, - legend, labelpos=labelpos) - plot(graph["z"]["dz"], "sigma", args.prefix + "_z_sigma", "dz", cat, label, - legend, labelpos=labelpos) + plot( + graph["z"]["dz"], + "mean", + args.prefix + "_z_mean", + "dz", + cat, + label, + legend, + labelpos=labelpos) + plot( + graph["z"]["dz"], + "sigma", + args.prefix + "_z_sigma", + "dz", + cat, + label, + legend, + labelpos=labelpos) diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py index 02e0ab776a1..16d61773c5a 100644 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ b/Hlt/RecoConf/scripts/utils/pvutils.py @@ -50,7 +50,8 @@ def get_trees(tf, tr, label, trees, is_checker): return tr -def get_eff(eff, hist, trees, dependence, style, ranges, categories, label, offset): +def get_eff(eff, hist, trees, dependence, style, ranges, categories, label, + offset): for cat in categories: eff[cat] = {} @@ -93,7 +94,7 @@ def get_eff(eff, hist, trees, dependence, style, ranges, categories, label, offs g_eff = TGraphAsymmErrors() g_eff.Divide(h_nom, h_den, "cl=0.683 b(1,1) mode") - set_style(h_nom, style["color"][i]-7, style["marker"][i]+4, + set_style(h_nom, style["color"][i] - 7, style["marker"][i] + 4, get_x_axis(dependence), "Efficiency", "") set_style(h_den, kGray, style["marker"][i], get_x_axis(dependence), "Efficiency", "") @@ -136,7 +137,7 @@ def plot(gr, legend=None, hist=None, dist=False, - labelpos=(0.75, 0.78,0.9,0.9)): + labelpos=(0.75, 0.78, 0.9, 0.9)): for cat in categories: can = TCanvas( @@ -184,7 +185,8 @@ def plot(gr, if legend: legend.Draw("SAME") - pavetext = TPaveText(labelpos[0],labelpos[1],labelpos[2],labelpos[3], "NBNDC") + pavetext = TPaveText(labelpos[0], labelpos[1], labelpos[2], + labelpos[3], "NBNDC") pavetext.AddText("LHCb simulation") pavetext.SetFillColor(0) pavetext.SetFillStyle(3000) @@ -260,7 +262,8 @@ def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, return text -def plot_comparison(hist, prefix, dependence, categories, label, style, norm, offset): +def plot_comparison(hist, prefix, dependence, categories, label, style, norm, + offset): for cat in categories: can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), @@ -298,7 +301,8 @@ def plot_comparison(hist, prefix, dependence, categories, label, style, norm, of hist[cat][label[0]].Draw("hist") for lab in label: hist[cat][lab].Draw("SAME PE") - pavetext = TPaveText(0.72, 0.77 - gStyle.GetPadTopMargin(), 0.87, 0.89 - gStyle.GetPadTopMargin(), "NBNDC") + pavetext = TPaveText(0.72, 0.77 - gStyle.GetPadTopMargin(), 0.87, + 0.89 - gStyle.GetPadTopMargin(), "NBNDC") pavetext.AddText("LHCb simulation") pavetext.SetFillColor(0) pavetext.SetTextSize(0.06) -- GitLab From 0a95fe9a22c7a15f1a8069c346c50bd13f10f21d Mon Sep 17 00:00:00 2001 From: Federico Lazzari Date: Thu, 7 May 2020 14:58:28 +0200 Subject: [PATCH 148/199] Added standalone configuration for running HLT1 with RetinaCluster --- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 39 +++++++++++++++++ Hlt/RecoConf/python/RecoConf/mc_checking.py | 20 +++++---- Hlt/RecoConf/python/RecoConf/standalone.py | 42 ++++++++++++++++++- 3 files changed, 92 insertions(+), 9 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 23bf7cb0c1f..f7776ba2889 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -27,7 +27,9 @@ from PyConf.Algorithms import ( TracksFitConverter, VPClus, VPClusFull, + VPRetinaFullClustering, VeloClusterTrackingSIMDFaster, + VeloRetinaClusterTrackingSIMDFaster, TrackBeamLineVertexFinderSoA, PrVeloUT, SciFiTrackForwardingStoreHit, @@ -140,6 +142,11 @@ def make_velo_full_clusters(make_raw=default_raw_event): return VPClusFull(RawEventLocation=make_raw()).ClusterLocation +@configurable +def make_velo_full_retinaclusters(make_raw=default_raw_event): + return VPRetinaFullClustering(RawEventLocation=make_raw()).ClusterLocation + + @configurable def make_VeloClusterTrackingSIMD_tracks( make_raw=default_raw_event, make_tracks=VeloClusterTrackingSIMDFaster): @@ -245,6 +252,19 @@ def make_pvs(): return make_reco_pvs(all_velo_track_types()) +def make_pvs_retinacluster(): + """Makes PVs from HLT1 inputs, i.e. from `all_velo_track_types` using the PV maker passed to `make_reco_pvs` and Retina Cluster + + Returns: + DataHandle: primary vertices + """ + with make_VeloClusterTrackingSIMD_tracks.bind( + make_tracks=VeloRetinaClusterTrackingSIMDFaster): + return make_reco_pvs( + all_velo_track_types( + make_velo_tracks=make_VeloClusterTrackingSIMD_tracks)) + + def require_pvs(pvs): """Requires that at least 1 PV was reconstructed in this event. @@ -495,6 +515,25 @@ def make_hlt1_tracks(): } +def make_hlt1_tracks_retinacluster(): + """Function to get all types of tracks reconstructed in HLT1 using Retina Cluster + + Returns: + A dict mapping all types of velo, upstream and HLT1 forward tracks to ``'Velo'``, ``'Upstream'`` and ``'Forward'`` respectively. + """ + with make_VeloClusterTrackingSIMD_tracks.bind( + make_tracks=VeloRetinaClusterTrackingSIMDFaster): + velo_tracks = all_velo_track_types( + make_velo_tracks=make_VeloClusterTrackingSIMD_tracks) + velo_ut_tracks = all_upstream_track_types(velo_tracks) + forward_tracks = all_hlt1_forward_track_types(velo_ut_tracks) + return { + "Velo": velo_tracks, + "Upstream": velo_ut_tracks, + "Forward": forward_tracks, + } + + @configurable def make_VeloKalman_fitted_tracks(tracks, make_hits=make_VeloClusterTrackingSIMD_hits): diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 9d71f37cd63..90808fe86af 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -51,20 +51,22 @@ def get_item(x, key): @configurable -def make_links_veloclusters_mcparticles(): +def make_links_veloclusters_mcparticles(make_clusters=make_velo_full_clusters): return VPFullCluster2MCParticleLinker( - ClusterLocation=make_velo_full_clusters(), + ClusterLocation=make_clusters(), MCParticlesLocation=mc_unpackers()["MCParticles"], VPDigit2MCParticleLinksLocation=make_data_with_FetchDataFromFile( "/Event/Link/Raw/VP/Digits")).OutputLocation @configurable -def make_links_lhcbids_mcparticles_tracking_system(): +def make_links_lhcbids_mcparticles_tracking_system( + make_clusters=make_velo_full_clusters): return PrLHCbID2MCParticle( MCParticlesLocation=mc_unpackers()["MCParticles"], - VPFullClustersLocation=make_velo_full_clusters(), - VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), + VPFullClustersLocation=make_clusters(), + VPFullClustersLinkLocation=make_links_veloclusters_mcparticles( + make_clusters=make_clusters), UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( '/Event/Link/Raw/UT/Clusters'), @@ -74,13 +76,15 @@ def make_links_lhcbids_mcparticles_tracking_system(): @configurable -def make_links_lhcbids_mcparticles_tracking_and_muon_system(): +def make_links_lhcbids_mcparticles_tracking_and_muon_system( + make_clusters=make_velo_full_clusters): """Match lhcbIDs of hits in the tracking stations and muon stations to MCParticles. """ return PrLHCbID2MCParticleVPUTFTMU( MCParticlesLocation=mc_unpackers()["MCParticles"], - VPFullClustersLocation=make_velo_full_clusters(), - VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), + VPFullClustersLocation=make_clusters(), + VPFullClustersLinkLocation=make_links_veloclusters_mcparticles( + make_clusters=make_clusters), UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( '/Event/Link/Raw/UT/Clusters'), diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index f84fa3d4d69..c865979ca0b 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -12,6 +12,8 @@ from PyConf.tonic import configurable from PyConf.control_flow import CompositeNode, NodeLogic from .hlt1_tracking import ( require_gec, make_reco_pvs, make_pvs, make_hlt1_tracks, + make_VeloClusterTrackingSIMD_hits, make_pvs_retinacluster, + make_hlt1_tracks_retinacluster, make_velo_full_retinaclusters, make_VeloKalman_fitted_tracks, make_PrForwardTracking_tracks, make_PatPV3DFuture_pvs, all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) @@ -24,7 +26,7 @@ from .calorimeter_mc_checking import (monitor_calo_cluster_resolution, monitor_calo_photon_resolution, monitor_calo_pi0_resolution) from PyConf.Algorithms import CaloDigit2MCLinks2Table -from .mc_checking import get_track_checkers, get_best_tracks_checkers +from .mc_checking import get_track_checkers, get_best_tracks_checkers, make_links_lhcbids_mcparticles_tracking_system from .reco_objects_from_file import reconstruction from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options from .rich_data_monitoring import (make_rich_pixel_monitors, @@ -39,6 +41,8 @@ from Moore.config import Reconstruction from Hlt2Conf.data_from_file import mc_unpackers from PyConf.application import make_data_with_FetchDataFromFile +from PyConf.Algorithms import VeloRetinaClusterTrackingSIMDFaster + def reco_prefilters(): return [require_gec()] @@ -72,6 +76,42 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) +@configurable +def standalone_hlt1_reco_retinacluster(do_mc_checking=False): + """ Run the Hlt1 reconstruction, i.e. tracking and muon id, using Retina Cluster, MC checking optional + Args: + do_mc_checking (bool): Enable MC checking. + Returns: + Reconstruction: Data and control flow of Hlt1 reconstruction. + + """ + hlt1_tracks = make_hlt1_tracks_retinacluster() + pvs = make_pvs_retinacluster() + with make_VeloClusterTrackingSIMD_hits.bind( + make_tracks=VeloRetinaClusterTrackingSIMDFaster): + fitted_tracks = make_VeloKalman_fitted_tracks( + hlt1_tracks, make_hits=make_VeloClusterTrackingSIMD_hits) + muon_ids = make_muon_id(hlt1_tracks["Forward"]) + tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) + + data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] + + if do_mc_checking: + types_and_locations_for_checkers = { + "Velo": hlt1_tracks["Velo"], + "Upstream": hlt1_tracks["Upstream"], + "Forward": hlt1_tracks["Forward"], + } + with make_links_lhcbids_mcparticles_tracking_system.bind( + make_clusters=make_velo_full_retinaclusters): + data += get_track_checkers( + types_and_locations_for_checkers, + make_links_lhcbids_mcparticles= + make_links_lhcbids_mcparticles_tracking_system) + + return Reconstruction('hlt1_reco', data, reco_prefilters()) + + def standalone_hlt1_reco_velo_only(): """ Run the default Hlt1 Velo reconstruction Returns: -- GitLab From 89728a597266ef9f946ce3df1d5b5d5ae0d2dead Mon Sep 17 00:00:00 2001 From: Federico Lazzari Date: Thu, 7 May 2020 15:46:50 +0200 Subject: [PATCH 149/199] Added qmt test for RetinaCluster --- .../mdf_input_and_conds_retinacluster.py | 21 +++++++ .../options/hlt1_reco_retinacluster.py | 14 +++++ .../tests/qmtest/hlt1_reco_retinacluster.qmt | 34 +++++++++++ .../tests/refs/hlt1_reco_retinacluster.ref | 56 +++++++++++++++++++ 4 files changed, 125 insertions(+) create mode 100644 Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py create mode 100644 Hlt/RecoConf/options/hlt1_reco_retinacluster.py create mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt create mode 100644 Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref diff --git a/Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py b/Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py new file mode 100644 index 00000000000..ec7bf28d15b --- /dev/null +++ b/Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py @@ -0,0 +1,21 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options + +options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') +options.input_files = [ + 'mdf:root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_retinaCluster.mdf' +] # use file with RetinaCluster +options.evt_max = 1000 +options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') + +options.use_iosvc = True +options.event_store = 'EvtStoreSvc' diff --git a/Hlt/RecoConf/options/hlt1_reco_retinacluster.py b/Hlt/RecoConf/options/hlt1_reco_retinacluster.py new file mode 100644 index 00000000000..ab5b1d6f1f3 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_retinacluster.py @@ -0,0 +1,14 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_reconstruction +from RecoConf.standalone import standalone_hlt1_reco_retinacluster + +run_reconstruction(options, standalone_hlt1_reco_retinacluster) diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt new file mode 100644 index 00000000000..b56b61983b9 --- /dev/null +++ b/Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt @@ -0,0 +1,34 @@ + + + +gaudirun.py + + $MOOREROOT/options/force_functor_cache.py + $MOOREROOT/tests/options/mdf_input_and_conds_retinacluster.py + $MOOREROOT/tests/options/download_mdf_input.py + $RECOCONFROOT/options/hlt1_reco_retinacluster.py + --output=hlt1_reco_retinacluster.opts.py + --all-opt + +true +../refs/hlt1_reco_retinacluster.ref + + +from Moore.qmtest.exclusions import ref_preprocessor +validateWithReference(preproc = ref_preprocessor) + +from Moore.qmtest.exclusions import remove_known_warnings +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=remove_known_warnings(stdout)) + + + diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref b/Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref new file mode 100644 index 00000000000..f6f0e50341e --- /dev/null +++ b/Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref @@ -0,0 +1,56 @@ +ToolSvc INFO Removing all tools created by ToolSvc +ApplicationMgr INFO Application Manager Finalized successfully +ApplicationMgr INFO Application Manager Terminated successfully +LHCb__MDF__IOAlg INFO Number of counters : 1 + | Counter | + | "#banks in raw event" | 1000 | 1233000 | 1233.0 | 0.0000 | 1233 | 1233 | +PrGECFilter SUCCESS Number of counters : 2 + | Counter | # | sum | mean/eff^* | rms/err^* | min | max | + | "Nb Events Processed" | 1000 | + | "Nb events removed" | 65 | +VeloRetinaClusterTrackingSIMDFaster INFO Number of counters : 2 + | Counter | + | "Nb of Produced Clusters" | 935 | 1624362 | 1737.3 | + | "Nb of Produced Tracks" | 935 | 205387 | 219.67 | +TrackBeamLineVertexFinderSoA INFO Number of counters : 1 + | Counter | + | "Nb PVs" | 935 | 4375 | 4.6791 | +PrStorePrUTHits INFO Number of counters : 1 + | Counter | + | "#banks" | 935 | 168300 | 180.00 | +PrVeloUT INFO Number of counters : 2 + | Counter | + | "#seeds" | 935 | 127462 | 136.32 | + | "#tracks" | 935 | 32674 | 34.945 | +SciFiTrackForwarding INFO Number of counters : 20 + | Counter | + | "1- Second loops" | 15622 | + | "2- X doublets in S3" | 108225 | + | "2b- X doublets in S2, 2nd loop" | 49604 | + | "3- X doublets in S3 and S2" | 30022 | + | "3b- X doublets in S3 and S2, 2nd loop" | 9366 | + | "4- X doublets in S3, S2 and S1" | 21784 | + | "4b- X doublets in S3, S2 and S1, 2nd loop" | 5778 | + | "5- Candidates before the quality cut" | 20542 | + | "5b- Candidates before the quality cut, 2nd loop| 5560 | + | "6- Candidates after the quality cut" | 17386 | + | "6b- Candidates after the quality cut, 2nd loop"| 4411 | + | "7- Candidates" | 21370 | + | "Accepted input tracks" | 48296 | + | "Created long tracks" | 935 | 21370 | 22.856 | + | "Search S1" | 36190 | + | "Search S1UV" | 24913 | + | "Search S2" | 65342 | + | "Search S2 UV" | 23718 | + | "Search S3" | 616361 | + | "Search S3UV" | 108225 | +VeloKalman SUCCESS Number of counters : 1 + | Counter | # | sum | mean/eff^* | rms/err^* | min | max | + | "Nb of Produced Tracks" | 935 | 21370 | 22.856 | +MuonIDHlt1AlgPr INFO Number of counters : 5 + | Counter | + | "nGoodOffline" | 21370 | + | "nInAcceptance" | 19349 | + | "nIsMuon" | 1341 | + | "nIsMuonTight" | 680 | + | "nMomentumCut" | 20923 | -- GitLab From b52d72059b352c68502d3c6592683d227537543d Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 11 May 2020 13:57:12 +0200 Subject: [PATCH 150/199] remove json file location from make_allen_output parameters --- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index c9d7e902a4d..960d1827d9e 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -38,9 +38,8 @@ def make_allen_output(odin_location=make_odin, return RunAllen( AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), ODINLocation=odin_location(), - FilterHLT1=filter_hlt1, ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", - JSON="${ALLEN_PROJECT_ROOT}/configuration/constants/default.json" + FilterHLT1=filter_hlt1 ).AllenOutput -- GitLab From 43ae06918f4a2e560c7bb4026cc09eac2c19ed80 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 12 May 2020 10:56:35 +0200 Subject: [PATCH 151/199] call Allen as trigger --- Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py | 39 +++++++++++++++++++ Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py | 27 +++++++++++++ .../python/Hlt1Conf/lines/luminosity.py | 14 +++++++ Hlt/Hlt1Conf/python/Hlt1Conf/settings.py | 7 +++- .../hlt1_reco_allen_track_reconstruction.py | 5 ++- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 10 +++-- 6 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py create mode 100644 Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py diff --git a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py new file mode 100644 index 00000000000..b1ce5004505 --- /dev/null +++ b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py @@ -0,0 +1,39 @@ +############################################################################### +# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +import os, json + +from Moore import options, run_moore +from Hlt1Conf.settings import allen_lines + +from Configurables import ApplicationMgr +from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable +from Configurables import DumpMuonGeometry, DumpVPGeometry +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import RunAllen, AllenUpdater +from Configurables import HltANNSvc + +options.scheduler_legacy_mode = False +run_moore(options, allen_lines) + +producers = [ + p(DumpToFile=False) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) +] + +# Add the services that will produce the non-event-data +ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), +] + producers + + + diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py new file mode 100644 index 00000000000..f5f3936c653 --- /dev/null +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py @@ -0,0 +1,27 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore.config import HltLine + +from RecoConf.hlt1_allen import make_allen_dec_reports + + +def allen_line( + name='Hlt1Allen', + prescale=1): + + allen = make_allen_dec_reports(filterHLT1=True) + + return HltLine( + name=name, + algs=[allen], + prescale=prescale) + + diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index db67a9e1c1c..e402a68e55a 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -57,3 +57,17 @@ def luminosity_line(name="Hlt1LuminosityLine", prescale=1): InputSummaries=[velo_summary, pv_summary]) return HltLine(name=name, algs=[lumi, merged_summary], prescale=prescale) + +from RecoConf.hlt1_allen import make_allen_dec_reports + +def allen_line( + name='Hlt1Allen', + prescale=1): + + allen = make_allen_dec_reports(filterHLT1=True) + + return HltLine( + name=name, + algs=[allen], + prescale=prescale) + diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py b/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py index 5367922e3f7..564962d7449 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py @@ -21,8 +21,9 @@ from Hlt1Conf.lines.minimum_bias import ( low_multiplicity_velo_line, no_bias_line, ) -from Hlt1Conf.lines.luminosity import luminosity_line +from Hlt1Conf.lines.luminosity import luminosity_line, allen_line +#from HLT1Conf.lines.allen import allen_line def track_mva_lines(): return [ @@ -83,3 +84,7 @@ def comparison_lines(): one_track_muon_highpt_line(), #gec_passthrough_line() ] + +def allen_lines(): + return [allen_line()] + diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index 462085b7930..8c602eeedd8 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -16,8 +16,8 @@ from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers from Configurables import ApplicationMgr from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks, AllenVeloToV2Tracks, AllenUTToV2Tracks +from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables +from Configurables import RunAllen, AllenUpdater dumpBinaries = False outputDir = "dump/" @@ -61,3 +61,4 @@ producers = [ ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers + diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 960d1827d9e..a4da62814a2 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -98,10 +98,14 @@ def make_allen_pvs(): return AllenPVsToRecVertexV2(AllenOutput=allen_output).OutputPVs -def make_allen_dec_reports(): - allen_output = make_allen_output() +def make_allen_dec_reports(filterHLT1=False): + allen_output = make_allen_output(filter_hlt1=filterHLT1) allen_dec_reports_raw = AllenDecReportsToTES( AllenOutput=allen_output).OutputDecReports + return allen_dec_reports_raw + +def decode_allen_dec_reports(): + allen_dec_reports_raw = make_allen_dec_reports() return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, - SourceID=1).OutputHltDecReportsLocation + SourceID=1).OutputHltDecReportsLocation -- GitLab From 62a105829f78b7cf6892415f395d7ff716457815 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 12 May 2020 13:38:24 +0200 Subject: [PATCH 152/199] add run_allen and run_allen_reconstruction to config, where ApplicationMgr and Hlt1ANN are configured --- Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py | 25 +---- .../python/Hlt1Conf/lines/luminosity.py | 4 +- Hlt/Hlt1Conf/tests/options/test_decreports.py | 2 +- Hlt/Moore/python/Moore/__init__.py | 2 +- Hlt/Moore/python/Moore/config.py | 97 ++++++++++++++++++- .../options/hlt1_reco_allen_IPresolution.py | 22 +---- .../hlt1_reco_allen_muonid_efficiency.py | 38 +------- .../options/hlt1_reco_allen_pvchecker.py | 24 +---- .../hlt1_reco_allen_track_reconstruction.py | 23 +---- .../hlt1_reco_allen_trackresolution.py | 21 +--- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 2 + 11 files changed, 116 insertions(+), 144 deletions(-) diff --git a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py index b1ce5004505..dada8675c19 100644 --- a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py +++ b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py @@ -10,30 +10,15 @@ ############################################################################### import os, json -from Moore import options, run_moore +from Moore import options, run_allen from Hlt1Conf.settings import allen_lines -from Configurables import ApplicationMgr -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import RunAllen, AllenUpdater -from Configurables import HltANNSvc -options.scheduler_legacy_mode = False -run_moore(options, allen_lines) +from Configurables import RunAllen -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] +options.scheduler_legacy_mode = False +run_allen(options, allen_lines) -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers - + diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index e402a68e55a..012cd24e52f 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -58,13 +58,13 @@ def luminosity_line(name="Hlt1LuminosityLine", prescale=1): return HltLine(name=name, algs=[lumi, merged_summary], prescale=prescale) -from RecoConf.hlt1_allen import make_allen_dec_reports +from RecoConf.hlt1_allen import make_allen_dec_reports, decode_allen_dec_reports def allen_line( name='Hlt1Allen', prescale=1): - allen = make_allen_dec_reports(filterHLT1=True) + allen = decode_allen_dec_reports() return HltLine( name=name, diff --git a/Hlt/Hlt1Conf/tests/options/test_decreports.py b/Hlt/Hlt1Conf/tests/options/test_decreports.py index 323f3efb88a..fa8883e4376 100644 --- a/Hlt/Hlt1Conf/tests/options/test_decreports.py +++ b/Hlt/Hlt1Conf/tests/options/test_decreports.py @@ -26,7 +26,7 @@ from Configurables import ( IODataManager, LHCbApp, ) -from DAQSys.Decoders import DecoderDB +from DAQSys.Decoders import DecoderDB from GaudiConf import IOHelper import GaudiPython diff --git a/Hlt/Moore/python/Moore/__init__.py b/Hlt/Moore/python/Moore/__init__.py index 7d6c6220b3e..a04131838cc 100644 --- a/Hlt/Moore/python/Moore/__init__.py +++ b/Hlt/Moore/python/Moore/__init__.py @@ -12,4 +12,4 @@ """ from .config import (options, run_moore, run_reconstruction, - moore_control_flow) # noqa + moore_control_flow, run_allen, run_allen_reconstruction) # noqa diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index a45613a638f..1d14ea7aacd 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -208,7 +208,7 @@ def report_writers_node(lines, line.decision_name: n for n, line in enumerate(lines, 1) }) - + lines_with_output = [l for l in lines if l.produces_output()] lumi_lines = [ l for l in lines_with_output @@ -303,7 +303,7 @@ def moore_control_flow(options, lines): combineLogic=NodeLogic.LAZY_AND, children=[dec] + writers, forceOrder=True) - + def run_moore(options, make_lines, public_tools=[]): """Configure Moore's entire control and data flow. @@ -318,14 +318,101 @@ def run_moore(options, make_lines, public_tools=[]): public_tools (list): list of public `Tool` instances to configure """ - + config = configure_input(options) lines = make_lines() top_cf_node = moore_control_flow(options, lines) config.update(configure(options, top_cf_node, public_tools=public_tools)) # TODO pass config to gaudi explicitly when that is supported return config + +def setup_allen_non_event_data_service(dump_binaries=False): + """Setup Allen non-event data + + An ExtSvc is added to the ApplicationMgr to provide the Allen non-event data (geometries etc.) + """ + from Configurables import ApplicationMgr + from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable + from Configurables import DumpMuonGeometry, DumpVPGeometry + from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables + from Configurables import AllenUpdater + producers = [ + p(DumpToFile=dump_binaries) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, + DumpMuonTable, DumpMagneticField, DumpBeamline, + DumpUTLookupTables) + ] + ApplicationMgr().ExtSvc += [ + AllenUpdater(OutputLevel=2), + ] + producers + + +def setup_allen_Hlt1ANN(): + """Configure HltANN service from Allen configuration json file + + """ + import os, json + Hlt1SelectionIDs = {} + with open(os.path.expandvars( + "$ALLEN_INSTALL_DIR/constants/Sequence.json")) as config_file: + config = (json.load(config_file)) + index = 0 + for line in config["configured_lines"]: + line_name = "Hlt1" + str(line) + "Decision" + Hlt1SelectionIDs[line_name] = index + index += 1 + + print Hlt1SelectionIDs + + hlt_ann_svc = setup_component( + "HltANNSvc", + Hlt1SelectionID=Hlt1SelectionIDs) + + +def run_allen(options, make_lines): + """Configure Allen within Mooore. + + Convenience function that sets up an Allen node and sets up services + + Args: + options (ApplicationOptions): holder of application options + make_lines: function returning a list of `HltLine` objects + + """ + + setup_allen_non_event_data_service() + + setup_allen_Hlt1ANN() + + config = configure_input(options) + lines = make_lines() + + options.finalize() + + top_cf_node = CompositeNode( + 'allen', + combineLogic=NodeLogic.NONLAZY_OR, + children=[line.node for line in lines], + forceOrder=False) + + config.update(configure(options, top_cf_node)) + # TODO pass config to gaudi explicitly when that is supported + return config + +def run_allen_reconstruction(options, make_reconstruction, dumpBinaries=False, public_tools=[]): + """Configure the Allen reconstruction data flow + Convenience function that configures all services and creates a data flow. + + Args: + options (ApplicationOptions): holder of application options + make_reconstruction: function returning a single CompositeNode object + public_tools (list): list of public `Tool` instances to configure + + """ + + setup_allen_non_event_data_service(dump_binaries=dumpBinaries) + return run_reconstruction(options, make_reconstruction, public_tools=public_tools) def run_reconstruction(options, make_reconstruction, public_tools=[]): """Configure the reconstruction data flow with a simple control flow. @@ -338,14 +425,14 @@ def run_reconstruction(options, make_reconstruction, public_tools=[]): public_tools (list): list of public `Tool` instances to configure """ - + config = configure_input(options) reconstruction = make_reconstruction() config.update( configure(options, reconstruction.node, public_tools=public_tools)) # TODO pass config to gaudi explicitly when that is supported return config - + #: Regular expression (compiled) defining the valid line names HLT_LINE_NAME_PATTERN = re.compile(r'^Hlt[12][A-Za-z0-9_]+Line$') diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py index dd5082b9ef8..8b5841e422d 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py @@ -8,17 +8,12 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options, run_reconstruction +from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_VeloKalman_fitted_tracks +from RecoConf.hlt1_tracking import require_gec from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs from RecoConf.mc_checking import monitor_IPresolution -from Configurables import ApplicationMgr from Configurables import NTupleSvc -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import AllenUpdater def hlt1_reco_allen_IPresolution(): @@ -31,16 +26,5 @@ def hlt1_reco_allen_IPresolution(): options.histo_file = "Hlt1ForwardTracking_IPresolution_Allen.root" -run_reconstruction(options, hlt1_reco_allen_IPresolution) +run_allen_reconstruction(options, hlt1_reco_allen_IPresolution) -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py index 4893320ef90..6553218a8da 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py @@ -8,46 +8,14 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options, run_reconstruction +from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction -from PyConf.application import configure_input, configure -from PyConf.control_flow import CompositeNode, NodeLogic -from RecoConf.hlt1_tracking import (require_gec, make_hlt1_tracks, - make_VeloClusterTrackingSIMD_hits) +from RecoConf.hlt1_tracking import require_gec from RecoConf.mc_checking import monitor_tracking_efficiency, make_links_tracks_mcparticles, make_links_lhcbids_mcparticles_tracking_system from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask -from RecoConf.hlt1_muonid import make_fitted_tracks_with_muon_id -from Configurables import ApplicationMgr -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import RunAllen, AllenUpdater, AllenForwardToV2Tracks from RecoConf.hlt1_allen import (make_allen_forward_tracks, make_allen_forward_muon_tracks) -from Hlt1Conf.algorithms import Filter - -from Functors import ISMUON - -from PyConf.Algorithms import ( - LHCb__Converters__Track__v1__fromV2TrackV1Track as - trackV1FromV2TrackV1Track, - LHCb__Converters__Track__v2__fromPrFittedForwardTrackWithMuonID as - trackV2FromPrFittedForwardTrackWithMuonID) - -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers - - def hlt1_reco_allen_muonid_efficiency(): # get the fitted tracks with muon ID forward_muon_tracks = make_allen_forward_muon_tracks() @@ -89,4 +57,4 @@ def hlt1_reco_allen_muonid_efficiency(): options.histo_file = "PrChecker_MuonID.root" -run_reconstruction(options, hlt1_reco_allen_muonid_efficiency) +run_allen_reconstruction(options, hlt1_reco_allen_muonid_efficiency) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py index ce1bc77ceea..69aa6b21276 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py @@ -8,17 +8,11 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options, run_reconstruction +from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs from RecoConf.mc_checking import get_pv_checkers, get_track_checkers -from Configurables import ApplicationMgr -from Configurables import NTupleSvc -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import AllenUpdater def hlt1_reco_pvchecker(): @@ -33,22 +27,8 @@ def hlt1_reco_pvchecker(): return Reconstruction('PVperformance', data, [require_gec()]) -run_reconstruction(options, hlt1_reco_pvchecker) +run_allen_reconstruction(options, hlt1_reco_pvchecker) NTupleSvc().Output += [ "FILE1 DATAFILE='Hlt1_PVperformance.root' TYPE='ROOT' OPT='NEW'" ] -ApplicationMgr().ExtSvc += [NTupleSvc()] -ApplicationMgr().HistogramPersistency = "ROOT" - -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index 8c602eeedd8..8a9575fb8b3 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -8,16 +8,12 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options, run_reconstruction +from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers -from Configurables import ApplicationMgr -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import RunAllen, AllenUpdater +from Configurables import RunAllen dumpBinaries = False outputDir = "dump/" @@ -48,17 +44,4 @@ def hlt1_reco_allen_tracks(): return Reconstruction('allen_reco', data, [require_gec()]) -run_reconstruction(options, hlt1_reco_allen_tracks) - -producers = [ - p(DumpToFile=dumpBinaries) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers - +run_allen_reconstruction(options, hlt1_reco_allen_tracks) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py index d9c02262ed9..46b66781294 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_trackresolution.py @@ -8,16 +8,11 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options, run_reconstruction +from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec from RecoConf.hlt1_allen import make_allen_tracks from RecoConf.mc_checking import monitor_track_resolution -from Configurables import ApplicationMgr -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import AllenUpdater from PyConf.application import make_data_with_FetchDataFromFile @@ -33,16 +28,4 @@ def hlt1_reco_allen_trackresolution(): options.histo_file = "Hlt1ForwardTrackingResolutionAllen.root" -run_reconstruction(options, hlt1_reco_allen_trackresolution) - -producers = [ - p(DumpToFile=False) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers +run_allen_reconstruction(options, hlt1_reco_allen_trackresolution) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index a4da62814a2..2f51282b6b1 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -109,3 +109,5 @@ def decode_allen_dec_reports(): return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation + + -- GitLab From d66a8a686bd204135bd48942f877bba350eeb1f1 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 13 May 2020 12:53:54 +0200 Subject: [PATCH 153/199] write Allen DecReports to MDF file --- .../python/Hlt1Conf/lines/luminosity.py | 4 +- .../tests/options/allen_hlt1_mdf_output.py | 16 ++++++++ .../persistency.qms/allen_mdf_write.qmt | 29 ++++++++++++++ Hlt/Moore/python/Moore/config.py | 40 ++++++++++++++----- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 2 - 5 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py create mode 100644 Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index 012cd24e52f..a76252a462d 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -64,8 +64,8 @@ def allen_line( name='Hlt1Allen', prescale=1): - allen = decode_allen_dec_reports() - + allen = make_allen_dec_reports() + return HltLine( name=name, algs=[allen], diff --git a/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py b/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py new file mode 100644 index 00000000000..0a3fa274de1 --- /dev/null +++ b/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py @@ -0,0 +1,16 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +"""Write an HLT1-filtered MDF file.""" +from Moore import options + +options.output_file = 'test_allen_hlt1_persistence_mdf_write.mdf' +options.output_type = 'MDF' + diff --git a/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt new file mode 100644 index 00000000000..bdc38125521 --- /dev/null +++ b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt @@ -0,0 +1,29 @@ + + + + +gaudirun.py + + $MOOREROOT/tests/options/default_input_and_conds_hlt1.py + $HLT1CONFROOT/tests/options/allen_hlt1_mdf_output.py + $HLT1CONFROOT/options/allen_hlt1_pp_default.py + --output=allen_mdf_write.opts.py + --all-opts + +true + + + + + diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 1d14ea7aacd..86fc2121195 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -192,12 +192,12 @@ def report_writers_node(lines, erw = ExecutionReportsWriter( Persist=[line.name for line in lines], ANNSvcKey="Hlt1SelectionID", - ) + ) drw = HltDecReportsWriter( InputHltDecReportsLocation=erw.DecReportsLocation, outputs=dict( OutputRawEventLocation=force_location(reports_raw_event.location)), - ) + ) algs.extend([erw, drw]) locations_to_persist.append(drw.OutputRawEventLocation) @@ -269,7 +269,7 @@ def report_writers_node(lines, # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) - + return node, locations_to_persist @@ -346,9 +346,8 @@ def setup_allen_non_event_data_service(dump_binaries=False): AllenUpdater(OutputLevel=2), ] + producers - -def setup_allen_Hlt1ANN(): - """Configure HltANN service from Allen configuration json file +def get_allen_hlt1_lines(): + """Read Allen HLT1 lines from json configuration file """ import os, json @@ -361,13 +360,20 @@ def setup_allen_Hlt1ANN(): line_name = "Hlt1" + str(line) + "Decision" Hlt1SelectionIDs[line_name] = index index += 1 - print Hlt1SelectionIDs + + return Hlt1SelectionIDs + +def setup_allen_Hlt1ANN(): + """Configure HltANN service for Allen + """ + Hlt1SelectionIDs = get_allen_hlt1_lines() hlt_ann_svc = setup_component( "HltANNSvc", Hlt1SelectionID=Hlt1SelectionIDs) + return Hlt1SelectionIDs def run_allen(options, make_lines): """Configure Allen within Mooore. @@ -382,19 +388,33 @@ def run_allen(options, make_lines): setup_allen_non_event_data_service() - setup_allen_Hlt1ANN() + Hlt1SelectionIDs = setup_allen_Hlt1ANN() config = configure_input(options) lines = make_lines() + from RecoConf.hlt1_allen import make_allen_dec_reports + locations_to_persist = [make_allen_dec_reports()] + # Transform to a list of unique str + locations_to_persist = list( + set(map(_format_location, locations_to_persist))) + writers = [] + writers.extend(output_writers(options, locations_to_persist)) + options.finalize() - top_cf_node = CompositeNode( - 'allen', + dec = CompositeNode( + 'hlt_decision', combineLogic=NodeLogic.NONLAZY_OR, children=[line.node for line in lines], forceOrder=False) + top_cf_node = CompositeNode( + 'allen', + combineLogic=NodeLogic.NONLAZY_OR, + children = [dec] + writers, + forceOrder=True) + config.update(configure(options, top_cf_node)) # TODO pass config to gaudi explicitly when that is supported return config diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 2f51282b6b1..a4da62814a2 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -109,5 +109,3 @@ def decode_allen_dec_reports(): return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation - - -- GitLab From cb8f8ab79c2924e3ac7e6bac3ed7852a77fc51b3 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 13 May 2020 13:04:01 +0200 Subject: [PATCH 154/199] cleanup --- .../dump_binary_input_for_standalone_Allen.py | 21 +------- .../hlt1_reco_allen_track_reconstruction.py | 2 +- Hlt/RecoConf/python/RecoConf/standalone.py | 48 ------------------- 3 files changed, 3 insertions(+), 68 deletions(-) diff --git a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py index 1d0ddeee1f0..7182200855a 100644 --- a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py +++ b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py @@ -8,15 +8,10 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -from Moore import options, run_reconstruction +from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_allen import make_dumped_raw_banks from RecoConf.mc_checking import tracker_dumper, pv_dumper -from Configurables import ApplicationMgr -from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable -from Configurables import DumpMuonGeometry, DumpVPGeometry -from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables -from Configurables import AllenUpdater outputDir = "dump/" @@ -37,16 +32,4 @@ def dump_allen_binary_input(): return Reconstruction('allen_dump', data) -run_reconstruction(options, dump_allen_binary_input) - -producers = [ - p(DumpToFile=True) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) -] - -# Add the services that will produce the non-event-data -ApplicationMgr().ExtSvc += [ - AllenUpdater(OutputLevel=2), -] + producers +run_allen_reconstruction(options, dump_allen_binary_input, True) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py index 8a9575fb8b3..4e2a9a44111 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_track_reconstruction.py @@ -44,4 +44,4 @@ def hlt1_reco_allen_tracks(): return Reconstruction('allen_reco', data, [require_gec()]) -run_allen_reconstruction(options, hlt1_reco_allen_tracks) +run_allen_reconstruction(options, hlt1_reco_allen_tracks, dumpBinaries) diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index b07dd9d23f6..831605641d3 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -74,54 +74,6 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) - -@configurable -def standalone_hlt1_reco_allen(do_mc_checking=False, dump_binaries=False): - """ Run the Hlt1 reconstruction, i.e. tracking and muon id, MC checking optional with the Allen sequence - Args: - do_mc_checking (bool): Enable MC checking. - Returns: - Reconstruction: Data and control flow of Hlt1 reconstruction. - - """ - # Allen hlt1 - allen_tracks = make_allen_tracks(dump_to_file=dump_binaries) - - if do_mc_checking: - types_and_locations_for_checkers = { - "Velo": allen_tracks["Velo"], - "Upstream": allen_tracks["Upstream"], - "Forward": allen_tracks["Forward"], - } - data = get_track_checkers(types_and_locations_for_checkers) - - if dump_binaries: - data.append( - tracker_dumper(dump_to_root=False, dump_to_binary=True)) - data.append(pv_dumper()) - - return Reconstruction('hlt1_reco', data, reco_prefilters()) - - -def standalone_hlt1_allen(): - """ Run the Allen HLT1 sequence - Returns: - Reconstruction: Data and control flow of Hlt1 reconstruction. - - """ - # Allen hlt1 - allen_dec_reports_raw = make_allen_dec_reports() - allen_dec_reports = HltDecReportsDecoder( - RawEventLocations=allen_dec_reports_raw) - data = [allen_dec_reports] - - return CompositeNode( - 'allen', - combineLogic=NodeLogic.LAZY_AND, - children=data + reco_prefilters(), - forceOrder=True) - - def standalone_hlt1_reco_velo_only(): """ Run the default Hlt1 Velo reconstruction Returns: -- GitLab From 029f91a6ed20ae54329c2914570b7225e8dca0cd Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 13 May 2020 11:04:58 +0000 Subject: [PATCH 155/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8359677 --- Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py | 5 -- Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py | 15 +--- .../python/Hlt1Conf/lines/luminosity.py | 14 ++- Hlt/Hlt1Conf/python/Hlt1Conf/settings.py | 3 +- .../tests/options/allen_hlt1_mdf_output.py | 1 - Hlt/Hlt1Conf/tests/options/test_decreports.py | 2 +- Hlt/Moore/python/Moore/__init__.py | 3 +- Hlt/Moore/python/Moore/config.py | 86 +++++++++++-------- .../options/hlt1_reco_allen_IPresolution.py | 1 - .../hlt1_reco_allen_muonid_efficiency.py | 1 + Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 6 +- Hlt/RecoConf/python/RecoConf/standalone.py | 1 + 12 files changed, 67 insertions(+), 71 deletions(-) diff --git a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py index dada8675c19..07051514a87 100644 --- a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py +++ b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py @@ -13,12 +13,7 @@ import os, json from Moore import options, run_allen from Hlt1Conf.settings import allen_lines - from Configurables import RunAllen options.scheduler_legacy_mode = False run_allen(options, allen_lines) - - - - diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py index f5f3936c653..f4d36d4247b 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py @@ -10,18 +10,11 @@ ############################################################################### from Moore.config import HltLine -from RecoConf.hlt1_allen import make_allen_dec_reports +from RecoConf.hlt1_allen import make_allen_dec_reports -def allen_line( - name='Hlt1Allen', - prescale=1): +def allen_line(name='Hlt1Allen', prescale=1): allen = make_allen_dec_reports(filterHLT1=True) - - return HltLine( - name=name, - algs=[allen], - prescale=prescale) - - + + return HltLine(name=name, algs=[allen], prescale=prescale) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index a76252a462d..3ac45f8fe35 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -58,16 +58,12 @@ def luminosity_line(name="Hlt1LuminosityLine", prescale=1): return HltLine(name=name, algs=[lumi, merged_summary], prescale=prescale) + from RecoConf.hlt1_allen import make_allen_dec_reports, decode_allen_dec_reports -def allen_line( - name='Hlt1Allen', - prescale=1): + +def allen_line(name='Hlt1Allen', prescale=1): allen = make_allen_dec_reports() - - return HltLine( - name=name, - algs=[allen], - prescale=prescale) - + + return HltLine(name=name, algs=[allen], prescale=prescale) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py b/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py index 564962d7449..f976a00f8fe 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py @@ -25,6 +25,7 @@ from Hlt1Conf.lines.luminosity import luminosity_line, allen_line #from HLT1Conf.lines.allen import allen_line + def track_mva_lines(): return [ one_track_mva_line(), @@ -85,6 +86,6 @@ def comparison_lines(): #gec_passthrough_line() ] + def allen_lines(): return [allen_line()] - diff --git a/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py b/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py index 0a3fa274de1..b6d0fd56e7d 100644 --- a/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py +++ b/Hlt/Hlt1Conf/tests/options/allen_hlt1_mdf_output.py @@ -13,4 +13,3 @@ from Moore import options options.output_file = 'test_allen_hlt1_persistence_mdf_write.mdf' options.output_type = 'MDF' - diff --git a/Hlt/Hlt1Conf/tests/options/test_decreports.py b/Hlt/Hlt1Conf/tests/options/test_decreports.py index fa8883e4376..323f3efb88a 100644 --- a/Hlt/Hlt1Conf/tests/options/test_decreports.py +++ b/Hlt/Hlt1Conf/tests/options/test_decreports.py @@ -26,7 +26,7 @@ from Configurables import ( IODataManager, LHCbApp, ) -from DAQSys.Decoders import DecoderDB +from DAQSys.Decoders import DecoderDB from GaudiConf import IOHelper import GaudiPython diff --git a/Hlt/Moore/python/Moore/__init__.py b/Hlt/Moore/python/Moore/__init__.py index a04131838cc..cf5f1bff822 100644 --- a/Hlt/Moore/python/Moore/__init__.py +++ b/Hlt/Moore/python/Moore/__init__.py @@ -12,4 +12,5 @@ """ from .config import (options, run_moore, run_reconstruction, - moore_control_flow, run_allen, run_allen_reconstruction) # noqa + moore_control_flow, run_allen, + run_allen_reconstruction) # noqa diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 86fc2121195..683c3af10e3 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -192,12 +192,12 @@ def report_writers_node(lines, erw = ExecutionReportsWriter( Persist=[line.name for line in lines], ANNSvcKey="Hlt1SelectionID", - ) + ) drw = HltDecReportsWriter( InputHltDecReportsLocation=erw.DecReportsLocation, outputs=dict( OutputRawEventLocation=force_location(reports_raw_event.location)), - ) + ) algs.extend([erw, drw]) locations_to_persist.append(drw.OutputRawEventLocation) @@ -208,7 +208,7 @@ def report_writers_node(lines, line.decision_name: n for n, line in enumerate(lines, 1) }) - + lines_with_output = [l for l in lines if l.produces_output()] lumi_lines = [ l for l in lines_with_output @@ -269,7 +269,7 @@ def report_writers_node(lines, # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) - + return node, locations_to_persist @@ -303,7 +303,7 @@ def moore_control_flow(options, lines): combineLogic=NodeLogic.LAZY_AND, children=[dec] + writers, forceOrder=True) - + def run_moore(options, make_lines, public_tools=[]): """Configure Moore's entire control and data flow. @@ -318,42 +318,45 @@ def run_moore(options, make_lines, public_tools=[]): public_tools (list): list of public `Tool` instances to configure """ - + config = configure_input(options) lines = make_lines() top_cf_node = moore_control_flow(options, lines) config.update(configure(options, top_cf_node, public_tools=public_tools)) # TODO pass config to gaudi explicitly when that is supported return config - + + def setup_allen_non_event_data_service(dump_binaries=False): """Setup Allen non-event data - An ExtSvc is added to the ApplicationMgr to provide the Allen non-event data (geometries etc.) - """ + An ExtSvc is added to the ApplicationMgr to provide the Allen non-event data (geometries etc.) + """ from Configurables import ApplicationMgr from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable from Configurables import DumpMuonGeometry, DumpVPGeometry - from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables + from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables from Configurables import AllenUpdater producers = [ p(DumpToFile=dump_binaries) - for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, DumpMuonGeometry, - DumpMuonTable, DumpMagneticField, DumpBeamline, - DumpUTLookupTables) + for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, + DumpMuonGeometry, DumpMuonTable, DumpMagneticField, + DumpBeamline, DumpUTLookupTables) ] ApplicationMgr().ExtSvc += [ AllenUpdater(OutputLevel=2), ] + producers - + + def get_allen_hlt1_lines(): - """Read Allen HLT1 lines from json configuration file + """Read Allen HLT1 lines from json configuration file - """ + """ import os, json Hlt1SelectionIDs = {} - with open(os.path.expandvars( - "$ALLEN_INSTALL_DIR/constants/Sequence.json")) as config_file: + with open( + os.path.expandvars( + "$ALLEN_INSTALL_DIR/constants/Sequence.json")) as config_file: config = (json.load(config_file)) index = 0 for line in config["configured_lines"]: @@ -361,35 +364,36 @@ def get_allen_hlt1_lines(): Hlt1SelectionIDs[line_name] = index index += 1 print Hlt1SelectionIDs - + return Hlt1SelectionIDs -def setup_allen_Hlt1ANN(): - """Configure HltANN service for Allen - """ +def setup_allen_Hlt1ANN(): + """Configure HltANN service for Allen + + """ Hlt1SelectionIDs = get_allen_hlt1_lines() hlt_ann_svc = setup_component( - "HltANNSvc", - Hlt1SelectionID=Hlt1SelectionIDs) - + "HltANNSvc", Hlt1SelectionID=Hlt1SelectionIDs) + return Hlt1SelectionIDs + def run_allen(options, make_lines): """Configure Allen within Mooore. Convenience function that sets up an Allen node and sets up services - + Args: options (ApplicationOptions): holder of application options make_lines: function returning a list of `HltLine` objects """ - + setup_allen_non_event_data_service() - + Hlt1SelectionIDs = setup_allen_Hlt1ANN() - + config = configure_input(options) lines = make_lines() @@ -400,9 +404,9 @@ def run_allen(options, make_lines): set(map(_format_location, locations_to_persist))) writers = [] writers.extend(output_writers(options, locations_to_persist)) - + options.finalize() - + dec = CompositeNode( 'hlt_decision', combineLogic=NodeLogic.NONLAZY_OR, @@ -412,14 +416,18 @@ def run_allen(options, make_lines): top_cf_node = CompositeNode( 'allen', combineLogic=NodeLogic.NONLAZY_OR, - children = [dec] + writers, + children=[dec] + writers, forceOrder=True) config.update(configure(options, top_cf_node)) # TODO pass config to gaudi explicitly when that is supported return config - -def run_allen_reconstruction(options, make_reconstruction, dumpBinaries=False, public_tools=[]): + + +def run_allen_reconstruction(options, + make_reconstruction, + dumpBinaries=False, + public_tools=[]): """Configure the Allen reconstruction data flow Convenience function that configures all services and creates a data flow. @@ -430,9 +438,11 @@ def run_allen_reconstruction(options, make_reconstruction, dumpBinaries=False, p public_tools (list): list of public `Tool` instances to configure """ - + setup_allen_non_event_data_service(dump_binaries=dumpBinaries) - return run_reconstruction(options, make_reconstruction, public_tools=public_tools) + return run_reconstruction( + options, make_reconstruction, public_tools=public_tools) + def run_reconstruction(options, make_reconstruction, public_tools=[]): """Configure the reconstruction data flow with a simple control flow. @@ -445,14 +455,14 @@ def run_reconstruction(options, make_reconstruction, public_tools=[]): public_tools (list): list of public `Tool` instances to configure """ - + config = configure_input(options) reconstruction = make_reconstruction() config.update( configure(options, reconstruction.node, public_tools=public_tools)) # TODO pass config to gaudi explicitly when that is supported return config - + #: Regular expression (compiled) defining the valid line names HLT_LINE_NAME_PATTERN = re.compile(r'^Hlt[12][A-Za-z0-9_]+Line$') diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py index 8b5841e422d..3eccd94a1e6 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py @@ -27,4 +27,3 @@ def hlt1_reco_allen_IPresolution(): options.histo_file = "Hlt1ForwardTracking_IPresolution_Allen.root" run_allen_reconstruction(options, hlt1_reco_allen_IPresolution) - diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py index 6553218a8da..58e191415c2 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py @@ -16,6 +16,7 @@ from RecoConf.mc_checking_categories import get_mc_categories, get_hit_type_mask from RecoConf.hlt1_allen import (make_allen_forward_tracks, make_allen_forward_muon_tracks) + def hlt1_reco_allen_muonid_efficiency(): # get the fitted tracks with muon ID forward_muon_tracks = make_allen_forward_muon_tracks() diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index a4da62814a2..43bc08747a9 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -39,8 +39,7 @@ def make_allen_output(odin_location=make_odin, AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), ODINLocation=odin_location(), ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", - FilterHLT1=filter_hlt1 - ).AllenOutput + FilterHLT1=filter_hlt1).AllenOutput def make_allen_velo_tracks(): @@ -104,8 +103,9 @@ def make_allen_dec_reports(filterHLT1=False): AllenOutput=allen_output).OutputDecReports return allen_dec_reports_raw + def decode_allen_dec_reports(): allen_dec_reports_raw = make_allen_dec_reports() return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, - SourceID=1).OutputHltDecReportsLocation + SourceID=1).OutputHltDecReportsLocation diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 831605641d3..882709c61c7 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -74,6 +74,7 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) + def standalone_hlt1_reco_velo_only(): """ Run the default Hlt1 Velo reconstruction Returns: -- GitLab From 9af82647a8cd7163cdfda7c3086adc54a069dfbf Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 15 May 2020 17:51:55 +0200 Subject: [PATCH 156/199] Give LHCb::HltDecReports as input to HltDecReportsWriter --- Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py | 2 - Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py | 2 +- .../python/Hlt1Conf/lines/luminosity.py | 2 +- Hlt/Moore/python/Moore/config.py | 67 ++++++++++++++----- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 16 ++++- 5 files changed, 66 insertions(+), 23 deletions(-) diff --git a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py index 07051514a87..13ab4148750 100644 --- a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py +++ b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py @@ -13,7 +13,5 @@ import os, json from Moore import options, run_allen from Hlt1Conf.settings import allen_lines -from Configurables import RunAllen - options.scheduler_legacy_mode = False run_allen(options, allen_lines) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py index f4d36d4247b..0289752f1f1 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/allen.py @@ -15,6 +15,6 @@ from RecoConf.hlt1_allen import make_allen_dec_reports def allen_line(name='Hlt1Allen', prescale=1): - allen = make_allen_dec_reports(filterHLT1=True) + allen = make_allen_dec_reports() return HltLine(name=name, algs=[allen], prescale=prescale) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index 3ac45f8fe35..2e9e17628fa 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -59,7 +59,7 @@ def luminosity_line(name="Hlt1LuminosityLine", prescale=1): return HltLine(name=name, algs=[lumi, merged_summary], prescale=prescale) -from RecoConf.hlt1_allen import make_allen_dec_reports, decode_allen_dec_reports +from RecoConf.hlt1_allen import make_allen_dec_reports def allen_line(name='Hlt1Allen', prescale=1): diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 683c3af10e3..7fbaf5c0564 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -174,7 +174,7 @@ def report_writers_node(lines, report_banks_to_write = ['HltDecReports', 'HltSelReports'] routing_bits_banks_to_write = ['HltRoutingBits'] lumi_banks_to_write = ['HltLumiSummary'] - reports_raw_event = default_raw_event(report_banks_to_write) + reports_raw_event = default_raw_event(report_banks_to_write) routing_bits_raw_event = default_raw_event(routing_bits_banks_to_write) lumi_raw_event = default_raw_event(lumi_banks_to_write) # TODO we probably shouldn't write in Trigger/RawEvent when @@ -200,7 +200,7 @@ def report_writers_node(lines, ) algs.extend([erw, drw]) locations_to_persist.append(drw.OutputRawEventLocation) - + hlt_ann_svc = setup_component( "HltANNSvc", # Zero is an invalid DecReport ID, so start from 1 @@ -265,7 +265,7 @@ def report_writers_node(lines, combineLogic=NodeLogic.NONLAZY_OR, children=algs, forceOrder=True) - + # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) @@ -366,8 +366,7 @@ def get_allen_hlt1_lines(): print Hlt1SelectionIDs return Hlt1SelectionIDs - - + def setup_allen_Hlt1ANN(): """Configure HltANN service for Allen @@ -397,27 +396,63 @@ def run_allen(options, make_lines): config = configure_input(options) lines = make_lines() + # Write DecReports raw banks from RecoConf.hlt1_allen import make_allen_dec_reports - locations_to_persist = [make_allen_dec_reports()] + allen_dec_reports = make_allen_dec_reports() + + # We will write the reports to raw banks at these locations + algs = [] + locations_to_persist = [] + report_banks_to_write = ['HltDecReports'] + #routing_bits_banks_to_write = ['HltRoutingBits'] + #lumi_banks_to_write = ['HltLumiSummary'] + reports_raw_event = default_raw_event(report_banks_to_write) + #routing_bits_raw_event = default_raw_event(routing_bits_banks_to_write) + #lumi_raw_event = default_raw_event(lumi_banks_to_write) + + # TODO we probably shouldn't write in Trigger/RawEvent when + # running on reconstructed data. Instead, we should create a + # RawEvent at DAQ/RawEvent, which would make HltDecReportsWriter + # happy, or make raw events/banks const and adapt everything. + kill_existing = True + if kill_existing: + all_banks_to_write = (report_banks_to_write) # + lumi_banks_to_write + routing_bits_banks_to_write) + algs.append( + bankKiller( + RawEventLocations=[reports_raw_event], + BankTypes=all_banks_to_write)) + + # erw = ExecutionReportsWriter( + # Persist=[line.name for line in lines], + # ANNSvcKey="Hlt1SelectionID", + # ) + drw = HltDecReportsWriter( + InputHltDecReportsLocation=allen_dec_reports, + outputs=dict( + OutputRawEventLocation=force_location(reports_raw_event.location)), + ) + algs.extend([drw]) + report_writers_node = CompositeNode( + 'report_writers', + combineLogic=NodeLogic.NONLAZY_OR, + children=algs, + forceOrder=True) + + locations_to_persist.append(drw.OutputRawEventLocation) + # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) - writers = [] + writers = [report_writers_node] writers.extend(output_writers(options, locations_to_persist)) - options.finalize() - - dec = CompositeNode( - 'hlt_decision', - combineLogic=NodeLogic.NONLAZY_OR, - children=[line.node for line in lines], - forceOrder=False) + options.finalize() top_cf_node = CompositeNode( 'allen', combineLogic=NodeLogic.NONLAZY_OR, - children=[dec] + writers, - forceOrder=True) + children=[make_allen_dec_reports()] + writers, + forceOrder=False) config.update(configure(options, top_cf_node)) # TODO pass config to gaudi explicitly when that is supported diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 43bc08747a9..93a05b376b6 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -40,7 +40,17 @@ def make_allen_output(odin_location=make_odin, ODINLocation=odin_location(), ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", FilterHLT1=filter_hlt1).AllenOutput - + +def make_allen_dec_reports(odin_location=make_odin, + dumped_raw_banks=make_dumped_raw_banks, + filter_hlt1=False, + dump_to_file=False): + return RunAllen( + AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), + ODINLocation=odin_location(), + ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", + FilterHLT1=filter_hlt1).DecReportsLocation + def make_allen_velo_tracks(): allen_output = make_allen_output() @@ -97,7 +107,7 @@ def make_allen_pvs(): return AllenPVsToRecVertexV2(AllenOutput=allen_output).OutputPVs -def make_allen_dec_reports(filterHLT1=False): +def make_allen_raw_dec_reports(filterHLT1=False): allen_output = make_allen_output(filter_hlt1=filterHLT1) allen_dec_reports_raw = AllenDecReportsToTES( AllenOutput=allen_output).OutputDecReports @@ -105,7 +115,7 @@ def make_allen_dec_reports(filterHLT1=False): def decode_allen_dec_reports(): - allen_dec_reports_raw = make_allen_dec_reports() + allen_dec_reports_raw = make_allen_raw_dec_reports() return HltDecReportsDecoder( RawEventLocations=allen_dec_reports_raw, SourceID=1).OutputHltDecReportsLocation -- GitLab From fcee1bdc7841fa8fc01e2f8a7377fb9310c39160 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 15 May 2020 15:54:21 +0000 Subject: [PATCH 157/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8398385 --- Hlt/Moore/python/Moore/config.py | 25 ++++++++++++---------- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 11 +++++----- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 7fbaf5c0564..6a63dc1f920 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -174,7 +174,7 @@ def report_writers_node(lines, report_banks_to_write = ['HltDecReports', 'HltSelReports'] routing_bits_banks_to_write = ['HltRoutingBits'] lumi_banks_to_write = ['HltLumiSummary'] - reports_raw_event = default_raw_event(report_banks_to_write) + reports_raw_event = default_raw_event(report_banks_to_write) routing_bits_raw_event = default_raw_event(routing_bits_banks_to_write) lumi_raw_event = default_raw_event(lumi_banks_to_write) # TODO we probably shouldn't write in Trigger/RawEvent when @@ -200,7 +200,7 @@ def report_writers_node(lines, ) algs.extend([erw, drw]) locations_to_persist.append(drw.OutputRawEventLocation) - + hlt_ann_svc = setup_component( "HltANNSvc", # Zero is an invalid DecReport ID, so start from 1 @@ -265,7 +265,7 @@ def report_writers_node(lines, combineLogic=NodeLogic.NONLAZY_OR, children=algs, forceOrder=True) - + # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) @@ -366,7 +366,8 @@ def get_allen_hlt1_lines(): print Hlt1SelectionIDs return Hlt1SelectionIDs - + + def setup_allen_Hlt1ANN(): """Configure HltANN service for Allen @@ -406,17 +407,19 @@ def run_allen(options, make_lines): report_banks_to_write = ['HltDecReports'] #routing_bits_banks_to_write = ['HltRoutingBits'] #lumi_banks_to_write = ['HltLumiSummary'] - reports_raw_event = default_raw_event(report_banks_to_write) + reports_raw_event = default_raw_event(report_banks_to_write) #routing_bits_raw_event = default_raw_event(routing_bits_banks_to_write) #lumi_raw_event = default_raw_event(lumi_banks_to_write) - + # TODO we probably shouldn't write in Trigger/RawEvent when # running on reconstructed data. Instead, we should create a # RawEvent at DAQ/RawEvent, which would make HltDecReportsWriter # happy, or make raw events/banks const and adapt everything. kill_existing = True if kill_existing: - all_banks_to_write = (report_banks_to_write) # + lumi_banks_to_write + routing_bits_banks_to_write) + all_banks_to_write = ( + report_banks_to_write + ) # + lumi_banks_to_write + routing_bits_banks_to_write) algs.append( bankKiller( RawEventLocations=[reports_raw_event], @@ -425,7 +428,7 @@ def run_allen(options, make_lines): # erw = ExecutionReportsWriter( # Persist=[line.name for line in lines], # ANNSvcKey="Hlt1SelectionID", - # ) + # ) drw = HltDecReportsWriter( InputHltDecReportsLocation=allen_dec_reports, outputs=dict( @@ -437,16 +440,16 @@ def run_allen(options, make_lines): combineLogic=NodeLogic.NONLAZY_OR, children=algs, forceOrder=True) - + locations_to_persist.append(drw.OutputRawEventLocation) - + # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) writers = [report_writers_node] writers.extend(output_writers(options, locations_to_persist)) - options.finalize() + options.finalize() top_cf_node = CompositeNode( 'allen', diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 93a05b376b6..497131f5401 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -40,17 +40,18 @@ def make_allen_output(odin_location=make_odin, ODINLocation=odin_location(), ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", FilterHLT1=filter_hlt1).AllenOutput - + + def make_allen_dec_reports(odin_location=make_odin, - dumped_raw_banks=make_dumped_raw_banks, - filter_hlt1=False, - dump_to_file=False): + dumped_raw_banks=make_dumped_raw_banks, + filter_hlt1=False, + dump_to_file=False): return RunAllen( AllenRawInput=dumped_raw_banks(dump_to_file=dump_to_file), ODINLocation=odin_location(), ParamDir="${ALLEN_PROJECT_ROOT}/input/detector_configuration/down/", FilterHLT1=filter_hlt1).DecReportsLocation - + def make_allen_velo_tracks(): allen_output = make_allen_output() -- GitLab From 21f72bf2bbd40859d1fd932393b91a8b2949f845 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 19 May 2020 09:36:51 +0200 Subject: [PATCH 158/199] fix typo in allen import --- Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py | 9 --------- Hlt/Hlt1Conf/python/Hlt1Conf/settings.py | 4 ++-- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index 2e9e17628fa..743b0e6ca7e 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -58,12 +58,3 @@ def luminosity_line(name="Hlt1LuminosityLine", prescale=1): return HltLine(name=name, algs=[lumi, merged_summary], prescale=prescale) - -from RecoConf.hlt1_allen import make_allen_dec_reports - - -def allen_line(name='Hlt1Allen', prescale=1): - - allen = make_allen_dec_reports() - - return HltLine(name=name, algs=[allen], prescale=prescale) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py b/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py index f976a00f8fe..f620aefcd77 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/settings.py @@ -21,9 +21,9 @@ from Hlt1Conf.lines.minimum_bias import ( low_multiplicity_velo_line, no_bias_line, ) -from Hlt1Conf.lines.luminosity import luminosity_line, allen_line +from Hlt1Conf.lines.luminosity import luminosity_line -#from HLT1Conf.lines.allen import allen_line +from Hlt1Conf.lines.allen import allen_line def track_mva_lines(): -- GitLab From 500735b02d3008400cffb48ee9013a0abdfbdf40 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Tue, 19 May 2020 18:41:40 +0200 Subject: [PATCH 159/199] towards an MDF DecReport reading test for Allen --- .../tests/options/test_allen_decreports.py | 118 ++++++++++++++++++ .../persistency.qms/mdf_read_decs_allen.qmt | 32 +++++ Hlt/Moore/python/Moore/config.py | 34 ++--- 3 files changed, 162 insertions(+), 22 deletions(-) create mode 100644 Hlt/Hlt1Conf/tests/options/test_allen_decreports.py create mode 100644 Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt diff --git a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py new file mode 100644 index 00000000000..31e76a83d32 --- /dev/null +++ b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py @@ -0,0 +1,118 @@ +############################################################################### +# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +"""Compare decisions from a log file to those stored in a MDF. + +Takes three outputs from a previously-ran job: the options dump, the log +file, and the MDF. The decisions printed by the control flow manager are +compared to those taken from the DecReports found in the MDF. Any difference +between the two is considered a failure. The options dump is used to +configure the HltANNSvc for the job ran by this script. +""" +from __future__ import print_function +import argparse + +from Configurables import ( + ApplicationMgr, + HistogramPersistencySvc, + HltANNSvc, + IODataManager, + LHCbApp, +) +from DAQSys.Decoders import DecoderDB +from GaudiConf import IOHelper +import GaudiPython + +from PyConf.utilities import read_options + +# Top-level control flow node +MOORE_KEY = "moore" + + +def get_counts_from_log(f): + """Return the decisions of each line as extracted from a log file.""" + counts = {} + with open(f) as f: + for line in filter(lambda l: "LAZY_AND:" in l, f): + columns = line.split() + hlt_line = columns[1] + count = int(columns[3].replace("Sum=", "")) + counts[hlt_line] = count + return counts + + +parser = argparse.ArgumentParser() +parser.add_argument("--input-mdf", help="Input MDF file") +args = parser.parse_args() + +# Configure basic application with inputs +LHCbApp(DataType="Upgrade") +IOHelper("MDF").inputFiles([args.input_mdf]) +# Disable warning about not being able to navigate ancestors +IODataManager(DisablePFNWarning=True) +# Disable warning about histogram saving not being required +HistogramPersistencySvc(OutputLevel=5) +# Decode Hlt DecReports +ApplicationMgr( + TopAlg=[DecoderDB["HltDecReportsDecoder/Hlt1DecReportsDecoder"].setup()]) + +# Get expected lines and HltANNSvc configuration from the previous job +from Moore.config import get_allen_hlt1_lines +Hlt1SelectionIDs = get_allen_hlt1_lines() +HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs + +# Set up counters for recording decisions from MDF +counts_from_mdf = {key: 0 for key in Hlt1SelectionIDs} +counts_from_mdf[MOORE_KEY] = 0 +# Extract counters from log file of the previous job +#counts_from_log = get_counts_from_log(args.input_log) + +gaudi = GaudiPython.AppMgr() +TES = gaudi.evtSvc() +gaudi.run(1) + +error = False +while TES["/Event"]: + decs = TES["/Event/Hlt1/DecReports"] + if not decs: + print("DecReports TES location not found") + error = True + break + + triggered = False + for key in counts_from_mdf.keys(): + if key == MOORE_KEY: + continue + counts_from_mdf[key] += int(decs.decReport(key).decision()) + if decs.decReport(key).decision(): + triggered = True + if triggered: + counts_from_mdf[MOORE_KEY] += 1 + + gaudi.run(1) + +for key in counts_from_mdf.keys(): + line_name = key[:-8] if key.endswith("Decision") else key + # if line_name not in counts_from_log.keys(): + # error = True + # print("Test ERROR: Line {} missing".format(line_name)) + # else: + # if counts_from_mdf[key] != counts_from_log[line_name]: + # error = True + # print("Test ERROR: Counts of {} wrong, log = {}, mdf = {}".format( + # key, counts_from_log[line_name], counts_from_mdf[key])) + # else: + # print("Counts of {}, log = {}, mdf = {}".format( + # key, counts_from_log[line_name], counts_from_mdf[key])) + + print("Counts of (), mdf = ()".format(key, counts_from_mdf[key])) + +if error: + exit("Test failed") # exit with a non-zero code diff --git a/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt new file mode 100644 index 00000000000..db9365ed34b --- /dev/null +++ b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt @@ -0,0 +1,32 @@ + + + + + + persistency.allen_mdf_writePASS + +python + + $HLT1CONFROOT/tests/options/test_allen_decreports.py + --input-mdf=test_allen_hlt1_persistence_mdf_write.mdf + +true + + +from Moore.qmtest.exclusions import preprocessor +countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, + stdout=preprocessor(stdout)) + + + diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 6a63dc1f920..2d613740b30 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -389,14 +389,11 @@ def run_allen(options, make_lines): make_lines: function returning a list of `HltLine` objects """ + config = configure_input(options) + options.finalize() setup_allen_non_event_data_service() - - Hlt1SelectionIDs = setup_allen_Hlt1ANN() - - config = configure_input(options) - lines = make_lines() - + # Write DecReports raw banks from RecoConf.hlt1_allen import make_allen_dec_reports allen_dec_reports = make_allen_dec_reports() @@ -405,11 +402,7 @@ def run_allen(options, make_lines): algs = [] locations_to_persist = [] report_banks_to_write = ['HltDecReports'] - #routing_bits_banks_to_write = ['HltRoutingBits'] - #lumi_banks_to_write = ['HltLumiSummary'] reports_raw_event = default_raw_event(report_banks_to_write) - #routing_bits_raw_event = default_raw_event(routing_bits_banks_to_write) - #lumi_raw_event = default_raw_event(lumi_banks_to_write) # TODO we probably shouldn't write in Trigger/RawEvent when # running on reconstructed data. Instead, we should create a @@ -417,40 +410,37 @@ def run_allen(options, make_lines): # happy, or make raw events/banks const and adapt everything. kill_existing = True if kill_existing: - all_banks_to_write = ( - report_banks_to_write - ) # + lumi_banks_to_write + routing_bits_banks_to_write) + all_banks_to_write = (report_banks_to_write) algs.append( bankKiller( RawEventLocations=[reports_raw_event], BankTypes=all_banks_to_write)) - # erw = ExecutionReportsWriter( - # Persist=[line.name for line in lines], - # ANNSvcKey="Hlt1SelectionID", - # ) drw = HltDecReportsWriter( InputHltDecReportsLocation=allen_dec_reports, outputs=dict( - OutputRawEventLocation=force_location(reports_raw_event.location)), + OutputRawEventLocation=force_location(reports_raw_event.location)), ) algs.extend([drw]) + locations_to_persist.append(drw.OutputRawEventLocation) + + Hlt1SelectionIDs = setup_allen_Hlt1ANN() + + locations_to_persist.append(reports_raw_event) + report_writers_node = CompositeNode( 'report_writers', combineLogic=NodeLogic.NONLAZY_OR, children=algs, forceOrder=True) - locations_to_persist.append(drw.OutputRawEventLocation) - # Transform to a list of unique str locations_to_persist = list( set(map(_format_location, locations_to_persist))) + writers = [report_writers_node] writers.extend(output_writers(options, locations_to_persist)) - options.finalize() - top_cf_node = CompositeNode( 'allen', combineLogic=NodeLogic.NONLAZY_OR, -- GitLab From 29888df85ecba94f6c45f9135f0bc3a2e21e947f Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 19 May 2020 16:42:38 +0000 Subject: [PATCH 160/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8447442 --- Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py | 1 - .../tests/options/test_allen_decreports.py | 8 ++++---- Hlt/Moore/python/Moore/config.py | 14 +++++++------- Hlt/RecoConf/python/RecoConf/standalone.py | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py index 743b0e6ca7e..db67a9e1c1c 100644 --- a/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py +++ b/Hlt/Hlt1Conf/python/Hlt1Conf/lines/luminosity.py @@ -57,4 +57,3 @@ def luminosity_line(name="Hlt1LuminosityLine", prescale=1): InputSummaries=[velo_summary, pv_summary]) return HltLine(name=name, algs=[lumi, merged_summary], prescale=prescale) - diff --git a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py index 31e76a83d32..2c2f101ca41 100644 --- a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py +++ b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py @@ -26,7 +26,7 @@ from Configurables import ( IODataManager, LHCbApp, ) -from DAQSys.Decoders import DecoderDB +from DAQSys.Decoders import DecoderDB from GaudiConf import IOHelper import GaudiPython @@ -70,7 +70,7 @@ HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs # Set up counters for recording decisions from MDF counts_from_mdf = {key: 0 for key in Hlt1SelectionIDs} -counts_from_mdf[MOORE_KEY] = 0 +counts_from_mdf[MOORE_KEY] = 0 # Extract counters from log file of the previous job #counts_from_log = get_counts_from_log(args.input_log) @@ -95,7 +95,7 @@ while TES["/Event"]: triggered = True if triggered: counts_from_mdf[MOORE_KEY] += 1 - + gaudi.run(1) for key in counts_from_mdf.keys(): @@ -111,7 +111,7 @@ for key in counts_from_mdf.keys(): # else: # print("Counts of {}, log = {}, mdf = {}".format( # key, counts_from_log[line_name], counts_from_mdf[key])) - + print("Counts of (), mdf = ()".format(key, counts_from_mdf[key])) if error: diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 2d613740b30..62e62a5fba7 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -389,11 +389,11 @@ def run_allen(options, make_lines): make_lines: function returning a list of `HltLine` objects """ - config = configure_input(options) - options.finalize() + config = configure_input(options) + options.finalize() setup_allen_non_event_data_service() - + # Write DecReports raw banks from RecoConf.hlt1_allen import make_allen_dec_reports allen_dec_reports = make_allen_dec_reports() @@ -410,7 +410,7 @@ def run_allen(options, make_lines): # happy, or make raw events/banks const and adapt everything. kill_existing = True if kill_existing: - all_banks_to_write = (report_banks_to_write) + all_banks_to_write = (report_banks_to_write) algs.append( bankKiller( RawEventLocations=[reports_raw_event], @@ -419,13 +419,13 @@ def run_allen(options, make_lines): drw = HltDecReportsWriter( InputHltDecReportsLocation=allen_dec_reports, outputs=dict( - OutputRawEventLocation=force_location(reports_raw_event.location)), + OutputRawEventLocation=force_location(reports_raw_event.location)), ) algs.extend([drw]) locations_to_persist.append(drw.OutputRawEventLocation) - Hlt1SelectionIDs = setup_allen_Hlt1ANN() - + Hlt1SelectionIDs = setup_allen_Hlt1ANN() + locations_to_persist.append(reports_raw_event) report_writers_node = CompositeNode( diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index 3408a13e4c1..c1222a6090d 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -27,7 +27,7 @@ from PyConf.Algorithms import CaloFutureDigit2MCLinks2Table from PyConf.Algorithms import CaloClusterMCTruth from .mc_checking import get_track_checkers, get_best_tracks_checkers, tracker_dumper, pv_dumper from .hlt1_allen import (make_allen_tracks, make_allen_pvs, - make_allen_dec_reports, make_dumped_raw_banks) + make_allen_dec_reports, make_dumped_raw_banks) from .reco_objects_from_file import reconstruction from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options from .rich_data_monitoring import (make_rich_pixel_monitors, -- GitLab From e4d66b2dfd2851cdf27d5a1fdbae7e334e6241cf Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 20 May 2020 10:41:37 +0200 Subject: [PATCH 161/199] index lines in DecReports from 1 --- Hlt/Moore/python/Moore/config.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 62e62a5fba7..5f4379fb1f2 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -358,7 +358,7 @@ def get_allen_hlt1_lines(): os.path.expandvars( "$ALLEN_INSTALL_DIR/constants/Sequence.json")) as config_file: config = (json.load(config_file)) - index = 0 + index = 1 for line in config["configured_lines"]: line_name = "Hlt1" + str(line) + "Decision" Hlt1SelectionIDs[line_name] = index @@ -376,6 +376,8 @@ def setup_allen_Hlt1ANN(): hlt_ann_svc = setup_component( "HltANNSvc", Hlt1SelectionID=Hlt1SelectionIDs) + print Hlt1SelectionIDs + return Hlt1SelectionIDs @@ -418,6 +420,7 @@ def run_allen(options, make_lines): drw = HltDecReportsWriter( InputHltDecReportsLocation=allen_dec_reports, + OutputLevel=1, outputs=dict( OutputRawEventLocation=force_location(reports_raw_event.location)), ) -- GitLab From e43503020d7f7445e820f03d71eda82cf25044f3 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 20 May 2020 17:19:47 +0200 Subject: [PATCH 162/199] forceOrder in top Allen node --- Hlt/Moore/python/Moore/config.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 5f4379fb1f2..535e5b49558 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -200,7 +200,6 @@ def report_writers_node(lines, ) algs.extend([erw, drw]) locations_to_persist.append(drw.OutputRawEventLocation) - hlt_ann_svc = setup_component( "HltANNSvc", # Zero is an invalid DecReport ID, so start from 1 @@ -363,7 +362,6 @@ def get_allen_hlt1_lines(): line_name = "Hlt1" + str(line) + "Decision" Hlt1SelectionIDs[line_name] = index index += 1 - print Hlt1SelectionIDs return Hlt1SelectionIDs @@ -424,6 +422,7 @@ def run_allen(options, make_lines): outputs=dict( OutputRawEventLocation=force_location(reports_raw_event.location)), ) + algs.extend([drw]) locations_to_persist.append(drw.OutputRawEventLocation) @@ -448,7 +447,7 @@ def run_allen(options, make_lines): 'allen', combineLogic=NodeLogic.NONLAZY_OR, children=[make_allen_dec_reports()] + writers, - forceOrder=False) + forceOrder=True) config.update(configure(options, top_cf_node)) # TODO pass config to gaudi explicitly when that is supported -- GitLab From 1d026e847d3340d248ad0db68969a2c791d51f7e Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 20 May 2020 18:41:21 +0200 Subject: [PATCH 163/199] finish test comparing log file selection counts with DecReports in MDF file --- .../tests/options/test_allen_decreports.py | 56 +++++++++++-------- .../persistency.qms/allen_mdf_write.qmt | 4 +- .../persistency.qms/mdf_read_decs_allen.qmt | 2 + 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py index 2c2f101ca41..9cc57267f0d 100644 --- a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py +++ b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py @@ -33,23 +33,32 @@ import GaudiPython from PyConf.utilities import read_options # Top-level control flow node -MOORE_KEY = "moore" +ALLEN_KEY = "allen" def get_counts_from_log(f): """Return the decisions of each line as extracted from a log file.""" counts = {} with open(f) as f: - for line in filter(lambda l: "LAZY_AND:" in l, f): + for line in filter(lambda l: "Selected by" in l, f): + columns = line.split() + hlt_line = columns[2].replace('"', '') + count = int(columns[6]) + counts[hlt_line] = count + f.seek(0) + for line in filter(lambda l: "NONLAZY_OR: allen" in l, f): columns = line.split() hlt_line = columns[1] count = int(columns[3].replace("Sum=", "")) - counts[hlt_line] = count + counts[hlt_line] = count return counts parser = argparse.ArgumentParser() parser.add_argument("--input-mdf", help="Input MDF file") +parser.add_argument("--input-log", help="Input log file") +parser.add_argument( + "--input-options", help="Input options file (Python format)") args = parser.parse_args() # Configure basic application with inputs @@ -64,15 +73,16 @@ ApplicationMgr( TopAlg=[DecoderDB["HltDecReportsDecoder/Hlt1DecReportsDecoder"].setup()]) # Get expected lines and HltANNSvc configuration from the previous job -from Moore.config import get_allen_hlt1_lines -Hlt1SelectionIDs = get_allen_hlt1_lines() +options = read_options(args.input_options) +Hlt1SelectionIDs = options["HltANNSvc"]["Hlt1SelectionID"] HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs +print(Hlt1SelectionIDs) # Set up counters for recording decisions from MDF counts_from_mdf = {key: 0 for key in Hlt1SelectionIDs} -counts_from_mdf[MOORE_KEY] = 0 +counts_from_mdf[ALLEN_KEY] = 0 # Extract counters from log file of the previous job -#counts_from_log = get_counts_from_log(args.input_log) +counts_from_log = get_counts_from_log(args.input_log) gaudi = GaudiPython.AppMgr() TES = gaudi.evtSvc() @@ -88,31 +98,29 @@ while TES["/Event"]: triggered = False for key in counts_from_mdf.keys(): - if key == MOORE_KEY: + if key == ALLEN_KEY: continue counts_from_mdf[key] += int(decs.decReport(key).decision()) if decs.decReport(key).decision(): triggered = True if triggered: - counts_from_mdf[MOORE_KEY] += 1 + counts_from_mdf[ALLEN_KEY] += 1 gaudi.run(1) for key in counts_from_mdf.keys(): - line_name = key[:-8] if key.endswith("Decision") else key - # if line_name not in counts_from_log.keys(): - # error = True - # print("Test ERROR: Line {} missing".format(line_name)) - # else: - # if counts_from_mdf[key] != counts_from_log[line_name]: - # error = True - # print("Test ERROR: Counts of {} wrong, log = {}, mdf = {}".format( - # key, counts_from_log[line_name], counts_from_mdf[key])) - # else: - # print("Counts of {}, log = {}, mdf = {}".format( - # key, counts_from_log[line_name], counts_from_mdf[key])) - - print("Counts of (), mdf = ()".format(key, counts_from_mdf[key])) - + line_name = key + if line_name not in counts_from_log.keys(): + error = True + print("Test ERROR: Line {} missing".format(line_name)) + else: + if counts_from_mdf[key] != counts_from_log[line_name]: + error = True + print("Test ERROR: Counts of {} wrong, log = {}, mdf = {}".format( + key, counts_from_log[line_name], counts_from_mdf[key])) + else: + print("Counts of {}, log = {}, mdf = {}".format( + key, counts_from_log[line_name], counts_from_mdf[key])) + if error: exit("Test failed") # exit with a non-zero code diff --git a/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt index bdc38125521..734f66e2c58 100644 --- a/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt +++ b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/allen_mdf_write.qmt @@ -23,7 +23,9 @@ Run Allen HLT1 and save an MDF file. true - +with open('test_hlt1_persistence_allen_mdf_write.stdout', 'w') as f: + f.write(stdout) + diff --git a/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt index db9365ed34b..d1905fbab4c 100644 --- a/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt +++ b/Hlt/Hlt1Conf/tests/qmtest/persistency.qms/mdf_read_decs_allen.qmt @@ -19,7 +19,9 @@ Check content of Allen DecReports rawbank and check that they agree with logfile python $HLT1CONFROOT/tests/options/test_allen_decreports.py + --input-log=test_hlt1_persistence_allen_mdf_write.stdout --input-mdf=test_allen_hlt1_persistence_mdf_write.mdf + --input-options=allen_mdf_write.opts.py true -- GitLab From 3d2b2016a19ab06cb8e28abea9b98f1690de5a23 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Wed, 20 May 2020 20:56:25 +0200 Subject: [PATCH 164/199] no verbose output from HltDecReportsWriter --- Hlt/Moore/python/Moore/config.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 535e5b49558..125ab066141 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -418,7 +418,6 @@ def run_allen(options, make_lines): drw = HltDecReportsWriter( InputHltDecReportsLocation=allen_dec_reports, - OutputLevel=1, outputs=dict( OutputRawEventLocation=force_location(reports_raw_event.location)), ) -- GitLab From 1fe1de1f123415cf7370b48df466d66cc6980227 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 20 May 2020 18:57:34 +0000 Subject: [PATCH 165/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8464922 --- Hlt/Hlt1Conf/tests/options/test_allen_decreports.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py index 9cc57267f0d..431e910d371 100644 --- a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py +++ b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py @@ -50,7 +50,7 @@ def get_counts_from_log(f): columns = line.split() hlt_line = columns[1] count = int(columns[3].replace("Sum=", "")) - counts[hlt_line] = count + counts[hlt_line] = count return counts @@ -58,7 +58,7 @@ parser = argparse.ArgumentParser() parser.add_argument("--input-mdf", help="Input MDF file") parser.add_argument("--input-log", help="Input log file") parser.add_argument( - "--input-options", help="Input options file (Python format)") + "--input-options", help="Input options file (Python format)") args = parser.parse_args() # Configure basic application with inputs @@ -76,7 +76,7 @@ ApplicationMgr( options = read_options(args.input_options) Hlt1SelectionIDs = options["HltANNSvc"]["Hlt1SelectionID"] HltANNSvc().Hlt1SelectionID = Hlt1SelectionIDs -print(Hlt1SelectionIDs) +print(Hlt1SelectionIDs) # Set up counters for recording decisions from MDF counts_from_mdf = {key: 0 for key in Hlt1SelectionIDs} @@ -120,7 +120,7 @@ for key in counts_from_mdf.keys(): key, counts_from_log[line_name], counts_from_mdf[key])) else: print("Counts of {}, log = {}, mdf = {}".format( - key, counts_from_log[line_name], counts_from_mdf[key])) - + key, counts_from_log[line_name], counts_from_mdf[key])) + if error: exit("Test failed") # exit with a non-zero code -- GitLab From 9ddd32ecd16f85ec6561922b64bab49377d65eca Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Fri, 22 May 2020 12:14:55 +0200 Subject: [PATCH 166/199] remove dependency from Rec MR 1925 and Moore MR 388 --- .../options/hlt1_reco_allen_pvchecker.py | 34 -- Hlt/RecoConf/python/RecoConf/mc_checking.py | 33 +- .../scripts/PrimaryVertexCheckerEfficiency.py | 154 ------ .../scripts/PrimaryVertexCheckerPull.py | 294 ------------ .../scripts/PrimaryVertexCheckerResolution.py | 289 ------------ Hlt/RecoConf/scripts/utils/pvconfig.py | 188 -------- Hlt/RecoConf/scripts/utils/pvutils.py | 442 ------------------ 7 files changed, 1 insertion(+), 1433 deletions(-) delete mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py delete mode 100644 Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py delete mode 100644 Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py delete mode 100644 Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py delete mode 100644 Hlt/RecoConf/scripts/utils/pvconfig.py delete mode 100644 Hlt/RecoConf/scripts/utils/pvutils.py diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py b/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py deleted file mode 100644 index 69aa6b21276..00000000000 --- a/Hlt/RecoConf/options/hlt1_reco_allen_pvchecker.py +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options, run_allen_reconstruction -from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec -from RecoConf.hlt1_allen import make_allen_tracks, make_allen_pvs -from RecoConf.mc_checking import get_pv_checkers, get_track_checkers - - -def hlt1_reco_pvchecker(): - - allen_tracks = make_allen_tracks() - allen_pvs = make_allen_pvs() - - data = [allen_pvs] - data += get_pv_checkers( - allen_pvs, allen_tracks["Velo"], produce_ntuple=True) - - return Reconstruction('PVperformance', data, [require_gec()]) - - -run_allen_reconstruction(options, hlt1_reco_pvchecker) - -NTupleSvc().Output += [ - "FILE1 DATAFILE='Hlt1_PVperformance.root' TYPE='ROOT' OPT='NEW'" -] diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 3fa54ff5e9f..834a5af0829 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -23,7 +23,7 @@ from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, - DataPacking__Unpack_LHCb__MCVPHitPacker_, PrimaryVertexChecker, + DataPacking__Unpack_LHCb__MCVPHitPacker_, PrTrackerDumper, PVDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool @@ -262,37 +262,6 @@ def get_best_tracks_checkers( efficiency_checkers.append(checker) return efficiency_checkers - -@configurable -def get_pv_checkers( - pvs, - tracks, - produce_ntuple=False, - make_links_lhcbids_mcparticles=make_links_lhcbids_mcparticles_tracking_system -): - - assert isinstance( - pvs, DataHandle), "Please provide reconstructed primary verticies" - - links_to_lhcbids = make_links_lhcbids_mcparticles() - links_to_tracks = make_links_tracks_mcparticles( - InputTracks=tracks, LinksToLHCbIDs=links_to_lhcbids) - pv_checkers = [] - - pvchecker = PrimaryVertexChecker( - produceNtuple=produce_ntuple, - inputVerticesName=pvs, - inputTracksName=tracks["v1"], - MCVertexInput=mc_unpackers()["MCVertices"], - MCParticleInput=mc_unpackers()["MCParticles"], - MCHeaderLocation=make_data_with_FetchDataFromFile("/Event/MC/Header"), - MCPropertyInput=make_data_with_FetchDataFromFile( - "/Event/MC/TrackInfo")) - - pv_checkers.append(pvchecker) - return pv_checkers - - def make_track_filter(InputTracks, code): selector = LoKiTrackSelector(Code=code, StatPrint=True) filtered_tracks = TrackListRefiner( diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py deleted file mode 100644 index bfc3151734f..00000000000 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerEfficiency.py +++ /dev/null @@ -1,154 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -#!/usr/bin/python - -# The script for plotting PV efficinecy as the function -# of various distributions: nTracks, z, r. -# As input the NTuple created by hlt1_reco_pvchecker.py -# is needed. -# -# The efficency is calculated usig TGraphAsymmErrors -# and Bayesian error bars -# -# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) -# date: 02/2020 -# -# Example of usage: -# ../../../run python PrimaryVertexCheckerEfficiency.py -# --file file1.root file2.root --label name1 name2 --dist -# - -import os, sys -import argparse -import ROOT - -from ROOT import TFile, TTree -from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray -from ROOT import gROOT, TLegend - -parser = argparse.ArgumentParser() -parser.add_argument( - '--file', dest='fileName', default="", nargs='+', help='filename to plot') -parser.add_argument( - '--label', dest='label', default="", nargs='+', help='labels for files') -parser.add_argument( - '--tree', - dest='treeName', - default="", - nargs='+', - help='tree name to plot', -) -parser.add_argument( - '--smog', - dest='smog', - default=False, - action='store_true', - help='set true for SMOG') -parser.add_argument( - '--multi', - dest='multi', - default=False, - action='store_true', - help='add multiplicity plots') -parser.add_argument( - '--dist', - dest='dist', - default=False, - action='store_true', - help='plot distributions in the canvas') -parser.add_argument( - '--prefix', - dest='prefix', - default="pv_eff", - help='prefix for the plot name', -) -parser.add_argument( - '--dir', - dest='directory', - default=os.getcwd(), - help='tree name to plot', -) - -parser.add_argument( - '--offset', - dest='offset', - default=0, - help='offset for plot colors', -) - - -def get_labels(number_of_files): - label = [] - for i in range(0, number_of_files): - label.append("PV Checker {number}".format(number=str(i + 1))) - return label - - -if __name__ == '__main__': - args = parser.parse_args() - path = args.directory + "/utils/" - sys.path.append(os.path.abspath(path)) - offset = int(args.offset) - - gROOT.SetBatch() - - from pvutils import get_default_tree_name - from pvutils import get_files, get_trees, get_eff, plot - - from pvconfig import get_variable_ranges - from pvconfig import get_style, get_categories - from pvconfig import set_legend - - ranges = get_variable_ranges(args.smog) - style = get_style() - - label = args.label - if args.label == "": - label = get_labels(len(args.fileName)) - - tr = {} - tf = {} - tf = get_files(tf, label, args.fileName) - tr = get_trees(tf, tr, label, args.treeName, True) - - eff = {} - eff["tracks"] = {} - eff["z"] = {} - eff["r"] = {} - - hist = {} - hist["tracks"] = {} - hist["z"] = {} - hist["r"] = {} - - cat = get_categories(args.multi, args.smog) - - eff["tracks"], hist["tracks"] = get_eff(eff["tracks"], hist["tracks"], tr, - "nrectrmc", style, ranges, cat, - label, offset) - eff["z"], hist["z"] = get_eff(eff["z"], hist["z"], tr, "zMC", style, - ranges, cat, label, offset) - eff["r"], hist["r"] = get_eff(eff["r"], hist["r"], tr, "rMC", style, - ranges, cat, label, offset) - - if args.dist: - legend = TLegend(0.15, 0.82, 0.88, 0.98) - else: - legend = TLegend(0.15, 0.86, 0.88, 0.98) - legend = set_legend(legend, label, eff["tracks"], "eff", hist["z"], - args.dist) - - plot(eff["tracks"], "eff", args.prefix, "ntracks", cat, label, legend, - hist["tracks"], args.dist) - plot(eff["z"], "eff", args.prefix, "z", cat, label, legend, hist["z"], - args.dist) - plot(eff["r"], "eff", args.prefix, "r", cat, label, legend, hist["r"], - args.dist) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py deleted file mode 100644 index cf30de6cca3..00000000000 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerPull.py +++ /dev/null @@ -1,294 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -#!/usr/bin/python - -# The script for plotting PV efficinecy as the function -# of various distributions: nTracks, z, r. -# As input the NTuple created by hlt1_reco_pvchecker.py -# is needed. -# -# The efficency is calculated usig TGraphAsymmErrors -# and Bayesian error bars -# -# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) -# date: 02/2020 -# -# Example of usage: -# ../../../run python PrimaryVertexCheckerPull.py -# --file file1.root file2.root --label name1 name2 -# - -import os, sys -import argparse -import ROOT - -from ROOT import TFile, TTree -from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow -from ROOT import gROOT, TLegend - -parser = argparse.ArgumentParser() -parser.add_argument( - '--file', dest='fileName', default="", nargs='+', help='filename to plot') -parser.add_argument( - '--label', dest='label', default="", nargs='+', help='labels for files') -parser.add_argument( - '--tree', - dest='treeName', - default="", - nargs='+', - help='tree name to plot', -) -parser.add_argument( - '--smog', - dest='smog', - default=False, - action='store_true', - help='set true for SMOG') -parser.add_argument( - '--multi', - dest='multi', - default=False, - action='store_true', - help='add multiplicity plots') -parser.add_argument( - '--dist', - dest='dist', - default=False, - action='store_true', - help='plot distributions in the canvas') -parser.add_argument( - '--prefix', - dest='prefix', - default="pv_pull", - help='prefix for the plot name', -) -parser.add_argument( - '--dir', - dest='directory', - default=os.getcwd(), - help='tree name to plot', -) - -parser.add_argument( - '--offset', - dest='offset', - default=0, - help='offset for plot colors', -) - - -def get_labels(number_of_files): - label = [] - for i in range(0, number_of_files): - label.append("PV Checker {number}".format(number=str(i + 1))) - return label - - -if __name__ == '__main__': - args = parser.parse_args() - path = args.directory + "/utils/" - sys.path.append(os.path.abspath(path)) - offset = int(args.offset) - gROOT.SetBatch() - - from pvutils import get_default_tree_name - from pvutils import get_files, get_trees - from pvutils import set_legend, get_global, plot_comparison - from pvutils import get_dependence - from pvutils import plot - - from pvconfig import get_variable_ranges - from pvconfig import get_style, get_categories - from pvconfig import get_y_axis - - ranges = get_variable_ranges(args.smog) - style = get_style() - - cat = get_categories(args.multi, args.smog) - label = args.label - if args.label == "": - label = get_labels(len(args.fileName)) - - tr = {} - tf = {} - tf = get_files(tf, label, args.fileName) - tr = get_trees(tf, tr, label, args.treeName, True) - - hist_x = {} - hist_y = {} - hist_z = {} - norm = True #to-do - hist_x = get_global(hist_x, tr, "pullx", "#Delta x / #sigma_{x}", - "Candidates Normalized", style, ranges, cat, label, - offset) - hist_y = get_global(hist_y, tr, "pully", "#Delta y / #sigma_{y}", - "Candidates Normalized", style, ranges, cat, label, - offset) - hist_z = get_global(hist_z, tr, "pullz", "#Delta z / #sigma_{z}", - "Candidates Normalized", style, ranges, cat, label, - offset) - - plot_comparison(hist_x, args.prefix, "pullx", cat, label, style, norm, - offset) - plot_comparison(hist_y, args.prefix, "pully", cat, label, style, norm, - offset) - plot_comparison(hist_z, args.prefix, "pullz", cat, label, style, norm, - offset) - - from ROOT import gEnv - gEnv.SetValue("Hist.Binning.1D.x", "100") - - graph = {} - graph["tracks"] = {} - graph["tracks"]["pullx"] = {} - graph["tracks"]["pully"] = {} - graph["tracks"]["pullz"] = {} - graph["tracks"]["pullx"] = get_dependence(graph["tracks"]["pullx"], tr, - "pullx", "nrectrmc", ranges, - style, cat, label, offset) - graph["tracks"]["pully"] = get_dependence(graph["tracks"]["pully"], tr, - "pully", "nrectrmc", ranges, - style, cat, label, offset) - graph["tracks"]["pullz"] = get_dependence(graph["tracks"]["pullz"], tr, - "pullz", "nrectrmc", ranges, - style, cat, label, offset) - - legend = TLegend(0.15, 0.86, 0.88, 0.98) - legend = set_legend(legend, label, graph["tracks"]["pullz"], "sigma") - - labelpos = (0.75, 0.75, 0.9, 0.87) - plot( - graph["tracks"]["pullx"], - "mean", - args.prefix + "_ntracks_mean", - "pullx", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["tracks"]["pullx"], - "sigma", - args.prefix + "_ntracks_sigma", - "pullx", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["tracks"]["pully"], - "mean", - args.prefix + "_ntracks_mean", - "pully", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["tracks"]["pully"], - "sigma", - args.prefix + "_ntracks_sigma", - "pully", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["tracks"]["pullz"], - "mean", - args.prefix + "_ntracks_mean", - "pullz", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["tracks"]["pullz"], - "sigma", - args.prefix + "_ntracks_sigma", - "pullz", - cat, - label, - legend, - labelpos=labelpos) - - graph["z"] = {} - graph["z"]["pullx"] = {} - graph["z"]["pully"] = {} - graph["z"]["pullz"] = {} - graph["z"]["pullx"] = get_dependence(graph["z"]["pullx"], tr, "pullx", - "zMC", ranges, style, cat, label, - offset) - graph["z"]["pully"] = get_dependence(graph["z"]["pully"], tr, "pully", - "zMC", ranges, style, cat, label, - offset) - graph["z"]["pullz"] = get_dependence(graph["z"]["pullz"], tr, "pullz", - "zMC", ranges, style, cat, label, - offset) - - plot( - graph["z"]["pullx"], - "mean", - args.prefix + "_z_mean", - "pullx", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["z"]["pullx"], - "sigma", - args.prefix + "_z_sigma", - "pullx", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["z"]["pully"], - "mean", - args.prefix + "_z_mean", - "pully", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["z"]["pully"], - "sigma", - args.prefix + "_z_sigma", - "pully", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["z"]["pullz"], - "mean", - args.prefix + "_z_mean", - "pullz", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["z"]["pullz"], - "sigma", - args.prefix + "_z_sigma", - "pullz", - cat, - label, - legend, - labelpos=labelpos) diff --git a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py b/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py deleted file mode 100644 index e1bdce35d1c..00000000000 --- a/Hlt/RecoConf/scripts/PrimaryVertexCheckerResolution.py +++ /dev/null @@ -1,289 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -#!/usr/bin/python - -# The script for plotting PV efficinecy as the function -# of various distributions: nTracks, z, r. -# As input the NTuple created by hlt1_reco_pvchecker.py -# is needed. -# -# The efficency is calculated usig TGraphAsymmErrors -# and Bayesian error bars -# -# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) -# date: 02/2020 -# -# Example of usage: -# ../../../run python PrimaryVertexCheckerResolution.py -# --file file1.root file2.root --label name1 name2 -# - -import os, sys -import argparse -import ROOT - -from ROOT import TFile, TTree -from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow -from ROOT import gROOT, TLegend - -parser = argparse.ArgumentParser() -parser.add_argument( - '--file', dest='fileName', default="", nargs='+', help='filename to plot') -parser.add_argument( - '--label', dest='label', default="", nargs='+', help='labels for files') -parser.add_argument( - '--tree', - dest='treeName', - default="", - nargs='+', - help='tree name to plot', -) -parser.add_argument( - '--smog', - dest='smog', - default=False, - action='store_true', - help='set true for SMOG') -parser.add_argument( - '--multi', - dest='multi', - default=False, - action='store_true', - help='add multiplicity plots') -parser.add_argument( - '--dist', - dest='dist', - default=False, - action='store_true', - help='plot distributions in the canvas') -parser.add_argument( - '--prefix', - dest='prefix', - default="pv_resol", - help='prefix for the plot name', -) -parser.add_argument( - '--dir', - dest='directory', - default=os.getcwd(), - help='tree name to plot', -) - -parser.add_argument( - '--offset', - dest='offset', - default=0, - help='offset for plot colors', -) - - -def get_labels(number_of_files): - label = [] - for i in range(0, number_of_files): - label.append("PVChecker{number}".format(number=str(i + 1))) - return label - - -if __name__ == '__main__': - args = parser.parse_args() - path = args.directory + "/utils/" - sys.path.append(os.path.abspath(path)) - offset = int(args.offset) - - gROOT.SetBatch() - - from pvutils import get_default_tree_name - from pvutils import get_files, get_trees - from pvutils import set_legend, get_global, plot_comparison - from pvutils import get_dependence - from pvutils import plot - - from pvconfig import get_variable_ranges - from pvconfig import get_style, get_categories - - ranges = get_variable_ranges(args.smog) - style = get_style() - - cat = get_categories(args.multi, args.smog) - label = args.label - if args.label == "": - label = get_labels(len(args.fileName)) - - tr = {} - tf = {} - tf = get_files(tf, label, args.fileName) - tr = get_trees(tf, tr, label, args.treeName, True) - - hist_x = {} - hist_y = {} - hist_z = {} - norm = True - - hist_x = get_global(hist_x, tr, "dx", "#Delta x [mm]", - "Candidates Normalized", style, ranges, cat, label, - offset) - hist_y = get_global(hist_y, tr, "dy", "#Delta y [mm]", - "Candidates Normalized", style, ranges, cat, label, - offset) - hist_z = get_global(hist_z, tr, "dz", "#Delta z [mm]", - "Candidates Normalized", style, ranges, cat, label, - offset) - - plot_comparison(hist_x, args.prefix, "dx", cat, label, style, norm, offset) - plot_comparison(hist_y, args.prefix, "dy", cat, label, style, norm, offset) - plot_comparison(hist_z, args.prefix, "dz", cat, label, style, norm, offset) - - from ROOT import gEnv - gEnv.SetValue("Hist.Binning.1D.x", "100") - - graph = {} - graph["tracks"] = {} - graph["tracks"]["dx"] = {} - graph["tracks"]["dy"] = {} - graph["tracks"]["dz"] = {} - graph["tracks"]["dx"] = get_dependence(graph["tracks"]["dx"], tr, "dx", - "nrectrmc", ranges, style, cat, - label, offset) - graph["tracks"]["dy"] = get_dependence(graph["tracks"]["dy"], tr, "dy", - "nrectrmc", ranges, style, cat, - label, offset) - graph["tracks"]["dz"] = get_dependence(graph["tracks"]["dz"], tr, "dz", - "nrectrmc", ranges, style, cat, - label, offset) - - legend = TLegend(0.15, 0.86, 0.88, 0.98) - legend = set_legend(legend, label, graph["tracks"]["dz"], "sigma") - - labelpos = (0.73, 0.75, 0.88, 0.87) - plot( - graph["tracks"]["dx"], - "mean", - args.prefix + "_ntracks_mean", - "dx", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["tracks"]["dx"], - "sigma", - args.prefix + "_ntracks_sigma", - "dx", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["tracks"]["dy"], - "mean", - args.prefix + "_ntracks_mean", - "dy", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["tracks"]["dy"], - "sigma", - args.prefix + "_ntracks_sigma", - "dy", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["tracks"]["dz"], - "mean", - args.prefix + "_ntracks_mean", - "dz", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["tracks"]["dz"], - "sigma", - args.prefix + "_ntracks_sigma", - "dz", - cat, - label, - legend, - labelpos=labelpos) - - graph["z"] = {} - graph["z"]["dx"] = {} - graph["z"]["dy"] = {} - graph["z"]["dz"] = {} - graph["z"]["dx"] = get_dependence(graph["z"]["dx"], tr, "dx", "zMC", - ranges, style, cat, label, offset) - graph["z"]["dy"] = get_dependence(graph["z"]["dy"], tr, "dy", "zMC", - ranges, style, cat, label, offset) - graph["z"]["dz"] = get_dependence(graph["z"]["dz"], tr, "dz", "zMC", - ranges, style, cat, label, offset) - - plot( - graph["z"]["dx"], - "mean", - args.prefix + "_z_mean", - "dx", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["z"]["dx"], - "sigma", - args.prefix + "_z_sigma", - "dx", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["z"]["dy"], - "mean", - args.prefix + "_z_mean", - "dy", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["z"]["dy"], - "sigma", - args.prefix + "_z_sigma", - "dy", - cat, - label, - legend, - labelpos=labelpos) - - plot( - graph["z"]["dz"], - "mean", - args.prefix + "_z_mean", - "dz", - cat, - label, - legend, - labelpos=labelpos) - plot( - graph["z"]["dz"], - "sigma", - args.prefix + "_z_sigma", - "dz", - cat, - label, - legend, - labelpos=labelpos) diff --git a/Hlt/RecoConf/scripts/utils/pvconfig.py b/Hlt/RecoConf/scripts/utils/pvconfig.py deleted file mode 100644 index 09bccd2963f..00000000000 --- a/Hlt/RecoConf/scripts/utils/pvconfig.py +++ /dev/null @@ -1,188 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -#!/usr/bin/python - -from ROOT import TH1F, TLegend -from ROOT import kRed, kBlue, kOrange, kMagenta, kGreen, kCyan, kGray, kYellow - - -def get_categories(multi, smog): - cut = {} - cut["all"] = {"cut": ""} - # cut["isolated"] = {"cut": "&&isol==1"} - # if not smog: - # cut["close"] = {"cut": "&&isol==0"} - if multi: - cut["1st"] = {"cut": "&&multimc==1"} - cut["2nd"] = {"cut": "&&multimc==2"} - cut["3rd"] = {"cut": "&&multimc==3"} - cut["4th"] = {"cut": "&&multimc==4"} - cut["5th"] = {"cut": "&&multimc==5"} - - return cut - - -def get_style(): - return { - "color": [kRed, kBlue, kOrange, kMagenta, kGreen, kCyan], - "marker": [21, 20, 22, 23, 24, 25] - } - - -def get_default_tree_name(is_checker): - if is_checker: - return "PrimaryVertexChecker/101" - else: - return "VertexCompare/102" - - -def transfer_variable(dep): - dictionary = { - "pullx": "dx/errx", - "pully": "dy/erry", - "pullz": "dz/errz", - "dx": "dx", - "dy": "dy", - "dz": "dz", - } - return dictionary[dep] - - -def get_variable_ranges(smog): - dictionary = { - "zMC": { - "bins": 50, - "min": -200, - "max": 200 - }, - "rMC": { - "bins": 50, - "min": 0.0, - "max": 0.2 - }, - "dx": { - "bins": 50, - "min": -0.10, - "max": 0.10 - }, - "dy": { - "bins": 50, - "min": -0.10, - "max": 0.10 - }, - "dz": { - "bins": 50, - "min": -0.40, - "max": 0.40 - }, - "pullx": { - "bins": 50, - "min": -3.50, - "max": 3.50 - }, - "pully": { - "bins": 50, - "min": -3.50, - "max": 3.50 - }, - "pullz": { - "bins": 50, - "min": -3.50, - "max": 3.50 - }, - "nrectrmc": { - "bins": 66, - "min": 4.0, - "max": 70.0 - } - } - if smog: - dictionary["zMC"] = {"bins": 100, "min": -500, "max": 200} - - return dictionary - - -def get_y_axis(dependence): - dictionary = { - "dx": "Resolution #Delta x [#mu m]", - "dy": "Resolution #Delta y [#mu m]", - "dz": "Resolution #Delta z [#mu m]", - "pullx": "Pull #Delta x/#sigma_{x}", - "pully": "Pull #Delta y/#sigma_{y}", - "pullz": "Pull #Delta z/#sigma_{z}" - } - return dictionary[dependence] - - -def get_x_axis(dependence): - dictionary = { - "zMC": "z [mm]", - "rMC": "radial distance [mm]", - "nrectrmc": "number of tracks in Primary Vertex" - } - return dictionary[dependence] - - -def set_style(graph, color, marker, xaxis, yaxis, title): - graph.SetTitle("") - graph.SetLineColor(color) - graph.SetMarkerColor(color) - graph.SetMarkerSize(1.3) - graph.SetMarkerStyle(marker) - graph.GetYaxis().SetTitleOffset(0.85) - if type(graph) == TH1F: - graph.SetFillColor(color) - graph.SetLineWidth(1) - graph.SetStats(False) - graph.GetYaxis().SetTitleOffset(1.1) - graph.GetYaxis().SetTitleSize(0.06) - graph.GetYaxis().SetLabelSize(0.06) - graph.GetXaxis().SetTitleSize(0.06) - graph.GetXaxis().SetLabelSize(0.06) - graph.GetXaxis().SetTitleFont(132) - graph.GetXaxis().SetLabelFont(132) - graph.GetYaxis().SetTitleFont(132) - graph.GetYaxis().SetLabelFont(132) - - if title != "": - graph.SetTitle(title) - if xaxis != "": - graph.GetXaxis().SetTitle(xaxis) - if yaxis != "": - graph.GetYaxis().SetTitle(yaxis) - - -def set_legend(legend, label, gr, gr_type, hist=None, dist=False): - legend.SetTextSize(0.04) - legend.SetTextFont(12) - legend.SetFillColor(4000) - legend.SetShadowColor(0) - legend.SetBorderSize(0) - legend.SetTextFont(132) - legend.SetNColumns(2) - for lab in label: - legend.AddEntry(gr["all"][lab][gr_type], "{lab}".format(lab=lab), - "lep") - if dist: - legend.AddEntry(hist["all"][label[0]]["den"], "Distribution MC", "f") - for lab in label: - legend.AddEntry(hist["all"][lab]["nom"], - "Distribution {lab}".format(lab=lab), "lep") - - return legend - - -def get_text_cor(): - return {"x": [0.17, 0.65, 0.17, 0.65], "y": [0.92, 0.92, 0.75, 0.75]} - - -def basic_cut(): - return "nrectrmc>=4 && dz < 2.0" diff --git a/Hlt/RecoConf/scripts/utils/pvutils.py b/Hlt/RecoConf/scripts/utils/pvutils.py deleted file mode 100644 index 16d61773c5a..00000000000 --- a/Hlt/RecoConf/scripts/utils/pvutils.py +++ /dev/null @@ -1,442 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### - -# The utils for processing output of the PrimaryVertexChecker output -# -# author: Agnieszka Dziurda (agnieszka.dziurda@cern.ch) -# date: 02/2020 -# - -from ROOT import TFile, TTree, TH1F, gDirectory, TGraphAsymmErrors, TPaveText, gStyle -from ROOT import TCanvas -from ROOT import TGraphErrors, TLegend -from ROOT import gPad, kGray, TLatex - -from pvconfig import get_default_tree_name -from pvconfig import transfer_variable -from pvconfig import get_x_axis, get_y_axis -from pvconfig import set_style -from pvconfig import set_legend -from pvconfig import get_text_cor -from pvconfig import basic_cut - -from array import array - - -def get_files(tf, label, files): - i = 0 - for f in files: - tf[label[i]] = TFile(f) - i += 1 - return tf - - -def get_trees(tf, tr, label, trees, is_checker): - i = 0 - for lab in label: - if len(tf) == len(trees): - tr[lab] = tf[lab].Get(trees[i]) - else: - tr[lab] = tf[lab].Get(get_default_tree_name(is_checker)) - i += 1 - return tr - - -def get_eff(eff, hist, trees, dependence, style, ranges, categories, label, - offset): - - for cat in categories: - eff[cat] = {} - hist[cat] = {} - i = offset - for lab in label: - var_den = '{dependence}>>hist{code}_{dep}_{cat}_denom{i}({bins},{mins},{maxs})'.format( - dependence=dependence, - code="den", - dep=dependence, - cat=cat, - lab=lab, - bins=ranges[dependence]["bins"], - mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"], - i=i) - var_nom = '{dependence}>>hist{code}_{dep}_{cat}_num{i}({bins},{mins},{maxs})'.format( - dependence=dependence, - code="nom", - dep=dependence, - cat=cat, - lab=lab, - bins=ranges[dependence]["bins"], - mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"], - i=i) - - cut_den = 'nrectrmc>=4 && dz < 2.0 {cuts}'.format( - cuts=categories[cat]["cut"]) - cut_nom = cut_den + ' && reco == 1' - - trees[lab].Draw(var_nom, cut_nom) - trees[lab].Draw(var_den, cut_den) - - h_nom = gDirectory.Get('hist{code}_{dep}_{cat}_num{i}'.format( - code="nom", dep=dependence, cat=cat, lab=lab, i=i)) - h_den = gDirectory.Get('hist{code}_{dep}_{cat}_denom{i}'.format( - code="den", dep=dependence, cat=cat, lab=lab, i=i)) - - g_eff = TGraphAsymmErrors() - g_eff.Divide(h_nom, h_den, "cl=0.683 b(1,1) mode") - - set_style(h_nom, style["color"][i] - 7, style["marker"][i] + 4, - get_x_axis(dependence), "Efficiency", "") - set_style(h_den, kGray, style["marker"][i], get_x_axis(dependence), - "Efficiency", "") - hist[cat][lab] = {} - hist[cat][lab]["nom"] = h_nom - hist[cat][lab]["den"] = h_den - - set_style(g_eff, style["color"][i], style["marker"][i], - get_x_axis(dependence), "Efficiency", "") - eff[cat][lab] = {} - eff[cat][lab]["eff"] = g_eff - i += 1 - - return eff, hist - - -def find_max(gr, gr_type, label): - m = -999999.0 - for lab in label: - if (gr[lab][gr_type].GetYaxis().GetXmax() > m): - m = gr[lab][gr_type].GetYaxis().GetXmax() - - return m - - -def find_min(gr, gr_type, label): - m = 999999.0 - for lab in label: - if (gr[lab][gr_type].GetYaxis().GetXmin() < m): - m = gr[lab][gr_type].GetYaxis().GetXmin() - return m - - -def plot(gr, - gr_type, - prefix, - dependence, - categories, - label, - legend=None, - hist=None, - dist=False, - labelpos=(0.75, 0.78, 0.9, 0.9)): - - for cat in categories: - can = TCanvas( - 'canvas_{depen}_{prefix}_{gr_type}_{cat}'.format( - depen=dependence, prefix=prefix, gr_type=gr_type, cat=cat), - "cR", 1200, 800) - can.SetBottomMargin(0.15) - can.SetLeftMargin(0.12) - can.SetTopMargin(0.15) - if dist: - can.SetTopMargin(0.20) - can.SetRightMargin(0.05) - can.cd() - - maximum = find_max(gr[cat], gr_type, label) - minimum = find_min(gr[cat], gr_type, label) - if (abs(maximum) > abs(minimum) and minimum < 0): - minimum = -maximum - - gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser( - minimum * 1.1, maximum * 1.1) - if (gr_type == "eff"): - gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser(0.0, 1.1) - if (gr_type == "sigma"): - gr[cat][label[0]][gr_type].GetYaxis().SetRangeUser( - 0.0, maximum * 1.1) - gr[cat][label[0]][gr_type].Draw("AP") - - for lab in label: - gr[cat][lab][gr_type].Draw("SAME P") - - if dist: - histmax_den = 1.1 * hist[cat][label[0]]["den"].GetMaximum() - scale = gPad.GetUymax() / histmax_den - hist[cat][label[0]]["den"].Scale(scale * 0.75) - hist[cat][label[0]]["den"].Draw("hist SAME") - - for lab in label: - histmax_nom = 1.1 * hist[cat][lab]["nom"].GetMaximum() - #scale = gPad.GetUymax() / histmax_nom - hist[cat][lab]["nom"].Scale(scale * 0.75) - hist[cat][lab]["nom"].Draw("ep SAME") - - gr[cat][lab][gr_type].Draw("SAME P") - - if legend: - legend.Draw("SAME") - pavetext = TPaveText(labelpos[0], labelpos[1], labelpos[2], - labelpos[3], "NBNDC") - pavetext.AddText("LHCb simulation") - pavetext.SetFillColor(0) - pavetext.SetFillStyle(3000) - pavetext.SetTextSize(0.06) - pavetext.SetTextFont(132) - pavetext.Draw() - - saveName = '{prefix}_{dependence}_{cat}.pdf'.format( - prefix=prefix, dependence=dependence, cat=cat) - can.SaveAs(saveName) - - -def get_global(hist, trees, dependence, x_axis, y_axis, style, ranges, - categories, label, offset): - - dep = transfer_variable(dependence) - - for cat in categories: - hist[cat] = {} - i = offset - for lab in label: - var = '{dependence}>>hist_{dep}_{cat}_{i}({bins},{mins},{maxs})'.format( - dependence=dep, - dep=dependence, - cat=cat, - lab=lab, - bins=ranges[dependence]["bins"], - mins=ranges[dependence]["min"], - maxs=ranges[dependence]["max"], - i=i) - - cut = 'nrectrmc>=4 && dz < 2.0 && reco == 1 {cuts}'.format( - cuts=categories[cat]["cut"]) - - trees[lab].Draw(var, cut) - h = gDirectory.Get('hist_{dep}_{cat}_{i}'.format( - dep=dependence, cat=cat, lab=lab, i=i)) - if i == 0: - col = style["color"][i] - 10 - else: - col = style["color"][i] - set_style(h, col, style["marker"][i], x_axis, y_axis, "") - - hist[cat][lab] = h - i += 1 - - return hist - - -def set_text(text, color, x, y, lab, mean, mean_err, rms, rms_err, scale, - units): - s = 1.0 - if scale: - s = 1000.0 - - ur = "" - um = "#times 10^{-3}" - if units: - ur = "[#mu m]" - um = "[#mu m]" - - text.SetNDC() - text.SetTextFont(132) - text.SetTextColor(color) - text.DrawLatex(x, y * 1.0, lab) - - text.DrawLatex( - x, y * 0.95, "#mu = ({0:0.2f} #pm {1:0.2f}) {unit}".format( - mean * 1000.0, mean_err * 1000.0, unit=um)) - text.DrawLatex( - x, y * 0.90, "#sigma = ({0:0.2f} #pm {1:0.2f}) {unit}".format( - rms * s, rms_err * s, unit=ur)) - return text - - -def plot_comparison(hist, prefix, dependence, categories, label, style, norm, - offset): - - for cat in categories: - can = TCanvas('canvas_{depen}_{cat}'.format(depen=dependence, cat=cat), - "cR", 1200, 800) - can.SetBottomMargin(0.15) - can.SetLeftMargin(0.15) - can.SetTopMargin(0.20) - can.SetRightMargin(0.05) - - can.cd() - cor = get_text_cor() - - hist[cat][label[0]].GetYaxis().SetRangeUser( - 0.0, hist[cat][label[0]].GetMaximum() * 1.1) - scale = True - units = True - if "pull" in dependence: - scale = False - units = False - if norm: - hist[cat][label[0]].DrawNormalized("hist") - hist_max = hist[cat][label[0]].GetMaximum() - i = offset - for lab in label: - hist[cat][lab].DrawNormalized("SAME PE") - text = TLatex() - text = set_text(text, style["color"][i], cor["x"][i], - cor["y"][i], lab, hist[cat][lab].GetMean(), - hist[cat][lab].GetMeanError(), - hist[cat][lab].GetRMS(), - hist[cat][lab].GetRMSError(), scale, units) - i += 1 - - else: - hist[cat][label[0]].Draw("hist") - for lab in label: - hist[cat][lab].Draw("SAME PE") - pavetext = TPaveText(0.72, 0.77 - gStyle.GetPadTopMargin(), 0.87, - 0.89 - gStyle.GetPadTopMargin(), "NBNDC") - pavetext.AddText("LHCb simulation") - pavetext.SetFillColor(0) - pavetext.SetTextSize(0.06) - pavetext.SetTextFont(132) - pavetext.Draw() - - can.Update() - saveName = '{prefix}_{dependence}_{cat}.pdf'.format( - prefix=prefix, dependence=dependence, cat=cat) - can.SaveAs(saveName) - - -def get_robust_sigma(hist, resol): - - y = array('d', [0.] * 3) - x = array('d', [0.] * 3) - x[0] = 0.25 - x[1] = 0.50 - x[2] = 0.75 - - hist.GetQuantiles(3, y, x) - - _median = y[1] - _approxstdev = (y[2] - y[0]) / 1.34898 - #factor gives correspondence between IQR and stdev for a Gaussian - mult = 4.0 - - histclone = hist.Clone() - nb = histclone.GetNbinsX() - - for i in range(1, nb + 1): - if ((histclone.GetBinCenter(i) < (_median - _approxstdev * mult)) - or (histclone.GetBinCenter(i) > - (_median + _approxstdev * mult))): - histclone.SetBinContent(i, 0) - - if resol: - robustsigma = { - "sigma": { - "var": histclone.GetRMS() * 1000.0, - "err": histclone.GetRMSError() * 1000.0 - }, - "mean": { - "var": histclone.GetMean() * 1000.0, - "err": histclone.GetMeanError() * 1000.0 - } - } - - else: - robustsigma = { - "sigma": { - "var": histclone.GetRMS() * 1.0, - "err": histclone.GetRMSError() * 1.0 - }, - "mean": { - "var": histclone.GetMean(), - "err": histclone.GetMeanError() - } - } - - return robustsigma - - -def get_dependence(graph, trees, variable, dependence, ranges, style, - categories, label, offset): - - var = transfer_variable(variable) - bin_width = (ranges[dependence]["max"] - - ranges[dependence]["min"]) / ranges[dependence]["bins"] - - resol = True - mean = "Mean [#mu m]" - if "pull" in variable: - resol = False - mean = "Mean" - - for cat in categories: - graph[cat] = {} - i = offset - for lab in label: - graph[cat][lab] = {} - graph_rms = TGraphAsymmErrors(ranges[dependence]["bins"]) - graph_mean = TGraphAsymmErrors(ranges[dependence]["bins"]) - - bin_min = ranges[dependence]["min"] - for b in range(0, ranges[dependence]["bins"]): - - cut_bin = '{variable1}>={mins} && {variable2}<{maxs}'.format( - variable1=dependence, - mins=bin_min, - variable2=dependence, - maxs=bin_min + bin_width) - - hist_string = '{dependence}>>hist_{dep}_{cat}_{i}_{number}'.format( - dependence=var, - dep=variable, - cat=cat, - i=i, - number=int(b), - ) - - cut = '{basic} && reco == 1 && {bin_cut} {cuts}'.format( - basic=basic_cut(), - bin_cut=cut_bin, - cuts=categories[cat]["cut"]) - - a = trees[lab].Draw(hist_string, cut) - - bin_min += bin_width - - h = gDirectory.Get('hist_{dep}_{cat}_{i}_{number}'.format( - dep=variable, cat=cat, i=i, number=int(b))) - - robust_sigma = get_robust_sigma(h, resol) - - graph_mean.SetPoint(b, bin_min + bin_width / 2.0, - robust_sigma["mean"]["var"]) - graph_mean.SetPointError(b, bin_width / 2.0, bin_width / 2.0, - robust_sigma["mean"]["err"], - robust_sigma["mean"]["err"]) - - graph_rms.SetPoint(b, bin_min + bin_width / 2.0, - robust_sigma["sigma"]["var"]) - graph_rms.SetPointError(b, bin_width / 2.0, bin_width / 2.0, - robust_sigma["sigma"]["err"], - robust_sigma["sigma"]["err"]) - - set_style(graph_rms, style["color"][i], style["marker"][i], - get_x_axis(dependence), get_y_axis(variable), "") - set_style(graph_mean, style["color"][i], style["marker"][i], - get_x_axis(dependence), mean, "") - - graph[cat][lab]["sigma"] = graph_rms - graph[cat][lab]["mean"] = graph_mean - i += 1 - - return graph -- GitLab From 71b5ce36a0e6caddd3a7fc6a933b7732bc8a94c6 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 22 May 2020 10:15:29 +0000 Subject: [PATCH 167/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8481974 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 834a5af0829..18ab6d31efa 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -23,8 +23,7 @@ from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, - DataPacking__Unpack_LHCb__MCVPHitPacker_, - PrTrackerDumper, PVDumper) + DataPacking__Unpack_LHCb__MCVPHitPacker_, PrTrackerDumper, PVDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector @@ -262,6 +261,7 @@ def get_best_tracks_checkers( efficiency_checkers.append(checker) return efficiency_checkers + def make_track_filter(InputTracks, code): selector = LoKiTrackSelector(Code=code, StatPrint=True) filtered_tracks = TrackListRefiner( -- GitLab From 4ae8d9b9fbe60f36a76fc308f8550b4660ac4ab8 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Sat, 23 May 2020 17:06:15 +0200 Subject: [PATCH 168/199] set default input and conds hlt1 back to default --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 8c93e39c3e2..2bf391d876c 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -12,8 +12,6 @@ import os from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") - -options.evt_max = 10 +options.evt_max = 1000 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) -- GitLab From c81381b890b22f5bc79f911d32725ae109a7b53b Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Sun, 24 May 2020 14:34:22 +0200 Subject: [PATCH 169/199] running RetinaClutering before calling Allen --- .../options/default_input_and_conds_hlt1.py | 4 +- ..._reco_allen_retina_track_reconstruction.py | 53 +++++++++++++++++++ .../RecoConf/calorimeter_reconstruction.py | 8 +-- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 10 ++-- hlt1_options.py | 44 +++++++++++++++ hlt1_retinacluster.py | 21 ++++++++ 6 files changed, 126 insertions(+), 14 deletions(-) create mode 100644 Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py create mode 100644 hlt1_options.py create mode 100644 hlt1_retinacluster.py diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 8c93e39c3e2..0e61030fe8c 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") -options.evt_max = 10 +options.evt_max = 100 -execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) +#execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py new file mode 100644 index 00000000000..8cfc3d254d1 --- /dev/null +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -0,0 +1,53 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +from Moore import options, run_allen_reconstruction +from Moore.config import Reconstruction +from RecoConf.hlt1_tracking import require_gec, make_velo_full_retinaclusters +from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks +from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers +from Configurables import RunAllen +from PyConf.application import default_raw_event + +dumpBinaries = True +outputDir = "dump/" + +options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') + +def hlt1_reco_allen_retina_tracks(): + + make_clusters = make_velo_full_retinaclusters(make_raw=default_raw_event) + allen_tracks = make_allen_tracks() + + types_and_locations_for_checkers = { + "Velo": allen_tracks["Velo"], + "Upstream": allen_tracks["Upstream"], + "Forward": allen_tracks["Forward"], + } + + data = get_track_checkers(types_and_locations_for_checkers) + data.append(make_clusters) + + if dumpBinaries: + data.append( + make_dumped_raw_banks( + dump_to_file=True, output_dir=outputDir + "banks")) + data.append( + tracker_dumper( + dump_to_root=False, + dump_to_binary=True, + bin_output_dir=outputDir + "MC_info/tracks")) + data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) + + return Reconstruction('allen_reco', data, [require_gec()]) + + +run_allen_reconstruction(options, hlt1_reco_allen_retina_tracks, dumpBinaries) + diff --git a/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py b/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py index 976a553624d..1a7ae8b553b 100644 --- a/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py +++ b/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py @@ -10,13 +10,7 @@ ############################################################################### from PyConf.Algorithms import ( CaloFutureRawToDigits, FutureCellularAutomatonAlg, CaloFutureShowerOverlap, - CaloFutureClusterCovarianceAlg, InEcalFutureAcceptanceAlg, - FuturePhotonMatchAlg, ClassifyPhotonElectronAlg, CaloFutureMergedPi0, - InHcalFutureAcceptanceAlg, FutureInBremFutureAcceptanceAlg, - FutureElectronMatchAlg, BremMatchAlgFuture, FutureTrack2EcalEAlg, - FutureTrack2HcalEAlg, FutureClusChi22ID, FutureEcalChi22ID, - BremChi22IDFuture, FutureEcalPIDeAlg, BremPIDeAlgFuture, FutureHcalPIDeAlg, - FutureEcalPIDmuAlg, FutureHcalPIDmuAlg, + CaloFutureClusterCovarianceAlg, ClassifyPhotonElectronAlg, CaloFutureMergedPi0, LHCb__Calo__Asssociators__CaloHypo2Tracks as CaloHypo2Tracks) from PyConf.Tools import (CaloFutureECorrection, CaloFutureSCorrection, CaloFutureLCorrection, CaloFutureDigitFilterTool) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 45f5af84a07..992901d456a 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -115,10 +115,10 @@ def make_VeloClusterTrackingSIMD_hits( DataHandle: VeloClusterTrackingSIMD's HitsLocation. """ #<<<<<<< HEAD - return VeloClusterTrackingSIMD( - RawEventLocation=make_raw(["VP"])).HitsLocation +# return VeloClusterTrackingSIMD( +# RawEventLocation=make_raw(["VP"])).HitsLocation #======= -# return make_tracks(RawEventLocation=make_raw()).HitsLocation + return make_tracks(RawEventLocation=make_raw()).HitsLocation #>>>>>>> FPGAclusteringMoore @@ -164,9 +164,9 @@ def make_VeloClusterTrackingSIMD_tracks( A dict mapping forward-, backward-going and v2 velo tracks to ``'Pr'``, ``'Pr::backward'`` and ``'v2'`` respectively. """ #<<<<<<< HEAD - tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw(["VP"])) +# tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw(["VP"])) #======= -# tracking = make_tracks(RawEventLocation=make_raw()) + tracking = make_tracks(RawEventLocation=make_raw()) #>>>>>>> FPGAclusteringMoore forward_going_tracks = tracking.TracksLocation backward_going_tracks = tracking.TracksBackwardLocation diff --git a/hlt1_options.py b/hlt1_options.py new file mode 100644 index 00000000000..8190e4b8468 --- /dev/null +++ b/hlt1_options.py @@ -0,0 +1,44 @@ +RetinaCluster = True +mc_checking = True +import os +from Moore import options, run_reconstruction + +if mc_checking: + options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') + options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +else: + options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') + options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') + +options.evt_max = 100 +options.scheduler_legacy_mode = False +options.histo_file = 'histo.root' +#options.output_level = 2 +options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_1_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_2_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_3_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_4_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_5_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_6_retinaCluster.digi'] + +from RecoConf.standalone import standalone_hlt1_reco_retinacluster +with standalone_hlt1_reco_retinacluster.bind(do_mc_checking=mc_checking): + run_reconstruction(options, standalone_hlt1_reco_retinacluster) + +""" +if RetinaCluster: + if mc_checking: + options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_1_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_2_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_3_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_4_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_5_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_6_retinaCluster.digi'] + else: + options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_retinaCluster.mdf'] + with standalone_hlt1_reco_retinacluster.bind(do_mc_checking=mc_checking): + run_reconstruction(options, standalone_hlt1_reco_retinacluster) +else: + with standalone_hlt1_reco.bind(do_mc_checking=mc_checking): + run_reconstruction(options, standalone_hlt1_reco) +""" diff --git a/hlt1_retinacluster.py b/hlt1_retinacluster.py new file mode 100644 index 00000000000..7399aad2d6b --- /dev/null +++ b/hlt1_retinacluster.py @@ -0,0 +1,21 @@ +import os +from Moore import options + +options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_1_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_2_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_3_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_4_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_5_retinaCluster.digi', + 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_6_retinaCluster.digi'] + + +options.evt_max = 100 +options.scheduler_legacy_mode = False +options.histo_file = 'histo.root' +#options.output_level = 2 + +options.input_type = "ROOT" +options.dddb_tag = "dddb-20180815" +options.conddb_tag = "sim-20180530-vc-md100" + + -- GitLab From c272097924c2f418584be5c679700dab892f46ae Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Sun, 24 May 2020 14:47:55 +0200 Subject: [PATCH 170/199] remove hlt1_options.py hlt1_retinacluster.py --- hlt1_options.py | 44 ------------------------------------------- hlt1_retinacluster.py | 21 --------------------- 2 files changed, 65 deletions(-) delete mode 100644 hlt1_options.py delete mode 100644 hlt1_retinacluster.py diff --git a/hlt1_options.py b/hlt1_options.py deleted file mode 100644 index 8190e4b8468..00000000000 --- a/hlt1_options.py +++ /dev/null @@ -1,44 +0,0 @@ -RetinaCluster = True -mc_checking = True -import os -from Moore import options, run_reconstruction - -if mc_checking: - options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') - options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -else: - options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') - options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') - -options.evt_max = 100 -options.scheduler_legacy_mode = False -options.histo_file = 'histo.root' -#options.output_level = 2 -options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_1_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_2_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_3_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_4_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_5_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_6_retinaCluster.digi'] - -from RecoConf.standalone import standalone_hlt1_reco_retinacluster -with standalone_hlt1_reco_retinacluster.bind(do_mc_checking=mc_checking): - run_reconstruction(options, standalone_hlt1_reco_retinacluster) - -""" -if RetinaCluster: - if mc_checking: - options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_1_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_2_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_3_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_4_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_5_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_6_retinaCluster.digi'] - else: - options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_retinaCluster.mdf'] - with standalone_hlt1_reco_retinacluster.bind(do_mc_checking=mc_checking): - run_reconstruction(options, standalone_hlt1_reco_retinacluster) -else: - with standalone_hlt1_reco.bind(do_mc_checking=mc_checking): - run_reconstruction(options, standalone_hlt1_reco) -""" diff --git a/hlt1_retinacluster.py b/hlt1_retinacluster.py deleted file mode 100644 index 7399aad2d6b..00000000000 --- a/hlt1_retinacluster.py +++ /dev/null @@ -1,21 +0,0 @@ -import os -from Moore import options - -options.input_files = ['root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_1_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_2_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_3_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_4_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_5_retinaCluster.digi', - 'root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_6_retinaCluster.digi'] - - -options.evt_max = 100 -options.scheduler_legacy_mode = False -options.histo_file = 'histo.root' -#options.output_level = 2 - -options.input_type = "ROOT" -options.dddb_tag = "dddb-20180815" -options.conddb_tag = "sim-20180530-vc-md100" - - -- GitLab From fad220a0b70b3fa8cfc1e00e430572922098cb6b Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Sun, 24 May 2020 12:48:45 +0000 Subject: [PATCH 171/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8500001 --- ...1_reco_allen_retina_track_reconstruction.py | 2 +- .../RecoConf/calorimeter_reconstruction.py | 5 +++-- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 8cfc3d254d1..7a03a94cf8e 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -21,6 +21,7 @@ outputDir = "dump/" options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') + def hlt1_reco_allen_retina_tracks(): make_clusters = make_velo_full_retinaclusters(make_raw=default_raw_event) @@ -50,4 +51,3 @@ def hlt1_reco_allen_retina_tracks(): run_allen_reconstruction(options, hlt1_reco_allen_retina_tracks, dumpBinaries) - diff --git a/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py b/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py index 1a7ae8b553b..ac04fea0957 100644 --- a/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py +++ b/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py @@ -10,8 +10,9 @@ ############################################################################### from PyConf.Algorithms import ( CaloFutureRawToDigits, FutureCellularAutomatonAlg, CaloFutureShowerOverlap, - CaloFutureClusterCovarianceAlg, ClassifyPhotonElectronAlg, CaloFutureMergedPi0, - LHCb__Calo__Asssociators__CaloHypo2Tracks as CaloHypo2Tracks) + CaloFutureClusterCovarianceAlg, ClassifyPhotonElectronAlg, + CaloFutureMergedPi0, LHCb__Calo__Asssociators__CaloHypo2Tracks as + CaloHypo2Tracks) from PyConf.Tools import (CaloFutureECorrection, CaloFutureSCorrection, CaloFutureLCorrection, CaloFutureDigitFilterTool) from PyConf.application import default_raw_event diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 992901d456a..1b1383a0e3f 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -114,11 +114,13 @@ def make_VeloClusterTrackingSIMD_hits( Returns: DataHandle: VeloClusterTrackingSIMD's HitsLocation. """ -#<<<<<<< HEAD -# return VeloClusterTrackingSIMD( -# RawEventLocation=make_raw(["VP"])).HitsLocation -#======= + #<<<<<<< HEAD + # return VeloClusterTrackingSIMD( + # RawEventLocation=make_raw(["VP"])).HitsLocation + #======= return make_tracks(RawEventLocation=make_raw()).HitsLocation + + #>>>>>>> FPGAclusteringMoore @@ -163,11 +165,11 @@ def make_VeloClusterTrackingSIMD_tracks( Returns: A dict mapping forward-, backward-going and v2 velo tracks to ``'Pr'``, ``'Pr::backward'`` and ``'v2'`` respectively. """ -#<<<<<<< HEAD -# tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw(["VP"])) -#======= + #<<<<<<< HEAD + # tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw(["VP"])) + #======= tracking = make_tracks(RawEventLocation=make_raw()) -#>>>>>>> FPGAclusteringMoore + #>>>>>>> FPGAclusteringMoore forward_going_tracks = tracking.TracksLocation backward_going_tracks = tracking.TracksBackwardLocation v2_tracks = TracksVPMergerConverter( -- GitLab From 3b1162de7cb42a26e7cc6144a0aaed34dbae0364 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 25 May 2020 18:20:37 +0200 Subject: [PATCH 172/199] remove histograms that were added for comparison document --- Hlt/RecoConf/scripts/utils/ConfigHistos.py | 35 +++++----------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/Hlt/RecoConf/scripts/utils/ConfigHistos.py b/Hlt/RecoConf/scripts/utils/ConfigHistos.py index bff198c719b..816fc5c8c58 100644 --- a/Hlt/RecoConf/scripts/utils/ConfigHistos.py +++ b/Hlt/RecoConf/scripts/utils/ConfigHistos.py @@ -70,25 +70,20 @@ def getCuts(): basedict["Velo"] = [ "01_velo", "02_long", "03_long_P>5GeV", "04_long_strange", - "05_long_strange_P>5GeV", "06_long_fromB", "06_long_fromD", - "07_long_fromB_P>5GeV", "11_long_fromB_P>3GeV_Pt>0.5GeV", - "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "05_long_strange_P>5GeV", "06_long_fromB", "07_long_fromB_P>5GeV", + "11_long_fromB_P>3GeV_Pt>0.5GeV", "12_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Upstream"] = [ "01_velo", "02_velo+UT", "03_velo+UT_P>5GeV", "07_long", - "08_long_P>5GeV", "09_long_fromB", "09_long_fromD", - "10_long_fromB_P>5GeV", "14_long_fromB_P>3GeV_Pt>0.5GeV", - "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" + "08_long_P>5GeV", "09_long_fromB", "10_long_fromB_P>5GeV", + "14_long_fromB_P>3GeV_Pt>0.5GeV", "15_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] basedict["Forward"] = [ "01_long", "02_long_P>5GeV", "03_long_strange", - "04_long_strange_P>5GeV", "05_long_fromB", "05_long_fromD", - "06_long_fromB_P>5GeV", "10_long_fromB_P>3GeV_Pt>0.5GeV", - "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" - ] - basedict["MuonMatch"] = [ - "01_long", "02_long_muon", "03_long_muon_from_strange", "04_long_pion" + "04_long_strange_P>5GeV", "05_long_fromB", "06_long_fromB_P>5GeV", + "10_long_fromB_P>3GeV_Pt>0.5GeV", "11_UT_long_fromB_P>3GeV_Pt>0.5GeV" ] + basedict["MuonMatch"] = ["01_long", "02_long_muon"] return basedict @@ -100,16 +95,6 @@ def categoriesDict(): "title"] = "Long, forward track, 2 <#eta< 5" basedict["MuonMatch"]["02_long_muon"][ "title"] = "Long, #mu, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["02_long_muon_P>3GeV_Pt>0.5GeV"][ - "title"] = "Long, #mu, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_muon_from_strange"][ - "title"] = "Long, #mu from strange, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["03_long_muon_from_strange_P>3GeV_Pt>0.5GeV"][ - "title"] = "Long, #mu from strange, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" - basedict["MuonMatch"]["04_long_pion"][ - "title"] = "Long, #pi, forward track, 2 <#eta< 5" - basedict["MuonMatch"]["04_long_pion_P>3GeV_Pt>0.5GeV"][ - "title"] = "Long, #pi, forward track, p>3GeV, pt>0.5GeV, 2 <#eta< 5" basedict["Velo"]["01_velo"]["title"] = "Velo, 2 <#eta< 5" basedict["Velo"]["02_long"]["title"] = "Long, 2 <#eta< 5" @@ -119,7 +104,6 @@ def categoriesDict(): basedict["Velo"]["05_long_strange_P>5GeV"][ "title"] = "Long, from Strange, p>5GeV, 2 <#eta < 5" basedict["Velo"]["06_long_fromB"]["title"] = "Long from B, 2<#eta<5" - basedict["Velo"]["06_long_fromD"]["title"] = "Long from D, 2<#eta<5" basedict["Velo"]["07_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV, 2<#eta<5" basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -134,7 +118,6 @@ def categoriesDict(): basedict["Velo"]["04_long_strange"]["plotElectrons"] = False basedict["Velo"]["05_long_strange_P>5GeV"]["plotElectrons"] = False basedict["Velo"]["06_long_fromB"]["plotElectrons"] = True - basedict["Velo"]["06_long_fromD"]["plotElectrons"] = False basedict["Velo"]["07_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Velo"]["11_long_fromB_P>3GeV_Pt>0.5GeV"]["plotElectrons"] = False basedict["Velo"]["11_long_strange_P>3GeV_Pt>0.5GeV"][ @@ -157,7 +140,6 @@ def categoriesDict(): basedict["Upstream"]["08_long_P>5GeV"][ "title"] = "Long, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["09_long_fromB"]["title"] = "Long from B, 2 <#eta < 5" - basedict["Upstream"]["09_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Upstream"]["10_long_fromB_P>5GeV"][ "title"] = "Long from B, p>5GeV, 2 <#eta < 5" basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -173,7 +155,6 @@ def categoriesDict(): basedict["Upstream"]["07_long"]["plotElectrons"] = True basedict["Upstream"]["08_long_P>5GeV"]["plotElectrons"] = False basedict["Upstream"]["09_long_fromB"]["plotElectrons"] = True - basedict["Upstream"]["09_long_fromD"]["plotElectrons"] = False basedict["Upstream"]["10_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Upstream"]["14_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False @@ -201,7 +182,6 @@ def categoriesDict(): "title"] = "Long from B, p>5GeV 2 <#eta < 5" basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from B, p>3GeV, pt>0.5GeV, 2 <#eta < 5" - basedict["Forward"]["05_long_fromD"]["title"] = "Long from D, 2 <#eta < 5" basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "title"] = "Long from strange, p>3GeV, pt>0.5GeV, 2 <#eta < 5" basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ @@ -215,7 +195,6 @@ def categoriesDict(): basedict["Forward"]["06_long_fromB_P>5GeV"]["plotElectrons"] = True basedict["Forward"]["10_long_fromB_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False - basedict["Forward"]["05_long_fromD"]["plotElectrons"] = False basedict["Forward"]["10_long_strange_P>3GeV_Pt>0.5GeV"][ "plotElectrons"] = False basedict["Forward"]["11_UT_long_fromB_P>3GeV_Pt>0.5GeV"][ -- GitLab From ade1a25cfc869da90e4ff5a1ee35df30ee41438d Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Tue, 26 May 2020 17:18:59 +0200 Subject: [PATCH 173/199] add VPRetinaClusterCreator --- .../options/hlt1_reco_allen_retina_track_reconstruction.py | 6 ++++-- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 7a03a94cf8e..a6759055075 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -15,6 +15,7 @@ from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers from Configurables import RunAllen from PyConf.application import default_raw_event +from PyConf.Algorithms import VPRetinaClusterCreator dumpBinaries = True outputDir = "dump/" @@ -24,7 +25,8 @@ options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') def hlt1_reco_allen_retina_tracks(): - make_clusters = make_velo_full_retinaclusters(make_raw=default_raw_event) + retina_cluster = VPRetinaClusterCreator() + retina_raw_banks = VPRetinaClusterCreator().RetinaClusterLocation allen_tracks = make_allen_tracks() types_and_locations_for_checkers = { @@ -39,7 +41,7 @@ def hlt1_reco_allen_retina_tracks(): if dumpBinaries: data.append( make_dumped_raw_banks( - dump_to_file=True, output_dir=outputDir + "banks")) + RawEventLocationRetina=retina_raw_banks, dump_to_file=True, output_dir=outputDir + "banks")) data.append( tracker_dumper( dump_to_root=False, diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 497131f5401..cf1298743b5 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -21,11 +21,13 @@ from PyConf.Algorithms import HltDecReportsDecoder @configurable def make_dumped_raw_banks(make_raw=default_raw_event, + retina_raw_location="", odin_location=make_odin, dump_to_file=False, output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), + RawEventLocationRetina=retina_raw_location, ODINLocation=odin_location(), DumpToFile=dump_to_file, OutputDirectory=output_dir).AllenRawInput -- GitLab From 4923163e40fd21775ddb16bb2f96608117cda295 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 26 May 2020 15:20:34 +0000 Subject: [PATCH 174/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8531886 --- .../options/hlt1_reco_allen_retina_track_reconstruction.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index a6759055075..5db84e94d12 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -15,7 +15,7 @@ from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers from Configurables import RunAllen from PyConf.application import default_raw_event -from PyConf.Algorithms import VPRetinaClusterCreator +from PyConf.Algorithms import VPRetinaClusterCreator dumpBinaries = True outputDir = "dump/" @@ -41,7 +41,9 @@ def hlt1_reco_allen_retina_tracks(): if dumpBinaries: data.append( make_dumped_raw_banks( - RawEventLocationRetina=retina_raw_banks, dump_to_file=True, output_dir=outputDir + "banks")) + RawEventLocationRetina=retina_raw_banks, + dump_to_file=True, + output_dir=outputDir + "banks")) data.append( tracker_dumper( dump_to_root=False, -- GitLab From 6bfc3e3760717350ee1d485c4f766ee381584e24 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Tue, 26 May 2020 17:33:27 +0200 Subject: [PATCH 175/199] add VPRetinaClusterCreator --- .../options/hlt1_reco_allen_retina_track_reconstruction.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 5db84e94d12..d4192e988dd 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -25,7 +25,7 @@ options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') def hlt1_reco_allen_retina_tracks(): - retina_cluster = VPRetinaClusterCreator() + retina_clusters = VPRetinaClusterCreator() retina_raw_banks = VPRetinaClusterCreator().RetinaClusterLocation allen_tracks = make_allen_tracks() @@ -36,7 +36,7 @@ def hlt1_reco_allen_retina_tracks(): } data = get_track_checkers(types_and_locations_for_checkers) - data.append(make_clusters) + data.append(retina_clusters) if dumpBinaries: data.append( -- GitLab From eeef847f1baa60fb8837f32a83a853b7caab0472 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Wed, 27 May 2020 00:15:23 +0200 Subject: [PATCH 176/199] process RetinaCluster --- .../options/retina_input_and_conds_hlt1.py | 19 +++++++++++++++++++ ..._reco_allen_retina_track_reconstruction.py | 10 +++++----- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 4 ++-- 3 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py new file mode 100644 index 00000000000..0e61030fe8c --- /dev/null +++ b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py @@ -0,0 +1,19 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +import os +from Moore import options + +options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") + +options.evt_max = 100 + +#execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index d4192e988dd..05357fe9ada 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -17,7 +17,7 @@ from Configurables import RunAllen from PyConf.application import default_raw_event from PyConf.Algorithms import VPRetinaClusterCreator -dumpBinaries = True +dumpBinaries = False outputDir = "dump/" options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') @@ -25,8 +25,8 @@ options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') def hlt1_reco_allen_retina_tracks(): - retina_clusters = VPRetinaClusterCreator() - retina_raw_banks = VPRetinaClusterCreator().RetinaClusterLocation + RetinaClustering = VPRetinaClusterCreator(RawEventLocation=default_raw_event()) + retina_raw_banks = RetinaClustering.RetinaClusterLocation allen_tracks = make_allen_tracks() types_and_locations_for_checkers = { @@ -36,12 +36,12 @@ def hlt1_reco_allen_retina_tracks(): } data = get_track_checkers(types_and_locations_for_checkers) - data.append(retina_clusters) + data.append(RetinaClustering) if dumpBinaries: data.append( make_dumped_raw_banks( - RawEventLocationRetina=retina_raw_banks, + make_raw=RetinaClustering.RetinaClusterLocation, dump_to_file=True, output_dir=outputDir + "banks")) data.append( diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index cf1298743b5..db801c4919d 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -21,13 +21,13 @@ from PyConf.Algorithms import HltDecReportsDecoder @configurable def make_dumped_raw_banks(make_raw=default_raw_event, - retina_raw_location="", +# retina_raw_location="", odin_location=make_odin, dump_to_file=False, output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), - RawEventLocationRetina=retina_raw_location, +# RawEventLocationRetina=retina_raw_location, ODINLocation=odin_location(), DumpToFile=dump_to_file, OutputDirectory=output_dir).AllenRawInput -- GitLab From aece0369f17072d67c09a52840681a5e6464ba0c Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 26 May 2020 22:16:38 +0000 Subject: [PATCH 177/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8536963 --- .../hlt1_reco_allen_retina_track_reconstruction.py | 3 ++- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 05357fe9ada..5e3640fc71f 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -25,7 +25,8 @@ options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') def hlt1_reco_allen_retina_tracks(): - RetinaClustering = VPRetinaClusterCreator(RawEventLocation=default_raw_event()) + RetinaClustering = VPRetinaClusterCreator( + RawEventLocation=default_raw_event()) retina_raw_banks = RetinaClustering.RetinaClusterLocation allen_tracks = make_allen_tracks() diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index db801c4919d..defe40978d8 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -20,14 +20,15 @@ from PyConf.Algorithms import HltDecReportsDecoder @configurable -def make_dumped_raw_banks(make_raw=default_raw_event, -# retina_raw_location="", - odin_location=make_odin, - dump_to_file=False, - output_dir="dump/banks"): +def make_dumped_raw_banks( + make_raw=default_raw_event, + # retina_raw_location="", + odin_location=make_odin, + dump_to_file=False, + output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), -# RawEventLocationRetina=retina_raw_location, + # RawEventLocationRetina=retina_raw_location, ODINLocation=odin_location(), DumpToFile=dump_to_file, OutputDirectory=output_dir).AllenRawInput -- GitLab From acd880d0ebc2082a58ffdb6c4ae66624d235e18c Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Wed, 27 May 2020 20:56:30 +0200 Subject: [PATCH 178/199] dump RetinaCluster in Allen --- .../options/retina_input_and_conds_hlt1.py | 6 ++--- ..._reco_allen_retina_track_reconstruction.py | 12 +++------ Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 26 ++++++++++++++++--- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py index 0e61030fe8c..1f754a707ba 100644 --- a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py @@ -11,9 +11,9 @@ import os from Moore import options -options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") +#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") -options.evt_max = 100 +options.evt_max = 2000 #execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 5e3640fc71f..d69c7d1da72 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -11,23 +11,21 @@ from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_velo_full_retinaclusters -from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks +from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks, make_allen_output from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers from Configurables import RunAllen from PyConf.application import default_raw_event from PyConf.Algorithms import VPRetinaClusterCreator -dumpBinaries = False +dumpBinaries = True outputDir = "dump/" -options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') +#options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') def hlt1_reco_allen_retina_tracks(): - RetinaClustering = VPRetinaClusterCreator( - RawEventLocation=default_raw_event()) - retina_raw_banks = RetinaClustering.RetinaClusterLocation allen_tracks = make_allen_tracks() types_and_locations_for_checkers = { @@ -37,12 +35,10 @@ def hlt1_reco_allen_retina_tracks(): } data = get_track_checkers(types_and_locations_for_checkers) - data.append(RetinaClustering) if dumpBinaries: data.append( make_dumped_raw_banks( - make_raw=RetinaClustering.RetinaClusterLocation, dump_to_file=True, output_dir=outputDir + "banks")) data.append( diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index defe40978d8..2378e5ec847 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -17,21 +17,39 @@ from PyConf.Algorithms import ( AllenVeloToV2Tracks, AllenUTToV2Tracks, AllenForwardToV2Tracks, AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder - - +from PyConf.Algorithms import VPRetinaClusterCreator +""" @configurable def make_dumped_raw_banks( make_raw=default_raw_event, - # retina_raw_location="", + retina_raw_location="", odin_location=make_odin, dump_to_file=False, output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), - # RawEventLocationRetina=retina_raw_location, + RetinaRawEventLocation=retina_raw_location, ODINLocation=odin_location(), DumpToFile=dump_to_file, OutputDirectory=output_dir).AllenRawInput +""" + +@configurable +def make_dumped_raw_banks( + make_raw=default_raw_event, + odin_location=make_odin, + dump_to_file=False, + output_dir="dump/banks"): + RetinaClustering = VPRetinaClusterCreator( + RawEventLocation=make_raw()) + RawBanksDumping = DumpRawBanks( + RawEventLocation=make_raw(), + RawEventLocationRetina=RetinaClustering.RetinaClusterLocation, + ODINLocation=odin_location(), + DumpToFile=dump_to_file, + OutputDirectory=output_dir) + return RawBanksDumping.AllenRawInput + def make_allen_output(odin_location=make_odin, -- GitLab From f4b5aca82b270a20857fbaf06c4f809b34657cb2 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 27 May 2020 18:57:24 +0000 Subject: [PATCH 179/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8556072 --- .../hlt1_reco_allen_retina_track_reconstruction.py | 4 ++-- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 14 ++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index d69c7d1da72..f0f7657e887 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -21,6 +21,7 @@ dumpBinaries = True outputDir = "dump/" options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') + #options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') @@ -39,8 +40,7 @@ def hlt1_reco_allen_retina_tracks(): if dumpBinaries: data.append( make_dumped_raw_banks( - dump_to_file=True, - output_dir=outputDir + "banks")) + dump_to_file=True, output_dir=outputDir + "banks")) data.append( tracker_dumper( dump_to_root=False, diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 2378e5ec847..ac4472c88f2 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -34,14 +34,13 @@ def make_dumped_raw_banks( OutputDirectory=output_dir).AllenRawInput """ + @configurable -def make_dumped_raw_banks( - make_raw=default_raw_event, - odin_location=make_odin, - dump_to_file=False, - output_dir="dump/banks"): - RetinaClustering = VPRetinaClusterCreator( - RawEventLocation=make_raw()) +def make_dumped_raw_banks(make_raw=default_raw_event, + odin_location=make_odin, + dump_to_file=False, + output_dir="dump/banks"): + RetinaClustering = VPRetinaClusterCreator(RawEventLocation=make_raw()) RawBanksDumping = DumpRawBanks( RawEventLocation=make_raw(), RawEventLocationRetina=RetinaClustering.RetinaClusterLocation, @@ -51,7 +50,6 @@ def make_dumped_raw_banks( return RawBanksDumping.AllenRawInput - def make_allen_output(odin_location=make_odin, dumped_raw_banks=make_dumped_raw_banks, filter_hlt1=False, -- GitLab From 67d46ee69a6712546102d086238c2bec9639bae3 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Fri, 29 May 2020 16:32:47 +0200 Subject: [PATCH 180/199] modify MC_matching for RetinaCluster --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index eb2ce7a73ab..32ccd4bbeec 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -30,7 +30,7 @@ from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import ( make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits) + make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, make_velo_full_retinaclusters) from Hlt2Conf.data_from_file import mc_unpackers @@ -60,7 +60,7 @@ def make_links_veloclusters_mcparticles(make_clusters=make_velo_full_clusters): @configurable def make_links_lhcbids_mcparticles_tracking_system( - make_clusters=make_velo_full_clusters): + make_clusters=make_velo_full_retinaclusters): return PrLHCbID2MCParticle( MCParticlesLocation=mc_unpackers()["MCParticles"], VPFullClustersLocation=make_clusters(), -- GitLab From 90ee9248a679482bfe64001dc08ceb34b1599efb Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 29 May 2020 14:33:51 +0000 Subject: [PATCH 181/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8586422 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 32ccd4bbeec..26cd3253f07 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -30,7 +30,8 @@ from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector from RecoConf.hlt1_tracking import ( make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, make_velo_full_retinaclusters) + make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, + make_velo_full_retinaclusters) from Hlt2Conf.data_from_file import mc_unpackers -- GitLab From ee72bff10af0630d45dbcdad6c59a8d0cfc0f603 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Tue, 2 Jun 2020 17:37:16 +0200 Subject: [PATCH 182/199] dump correct MC_info for RetinaCluster --- .../options/retina_input_and_conds_hlt1.py | 4 +-- ..._reco_allen_retina_track_reconstruction.py | 10 +++---- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 8 ++--- Hlt/RecoConf/python/RecoConf/mc_checking.py | 30 +++++++++++++++++-- 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py index 1f754a707ba..385fd025328 100644 --- a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py @@ -11,8 +11,8 @@ import os from Moore import options -#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") +options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") options.evt_max = 2000 diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index f0f7657e887..de2861e68fc 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -11,8 +11,8 @@ from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec, make_velo_full_retinaclusters -from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks, make_allen_output -from RecoConf.mc_checking import tracker_dumper, pv_dumper, get_track_checkers +from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks_retina, make_allen_output +from RecoConf.mc_checking import tracker_dumper_retina, pv_dumper, get_track_checkers, make_links_lhcbids_mcparticles_tracking_system_retina from Configurables import RunAllen from PyConf.application import default_raw_event from PyConf.Algorithms import VPRetinaClusterCreator @@ -35,14 +35,14 @@ def hlt1_reco_allen_retina_tracks(): "Forward": allen_tracks["Forward"], } - data = get_track_checkers(types_and_locations_for_checkers) + data = get_track_checkers(types_and_locations_for_checkers, make_links_lhcbids_mcparticles=make_links_lhcbids_mcparticles_tracking_system_retina) if dumpBinaries: data.append( - make_dumped_raw_banks( + make_dumped_raw_banks_retina( dump_to_file=True, output_dir=outputDir + "banks")) data.append( - tracker_dumper( + tracker_dumper_retina( dump_to_root=False, dump_to_binary=True, bin_output_dir=outputDir + "MC_info/tracks")) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index ac4472c88f2..f3b8b71cc4e 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -18,25 +18,23 @@ from PyConf.Algorithms import ( AllenPVsToRecVertexV2, AllenDecReportsToTES, DumpRawBanks, RunAllen) from PyConf.Algorithms import HltDecReportsDecoder from PyConf.Algorithms import VPRetinaClusterCreator -""" + @configurable def make_dumped_raw_banks( make_raw=default_raw_event, - retina_raw_location="", odin_location=make_odin, dump_to_file=False, output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), - RetinaRawEventLocation=retina_raw_location, + RawEventLocationRetina=make_raw(), ODINLocation=odin_location(), DumpToFile=dump_to_file, OutputDirectory=output_dir).AllenRawInput -""" @configurable -def make_dumped_raw_banks(make_raw=default_raw_event, +def make_dumped_raw_banks_retina(make_raw=default_raw_event, odin_location=make_odin, dump_to_file=False, output_dir="dump/banks"): diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 9bc05e68308..d600edd9557 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -22,7 +22,7 @@ from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, - TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, + TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, VPRetinaClusterDecoder, DataPacking__Unpack_LHCb__MCVPHitPacker_, PrTrackerDumper, PVDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool @@ -60,7 +60,7 @@ def make_links_veloclusters_mcparticles(make_clusters=make_velo_full_clusters): @configurable def make_links_lhcbids_mcparticles_tracking_system( - make_clusters=make_velo_full_retinaclusters): + make_clusters=make_velo_full_clusters): return PrLHCbID2MCParticle( MCParticlesLocation=mc_unpackers()["MCParticles"], VPFullClustersLocation=make_clusters(), @@ -74,6 +74,11 @@ def make_links_lhcbids_mcparticles_tracking_system( '/Event/Link/Raw/FT/LiteClusters')).TargetName +@configurable +def make_links_lhcbids_mcparticles_tracking_system_retina(): + return make_links_lhcbids_mcparticles_tracking_system(make_clusters=make_velo_full_retinaclusters) + + @configurable def make_links_lhcbids_mcparticles_tracking_and_muon_system( make_clusters=make_velo_full_clusters): @@ -349,6 +354,27 @@ def tracker_dumper(odin_location=make_odin, MCOutputDirectory=bin_output_dir) +def tracker_dumper_retina(odin_location=make_odin, + root_output_dir="dump/TrackerDumper", + bin_output_dir="dump/MC_info/tracks", + dump_to_root=True, + dump_to_binary=False): + links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system_retina() + RetinaDecoder = VPRetinaClusterDecoder(RawEventLocation=default_raw_event()) + + return PrTrackerDumper( + MCParticlesLocation=mc_unpackers()["MCParticles"], + VPLightClusterLocation=RetinaDecoder.ClusterLocation, + FTHitsLocation=make_PrStoreFTHit_hits(), + UTHitsLocation=make_PrStoreUTHit_hits(), + ODINLocation=odin_location(), + LinkerLocation=links_to_lhcbids, + DumpToROOT=dump_to_root, + DumpToBinary=dump_to_binary, + OutputDirectory=root_output_dir, + MCOutputDirectory=bin_output_dir) + + def pv_dumper(odin_location=make_odin, output_dir="dump/MC_info/PVs"): return PVDumper( MCVerticesLocation=mc_unpackers()["MCVertices"], -- GitLab From c86de3b3fdde36213e5704a7d347d5fcd66142c5 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Tue, 2 Jun 2020 19:03:10 +0200 Subject: [PATCH 183/199] add tracker_dumper_retina --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index d600edd9557..18f85f6a9d7 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -22,7 +22,7 @@ from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, - TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, VPRetinaClusterDecoder, + TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, VPRetinaClusterCreator, VPRetinaClusterDecoder, DataPacking__Unpack_LHCb__MCVPHitPacker_, PrTrackerDumper, PVDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool @@ -360,7 +360,8 @@ def tracker_dumper_retina(odin_location=make_odin, dump_to_root=True, dump_to_binary=False): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system_retina() - RetinaDecoder = VPRetinaClusterDecoder(RawEventLocation=default_raw_event()) + RetinaClustering = VPRetinaClusterCreator(RawEventLocation=default_raw_event()) + RetinaDecoder = VPRetinaClusterDecoder(RawEventLocation=RetinaClustering.RetinaClusterLocation) return PrTrackerDumper( MCParticlesLocation=mc_unpackers()["MCParticles"], -- GitLab From 607d32e11ecdb4ed844425a98e8c18a3ffe308ec Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 2 Jun 2020 19:42:26 +0000 Subject: [PATCH 184/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8629568 --- ..._reco_allen_retina_track_reconstruction.py | 5 ++++- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 16 +++++++------- Hlt/RecoConf/python/RecoConf/mc_checking.py | 22 +++++++++++-------- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index de2861e68fc..9cedad99002 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -35,7 +35,10 @@ def hlt1_reco_allen_retina_tracks(): "Forward": allen_tracks["Forward"], } - data = get_track_checkers(types_and_locations_for_checkers, make_links_lhcbids_mcparticles=make_links_lhcbids_mcparticles_tracking_system_retina) + data = get_track_checkers( + types_and_locations_for_checkers, + make_links_lhcbids_mcparticles= + make_links_lhcbids_mcparticles_tracking_system_retina) if dumpBinaries: data.append( diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index f3b8b71cc4e..852c63e727a 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -19,12 +19,12 @@ from PyConf.Algorithms import ( from PyConf.Algorithms import HltDecReportsDecoder from PyConf.Algorithms import VPRetinaClusterCreator + @configurable -def make_dumped_raw_banks( - make_raw=default_raw_event, - odin_location=make_odin, - dump_to_file=False, - output_dir="dump/banks"): +def make_dumped_raw_banks(make_raw=default_raw_event, + odin_location=make_odin, + dump_to_file=False, + output_dir="dump/banks"): return DumpRawBanks( RawEventLocation=make_raw(), RawEventLocationRetina=make_raw(), @@ -35,9 +35,9 @@ def make_dumped_raw_banks( @configurable def make_dumped_raw_banks_retina(make_raw=default_raw_event, - odin_location=make_odin, - dump_to_file=False, - output_dir="dump/banks"): + odin_location=make_odin, + dump_to_file=False, + output_dir="dump/banks"): RetinaClustering = VPRetinaClusterCreator(RawEventLocation=make_raw()) RawBanksDumping = DumpRawBanks( RawEventLocation=make_raw(), diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 18f85f6a9d7..c052bcebf1b 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -22,7 +22,8 @@ from PyConf.application import make_data_with_FetchDataFromFile from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, - TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, VPRetinaClusterCreator, VPRetinaClusterDecoder, + TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, + VPRetinaClusterCreator, VPRetinaClusterDecoder, DataPacking__Unpack_LHCb__MCVPHitPacker_, PrTrackerDumper, PVDumper) from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex from PyConf.Tools import LoKi__Hybrid__MCTool @@ -76,7 +77,8 @@ def make_links_lhcbids_mcparticles_tracking_system( @configurable def make_links_lhcbids_mcparticles_tracking_system_retina(): - return make_links_lhcbids_mcparticles_tracking_system(make_clusters=make_velo_full_retinaclusters) + return make_links_lhcbids_mcparticles_tracking_system( + make_clusters=make_velo_full_retinaclusters) @configurable @@ -355,14 +357,16 @@ def tracker_dumper(odin_location=make_odin, def tracker_dumper_retina(odin_location=make_odin, - root_output_dir="dump/TrackerDumper", - bin_output_dir="dump/MC_info/tracks", - dump_to_root=True, - dump_to_binary=False): + root_output_dir="dump/TrackerDumper", + bin_output_dir="dump/MC_info/tracks", + dump_to_root=True, + dump_to_binary=False): links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system_retina() - RetinaClustering = VPRetinaClusterCreator(RawEventLocation=default_raw_event()) - RetinaDecoder = VPRetinaClusterDecoder(RawEventLocation=RetinaClustering.RetinaClusterLocation) - + RetinaClustering = VPRetinaClusterCreator( + RawEventLocation=default_raw_event()) + RetinaDecoder = VPRetinaClusterDecoder( + RawEventLocation=RetinaClustering.RetinaClusterLocation) + return PrTrackerDumper( MCParticlesLocation=mc_unpackers()["MCParticles"], VPLightClusterLocation=RetinaDecoder.ClusterLocation, -- GitLab From 902b4b6688af81b20203f2cc6c0a71d20e13f9bb Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Wed, 3 Jun 2020 23:43:34 +0200 Subject: [PATCH 185/199] create somthing for retinacluster --- .../options/retina_input_and_conds_hlt1.py | 4 +- .../dump_binary_input_for_standalone_Allen.py | 38 +++++++++++++------ ..._reco_allen_retina_track_reconstruction.py | 7 ++-- Hlt/RecoConf/python/RecoConf/hlt1_allen.py | 22 ++++++----- 4 files changed, 43 insertions(+), 28 deletions(-) diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py index 385fd025328..1f754a707ba 100644 --- a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py @@ -11,8 +11,8 @@ import os from Moore import options -options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") +#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") options.evt_max = 2000 diff --git a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py index 7182200855a..07a4bdadb8d 100644 --- a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py +++ b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py @@ -10,24 +10,38 @@ ############################################################################### from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_allen import make_dumped_raw_banks -from RecoConf.mc_checking import tracker_dumper, pv_dumper +from RecoConf.hlt1_allen import make_dumped_raw_banks, make_dumped_raw_banks_retina +from RecoConf.mc_checking import tracker_dumper, tracker_dumper_retina, pv_dumper outputDir = "dump/" +retina_dumping = False def dump_allen_binary_input(): - data = [] - data.append( - make_dumped_raw_banks( - dump_to_file=True, output_dir=outputDir + "banks")) - data.append( - tracker_dumper( - dump_to_root=False, - dump_to_binary=True, - bin_output_dir=outputDir + "MC_info/tracks")) - data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) + if retina_dumping: + data = [] + data.append( + make_dumped_raw_banks_retina( + dump_to_file=True, output_dir=outputDir + "banks")) + data.append( + tracker_dumper_retina( + dump_to_root=False, + dump_to_binary=True, + bin_output_dir=outputDir + "MC_info/tracks")) + data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) + + else: + data = [] + data.append( + make_dumped_raw_banks( + dump_to_file=True, output_dir=outputDir + "banks")) + data.append( + tracker_dumper( + dump_to_root=False, + dump_to_binary=True, + bin_output_dir=outputDir + "MC_info/tracks")) + data.append(pv_dumper(output_dir=outputDir + "MC_info/PVs")) return Reconstruction('allen_dump', data) diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 9cedad99002..1713c4a4a38 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -10,12 +10,10 @@ ############################################################################### from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction -from RecoConf.hlt1_tracking import require_gec, make_velo_full_retinaclusters +from RecoConf.hlt1_tracking import require_gec from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks_retina, make_allen_output from RecoConf.mc_checking import tracker_dumper_retina, pv_dumper, get_track_checkers, make_links_lhcbids_mcparticles_tracking_system_retina from Configurables import RunAllen -from PyConf.application import default_raw_event -from PyConf.Algorithms import VPRetinaClusterCreator dumpBinaries = True outputDir = "dump/" @@ -27,7 +25,8 @@ options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') def hlt1_reco_allen_retina_tracks(): - allen_tracks = make_allen_tracks() + allen_tracks = make_allen_tracks( + dumped_raw_banks=make_dumped_raw_banks_retina) types_and_locations_for_checkers = { "Velo": allen_tracks["Velo"], diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py index 852c63e727a..8e4920d0438 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_allen.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_allen.py @@ -70,8 +70,8 @@ def make_allen_dec_reports(odin_location=make_odin, FilterHLT1=filter_hlt1).DecReportsLocation -def make_allen_velo_tracks(): - allen_output = make_allen_output() +def make_allen_velo_tracks(dumped_raw_banks=make_dumped_raw_banks): + allen_output = make_allen_output(dumped_raw_banks=dumped_raw_banks) velo_tracks_v2 = AllenVeloToV2Tracks(AllenOutput=allen_output).OutputTracks velo_tracks_v1 = FromV2TrackV1Track( InputTracksName=velo_tracks_v2).OutputTracksName @@ -79,8 +79,8 @@ def make_allen_velo_tracks(): return {"v2": velo_tracks_v2, "v1": velo_tracks_v1} -def make_allen_veloUT_tracks(): - allen_output = make_allen_output() +def make_allen_veloUT_tracks(dumped_raw_banks=make_dumped_raw_banks): + allen_output = make_allen_output(dumped_raw_banks=dumped_raw_banks) veloUT_tracks_v2 = AllenUTToV2Tracks(AllenOutput=allen_output).OutputTracks veloUT_tracks_v1 = FromV2TrackV1Track( InputTracksName=veloUT_tracks_v2).OutputTracksName @@ -88,8 +88,8 @@ def make_allen_veloUT_tracks(): return {"v2": veloUT_tracks_v2, "v1": veloUT_tracks_v1} -def make_allen_forward_tracks(): - allen_output = make_allen_output() +def make_allen_forward_tracks(dumped_raw_banks=make_dumped_raw_banks): + allen_output = make_allen_output(dumped_raw_banks=dumped_raw_banks) forward_tracks_v2 = AllenForwardToV2Tracks( AllenOutput=allen_output).OutputTracks forward_tracks_v1 = FromV2TrackV1Track( @@ -108,10 +108,12 @@ def make_allen_forward_muon_tracks(): return {"v2": forward_muon_tracks_v2, "v1": forward_muon_tracks_v1} -def make_allen_tracks(): - velo_tracks = make_allen_velo_tracks() - velo_ut_tracks = make_allen_veloUT_tracks() - forward_tracks = make_allen_forward_tracks() +def make_allen_tracks(dumped_raw_banks=make_dumped_raw_banks): + velo_tracks = make_allen_velo_tracks(dumped_raw_banks=dumped_raw_banks) + velo_ut_tracks = make_allen_veloUT_tracks( + dumped_raw_banks=dumped_raw_banks) + forward_tracks = make_allen_forward_tracks( + dumped_raw_banks=dumped_raw_banks) return { "Velo": velo_tracks, -- GitLab From 71bafd94c35f7ad89fc08bee2551f3d1c4fafba2 Mon Sep 17 00:00:00 2001 From: Dorothea vom Bruch Date: Mon, 8 Jun 2020 18:22:51 +0200 Subject: [PATCH 186/199] plug in comments from MR --- .gitignore | 5 -- CMakeLists.txt | 3 +- Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py | 1 - .../tests/options/test_allen_decreports.py | 2 +- Hlt/Moore/python/Moore/config.py | 51 ++++++++++--------- .../dump_binary_input_for_standalone_Allen.py | 9 +++- Hlt/RecoConf/python/RecoConf/mc_checking.py | 2 +- Hlt/RecoConf/python/RecoConf/standalone.py | 5 +- 8 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index b9f41309ca2..c06d4e5abab 100644 --- a/.gitignore +++ b/.gitignore @@ -58,8 +58,3 @@ i686-winxp-vc9-dbg/ # Sphinx by-products doc/_build doc/graphviz - -# physics performance output files -*.root -*.stdout -*.txt \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c85c75e26e4..a764b9b3369 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,8 @@ endif() # Declare project name and version gaudi_project(Moore v51r0 - USE Phys v31r0 Allen v0r7 + USE Phys v31r0 + Allen v0r9 DATA AppConfig VERSION v3r* FieldMap VERSION v5r* PRConfig VERSION v1r* diff --git a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py index 13ab4148750..808c5ff9891 100644 --- a/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py +++ b/Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py @@ -13,5 +13,4 @@ import os, json from Moore import options, run_allen from Hlt1Conf.settings import allen_lines -options.scheduler_legacy_mode = False run_allen(options, allen_lines) diff --git a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py index 431e910d371..a91ceb0bb69 100644 --- a/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py +++ b/Hlt/Hlt1Conf/tests/options/test_allen_decreports.py @@ -11,7 +11,7 @@ """Compare decisions from a log file to those stored in a MDF. Takes three outputs from a previously-ran job: the options dump, the log -file, and the MDF. The decisions printed by the control flow manager are +file, and the MDF. The decisions printed in the form of counters of the RunAllen algorithm are compared to those taken from the DecReports found in the MDF. Any difference between the two is considered a failure. The options dump is used to configure the HltANNSvc for the job ran by this script. diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 125ab066141..1ba9cb3e970 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -8,9 +8,14 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -import re +import re, os, json, logging, inspect from collections import namedtuple -from Configurables import LumiCounterMerger +from Configurables import (LumiCounterMerger, ApplicationMgr, + DumpUTGeometry, DumpFTGeometry, + DumpMuonTable, DumpMuonGeometry, + DumpVPGeometry, DumpMagneticField, + DumpBeamline, DumpUTLookupTables, + AllenUpdater) from PyConf import configurable from PyConf.Algorithms import (bankKiller, DeterministicPrescaler, ExecutionReportsWriter, HltDecReportsWriter, @@ -29,18 +34,20 @@ from PyConf.application import configure_input, configure from .selreports import make_selreports from .persistency import clone_candidates +from RecoConf.hlt1_allen import make_allen_dec_reports + +log = logging.getLogger(__name__) # FIXME _enabled is a workaround for using ConfigurableUser #: Global ApplicationOptions instance holding the options for Moore options = ApplicationOptions(_enabled=False) - def _format_location(l): """Return the TES location `l` formatted for an output writer. Arguments: l (str or DataHandle) - """ + """ # Accept `l` as a str or a DataHandle if isinstance(l, DataHandle): l = "{}#1".format(l.location) @@ -200,6 +207,7 @@ def report_writers_node(lines, ) algs.extend([erw, drw]) locations_to_persist.append(drw.OutputRawEventLocation) + hlt_ann_svc = setup_component( "HltANNSvc", # Zero is an invalid DecReport ID, so start from 1 @@ -331,11 +339,6 @@ def setup_allen_non_event_data_service(dump_binaries=False): An ExtSvc is added to the ApplicationMgr to provide the Allen non-event data (geometries etc.) """ - from Configurables import ApplicationMgr - from Configurables import DumpUTGeometry, DumpFTGeometry, DumpMuonTable - from Configurables import DumpMuonGeometry, DumpVPGeometry - from Configurables import DumpMagneticField, DumpBeamline, DumpUTLookupTables - from Configurables import AllenUpdater producers = [ p(DumpToFile=dump_binaries) for p in (DumpVPGeometry, DumpUTGeometry, DumpFTGeometry, @@ -351,17 +354,18 @@ def get_allen_hlt1_lines(): """Read Allen HLT1 lines from json configuration file """ - import os, json Hlt1SelectionIDs = {} - with open( - os.path.expandvars( - "$ALLEN_INSTALL_DIR/constants/Sequence.json")) as config_file: - config = (json.load(config_file)) - index = 1 - for line in config["configured_lines"]: - line_name = "Hlt1" + str(line) + "Decision" - Hlt1SelectionIDs[line_name] = index - index += 1 + config_file_path = "$ALLEN_INSTALL_DIR/constants/Sequence.json" + try: + with open(os.path.expandvars(config_file_path)) as config_file: + config = (json.load(config_file)) + except: + log.fatal("Could not find Allen sequence file %s; make sure you have built Allen", config_file_path) + index = 1 + for line in config["configured_lines"]: + line_name = "Hlt1" + str(line) + "Decision" + Hlt1SelectionIDs[line_name] = index + index += 1 return Hlt1SelectionIDs @@ -374,8 +378,6 @@ def setup_allen_Hlt1ANN(): hlt_ann_svc = setup_component( "HltANNSvc", Hlt1SelectionID=Hlt1SelectionIDs) - print Hlt1SelectionIDs - return Hlt1SelectionIDs @@ -395,7 +397,7 @@ def run_allen(options, make_lines): setup_allen_non_event_data_service() # Write DecReports raw banks - from RecoConf.hlt1_allen import make_allen_dec_reports + allen_dec_reports = make_allen_dec_reports() # We will write the reports to raw banks at these locations @@ -455,7 +457,7 @@ def run_allen(options, make_lines): def run_allen_reconstruction(options, make_reconstruction, - dumpBinaries=False, + dump_binaries=False, public_tools=[]): """Configure the Allen reconstruction data flow @@ -468,7 +470,7 @@ def run_allen_reconstruction(options, """ - setup_allen_non_event_data_service(dump_binaries=dumpBinaries) + setup_allen_non_event_data_service(dump_binaries=dump_binaries) return run_reconstruction( options, make_reconstruction, public_tools=public_tools) @@ -511,7 +513,6 @@ def _get_arg_default(function, name): Raises TypeError if ``function`` has no default keyword argument called ``name``. """ - import inspect spec = inspect.getargspec(function) try: i = spec.args.index(name) # ValueError if not found diff --git a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py index 7182200855a..12f448a5299 100644 --- a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py +++ b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py @@ -15,9 +15,16 @@ from RecoConf.mc_checking import tracker_dumper, pv_dumper outputDir = "dump/" - + def dump_allen_binary_input(): + """Dump input required for Allen standalone running into binary files + The following input is dumped: + - Raw bank content of the Velo, UT, SciFi, Muon, ODIN banks + - MC info from the TrackerDumper required for the Allen standalone checker + - Non-event data such as geometry information + """ + data = [] data.append( make_dumped_raw_banks( diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 500044128f5..ea36dbeb4f0 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -112,7 +112,7 @@ def monitor_tracking_efficiency( LinksToLHCbIDs, MCCategories, HitTypesToCheck, - WriteHistos=2, + WriteHistos=1, ): """ Setup tracking efficiency checker diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index c1222a6090d..14be61152ea 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -25,9 +25,7 @@ from .calorimeter_mc_checking import ( monitor_calo_photon_resolution, monitor_calo_pi0_resolution) from PyConf.Algorithms import CaloFutureDigit2MCLinks2Table from PyConf.Algorithms import CaloClusterMCTruth -from .mc_checking import get_track_checkers, get_best_tracks_checkers, tracker_dumper, pv_dumper -from .hlt1_allen import (make_allen_tracks, make_allen_pvs, - make_allen_dec_reports, make_dumped_raw_banks) +from .mc_checking import get_track_checkers, get_best_tracks_checkers from .reco_objects_from_file import reconstruction from .rich_reconstruction import make_rich_pids, make_rich_pixels, default_rich_reco_options from .rich_data_monitoring import (make_rich_pixel_monitors, @@ -36,7 +34,6 @@ from .rich_data_monitoring import (make_rich_pixel_monitors, from .rich_mc_checking import make_rich_checkers, default_rich_checking_options from .calo_data_monitoring import monitor_calo_clusters from PyConf.Algorithms import Rich__Future__Rec__TrackFilter as TrackFilter -from PyConf.Algorithms import HltDecReportsDecoder from GaudiKernel.SystemOfUnits import MeV, mm from Moore.config import Reconstruction -- GitLab From a2275a74211f669ee6c74b855d43cd6407ae4db3 Mon Sep 17 00:00:00 2001 From: Dorothea Vom Bruch Date: Mon, 8 Jun 2020 16:27:06 +0000 Subject: [PATCH 187/199] Apply suggestion to Hlt/RecoConf/python/RecoConf/mc_checking.py --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index ea36dbeb4f0..25a09f00002 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -16,9 +16,11 @@ from PyConf.tonic import (configurable) from PyConf.dataflow import DataHandle from PyConf.components import Tool -from PyConf.application import default_raw_event, make_odin -from PyConf.application import make_data_with_FetchDataFromFile -from PyConf.application import default_raw_event, make_data_with_FetchDataFromFile +from PyConf.application import ( + default_raw_event, + make_data_with_FetchDataFromFile, + make_odin, +) from PyConf.Algorithms import ( VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, -- GitLab From ecad7405fb0311a1941d6d1e934cb8395cec0a62 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Mon, 8 Jun 2020 16:27:50 +0000 Subject: [PATCH 188/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8711440 --- Hlt/Moore/python/Moore/config.py | 21 ++++++++++--------- .../dump_binary_input_for_standalone_Allen.py | 6 +++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Hlt/Moore/python/Moore/config.py b/Hlt/Moore/python/Moore/config.py index 1ba9cb3e970..531f5496d61 100644 --- a/Hlt/Moore/python/Moore/config.py +++ b/Hlt/Moore/python/Moore/config.py @@ -10,12 +10,10 @@ ############################################################################### import re, os, json, logging, inspect from collections import namedtuple -from Configurables import (LumiCounterMerger, ApplicationMgr, - DumpUTGeometry, DumpFTGeometry, - DumpMuonTable, DumpMuonGeometry, - DumpVPGeometry, DumpMagneticField, - DumpBeamline, DumpUTLookupTables, - AllenUpdater) +from Configurables import (LumiCounterMerger, ApplicationMgr, DumpUTGeometry, + DumpFTGeometry, DumpMuonTable, DumpMuonGeometry, + DumpVPGeometry, DumpMagneticField, DumpBeamline, + DumpUTLookupTables, AllenUpdater) from PyConf import configurable from PyConf.Algorithms import (bankKiller, DeterministicPrescaler, ExecutionReportsWriter, HltDecReportsWriter, @@ -34,7 +32,7 @@ from PyConf.application import configure_input, configure from .selreports import make_selreports from .persistency import clone_candidates -from RecoConf.hlt1_allen import make_allen_dec_reports +from RecoConf.hlt1_allen import make_allen_dec_reports log = logging.getLogger(__name__) @@ -42,12 +40,13 @@ log = logging.getLogger(__name__) #: Global ApplicationOptions instance holding the options for Moore options = ApplicationOptions(_enabled=False) + def _format_location(l): """Return the TES location `l` formatted for an output writer. Arguments: l (str or DataHandle) - """ + """ # Accept `l` as a str or a DataHandle if isinstance(l, DataHandle): l = "{}#1".format(l.location) @@ -357,10 +356,12 @@ def get_allen_hlt1_lines(): Hlt1SelectionIDs = {} config_file_path = "$ALLEN_INSTALL_DIR/constants/Sequence.json" try: - with open(os.path.expandvars(config_file_path)) as config_file: + with open(os.path.expandvars(config_file_path)) as config_file: config = (json.load(config_file)) except: - log.fatal("Could not find Allen sequence file %s; make sure you have built Allen", config_file_path) + log.fatal( + "Could not find Allen sequence file %s; make sure you have built Allen", + config_file_path) index = 1 for line in config["configured_lines"]: line_name = "Hlt1" + str(line) + "Decision" diff --git a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py index 12f448a5299..5b35101f15b 100644 --- a/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py +++ b/Hlt/RecoConf/options/dump_binary_input_for_standalone_Allen.py @@ -15,7 +15,7 @@ from RecoConf.mc_checking import tracker_dumper, pv_dumper outputDir = "dump/" - + def dump_allen_binary_input(): """Dump input required for Allen standalone running into binary files @@ -23,8 +23,8 @@ def dump_allen_binary_input(): - Raw bank content of the Velo, UT, SciFi, Muon, ODIN banks - MC info from the TrackerDumper required for the Allen standalone checker - Non-event data such as geometry information - """ - + """ + data = [] data.append( make_dumped_raw_banks( -- GitLab From a111d4f2748f8806cb88ee5cd655a7b42bb5130f Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Tue, 23 Jun 2020 11:08:22 +0200 Subject: [PATCH 189/199] add dumping retina clusters --- Hlt/Moore/tests/options/default_input_and_conds_hlt1.py | 2 +- Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py | 9 ++++++--- .../hlt1_reco_allen_retina_track_reconstruction.py | 7 +------ 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index b42bae71350..8c93e39c3e2 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -14,6 +14,6 @@ from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") -options.evt_max = 1000 +options.evt_max = 10 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py index 1f754a707ba..eb55a687c57 100644 --- a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py @@ -12,8 +12,11 @@ import os from Moore import options #options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") - +#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") +options.set_input_from_testfiledb("Upgrade_KstEE_MD_FTv4_DIGI") options.evt_max = 2000 -#execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) +#options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') +#options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') +options.set_conds_from_testfiledb('Upgrade_KstEE_MD_FTv4_DIGI') + diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 1713c4a4a38..4391dbbf384 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -11,18 +11,13 @@ from Moore import options, run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.hlt1_tracking import require_gec -from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks_retina, make_allen_output +from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks_retina from RecoConf.mc_checking import tracker_dumper_retina, pv_dumper, get_track_checkers, make_links_lhcbids_mcparticles_tracking_system_retina from Configurables import RunAllen dumpBinaries = True outputDir = "dump/" -options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') - -#options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') - - def hlt1_reco_allen_retina_tracks(): allen_tracks = make_allen_tracks( -- GitLab From dd0a89ddd959170ce0689a1d575eaa3171321024 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Tue, 23 Jun 2020 09:09:31 +0000 Subject: [PATCH 190/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8924568 --- Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py | 1 - .../options/hlt1_reco_allen_retina_track_reconstruction.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py index eb55a687c57..c8cb91e2e17 100644 --- a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py @@ -19,4 +19,3 @@ options.evt_max = 2000 #options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') #options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') options.set_conds_from_testfiledb('Upgrade_KstEE_MD_FTv4_DIGI') - diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 4391dbbf384..6db6e577db2 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -18,6 +18,7 @@ from Configurables import RunAllen dumpBinaries = True outputDir = "dump/" + def hlt1_reco_allen_retina_tracks(): allen_tracks = make_allen_tracks( -- GitLab From 1a7fdc20766032d2db898e2ee67bc5cadfc28e18 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Wed, 24 Jun 2020 16:42:52 +0200 Subject: [PATCH 191/199] added VP/VPDAQ from LHCb (LHCb/lingzhu_Allen_Moore_Retina_integration) --- .git-lb-checkout | 3 + VP/VPDAQ/CMakeLists.txt | 34 ++ VP/VPDAQ/doc/release.notes | 126 +++++++ VP/VPDAQ/src/VPRetinaClusterCreator.cpp | 317 ++++++++++++++++ VP/VPDAQ/src/VPRetinaClusterDecoder.cpp | 224 +++++++++++ VP/VPDAQ/src/VPRetinaFullCluster.h | 47 +++ VP/VPDAQ/src/VPRetinaFullClustering.cpp | 449 +++++++++++++++++++++++ VP/VPDAQ/src/VPRetinaMatrix.cpp | 207 +++++++++++ VP/VPDAQ/src/VPRetinaMatrix.h | 59 +++ VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp | 211 +++++++++++ 10 files changed, 1677 insertions(+) create mode 100644 .git-lb-checkout create mode 100644 VP/VPDAQ/CMakeLists.txt create mode 100755 VP/VPDAQ/doc/release.notes create mode 100644 VP/VPDAQ/src/VPRetinaClusterCreator.cpp create mode 100644 VP/VPDAQ/src/VPRetinaClusterDecoder.cpp create mode 100644 VP/VPDAQ/src/VPRetinaFullCluster.h create mode 100644 VP/VPDAQ/src/VPRetinaFullClustering.cpp create mode 100644 VP/VPDAQ/src/VPRetinaMatrix.cpp create mode 100644 VP/VPDAQ/src/VPRetinaMatrix.h create mode 100644 VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp diff --git a/.git-lb-checkout b/.git-lb-checkout new file mode 100644 index 00000000000..3ad31fd041c --- /dev/null +++ b/.git-lb-checkout @@ -0,0 +1,3 @@ +[lb-checkout "LHCb.VP/VPDAQ"] + base = 9bcefba7385e033d199b6aade4a82561670ba306 + imported = 9b316706feb8b8a0957980b83d0cb56069d31389 diff --git a/VP/VPDAQ/CMakeLists.txt b/VP/VPDAQ/CMakeLists.txt new file mode 100644 index 00000000000..f4361eebbff --- /dev/null +++ b/VP/VPDAQ/CMakeLists.txt @@ -0,0 +1,34 @@ +############################################################################### +# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +################################################################################ +# Package: VPDAQ +################################################################################ +gaudi_subdir(VPDAQ) + +gaudi_depends_on_subdirs(Det/VPDet + DAQ/DAQUtils + DAQ/DAQKernel + Event/DAQEvent + Event/DigiEvent + VP/VPKernel + GaudiAlg + Kernel/LHCbKernel) + +find_package(AIDA) +find_package(Boost) +find_package(ROOT) +include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}) + +gaudi_add_module(VPDAQ + src/*.cpp + INCLUDE_DIRS AIDA Event/DigiEvent Pr/PrKernel + LINK_LIBRARIES VPDetLib TrackEvent DAQEventLib DAQKernelLib GaudiAlgLib LHCbKernel) + diff --git a/VP/VPDAQ/doc/release.notes b/VP/VPDAQ/doc/release.notes new file mode 100755 index 00000000000..6610081da8c --- /dev/null +++ b/VP/VPDAQ/doc/release.notes @@ -0,0 +1,126 @@ +!----------------------------------------------------------------------------- +! Package : VP/VPDAQ +! Responsible : Kurt Rinnert, Karol Hennessy +! Purpose : Prepare VP RawBank and decode it +!----------------------------------------------------------------------------- + +!========================= VPDAQ v2r8 2016-03-16 ========================= +! 2016-02-02 - Gerhard Raven + - modernize code + +!========================= VPDAQ v2r7p1 2015-10-12 ========================= +! 2015-08-03 - Gerhard Raven + - remove #include of obsolete Gaudi headers + +!========================= VPDAQ v2r7 2014-05-12 ========================= +! 2014-05-04 - Heinrich Schindler + - Replace hard-coded array size by constants. + +! 2014-04-25 - Heinrich Schindler + - Follow changes in VPChannelID format (r171869). + +! 2014-04-14 - Heinrich Schindler + - Remove do-nothing finalize method. + - Run clang-format for consistent style. + +! 2014-04-04 - Heinrich Schindler + - Remove en/decoders for old, cluster-based raw banks. + - Remove unnecessary dependencies. + +! 2014-04-01 - Heinrich Schindler + - Remove VPLiteCluster include statements from PrepareVPRawBank. + - Remove VPRawBankToLiteCluster algorithm. + +! 2014-03-30 - Heinrich Schindler + - Follow changes in VPCluster format (revision r170715). + +! 2014-03-24 - Heinrich Schindler + - Follow changes in VPDigit format and location names (revision r170468). + +!========================= VPDAQ v2r6 2014-03-17 ========================= +! 2014-03-13 - Heinrich Schindler + - Follow changes in VPCluster format (revision r169999). + +! 2014-03-06 - Kurt Rinnert + - added encoder for Super Pixel raw bank from digits. + +!========================= VPDAQ v2r5 2014-02-17 ========================= +! 2014-02-13 - Rob Lambert + - Adapt VP decoder tool to Decoder base classes, task #49078 + +!========================= VPDAQ v2r4 2013-09-30 ========================= +! 2013-09-25 - Tim Evans + - Added VPDigit raw bank encoding and decoding + +! 2013-09-09 - Heinrich Schindler + - Follow detector element and channel ID changes (r162190, 162191) + +! 2013-07-25 - Rob Lambert + - Added DAQ/DAQUtils dependency to resolve build-order. + +!========================= VPDAQ v2r3 2013-07-18 ========================= +! 2013-06-13 - Marco Cattaneo + - Fix UNINIT_CTOR defects + - Fix untested StatusCode from Warning() messages + - Clean up unnecessary includes + - Remove empty finalize methods + +!========================= VPDAQ v2r2 2013-04-22 ========================= +! 2013-04-11 - Sascha Stahl + - Added back acccdidentally removed protection for RawEventLocations. + +! 2013-04-05 - Sascha Stahl + - Added vector of RawEventLocations. + +!========================= VPDAQ v2r1 2012-11-28 ========================= +! 2012-11-21 - Marco Clemencic + - Added CMake configuration file. + - Modified requirements to simplify auto conversion to CMake. + +! 2012-10-19 - Marco Cattaneo + - Fix potential memory leak in VPRawBankToLiteCluster and do not return + StatusCode::FAILURE from execute + - Use getItExists + - Fix UNINIT_CTOR defects + - Fix unprotected debug() + - Fix gcc -pedantic warnings + +!========================= VPDAQ v2r0 2012-10-01 ========================= +! 2012-09-24 - Paul Szczypka + - Rename Package to VPDAQ + - Rename files and code from VeloPix to VP. + +!========================= VeloPixDAQ v1r4 2011-04-05 ========================= +! 2011-03-17 -Wenbin Qian + - remove some information output from previous change +! 2011-03-17 - Wenbin Qian + - bug fix for VeloPixRawBankToLiteCluster.cpp + +!========================= VeloPixDAQ v1r3 2010-09-28 ======================= +! 2010-09-22 - Victor Coco + - Replace hardcoded container location by proper location definition + +!========================= VeloPixDAQ v1r2p1 2010-06-21 ===================== +! 2010-06-10 - Marco Cattaneo + - Fix windows compiler warnings + +!========================= VeloPixDAQ v1r2 2010-03-30 ===================== +! 2010-03-30 - Victor Coco + - Add in VeloPixRawBankToPartialCluster some checks in case of duplicated + channelID (probably comes from an earlier bug, temporary solution) + +!========================= VeloPixDAQ v1r1 2010-03-18 ===================== + +! 2010-03-01 - Victor Coco + - Add VeloPixRawBankToPartialCluster to have partial decoding of the + VeloPixCluster: get central ChannelID + LiteCluster. + Add sorting of the FastClusterContainer in VeloPixRawBankToLiteCluster + +!========================= VeloPixDAQ v1r0 2010-01-25 ===================== +! 2010-01-25 Marcin Kucharczyk + - Fix the problem with pattern in PrepareVeloPixRawBank + corresponding to Windows compilation problems + +! 2010-01-21 Marcin Kucharczyk + - First release + diff --git a/VP/VPDAQ/src/VPRetinaClusterCreator.cpp b/VP/VPDAQ/src/VPRetinaClusterCreator.cpp new file mode 100644 index 00000000000..1dd5086cfb3 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaClusterCreator.cpp @@ -0,0 +1,317 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "DetDesc/ConditionAccessorHolder.h" +#include "Event/RawBank.h" +#include "Event/RawEvent.h" +#include "Event/VPLightCluster.h" +#include "GaudiAlg/Transformer.h" +#include "GaudiKernel/Transform3DTypes.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include "VPDet/DeVP.h" +#include "VPKernel/PixelUtils.h" +#include "VPKernel/VeloPixelInfo.h" +#include "VPRetinaMatrix.h" +#include +#include +#include +#include +#include + +/** @class VPRetinaClusterCreator VPRetinaClusterCreator.h + * Algorithm to create RetinaCluster Raw Bank from SuperPixel. + * + * There is one raw bank per sensor, that is the sensor number (0-207) + * is the source ID of the bank. Note that this means there is no + * need to encode the sensor in the RetinaCluster addresses. + * + * Each bank has a four byte word header, followed by a four byte + * RetinaCluster word for each RetinaCluster on the sensor. + * + * The header word is currently simply the number of RetinaCluster + * on the sensor. + * + * The RetinaCluster word encoding is the following: + * + * bit 0-2 RetinaCluster Fraction Row (0-1 by step of 0.125) + * bit 3-10 RetinaCluster Row (0-255) + * bit 11-13 RetinaCluster Fraction Column (0-1 by step of 0.125) + * bit 14-23 RetinaCluster Column (0-767) + * bit 24-25 SensorID in the module + * bit 26-31 UNUSED + * + * @author Federico Lazzari + * @date 2018-06-20 + */ + +class VPRetinaClusterCreator : public Gaudi::Functional::Transformer { + +public: + /// Standard constructor + VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ); + + /// Algorithm execution + LHCb::RawEvent operator()( const LHCb::RawEvent& ) const override; + +private: + /// bank version. (change this every time semantics change!) + static constexpr unsigned int m_bankVersion = 2; + + /// make RetinaClusters from bank + std::vector makeRetinaClusters( LHCb::span bank, const unsigned int sensor ) const; + Gaudi::Property m_chain_length{ + this, "chain_length", 20, + "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; +}; + +using namespace LHCb; + +DECLARE_COMPONENT( VPRetinaClusterCreator ) + +namespace { + struct SPCache { + std::array fxy; + unsigned char pattern; + unsigned char nx1; + unsigned char nx2; + unsigned char ny1; + unsigned char ny2; + }; + //========================================================================= + // Cache Super Pixel cluster patterns. + //========================================================================= + auto create_SPPatterns() { + std::array SPCaches; + // create a cache for all super pixel cluster patterns. + // this is an unoptimized 8-way flood fill on the 8 pixels + // in the super pixel. + // no point in optimizing as this is called once in + // initialize() and only takes about 20 us. + + // define deltas to 8-connectivity neighbours + const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; + const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; + + // clustering buffer for isolated superpixels. + unsigned char sp_buffer[8]; + + // SP index buffer and its size for single SP clustering + unsigned char sp_idx[8]; + unsigned char sp_idx_size = 0; + + // stack and stack pointer for single SP clustering + unsigned char sp_stack[8]; + unsigned char sp_stack_ptr = 0; + + // loop over all possible SP patterns + for ( unsigned int sp = 0; sp < 256; ++sp ) { + sp_idx_size = 0; + for ( unsigned int shift = 0; shift < 8; ++shift ) { + const unsigned char p = sp & ( 1 << shift ); + sp_buffer[shift] = p; + if ( p ) { sp_idx[sp_idx_size++] = shift; } + } + + // loop over pixels in this SP and use them as + // cluster seeds. + // note that there are at most two clusters + // in a single super pixel! + unsigned char clu_idx = 0; + for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { + unsigned char idx = sp_idx[ip]; + + if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used + + sp_stack_ptr = 0; + sp_stack[sp_stack_ptr++] = idx; + sp_buffer[idx] = 0; + unsigned char x = 0; + unsigned char y = 0; + unsigned char n = 0; + + while ( sp_stack_ptr ) { + idx = sp_stack[--sp_stack_ptr]; + const unsigned char row = idx % 4; + const unsigned char col = idx / 4; + x += col; + y += row; + ++n; + + for ( unsigned int ni = 0; ni < 8; ++ni ) { + const char ncol = col + dx[ni]; + if ( ncol < 0 || ncol > 1 ) continue; + const char nrow = row + dy[ni]; + if ( nrow < 0 || nrow > 3 ) continue; + const unsigned char nidx = ( ncol << 2 ) | nrow; + if ( 0 == sp_buffer[nidx] ) continue; + sp_stack[sp_stack_ptr++] = nidx; + sp_buffer[nidx] = 0; + } + } + + const uint32_t cx = x / n; + const uint32_t cy = y / n; + const float fx = x / static_cast( n ) - cx; + const float fy = y / static_cast( n ) - cy; + + // store the centroid pixel + SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; + + // set the two cluster flag if this is the second cluster + SPCaches[sp].pattern |= clu_idx << 3; + + // set the pixel fractions + SPCaches[sp].fxy[2 * clu_idx] = fx; + SPCaches[sp].fxy[2 * clu_idx + 1] = fy; + + // increment cluster count. note that this can only become 0 or 1! + ++clu_idx; + } + } + return SPCaches; + } + // SP pattern buffers for clustering, cached once. + // There are 256 patterns and there can be at most two + // distinct clusters in an SP. + static const std::array s_SPCaches = create_SPPatterns(); +} // namespace + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaClusterCreator::VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ) + : Transformer( name, pSvcLocator, {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}}, + KeyValue{"RetinaClusterLocation", LHCb::RawEventLocation::VeloCluster} ) {} + +//============================================================================= +// Main execution +//============================================================================= +LHCb::RawEvent VPRetinaClusterCreator::operator()( const LHCb::RawEvent& rawEvent ) const { + RawEvent result; + + const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); + if ( tBanks.empty() ) return result; + + const unsigned int version = tBanks[0]->version(); + if ( version != 2 ) { + warning() << "Unsupported raw bank version (" << version << ")" << endmsg; + return result; + } + + debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; + + unsigned int nBanks = 0; + + // Loop over VP RawBanks + for ( auto iterBank : tBanks ) { + + const unsigned int sensor = iterBank->sourceID(); + + auto sensorCluster = makeRetinaClusters( iterBank->range(), sensor ); + + result.addBank( sensor, LHCb::RawBank::VPRetinaCluster, m_bankVersion, sensorCluster ); + + ++nBanks; + + } // loop over all banks + + debug() << "Added " << nBanks << " raw banks of retina clusters to TES" << endmsg; + + return result; +} + +//============================================================================= +// make RetinaClusters from bank +//============================================================================= +std::vector VPRetinaClusterCreator::makeRetinaClusters( LHCb::span bank, + const unsigned int sensor ) const { + + assert( bank.size() == 1 + bank[0] ); + + const uint32_t sensorID_in_module = sensor % ::VP::NSensorsPerModule; + + std::vector RetinaMatrixVector; + RetinaMatrixVector.reserve( m_chain_length ); + std::vector RetinaCluster; + // reserve space for RetinaCluster + // # RetinaCluster <= # SP + RetinaCluster.reserve( bank.size() ); + // reserve first word for # RetinaCluster + RetinaCluster.push_back( 0 ); + + // Read super pixel + for ( const uint32_t sp_word : bank.subspan( 1 ) ) { + + uint8_t sp = sp_word & 0xFFU; + + if ( 0 == sp ) continue; // protect against zero super pixels. + + const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; + const uint32_t sp_row = sp_addr & 0x3FU; + const uint32_t sp_col = ( sp_addr >> 6 ); + const uint32_t no_sp_neighbours = sp_word & 0x80000000U; + + // if a super pixel is not isolated + // we use Retina Clustering Algorithm + if ( !no_sp_neighbours ) { + // we look for already created Retina + auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), + [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); + if ( iterRetina != RetinaMatrixVector.end() ) { + iterRetina->AddSP( sp_row, sp_col, sp ); + continue; + } else { + // if we have not reached maximum chain length + // we create a new retina + if ( RetinaMatrixVector.size() < m_chain_length ) { + RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); + continue; + } + } + } + // if a super pixel is isolated or the RetinaMatrix chain is full + // the clustering boils down to a simple pattern look up. + + // there is always at least one cluster in the super + // pixel. look up the pattern and add it. + + // remove after caches rewrite + const auto& spcache = s_SPCaches[sp]; + const uint32_t idx = spcache.pattern; + + const uint32_t row = idx & 0x03U; + const uint32_t col = ( idx >> 2 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + if ( idx & 8 ) { + const uint32_t row = ( idx >> 4 ) & 3; + const uint32_t col = ( idx >> 6 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + } + + } // loop over super pixels in raw bank + + // searchRetinaCluster + for ( auto& m : RetinaMatrixVector ) { + const auto& clusters = m.SearchCluster(); + RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); + }; + + RetinaCluster[0] = RetinaCluster.size() - 1; + return RetinaCluster; +} diff --git a/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp b/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp new file mode 100644 index 00000000000..b02437eeb2c --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp @@ -0,0 +1,224 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "DetDesc/ConditionAccessorHolder.h" +#include "Event/RawBank.h" +#include "Event/RawEvent.h" +#include "Event/VPLightCluster.h" +#include "GaudiAlg/Transformer.h" +#include "GaudiKernel/Transform3DTypes.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include "VPDet/DeVP.h" +#include "VPKernel/PixelUtils.h" +#include "VPKernel/VeloPixelInfo.h" +#include +#include +#include +#include + +namespace VPRetina { + enum class ErrorCode : StatusCode::code_t { + BANK_VERSION_UNKNOWN, + EMPTY_BANK, + BANK_SIZE_INCONSISTENT, + BAD_MAGIC, + BAD_SOURCE_ID + }; + struct ErrorCategory : StatusCode::Category { + const char* name() const override { return "VPRetinaDecoder"; } + bool isRecoverable( StatusCode::code_t ) const override { return false; } + std::string message( StatusCode::code_t code ) const override { + switch ( static_cast( code ) ) { + case ErrorCode::BANK_VERSION_UNKNOWN: + return "Bank version unknown"; + case ErrorCode::EMPTY_BANK: + return "Empty bank"; + case ErrorCode::BANK_SIZE_INCONSISTENT: + return "Bank size and declared number of clusters inconsistent"; + case ErrorCode::BAD_MAGIC: + return "Wrong magic number for bank"; + case ErrorCode::BAD_SOURCE_ID: + return "Source ID not in the expected range"; + default: + return StatusCode::default_category().message( code ); + } + } + }; +} // namespace VPRetina +STATUSCODE_ENUM_DECL( VPRetina::ErrorCode ) +STATUSCODE_ENUM_IMPL( VPRetina::ErrorCode, VPRetina::ErrorCategory ) + +[[gnu::noreturn]] void throw_exception( VPRetina::ErrorCode ec, const char* tag ) { + auto sc = StatusCode( ec ); + throw GaudiException{sc.message(), tag, std::move( sc )}; +} +#define OOPS( x ) throw_exception( x, __PRETTY_FUNCTION__ ) + +struct VPRetinaClusterGeomCache { + + std::array, VP::NSensors> m_ltg; // 9*208 = 9*number of sensors + LHCb::span m_local_x; + LHCb::span m_x_pitch; + float m_pixel_size; + + VPRetinaClusterGeomCache( const DeVP& det ) { + m_local_x = det.sensor( 0 ).xLocal(); + m_x_pitch = det.sensor( 0 ).xPitch(); + m_pixel_size = det.sensor( 0 ).pixelSize(); + det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { + // get the local to global transformation matrix and + // store it in a flat float array of sixe 12. + Gaudi::Rotation3D ltg_rot; + Gaudi::TranslationXYZ ltg_trans; + sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); + assert( sensor.sensorNumber() < m_ltg.size() ); + auto& ltg = m_ltg[sensor.sensorNumber()]; + ltg_rot.GetComponents( ltg.data() ); + ltg[2] = ltg_trans.X(); + ltg[5] = ltg_trans.Y(); + ltg[8] = ltg_trans.Z(); + } ); + } +}; + +// Namespace for locations in TES +namespace LHCb { + namespace VPClusterLocation { + inline const std::string Offsets = "Raw/VP/LightClustersOffsets"; + } +} // namespace LHCb + +class VPRetinaClusterDecoder + : public Gaudi::Functional::MultiTransformer< + std::tuple, std::array>( + const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ), + LHCb::DetDesc::usesConditions> { + +public: + /// Standard constructor + VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ); + + /// Algorithm initialization + StatusCode initialize() override; + + /// Algorithm execution + std::tuple, std::array> + operator()( const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ) const override; + +private: + std::bitset m_modulesToSkipMask; + Gaudi::Property> m_modulesToSkip{this, + "ModulesToSkip", + {}, + [=]( auto& ) { + m_modulesToSkipMask.reset(); + for ( auto i : m_modulesToSkip ) + m_modulesToSkipMask.set( i ); + }, + Gaudi::Details::Property::ImmediatelyInvokeHandler{true}, + "List of modules that should be skipped in decoding"}; + mutable Gaudi::Accumulators::AveragingCounter<> m_nBanks{this, "Number of banks"}; + mutable Gaudi::Accumulators::AveragingCounter<> m_nClusters{this, "Number of clusters"}; +}; + +DECLARE_COMPONENT( VPRetinaClusterDecoder ) + +using namespace Pixel; + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaClusterDecoder::VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ) + : MultiTransformer( name, pSvcLocator, + {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, + KeyValue{"GeomCacheLocation", "VPRetinaClusterDecoder-" + name + "-GeomCache"}}, + {KeyValue{"ClusterLocation", LHCb::VPClusterLocation::Light}, + KeyValue{"ClusterOffsets", LHCb::VPClusterLocation::Offsets}} ) {} + +//============================================================================= +// Initialization +//============================================================================= +StatusCode VPRetinaClusterDecoder::initialize() { + return MultiTransformer::initialize().andThen( [&] { + addConditionDerivation( {DeVPLocation::Default}, + inputLocation() ); + } ); +} + +//============================================================================= +// Main execution +//============================================================================= +std::tuple, std::array> +VPRetinaClusterDecoder::operator()( const LHCb::RawEvent& rawEvent, const VPRetinaClusterGeomCache& cache ) const { + auto result = std::tuple, std::array>{}; + auto& [clusters, offsets] = result; + + const auto& banks = rawEvent.banks( LHCb::RawBank::VPRetinaCluster ); + m_nBanks += banks.size(); + if ( banks.empty() ) return result; + + const unsigned int version = banks[0]->version(); + if ( version != 1 ) OOPS( VPRetina::ErrorCode::BANK_VERSION_UNKNOWN ); + + // Since 'clusters` is local, to first preallocate, then count hits per module, + // and then preallocate per module and move hits might not be faster than adding + // directly to the PixelModuleHits (which would require more allocations, but + // not many if we start with a sensible default) + constexpr unsigned int startSize = 10000U; + clusters.reserve( startSize ); + + // Loop over VP RawBanks + for ( const auto* bank : banks ) { + if ( LHCb::RawBank::MagicPattern != bank->magic() ) OOPS( VPRetina::ErrorCode::BAD_MAGIC ); + + const unsigned int module = bank->sourceID(); + if ( module == 0 || module > VP::NModules ) OOPS( VPRetina::ErrorCode::BAD_SOURCE_ID ); + + if ( m_modulesToSkipMask[module - 1] ) continue; + + const unsigned int sensor0 = ( module - 1 ) * VP::NSensorsPerModule; + + auto data = bank->range(); + if ( data.empty() ) OOPS( VPRetina::ErrorCode::EMPTY_BANK ); + + const uint32_t ncluster = data[0]; + if ( data.size() != ncluster + 1 ) OOPS( VPRetina::ErrorCode::BANK_SIZE_INCONSISTENT ); + data = data.subspan( 1 ); + + // Read clusters + std::transform( data.begin(), data.end(), std::back_inserter( clusters ), + [&]( const uint32_t cluster_word ) -> LHCb::VPLightCluster { + const unsigned int sensor = sensor0 + ( cluster_word >> 24 ); + const uint32_t cx = ( cluster_word >> 14 ) & 0x3FF; + const float fx = ( ( cluster_word >> 11 ) & 0x7 ) / 8.f; + const uint32_t cy = ( cluster_word >> 3 ) & 0xFF; + const float fy = ( cluster_word & 0x7 ) / 8.f; + const uint32_t chip = cx / CHIP_COLUMNS; + const uint32_t ccol = cx % CHIP_COLUMNS; + + const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; + const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; + + const auto& ltg = cache.m_ltg[sensor]; + const float gx = ( ltg[0] * local_x + ltg[1] * local_y + ltg[2] ); + const float gy = ( ltg[3] * local_x + ltg[4] * local_y + ltg[5] ); + const float gz = ( ltg[6] * local_x + ltg[7] * local_y + ltg[8] ); + + return {1, 1, gx, gy, gz, LHCb::VPChannelID{sensor, chip, ccol, cy}}; + } ); + offsets[module] += ncluster; + } // loop over all banks + + std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); + m_nClusters += offsets.back(); + + return result; +} diff --git a/VP/VPDAQ/src/VPRetinaFullCluster.h b/VP/VPDAQ/src/VPRetinaFullCluster.h new file mode 100644 index 00000000000..44581bb26dc --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaFullCluster.h @@ -0,0 +1,47 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#ifndef VPRETINAFULLCLUSTER_H +#define VPRETINAFULLCLUSTER_H 1 + +#include "Kernel/VPChannelID.h" +#include +#include + +/* + * @author Federico Lazzari + * @date 2018-06-22 + */ + +namespace LHCb { + + class VPRetinaFullCluster final { + public: + /// Constructor + VPRetinaFullCluster( const uint32_t word, std::vector channelIDs ) + : m_word( word ), m_channelIDs( std::move( channelIDs ) ) {} + + /// + uint32_t word() const noexcept { return m_word; } + + /// + const std::vector& channelIDs() const noexcept { return m_channelIDs; } + + private: + uint32_t m_word; /// RetinaCluster value + std::vector m_channelIDs; /// ID of pixel used in RetinaCluster + }; // class VPRetinaFullCluster + + /// lightweight container for VPRetinaFullCluster + using VPRetinaFullClusters = std::vector; + +} // namespace LHCb + +#endif // VPRETINAFULLCLUSTER_H diff --git a/VP/VPDAQ/src/VPRetinaFullClustering.cpp b/VP/VPDAQ/src/VPRetinaFullClustering.cpp new file mode 100644 index 00000000000..1880f327365 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaFullClustering.cpp @@ -0,0 +1,449 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "DetDesc/ConditionAccessorHolder.h" +#include "Event/RawBank.h" +#include "Event/RawEvent.h" +#include "Event/VPFullCluster.h" +#include "GaudiAlg/Transformer.h" +#include "GaudiKernel/Transform3DTypes.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include "VPDet/DeVP.h" +#include "VPKernel/PixelUtils.h" +#include "VPKernel/VeloPixelInfo.h" +#include "VPRetinaFullCluster.h" +#include "VPRetinaMatrix.h" +#include +#include +#include +#include +#include + +/** @class VPRetinaFullClustering VPRetinaFullClustering.h + * @author Federico Lazzari + * @date 2018-06-20 + */ + +// Namespace for locations in TDS +namespace LHCb { + namespace VPFullClusterLocation { + inline const std::string Offsets = "Raw/VP/FullClustersOffsets"; + } +} // namespace LHCb + +namespace LHCb::VP::Retina { + struct GeomCache { + GeomCache( const DeVP& det ); + std::array, ::VP::NSensors> m_ltg; + LHCb::span m_local_x; + LHCb::span m_x_pitch; + float m_pixel_size; + }; +} // namespace LHCb::VP::Retina + +class VPRetinaFullClustering + : public Gaudi::Functional::MultiTransformer< + std::tuple, std::array>( + const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ), + LHCb::DetDesc::usesConditions> { + +public: + /// Standard constructor + VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ); + + /// Algorithm initialization + StatusCode initialize() override; + + /// Algorithm execution + std::tuple, std::array> + operator()( const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ) const override; + +private: + /// bank version. (change this every time semantics change!) + static constexpr unsigned int m_bankVersion = 1; + + /// make RetinaClusters from bank + std::vector makeRetinaFullClusters( LHCb::span bank, + const unsigned int sensor ) const; + + Gaudi::Property m_chain_length{ + this, "chain_length", 20, + "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; +}; + +using namespace LHCb; + +DECLARE_COMPONENT( VPRetinaFullClustering ) + +namespace { + struct SPCache { + std::array fxy; + unsigned char pattern; + unsigned char nx1; + unsigned char nx2; + unsigned char ny1; + unsigned char ny2; + }; + //========================================================================= + // Cache Super Pixel cluster patterns. + //========================================================================= + auto create_SPPatterns() { + std::array SPCaches; + // create a cache for all super pixel cluster patterns. + // this is an unoptimized 8-way flood fill on the 8 pixels + // in the super pixel. + // no point in optimizing as this is called once in + // initialize() and only takes about 20 us. + + // define deltas to 8-connectivity neighbours + const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; + const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; + + // clustering buffer for isolated superpixels. + unsigned char sp_buffer[8]; + + // SP index buffer and its size for single SP clustering + unsigned char sp_idx[8]; + unsigned char sp_idx_size = 0; + + // stack and stack pointer for single SP clustering + unsigned char sp_stack[8]; + unsigned char sp_stack_ptr = 0; + + // loop over all possible SP patterns + for ( unsigned int sp = 0; sp < 256; ++sp ) { + sp_idx_size = 0; + for ( unsigned int shift = 0; shift < 8; ++shift ) { + const unsigned char p = sp & ( 1 << shift ); + sp_buffer[shift] = p; + if ( p ) { sp_idx[sp_idx_size++] = shift; } + } + + // loop over pixels in this SP and use them as + // cluster seeds. + // note that there are at most two clusters + // in a single super pixel! + unsigned char clu_idx = 0; + for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { + unsigned char idx = sp_idx[ip]; + + if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used + + sp_stack_ptr = 0; + sp_stack[sp_stack_ptr++] = idx; + sp_buffer[idx] = 0; + unsigned char x = 0; + unsigned char y = 0; + unsigned char n = 0; + + while ( sp_stack_ptr ) { + idx = sp_stack[--sp_stack_ptr]; + const unsigned char row = idx % 4; + const unsigned char col = idx / 4; + x += col; + y += row; + ++n; + + for ( unsigned int ni = 0; ni < 8; ++ni ) { + const char ncol = col + dx[ni]; + if ( ncol < 0 || ncol > 1 ) continue; + const char nrow = row + dy[ni]; + if ( nrow < 0 || nrow > 3 ) continue; + const unsigned char nidx = ( ncol << 2 ) | nrow; + if ( 0 == sp_buffer[nidx] ) continue; + sp_stack[sp_stack_ptr++] = nidx; + sp_buffer[nidx] = 0; + } + } + + const uint32_t cx = x / n; + const uint32_t cy = y / n; + const float fx = x / static_cast( n ) - cx; + const float fy = y / static_cast( n ) - cy; + + // store the centroid pixel + SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; + + // set the two cluster flag if this is the second cluster + SPCaches[sp].pattern |= clu_idx << 3; + + // set the pixel fractions + SPCaches[sp].fxy[2 * clu_idx] = fx; + SPCaches[sp].fxy[2 * clu_idx + 1] = fy; + + // increment cluster count. note that this can only become 0 or 1! + ++clu_idx; + } + } + return SPCaches; + } + // SP pattern buffers for clustering, cached once. + // There are 256 patterns and there can be at most two + // distinct clusters in an SP. + static const std::array s_SPCaches = create_SPPatterns(); +} // namespace + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaFullClustering::VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ) + : MultiTransformer( name, pSvcLocator, + {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, + KeyValue{"GeomCacheLocation", "VPRetinaFullClustering-" + name + "-GeomCache"}}, + {KeyValue{"ClusterLocation", LHCb::VPFullClusterLocation::Default}, + KeyValue{"ClusterOffsets", LHCb::VPFullClusterLocation::Offsets}} ) {} + +//============================================================================= +// Initialization +//============================================================================= +StatusCode VPRetinaFullClustering::initialize() { + return MultiTransformer::initialize().andThen( [&] { + addConditionDerivation( {DeVPLocation::Default}, + inputLocation() ); + } ); +} + +//============================================================================ +// Rebuild the geometry (in case something changes in the Velo during the run) +//============================================================================ +LHCb::VP::Retina::GeomCache::GeomCache( const DeVP& det ) { + + m_local_x = det.sensor( 0 ).xLocal(); + m_x_pitch = det.sensor( 0 ).xPitch(); + m_pixel_size = det.sensor( 0 ).pixelSize(); + + det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { + // get the local to global transformation matrix and + // store it in a flat float array of sixe 12. + Gaudi::Rotation3D ltg_rot; + Gaudi::TranslationXYZ ltg_trans; + sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); + auto& ltg = m_ltg[sensor.sensorNumber()]; + ltg_rot.GetComponents( ltg.data() ); + ltg[2] = ltg_trans.X(); + ltg[5] = ltg_trans.Y(); + ltg[8] = ltg_trans.Z(); + } ); +} + +//============================================================================= +// Main execution +//============================================================================= +std::tuple, std::array> VPRetinaFullClustering:: + operator()( const LHCb::RawEvent& rawEvent, const LHCb::VP::Retina::GeomCache& cache ) const { + auto result = std::tuple, std::array>{}; + + const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); + if ( tBanks.empty() ) return result; + + const unsigned int version = tBanks[0]->version(); + if ( version != 2 ) { + warning() << "Unsupported raw bank version (" << version << ")" << endmsg; + return result; + } + + // Since the pool is local, to first preallocate the pool, then count hits per module, + // and then preallocate per module and move hits might not be faster than adding + // directly to the PixelModuleHits (which would require more allocations, but + // not many if we start with a sensible default) + auto& [pool, offsets] = result; + const unsigned int startSize = 10000U; + pool.reserve( startSize ); + + // 1 module = N Cluster -> N x M channelIDs + std::vector> channelIDs; + channelIDs.reserve( 400 ); + + if ( msgLevel( MSG::DEBUG ) ) { debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; } + + // Loop over VP RawBanks + for ( auto iterBank : tBanks ) { + + const unsigned int sensor = iterBank->sourceID(); + const unsigned int module = 1 + ( sensor / ::VP::NSensorsPerModule ); + int n_hits = 0; + + const auto& ltg = cache.m_ltg[sensor]; + auto retinaClusters = makeRetinaFullClusters( iterBank->range(), sensor ); + + for ( auto iterCluster : retinaClusters ) { + const uint32_t cx = iterCluster.word() >> 14 & 0x3FF; + const float fx = ( ( iterCluster.word() >> 11 ) & 0x7 ) / 8.; + const uint32_t cy = ( iterCluster.word() >> 3 ) & 0xFF; + const float fy = ( iterCluster.word() & 0x7 ) / 8.; + + const uint32_t chip = cx / Pixel::CHIP_COLUMNS; + const uint32_t ccol = cx % Pixel::CHIP_COLUMNS; + + LHCb::VPChannelID cid( sensor, chip, ccol, cy ); + channelIDs.push_back( iterCluster.channelIDs() ); + + const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; + const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; + + const float gx = ltg[0] * local_x + ltg[1] * local_y + ltg[2]; + const float gy = ltg[3] * local_x + ltg[4] * local_y + ltg[5]; + const float gz = ltg[6] * local_x + ltg[7] * local_y + ltg[8]; + + pool.emplace_back( fx, fy, gx, gy, gz, cid, std::move( channelIDs.back() ) ); + n_hits++; + ++offsets[module]; + } + + } // loop over all banks + + std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); + // Do we actually need to sort the hits ? [ depends, if the offline clustering will be re-run and tracking will use + // those clusters , yes, otherwise no ] + for ( size_t moduleID = 0; moduleID < VeloInfo::Numbers::NModules; ++moduleID ) { + // In even modules you fall in the branching at -180, 180 degrees, you want to do that continuos + std::stable_sort( + pool.begin() + offsets[moduleID], pool.begin() + offsets[moduleID + 1], + []( const LHCb::VPFullCluster& a, const LHCb::VPFullCluster& b ) { return a.channelID() < b.channelID(); } ); + } + if ( msgLevel( MSG::DEBUG ) ) { + for ( auto& cl : pool ) { + info() << "----" << endmsg; + info() << cl << endmsg; + info() << " [fx,fy] " << cl.xfraction() << "," << cl.yfraction() << endmsg; + info() << " [x,y,z] " << cl.x() << "," << cl.y() << "," << cl.z() << endmsg; + info() << "pixels" << endmsg; + for ( auto& pixel : cl.pixels() ) { info() << "\t" << pixel << endmsg; } + } + } + if ( msgLevel( MSG::DEBUG ) ) { info() << "N VPFullCluster produced : " << pool.size() << endmsg; } + + return result; +} + +//============================================================================= +// make RetinaClusters from bank +//============================================================================= +std::vector +VPRetinaFullClustering::makeRetinaFullClusters( LHCb::span bank, const unsigned int sensor ) const { + assert( bank.size() == 1 + bank[0] ); + + std::vector RetinaMatrixVector; + RetinaMatrixVector.reserve( 20 ); + std::vector RetinaCluster; + + // Read super pixel + for ( const uint32_t sp_word : bank.subspan( 1 ) ) { + + uint8_t sp = sp_word & 0xFFU; + + if ( 0 == sp ) continue; // protect against zero super pixels. + + const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; + const uint32_t sp_row = sp_addr & 0x3FU; + const uint32_t sp_col = ( sp_addr >> 6 ); + const uint32_t no_sp_neighbours = sp_word & 0x80000000U; + + // if a super pixel is not isolated + // we use Retina Clustering Algorithm + if ( !no_sp_neighbours ) { + // we look for already created Retina + auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), + [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); + if ( iterRetina != RetinaMatrixVector.end() ) { + iterRetina->AddSP( sp_row, sp_col, sp ); + continue; + } else { + // if we have not reached maximum chain length + // we create a new retina + if ( RetinaMatrixVector.size() < m_chain_length ) { + RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); + continue; + } else { + // continue; + } + } + } + + // if a super pixel is isolated or the RetinaMatrix chain is full + // the clustering boils down to a simple pattern look up. + + // there is always at least one cluster in the super + // pixel. look up the pattern and add it. + + // there is always at least one cluster in the super + // pixel. look up the pattern and add it. + + // remove after caches rewrite + const auto& spcache = s_SPCaches[sp]; + const uint32_t idx = spcache.pattern; + + const uint32_t row = idx & 0x03U; + const uint32_t col = ( idx >> 2 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); + + std::vector channelIDs; + uint32_t shift_r = 0; + while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; + while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && shift_r < 4 ) { + if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2 + 1; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + shift_r++; + } + RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); + if ( idx & 8 ) { + const uint32_t row = ( idx >> 4 ) & 3; + const uint32_t col = ( idx >> 6 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); + + std::vector channelIDs; + while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; + while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && + shift_r < 4 ) { + if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2 + 1; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + shift_r++; + } + RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); + } + } + + // searchRetinaCluster + for ( auto& m : RetinaMatrixVector ) { + const auto& clusters = m.SearchFullCluster(); + RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); + }; + + return RetinaCluster; +} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.cpp b/VP/VPDAQ/src/VPRetinaMatrix.cpp new file mode 100644 index 00000000000..9666f927ae2 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaMatrix.cpp @@ -0,0 +1,207 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +// LHCb +#include "Event/State.h" +#include "Kernel/VPConstants.h" +#include "VPKernel/PixelUtils.h" + +// Local +#include "VPRetinaMatrix.h" + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaMatrix::VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ) + : Coordinate_Retina_row( SP_row - 1 ) + , Coordinate_Retina_col( SP_col - 2 ) + , Sensor( sensor ) + , sensorID_in_module( sensor % ::VP::NSensorsPerModule ) { + // record SP pixels. + for ( uint32_t shift = 0; shift < 8; ++shift ) { + const uint8_t pixel = SP_pixel & 1; + if ( pixel ) { + const uint32_t row = 4 + shift % 4; + const uint32_t col = 4 + shift / 4; + Pixel_Matrix[row][col] = pixel; + } + SP_pixel = SP_pixel >> 1; + if ( 0 == SP_pixel ) break; + } + + // record which SP is added + SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; +} + +//============================================================================= +// Check if a SP coordinate are inside the Retina +//============================================================================= +bool VPRetinaMatrix::IsInRetina( uint32_t SP_row, uint32_t SP_col ) const { + return Coordinate_Retina_row <= (int32_t)SP_row && (int32_t)SP_row < Coordinate_Retina_row + 3 && + Coordinate_Retina_col <= (int32_t)SP_col && (int32_t)SP_col < Coordinate_Retina_col + 5; +} + +//============================================================================= +// Add a SP to the Retina +//============================================================================= +VPRetinaMatrix& VPRetinaMatrix::AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ) { + // record which SP is added + SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; + + // record SP pixels. + for ( uint32_t shift = 0; shift < 8; ++shift ) { + const uint8_t pixel = SP_pixel & 1; + if ( pixel ) { + const int32_t row = ( SP_row - Coordinate_Retina_row ) * 4 + shift % 4; + const int32_t col = ( SP_col - Coordinate_Retina_col ) * 2 + shift / 4; + Pixel_Matrix[row][col] = pixel; + } + SP_pixel = SP_pixel >> 1; + if ( 0 == SP_pixel ) break; + } + return *this; +} + +//============================================================================= +// Search cluster - Accounting for mirror geometry in sensors 1 and 2 +//============================================================================= + +std::vector VPRetinaMatrix::SearchCluster() const { + std::vector RetinaCluster; + RetinaCluster.reserve( 63 ); + + if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { + for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && + Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + } + } + } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { + for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && + Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && + Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + } + } + } + return RetinaCluster; +} +std::vector VPRetinaMatrix::SearchFullCluster() const { + std::vector RetinaCluster; + RetinaCluster.reserve( 63 ); + + std::vector channelID; + channelID.reserve( 9 ); + if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { + for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && + Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + + const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; + const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); + channelID.push_back( tmp_cid ); + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); + RetinaCluster.push_back( tmp_cluster ); + channelID.clear(); + } + } + } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { + for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && + Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && + Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + + const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; + const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); + channelID.push_back( tmp_cid ); + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); + RetinaCluster.push_back( tmp_cluster ); + channelID.clear(); + } + } + } + return RetinaCluster; +} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.h b/VP/VPDAQ/src/VPRetinaMatrix.h new file mode 100644 index 00000000000..7303bb104f4 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaMatrix.h @@ -0,0 +1,59 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#ifndef VPRETINAMATRIX_H +#define VPRETINAMATRIX_H 1 + +#include "VPRetinaFullCluster.h" + +#include +#include + +namespace LHCb { + class State; +} + +/** @class VPRetinaMatrix VPRetinaMatrix.h + * Class to store SuperPixel in a RETINA like architecture + * and find Cluster + * + * @author Federico Lazzari + * @date 2015-04-18 + */ + +class VPRetinaMatrix final { +public: + /// Standard constructor + VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ); + + /// Check if a SP coordinate are inside the Retina + bool IsInRetina( uint32_t SP_row, uint32_t SP_col ) const; + + /// Add a SP to the Retina + VPRetinaMatrix& AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ); + + /// Search cluster + std::vector SearchCluster() const; + std::vector SearchFullCluster() const; + +private: + // Coordinate of the lower left SP + int32_t Coordinate_Retina_row; + int32_t Coordinate_Retina_col; + // Sensor + const unsigned int Sensor; + const uint32_t sensorID_in_module; + + // Matrix of pixel + std::array, 3> SPixel_Matrix{}; + std::array, 12> Pixel_Matrix{}; +}; + +#endif // VPRetinaMatrix_H diff --git a/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp b/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp new file mode 100644 index 00000000000..bba22889d74 --- /dev/null +++ b/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp @@ -0,0 +1,211 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "Event/RawEvent.h" +#include "Event/VPDigit.h" +#include "GaudiAlg/GaudiAlgorithm.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include +#include +#include +#include + +using namespace LHCb; + +//----------------------------------------------------------------------------- +// Implementation file for class : VPSuperPixelBankEncoder +// +// 2014-03-06 : Karol Hennessy, Kurt Rinnert +//----------------------------------------------------------------------------- + +/** @class VPSuperPixelBankEncoder VPSuperPixelBankEncoder.h + * Algorithm to create Super Pixel Raw Bank from VP digits. + * + * There is one raw bank per sensor, that is the sensor number (0-207) + * is the source ID of the bank. Note that this means there is no + * need to encode the sensor in the Super Pixel addresses. + * + * Each bank has a four byte word header, followed by a four byte + * Super Pixel word for each Super Pixel on the sensor. + * + * The header word is currently simply the number of Super Pixels + * on the sensor. There are plenty of bits available to encode + * error conditions and such in the future. + * + * The Super Pixel word encoding is the following: + * + * bit 0-7 Super Pixel Pattern + * bit 8-13 Super Pixel Row (0-63) + * bit 14-22 Super Pixel Column (0-383) + * bit 23-30 UNUSED + * bit 31 Super Pixel isolation flag + * + * Super Pixel Pattern bits encode columns and rows as follows: + * + * row,y + * + * ^ 37 + * | 26 + * | 15 + * | 04 + * +---> col,x + * + * @author Karol Hennessy + * @author Kurt Rinnert + * @date 2014-03-06 + */ + +class VPSuperPixelBankEncoder : public GaudiAlgorithm { + +public: + /// Standard constructor + VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ); + StatusCode execute() override; ///< Algorithm execution + +private: + /// where to get the digits from + std::string m_digitLocation; + /// where to write the clusters to + std::string m_rawEventLocation; + /// event counter + unsigned int m_evt = 0; + /// per sensor buffers of super pixel words + std::array, VP::NSensors> m_spBySensor; +}; + +namespace { + /// bank version. (change this every time semantics change!) + constexpr unsigned int c_bankVersion = 2; + + /// to sort super pixels by column (major) and row (minor) + auto SPLowerThan = []( unsigned int lhs, unsigned int rhs ) { return ( lhs & 0x7FFF00 ) < ( rhs & 0x7FFF00 ); }; + + // convert channelID to super pixel words + struct sp_word { + sp_word( VPChannelID id ) noexcept { + const unsigned int chip = id.chip(); + const unsigned int row = id.row(); + const unsigned int col = id.col(); + const unsigned int sensorCol = col + 256 * chip; + const unsigned int spCol = sensorCol / 2; + const unsigned int spRow = row / 4; + addr = ( ( spCol << 6 ) | spRow ); + ix = 0x1u << ( ( ( col % 2 ) * 4 ) + row % 4 ); + } + unsigned int addr; + unsigned int ix; + unsigned int to_uint() const noexcept { return ( addr << 8 ) | ix; } + }; + +} // namespace + +DECLARE_COMPONENT( VPSuperPixelBankEncoder ) + +//============================================================================= +// Constructor +//============================================================================= +VPSuperPixelBankEncoder::VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ) + : GaudiAlgorithm( name, pSvcLocator ) { + declareProperty( "DigitLocation", m_digitLocation = LHCb::VPDigitLocation::Default ); + declareProperty( "RawEventLocation", m_rawEventLocation = LHCb::RawEventLocation::Default ); +} + +//============================================================================= +// Execution +//============================================================================= +StatusCode VPSuperPixelBankEncoder::execute() { + + if ( msgLevel( MSG::DEBUG ) ) debug() << "==> Execute" << endmsg; + ++m_evt; + const VPDigits* digits = getIfExists( m_digitLocation ); + if ( !digits ) { return Error( " ==> There are no VPDigits in TES! " ); } + + // Check if RawEvent exists + RawEvent* rawEvent = getIfExists( m_rawEventLocation ); + if ( !rawEvent ) { + // Create RawEvent + rawEvent = new LHCb::RawEvent(); + put( rawEvent, m_rawEventLocation ); + } + + for ( auto& s : m_spBySensor ) { + // put header word as first element (but don't know content yet) + s = {0}; + } + + // Loop over digits create super pixel words and store them. + // No assumption about the order of digits is made. + for ( const auto& seed : *digits ) { + auto& sensor = m_spBySensor[seed->channelID().sensor()]; + auto sp = sp_word{seed->channelID()}; + + auto j = std::find_if( sensor.begin(), sensor.end(), [&]( unsigned int s ) { return ( s >> 8 ) == sp.addr; } ); + + if ( j != sensor.end() ) { + *j |= sp.ix; + } else { + sensor.push_back( sp.to_uint() ); + } + } + + constexpr auto dx = std::array{-1, 0, 1, -1, 0, 1, -1, 1}; + constexpr auto dy = std::array{-1, -1, -1, 1, 1, 1, 0, 0}; + + int total = 0; + int sensor = 0; + for ( LHCb::span data : m_spBySensor ) { + assert( !data.empty() ); // must have at least a header! + + auto spixels = data.subspan<1>(); // skip header word + + // encode header. + data[0] = spixels.size(); // set correct number of super pixels + + // sort super pixels column major on each sensor + std::sort( spixels.begin(), spixels.end(), SPLowerThan ); + + // set 'no neighbour' hint flags + std::array buffer = {false}; // buffer for checking super pixel neighbours + for ( auto spw : spixels ) { + assert( ( spw & 0xFFu ) != 0 ); + unsigned int idx = ( spw >> 8 ); + buffer[idx] = true; + } + + for ( auto& spw : spixels ) { + const unsigned int idx = ( spw >> 8 ); + const unsigned int row = idx & 0x3FU; + const unsigned int col = ( idx >> 6 ); + unsigned int no_neighbour = 1; + for ( unsigned int ni = 0; ni < 8; ++ni ) { + const int nrow = row + dy[ni]; + if ( nrow < 0 || nrow > 63 ) continue; + const int ncol = col + dx[ni]; + if ( ncol < 0 || ncol > 383 ) continue; + const unsigned int nidx = ( ncol << 6 ) | nrow; + if ( buffer[nidx] ) { + no_neighbour = 0; + break; + } + } + spw |= ( no_neighbour << 31 ); + } + + total += data.size_bytes(); + if ( msgLevel( MSG::DEBUG ) ) debug() << "evt " << m_evt << "sensor " << sensor << " sp " << data.size() << endmsg; + + rawEvent->addBank( sensor++, LHCb::RawBank::VP, c_bankVersion, data ); + } + + if ( msgLevel( MSG::DEBUG ) ) debug() << "total " << total << endmsg; + + return StatusCode::SUCCESS; +} -- GitLab From d6c603c8a60265ef202da7dcdec0fa165ccb7269 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Wed, 24 Jun 2020 19:17:08 +0200 Subject: [PATCH 192/199] merged with updated master --- .../options/retina_input_and_conds_hlt1.py | 21 ------------------- 1 file changed, 21 deletions(-) delete mode 100644 Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py diff --git a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py deleted file mode 100644 index c8cb91e2e17..00000000000 --- a/Hlt/Moore/tests/options/retina_input_and_conds_hlt1.py +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -import os -from Moore import options - -#options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") -options.set_input_from_testfiledb("Upgrade_KstEE_MD_FTv4_DIGI") -options.evt_max = 2000 - -#options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_conds_from_testfiledb('Upgrade_BsPhiPhi_MD_FTv4_DIGI') -options.set_conds_from_testfiledb('Upgrade_KstEE_MD_FTv4_DIGI') -- GitLab From d1764925b90cf32d467f2a2d18ffb02724e1d314 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Wed, 24 Jun 2020 23:52:27 +0200 Subject: [PATCH 193/199] delete VP --- ..._reco_allen_retina_track_reconstruction.py | 2 +- VP/VPDAQ/CMakeLists.txt | 34 -- VP/VPDAQ/doc/release.notes | 126 ----- VP/VPDAQ/src/VPRetinaClusterCreator.cpp | 317 ------------- VP/VPDAQ/src/VPRetinaClusterDecoder.cpp | 224 --------- VP/VPDAQ/src/VPRetinaFullCluster.h | 47 -- VP/VPDAQ/src/VPRetinaFullClustering.cpp | 449 ------------------ VP/VPDAQ/src/VPRetinaMatrix.cpp | 207 -------- VP/VPDAQ/src/VPRetinaMatrix.h | 59 --- VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp | 211 -------- 10 files changed, 1 insertion(+), 1675 deletions(-) delete mode 100644 VP/VPDAQ/CMakeLists.txt delete mode 100755 VP/VPDAQ/doc/release.notes delete mode 100644 VP/VPDAQ/src/VPRetinaClusterCreator.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaClusterDecoder.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaFullCluster.h delete mode 100644 VP/VPDAQ/src/VPRetinaFullClustering.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaMatrix.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaMatrix.h delete mode 100644 VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py index 6db6e577db2..a6f25ad9525 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_retina_track_reconstruction.py @@ -15,7 +15,7 @@ from RecoConf.hlt1_allen import make_allen_tracks, make_dumped_raw_banks_retina from RecoConf.mc_checking import tracker_dumper_retina, pv_dumper, get_track_checkers, make_links_lhcbids_mcparticles_tracking_system_retina from Configurables import RunAllen -dumpBinaries = True +dumpBinaries = False outputDir = "dump/" diff --git a/VP/VPDAQ/CMakeLists.txt b/VP/VPDAQ/CMakeLists.txt deleted file mode 100644 index f4361eebbff..00000000000 --- a/VP/VPDAQ/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################### -# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -################################################################################ -# Package: VPDAQ -################################################################################ -gaudi_subdir(VPDAQ) - -gaudi_depends_on_subdirs(Det/VPDet - DAQ/DAQUtils - DAQ/DAQKernel - Event/DAQEvent - Event/DigiEvent - VP/VPKernel - GaudiAlg - Kernel/LHCbKernel) - -find_package(AIDA) -find_package(Boost) -find_package(ROOT) -include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}) - -gaudi_add_module(VPDAQ - src/*.cpp - INCLUDE_DIRS AIDA Event/DigiEvent Pr/PrKernel - LINK_LIBRARIES VPDetLib TrackEvent DAQEventLib DAQKernelLib GaudiAlgLib LHCbKernel) - diff --git a/VP/VPDAQ/doc/release.notes b/VP/VPDAQ/doc/release.notes deleted file mode 100755 index 6610081da8c..00000000000 --- a/VP/VPDAQ/doc/release.notes +++ /dev/null @@ -1,126 +0,0 @@ -!----------------------------------------------------------------------------- -! Package : VP/VPDAQ -! Responsible : Kurt Rinnert, Karol Hennessy -! Purpose : Prepare VP RawBank and decode it -!----------------------------------------------------------------------------- - -!========================= VPDAQ v2r8 2016-03-16 ========================= -! 2016-02-02 - Gerhard Raven - - modernize code - -!========================= VPDAQ v2r7p1 2015-10-12 ========================= -! 2015-08-03 - Gerhard Raven - - remove #include of obsolete Gaudi headers - -!========================= VPDAQ v2r7 2014-05-12 ========================= -! 2014-05-04 - Heinrich Schindler - - Replace hard-coded array size by constants. - -! 2014-04-25 - Heinrich Schindler - - Follow changes in VPChannelID format (r171869). - -! 2014-04-14 - Heinrich Schindler - - Remove do-nothing finalize method. - - Run clang-format for consistent style. - -! 2014-04-04 - Heinrich Schindler - - Remove en/decoders for old, cluster-based raw banks. - - Remove unnecessary dependencies. - -! 2014-04-01 - Heinrich Schindler - - Remove VPLiteCluster include statements from PrepareVPRawBank. - - Remove VPRawBankToLiteCluster algorithm. - -! 2014-03-30 - Heinrich Schindler - - Follow changes in VPCluster format (revision r170715). - -! 2014-03-24 - Heinrich Schindler - - Follow changes in VPDigit format and location names (revision r170468). - -!========================= VPDAQ v2r6 2014-03-17 ========================= -! 2014-03-13 - Heinrich Schindler - - Follow changes in VPCluster format (revision r169999). - -! 2014-03-06 - Kurt Rinnert - - added encoder for Super Pixel raw bank from digits. - -!========================= VPDAQ v2r5 2014-02-17 ========================= -! 2014-02-13 - Rob Lambert - - Adapt VP decoder tool to Decoder base classes, task #49078 - -!========================= VPDAQ v2r4 2013-09-30 ========================= -! 2013-09-25 - Tim Evans - - Added VPDigit raw bank encoding and decoding - -! 2013-09-09 - Heinrich Schindler - - Follow detector element and channel ID changes (r162190, 162191) - -! 2013-07-25 - Rob Lambert - - Added DAQ/DAQUtils dependency to resolve build-order. - -!========================= VPDAQ v2r3 2013-07-18 ========================= -! 2013-06-13 - Marco Cattaneo - - Fix UNINIT_CTOR defects - - Fix untested StatusCode from Warning() messages - - Clean up unnecessary includes - - Remove empty finalize methods - -!========================= VPDAQ v2r2 2013-04-22 ========================= -! 2013-04-11 - Sascha Stahl - - Added back acccdidentally removed protection for RawEventLocations. - -! 2013-04-05 - Sascha Stahl - - Added vector of RawEventLocations. - -!========================= VPDAQ v2r1 2012-11-28 ========================= -! 2012-11-21 - Marco Clemencic - - Added CMake configuration file. - - Modified requirements to simplify auto conversion to CMake. - -! 2012-10-19 - Marco Cattaneo - - Fix potential memory leak in VPRawBankToLiteCluster and do not return - StatusCode::FAILURE from execute - - Use getItExists - - Fix UNINIT_CTOR defects - - Fix unprotected debug() - - Fix gcc -pedantic warnings - -!========================= VPDAQ v2r0 2012-10-01 ========================= -! 2012-09-24 - Paul Szczypka - - Rename Package to VPDAQ - - Rename files and code from VeloPix to VP. - -!========================= VeloPixDAQ v1r4 2011-04-05 ========================= -! 2011-03-17 -Wenbin Qian - - remove some information output from previous change -! 2011-03-17 - Wenbin Qian - - bug fix for VeloPixRawBankToLiteCluster.cpp - -!========================= VeloPixDAQ v1r3 2010-09-28 ======================= -! 2010-09-22 - Victor Coco - - Replace hardcoded container location by proper location definition - -!========================= VeloPixDAQ v1r2p1 2010-06-21 ===================== -! 2010-06-10 - Marco Cattaneo - - Fix windows compiler warnings - -!========================= VeloPixDAQ v1r2 2010-03-30 ===================== -! 2010-03-30 - Victor Coco - - Add in VeloPixRawBankToPartialCluster some checks in case of duplicated - channelID (probably comes from an earlier bug, temporary solution) - -!========================= VeloPixDAQ v1r1 2010-03-18 ===================== - -! 2010-03-01 - Victor Coco - - Add VeloPixRawBankToPartialCluster to have partial decoding of the - VeloPixCluster: get central ChannelID + LiteCluster. - Add sorting of the FastClusterContainer in VeloPixRawBankToLiteCluster - -!========================= VeloPixDAQ v1r0 2010-01-25 ===================== -! 2010-01-25 Marcin Kucharczyk - - Fix the problem with pattern in PrepareVeloPixRawBank - corresponding to Windows compilation problems - -! 2010-01-21 Marcin Kucharczyk - - First release - diff --git a/VP/VPDAQ/src/VPRetinaClusterCreator.cpp b/VP/VPDAQ/src/VPRetinaClusterCreator.cpp deleted file mode 100644 index 1dd5086cfb3..00000000000 --- a/VP/VPDAQ/src/VPRetinaClusterCreator.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "DetDesc/ConditionAccessorHolder.h" -#include "Event/RawBank.h" -#include "Event/RawEvent.h" -#include "Event/VPLightCluster.h" -#include "GaudiAlg/Transformer.h" -#include "GaudiKernel/Transform3DTypes.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include "VPDet/DeVP.h" -#include "VPKernel/PixelUtils.h" -#include "VPKernel/VeloPixelInfo.h" -#include "VPRetinaMatrix.h" -#include -#include -#include -#include -#include - -/** @class VPRetinaClusterCreator VPRetinaClusterCreator.h - * Algorithm to create RetinaCluster Raw Bank from SuperPixel. - * - * There is one raw bank per sensor, that is the sensor number (0-207) - * is the source ID of the bank. Note that this means there is no - * need to encode the sensor in the RetinaCluster addresses. - * - * Each bank has a four byte word header, followed by a four byte - * RetinaCluster word for each RetinaCluster on the sensor. - * - * The header word is currently simply the number of RetinaCluster - * on the sensor. - * - * The RetinaCluster word encoding is the following: - * - * bit 0-2 RetinaCluster Fraction Row (0-1 by step of 0.125) - * bit 3-10 RetinaCluster Row (0-255) - * bit 11-13 RetinaCluster Fraction Column (0-1 by step of 0.125) - * bit 14-23 RetinaCluster Column (0-767) - * bit 24-25 SensorID in the module - * bit 26-31 UNUSED - * - * @author Federico Lazzari - * @date 2018-06-20 - */ - -class VPRetinaClusterCreator : public Gaudi::Functional::Transformer { - -public: - /// Standard constructor - VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ); - - /// Algorithm execution - LHCb::RawEvent operator()( const LHCb::RawEvent& ) const override; - -private: - /// bank version. (change this every time semantics change!) - static constexpr unsigned int m_bankVersion = 2; - - /// make RetinaClusters from bank - std::vector makeRetinaClusters( LHCb::span bank, const unsigned int sensor ) const; - Gaudi::Property m_chain_length{ - this, "chain_length", 20, - "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; -}; - -using namespace LHCb; - -DECLARE_COMPONENT( VPRetinaClusterCreator ) - -namespace { - struct SPCache { - std::array fxy; - unsigned char pattern; - unsigned char nx1; - unsigned char nx2; - unsigned char ny1; - unsigned char ny2; - }; - //========================================================================= - // Cache Super Pixel cluster patterns. - //========================================================================= - auto create_SPPatterns() { - std::array SPCaches; - // create a cache for all super pixel cluster patterns. - // this is an unoptimized 8-way flood fill on the 8 pixels - // in the super pixel. - // no point in optimizing as this is called once in - // initialize() and only takes about 20 us. - - // define deltas to 8-connectivity neighbours - const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; - const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; - - // clustering buffer for isolated superpixels. - unsigned char sp_buffer[8]; - - // SP index buffer and its size for single SP clustering - unsigned char sp_idx[8]; - unsigned char sp_idx_size = 0; - - // stack and stack pointer for single SP clustering - unsigned char sp_stack[8]; - unsigned char sp_stack_ptr = 0; - - // loop over all possible SP patterns - for ( unsigned int sp = 0; sp < 256; ++sp ) { - sp_idx_size = 0; - for ( unsigned int shift = 0; shift < 8; ++shift ) { - const unsigned char p = sp & ( 1 << shift ); - sp_buffer[shift] = p; - if ( p ) { sp_idx[sp_idx_size++] = shift; } - } - - // loop over pixels in this SP and use them as - // cluster seeds. - // note that there are at most two clusters - // in a single super pixel! - unsigned char clu_idx = 0; - for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { - unsigned char idx = sp_idx[ip]; - - if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used - - sp_stack_ptr = 0; - sp_stack[sp_stack_ptr++] = idx; - sp_buffer[idx] = 0; - unsigned char x = 0; - unsigned char y = 0; - unsigned char n = 0; - - while ( sp_stack_ptr ) { - idx = sp_stack[--sp_stack_ptr]; - const unsigned char row = idx % 4; - const unsigned char col = idx / 4; - x += col; - y += row; - ++n; - - for ( unsigned int ni = 0; ni < 8; ++ni ) { - const char ncol = col + dx[ni]; - if ( ncol < 0 || ncol > 1 ) continue; - const char nrow = row + dy[ni]; - if ( nrow < 0 || nrow > 3 ) continue; - const unsigned char nidx = ( ncol << 2 ) | nrow; - if ( 0 == sp_buffer[nidx] ) continue; - sp_stack[sp_stack_ptr++] = nidx; - sp_buffer[nidx] = 0; - } - } - - const uint32_t cx = x / n; - const uint32_t cy = y / n; - const float fx = x / static_cast( n ) - cx; - const float fy = y / static_cast( n ) - cy; - - // store the centroid pixel - SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; - - // set the two cluster flag if this is the second cluster - SPCaches[sp].pattern |= clu_idx << 3; - - // set the pixel fractions - SPCaches[sp].fxy[2 * clu_idx] = fx; - SPCaches[sp].fxy[2 * clu_idx + 1] = fy; - - // increment cluster count. note that this can only become 0 or 1! - ++clu_idx; - } - } - return SPCaches; - } - // SP pattern buffers for clustering, cached once. - // There are 256 patterns and there can be at most two - // distinct clusters in an SP. - static const std::array s_SPCaches = create_SPPatterns(); -} // namespace - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaClusterCreator::VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ) - : Transformer( name, pSvcLocator, {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}}, - KeyValue{"RetinaClusterLocation", LHCb::RawEventLocation::VeloCluster} ) {} - -//============================================================================= -// Main execution -//============================================================================= -LHCb::RawEvent VPRetinaClusterCreator::operator()( const LHCb::RawEvent& rawEvent ) const { - RawEvent result; - - const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); - if ( tBanks.empty() ) return result; - - const unsigned int version = tBanks[0]->version(); - if ( version != 2 ) { - warning() << "Unsupported raw bank version (" << version << ")" << endmsg; - return result; - } - - debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; - - unsigned int nBanks = 0; - - // Loop over VP RawBanks - for ( auto iterBank : tBanks ) { - - const unsigned int sensor = iterBank->sourceID(); - - auto sensorCluster = makeRetinaClusters( iterBank->range(), sensor ); - - result.addBank( sensor, LHCb::RawBank::VPRetinaCluster, m_bankVersion, sensorCluster ); - - ++nBanks; - - } // loop over all banks - - debug() << "Added " << nBanks << " raw banks of retina clusters to TES" << endmsg; - - return result; -} - -//============================================================================= -// make RetinaClusters from bank -//============================================================================= -std::vector VPRetinaClusterCreator::makeRetinaClusters( LHCb::span bank, - const unsigned int sensor ) const { - - assert( bank.size() == 1 + bank[0] ); - - const uint32_t sensorID_in_module = sensor % ::VP::NSensorsPerModule; - - std::vector RetinaMatrixVector; - RetinaMatrixVector.reserve( m_chain_length ); - std::vector RetinaCluster; - // reserve space for RetinaCluster - // # RetinaCluster <= # SP - RetinaCluster.reserve( bank.size() ); - // reserve first word for # RetinaCluster - RetinaCluster.push_back( 0 ); - - // Read super pixel - for ( const uint32_t sp_word : bank.subspan( 1 ) ) { - - uint8_t sp = sp_word & 0xFFU; - - if ( 0 == sp ) continue; // protect against zero super pixels. - - const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; - const uint32_t sp_row = sp_addr & 0x3FU; - const uint32_t sp_col = ( sp_addr >> 6 ); - const uint32_t no_sp_neighbours = sp_word & 0x80000000U; - - // if a super pixel is not isolated - // we use Retina Clustering Algorithm - if ( !no_sp_neighbours ) { - // we look for already created Retina - auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), - [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); - if ( iterRetina != RetinaMatrixVector.end() ) { - iterRetina->AddSP( sp_row, sp_col, sp ); - continue; - } else { - // if we have not reached maximum chain length - // we create a new retina - if ( RetinaMatrixVector.size() < m_chain_length ) { - RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); - continue; - } - } - } - // if a super pixel is isolated or the RetinaMatrix chain is full - // the clustering boils down to a simple pattern look up. - - // there is always at least one cluster in the super - // pixel. look up the pattern and add it. - - // remove after caches rewrite - const auto& spcache = s_SPCaches[sp]; - const uint32_t idx = spcache.pattern; - - const uint32_t row = idx & 0x03U; - const uint32_t col = ( idx >> 2 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - if ( idx & 8 ) { - const uint32_t row = ( idx >> 4 ) & 3; - const uint32_t col = ( idx >> 6 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - } - - } // loop over super pixels in raw bank - - // searchRetinaCluster - for ( auto& m : RetinaMatrixVector ) { - const auto& clusters = m.SearchCluster(); - RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); - }; - - RetinaCluster[0] = RetinaCluster.size() - 1; - return RetinaCluster; -} diff --git a/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp b/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp deleted file mode 100644 index b02437eeb2c..00000000000 --- a/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "DetDesc/ConditionAccessorHolder.h" -#include "Event/RawBank.h" -#include "Event/RawEvent.h" -#include "Event/VPLightCluster.h" -#include "GaudiAlg/Transformer.h" -#include "GaudiKernel/Transform3DTypes.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include "VPDet/DeVP.h" -#include "VPKernel/PixelUtils.h" -#include "VPKernel/VeloPixelInfo.h" -#include -#include -#include -#include - -namespace VPRetina { - enum class ErrorCode : StatusCode::code_t { - BANK_VERSION_UNKNOWN, - EMPTY_BANK, - BANK_SIZE_INCONSISTENT, - BAD_MAGIC, - BAD_SOURCE_ID - }; - struct ErrorCategory : StatusCode::Category { - const char* name() const override { return "VPRetinaDecoder"; } - bool isRecoverable( StatusCode::code_t ) const override { return false; } - std::string message( StatusCode::code_t code ) const override { - switch ( static_cast( code ) ) { - case ErrorCode::BANK_VERSION_UNKNOWN: - return "Bank version unknown"; - case ErrorCode::EMPTY_BANK: - return "Empty bank"; - case ErrorCode::BANK_SIZE_INCONSISTENT: - return "Bank size and declared number of clusters inconsistent"; - case ErrorCode::BAD_MAGIC: - return "Wrong magic number for bank"; - case ErrorCode::BAD_SOURCE_ID: - return "Source ID not in the expected range"; - default: - return StatusCode::default_category().message( code ); - } - } - }; -} // namespace VPRetina -STATUSCODE_ENUM_DECL( VPRetina::ErrorCode ) -STATUSCODE_ENUM_IMPL( VPRetina::ErrorCode, VPRetina::ErrorCategory ) - -[[gnu::noreturn]] void throw_exception( VPRetina::ErrorCode ec, const char* tag ) { - auto sc = StatusCode( ec ); - throw GaudiException{sc.message(), tag, std::move( sc )}; -} -#define OOPS( x ) throw_exception( x, __PRETTY_FUNCTION__ ) - -struct VPRetinaClusterGeomCache { - - std::array, VP::NSensors> m_ltg; // 9*208 = 9*number of sensors - LHCb::span m_local_x; - LHCb::span m_x_pitch; - float m_pixel_size; - - VPRetinaClusterGeomCache( const DeVP& det ) { - m_local_x = det.sensor( 0 ).xLocal(); - m_x_pitch = det.sensor( 0 ).xPitch(); - m_pixel_size = det.sensor( 0 ).pixelSize(); - det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { - // get the local to global transformation matrix and - // store it in a flat float array of sixe 12. - Gaudi::Rotation3D ltg_rot; - Gaudi::TranslationXYZ ltg_trans; - sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); - assert( sensor.sensorNumber() < m_ltg.size() ); - auto& ltg = m_ltg[sensor.sensorNumber()]; - ltg_rot.GetComponents( ltg.data() ); - ltg[2] = ltg_trans.X(); - ltg[5] = ltg_trans.Y(); - ltg[8] = ltg_trans.Z(); - } ); - } -}; - -// Namespace for locations in TES -namespace LHCb { - namespace VPClusterLocation { - inline const std::string Offsets = "Raw/VP/LightClustersOffsets"; - } -} // namespace LHCb - -class VPRetinaClusterDecoder - : public Gaudi::Functional::MultiTransformer< - std::tuple, std::array>( - const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ), - LHCb::DetDesc::usesConditions> { - -public: - /// Standard constructor - VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ); - - /// Algorithm initialization - StatusCode initialize() override; - - /// Algorithm execution - std::tuple, std::array> - operator()( const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ) const override; - -private: - std::bitset m_modulesToSkipMask; - Gaudi::Property> m_modulesToSkip{this, - "ModulesToSkip", - {}, - [=]( auto& ) { - m_modulesToSkipMask.reset(); - for ( auto i : m_modulesToSkip ) - m_modulesToSkipMask.set( i ); - }, - Gaudi::Details::Property::ImmediatelyInvokeHandler{true}, - "List of modules that should be skipped in decoding"}; - mutable Gaudi::Accumulators::AveragingCounter<> m_nBanks{this, "Number of banks"}; - mutable Gaudi::Accumulators::AveragingCounter<> m_nClusters{this, "Number of clusters"}; -}; - -DECLARE_COMPONENT( VPRetinaClusterDecoder ) - -using namespace Pixel; - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaClusterDecoder::VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ) - : MultiTransformer( name, pSvcLocator, - {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, - KeyValue{"GeomCacheLocation", "VPRetinaClusterDecoder-" + name + "-GeomCache"}}, - {KeyValue{"ClusterLocation", LHCb::VPClusterLocation::Light}, - KeyValue{"ClusterOffsets", LHCb::VPClusterLocation::Offsets}} ) {} - -//============================================================================= -// Initialization -//============================================================================= -StatusCode VPRetinaClusterDecoder::initialize() { - return MultiTransformer::initialize().andThen( [&] { - addConditionDerivation( {DeVPLocation::Default}, - inputLocation() ); - } ); -} - -//============================================================================= -// Main execution -//============================================================================= -std::tuple, std::array> -VPRetinaClusterDecoder::operator()( const LHCb::RawEvent& rawEvent, const VPRetinaClusterGeomCache& cache ) const { - auto result = std::tuple, std::array>{}; - auto& [clusters, offsets] = result; - - const auto& banks = rawEvent.banks( LHCb::RawBank::VPRetinaCluster ); - m_nBanks += banks.size(); - if ( banks.empty() ) return result; - - const unsigned int version = banks[0]->version(); - if ( version != 1 ) OOPS( VPRetina::ErrorCode::BANK_VERSION_UNKNOWN ); - - // Since 'clusters` is local, to first preallocate, then count hits per module, - // and then preallocate per module and move hits might not be faster than adding - // directly to the PixelModuleHits (which would require more allocations, but - // not many if we start with a sensible default) - constexpr unsigned int startSize = 10000U; - clusters.reserve( startSize ); - - // Loop over VP RawBanks - for ( const auto* bank : banks ) { - if ( LHCb::RawBank::MagicPattern != bank->magic() ) OOPS( VPRetina::ErrorCode::BAD_MAGIC ); - - const unsigned int module = bank->sourceID(); - if ( module == 0 || module > VP::NModules ) OOPS( VPRetina::ErrorCode::BAD_SOURCE_ID ); - - if ( m_modulesToSkipMask[module - 1] ) continue; - - const unsigned int sensor0 = ( module - 1 ) * VP::NSensorsPerModule; - - auto data = bank->range(); - if ( data.empty() ) OOPS( VPRetina::ErrorCode::EMPTY_BANK ); - - const uint32_t ncluster = data[0]; - if ( data.size() != ncluster + 1 ) OOPS( VPRetina::ErrorCode::BANK_SIZE_INCONSISTENT ); - data = data.subspan( 1 ); - - // Read clusters - std::transform( data.begin(), data.end(), std::back_inserter( clusters ), - [&]( const uint32_t cluster_word ) -> LHCb::VPLightCluster { - const unsigned int sensor = sensor0 + ( cluster_word >> 24 ); - const uint32_t cx = ( cluster_word >> 14 ) & 0x3FF; - const float fx = ( ( cluster_word >> 11 ) & 0x7 ) / 8.f; - const uint32_t cy = ( cluster_word >> 3 ) & 0xFF; - const float fy = ( cluster_word & 0x7 ) / 8.f; - const uint32_t chip = cx / CHIP_COLUMNS; - const uint32_t ccol = cx % CHIP_COLUMNS; - - const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; - const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; - - const auto& ltg = cache.m_ltg[sensor]; - const float gx = ( ltg[0] * local_x + ltg[1] * local_y + ltg[2] ); - const float gy = ( ltg[3] * local_x + ltg[4] * local_y + ltg[5] ); - const float gz = ( ltg[6] * local_x + ltg[7] * local_y + ltg[8] ); - - return {1, 1, gx, gy, gz, LHCb::VPChannelID{sensor, chip, ccol, cy}}; - } ); - offsets[module] += ncluster; - } // loop over all banks - - std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); - m_nClusters += offsets.back(); - - return result; -} diff --git a/VP/VPDAQ/src/VPRetinaFullCluster.h b/VP/VPDAQ/src/VPRetinaFullCluster.h deleted file mode 100644 index 44581bb26dc..00000000000 --- a/VP/VPDAQ/src/VPRetinaFullCluster.h +++ /dev/null @@ -1,47 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#ifndef VPRETINAFULLCLUSTER_H -#define VPRETINAFULLCLUSTER_H 1 - -#include "Kernel/VPChannelID.h" -#include -#include - -/* - * @author Federico Lazzari - * @date 2018-06-22 - */ - -namespace LHCb { - - class VPRetinaFullCluster final { - public: - /// Constructor - VPRetinaFullCluster( const uint32_t word, std::vector channelIDs ) - : m_word( word ), m_channelIDs( std::move( channelIDs ) ) {} - - /// - uint32_t word() const noexcept { return m_word; } - - /// - const std::vector& channelIDs() const noexcept { return m_channelIDs; } - - private: - uint32_t m_word; /// RetinaCluster value - std::vector m_channelIDs; /// ID of pixel used in RetinaCluster - }; // class VPRetinaFullCluster - - /// lightweight container for VPRetinaFullCluster - using VPRetinaFullClusters = std::vector; - -} // namespace LHCb - -#endif // VPRETINAFULLCLUSTER_H diff --git a/VP/VPDAQ/src/VPRetinaFullClustering.cpp b/VP/VPDAQ/src/VPRetinaFullClustering.cpp deleted file mode 100644 index 1880f327365..00000000000 --- a/VP/VPDAQ/src/VPRetinaFullClustering.cpp +++ /dev/null @@ -1,449 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "DetDesc/ConditionAccessorHolder.h" -#include "Event/RawBank.h" -#include "Event/RawEvent.h" -#include "Event/VPFullCluster.h" -#include "GaudiAlg/Transformer.h" -#include "GaudiKernel/Transform3DTypes.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include "VPDet/DeVP.h" -#include "VPKernel/PixelUtils.h" -#include "VPKernel/VeloPixelInfo.h" -#include "VPRetinaFullCluster.h" -#include "VPRetinaMatrix.h" -#include -#include -#include -#include -#include - -/** @class VPRetinaFullClustering VPRetinaFullClustering.h - * @author Federico Lazzari - * @date 2018-06-20 - */ - -// Namespace for locations in TDS -namespace LHCb { - namespace VPFullClusterLocation { - inline const std::string Offsets = "Raw/VP/FullClustersOffsets"; - } -} // namespace LHCb - -namespace LHCb::VP::Retina { - struct GeomCache { - GeomCache( const DeVP& det ); - std::array, ::VP::NSensors> m_ltg; - LHCb::span m_local_x; - LHCb::span m_x_pitch; - float m_pixel_size; - }; -} // namespace LHCb::VP::Retina - -class VPRetinaFullClustering - : public Gaudi::Functional::MultiTransformer< - std::tuple, std::array>( - const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ), - LHCb::DetDesc::usesConditions> { - -public: - /// Standard constructor - VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ); - - /// Algorithm initialization - StatusCode initialize() override; - - /// Algorithm execution - std::tuple, std::array> - operator()( const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ) const override; - -private: - /// bank version. (change this every time semantics change!) - static constexpr unsigned int m_bankVersion = 1; - - /// make RetinaClusters from bank - std::vector makeRetinaFullClusters( LHCb::span bank, - const unsigned int sensor ) const; - - Gaudi::Property m_chain_length{ - this, "chain_length", 20, - "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; -}; - -using namespace LHCb; - -DECLARE_COMPONENT( VPRetinaFullClustering ) - -namespace { - struct SPCache { - std::array fxy; - unsigned char pattern; - unsigned char nx1; - unsigned char nx2; - unsigned char ny1; - unsigned char ny2; - }; - //========================================================================= - // Cache Super Pixel cluster patterns. - //========================================================================= - auto create_SPPatterns() { - std::array SPCaches; - // create a cache for all super pixel cluster patterns. - // this is an unoptimized 8-way flood fill on the 8 pixels - // in the super pixel. - // no point in optimizing as this is called once in - // initialize() and only takes about 20 us. - - // define deltas to 8-connectivity neighbours - const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; - const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; - - // clustering buffer for isolated superpixels. - unsigned char sp_buffer[8]; - - // SP index buffer and its size for single SP clustering - unsigned char sp_idx[8]; - unsigned char sp_idx_size = 0; - - // stack and stack pointer for single SP clustering - unsigned char sp_stack[8]; - unsigned char sp_stack_ptr = 0; - - // loop over all possible SP patterns - for ( unsigned int sp = 0; sp < 256; ++sp ) { - sp_idx_size = 0; - for ( unsigned int shift = 0; shift < 8; ++shift ) { - const unsigned char p = sp & ( 1 << shift ); - sp_buffer[shift] = p; - if ( p ) { sp_idx[sp_idx_size++] = shift; } - } - - // loop over pixels in this SP and use them as - // cluster seeds. - // note that there are at most two clusters - // in a single super pixel! - unsigned char clu_idx = 0; - for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { - unsigned char idx = sp_idx[ip]; - - if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used - - sp_stack_ptr = 0; - sp_stack[sp_stack_ptr++] = idx; - sp_buffer[idx] = 0; - unsigned char x = 0; - unsigned char y = 0; - unsigned char n = 0; - - while ( sp_stack_ptr ) { - idx = sp_stack[--sp_stack_ptr]; - const unsigned char row = idx % 4; - const unsigned char col = idx / 4; - x += col; - y += row; - ++n; - - for ( unsigned int ni = 0; ni < 8; ++ni ) { - const char ncol = col + dx[ni]; - if ( ncol < 0 || ncol > 1 ) continue; - const char nrow = row + dy[ni]; - if ( nrow < 0 || nrow > 3 ) continue; - const unsigned char nidx = ( ncol << 2 ) | nrow; - if ( 0 == sp_buffer[nidx] ) continue; - sp_stack[sp_stack_ptr++] = nidx; - sp_buffer[nidx] = 0; - } - } - - const uint32_t cx = x / n; - const uint32_t cy = y / n; - const float fx = x / static_cast( n ) - cx; - const float fy = y / static_cast( n ) - cy; - - // store the centroid pixel - SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; - - // set the two cluster flag if this is the second cluster - SPCaches[sp].pattern |= clu_idx << 3; - - // set the pixel fractions - SPCaches[sp].fxy[2 * clu_idx] = fx; - SPCaches[sp].fxy[2 * clu_idx + 1] = fy; - - // increment cluster count. note that this can only become 0 or 1! - ++clu_idx; - } - } - return SPCaches; - } - // SP pattern buffers for clustering, cached once. - // There are 256 patterns and there can be at most two - // distinct clusters in an SP. - static const std::array s_SPCaches = create_SPPatterns(); -} // namespace - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaFullClustering::VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ) - : MultiTransformer( name, pSvcLocator, - {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, - KeyValue{"GeomCacheLocation", "VPRetinaFullClustering-" + name + "-GeomCache"}}, - {KeyValue{"ClusterLocation", LHCb::VPFullClusterLocation::Default}, - KeyValue{"ClusterOffsets", LHCb::VPFullClusterLocation::Offsets}} ) {} - -//============================================================================= -// Initialization -//============================================================================= -StatusCode VPRetinaFullClustering::initialize() { - return MultiTransformer::initialize().andThen( [&] { - addConditionDerivation( {DeVPLocation::Default}, - inputLocation() ); - } ); -} - -//============================================================================ -// Rebuild the geometry (in case something changes in the Velo during the run) -//============================================================================ -LHCb::VP::Retina::GeomCache::GeomCache( const DeVP& det ) { - - m_local_x = det.sensor( 0 ).xLocal(); - m_x_pitch = det.sensor( 0 ).xPitch(); - m_pixel_size = det.sensor( 0 ).pixelSize(); - - det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { - // get the local to global transformation matrix and - // store it in a flat float array of sixe 12. - Gaudi::Rotation3D ltg_rot; - Gaudi::TranslationXYZ ltg_trans; - sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); - auto& ltg = m_ltg[sensor.sensorNumber()]; - ltg_rot.GetComponents( ltg.data() ); - ltg[2] = ltg_trans.X(); - ltg[5] = ltg_trans.Y(); - ltg[8] = ltg_trans.Z(); - } ); -} - -//============================================================================= -// Main execution -//============================================================================= -std::tuple, std::array> VPRetinaFullClustering:: - operator()( const LHCb::RawEvent& rawEvent, const LHCb::VP::Retina::GeomCache& cache ) const { - auto result = std::tuple, std::array>{}; - - const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); - if ( tBanks.empty() ) return result; - - const unsigned int version = tBanks[0]->version(); - if ( version != 2 ) { - warning() << "Unsupported raw bank version (" << version << ")" << endmsg; - return result; - } - - // Since the pool is local, to first preallocate the pool, then count hits per module, - // and then preallocate per module and move hits might not be faster than adding - // directly to the PixelModuleHits (which would require more allocations, but - // not many if we start with a sensible default) - auto& [pool, offsets] = result; - const unsigned int startSize = 10000U; - pool.reserve( startSize ); - - // 1 module = N Cluster -> N x M channelIDs - std::vector> channelIDs; - channelIDs.reserve( 400 ); - - if ( msgLevel( MSG::DEBUG ) ) { debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; } - - // Loop over VP RawBanks - for ( auto iterBank : tBanks ) { - - const unsigned int sensor = iterBank->sourceID(); - const unsigned int module = 1 + ( sensor / ::VP::NSensorsPerModule ); - int n_hits = 0; - - const auto& ltg = cache.m_ltg[sensor]; - auto retinaClusters = makeRetinaFullClusters( iterBank->range(), sensor ); - - for ( auto iterCluster : retinaClusters ) { - const uint32_t cx = iterCluster.word() >> 14 & 0x3FF; - const float fx = ( ( iterCluster.word() >> 11 ) & 0x7 ) / 8.; - const uint32_t cy = ( iterCluster.word() >> 3 ) & 0xFF; - const float fy = ( iterCluster.word() & 0x7 ) / 8.; - - const uint32_t chip = cx / Pixel::CHIP_COLUMNS; - const uint32_t ccol = cx % Pixel::CHIP_COLUMNS; - - LHCb::VPChannelID cid( sensor, chip, ccol, cy ); - channelIDs.push_back( iterCluster.channelIDs() ); - - const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; - const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; - - const float gx = ltg[0] * local_x + ltg[1] * local_y + ltg[2]; - const float gy = ltg[3] * local_x + ltg[4] * local_y + ltg[5]; - const float gz = ltg[6] * local_x + ltg[7] * local_y + ltg[8]; - - pool.emplace_back( fx, fy, gx, gy, gz, cid, std::move( channelIDs.back() ) ); - n_hits++; - ++offsets[module]; - } - - } // loop over all banks - - std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); - // Do we actually need to sort the hits ? [ depends, if the offline clustering will be re-run and tracking will use - // those clusters , yes, otherwise no ] - for ( size_t moduleID = 0; moduleID < VeloInfo::Numbers::NModules; ++moduleID ) { - // In even modules you fall in the branching at -180, 180 degrees, you want to do that continuos - std::stable_sort( - pool.begin() + offsets[moduleID], pool.begin() + offsets[moduleID + 1], - []( const LHCb::VPFullCluster& a, const LHCb::VPFullCluster& b ) { return a.channelID() < b.channelID(); } ); - } - if ( msgLevel( MSG::DEBUG ) ) { - for ( auto& cl : pool ) { - info() << "----" << endmsg; - info() << cl << endmsg; - info() << " [fx,fy] " << cl.xfraction() << "," << cl.yfraction() << endmsg; - info() << " [x,y,z] " << cl.x() << "," << cl.y() << "," << cl.z() << endmsg; - info() << "pixels" << endmsg; - for ( auto& pixel : cl.pixels() ) { info() << "\t" << pixel << endmsg; } - } - } - if ( msgLevel( MSG::DEBUG ) ) { info() << "N VPFullCluster produced : " << pool.size() << endmsg; } - - return result; -} - -//============================================================================= -// make RetinaClusters from bank -//============================================================================= -std::vector -VPRetinaFullClustering::makeRetinaFullClusters( LHCb::span bank, const unsigned int sensor ) const { - assert( bank.size() == 1 + bank[0] ); - - std::vector RetinaMatrixVector; - RetinaMatrixVector.reserve( 20 ); - std::vector RetinaCluster; - - // Read super pixel - for ( const uint32_t sp_word : bank.subspan( 1 ) ) { - - uint8_t sp = sp_word & 0xFFU; - - if ( 0 == sp ) continue; // protect against zero super pixels. - - const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; - const uint32_t sp_row = sp_addr & 0x3FU; - const uint32_t sp_col = ( sp_addr >> 6 ); - const uint32_t no_sp_neighbours = sp_word & 0x80000000U; - - // if a super pixel is not isolated - // we use Retina Clustering Algorithm - if ( !no_sp_neighbours ) { - // we look for already created Retina - auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), - [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); - if ( iterRetina != RetinaMatrixVector.end() ) { - iterRetina->AddSP( sp_row, sp_col, sp ); - continue; - } else { - // if we have not reached maximum chain length - // we create a new retina - if ( RetinaMatrixVector.size() < m_chain_length ) { - RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); - continue; - } else { - // continue; - } - } - } - - // if a super pixel is isolated or the RetinaMatrix chain is full - // the clustering boils down to a simple pattern look up. - - // there is always at least one cluster in the super - // pixel. look up the pattern and add it. - - // there is always at least one cluster in the super - // pixel. look up the pattern and add it. - - // remove after caches rewrite - const auto& spcache = s_SPCaches[sp]; - const uint32_t idx = spcache.pattern; - - const uint32_t row = idx & 0x03U; - const uint32_t col = ( idx >> 2 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); - - std::vector channelIDs; - uint32_t shift_r = 0; - while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; - while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && shift_r < 4 ) { - if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2 + 1; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - shift_r++; - } - RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); - if ( idx & 8 ) { - const uint32_t row = ( idx >> 4 ) & 3; - const uint32_t col = ( idx >> 6 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); - - std::vector channelIDs; - while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; - while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && - shift_r < 4 ) { - if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2 + 1; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - shift_r++; - } - RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); - } - } - - // searchRetinaCluster - for ( auto& m : RetinaMatrixVector ) { - const auto& clusters = m.SearchFullCluster(); - RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); - }; - - return RetinaCluster; -} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.cpp b/VP/VPDAQ/src/VPRetinaMatrix.cpp deleted file mode 100644 index 9666f927ae2..00000000000 --- a/VP/VPDAQ/src/VPRetinaMatrix.cpp +++ /dev/null @@ -1,207 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -// LHCb -#include "Event/State.h" -#include "Kernel/VPConstants.h" -#include "VPKernel/PixelUtils.h" - -// Local -#include "VPRetinaMatrix.h" - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaMatrix::VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ) - : Coordinate_Retina_row( SP_row - 1 ) - , Coordinate_Retina_col( SP_col - 2 ) - , Sensor( sensor ) - , sensorID_in_module( sensor % ::VP::NSensorsPerModule ) { - // record SP pixels. - for ( uint32_t shift = 0; shift < 8; ++shift ) { - const uint8_t pixel = SP_pixel & 1; - if ( pixel ) { - const uint32_t row = 4 + shift % 4; - const uint32_t col = 4 + shift / 4; - Pixel_Matrix[row][col] = pixel; - } - SP_pixel = SP_pixel >> 1; - if ( 0 == SP_pixel ) break; - } - - // record which SP is added - SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; -} - -//============================================================================= -// Check if a SP coordinate are inside the Retina -//============================================================================= -bool VPRetinaMatrix::IsInRetina( uint32_t SP_row, uint32_t SP_col ) const { - return Coordinate_Retina_row <= (int32_t)SP_row && (int32_t)SP_row < Coordinate_Retina_row + 3 && - Coordinate_Retina_col <= (int32_t)SP_col && (int32_t)SP_col < Coordinate_Retina_col + 5; -} - -//============================================================================= -// Add a SP to the Retina -//============================================================================= -VPRetinaMatrix& VPRetinaMatrix::AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ) { - // record which SP is added - SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; - - // record SP pixels. - for ( uint32_t shift = 0; shift < 8; ++shift ) { - const uint8_t pixel = SP_pixel & 1; - if ( pixel ) { - const int32_t row = ( SP_row - Coordinate_Retina_row ) * 4 + shift % 4; - const int32_t col = ( SP_col - Coordinate_Retina_col ) * 2 + shift / 4; - Pixel_Matrix[row][col] = pixel; - } - SP_pixel = SP_pixel >> 1; - if ( 0 == SP_pixel ) break; - } - return *this; -} - -//============================================================================= -// Search cluster - Accounting for mirror geometry in sensors 1 and 2 -//============================================================================= - -std::vector VPRetinaMatrix::SearchCluster() const { - std::vector RetinaCluster; - RetinaCluster.reserve( 63 ); - - if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { - for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && - Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - } - } - } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { - for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && - Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && - Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - } - } - } - return RetinaCluster; -} -std::vector VPRetinaMatrix::SearchFullCluster() const { - std::vector RetinaCluster; - RetinaCluster.reserve( 63 ); - - std::vector channelID; - channelID.reserve( 9 ); - if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { - for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && - Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - - const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; - const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); - channelID.push_back( tmp_cid ); - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); - RetinaCluster.push_back( tmp_cluster ); - channelID.clear(); - } - } - } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { - for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && - Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && - Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - - const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; - const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); - channelID.push_back( tmp_cid ); - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); - RetinaCluster.push_back( tmp_cluster ); - channelID.clear(); - } - } - } - return RetinaCluster; -} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.h b/VP/VPDAQ/src/VPRetinaMatrix.h deleted file mode 100644 index 7303bb104f4..00000000000 --- a/VP/VPDAQ/src/VPRetinaMatrix.h +++ /dev/null @@ -1,59 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#ifndef VPRETINAMATRIX_H -#define VPRETINAMATRIX_H 1 - -#include "VPRetinaFullCluster.h" - -#include -#include - -namespace LHCb { - class State; -} - -/** @class VPRetinaMatrix VPRetinaMatrix.h - * Class to store SuperPixel in a RETINA like architecture - * and find Cluster - * - * @author Federico Lazzari - * @date 2015-04-18 - */ - -class VPRetinaMatrix final { -public: - /// Standard constructor - VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ); - - /// Check if a SP coordinate are inside the Retina - bool IsInRetina( uint32_t SP_row, uint32_t SP_col ) const; - - /// Add a SP to the Retina - VPRetinaMatrix& AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ); - - /// Search cluster - std::vector SearchCluster() const; - std::vector SearchFullCluster() const; - -private: - // Coordinate of the lower left SP - int32_t Coordinate_Retina_row; - int32_t Coordinate_Retina_col; - // Sensor - const unsigned int Sensor; - const uint32_t sensorID_in_module; - - // Matrix of pixel - std::array, 3> SPixel_Matrix{}; - std::array, 12> Pixel_Matrix{}; -}; - -#endif // VPRetinaMatrix_H diff --git a/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp b/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp deleted file mode 100644 index bba22889d74..00000000000 --- a/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "Event/RawEvent.h" -#include "Event/VPDigit.h" -#include "GaudiAlg/GaudiAlgorithm.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include -#include -#include -#include - -using namespace LHCb; - -//----------------------------------------------------------------------------- -// Implementation file for class : VPSuperPixelBankEncoder -// -// 2014-03-06 : Karol Hennessy, Kurt Rinnert -//----------------------------------------------------------------------------- - -/** @class VPSuperPixelBankEncoder VPSuperPixelBankEncoder.h - * Algorithm to create Super Pixel Raw Bank from VP digits. - * - * There is one raw bank per sensor, that is the sensor number (0-207) - * is the source ID of the bank. Note that this means there is no - * need to encode the sensor in the Super Pixel addresses. - * - * Each bank has a four byte word header, followed by a four byte - * Super Pixel word for each Super Pixel on the sensor. - * - * The header word is currently simply the number of Super Pixels - * on the sensor. There are plenty of bits available to encode - * error conditions and such in the future. - * - * The Super Pixel word encoding is the following: - * - * bit 0-7 Super Pixel Pattern - * bit 8-13 Super Pixel Row (0-63) - * bit 14-22 Super Pixel Column (0-383) - * bit 23-30 UNUSED - * bit 31 Super Pixel isolation flag - * - * Super Pixel Pattern bits encode columns and rows as follows: - * - * row,y - * - * ^ 37 - * | 26 - * | 15 - * | 04 - * +---> col,x - * - * @author Karol Hennessy - * @author Kurt Rinnert - * @date 2014-03-06 - */ - -class VPSuperPixelBankEncoder : public GaudiAlgorithm { - -public: - /// Standard constructor - VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ); - StatusCode execute() override; ///< Algorithm execution - -private: - /// where to get the digits from - std::string m_digitLocation; - /// where to write the clusters to - std::string m_rawEventLocation; - /// event counter - unsigned int m_evt = 0; - /// per sensor buffers of super pixel words - std::array, VP::NSensors> m_spBySensor; -}; - -namespace { - /// bank version. (change this every time semantics change!) - constexpr unsigned int c_bankVersion = 2; - - /// to sort super pixels by column (major) and row (minor) - auto SPLowerThan = []( unsigned int lhs, unsigned int rhs ) { return ( lhs & 0x7FFF00 ) < ( rhs & 0x7FFF00 ); }; - - // convert channelID to super pixel words - struct sp_word { - sp_word( VPChannelID id ) noexcept { - const unsigned int chip = id.chip(); - const unsigned int row = id.row(); - const unsigned int col = id.col(); - const unsigned int sensorCol = col + 256 * chip; - const unsigned int spCol = sensorCol / 2; - const unsigned int spRow = row / 4; - addr = ( ( spCol << 6 ) | spRow ); - ix = 0x1u << ( ( ( col % 2 ) * 4 ) + row % 4 ); - } - unsigned int addr; - unsigned int ix; - unsigned int to_uint() const noexcept { return ( addr << 8 ) | ix; } - }; - -} // namespace - -DECLARE_COMPONENT( VPSuperPixelBankEncoder ) - -//============================================================================= -// Constructor -//============================================================================= -VPSuperPixelBankEncoder::VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ) - : GaudiAlgorithm( name, pSvcLocator ) { - declareProperty( "DigitLocation", m_digitLocation = LHCb::VPDigitLocation::Default ); - declareProperty( "RawEventLocation", m_rawEventLocation = LHCb::RawEventLocation::Default ); -} - -//============================================================================= -// Execution -//============================================================================= -StatusCode VPSuperPixelBankEncoder::execute() { - - if ( msgLevel( MSG::DEBUG ) ) debug() << "==> Execute" << endmsg; - ++m_evt; - const VPDigits* digits = getIfExists( m_digitLocation ); - if ( !digits ) { return Error( " ==> There are no VPDigits in TES! " ); } - - // Check if RawEvent exists - RawEvent* rawEvent = getIfExists( m_rawEventLocation ); - if ( !rawEvent ) { - // Create RawEvent - rawEvent = new LHCb::RawEvent(); - put( rawEvent, m_rawEventLocation ); - } - - for ( auto& s : m_spBySensor ) { - // put header word as first element (but don't know content yet) - s = {0}; - } - - // Loop over digits create super pixel words and store them. - // No assumption about the order of digits is made. - for ( const auto& seed : *digits ) { - auto& sensor = m_spBySensor[seed->channelID().sensor()]; - auto sp = sp_word{seed->channelID()}; - - auto j = std::find_if( sensor.begin(), sensor.end(), [&]( unsigned int s ) { return ( s >> 8 ) == sp.addr; } ); - - if ( j != sensor.end() ) { - *j |= sp.ix; - } else { - sensor.push_back( sp.to_uint() ); - } - } - - constexpr auto dx = std::array{-1, 0, 1, -1, 0, 1, -1, 1}; - constexpr auto dy = std::array{-1, -1, -1, 1, 1, 1, 0, 0}; - - int total = 0; - int sensor = 0; - for ( LHCb::span data : m_spBySensor ) { - assert( !data.empty() ); // must have at least a header! - - auto spixels = data.subspan<1>(); // skip header word - - // encode header. - data[0] = spixels.size(); // set correct number of super pixels - - // sort super pixels column major on each sensor - std::sort( spixels.begin(), spixels.end(), SPLowerThan ); - - // set 'no neighbour' hint flags - std::array buffer = {false}; // buffer for checking super pixel neighbours - for ( auto spw : spixels ) { - assert( ( spw & 0xFFu ) != 0 ); - unsigned int idx = ( spw >> 8 ); - buffer[idx] = true; - } - - for ( auto& spw : spixels ) { - const unsigned int idx = ( spw >> 8 ); - const unsigned int row = idx & 0x3FU; - const unsigned int col = ( idx >> 6 ); - unsigned int no_neighbour = 1; - for ( unsigned int ni = 0; ni < 8; ++ni ) { - const int nrow = row + dy[ni]; - if ( nrow < 0 || nrow > 63 ) continue; - const int ncol = col + dx[ni]; - if ( ncol < 0 || ncol > 383 ) continue; - const unsigned int nidx = ( ncol << 6 ) | nrow; - if ( buffer[nidx] ) { - no_neighbour = 0; - break; - } - } - spw |= ( no_neighbour << 31 ); - } - - total += data.size_bytes(); - if ( msgLevel( MSG::DEBUG ) ) debug() << "evt " << m_evt << "sensor " << sensor << " sp " << data.size() << endmsg; - - rawEvent->addBank( sensor++, LHCb::RawBank::VP, c_bankVersion, data ); - } - - if ( msgLevel( MSG::DEBUG ) ) debug() << "total " << total << endmsg; - - return StatusCode::SUCCESS; -} -- GitLab From fd059ba289516e235f48bf21ed09390dced405e8 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Thu, 25 Jun 2020 18:35:42 +0200 Subject: [PATCH 194/199] delete unnecessary files --- .git-lb-checkout | 3 - .../options/default_input_and_conds_hlt1.py | 4 +- Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 11 ---- .../tests/qmtest/hlt1_reco_retinacluster.qmt | 34 ----------- .../tests/refs/hlt1_reco_retinacluster.ref | 56 ------------------- ...reco_calo_from_dst.ref.x86_64+avx2+fma-opt | 2 +- 6 files changed, 2 insertions(+), 108 deletions(-) delete mode 100644 .git-lb-checkout delete mode 100644 Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt delete mode 100644 Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref diff --git a/.git-lb-checkout b/.git-lb-checkout deleted file mode 100644 index 3ad31fd041c..00000000000 --- a/.git-lb-checkout +++ /dev/null @@ -1,3 +0,0 @@ -[lb-checkout "LHCb.VP/VPDAQ"] - base = 9bcefba7385e033d199b6aade4a82561670ba306 - imported = 9b316706feb8b8a0957980b83d0cb56069d31389 diff --git a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py index 8c93e39c3e2..2bf391d876c 100644 --- a/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py +++ b/Hlt/Moore/tests/options/default_input_and_conds_hlt1.py @@ -12,8 +12,6 @@ import os from Moore import options options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_DIGI') -#options.set_input_from_testfiledb("Upgrade_BsPhiPhi_MD_FTv4_DIGI") - -options.evt_max = 10 +options.evt_max = 1000 execfile(os.path.expandvars('$MOOREROOT/tests/options/default_conds.py')) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index 1b1383a0e3f..dbdf5c81a60 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -114,16 +114,9 @@ def make_VeloClusterTrackingSIMD_hits( Returns: DataHandle: VeloClusterTrackingSIMD's HitsLocation. """ - #<<<<<<< HEAD - # return VeloClusterTrackingSIMD( - # RawEventLocation=make_raw(["VP"])).HitsLocation - #======= return make_tracks(RawEventLocation=make_raw()).HitsLocation -#>>>>>>> FPGAclusteringMoore - - def make_VPClus_location_and_offsets(make_raw=default_raw_event): """Makes velo clusters with VPClus @@ -165,11 +158,7 @@ def make_VeloClusterTrackingSIMD_tracks( Returns: A dict mapping forward-, backward-going and v2 velo tracks to ``'Pr'``, ``'Pr::backward'`` and ``'v2'`` respectively. """ - #<<<<<<< HEAD - # tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw(["VP"])) - #======= tracking = make_tracks(RawEventLocation=make_raw()) - #>>>>>>> FPGAclusteringMoore forward_going_tracks = tracking.TracksLocation backward_going_tracks = tracking.TracksBackwardLocation v2_tracks = TracksVPMergerConverter( diff --git a/Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt b/Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt deleted file mode 100644 index b56b61983b9..00000000000 --- a/Hlt/RecoConf/tests/qmtest/hlt1_reco_retinacluster.qmt +++ /dev/null @@ -1,34 +0,0 @@ - - - -gaudirun.py - - $MOOREROOT/options/force_functor_cache.py - $MOOREROOT/tests/options/mdf_input_and_conds_retinacluster.py - $MOOREROOT/tests/options/download_mdf_input.py - $RECOCONFROOT/options/hlt1_reco_retinacluster.py - --output=hlt1_reco_retinacluster.opts.py - --all-opt - -true -../refs/hlt1_reco_retinacluster.ref - - -from Moore.qmtest.exclusions import ref_preprocessor -validateWithReference(preproc = ref_preprocessor) - -from Moore.qmtest.exclusions import remove_known_warnings -countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0}, - stdout=remove_known_warnings(stdout)) - - - diff --git a/Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref b/Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref deleted file mode 100644 index f6f0e50341e..00000000000 --- a/Hlt/RecoConf/tests/refs/hlt1_reco_retinacluster.ref +++ /dev/null @@ -1,56 +0,0 @@ -ToolSvc INFO Removing all tools created by ToolSvc -ApplicationMgr INFO Application Manager Finalized successfully -ApplicationMgr INFO Application Manager Terminated successfully -LHCb__MDF__IOAlg INFO Number of counters : 1 - | Counter | - | "#banks in raw event" | 1000 | 1233000 | 1233.0 | 0.0000 | 1233 | 1233 | -PrGECFilter SUCCESS Number of counters : 2 - | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb Events Processed" | 1000 | - | "Nb events removed" | 65 | -VeloRetinaClusterTrackingSIMDFaster INFO Number of counters : 2 - | Counter | - | "Nb of Produced Clusters" | 935 | 1624362 | 1737.3 | - | "Nb of Produced Tracks" | 935 | 205387 | 219.67 | -TrackBeamLineVertexFinderSoA INFO Number of counters : 1 - | Counter | - | "Nb PVs" | 935 | 4375 | 4.6791 | -PrStorePrUTHits INFO Number of counters : 1 - | Counter | - | "#banks" | 935 | 168300 | 180.00 | -PrVeloUT INFO Number of counters : 2 - | Counter | - | "#seeds" | 935 | 127462 | 136.32 | - | "#tracks" | 935 | 32674 | 34.945 | -SciFiTrackForwarding INFO Number of counters : 20 - | Counter | - | "1- Second loops" | 15622 | - | "2- X doublets in S3" | 108225 | - | "2b- X doublets in S2, 2nd loop" | 49604 | - | "3- X doublets in S3 and S2" | 30022 | - | "3b- X doublets in S3 and S2, 2nd loop" | 9366 | - | "4- X doublets in S3, S2 and S1" | 21784 | - | "4b- X doublets in S3, S2 and S1, 2nd loop" | 5778 | - | "5- Candidates before the quality cut" | 20542 | - | "5b- Candidates before the quality cut, 2nd loop| 5560 | - | "6- Candidates after the quality cut" | 17386 | - | "6b- Candidates after the quality cut, 2nd loop"| 4411 | - | "7- Candidates" | 21370 | - | "Accepted input tracks" | 48296 | - | "Created long tracks" | 935 | 21370 | 22.856 | - | "Search S1" | 36190 | - | "Search S1UV" | 24913 | - | "Search S2" | 65342 | - | "Search S2 UV" | 23718 | - | "Search S3" | 616361 | - | "Search S3UV" | 108225 | -VeloKalman SUCCESS Number of counters : 1 - | Counter | # | sum | mean/eff^* | rms/err^* | min | max | - | "Nb of Produced Tracks" | 935 | 21370 | 22.856 | -MuonIDHlt1AlgPr INFO Number of counters : 5 - | Counter | - | "nGoodOffline" | 21370 | - | "nInAcceptance" | 19349 | - | "nIsMuon" | 1341 | - | "nIsMuonTight" | 680 | - | "nMomentumCut" | 20923 | diff --git a/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt b/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt index a6c1472fb72..bf889e07182 100644 --- a/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt +++ b/Hlt/RecoConf/tests/refs/hlt2_reco_calo_from_dst.ref.x86_64+avx2+fma-opt @@ -85,7 +85,7 @@ ClassifyPhotonElectronAlg INFO Number of counters : 14 FutureElectronMatchAlg SUCCESS Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "#above threshold" | 80 | 1208612 | 15108. | 9833.2 | 222.00 | 40394. | - | "#chi2" | 128101 |5.636457e+08 | 4400.0 | 2933.3 | 0.025692 | 9999.9 | + | "#chi2" | 128101 |5.636456e+08 | 4400.0 | 2933.3 | 0.025692 | 9999.9 | | "#good tracks" | 80 | 10207 | 127.59 | 47.108 | 19.000 | 222.00 | | "#links in table" | 80 | 128101 | 1601.3 | 909.95 | 25.000 | 3733.0 | | "#total calos" | 80 | 9255 | 115.69 | 42.669 | 13.000 | 197.00 | -- GitLab From 03093c6f61485084735064b8118b6cab6981a6c9 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Fri, 26 Jun 2020 16:04:50 +0200 Subject: [PATCH 195/199] added VP/VPDAQ from LHCb (LHCb/lingzhu_Allen_Moore_Retina_integration) --- .git-lb-checkout | 3 + VP/VPDAQ/CMakeLists.txt | 34 ++ VP/VPDAQ/doc/release.notes | 126 +++++++ VP/VPDAQ/src/VPRetinaClusterCreator.cpp | 317 ++++++++++++++++ VP/VPDAQ/src/VPRetinaClusterDecoder.cpp | 224 +++++++++++ VP/VPDAQ/src/VPRetinaFullCluster.h | 47 +++ VP/VPDAQ/src/VPRetinaFullClustering.cpp | 449 +++++++++++++++++++++++ VP/VPDAQ/src/VPRetinaMatrix.cpp | 207 +++++++++++ VP/VPDAQ/src/VPRetinaMatrix.h | 59 +++ VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp | 211 +++++++++++ 10 files changed, 1677 insertions(+) create mode 100644 .git-lb-checkout create mode 100644 VP/VPDAQ/CMakeLists.txt create mode 100755 VP/VPDAQ/doc/release.notes create mode 100644 VP/VPDAQ/src/VPRetinaClusterCreator.cpp create mode 100644 VP/VPDAQ/src/VPRetinaClusterDecoder.cpp create mode 100644 VP/VPDAQ/src/VPRetinaFullCluster.h create mode 100644 VP/VPDAQ/src/VPRetinaFullClustering.cpp create mode 100644 VP/VPDAQ/src/VPRetinaMatrix.cpp create mode 100644 VP/VPDAQ/src/VPRetinaMatrix.h create mode 100644 VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp diff --git a/.git-lb-checkout b/.git-lb-checkout new file mode 100644 index 00000000000..d25d0e7f397 --- /dev/null +++ b/.git-lb-checkout @@ -0,0 +1,3 @@ +[lb-checkout "LHCb.VP/VPDAQ"] + base = fd059ba289516e235f48bf21ed09390dced405e8 + imported = 9b316706feb8b8a0957980b83d0cb56069d31389 diff --git a/VP/VPDAQ/CMakeLists.txt b/VP/VPDAQ/CMakeLists.txt new file mode 100644 index 00000000000..f4361eebbff --- /dev/null +++ b/VP/VPDAQ/CMakeLists.txt @@ -0,0 +1,34 @@ +############################################################################### +# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +################################################################################ +# Package: VPDAQ +################################################################################ +gaudi_subdir(VPDAQ) + +gaudi_depends_on_subdirs(Det/VPDet + DAQ/DAQUtils + DAQ/DAQKernel + Event/DAQEvent + Event/DigiEvent + VP/VPKernel + GaudiAlg + Kernel/LHCbKernel) + +find_package(AIDA) +find_package(Boost) +find_package(ROOT) +include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}) + +gaudi_add_module(VPDAQ + src/*.cpp + INCLUDE_DIRS AIDA Event/DigiEvent Pr/PrKernel + LINK_LIBRARIES VPDetLib TrackEvent DAQEventLib DAQKernelLib GaudiAlgLib LHCbKernel) + diff --git a/VP/VPDAQ/doc/release.notes b/VP/VPDAQ/doc/release.notes new file mode 100755 index 00000000000..6610081da8c --- /dev/null +++ b/VP/VPDAQ/doc/release.notes @@ -0,0 +1,126 @@ +!----------------------------------------------------------------------------- +! Package : VP/VPDAQ +! Responsible : Kurt Rinnert, Karol Hennessy +! Purpose : Prepare VP RawBank and decode it +!----------------------------------------------------------------------------- + +!========================= VPDAQ v2r8 2016-03-16 ========================= +! 2016-02-02 - Gerhard Raven + - modernize code + +!========================= VPDAQ v2r7p1 2015-10-12 ========================= +! 2015-08-03 - Gerhard Raven + - remove #include of obsolete Gaudi headers + +!========================= VPDAQ v2r7 2014-05-12 ========================= +! 2014-05-04 - Heinrich Schindler + - Replace hard-coded array size by constants. + +! 2014-04-25 - Heinrich Schindler + - Follow changes in VPChannelID format (r171869). + +! 2014-04-14 - Heinrich Schindler + - Remove do-nothing finalize method. + - Run clang-format for consistent style. + +! 2014-04-04 - Heinrich Schindler + - Remove en/decoders for old, cluster-based raw banks. + - Remove unnecessary dependencies. + +! 2014-04-01 - Heinrich Schindler + - Remove VPLiteCluster include statements from PrepareVPRawBank. + - Remove VPRawBankToLiteCluster algorithm. + +! 2014-03-30 - Heinrich Schindler + - Follow changes in VPCluster format (revision r170715). + +! 2014-03-24 - Heinrich Schindler + - Follow changes in VPDigit format and location names (revision r170468). + +!========================= VPDAQ v2r6 2014-03-17 ========================= +! 2014-03-13 - Heinrich Schindler + - Follow changes in VPCluster format (revision r169999). + +! 2014-03-06 - Kurt Rinnert + - added encoder for Super Pixel raw bank from digits. + +!========================= VPDAQ v2r5 2014-02-17 ========================= +! 2014-02-13 - Rob Lambert + - Adapt VP decoder tool to Decoder base classes, task #49078 + +!========================= VPDAQ v2r4 2013-09-30 ========================= +! 2013-09-25 - Tim Evans + - Added VPDigit raw bank encoding and decoding + +! 2013-09-09 - Heinrich Schindler + - Follow detector element and channel ID changes (r162190, 162191) + +! 2013-07-25 - Rob Lambert + - Added DAQ/DAQUtils dependency to resolve build-order. + +!========================= VPDAQ v2r3 2013-07-18 ========================= +! 2013-06-13 - Marco Cattaneo + - Fix UNINIT_CTOR defects + - Fix untested StatusCode from Warning() messages + - Clean up unnecessary includes + - Remove empty finalize methods + +!========================= VPDAQ v2r2 2013-04-22 ========================= +! 2013-04-11 - Sascha Stahl + - Added back acccdidentally removed protection for RawEventLocations. + +! 2013-04-05 - Sascha Stahl + - Added vector of RawEventLocations. + +!========================= VPDAQ v2r1 2012-11-28 ========================= +! 2012-11-21 - Marco Clemencic + - Added CMake configuration file. + - Modified requirements to simplify auto conversion to CMake. + +! 2012-10-19 - Marco Cattaneo + - Fix potential memory leak in VPRawBankToLiteCluster and do not return + StatusCode::FAILURE from execute + - Use getItExists + - Fix UNINIT_CTOR defects + - Fix unprotected debug() + - Fix gcc -pedantic warnings + +!========================= VPDAQ v2r0 2012-10-01 ========================= +! 2012-09-24 - Paul Szczypka + - Rename Package to VPDAQ + - Rename files and code from VeloPix to VP. + +!========================= VeloPixDAQ v1r4 2011-04-05 ========================= +! 2011-03-17 -Wenbin Qian + - remove some information output from previous change +! 2011-03-17 - Wenbin Qian + - bug fix for VeloPixRawBankToLiteCluster.cpp + +!========================= VeloPixDAQ v1r3 2010-09-28 ======================= +! 2010-09-22 - Victor Coco + - Replace hardcoded container location by proper location definition + +!========================= VeloPixDAQ v1r2p1 2010-06-21 ===================== +! 2010-06-10 - Marco Cattaneo + - Fix windows compiler warnings + +!========================= VeloPixDAQ v1r2 2010-03-30 ===================== +! 2010-03-30 - Victor Coco + - Add in VeloPixRawBankToPartialCluster some checks in case of duplicated + channelID (probably comes from an earlier bug, temporary solution) + +!========================= VeloPixDAQ v1r1 2010-03-18 ===================== + +! 2010-03-01 - Victor Coco + - Add VeloPixRawBankToPartialCluster to have partial decoding of the + VeloPixCluster: get central ChannelID + LiteCluster. + Add sorting of the FastClusterContainer in VeloPixRawBankToLiteCluster + +!========================= VeloPixDAQ v1r0 2010-01-25 ===================== +! 2010-01-25 Marcin Kucharczyk + - Fix the problem with pattern in PrepareVeloPixRawBank + corresponding to Windows compilation problems + +! 2010-01-21 Marcin Kucharczyk + - First release + diff --git a/VP/VPDAQ/src/VPRetinaClusterCreator.cpp b/VP/VPDAQ/src/VPRetinaClusterCreator.cpp new file mode 100644 index 00000000000..1dd5086cfb3 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaClusterCreator.cpp @@ -0,0 +1,317 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "DetDesc/ConditionAccessorHolder.h" +#include "Event/RawBank.h" +#include "Event/RawEvent.h" +#include "Event/VPLightCluster.h" +#include "GaudiAlg/Transformer.h" +#include "GaudiKernel/Transform3DTypes.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include "VPDet/DeVP.h" +#include "VPKernel/PixelUtils.h" +#include "VPKernel/VeloPixelInfo.h" +#include "VPRetinaMatrix.h" +#include +#include +#include +#include +#include + +/** @class VPRetinaClusterCreator VPRetinaClusterCreator.h + * Algorithm to create RetinaCluster Raw Bank from SuperPixel. + * + * There is one raw bank per sensor, that is the sensor number (0-207) + * is the source ID of the bank. Note that this means there is no + * need to encode the sensor in the RetinaCluster addresses. + * + * Each bank has a four byte word header, followed by a four byte + * RetinaCluster word for each RetinaCluster on the sensor. + * + * The header word is currently simply the number of RetinaCluster + * on the sensor. + * + * The RetinaCluster word encoding is the following: + * + * bit 0-2 RetinaCluster Fraction Row (0-1 by step of 0.125) + * bit 3-10 RetinaCluster Row (0-255) + * bit 11-13 RetinaCluster Fraction Column (0-1 by step of 0.125) + * bit 14-23 RetinaCluster Column (0-767) + * bit 24-25 SensorID in the module + * bit 26-31 UNUSED + * + * @author Federico Lazzari + * @date 2018-06-20 + */ + +class VPRetinaClusterCreator : public Gaudi::Functional::Transformer { + +public: + /// Standard constructor + VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ); + + /// Algorithm execution + LHCb::RawEvent operator()( const LHCb::RawEvent& ) const override; + +private: + /// bank version. (change this every time semantics change!) + static constexpr unsigned int m_bankVersion = 2; + + /// make RetinaClusters from bank + std::vector makeRetinaClusters( LHCb::span bank, const unsigned int sensor ) const; + Gaudi::Property m_chain_length{ + this, "chain_length", 20, + "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; +}; + +using namespace LHCb; + +DECLARE_COMPONENT( VPRetinaClusterCreator ) + +namespace { + struct SPCache { + std::array fxy; + unsigned char pattern; + unsigned char nx1; + unsigned char nx2; + unsigned char ny1; + unsigned char ny2; + }; + //========================================================================= + // Cache Super Pixel cluster patterns. + //========================================================================= + auto create_SPPatterns() { + std::array SPCaches; + // create a cache for all super pixel cluster patterns. + // this is an unoptimized 8-way flood fill on the 8 pixels + // in the super pixel. + // no point in optimizing as this is called once in + // initialize() and only takes about 20 us. + + // define deltas to 8-connectivity neighbours + const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; + const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; + + // clustering buffer for isolated superpixels. + unsigned char sp_buffer[8]; + + // SP index buffer and its size for single SP clustering + unsigned char sp_idx[8]; + unsigned char sp_idx_size = 0; + + // stack and stack pointer for single SP clustering + unsigned char sp_stack[8]; + unsigned char sp_stack_ptr = 0; + + // loop over all possible SP patterns + for ( unsigned int sp = 0; sp < 256; ++sp ) { + sp_idx_size = 0; + for ( unsigned int shift = 0; shift < 8; ++shift ) { + const unsigned char p = sp & ( 1 << shift ); + sp_buffer[shift] = p; + if ( p ) { sp_idx[sp_idx_size++] = shift; } + } + + // loop over pixels in this SP and use them as + // cluster seeds. + // note that there are at most two clusters + // in a single super pixel! + unsigned char clu_idx = 0; + for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { + unsigned char idx = sp_idx[ip]; + + if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used + + sp_stack_ptr = 0; + sp_stack[sp_stack_ptr++] = idx; + sp_buffer[idx] = 0; + unsigned char x = 0; + unsigned char y = 0; + unsigned char n = 0; + + while ( sp_stack_ptr ) { + idx = sp_stack[--sp_stack_ptr]; + const unsigned char row = idx % 4; + const unsigned char col = idx / 4; + x += col; + y += row; + ++n; + + for ( unsigned int ni = 0; ni < 8; ++ni ) { + const char ncol = col + dx[ni]; + if ( ncol < 0 || ncol > 1 ) continue; + const char nrow = row + dy[ni]; + if ( nrow < 0 || nrow > 3 ) continue; + const unsigned char nidx = ( ncol << 2 ) | nrow; + if ( 0 == sp_buffer[nidx] ) continue; + sp_stack[sp_stack_ptr++] = nidx; + sp_buffer[nidx] = 0; + } + } + + const uint32_t cx = x / n; + const uint32_t cy = y / n; + const float fx = x / static_cast( n ) - cx; + const float fy = y / static_cast( n ) - cy; + + // store the centroid pixel + SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; + + // set the two cluster flag if this is the second cluster + SPCaches[sp].pattern |= clu_idx << 3; + + // set the pixel fractions + SPCaches[sp].fxy[2 * clu_idx] = fx; + SPCaches[sp].fxy[2 * clu_idx + 1] = fy; + + // increment cluster count. note that this can only become 0 or 1! + ++clu_idx; + } + } + return SPCaches; + } + // SP pattern buffers for clustering, cached once. + // There are 256 patterns and there can be at most two + // distinct clusters in an SP. + static const std::array s_SPCaches = create_SPPatterns(); +} // namespace + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaClusterCreator::VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ) + : Transformer( name, pSvcLocator, {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}}, + KeyValue{"RetinaClusterLocation", LHCb::RawEventLocation::VeloCluster} ) {} + +//============================================================================= +// Main execution +//============================================================================= +LHCb::RawEvent VPRetinaClusterCreator::operator()( const LHCb::RawEvent& rawEvent ) const { + RawEvent result; + + const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); + if ( tBanks.empty() ) return result; + + const unsigned int version = tBanks[0]->version(); + if ( version != 2 ) { + warning() << "Unsupported raw bank version (" << version << ")" << endmsg; + return result; + } + + debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; + + unsigned int nBanks = 0; + + // Loop over VP RawBanks + for ( auto iterBank : tBanks ) { + + const unsigned int sensor = iterBank->sourceID(); + + auto sensorCluster = makeRetinaClusters( iterBank->range(), sensor ); + + result.addBank( sensor, LHCb::RawBank::VPRetinaCluster, m_bankVersion, sensorCluster ); + + ++nBanks; + + } // loop over all banks + + debug() << "Added " << nBanks << " raw banks of retina clusters to TES" << endmsg; + + return result; +} + +//============================================================================= +// make RetinaClusters from bank +//============================================================================= +std::vector VPRetinaClusterCreator::makeRetinaClusters( LHCb::span bank, + const unsigned int sensor ) const { + + assert( bank.size() == 1 + bank[0] ); + + const uint32_t sensorID_in_module = sensor % ::VP::NSensorsPerModule; + + std::vector RetinaMatrixVector; + RetinaMatrixVector.reserve( m_chain_length ); + std::vector RetinaCluster; + // reserve space for RetinaCluster + // # RetinaCluster <= # SP + RetinaCluster.reserve( bank.size() ); + // reserve first word for # RetinaCluster + RetinaCluster.push_back( 0 ); + + // Read super pixel + for ( const uint32_t sp_word : bank.subspan( 1 ) ) { + + uint8_t sp = sp_word & 0xFFU; + + if ( 0 == sp ) continue; // protect against zero super pixels. + + const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; + const uint32_t sp_row = sp_addr & 0x3FU; + const uint32_t sp_col = ( sp_addr >> 6 ); + const uint32_t no_sp_neighbours = sp_word & 0x80000000U; + + // if a super pixel is not isolated + // we use Retina Clustering Algorithm + if ( !no_sp_neighbours ) { + // we look for already created Retina + auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), + [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); + if ( iterRetina != RetinaMatrixVector.end() ) { + iterRetina->AddSP( sp_row, sp_col, sp ); + continue; + } else { + // if we have not reached maximum chain length + // we create a new retina + if ( RetinaMatrixVector.size() < m_chain_length ) { + RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); + continue; + } + } + } + // if a super pixel is isolated or the RetinaMatrix chain is full + // the clustering boils down to a simple pattern look up. + + // there is always at least one cluster in the super + // pixel. look up the pattern and add it. + + // remove after caches rewrite + const auto& spcache = s_SPCaches[sp]; + const uint32_t idx = spcache.pattern; + + const uint32_t row = idx & 0x03U; + const uint32_t col = ( idx >> 2 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + if ( idx & 8 ) { + const uint32_t row = ( idx >> 4 ) & 3; + const uint32_t col = ( idx >> 6 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + } + + } // loop over super pixels in raw bank + + // searchRetinaCluster + for ( auto& m : RetinaMatrixVector ) { + const auto& clusters = m.SearchCluster(); + RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); + }; + + RetinaCluster[0] = RetinaCluster.size() - 1; + return RetinaCluster; +} diff --git a/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp b/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp new file mode 100644 index 00000000000..b02437eeb2c --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp @@ -0,0 +1,224 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "DetDesc/ConditionAccessorHolder.h" +#include "Event/RawBank.h" +#include "Event/RawEvent.h" +#include "Event/VPLightCluster.h" +#include "GaudiAlg/Transformer.h" +#include "GaudiKernel/Transform3DTypes.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include "VPDet/DeVP.h" +#include "VPKernel/PixelUtils.h" +#include "VPKernel/VeloPixelInfo.h" +#include +#include +#include +#include + +namespace VPRetina { + enum class ErrorCode : StatusCode::code_t { + BANK_VERSION_UNKNOWN, + EMPTY_BANK, + BANK_SIZE_INCONSISTENT, + BAD_MAGIC, + BAD_SOURCE_ID + }; + struct ErrorCategory : StatusCode::Category { + const char* name() const override { return "VPRetinaDecoder"; } + bool isRecoverable( StatusCode::code_t ) const override { return false; } + std::string message( StatusCode::code_t code ) const override { + switch ( static_cast( code ) ) { + case ErrorCode::BANK_VERSION_UNKNOWN: + return "Bank version unknown"; + case ErrorCode::EMPTY_BANK: + return "Empty bank"; + case ErrorCode::BANK_SIZE_INCONSISTENT: + return "Bank size and declared number of clusters inconsistent"; + case ErrorCode::BAD_MAGIC: + return "Wrong magic number for bank"; + case ErrorCode::BAD_SOURCE_ID: + return "Source ID not in the expected range"; + default: + return StatusCode::default_category().message( code ); + } + } + }; +} // namespace VPRetina +STATUSCODE_ENUM_DECL( VPRetina::ErrorCode ) +STATUSCODE_ENUM_IMPL( VPRetina::ErrorCode, VPRetina::ErrorCategory ) + +[[gnu::noreturn]] void throw_exception( VPRetina::ErrorCode ec, const char* tag ) { + auto sc = StatusCode( ec ); + throw GaudiException{sc.message(), tag, std::move( sc )}; +} +#define OOPS( x ) throw_exception( x, __PRETTY_FUNCTION__ ) + +struct VPRetinaClusterGeomCache { + + std::array, VP::NSensors> m_ltg; // 9*208 = 9*number of sensors + LHCb::span m_local_x; + LHCb::span m_x_pitch; + float m_pixel_size; + + VPRetinaClusterGeomCache( const DeVP& det ) { + m_local_x = det.sensor( 0 ).xLocal(); + m_x_pitch = det.sensor( 0 ).xPitch(); + m_pixel_size = det.sensor( 0 ).pixelSize(); + det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { + // get the local to global transformation matrix and + // store it in a flat float array of sixe 12. + Gaudi::Rotation3D ltg_rot; + Gaudi::TranslationXYZ ltg_trans; + sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); + assert( sensor.sensorNumber() < m_ltg.size() ); + auto& ltg = m_ltg[sensor.sensorNumber()]; + ltg_rot.GetComponents( ltg.data() ); + ltg[2] = ltg_trans.X(); + ltg[5] = ltg_trans.Y(); + ltg[8] = ltg_trans.Z(); + } ); + } +}; + +// Namespace for locations in TES +namespace LHCb { + namespace VPClusterLocation { + inline const std::string Offsets = "Raw/VP/LightClustersOffsets"; + } +} // namespace LHCb + +class VPRetinaClusterDecoder + : public Gaudi::Functional::MultiTransformer< + std::tuple, std::array>( + const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ), + LHCb::DetDesc::usesConditions> { + +public: + /// Standard constructor + VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ); + + /// Algorithm initialization + StatusCode initialize() override; + + /// Algorithm execution + std::tuple, std::array> + operator()( const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ) const override; + +private: + std::bitset m_modulesToSkipMask; + Gaudi::Property> m_modulesToSkip{this, + "ModulesToSkip", + {}, + [=]( auto& ) { + m_modulesToSkipMask.reset(); + for ( auto i : m_modulesToSkip ) + m_modulesToSkipMask.set( i ); + }, + Gaudi::Details::Property::ImmediatelyInvokeHandler{true}, + "List of modules that should be skipped in decoding"}; + mutable Gaudi::Accumulators::AveragingCounter<> m_nBanks{this, "Number of banks"}; + mutable Gaudi::Accumulators::AveragingCounter<> m_nClusters{this, "Number of clusters"}; +}; + +DECLARE_COMPONENT( VPRetinaClusterDecoder ) + +using namespace Pixel; + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaClusterDecoder::VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ) + : MultiTransformer( name, pSvcLocator, + {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, + KeyValue{"GeomCacheLocation", "VPRetinaClusterDecoder-" + name + "-GeomCache"}}, + {KeyValue{"ClusterLocation", LHCb::VPClusterLocation::Light}, + KeyValue{"ClusterOffsets", LHCb::VPClusterLocation::Offsets}} ) {} + +//============================================================================= +// Initialization +//============================================================================= +StatusCode VPRetinaClusterDecoder::initialize() { + return MultiTransformer::initialize().andThen( [&] { + addConditionDerivation( {DeVPLocation::Default}, + inputLocation() ); + } ); +} + +//============================================================================= +// Main execution +//============================================================================= +std::tuple, std::array> +VPRetinaClusterDecoder::operator()( const LHCb::RawEvent& rawEvent, const VPRetinaClusterGeomCache& cache ) const { + auto result = std::tuple, std::array>{}; + auto& [clusters, offsets] = result; + + const auto& banks = rawEvent.banks( LHCb::RawBank::VPRetinaCluster ); + m_nBanks += banks.size(); + if ( banks.empty() ) return result; + + const unsigned int version = banks[0]->version(); + if ( version != 1 ) OOPS( VPRetina::ErrorCode::BANK_VERSION_UNKNOWN ); + + // Since 'clusters` is local, to first preallocate, then count hits per module, + // and then preallocate per module and move hits might not be faster than adding + // directly to the PixelModuleHits (which would require more allocations, but + // not many if we start with a sensible default) + constexpr unsigned int startSize = 10000U; + clusters.reserve( startSize ); + + // Loop over VP RawBanks + for ( const auto* bank : banks ) { + if ( LHCb::RawBank::MagicPattern != bank->magic() ) OOPS( VPRetina::ErrorCode::BAD_MAGIC ); + + const unsigned int module = bank->sourceID(); + if ( module == 0 || module > VP::NModules ) OOPS( VPRetina::ErrorCode::BAD_SOURCE_ID ); + + if ( m_modulesToSkipMask[module - 1] ) continue; + + const unsigned int sensor0 = ( module - 1 ) * VP::NSensorsPerModule; + + auto data = bank->range(); + if ( data.empty() ) OOPS( VPRetina::ErrorCode::EMPTY_BANK ); + + const uint32_t ncluster = data[0]; + if ( data.size() != ncluster + 1 ) OOPS( VPRetina::ErrorCode::BANK_SIZE_INCONSISTENT ); + data = data.subspan( 1 ); + + // Read clusters + std::transform( data.begin(), data.end(), std::back_inserter( clusters ), + [&]( const uint32_t cluster_word ) -> LHCb::VPLightCluster { + const unsigned int sensor = sensor0 + ( cluster_word >> 24 ); + const uint32_t cx = ( cluster_word >> 14 ) & 0x3FF; + const float fx = ( ( cluster_word >> 11 ) & 0x7 ) / 8.f; + const uint32_t cy = ( cluster_word >> 3 ) & 0xFF; + const float fy = ( cluster_word & 0x7 ) / 8.f; + const uint32_t chip = cx / CHIP_COLUMNS; + const uint32_t ccol = cx % CHIP_COLUMNS; + + const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; + const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; + + const auto& ltg = cache.m_ltg[sensor]; + const float gx = ( ltg[0] * local_x + ltg[1] * local_y + ltg[2] ); + const float gy = ( ltg[3] * local_x + ltg[4] * local_y + ltg[5] ); + const float gz = ( ltg[6] * local_x + ltg[7] * local_y + ltg[8] ); + + return {1, 1, gx, gy, gz, LHCb::VPChannelID{sensor, chip, ccol, cy}}; + } ); + offsets[module] += ncluster; + } // loop over all banks + + std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); + m_nClusters += offsets.back(); + + return result; +} diff --git a/VP/VPDAQ/src/VPRetinaFullCluster.h b/VP/VPDAQ/src/VPRetinaFullCluster.h new file mode 100644 index 00000000000..44581bb26dc --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaFullCluster.h @@ -0,0 +1,47 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#ifndef VPRETINAFULLCLUSTER_H +#define VPRETINAFULLCLUSTER_H 1 + +#include "Kernel/VPChannelID.h" +#include +#include + +/* + * @author Federico Lazzari + * @date 2018-06-22 + */ + +namespace LHCb { + + class VPRetinaFullCluster final { + public: + /// Constructor + VPRetinaFullCluster( const uint32_t word, std::vector channelIDs ) + : m_word( word ), m_channelIDs( std::move( channelIDs ) ) {} + + /// + uint32_t word() const noexcept { return m_word; } + + /// + const std::vector& channelIDs() const noexcept { return m_channelIDs; } + + private: + uint32_t m_word; /// RetinaCluster value + std::vector m_channelIDs; /// ID of pixel used in RetinaCluster + }; // class VPRetinaFullCluster + + /// lightweight container for VPRetinaFullCluster + using VPRetinaFullClusters = std::vector; + +} // namespace LHCb + +#endif // VPRETINAFULLCLUSTER_H diff --git a/VP/VPDAQ/src/VPRetinaFullClustering.cpp b/VP/VPDAQ/src/VPRetinaFullClustering.cpp new file mode 100644 index 00000000000..1880f327365 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaFullClustering.cpp @@ -0,0 +1,449 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "DetDesc/ConditionAccessorHolder.h" +#include "Event/RawBank.h" +#include "Event/RawEvent.h" +#include "Event/VPFullCluster.h" +#include "GaudiAlg/Transformer.h" +#include "GaudiKernel/Transform3DTypes.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include "VPDet/DeVP.h" +#include "VPKernel/PixelUtils.h" +#include "VPKernel/VeloPixelInfo.h" +#include "VPRetinaFullCluster.h" +#include "VPRetinaMatrix.h" +#include +#include +#include +#include +#include + +/** @class VPRetinaFullClustering VPRetinaFullClustering.h + * @author Federico Lazzari + * @date 2018-06-20 + */ + +// Namespace for locations in TDS +namespace LHCb { + namespace VPFullClusterLocation { + inline const std::string Offsets = "Raw/VP/FullClustersOffsets"; + } +} // namespace LHCb + +namespace LHCb::VP::Retina { + struct GeomCache { + GeomCache( const DeVP& det ); + std::array, ::VP::NSensors> m_ltg; + LHCb::span m_local_x; + LHCb::span m_x_pitch; + float m_pixel_size; + }; +} // namespace LHCb::VP::Retina + +class VPRetinaFullClustering + : public Gaudi::Functional::MultiTransformer< + std::tuple, std::array>( + const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ), + LHCb::DetDesc::usesConditions> { + +public: + /// Standard constructor + VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ); + + /// Algorithm initialization + StatusCode initialize() override; + + /// Algorithm execution + std::tuple, std::array> + operator()( const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ) const override; + +private: + /// bank version. (change this every time semantics change!) + static constexpr unsigned int m_bankVersion = 1; + + /// make RetinaClusters from bank + std::vector makeRetinaFullClusters( LHCb::span bank, + const unsigned int sensor ) const; + + Gaudi::Property m_chain_length{ + this, "chain_length", 20, + "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; +}; + +using namespace LHCb; + +DECLARE_COMPONENT( VPRetinaFullClustering ) + +namespace { + struct SPCache { + std::array fxy; + unsigned char pattern; + unsigned char nx1; + unsigned char nx2; + unsigned char ny1; + unsigned char ny2; + }; + //========================================================================= + // Cache Super Pixel cluster patterns. + //========================================================================= + auto create_SPPatterns() { + std::array SPCaches; + // create a cache for all super pixel cluster patterns. + // this is an unoptimized 8-way flood fill on the 8 pixels + // in the super pixel. + // no point in optimizing as this is called once in + // initialize() and only takes about 20 us. + + // define deltas to 8-connectivity neighbours + const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; + const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; + + // clustering buffer for isolated superpixels. + unsigned char sp_buffer[8]; + + // SP index buffer and its size for single SP clustering + unsigned char sp_idx[8]; + unsigned char sp_idx_size = 0; + + // stack and stack pointer for single SP clustering + unsigned char sp_stack[8]; + unsigned char sp_stack_ptr = 0; + + // loop over all possible SP patterns + for ( unsigned int sp = 0; sp < 256; ++sp ) { + sp_idx_size = 0; + for ( unsigned int shift = 0; shift < 8; ++shift ) { + const unsigned char p = sp & ( 1 << shift ); + sp_buffer[shift] = p; + if ( p ) { sp_idx[sp_idx_size++] = shift; } + } + + // loop over pixels in this SP and use them as + // cluster seeds. + // note that there are at most two clusters + // in a single super pixel! + unsigned char clu_idx = 0; + for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { + unsigned char idx = sp_idx[ip]; + + if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used + + sp_stack_ptr = 0; + sp_stack[sp_stack_ptr++] = idx; + sp_buffer[idx] = 0; + unsigned char x = 0; + unsigned char y = 0; + unsigned char n = 0; + + while ( sp_stack_ptr ) { + idx = sp_stack[--sp_stack_ptr]; + const unsigned char row = idx % 4; + const unsigned char col = idx / 4; + x += col; + y += row; + ++n; + + for ( unsigned int ni = 0; ni < 8; ++ni ) { + const char ncol = col + dx[ni]; + if ( ncol < 0 || ncol > 1 ) continue; + const char nrow = row + dy[ni]; + if ( nrow < 0 || nrow > 3 ) continue; + const unsigned char nidx = ( ncol << 2 ) | nrow; + if ( 0 == sp_buffer[nidx] ) continue; + sp_stack[sp_stack_ptr++] = nidx; + sp_buffer[nidx] = 0; + } + } + + const uint32_t cx = x / n; + const uint32_t cy = y / n; + const float fx = x / static_cast( n ) - cx; + const float fy = y / static_cast( n ) - cy; + + // store the centroid pixel + SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; + + // set the two cluster flag if this is the second cluster + SPCaches[sp].pattern |= clu_idx << 3; + + // set the pixel fractions + SPCaches[sp].fxy[2 * clu_idx] = fx; + SPCaches[sp].fxy[2 * clu_idx + 1] = fy; + + // increment cluster count. note that this can only become 0 or 1! + ++clu_idx; + } + } + return SPCaches; + } + // SP pattern buffers for clustering, cached once. + // There are 256 patterns and there can be at most two + // distinct clusters in an SP. + static const std::array s_SPCaches = create_SPPatterns(); +} // namespace + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaFullClustering::VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ) + : MultiTransformer( name, pSvcLocator, + {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, + KeyValue{"GeomCacheLocation", "VPRetinaFullClustering-" + name + "-GeomCache"}}, + {KeyValue{"ClusterLocation", LHCb::VPFullClusterLocation::Default}, + KeyValue{"ClusterOffsets", LHCb::VPFullClusterLocation::Offsets}} ) {} + +//============================================================================= +// Initialization +//============================================================================= +StatusCode VPRetinaFullClustering::initialize() { + return MultiTransformer::initialize().andThen( [&] { + addConditionDerivation( {DeVPLocation::Default}, + inputLocation() ); + } ); +} + +//============================================================================ +// Rebuild the geometry (in case something changes in the Velo during the run) +//============================================================================ +LHCb::VP::Retina::GeomCache::GeomCache( const DeVP& det ) { + + m_local_x = det.sensor( 0 ).xLocal(); + m_x_pitch = det.sensor( 0 ).xPitch(); + m_pixel_size = det.sensor( 0 ).pixelSize(); + + det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { + // get the local to global transformation matrix and + // store it in a flat float array of sixe 12. + Gaudi::Rotation3D ltg_rot; + Gaudi::TranslationXYZ ltg_trans; + sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); + auto& ltg = m_ltg[sensor.sensorNumber()]; + ltg_rot.GetComponents( ltg.data() ); + ltg[2] = ltg_trans.X(); + ltg[5] = ltg_trans.Y(); + ltg[8] = ltg_trans.Z(); + } ); +} + +//============================================================================= +// Main execution +//============================================================================= +std::tuple, std::array> VPRetinaFullClustering:: + operator()( const LHCb::RawEvent& rawEvent, const LHCb::VP::Retina::GeomCache& cache ) const { + auto result = std::tuple, std::array>{}; + + const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); + if ( tBanks.empty() ) return result; + + const unsigned int version = tBanks[0]->version(); + if ( version != 2 ) { + warning() << "Unsupported raw bank version (" << version << ")" << endmsg; + return result; + } + + // Since the pool is local, to first preallocate the pool, then count hits per module, + // and then preallocate per module and move hits might not be faster than adding + // directly to the PixelModuleHits (which would require more allocations, but + // not many if we start with a sensible default) + auto& [pool, offsets] = result; + const unsigned int startSize = 10000U; + pool.reserve( startSize ); + + // 1 module = N Cluster -> N x M channelIDs + std::vector> channelIDs; + channelIDs.reserve( 400 ); + + if ( msgLevel( MSG::DEBUG ) ) { debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; } + + // Loop over VP RawBanks + for ( auto iterBank : tBanks ) { + + const unsigned int sensor = iterBank->sourceID(); + const unsigned int module = 1 + ( sensor / ::VP::NSensorsPerModule ); + int n_hits = 0; + + const auto& ltg = cache.m_ltg[sensor]; + auto retinaClusters = makeRetinaFullClusters( iterBank->range(), sensor ); + + for ( auto iterCluster : retinaClusters ) { + const uint32_t cx = iterCluster.word() >> 14 & 0x3FF; + const float fx = ( ( iterCluster.word() >> 11 ) & 0x7 ) / 8.; + const uint32_t cy = ( iterCluster.word() >> 3 ) & 0xFF; + const float fy = ( iterCluster.word() & 0x7 ) / 8.; + + const uint32_t chip = cx / Pixel::CHIP_COLUMNS; + const uint32_t ccol = cx % Pixel::CHIP_COLUMNS; + + LHCb::VPChannelID cid( sensor, chip, ccol, cy ); + channelIDs.push_back( iterCluster.channelIDs() ); + + const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; + const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; + + const float gx = ltg[0] * local_x + ltg[1] * local_y + ltg[2]; + const float gy = ltg[3] * local_x + ltg[4] * local_y + ltg[5]; + const float gz = ltg[6] * local_x + ltg[7] * local_y + ltg[8]; + + pool.emplace_back( fx, fy, gx, gy, gz, cid, std::move( channelIDs.back() ) ); + n_hits++; + ++offsets[module]; + } + + } // loop over all banks + + std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); + // Do we actually need to sort the hits ? [ depends, if the offline clustering will be re-run and tracking will use + // those clusters , yes, otherwise no ] + for ( size_t moduleID = 0; moduleID < VeloInfo::Numbers::NModules; ++moduleID ) { + // In even modules you fall in the branching at -180, 180 degrees, you want to do that continuos + std::stable_sort( + pool.begin() + offsets[moduleID], pool.begin() + offsets[moduleID + 1], + []( const LHCb::VPFullCluster& a, const LHCb::VPFullCluster& b ) { return a.channelID() < b.channelID(); } ); + } + if ( msgLevel( MSG::DEBUG ) ) { + for ( auto& cl : pool ) { + info() << "----" << endmsg; + info() << cl << endmsg; + info() << " [fx,fy] " << cl.xfraction() << "," << cl.yfraction() << endmsg; + info() << " [x,y,z] " << cl.x() << "," << cl.y() << "," << cl.z() << endmsg; + info() << "pixels" << endmsg; + for ( auto& pixel : cl.pixels() ) { info() << "\t" << pixel << endmsg; } + } + } + if ( msgLevel( MSG::DEBUG ) ) { info() << "N VPFullCluster produced : " << pool.size() << endmsg; } + + return result; +} + +//============================================================================= +// make RetinaClusters from bank +//============================================================================= +std::vector +VPRetinaFullClustering::makeRetinaFullClusters( LHCb::span bank, const unsigned int sensor ) const { + assert( bank.size() == 1 + bank[0] ); + + std::vector RetinaMatrixVector; + RetinaMatrixVector.reserve( 20 ); + std::vector RetinaCluster; + + // Read super pixel + for ( const uint32_t sp_word : bank.subspan( 1 ) ) { + + uint8_t sp = sp_word & 0xFFU; + + if ( 0 == sp ) continue; // protect against zero super pixels. + + const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; + const uint32_t sp_row = sp_addr & 0x3FU; + const uint32_t sp_col = ( sp_addr >> 6 ); + const uint32_t no_sp_neighbours = sp_word & 0x80000000U; + + // if a super pixel is not isolated + // we use Retina Clustering Algorithm + if ( !no_sp_neighbours ) { + // we look for already created Retina + auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), + [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); + if ( iterRetina != RetinaMatrixVector.end() ) { + iterRetina->AddSP( sp_row, sp_col, sp ); + continue; + } else { + // if we have not reached maximum chain length + // we create a new retina + if ( RetinaMatrixVector.size() < m_chain_length ) { + RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); + continue; + } else { + // continue; + } + } + } + + // if a super pixel is isolated or the RetinaMatrix chain is full + // the clustering boils down to a simple pattern look up. + + // there is always at least one cluster in the super + // pixel. look up the pattern and add it. + + // there is always at least one cluster in the super + // pixel. look up the pattern and add it. + + // remove after caches rewrite + const auto& spcache = s_SPCaches[sp]; + const uint32_t idx = spcache.pattern; + + const uint32_t row = idx & 0x03U; + const uint32_t col = ( idx >> 2 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); + + std::vector channelIDs; + uint32_t shift_r = 0; + while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; + while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && shift_r < 4 ) { + if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2 + 1; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + shift_r++; + } + RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); + if ( idx & 8 ) { + const uint32_t row = ( idx >> 4 ) & 3; + const uint32_t col = ( idx >> 6 ) & 1; + + const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); + const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); + + std::vector channelIDs; + while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; + while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && + shift_r < 4 ) { + if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { + const uint32_t id_X = sp_col * 2 + 1; + const uint32_t id_Y = sp_row * 4 + shift_r; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); + } + shift_r++; + } + RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); + } + } + + // searchRetinaCluster + for ( auto& m : RetinaMatrixVector ) { + const auto& clusters = m.SearchFullCluster(); + RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); + }; + + return RetinaCluster; +} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.cpp b/VP/VPDAQ/src/VPRetinaMatrix.cpp new file mode 100644 index 00000000000..9666f927ae2 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaMatrix.cpp @@ -0,0 +1,207 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +// LHCb +#include "Event/State.h" +#include "Kernel/VPConstants.h" +#include "VPKernel/PixelUtils.h" + +// Local +#include "VPRetinaMatrix.h" + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +VPRetinaMatrix::VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ) + : Coordinate_Retina_row( SP_row - 1 ) + , Coordinate_Retina_col( SP_col - 2 ) + , Sensor( sensor ) + , sensorID_in_module( sensor % ::VP::NSensorsPerModule ) { + // record SP pixels. + for ( uint32_t shift = 0; shift < 8; ++shift ) { + const uint8_t pixel = SP_pixel & 1; + if ( pixel ) { + const uint32_t row = 4 + shift % 4; + const uint32_t col = 4 + shift / 4; + Pixel_Matrix[row][col] = pixel; + } + SP_pixel = SP_pixel >> 1; + if ( 0 == SP_pixel ) break; + } + + // record which SP is added + SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; +} + +//============================================================================= +// Check if a SP coordinate are inside the Retina +//============================================================================= +bool VPRetinaMatrix::IsInRetina( uint32_t SP_row, uint32_t SP_col ) const { + return Coordinate_Retina_row <= (int32_t)SP_row && (int32_t)SP_row < Coordinate_Retina_row + 3 && + Coordinate_Retina_col <= (int32_t)SP_col && (int32_t)SP_col < Coordinate_Retina_col + 5; +} + +//============================================================================= +// Add a SP to the Retina +//============================================================================= +VPRetinaMatrix& VPRetinaMatrix::AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ) { + // record which SP is added + SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; + + // record SP pixels. + for ( uint32_t shift = 0; shift < 8; ++shift ) { + const uint8_t pixel = SP_pixel & 1; + if ( pixel ) { + const int32_t row = ( SP_row - Coordinate_Retina_row ) * 4 + shift % 4; + const int32_t col = ( SP_col - Coordinate_Retina_col ) * 2 + shift / 4; + Pixel_Matrix[row][col] = pixel; + } + SP_pixel = SP_pixel >> 1; + if ( 0 == SP_pixel ) break; + } + return *this; +} + +//============================================================================= +// Search cluster - Accounting for mirror geometry in sensors 1 and 2 +//============================================================================= + +std::vector VPRetinaMatrix::SearchCluster() const { + std::vector RetinaCluster; + RetinaCluster.reserve( 63 ); + + if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { + for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && + Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + } + } + } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { + for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && + Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && + Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); + } + } + } + return RetinaCluster; +} +std::vector VPRetinaMatrix::SearchFullCluster() const { + std::vector RetinaCluster; + RetinaCluster.reserve( 63 ); + + std::vector channelID; + channelID.reserve( 9 ); + if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { + for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && + Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + + const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; + const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); + channelID.push_back( tmp_cid ); + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); + RetinaCluster.push_back( tmp_cluster ); + channelID.clear(); + } + } + } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { + for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) + for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { + if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | + ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && + Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && + Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && + Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { + + uint32_t shift_col = 0; + uint32_t shift_row = 0; + uint32_t n = 0; + for ( unsigned int iiX = 0; iiX < 3; ++iiX ) + for ( unsigned int iiY = 0; iiY < 3; ++iiY ) + if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { + shift_col += iiX; + shift_row += iiY; + n++; + + const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; + const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; + const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; + const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; + LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); + channelID.push_back( tmp_cid ); + } + const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); + const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); + + LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); + RetinaCluster.push_back( tmp_cluster ); + channelID.clear(); + } + } + } + return RetinaCluster; +} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.h b/VP/VPDAQ/src/VPRetinaMatrix.h new file mode 100644 index 00000000000..7303bb104f4 --- /dev/null +++ b/VP/VPDAQ/src/VPRetinaMatrix.h @@ -0,0 +1,59 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#ifndef VPRETINAMATRIX_H +#define VPRETINAMATRIX_H 1 + +#include "VPRetinaFullCluster.h" + +#include +#include + +namespace LHCb { + class State; +} + +/** @class VPRetinaMatrix VPRetinaMatrix.h + * Class to store SuperPixel in a RETINA like architecture + * and find Cluster + * + * @author Federico Lazzari + * @date 2015-04-18 + */ + +class VPRetinaMatrix final { +public: + /// Standard constructor + VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ); + + /// Check if a SP coordinate are inside the Retina + bool IsInRetina( uint32_t SP_row, uint32_t SP_col ) const; + + /// Add a SP to the Retina + VPRetinaMatrix& AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ); + + /// Search cluster + std::vector SearchCluster() const; + std::vector SearchFullCluster() const; + +private: + // Coordinate of the lower left SP + int32_t Coordinate_Retina_row; + int32_t Coordinate_Retina_col; + // Sensor + const unsigned int Sensor; + const uint32_t sensorID_in_module; + + // Matrix of pixel + std::array, 3> SPixel_Matrix{}; + std::array, 12> Pixel_Matrix{}; +}; + +#endif // VPRetinaMatrix_H diff --git a/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp b/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp new file mode 100644 index 00000000000..bba22889d74 --- /dev/null +++ b/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp @@ -0,0 +1,211 @@ +/*****************************************************************************\ +* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +#include "Event/RawEvent.h" +#include "Event/VPDigit.h" +#include "GaudiAlg/GaudiAlgorithm.h" +#include "Kernel/VPChannelID.h" +#include "Kernel/VPConstants.h" +#include +#include +#include +#include + +using namespace LHCb; + +//----------------------------------------------------------------------------- +// Implementation file for class : VPSuperPixelBankEncoder +// +// 2014-03-06 : Karol Hennessy, Kurt Rinnert +//----------------------------------------------------------------------------- + +/** @class VPSuperPixelBankEncoder VPSuperPixelBankEncoder.h + * Algorithm to create Super Pixel Raw Bank from VP digits. + * + * There is one raw bank per sensor, that is the sensor number (0-207) + * is the source ID of the bank. Note that this means there is no + * need to encode the sensor in the Super Pixel addresses. + * + * Each bank has a four byte word header, followed by a four byte + * Super Pixel word for each Super Pixel on the sensor. + * + * The header word is currently simply the number of Super Pixels + * on the sensor. There are plenty of bits available to encode + * error conditions and such in the future. + * + * The Super Pixel word encoding is the following: + * + * bit 0-7 Super Pixel Pattern + * bit 8-13 Super Pixel Row (0-63) + * bit 14-22 Super Pixel Column (0-383) + * bit 23-30 UNUSED + * bit 31 Super Pixel isolation flag + * + * Super Pixel Pattern bits encode columns and rows as follows: + * + * row,y + * + * ^ 37 + * | 26 + * | 15 + * | 04 + * +---> col,x + * + * @author Karol Hennessy + * @author Kurt Rinnert + * @date 2014-03-06 + */ + +class VPSuperPixelBankEncoder : public GaudiAlgorithm { + +public: + /// Standard constructor + VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ); + StatusCode execute() override; ///< Algorithm execution + +private: + /// where to get the digits from + std::string m_digitLocation; + /// where to write the clusters to + std::string m_rawEventLocation; + /// event counter + unsigned int m_evt = 0; + /// per sensor buffers of super pixel words + std::array, VP::NSensors> m_spBySensor; +}; + +namespace { + /// bank version. (change this every time semantics change!) + constexpr unsigned int c_bankVersion = 2; + + /// to sort super pixels by column (major) and row (minor) + auto SPLowerThan = []( unsigned int lhs, unsigned int rhs ) { return ( lhs & 0x7FFF00 ) < ( rhs & 0x7FFF00 ); }; + + // convert channelID to super pixel words + struct sp_word { + sp_word( VPChannelID id ) noexcept { + const unsigned int chip = id.chip(); + const unsigned int row = id.row(); + const unsigned int col = id.col(); + const unsigned int sensorCol = col + 256 * chip; + const unsigned int spCol = sensorCol / 2; + const unsigned int spRow = row / 4; + addr = ( ( spCol << 6 ) | spRow ); + ix = 0x1u << ( ( ( col % 2 ) * 4 ) + row % 4 ); + } + unsigned int addr; + unsigned int ix; + unsigned int to_uint() const noexcept { return ( addr << 8 ) | ix; } + }; + +} // namespace + +DECLARE_COMPONENT( VPSuperPixelBankEncoder ) + +//============================================================================= +// Constructor +//============================================================================= +VPSuperPixelBankEncoder::VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ) + : GaudiAlgorithm( name, pSvcLocator ) { + declareProperty( "DigitLocation", m_digitLocation = LHCb::VPDigitLocation::Default ); + declareProperty( "RawEventLocation", m_rawEventLocation = LHCb::RawEventLocation::Default ); +} + +//============================================================================= +// Execution +//============================================================================= +StatusCode VPSuperPixelBankEncoder::execute() { + + if ( msgLevel( MSG::DEBUG ) ) debug() << "==> Execute" << endmsg; + ++m_evt; + const VPDigits* digits = getIfExists( m_digitLocation ); + if ( !digits ) { return Error( " ==> There are no VPDigits in TES! " ); } + + // Check if RawEvent exists + RawEvent* rawEvent = getIfExists( m_rawEventLocation ); + if ( !rawEvent ) { + // Create RawEvent + rawEvent = new LHCb::RawEvent(); + put( rawEvent, m_rawEventLocation ); + } + + for ( auto& s : m_spBySensor ) { + // put header word as first element (but don't know content yet) + s = {0}; + } + + // Loop over digits create super pixel words and store them. + // No assumption about the order of digits is made. + for ( const auto& seed : *digits ) { + auto& sensor = m_spBySensor[seed->channelID().sensor()]; + auto sp = sp_word{seed->channelID()}; + + auto j = std::find_if( sensor.begin(), sensor.end(), [&]( unsigned int s ) { return ( s >> 8 ) == sp.addr; } ); + + if ( j != sensor.end() ) { + *j |= sp.ix; + } else { + sensor.push_back( sp.to_uint() ); + } + } + + constexpr auto dx = std::array{-1, 0, 1, -1, 0, 1, -1, 1}; + constexpr auto dy = std::array{-1, -1, -1, 1, 1, 1, 0, 0}; + + int total = 0; + int sensor = 0; + for ( LHCb::span data : m_spBySensor ) { + assert( !data.empty() ); // must have at least a header! + + auto spixels = data.subspan<1>(); // skip header word + + // encode header. + data[0] = spixels.size(); // set correct number of super pixels + + // sort super pixels column major on each sensor + std::sort( spixels.begin(), spixels.end(), SPLowerThan ); + + // set 'no neighbour' hint flags + std::array buffer = {false}; // buffer for checking super pixel neighbours + for ( auto spw : spixels ) { + assert( ( spw & 0xFFu ) != 0 ); + unsigned int idx = ( spw >> 8 ); + buffer[idx] = true; + } + + for ( auto& spw : spixels ) { + const unsigned int idx = ( spw >> 8 ); + const unsigned int row = idx & 0x3FU; + const unsigned int col = ( idx >> 6 ); + unsigned int no_neighbour = 1; + for ( unsigned int ni = 0; ni < 8; ++ni ) { + const int nrow = row + dy[ni]; + if ( nrow < 0 || nrow > 63 ) continue; + const int ncol = col + dx[ni]; + if ( ncol < 0 || ncol > 383 ) continue; + const unsigned int nidx = ( ncol << 6 ) | nrow; + if ( buffer[nidx] ) { + no_neighbour = 0; + break; + } + } + spw |= ( no_neighbour << 31 ); + } + + total += data.size_bytes(); + if ( msgLevel( MSG::DEBUG ) ) debug() << "evt " << m_evt << "sensor " << sensor << " sp " << data.size() << endmsg; + + rawEvent->addBank( sensor++, LHCb::RawBank::VP, c_bankVersion, data ); + } + + if ( msgLevel( MSG::DEBUG ) ) debug() << "total " << total << endmsg; + + return StatusCode::SUCCESS; +} -- GitLab From 06b612dcc0e12a09b4bebcee29ae06ea2a75a77f Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Fri, 26 Jun 2020 20:33:24 +0200 Subject: [PATCH 196/199] delete unnecessary changes which are different with master --- .../mdf_input_and_conds_retinacluster.py | 21 --------- .../options/hlt1_reco_retinacluster.py | 14 ------ Hlt/RecoConf/python/RecoConf/hlt1_tracking.py | 46 +++---------------- Hlt/RecoConf/python/RecoConf/mc_checking.py | 40 ++++++++-------- 4 files changed, 27 insertions(+), 94 deletions(-) delete mode 100644 Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py delete mode 100644 Hlt/RecoConf/options/hlt1_reco_retinacluster.py diff --git a/Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py b/Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py deleted file mode 100644 index ec7bf28d15b..00000000000 --- a/Hlt/Moore/tests/options/mdf_input_and_conds_retinacluster.py +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options - -options.set_input_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') -options.input_files = [ - 'mdf:root://eoslhcb.cern.ch//eos/lhcb/user/f/flazzari/RetinaClustering/00067189_retinaCluster.mdf' -] # use file with RetinaCluster -options.evt_max = 1000 -options.set_conds_from_testfiledb('MiniBrunel_2018_MinBias_FTv4_MDF') - -options.use_iosvc = True -options.event_store = 'EvtStoreSvc' diff --git a/Hlt/RecoConf/options/hlt1_reco_retinacluster.py b/Hlt/RecoConf/options/hlt1_reco_retinacluster.py deleted file mode 100644 index ab5b1d6f1f3..00000000000 --- a/Hlt/RecoConf/options/hlt1_reco_retinacluster.py +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -from Moore import options, run_reconstruction -from RecoConf.standalone import standalone_hlt1_reco_retinacluster - -run_reconstruction(options, standalone_hlt1_reco_retinacluster) diff --git a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py index dbdf5c81a60..4822b3a06c0 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt1_tracking.py @@ -28,8 +28,7 @@ from PyConf.Algorithms import ( VPClus, VPClusFull, VPRetinaFullClustering, - VeloClusterTrackingSIMDFaster, - VeloRetinaClusterTrackingSIMDFaster, + VeloClusterTrackingSIMD, TrackBeamLineVertexFinderSoA, PrVeloUT, SciFiTrackForwardingStoreHit, @@ -104,8 +103,7 @@ def require_gec(make_raw=default_raw_event, cut=-1, **kwargs): @configurable -def make_VeloClusterTrackingSIMD_hits( - make_raw=default_raw_event, make_tracks=VeloClusterTrackingSIMDFaster): +def make_VeloClusterTrackingSIMD_hits(make_raw=default_raw_event): """Makes velo hits with VeloClusterTrackingSIMD Args: @@ -114,7 +112,8 @@ def make_VeloClusterTrackingSIMD_hits( Returns: DataHandle: VeloClusterTrackingSIMD's HitsLocation. """ - return make_tracks(RawEventLocation=make_raw()).HitsLocation + return VeloClusterTrackingSIMD( + RawEventLocation=make_raw(["VP"])).HitsLocation def make_VPClus_location_and_offsets(make_raw=default_raw_event): @@ -148,8 +147,7 @@ def make_velo_full_retinaclusters(make_raw=default_raw_event): @configurable -def make_VeloClusterTrackingSIMD_tracks( - make_raw=default_raw_event, make_tracks=VeloClusterTrackingSIMDFaster): +def make_VeloClusterTrackingSIMD_tracks(make_raw=default_raw_event): """Makes velo tracks with VeloClusterTrackingSIMD. Args: @@ -158,7 +156,7 @@ def make_VeloClusterTrackingSIMD_tracks( Returns: A dict mapping forward-, backward-going and v2 velo tracks to ``'Pr'``, ``'Pr::backward'`` and ``'v2'`` respectively. """ - tracking = make_tracks(RawEventLocation=make_raw()) + tracking = VeloClusterTrackingSIMD(RawEventLocation=make_raw(["VP"])) forward_going_tracks = tracking.TracksLocation backward_going_tracks = tracking.TracksBackwardLocation v2_tracks = TracksVPMergerConverter( @@ -252,19 +250,6 @@ def make_pvs(): return make_reco_pvs(all_velo_track_types()) -def make_pvs_retinacluster(): - """Makes PVs from HLT1 inputs, i.e. from `all_velo_track_types` using the PV maker passed to `make_reco_pvs` and Retina Cluster - - Returns: - DataHandle: primary vertices - """ - with make_VeloClusterTrackingSIMD_tracks.bind( - make_tracks=VeloRetinaClusterTrackingSIMDFaster): - return make_reco_pvs( - all_velo_track_types( - make_velo_tracks=make_VeloClusterTrackingSIMD_tracks)) - - def require_pvs(pvs): """Requires that at least 1 PV was reconstructed in this event. @@ -515,25 +500,6 @@ def make_hlt1_tracks(): } -def make_hlt1_tracks_retinacluster(): - """Function to get all types of tracks reconstructed in HLT1 using Retina Cluster - - Returns: - A dict mapping all types of velo, upstream and HLT1 forward tracks to ``'Velo'``, ``'Upstream'`` and ``'Forward'`` respectively. - """ - with make_VeloClusterTrackingSIMD_tracks.bind( - make_tracks=VeloRetinaClusterTrackingSIMDFaster): - velo_tracks = all_velo_track_types( - make_velo_tracks=make_VeloClusterTrackingSIMD_tracks) - velo_ut_tracks = all_upstream_track_types(velo_tracks) - forward_tracks = all_hlt1_forward_track_types(velo_ut_tracks) - return { - "Velo": velo_tracks, - "Upstream": velo_ut_tracks, - "Forward": forward_tracks, - } - - @configurable def make_VeloKalman_fitted_tracks(tracks, make_hits=make_VeloClusterTrackingSIMD_hits): diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index 7c6c2f2cdb1..f6726e3a22c 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -16,23 +16,26 @@ from PyConf.tonic import (configurable) from PyConf.dataflow import DataHandle from PyConf.components import Tool -from PyConf.application import default_raw_event, make_odin -from PyConf.application import make_data_with_FetchDataFromFile +from PyConf.application import default_raw_event, make_data_with_FetchDataFromFile, make_odin from PyConf.Algorithms import ( - VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, PrTrackAssociator, - PrLHCbID2MCParticleVPUTFTMU, PrTrackChecker, PrUTHitChecker, - TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, + VPFullCluster2MCParticleLinker, PrLHCbID2MCParticle, + PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, + PrUTHitChecker, TrackListRefiner, TrackResChecker, + TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_, + MCParticle2MCHitAlg, PrTrackerDumper, PVDumper, VPRetinaClusterCreator, VPRetinaClusterDecoder, - DataPacking__Unpack_LHCb__MCVPHitPacker_, PrTrackerDumper, PVDumper) -from PyConf.Algorithms import LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex -from PyConf.Tools import LoKi__Hybrid__MCTool -from PyConf.Tools import LoKi__Hybrid__TrackSelector as LoKiTrackSelector + LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as + FromVectorLHCbRecVertex) -from RecoConf.hlt1_tracking import ( - make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, - make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, - make_velo_full_retinaclusters) +from PyConf.Tools import (IdealStateCreator, LoKi__Hybrid__MCTool, + VisPrimVertTool, LoKi__Hybrid__TrackSelector as + LoKiTrackSelector) + +from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, + make_FTRawBankDecoder_clusters, + make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, + make_velo_full_retinaclusters) from Hlt2Conf.data_from_file import mc_unpackers @@ -82,15 +85,13 @@ def make_links_lhcbids_mcparticles_tracking_system_retina(): @configurable -def make_links_lhcbids_mcparticles_tracking_and_muon_system( - make_clusters=make_velo_full_clusters): +def make_links_lhcbids_mcparticles_tracking_and_muon_system(): """Match lhcbIDs of hits in the tracking stations and muon stations to MCParticles. """ return PrLHCbID2MCParticleVPUTFTMU( MCParticlesLocation=mc_unpackers()["MCParticles"], - VPFullClustersLocation=make_clusters(), - VPFullClustersLinkLocation=make_links_veloclusters_mcparticles( - make_clusters=make_clusters), + VPFullClustersLocation=make_velo_full_clusters(), + VPFullClustersLinkLocation=make_links_veloclusters_mcparticles(), UTHitsLocation=make_PrStoreUTHit_hits(), UTHitsLinkLocation=make_data_with_FetchDataFromFile( '/Event/Link/Raw/UT/Clusters'), @@ -119,7 +120,7 @@ def monitor_tracking_efficiency( LinksToLHCbIDs, MCCategories, HitTypesToCheck, - WriteHistos=2, + WriteHistos=1, ): """ Setup tracking efficiency checker @@ -428,3 +429,4 @@ def pv_dumper(odin_location=make_odin, output_dir="dump/MC_info/PVs"): "/Event/MC/TrackInfo"), ODINLocation=odin_location(), OutputDirectory=output_dir) + -- GitLab From 40c2dcac9a6db2f686b97e112f1b85e5974449aa Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Fri, 26 Jun 2020 20:39:39 +0200 Subject: [PATCH 197/199] delete VP --- .git-lb-checkout | 3 - VP/VPDAQ/CMakeLists.txt | 34 -- VP/VPDAQ/doc/release.notes | 126 ------- VP/VPDAQ/src/VPRetinaClusterCreator.cpp | 317 ---------------- VP/VPDAQ/src/VPRetinaClusterDecoder.cpp | 224 ----------- VP/VPDAQ/src/VPRetinaFullCluster.h | 47 --- VP/VPDAQ/src/VPRetinaFullClustering.cpp | 449 ----------------------- VP/VPDAQ/src/VPRetinaMatrix.cpp | 207 ----------- VP/VPDAQ/src/VPRetinaMatrix.h | 59 --- VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp | 211 ----------- 10 files changed, 1677 deletions(-) delete mode 100644 .git-lb-checkout delete mode 100644 VP/VPDAQ/CMakeLists.txt delete mode 100755 VP/VPDAQ/doc/release.notes delete mode 100644 VP/VPDAQ/src/VPRetinaClusterCreator.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaClusterDecoder.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaFullCluster.h delete mode 100644 VP/VPDAQ/src/VPRetinaFullClustering.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaMatrix.cpp delete mode 100644 VP/VPDAQ/src/VPRetinaMatrix.h delete mode 100644 VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp diff --git a/.git-lb-checkout b/.git-lb-checkout deleted file mode 100644 index d25d0e7f397..00000000000 --- a/.git-lb-checkout +++ /dev/null @@ -1,3 +0,0 @@ -[lb-checkout "LHCb.VP/VPDAQ"] - base = fd059ba289516e235f48bf21ed09390dced405e8 - imported = 9b316706feb8b8a0957980b83d0cb56069d31389 diff --git a/VP/VPDAQ/CMakeLists.txt b/VP/VPDAQ/CMakeLists.txt deleted file mode 100644 index f4361eebbff..00000000000 --- a/VP/VPDAQ/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################### -# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -################################################################################ -# Package: VPDAQ -################################################################################ -gaudi_subdir(VPDAQ) - -gaudi_depends_on_subdirs(Det/VPDet - DAQ/DAQUtils - DAQ/DAQKernel - Event/DAQEvent - Event/DigiEvent - VP/VPKernel - GaudiAlg - Kernel/LHCbKernel) - -find_package(AIDA) -find_package(Boost) -find_package(ROOT) -include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}) - -gaudi_add_module(VPDAQ - src/*.cpp - INCLUDE_DIRS AIDA Event/DigiEvent Pr/PrKernel - LINK_LIBRARIES VPDetLib TrackEvent DAQEventLib DAQKernelLib GaudiAlgLib LHCbKernel) - diff --git a/VP/VPDAQ/doc/release.notes b/VP/VPDAQ/doc/release.notes deleted file mode 100755 index 6610081da8c..00000000000 --- a/VP/VPDAQ/doc/release.notes +++ /dev/null @@ -1,126 +0,0 @@ -!----------------------------------------------------------------------------- -! Package : VP/VPDAQ -! Responsible : Kurt Rinnert, Karol Hennessy -! Purpose : Prepare VP RawBank and decode it -!----------------------------------------------------------------------------- - -!========================= VPDAQ v2r8 2016-03-16 ========================= -! 2016-02-02 - Gerhard Raven - - modernize code - -!========================= VPDAQ v2r7p1 2015-10-12 ========================= -! 2015-08-03 - Gerhard Raven - - remove #include of obsolete Gaudi headers - -!========================= VPDAQ v2r7 2014-05-12 ========================= -! 2014-05-04 - Heinrich Schindler - - Replace hard-coded array size by constants. - -! 2014-04-25 - Heinrich Schindler - - Follow changes in VPChannelID format (r171869). - -! 2014-04-14 - Heinrich Schindler - - Remove do-nothing finalize method. - - Run clang-format for consistent style. - -! 2014-04-04 - Heinrich Schindler - - Remove en/decoders for old, cluster-based raw banks. - - Remove unnecessary dependencies. - -! 2014-04-01 - Heinrich Schindler - - Remove VPLiteCluster include statements from PrepareVPRawBank. - - Remove VPRawBankToLiteCluster algorithm. - -! 2014-03-30 - Heinrich Schindler - - Follow changes in VPCluster format (revision r170715). - -! 2014-03-24 - Heinrich Schindler - - Follow changes in VPDigit format and location names (revision r170468). - -!========================= VPDAQ v2r6 2014-03-17 ========================= -! 2014-03-13 - Heinrich Schindler - - Follow changes in VPCluster format (revision r169999). - -! 2014-03-06 - Kurt Rinnert - - added encoder for Super Pixel raw bank from digits. - -!========================= VPDAQ v2r5 2014-02-17 ========================= -! 2014-02-13 - Rob Lambert - - Adapt VP decoder tool to Decoder base classes, task #49078 - -!========================= VPDAQ v2r4 2013-09-30 ========================= -! 2013-09-25 - Tim Evans - - Added VPDigit raw bank encoding and decoding - -! 2013-09-09 - Heinrich Schindler - - Follow detector element and channel ID changes (r162190, 162191) - -! 2013-07-25 - Rob Lambert - - Added DAQ/DAQUtils dependency to resolve build-order. - -!========================= VPDAQ v2r3 2013-07-18 ========================= -! 2013-06-13 - Marco Cattaneo - - Fix UNINIT_CTOR defects - - Fix untested StatusCode from Warning() messages - - Clean up unnecessary includes - - Remove empty finalize methods - -!========================= VPDAQ v2r2 2013-04-22 ========================= -! 2013-04-11 - Sascha Stahl - - Added back acccdidentally removed protection for RawEventLocations. - -! 2013-04-05 - Sascha Stahl - - Added vector of RawEventLocations. - -!========================= VPDAQ v2r1 2012-11-28 ========================= -! 2012-11-21 - Marco Clemencic - - Added CMake configuration file. - - Modified requirements to simplify auto conversion to CMake. - -! 2012-10-19 - Marco Cattaneo - - Fix potential memory leak in VPRawBankToLiteCluster and do not return - StatusCode::FAILURE from execute - - Use getItExists - - Fix UNINIT_CTOR defects - - Fix unprotected debug() - - Fix gcc -pedantic warnings - -!========================= VPDAQ v2r0 2012-10-01 ========================= -! 2012-09-24 - Paul Szczypka - - Rename Package to VPDAQ - - Rename files and code from VeloPix to VP. - -!========================= VeloPixDAQ v1r4 2011-04-05 ========================= -! 2011-03-17 -Wenbin Qian - - remove some information output from previous change -! 2011-03-17 - Wenbin Qian - - bug fix for VeloPixRawBankToLiteCluster.cpp - -!========================= VeloPixDAQ v1r3 2010-09-28 ======================= -! 2010-09-22 - Victor Coco - - Replace hardcoded container location by proper location definition - -!========================= VeloPixDAQ v1r2p1 2010-06-21 ===================== -! 2010-06-10 - Marco Cattaneo - - Fix windows compiler warnings - -!========================= VeloPixDAQ v1r2 2010-03-30 ===================== -! 2010-03-30 - Victor Coco - - Add in VeloPixRawBankToPartialCluster some checks in case of duplicated - channelID (probably comes from an earlier bug, temporary solution) - -!========================= VeloPixDAQ v1r1 2010-03-18 ===================== - -! 2010-03-01 - Victor Coco - - Add VeloPixRawBankToPartialCluster to have partial decoding of the - VeloPixCluster: get central ChannelID + LiteCluster. - Add sorting of the FastClusterContainer in VeloPixRawBankToLiteCluster - -!========================= VeloPixDAQ v1r0 2010-01-25 ===================== -! 2010-01-25 Marcin Kucharczyk - - Fix the problem with pattern in PrepareVeloPixRawBank - corresponding to Windows compilation problems - -! 2010-01-21 Marcin Kucharczyk - - First release - diff --git a/VP/VPDAQ/src/VPRetinaClusterCreator.cpp b/VP/VPDAQ/src/VPRetinaClusterCreator.cpp deleted file mode 100644 index 1dd5086cfb3..00000000000 --- a/VP/VPDAQ/src/VPRetinaClusterCreator.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "DetDesc/ConditionAccessorHolder.h" -#include "Event/RawBank.h" -#include "Event/RawEvent.h" -#include "Event/VPLightCluster.h" -#include "GaudiAlg/Transformer.h" -#include "GaudiKernel/Transform3DTypes.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include "VPDet/DeVP.h" -#include "VPKernel/PixelUtils.h" -#include "VPKernel/VeloPixelInfo.h" -#include "VPRetinaMatrix.h" -#include -#include -#include -#include -#include - -/** @class VPRetinaClusterCreator VPRetinaClusterCreator.h - * Algorithm to create RetinaCluster Raw Bank from SuperPixel. - * - * There is one raw bank per sensor, that is the sensor number (0-207) - * is the source ID of the bank. Note that this means there is no - * need to encode the sensor in the RetinaCluster addresses. - * - * Each bank has a four byte word header, followed by a four byte - * RetinaCluster word for each RetinaCluster on the sensor. - * - * The header word is currently simply the number of RetinaCluster - * on the sensor. - * - * The RetinaCluster word encoding is the following: - * - * bit 0-2 RetinaCluster Fraction Row (0-1 by step of 0.125) - * bit 3-10 RetinaCluster Row (0-255) - * bit 11-13 RetinaCluster Fraction Column (0-1 by step of 0.125) - * bit 14-23 RetinaCluster Column (0-767) - * bit 24-25 SensorID in the module - * bit 26-31 UNUSED - * - * @author Federico Lazzari - * @date 2018-06-20 - */ - -class VPRetinaClusterCreator : public Gaudi::Functional::Transformer { - -public: - /// Standard constructor - VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ); - - /// Algorithm execution - LHCb::RawEvent operator()( const LHCb::RawEvent& ) const override; - -private: - /// bank version. (change this every time semantics change!) - static constexpr unsigned int m_bankVersion = 2; - - /// make RetinaClusters from bank - std::vector makeRetinaClusters( LHCb::span bank, const unsigned int sensor ) const; - Gaudi::Property m_chain_length{ - this, "chain_length", 20, - "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; -}; - -using namespace LHCb; - -DECLARE_COMPONENT( VPRetinaClusterCreator ) - -namespace { - struct SPCache { - std::array fxy; - unsigned char pattern; - unsigned char nx1; - unsigned char nx2; - unsigned char ny1; - unsigned char ny2; - }; - //========================================================================= - // Cache Super Pixel cluster patterns. - //========================================================================= - auto create_SPPatterns() { - std::array SPCaches; - // create a cache for all super pixel cluster patterns. - // this is an unoptimized 8-way flood fill on the 8 pixels - // in the super pixel. - // no point in optimizing as this is called once in - // initialize() and only takes about 20 us. - - // define deltas to 8-connectivity neighbours - const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; - const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; - - // clustering buffer for isolated superpixels. - unsigned char sp_buffer[8]; - - // SP index buffer and its size for single SP clustering - unsigned char sp_idx[8]; - unsigned char sp_idx_size = 0; - - // stack and stack pointer for single SP clustering - unsigned char sp_stack[8]; - unsigned char sp_stack_ptr = 0; - - // loop over all possible SP patterns - for ( unsigned int sp = 0; sp < 256; ++sp ) { - sp_idx_size = 0; - for ( unsigned int shift = 0; shift < 8; ++shift ) { - const unsigned char p = sp & ( 1 << shift ); - sp_buffer[shift] = p; - if ( p ) { sp_idx[sp_idx_size++] = shift; } - } - - // loop over pixels in this SP and use them as - // cluster seeds. - // note that there are at most two clusters - // in a single super pixel! - unsigned char clu_idx = 0; - for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { - unsigned char idx = sp_idx[ip]; - - if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used - - sp_stack_ptr = 0; - sp_stack[sp_stack_ptr++] = idx; - sp_buffer[idx] = 0; - unsigned char x = 0; - unsigned char y = 0; - unsigned char n = 0; - - while ( sp_stack_ptr ) { - idx = sp_stack[--sp_stack_ptr]; - const unsigned char row = idx % 4; - const unsigned char col = idx / 4; - x += col; - y += row; - ++n; - - for ( unsigned int ni = 0; ni < 8; ++ni ) { - const char ncol = col + dx[ni]; - if ( ncol < 0 || ncol > 1 ) continue; - const char nrow = row + dy[ni]; - if ( nrow < 0 || nrow > 3 ) continue; - const unsigned char nidx = ( ncol << 2 ) | nrow; - if ( 0 == sp_buffer[nidx] ) continue; - sp_stack[sp_stack_ptr++] = nidx; - sp_buffer[nidx] = 0; - } - } - - const uint32_t cx = x / n; - const uint32_t cy = y / n; - const float fx = x / static_cast( n ) - cx; - const float fy = y / static_cast( n ) - cy; - - // store the centroid pixel - SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; - - // set the two cluster flag if this is the second cluster - SPCaches[sp].pattern |= clu_idx << 3; - - // set the pixel fractions - SPCaches[sp].fxy[2 * clu_idx] = fx; - SPCaches[sp].fxy[2 * clu_idx + 1] = fy; - - // increment cluster count. note that this can only become 0 or 1! - ++clu_idx; - } - } - return SPCaches; - } - // SP pattern buffers for clustering, cached once. - // There are 256 patterns and there can be at most two - // distinct clusters in an SP. - static const std::array s_SPCaches = create_SPPatterns(); -} // namespace - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaClusterCreator::VPRetinaClusterCreator( const std::string& name, ISvcLocator* pSvcLocator ) - : Transformer( name, pSvcLocator, {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}}, - KeyValue{"RetinaClusterLocation", LHCb::RawEventLocation::VeloCluster} ) {} - -//============================================================================= -// Main execution -//============================================================================= -LHCb::RawEvent VPRetinaClusterCreator::operator()( const LHCb::RawEvent& rawEvent ) const { - RawEvent result; - - const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); - if ( tBanks.empty() ) return result; - - const unsigned int version = tBanks[0]->version(); - if ( version != 2 ) { - warning() << "Unsupported raw bank version (" << version << ")" << endmsg; - return result; - } - - debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; - - unsigned int nBanks = 0; - - // Loop over VP RawBanks - for ( auto iterBank : tBanks ) { - - const unsigned int sensor = iterBank->sourceID(); - - auto sensorCluster = makeRetinaClusters( iterBank->range(), sensor ); - - result.addBank( sensor, LHCb::RawBank::VPRetinaCluster, m_bankVersion, sensorCluster ); - - ++nBanks; - - } // loop over all banks - - debug() << "Added " << nBanks << " raw banks of retina clusters to TES" << endmsg; - - return result; -} - -//============================================================================= -// make RetinaClusters from bank -//============================================================================= -std::vector VPRetinaClusterCreator::makeRetinaClusters( LHCb::span bank, - const unsigned int sensor ) const { - - assert( bank.size() == 1 + bank[0] ); - - const uint32_t sensorID_in_module = sensor % ::VP::NSensorsPerModule; - - std::vector RetinaMatrixVector; - RetinaMatrixVector.reserve( m_chain_length ); - std::vector RetinaCluster; - // reserve space for RetinaCluster - // # RetinaCluster <= # SP - RetinaCluster.reserve( bank.size() ); - // reserve first word for # RetinaCluster - RetinaCluster.push_back( 0 ); - - // Read super pixel - for ( const uint32_t sp_word : bank.subspan( 1 ) ) { - - uint8_t sp = sp_word & 0xFFU; - - if ( 0 == sp ) continue; // protect against zero super pixels. - - const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; - const uint32_t sp_row = sp_addr & 0x3FU; - const uint32_t sp_col = ( sp_addr >> 6 ); - const uint32_t no_sp_neighbours = sp_word & 0x80000000U; - - // if a super pixel is not isolated - // we use Retina Clustering Algorithm - if ( !no_sp_neighbours ) { - // we look for already created Retina - auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), - [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); - if ( iterRetina != RetinaMatrixVector.end() ) { - iterRetina->AddSP( sp_row, sp_col, sp ); - continue; - } else { - // if we have not reached maximum chain length - // we create a new retina - if ( RetinaMatrixVector.size() < m_chain_length ) { - RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); - continue; - } - } - } - // if a super pixel is isolated or the RetinaMatrix chain is full - // the clustering boils down to a simple pattern look up. - - // there is always at least one cluster in the super - // pixel. look up the pattern and add it. - - // remove after caches rewrite - const auto& spcache = s_SPCaches[sp]; - const uint32_t idx = spcache.pattern; - - const uint32_t row = idx & 0x03U; - const uint32_t col = ( idx >> 2 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - if ( idx & 8 ) { - const uint32_t row = ( idx >> 4 ) & 3; - const uint32_t col = ( idx >> 6 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - } - - } // loop over super pixels in raw bank - - // searchRetinaCluster - for ( auto& m : RetinaMatrixVector ) { - const auto& clusters = m.SearchCluster(); - RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); - }; - - RetinaCluster[0] = RetinaCluster.size() - 1; - return RetinaCluster; -} diff --git a/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp b/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp deleted file mode 100644 index b02437eeb2c..00000000000 --- a/VP/VPDAQ/src/VPRetinaClusterDecoder.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "DetDesc/ConditionAccessorHolder.h" -#include "Event/RawBank.h" -#include "Event/RawEvent.h" -#include "Event/VPLightCluster.h" -#include "GaudiAlg/Transformer.h" -#include "GaudiKernel/Transform3DTypes.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include "VPDet/DeVP.h" -#include "VPKernel/PixelUtils.h" -#include "VPKernel/VeloPixelInfo.h" -#include -#include -#include -#include - -namespace VPRetina { - enum class ErrorCode : StatusCode::code_t { - BANK_VERSION_UNKNOWN, - EMPTY_BANK, - BANK_SIZE_INCONSISTENT, - BAD_MAGIC, - BAD_SOURCE_ID - }; - struct ErrorCategory : StatusCode::Category { - const char* name() const override { return "VPRetinaDecoder"; } - bool isRecoverable( StatusCode::code_t ) const override { return false; } - std::string message( StatusCode::code_t code ) const override { - switch ( static_cast( code ) ) { - case ErrorCode::BANK_VERSION_UNKNOWN: - return "Bank version unknown"; - case ErrorCode::EMPTY_BANK: - return "Empty bank"; - case ErrorCode::BANK_SIZE_INCONSISTENT: - return "Bank size and declared number of clusters inconsistent"; - case ErrorCode::BAD_MAGIC: - return "Wrong magic number for bank"; - case ErrorCode::BAD_SOURCE_ID: - return "Source ID not in the expected range"; - default: - return StatusCode::default_category().message( code ); - } - } - }; -} // namespace VPRetina -STATUSCODE_ENUM_DECL( VPRetina::ErrorCode ) -STATUSCODE_ENUM_IMPL( VPRetina::ErrorCode, VPRetina::ErrorCategory ) - -[[gnu::noreturn]] void throw_exception( VPRetina::ErrorCode ec, const char* tag ) { - auto sc = StatusCode( ec ); - throw GaudiException{sc.message(), tag, std::move( sc )}; -} -#define OOPS( x ) throw_exception( x, __PRETTY_FUNCTION__ ) - -struct VPRetinaClusterGeomCache { - - std::array, VP::NSensors> m_ltg; // 9*208 = 9*number of sensors - LHCb::span m_local_x; - LHCb::span m_x_pitch; - float m_pixel_size; - - VPRetinaClusterGeomCache( const DeVP& det ) { - m_local_x = det.sensor( 0 ).xLocal(); - m_x_pitch = det.sensor( 0 ).xPitch(); - m_pixel_size = det.sensor( 0 ).pixelSize(); - det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { - // get the local to global transformation matrix and - // store it in a flat float array of sixe 12. - Gaudi::Rotation3D ltg_rot; - Gaudi::TranslationXYZ ltg_trans; - sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); - assert( sensor.sensorNumber() < m_ltg.size() ); - auto& ltg = m_ltg[sensor.sensorNumber()]; - ltg_rot.GetComponents( ltg.data() ); - ltg[2] = ltg_trans.X(); - ltg[5] = ltg_trans.Y(); - ltg[8] = ltg_trans.Z(); - } ); - } -}; - -// Namespace for locations in TES -namespace LHCb { - namespace VPClusterLocation { - inline const std::string Offsets = "Raw/VP/LightClustersOffsets"; - } -} // namespace LHCb - -class VPRetinaClusterDecoder - : public Gaudi::Functional::MultiTransformer< - std::tuple, std::array>( - const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ), - LHCb::DetDesc::usesConditions> { - -public: - /// Standard constructor - VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ); - - /// Algorithm initialization - StatusCode initialize() override; - - /// Algorithm execution - std::tuple, std::array> - operator()( const LHCb::RawEvent&, const VPRetinaClusterGeomCache& ) const override; - -private: - std::bitset m_modulesToSkipMask; - Gaudi::Property> m_modulesToSkip{this, - "ModulesToSkip", - {}, - [=]( auto& ) { - m_modulesToSkipMask.reset(); - for ( auto i : m_modulesToSkip ) - m_modulesToSkipMask.set( i ); - }, - Gaudi::Details::Property::ImmediatelyInvokeHandler{true}, - "List of modules that should be skipped in decoding"}; - mutable Gaudi::Accumulators::AveragingCounter<> m_nBanks{this, "Number of banks"}; - mutable Gaudi::Accumulators::AveragingCounter<> m_nClusters{this, "Number of clusters"}; -}; - -DECLARE_COMPONENT( VPRetinaClusterDecoder ) - -using namespace Pixel; - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaClusterDecoder::VPRetinaClusterDecoder( const std::string& name, ISvcLocator* pSvcLocator ) - : MultiTransformer( name, pSvcLocator, - {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, - KeyValue{"GeomCacheLocation", "VPRetinaClusterDecoder-" + name + "-GeomCache"}}, - {KeyValue{"ClusterLocation", LHCb::VPClusterLocation::Light}, - KeyValue{"ClusterOffsets", LHCb::VPClusterLocation::Offsets}} ) {} - -//============================================================================= -// Initialization -//============================================================================= -StatusCode VPRetinaClusterDecoder::initialize() { - return MultiTransformer::initialize().andThen( [&] { - addConditionDerivation( {DeVPLocation::Default}, - inputLocation() ); - } ); -} - -//============================================================================= -// Main execution -//============================================================================= -std::tuple, std::array> -VPRetinaClusterDecoder::operator()( const LHCb::RawEvent& rawEvent, const VPRetinaClusterGeomCache& cache ) const { - auto result = std::tuple, std::array>{}; - auto& [clusters, offsets] = result; - - const auto& banks = rawEvent.banks( LHCb::RawBank::VPRetinaCluster ); - m_nBanks += banks.size(); - if ( banks.empty() ) return result; - - const unsigned int version = banks[0]->version(); - if ( version != 1 ) OOPS( VPRetina::ErrorCode::BANK_VERSION_UNKNOWN ); - - // Since 'clusters` is local, to first preallocate, then count hits per module, - // and then preallocate per module and move hits might not be faster than adding - // directly to the PixelModuleHits (which would require more allocations, but - // not many if we start with a sensible default) - constexpr unsigned int startSize = 10000U; - clusters.reserve( startSize ); - - // Loop over VP RawBanks - for ( const auto* bank : banks ) { - if ( LHCb::RawBank::MagicPattern != bank->magic() ) OOPS( VPRetina::ErrorCode::BAD_MAGIC ); - - const unsigned int module = bank->sourceID(); - if ( module == 0 || module > VP::NModules ) OOPS( VPRetina::ErrorCode::BAD_SOURCE_ID ); - - if ( m_modulesToSkipMask[module - 1] ) continue; - - const unsigned int sensor0 = ( module - 1 ) * VP::NSensorsPerModule; - - auto data = bank->range(); - if ( data.empty() ) OOPS( VPRetina::ErrorCode::EMPTY_BANK ); - - const uint32_t ncluster = data[0]; - if ( data.size() != ncluster + 1 ) OOPS( VPRetina::ErrorCode::BANK_SIZE_INCONSISTENT ); - data = data.subspan( 1 ); - - // Read clusters - std::transform( data.begin(), data.end(), std::back_inserter( clusters ), - [&]( const uint32_t cluster_word ) -> LHCb::VPLightCluster { - const unsigned int sensor = sensor0 + ( cluster_word >> 24 ); - const uint32_t cx = ( cluster_word >> 14 ) & 0x3FF; - const float fx = ( ( cluster_word >> 11 ) & 0x7 ) / 8.f; - const uint32_t cy = ( cluster_word >> 3 ) & 0xFF; - const float fy = ( cluster_word & 0x7 ) / 8.f; - const uint32_t chip = cx / CHIP_COLUMNS; - const uint32_t ccol = cx % CHIP_COLUMNS; - - const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; - const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; - - const auto& ltg = cache.m_ltg[sensor]; - const float gx = ( ltg[0] * local_x + ltg[1] * local_y + ltg[2] ); - const float gy = ( ltg[3] * local_x + ltg[4] * local_y + ltg[5] ); - const float gz = ( ltg[6] * local_x + ltg[7] * local_y + ltg[8] ); - - return {1, 1, gx, gy, gz, LHCb::VPChannelID{sensor, chip, ccol, cy}}; - } ); - offsets[module] += ncluster; - } // loop over all banks - - std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); - m_nClusters += offsets.back(); - - return result; -} diff --git a/VP/VPDAQ/src/VPRetinaFullCluster.h b/VP/VPDAQ/src/VPRetinaFullCluster.h deleted file mode 100644 index 44581bb26dc..00000000000 --- a/VP/VPDAQ/src/VPRetinaFullCluster.h +++ /dev/null @@ -1,47 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#ifndef VPRETINAFULLCLUSTER_H -#define VPRETINAFULLCLUSTER_H 1 - -#include "Kernel/VPChannelID.h" -#include -#include - -/* - * @author Federico Lazzari - * @date 2018-06-22 - */ - -namespace LHCb { - - class VPRetinaFullCluster final { - public: - /// Constructor - VPRetinaFullCluster( const uint32_t word, std::vector channelIDs ) - : m_word( word ), m_channelIDs( std::move( channelIDs ) ) {} - - /// - uint32_t word() const noexcept { return m_word; } - - /// - const std::vector& channelIDs() const noexcept { return m_channelIDs; } - - private: - uint32_t m_word; /// RetinaCluster value - std::vector m_channelIDs; /// ID of pixel used in RetinaCluster - }; // class VPRetinaFullCluster - - /// lightweight container for VPRetinaFullCluster - using VPRetinaFullClusters = std::vector; - -} // namespace LHCb - -#endif // VPRETINAFULLCLUSTER_H diff --git a/VP/VPDAQ/src/VPRetinaFullClustering.cpp b/VP/VPDAQ/src/VPRetinaFullClustering.cpp deleted file mode 100644 index 1880f327365..00000000000 --- a/VP/VPDAQ/src/VPRetinaFullClustering.cpp +++ /dev/null @@ -1,449 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "DetDesc/ConditionAccessorHolder.h" -#include "Event/RawBank.h" -#include "Event/RawEvent.h" -#include "Event/VPFullCluster.h" -#include "GaudiAlg/Transformer.h" -#include "GaudiKernel/Transform3DTypes.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include "VPDet/DeVP.h" -#include "VPKernel/PixelUtils.h" -#include "VPKernel/VeloPixelInfo.h" -#include "VPRetinaFullCluster.h" -#include "VPRetinaMatrix.h" -#include -#include -#include -#include -#include - -/** @class VPRetinaFullClustering VPRetinaFullClustering.h - * @author Federico Lazzari - * @date 2018-06-20 - */ - -// Namespace for locations in TDS -namespace LHCb { - namespace VPFullClusterLocation { - inline const std::string Offsets = "Raw/VP/FullClustersOffsets"; - } -} // namespace LHCb - -namespace LHCb::VP::Retina { - struct GeomCache { - GeomCache( const DeVP& det ); - std::array, ::VP::NSensors> m_ltg; - LHCb::span m_local_x; - LHCb::span m_x_pitch; - float m_pixel_size; - }; -} // namespace LHCb::VP::Retina - -class VPRetinaFullClustering - : public Gaudi::Functional::MultiTransformer< - std::tuple, std::array>( - const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ), - LHCb::DetDesc::usesConditions> { - -public: - /// Standard constructor - VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ); - - /// Algorithm initialization - StatusCode initialize() override; - - /// Algorithm execution - std::tuple, std::array> - operator()( const LHCb::RawEvent&, const LHCb::VP::Retina::GeomCache& ) const override; - -private: - /// bank version. (change this every time semantics change!) - static constexpr unsigned int m_bankVersion = 1; - - /// make RetinaClusters from bank - std::vector makeRetinaFullClusters( LHCb::span bank, - const unsigned int sensor ) const; - - Gaudi::Property m_chain_length{ - this, "chain_length", 20, - "Number of RetinaMatrix in a chain, a lower number increase clone, a bigger number require more space in FPGA"}; -}; - -using namespace LHCb; - -DECLARE_COMPONENT( VPRetinaFullClustering ) - -namespace { - struct SPCache { - std::array fxy; - unsigned char pattern; - unsigned char nx1; - unsigned char nx2; - unsigned char ny1; - unsigned char ny2; - }; - //========================================================================= - // Cache Super Pixel cluster patterns. - //========================================================================= - auto create_SPPatterns() { - std::array SPCaches; - // create a cache for all super pixel cluster patterns. - // this is an unoptimized 8-way flood fill on the 8 pixels - // in the super pixel. - // no point in optimizing as this is called once in - // initialize() and only takes about 20 us. - - // define deltas to 8-connectivity neighbours - const int dx[] = {-1, 0, 1, -1, 0, 1, -1, 1}; - const int dy[] = {-1, -1, -1, 1, 1, 1, 0, 0}; - - // clustering buffer for isolated superpixels. - unsigned char sp_buffer[8]; - - // SP index buffer and its size for single SP clustering - unsigned char sp_idx[8]; - unsigned char sp_idx_size = 0; - - // stack and stack pointer for single SP clustering - unsigned char sp_stack[8]; - unsigned char sp_stack_ptr = 0; - - // loop over all possible SP patterns - for ( unsigned int sp = 0; sp < 256; ++sp ) { - sp_idx_size = 0; - for ( unsigned int shift = 0; shift < 8; ++shift ) { - const unsigned char p = sp & ( 1 << shift ); - sp_buffer[shift] = p; - if ( p ) { sp_idx[sp_idx_size++] = shift; } - } - - // loop over pixels in this SP and use them as - // cluster seeds. - // note that there are at most two clusters - // in a single super pixel! - unsigned char clu_idx = 0; - for ( unsigned int ip = 0; ip < sp_idx_size; ++ip ) { - unsigned char idx = sp_idx[ip]; - - if ( 0 == sp_buffer[idx] ) { continue; } // pixel is used - - sp_stack_ptr = 0; - sp_stack[sp_stack_ptr++] = idx; - sp_buffer[idx] = 0; - unsigned char x = 0; - unsigned char y = 0; - unsigned char n = 0; - - while ( sp_stack_ptr ) { - idx = sp_stack[--sp_stack_ptr]; - const unsigned char row = idx % 4; - const unsigned char col = idx / 4; - x += col; - y += row; - ++n; - - for ( unsigned int ni = 0; ni < 8; ++ni ) { - const char ncol = col + dx[ni]; - if ( ncol < 0 || ncol > 1 ) continue; - const char nrow = row + dy[ni]; - if ( nrow < 0 || nrow > 3 ) continue; - const unsigned char nidx = ( ncol << 2 ) | nrow; - if ( 0 == sp_buffer[nidx] ) continue; - sp_stack[sp_stack_ptr++] = nidx; - sp_buffer[nidx] = 0; - } - } - - const uint32_t cx = x / n; - const uint32_t cy = y / n; - const float fx = x / static_cast( n ) - cx; - const float fy = y / static_cast( n ) - cy; - - // store the centroid pixel - SPCaches[sp].pattern |= ( ( cx << 2 ) | cy ) << 4 * clu_idx; - - // set the two cluster flag if this is the second cluster - SPCaches[sp].pattern |= clu_idx << 3; - - // set the pixel fractions - SPCaches[sp].fxy[2 * clu_idx] = fx; - SPCaches[sp].fxy[2 * clu_idx + 1] = fy; - - // increment cluster count. note that this can only become 0 or 1! - ++clu_idx; - } - } - return SPCaches; - } - // SP pattern buffers for clustering, cached once. - // There are 256 patterns and there can be at most two - // distinct clusters in an SP. - static const std::array s_SPCaches = create_SPPatterns(); -} // namespace - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaFullClustering::VPRetinaFullClustering( const std::string& name, ISvcLocator* pSvcLocator ) - : MultiTransformer( name, pSvcLocator, - {KeyValue{"RawEventLocation", LHCb::RawEventLocation::Default}, - KeyValue{"GeomCacheLocation", "VPRetinaFullClustering-" + name + "-GeomCache"}}, - {KeyValue{"ClusterLocation", LHCb::VPFullClusterLocation::Default}, - KeyValue{"ClusterOffsets", LHCb::VPFullClusterLocation::Offsets}} ) {} - -//============================================================================= -// Initialization -//============================================================================= -StatusCode VPRetinaFullClustering::initialize() { - return MultiTransformer::initialize().andThen( [&] { - addConditionDerivation( {DeVPLocation::Default}, - inputLocation() ); - } ); -} - -//============================================================================ -// Rebuild the geometry (in case something changes in the Velo during the run) -//============================================================================ -LHCb::VP::Retina::GeomCache::GeomCache( const DeVP& det ) { - - m_local_x = det.sensor( 0 ).xLocal(); - m_x_pitch = det.sensor( 0 ).xPitch(); - m_pixel_size = det.sensor( 0 ).pixelSize(); - - det.runOnAllSensors( [this]( const DeVPSensor& sensor ) { - // get the local to global transformation matrix and - // store it in a flat float array of sixe 12. - Gaudi::Rotation3D ltg_rot; - Gaudi::TranslationXYZ ltg_trans; - sensor.getGlobalMatrixDecomposition( ltg_rot, ltg_trans ); - auto& ltg = m_ltg[sensor.sensorNumber()]; - ltg_rot.GetComponents( ltg.data() ); - ltg[2] = ltg_trans.X(); - ltg[5] = ltg_trans.Y(); - ltg[8] = ltg_trans.Z(); - } ); -} - -//============================================================================= -// Main execution -//============================================================================= -std::tuple, std::array> VPRetinaFullClustering:: - operator()( const LHCb::RawEvent& rawEvent, const LHCb::VP::Retina::GeomCache& cache ) const { - auto result = std::tuple, std::array>{}; - - const auto& tBanks = rawEvent.banks( LHCb::RawBank::VP ); - if ( tBanks.empty() ) return result; - - const unsigned int version = tBanks[0]->version(); - if ( version != 2 ) { - warning() << "Unsupported raw bank version (" << version << ")" << endmsg; - return result; - } - - // Since the pool is local, to first preallocate the pool, then count hits per module, - // and then preallocate per module and move hits might not be faster than adding - // directly to the PixelModuleHits (which would require more allocations, but - // not many if we start with a sensible default) - auto& [pool, offsets] = result; - const unsigned int startSize = 10000U; - pool.reserve( startSize ); - - // 1 module = N Cluster -> N x M channelIDs - std::vector> channelIDs; - channelIDs.reserve( 400 ); - - if ( msgLevel( MSG::DEBUG ) ) { debug() << "Read " << tBanks.size() << " raw banks from TES" << endmsg; } - - // Loop over VP RawBanks - for ( auto iterBank : tBanks ) { - - const unsigned int sensor = iterBank->sourceID(); - const unsigned int module = 1 + ( sensor / ::VP::NSensorsPerModule ); - int n_hits = 0; - - const auto& ltg = cache.m_ltg[sensor]; - auto retinaClusters = makeRetinaFullClusters( iterBank->range(), sensor ); - - for ( auto iterCluster : retinaClusters ) { - const uint32_t cx = iterCluster.word() >> 14 & 0x3FF; - const float fx = ( ( iterCluster.word() >> 11 ) & 0x7 ) / 8.; - const uint32_t cy = ( iterCluster.word() >> 3 ) & 0xFF; - const float fy = ( iterCluster.word() & 0x7 ) / 8.; - - const uint32_t chip = cx / Pixel::CHIP_COLUMNS; - const uint32_t ccol = cx % Pixel::CHIP_COLUMNS; - - LHCb::VPChannelID cid( sensor, chip, ccol, cy ); - channelIDs.push_back( iterCluster.channelIDs() ); - - const float local_x = cache.m_local_x[cx] + fx * cache.m_x_pitch[cx]; - const float local_y = ( cy + 0.5 + fy ) * cache.m_pixel_size; - - const float gx = ltg[0] * local_x + ltg[1] * local_y + ltg[2]; - const float gy = ltg[3] * local_x + ltg[4] * local_y + ltg[5]; - const float gz = ltg[6] * local_x + ltg[7] * local_y + ltg[8]; - - pool.emplace_back( fx, fy, gx, gy, gz, cid, std::move( channelIDs.back() ) ); - n_hits++; - ++offsets[module]; - } - - } // loop over all banks - - std::partial_sum( offsets.begin(), offsets.end(), offsets.begin() ); - // Do we actually need to sort the hits ? [ depends, if the offline clustering will be re-run and tracking will use - // those clusters , yes, otherwise no ] - for ( size_t moduleID = 0; moduleID < VeloInfo::Numbers::NModules; ++moduleID ) { - // In even modules you fall in the branching at -180, 180 degrees, you want to do that continuos - std::stable_sort( - pool.begin() + offsets[moduleID], pool.begin() + offsets[moduleID + 1], - []( const LHCb::VPFullCluster& a, const LHCb::VPFullCluster& b ) { return a.channelID() < b.channelID(); } ); - } - if ( msgLevel( MSG::DEBUG ) ) { - for ( auto& cl : pool ) { - info() << "----" << endmsg; - info() << cl << endmsg; - info() << " [fx,fy] " << cl.xfraction() << "," << cl.yfraction() << endmsg; - info() << " [x,y,z] " << cl.x() << "," << cl.y() << "," << cl.z() << endmsg; - info() << "pixels" << endmsg; - for ( auto& pixel : cl.pixels() ) { info() << "\t" << pixel << endmsg; } - } - } - if ( msgLevel( MSG::DEBUG ) ) { info() << "N VPFullCluster produced : " << pool.size() << endmsg; } - - return result; -} - -//============================================================================= -// make RetinaClusters from bank -//============================================================================= -std::vector -VPRetinaFullClustering::makeRetinaFullClusters( LHCb::span bank, const unsigned int sensor ) const { - assert( bank.size() == 1 + bank[0] ); - - std::vector RetinaMatrixVector; - RetinaMatrixVector.reserve( 20 ); - std::vector RetinaCluster; - - // Read super pixel - for ( const uint32_t sp_word : bank.subspan( 1 ) ) { - - uint8_t sp = sp_word & 0xFFU; - - if ( 0 == sp ) continue; // protect against zero super pixels. - - const uint32_t sp_addr = ( sp_word & 0x007FFF00U ) >> 8; - const uint32_t sp_row = sp_addr & 0x3FU; - const uint32_t sp_col = ( sp_addr >> 6 ); - const uint32_t no_sp_neighbours = sp_word & 0x80000000U; - - // if a super pixel is not isolated - // we use Retina Clustering Algorithm - if ( !no_sp_neighbours ) { - // we look for already created Retina - auto iterRetina = std::find_if( RetinaMatrixVector.begin(), RetinaMatrixVector.end(), - [&]( const VPRetinaMatrix& m ) { return m.IsInRetina( sp_row, sp_col ); } ); - if ( iterRetina != RetinaMatrixVector.end() ) { - iterRetina->AddSP( sp_row, sp_col, sp ); - continue; - } else { - // if we have not reached maximum chain length - // we create a new retina - if ( RetinaMatrixVector.size() < m_chain_length ) { - RetinaMatrixVector.emplace_back( sp_row, sp_col, sp, sensor ); - continue; - } else { - // continue; - } - } - } - - // if a super pixel is isolated or the RetinaMatrix chain is full - // the clustering boils down to a simple pattern look up. - - // there is always at least one cluster in the super - // pixel. look up the pattern and add it. - - // there is always at least one cluster in the super - // pixel. look up the pattern and add it. - - // remove after caches rewrite - const auto& spcache = s_SPCaches[sp]; - const uint32_t idx = spcache.pattern; - - const uint32_t row = idx & 0x03U; - const uint32_t col = ( idx >> 2 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[0] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[1] * 8 ); - - std::vector channelIDs; - uint32_t shift_r = 0; - while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; - while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && shift_r < 4 ) { - if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2 + 1; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - shift_r++; - } - RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); - if ( idx & 8 ) { - const uint32_t row = ( idx >> 4 ) & 3; - const uint32_t col = ( idx >> 6 ) & 1; - - const uint64_t cX = ( ( sp_col * 2 + col ) << 3 ) + ( uint64_t )( spcache.fxy[2] * 8 ); - const uint64_t cY = ( ( sp_row * 4 + row ) << 3 ) + ( uint64_t )( spcache.fxy[3] * 8 ); - - std::vector channelIDs; - while ( ( ( ( sp >> shift_r ) & 0x1 ) == 0 ) && ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 0 ) ) shift_r++; - while ( ( ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) || ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) ) && - shift_r < 4 ) { - if ( ( ( sp >> shift_r ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - if ( ( ( sp >> ( shift_r + 4 ) ) & 0x1 ) == 1 ) { - const uint32_t id_X = sp_col * 2 + 1; - const uint32_t id_Y = sp_row * 4 + shift_r; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - channelIDs.push_back( LHCb::VPChannelID( sensor, id_chip, id_ccol, id_Y ) ); - } - shift_r++; - } - RetinaCluster.push_back( LHCb::VPRetinaFullCluster( cX << 11 | cY, channelIDs ) ); - } - } - - // searchRetinaCluster - for ( auto& m : RetinaMatrixVector ) { - const auto& clusters = m.SearchFullCluster(); - RetinaCluster.insert( end( RetinaCluster ), begin( clusters ), end( clusters ) ); - }; - - return RetinaCluster; -} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.cpp b/VP/VPDAQ/src/VPRetinaMatrix.cpp deleted file mode 100644 index 9666f927ae2..00000000000 --- a/VP/VPDAQ/src/VPRetinaMatrix.cpp +++ /dev/null @@ -1,207 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -// LHCb -#include "Event/State.h" -#include "Kernel/VPConstants.h" -#include "VPKernel/PixelUtils.h" - -// Local -#include "VPRetinaMatrix.h" - -//============================================================================= -// Standard constructor, initializes variables -//============================================================================= -VPRetinaMatrix::VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ) - : Coordinate_Retina_row( SP_row - 1 ) - , Coordinate_Retina_col( SP_col - 2 ) - , Sensor( sensor ) - , sensorID_in_module( sensor % ::VP::NSensorsPerModule ) { - // record SP pixels. - for ( uint32_t shift = 0; shift < 8; ++shift ) { - const uint8_t pixel = SP_pixel & 1; - if ( pixel ) { - const uint32_t row = 4 + shift % 4; - const uint32_t col = 4 + shift / 4; - Pixel_Matrix[row][col] = pixel; - } - SP_pixel = SP_pixel >> 1; - if ( 0 == SP_pixel ) break; - } - - // record which SP is added - SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; -} - -//============================================================================= -// Check if a SP coordinate are inside the Retina -//============================================================================= -bool VPRetinaMatrix::IsInRetina( uint32_t SP_row, uint32_t SP_col ) const { - return Coordinate_Retina_row <= (int32_t)SP_row && (int32_t)SP_row < Coordinate_Retina_row + 3 && - Coordinate_Retina_col <= (int32_t)SP_col && (int32_t)SP_col < Coordinate_Retina_col + 5; -} - -//============================================================================= -// Add a SP to the Retina -//============================================================================= -VPRetinaMatrix& VPRetinaMatrix::AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ) { - // record which SP is added - SPixel_Matrix[SP_row - Coordinate_Retina_row][SP_col - Coordinate_Retina_col] = 1; - - // record SP pixels. - for ( uint32_t shift = 0; shift < 8; ++shift ) { - const uint8_t pixel = SP_pixel & 1; - if ( pixel ) { - const int32_t row = ( SP_row - Coordinate_Retina_row ) * 4 + shift % 4; - const int32_t col = ( SP_col - Coordinate_Retina_col ) * 2 + shift / 4; - Pixel_Matrix[row][col] = pixel; - } - SP_pixel = SP_pixel >> 1; - if ( 0 == SP_pixel ) break; - } - return *this; -} - -//============================================================================= -// Search cluster - Accounting for mirror geometry in sensors 1 and 2 -//============================================================================= - -std::vector VPRetinaMatrix::SearchCluster() const { - std::vector RetinaCluster; - RetinaCluster.reserve( 63 ); - - if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { - for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && - Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - } - } - } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { - for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && - Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && - Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - RetinaCluster.push_back( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY ); - } - } - } - return RetinaCluster; -} -std::vector VPRetinaMatrix::SearchFullCluster() const { - std::vector RetinaCluster; - RetinaCluster.reserve( 63 ); - - std::vector channelID; - channelID.reserve( 9 ); - if ( ( sensorID_in_module == 0 ) | ( sensorID_in_module == 3 ) ) { - for ( unsigned int iX = 1; iX < 10 - 2; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX - 1] == 0 && Pixel_Matrix[iY + 1][iX - 1] == 0 && Pixel_Matrix[iY - 1][iX] == 0 && - Pixel_Matrix[iY - 1][iX + 1] == 0 && Pixel_Matrix[iY - 1][iX - 1] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - - const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; - const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); - channelID.push_back( tmp_cid ); - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); - RetinaCluster.push_back( tmp_cluster ); - channelID.clear(); - } - } - } else if ( ( sensorID_in_module == 1 ) | ( sensorID_in_module == 2 ) ) { - for ( unsigned int iX = 0; iX < 10 - 3; ++iX ) - for ( unsigned int iY = 1; iY < 12 - 2; ++iY ) { - if ( ( ( Pixel_Matrix[iY][iX + 2] == 1 ) | - ( ( ( Pixel_Matrix[iY + 1][iX + 2] == 1 ) ) && ( ( Pixel_Matrix[iY][iX + 2 - 1] == 1 ) ) ) ) && - Pixel_Matrix[iY][iX + 1 + 2] == 0 && Pixel_Matrix[iY + 1][iX + 1 + 2] == 0 && - Pixel_Matrix[iY - 1][iX + 1 + 2] == 0 && Pixel_Matrix[iY - 1][iX + 2] == 0 && - Pixel_Matrix[iY - 1][iX - 1 + 2] == 0 ) { - - uint32_t shift_col = 0; - uint32_t shift_row = 0; - uint32_t n = 0; - for ( unsigned int iiX = 0; iiX < 3; ++iiX ) - for ( unsigned int iiY = 0; iiY < 3; ++iiY ) - if ( Pixel_Matrix[iY + iiY][iX + iiX] == 1 ) { - shift_col += iiX; - shift_row += iiY; - n++; - - const uint32_t id_X = Coordinate_Retina_col * 2 + iX + iiX; - const uint32_t id_Y = Coordinate_Retina_row * 4 + iY + iiY; - const uint32_t id_chip = id_X / Pixel::CHIP_COLUMNS; - const uint32_t id_ccol = id_X % Pixel::CHIP_COLUMNS; - LHCb::VPChannelID tmp_cid( Sensor, id_chip, id_ccol, id_Y ); - channelID.push_back( tmp_cid ); - } - const uint64_t cX = ( ( Coordinate_Retina_col * 2 + iX ) << 3 ) + ( uint64_t )( ( shift_col << 3 ) / n ); - const uint64_t cY = ( ( Coordinate_Retina_row * 4 + iY ) << 3 ) + ( uint64_t )( ( shift_row << 3 ) / n ); - - LHCb::VPRetinaFullCluster tmp_cluster( ( sensorID_in_module << 24 ) | ( cX << 11 ) | cY, channelID ); - RetinaCluster.push_back( tmp_cluster ); - channelID.clear(); - } - } - } - return RetinaCluster; -} diff --git a/VP/VPDAQ/src/VPRetinaMatrix.h b/VP/VPDAQ/src/VPRetinaMatrix.h deleted file mode 100644 index 7303bb104f4..00000000000 --- a/VP/VPDAQ/src/VPRetinaMatrix.h +++ /dev/null @@ -1,59 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#ifndef VPRETINAMATRIX_H -#define VPRETINAMATRIX_H 1 - -#include "VPRetinaFullCluster.h" - -#include -#include - -namespace LHCb { - class State; -} - -/** @class VPRetinaMatrix VPRetinaMatrix.h - * Class to store SuperPixel in a RETINA like architecture - * and find Cluster - * - * @author Federico Lazzari - * @date 2015-04-18 - */ - -class VPRetinaMatrix final { -public: - /// Standard constructor - VPRetinaMatrix( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel, const unsigned int sensor ); - - /// Check if a SP coordinate are inside the Retina - bool IsInRetina( uint32_t SP_row, uint32_t SP_col ) const; - - /// Add a SP to the Retina - VPRetinaMatrix& AddSP( uint32_t SP_row, uint32_t SP_col, uint8_t SP_pixel ); - - /// Search cluster - std::vector SearchCluster() const; - std::vector SearchFullCluster() const; - -private: - // Coordinate of the lower left SP - int32_t Coordinate_Retina_row; - int32_t Coordinate_Retina_col; - // Sensor - const unsigned int Sensor; - const uint32_t sensorID_in_module; - - // Matrix of pixel - std::array, 3> SPixel_Matrix{}; - std::array, 12> Pixel_Matrix{}; -}; - -#endif // VPRetinaMatrix_H diff --git a/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp b/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp deleted file mode 100644 index bba22889d74..00000000000 --- a/VP/VPDAQ/src/VPSuperPixelBankEncoder.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#include "Event/RawEvent.h" -#include "Event/VPDigit.h" -#include "GaudiAlg/GaudiAlgorithm.h" -#include "Kernel/VPChannelID.h" -#include "Kernel/VPConstants.h" -#include -#include -#include -#include - -using namespace LHCb; - -//----------------------------------------------------------------------------- -// Implementation file for class : VPSuperPixelBankEncoder -// -// 2014-03-06 : Karol Hennessy, Kurt Rinnert -//----------------------------------------------------------------------------- - -/** @class VPSuperPixelBankEncoder VPSuperPixelBankEncoder.h - * Algorithm to create Super Pixel Raw Bank from VP digits. - * - * There is one raw bank per sensor, that is the sensor number (0-207) - * is the source ID of the bank. Note that this means there is no - * need to encode the sensor in the Super Pixel addresses. - * - * Each bank has a four byte word header, followed by a four byte - * Super Pixel word for each Super Pixel on the sensor. - * - * The header word is currently simply the number of Super Pixels - * on the sensor. There are plenty of bits available to encode - * error conditions and such in the future. - * - * The Super Pixel word encoding is the following: - * - * bit 0-7 Super Pixel Pattern - * bit 8-13 Super Pixel Row (0-63) - * bit 14-22 Super Pixel Column (0-383) - * bit 23-30 UNUSED - * bit 31 Super Pixel isolation flag - * - * Super Pixel Pattern bits encode columns and rows as follows: - * - * row,y - * - * ^ 37 - * | 26 - * | 15 - * | 04 - * +---> col,x - * - * @author Karol Hennessy - * @author Kurt Rinnert - * @date 2014-03-06 - */ - -class VPSuperPixelBankEncoder : public GaudiAlgorithm { - -public: - /// Standard constructor - VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ); - StatusCode execute() override; ///< Algorithm execution - -private: - /// where to get the digits from - std::string m_digitLocation; - /// where to write the clusters to - std::string m_rawEventLocation; - /// event counter - unsigned int m_evt = 0; - /// per sensor buffers of super pixel words - std::array, VP::NSensors> m_spBySensor; -}; - -namespace { - /// bank version. (change this every time semantics change!) - constexpr unsigned int c_bankVersion = 2; - - /// to sort super pixels by column (major) and row (minor) - auto SPLowerThan = []( unsigned int lhs, unsigned int rhs ) { return ( lhs & 0x7FFF00 ) < ( rhs & 0x7FFF00 ); }; - - // convert channelID to super pixel words - struct sp_word { - sp_word( VPChannelID id ) noexcept { - const unsigned int chip = id.chip(); - const unsigned int row = id.row(); - const unsigned int col = id.col(); - const unsigned int sensorCol = col + 256 * chip; - const unsigned int spCol = sensorCol / 2; - const unsigned int spRow = row / 4; - addr = ( ( spCol << 6 ) | spRow ); - ix = 0x1u << ( ( ( col % 2 ) * 4 ) + row % 4 ); - } - unsigned int addr; - unsigned int ix; - unsigned int to_uint() const noexcept { return ( addr << 8 ) | ix; } - }; - -} // namespace - -DECLARE_COMPONENT( VPSuperPixelBankEncoder ) - -//============================================================================= -// Constructor -//============================================================================= -VPSuperPixelBankEncoder::VPSuperPixelBankEncoder( const std::string& name, ISvcLocator* pSvcLocator ) - : GaudiAlgorithm( name, pSvcLocator ) { - declareProperty( "DigitLocation", m_digitLocation = LHCb::VPDigitLocation::Default ); - declareProperty( "RawEventLocation", m_rawEventLocation = LHCb::RawEventLocation::Default ); -} - -//============================================================================= -// Execution -//============================================================================= -StatusCode VPSuperPixelBankEncoder::execute() { - - if ( msgLevel( MSG::DEBUG ) ) debug() << "==> Execute" << endmsg; - ++m_evt; - const VPDigits* digits = getIfExists( m_digitLocation ); - if ( !digits ) { return Error( " ==> There are no VPDigits in TES! " ); } - - // Check if RawEvent exists - RawEvent* rawEvent = getIfExists( m_rawEventLocation ); - if ( !rawEvent ) { - // Create RawEvent - rawEvent = new LHCb::RawEvent(); - put( rawEvent, m_rawEventLocation ); - } - - for ( auto& s : m_spBySensor ) { - // put header word as first element (but don't know content yet) - s = {0}; - } - - // Loop over digits create super pixel words and store them. - // No assumption about the order of digits is made. - for ( const auto& seed : *digits ) { - auto& sensor = m_spBySensor[seed->channelID().sensor()]; - auto sp = sp_word{seed->channelID()}; - - auto j = std::find_if( sensor.begin(), sensor.end(), [&]( unsigned int s ) { return ( s >> 8 ) == sp.addr; } ); - - if ( j != sensor.end() ) { - *j |= sp.ix; - } else { - sensor.push_back( sp.to_uint() ); - } - } - - constexpr auto dx = std::array{-1, 0, 1, -1, 0, 1, -1, 1}; - constexpr auto dy = std::array{-1, -1, -1, 1, 1, 1, 0, 0}; - - int total = 0; - int sensor = 0; - for ( LHCb::span data : m_spBySensor ) { - assert( !data.empty() ); // must have at least a header! - - auto spixels = data.subspan<1>(); // skip header word - - // encode header. - data[0] = spixels.size(); // set correct number of super pixels - - // sort super pixels column major on each sensor - std::sort( spixels.begin(), spixels.end(), SPLowerThan ); - - // set 'no neighbour' hint flags - std::array buffer = {false}; // buffer for checking super pixel neighbours - for ( auto spw : spixels ) { - assert( ( spw & 0xFFu ) != 0 ); - unsigned int idx = ( spw >> 8 ); - buffer[idx] = true; - } - - for ( auto& spw : spixels ) { - const unsigned int idx = ( spw >> 8 ); - const unsigned int row = idx & 0x3FU; - const unsigned int col = ( idx >> 6 ); - unsigned int no_neighbour = 1; - for ( unsigned int ni = 0; ni < 8; ++ni ) { - const int nrow = row + dy[ni]; - if ( nrow < 0 || nrow > 63 ) continue; - const int ncol = col + dx[ni]; - if ( ncol < 0 || ncol > 383 ) continue; - const unsigned int nidx = ( ncol << 6 ) | nrow; - if ( buffer[nidx] ) { - no_neighbour = 0; - break; - } - } - spw |= ( no_neighbour << 31 ); - } - - total += data.size_bytes(); - if ( msgLevel( MSG::DEBUG ) ) debug() << "evt " << m_evt << "sensor " << sensor << " sp " << data.size() << endmsg; - - rawEvent->addBank( sensor++, LHCb::RawBank::VP, c_bankVersion, data ); - } - - if ( msgLevel( MSG::DEBUG ) ) debug() << "total " << total << endmsg; - - return StatusCode::SUCCESS; -} -- GitLab From 41f946775661e8643d0ebcedf1251e5653bf4681 Mon Sep 17 00:00:00 2001 From: Lingzhu Bian Date: Fri, 26 Jun 2020 21:11:50 +0200 Subject: [PATCH 198/199] delete the changes in calorimeter_reconstruction.py and standalone.py --- .../RecoConf/calorimeter_reconstruction.py | 11 +++-- Hlt/RecoConf/python/RecoConf/standalone.py | 48 +------------------ 2 files changed, 10 insertions(+), 49 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py b/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py index 883a01543cb..ec6e72f505a 100644 --- a/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py +++ b/Hlt/RecoConf/python/RecoConf/calorimeter_reconstruction.py @@ -10,9 +10,14 @@ ############################################################################### from PyConf.Algorithms import ( CaloFutureRawToDigits, FutureCellularAutomatonAlg, CaloFutureShowerOverlap, - CaloFutureClusterCovarianceAlg, ClassifyPhotonElectronAlg, - CaloFutureMergedPi0, LHCb__Calo__Asssociators__CaloHypo2Tracks as - CaloHypo2Tracks) + CaloFutureClusterCovarianceAlg, InEcalFutureAcceptanceAlg, + FuturePhotonMatchAlg, ClassifyPhotonElectronAlg, CaloFutureMergedPi0, + InHcalFutureAcceptanceAlg, FutureInBremFutureAcceptanceAlg, + FutureElectronMatchAlg, BremMatchAlgFuture, FutureTrack2EcalEAlg, + FutureTrack2HcalEAlg, FutureClusChi22ID, FutureEcalChi22ID, + BremChi22IDFuture, FutureEcalPIDeAlg, BremPIDeAlgFuture, FutureHcalPIDeAlg, + FutureEcalPIDmuAlg, FutureHcalPIDmuAlg, + LHCb__Calo__Asssociators__CaloHypo2Tracks as CaloHypo2Tracks) from PyConf.Tools import (CaloFutureECorrection, CaloFutureSCorrection, CaloFutureLCorrection, CaloFutureDigitFilterTool) from PyConf.application import default_raw_event diff --git a/Hlt/RecoConf/python/RecoConf/standalone.py b/Hlt/RecoConf/python/RecoConf/standalone.py index bf566a5275e..88fb89ed769 100644 --- a/Hlt/RecoConf/python/RecoConf/standalone.py +++ b/Hlt/RecoConf/python/RecoConf/standalone.py @@ -12,8 +12,6 @@ from PyConf.tonic import configurable from PyConf.control_flow import CompositeNode, NodeLogic from .hlt1_tracking import ( require_gec, make_reco_pvs, make_pvs, make_hlt1_tracks, - make_VeloClusterTrackingSIMD_hits, make_pvs_retinacluster, - make_hlt1_tracks_retinacluster, make_velo_full_retinaclusters, make_VeloKalman_fitted_tracks, make_PrForwardTracking_tracks, make_PatPV3DFuture_pvs, all_hlt1_forward_track_types, make_TrackEventFitter_fitted_tracks, make_hlt1_fitted_tracks) @@ -28,10 +26,8 @@ from .calorimeter_mc_checking import ( monitor_calo_photon_resolution, monitor_calo_pi0_resolution) from PyConf.Algorithms import CaloFutureDigit2MCLinks2Table from PyConf.Algorithms import CaloClusterMCTruth -from .mc_checking import get_track_checkers, get_best_tracks_checkers, get_fitted_tracks_checkers, tracker_dumper, pv_dumper, make_links_lhcbids_mcparticles_tracking_system -from .hlt1_allen import (make_allen_tracks, make_allen_pvs, - make_allen_dec_reports, make_dumped_raw_banks) -from PyConf.Algorithms import CaloDigit2MCLinks2Table, TracksToSelection, TrackSelectionMerger +from PyConf.Algorithms import TracksToSelection, TrackSelectionMerger +from .mc_checking import get_track_checkers, get_fitted_tracks_checkers, get_best_tracks_checkers from .reco_objects_from_file import reconstruction from .protoparticles import make_charged_protoparticles, make_neutral_protoparticles from PyConf.application import default_raw_event @@ -44,16 +40,12 @@ from .rich_data_monitoring import (make_rich_pixel_monitors, from .rich_mc_checking import make_rich_checkers, default_rich_checking_options from .calo_data_monitoring import monitor_calo_clusters -from PyConf.Algorithms import Rich__Future__Rec__TrackFilter as TrackFilter -from PyConf.Algorithms import HltDecReportsDecoder from GaudiKernel.SystemOfUnits import MeV, mm from Moore.config import Reconstruction from Hlt2Conf.data_from_file import mc_unpackers from PyConf.application import make_data_with_FetchDataFromFile -from PyConf.Algorithms import VeloRetinaClusterTrackingSIMDFaster - def reco_prefilters(): return [require_gec()] @@ -87,42 +79,6 @@ def standalone_hlt1_reco(do_mc_checking=False): return Reconstruction('hlt1_reco', data, reco_prefilters()) -@configurable -def standalone_hlt1_reco_retinacluster(do_mc_checking=False): - """ Run the Hlt1 reconstruction, i.e. tracking and muon id, using Retina Cluster, MC checking optional - Args: - do_mc_checking (bool): Enable MC checking. - Returns: - Reconstruction: Data and control flow of Hlt1 reconstruction. - - """ - hlt1_tracks = make_hlt1_tracks_retinacluster() - pvs = make_pvs_retinacluster() - with make_VeloClusterTrackingSIMD_hits.bind( - make_tracks=VeloRetinaClusterTrackingSIMDFaster): - fitted_tracks = make_VeloKalman_fitted_tracks( - hlt1_tracks, make_hits=make_VeloClusterTrackingSIMD_hits) - muon_ids = make_muon_id(hlt1_tracks["Forward"]) - tracks_with_muon_id = make_tracks_with_muon_id(fitted_tracks, muon_ids) - - data = [pvs, fitted_tracks["Pr"], tracks_with_muon_id] - - if do_mc_checking: - types_and_locations_for_checkers = { - "Velo": hlt1_tracks["Velo"], - "Upstream": hlt1_tracks["Upstream"], - "Forward": hlt1_tracks["Forward"], - } - with make_links_lhcbids_mcparticles_tracking_system.bind( - make_clusters=make_velo_full_retinaclusters): - data += get_track_checkers( - types_and_locations_for_checkers, - make_links_lhcbids_mcparticles= - make_links_lhcbids_mcparticles_tracking_system) - - return Reconstruction('hlt1_reco', data, reco_prefilters()) - - def standalone_hlt1_reco_velo_only(): """ Run the default Hlt1 Velo reconstruction -- GitLab From 01fadde224297f7e9660f6e074b2265c47c6dac3 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Fri, 26 Jun 2020 19:12:52 +0000 Subject: [PATCH 199/199] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/8990446 --- Hlt/RecoConf/python/RecoConf/mc_checking.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Hlt/RecoConf/python/RecoConf/mc_checking.py b/Hlt/RecoConf/python/RecoConf/mc_checking.py index f6726e3a22c..1114b3d1bf4 100644 --- a/Hlt/RecoConf/python/RecoConf/mc_checking.py +++ b/Hlt/RecoConf/python/RecoConf/mc_checking.py @@ -23,8 +23,8 @@ from PyConf.Algorithms import ( PrLHCbID2MCParticleVPUTFTMU, PrTrackAssociator, PrTrackChecker, PrUTHitChecker, TrackListRefiner, TrackResChecker, TrackIPResolutionCheckerNT, DataPacking__Unpack_LHCb__MCVPHitPacker_, - MCParticle2MCHitAlg, PrTrackerDumper, PVDumper, - VPRetinaClusterCreator, VPRetinaClusterDecoder, + MCParticle2MCHitAlg, PrTrackerDumper, PVDumper, VPRetinaClusterCreator, + VPRetinaClusterDecoder, LHCb__Converters__RecVertex__v2__fromVectorLHCbRecVertices as FromVectorLHCbRecVertex) @@ -32,10 +32,10 @@ from PyConf.Tools import (IdealStateCreator, LoKi__Hybrid__MCTool, VisPrimVertTool, LoKi__Hybrid__TrackSelector as LoKiTrackSelector) -from RecoConf.hlt1_tracking import (make_PrStoreUTHit_hits, - make_FTRawBankDecoder_clusters, - make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, - make_velo_full_retinaclusters) +from RecoConf.hlt1_tracking import ( + make_PrStoreUTHit_hits, make_FTRawBankDecoder_clusters, + make_velo_full_clusters, make_VPClus_hits, make_PrStoreFTHit_hits, + make_velo_full_retinaclusters) from Hlt2Conf.data_from_file import mc_unpackers @@ -429,4 +429,3 @@ def pv_dumper(odin_location=make_odin, output_dir="dump/MC_info/PVs"): "/Event/MC/TrackInfo"), ODINLocation=odin_location(), OutputDirectory=output_dir) - -- GitLab