diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/iftPbPb/spruce_iftPbPb.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/iftPbPb/spruce_iftPbPb.py index 400911805e412be740456397250172f2bb376d2a..9b7cb5c9baeb84bdb5b23554d04365a5007d67d5 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/iftPbPb/spruce_iftPbPb.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/iftPbPb/spruce_iftPbPb.py @@ -13,9 +13,11 @@ from Moore.config import SpruceLine, register_line_builder from RecoConf.reconstruction_objects import upfront_reconstruction from PyConf import configurable from RecoConf.event_filters import require_gec +from Moore import options sprucing_lines = {} PROCESS = "spruce" +options.histo_calo = True hlt2_ion_triggers = [ 'Hlt2IFT_PassThroughDecision', 'Hlt2IFT_PbPbMicroBiasDecision' diff --git a/Hlt/RecoConf/options/examples/hlt2_reco_seeding_with_mcchecking.py b/Hlt/RecoConf/options/examples/hlt2_reco_seeding_with_mcchecking.py index b3acd36943d3553af31d6b1c7f5066807028496b..2033910124a01b1cab6f79a186c28d8bc2c91aa5 100644 --- a/Hlt/RecoConf/options/examples/hlt2_reco_seeding_with_mcchecking.py +++ b/Hlt/RecoConf/options/examples/hlt2_reco_seeding_with_mcchecking.py @@ -13,6 +13,7 @@ from RecoConf.standalone import standalone_hlt2_seeding options.ntuple_file = 'hlt2_reco_seeding_UT_with_mcchecking_tuple.root' options.histo_file = 'hlt2_reco_seeding_UT_with_mcchecking.root' +options.histo_calo = True with standalone_hlt2_seeding.bind( do_mc_checking=True, do_data_monitoring=True): diff --git a/Hlt/RecoConf/options/hlt1_reco_allen_calo_efficiency.py b/Hlt/RecoConf/options/hlt1_reco_allen_calo_efficiency.py index 666bc97cc0e329cd66749f7d5913b91db2cf4917..25eebc91b4fb8f5f05fee88560c6f83cb3343e5d 100644 --- a/Hlt/RecoConf/options/hlt1_reco_allen_calo_efficiency.py +++ b/Hlt/RecoConf/options/hlt1_reco_allen_calo_efficiency.py @@ -13,27 +13,12 @@ from Moore import options from RecoConf.calorimeter_mc_checking import check_calo_cluster_efficiency from RecoConf.calorimeter_reconstruction import make_calo_reduced +from RecoConf.calo_data_monitoring import monitor_calo_clusters from RecoConf.hlt1_allen import make_allen_calo_clusters, allen_gaudi_config from AllenCore.gaudi_allen_generator import allen_runtime_options -from PyConf.Algorithms import CaloFutureClusterMonitor -from GaudiKernel.SystemOfUnits import GeV - - -def monitor_calo_clusters(clusters): - ecal_clus_moni = CaloFutureClusterMonitor( - Input=clusters, - HistoMultiplicityMax=400, - HistoEnergyMax=50. * GeV, - HistoEtMax=5. * GeV, - HistoSizeMax=30, - ) - return ecal_clus_moni - def make_reconstruction(): - data_producers = [] - # Get Allen calo clusters allen_calo_clusters = make_allen_calo_clusters() ecal_clusters_allen = allen_calo_clusters["ecal_clusters"] @@ -41,8 +26,9 @@ def make_reconstruction(): # Get calo digits calo = make_calo_reduced() - # Build CaloFutureClusterMonitor - data_producers += [monitor_calo_clusters(ecal_clusters_allen)] + # Build Calo::ClusterMonitor + data_producers = monitor_calo_clusters( + ecal_clusters_allen, name="CaloClusterMonitor") # Build CaloClusterEfficiency calo["ecalClusters"] = ecal_clusters_allen # for mc checking @@ -55,6 +41,7 @@ def make_reconstruction(): options.evt_max = 1000 options.histo_file = "Hlt1RecoAllenCaloEfficiencyHistos.root" options.ntuple_file = "Hlt1RecoAllenCaloEfficiencyNTuple.root" +options.histo_calo = True with (allen_gaudi_config.bind(sequence='hlt1_cosmics'), allen_runtime_options.bind(filename="allen_calo_eff_monitor.root")): diff --git a/Hlt/RecoConf/options/hlt2_default_reco_track_master_fitter_with_mcchecking.py b/Hlt/RecoConf/options/hlt2_default_reco_track_master_fitter_with_mcchecking.py index 51f74d3cb2756e61023cf5229d646a9c7bbe4bfc..8643db2f4707d6f4a39d99ad7c6a09f27202c5ce 100644 --- a/Hlt/RecoConf/options/hlt2_default_reco_track_master_fitter_with_mcchecking.py +++ b/Hlt/RecoConf/options/hlt2_default_reco_track_master_fitter_with_mcchecking.py @@ -22,6 +22,7 @@ options.histo_file = (options.getProp("histo_file") or 'hlt2_track_monitoring_with_mc_histos.root') options.ntuple_file = (options.getProp("ntuple_file") or 'hlt2_track_monitoring_with_mc_ntuples.root') +options.histo_calo = True with standalone_hlt2_reco.bind(do_mc_checking=True, do_data_monitoring=True), \ check_track_resolution.bind(per_hit_resolutions=True, split_per_type=True): diff --git a/Hlt/RecoConf/options/hlt2_reco_baseline_with_cheatedseeding.py b/Hlt/RecoConf/options/hlt2_reco_baseline_with_cheatedseeding.py index 6b4ba9b2c076d21f1dc8bfb1a98518b8dd80db99..e4c7fad1b9d1e4bbf2d203b498a373e3b68f3c3e 100644 --- a/Hlt/RecoConf/options/hlt2_reco_baseline_with_cheatedseeding.py +++ b/Hlt/RecoConf/options/hlt2_reco_baseline_with_cheatedseeding.py @@ -24,6 +24,7 @@ options.histo_file = (options.getProp("histo_file") or 'hlt2_reco_baseline_with_cheatedseeding_histos.root') options.ntuple_file = (options.getProp("ntuple_file") or 'hlt2_reco_baseline_with_cheatedseeding_ntuples.root') +options.histo_calo = True with standalone_hlt2_reco.bind(do_mc_checking=True, do_data_monitoring=True), \ check_track_resolution.bind(per_hit_resolutions=False, split_per_type=True), \ diff --git a/Hlt/RecoConf/options/hlt2_reco_baseline_with_mcchecking_mpp_with_bfield.py b/Hlt/RecoConf/options/hlt2_reco_baseline_with_mcchecking_mpp_with_bfield.py index 608eddae5d0afc6fb8e8b5d1fdd647af9a6d4efe..c40bfc14eff6a165055c8f9aab48068294bb71cd 100644 --- a/Hlt/RecoConf/options/hlt2_reco_baseline_with_mcchecking_mpp_with_bfield.py +++ b/Hlt/RecoConf/options/hlt2_reco_baseline_with_mcchecking_mpp_with_bfield.py @@ -30,6 +30,7 @@ options.histo_file = ( options.ntuple_file = ( options.getProp("ntuple_file") or 'hlt2_reco_baseline_with_mcchecking_mpp_with_bfield_ntuples.root') +options.histo_calo = True with standalone_hlt2_reco.bind(do_mc_checking=True, do_data_monitoring=True), \ check_track_resolution.bind(per_hit_resolutions=True, split_per_type=True), \ diff --git a/Hlt/RecoConf/options/hlt2_reco_calo_only.py b/Hlt/RecoConf/options/hlt2_reco_calo_only.py index f938da0b89226be37e58ea76e4f95f664c5e3346..48ac0b3e0930239356f2c192e44d533862808301 100644 --- a/Hlt/RecoConf/options/hlt2_reco_calo_only.py +++ b/Hlt/RecoConf/options/hlt2_reco_calo_only.py @@ -14,6 +14,7 @@ from DDDB.CheckDD4Hep import UseDD4Hep # save output file with histograms options.histo_file = 'hlt2_reco_calo_only_with_monitoring.root' +options.histo_calo = True if UseDD4Hep: from Configurables import LHCb__Det__LbDD4hep__DD4hepSvc as DD4hepSvc diff --git a/Hlt/RecoConf/options/tracking_developments/hlt2_reco_baseline_with_mchit_resolutions.py b/Hlt/RecoConf/options/tracking_developments/hlt2_reco_baseline_with_mchit_resolutions.py index 7e7e0b39b6acfc9c6c644970432a6684d6c60a33..30d00aa2c48ad2848da4e5ac8a43a076ad632289 100644 --- a/Hlt/RecoConf/options/tracking_developments/hlt2_reco_baseline_with_mchit_resolutions.py +++ b/Hlt/RecoConf/options/tracking_developments/hlt2_reco_baseline_with_mchit_resolutions.py @@ -21,6 +21,7 @@ from RecoConf.mc_checking import check_track_resolution options.histo_file = 'hlt2_reco_baseline_with_mchit_resolutions_histos.root' options.ntuple_file = 'hlt2_reco_baseline_with_mchit_resolutions_ntuples.root' +options.histo_calo = True with standalone_hlt2_reco.bind(do_mc_checking=True, do_data_monitoring=True), \ check_track_resolution.bind(per_hit_resolutions=True, split_per_type=True): diff --git a/Hlt/RecoConf/python/RecoConf/calo_data_monitoring.py b/Hlt/RecoConf/python/RecoConf/calo_data_monitoring.py index a7d0c27a777de8fd03016f42e2073fade0d81eec..e71c1e8e080874914db14e38c68016d2de45156f 100644 --- a/Hlt/RecoConf/python/RecoConf/calo_data_monitoring.py +++ b/Hlt/RecoConf/python/RecoConf/calo_data_monitoring.py @@ -11,33 +11,39 @@ from GaudiKernel.SystemOfUnits import GeV from PyConf import configurable from PyConf.application import make_odin -from PyConf.Algorithms import ( - CaloChargedPIDsMonitor, CaloFutureClusterMonitor, CaloFutureDigitMonitor, - CaloFutureTimeAlignment, CaloTAEData, CaloFuturePedestal, - CaloFutureLEDMonitor) +from PyConf.Algorithms import (CaloChargedPIDsMonitor, CaloClusterECALMonitor, + CaloDigitECALMonitor, CaloDigitHCALMonitor, + CaloECALTimeAlignment, CaloHCALTimeAlignment, + CaloTAEData, CaloECALPedestal, CaloHCALPedestal, + CaloLEDECALMonitor, CaloLEDHCALMonitor) from PyConf.Algorithms import CaloFutureRawToDigits from PyConf.application import default_raw_banks from DDDB.CheckDD4Hep import UseDD4Hep @configurable -def monitor_calo_clusters(calo, split_clusters=True): - nodes = (CaloFutureClusterMonitor( - name="ClusterMonitorEcalClusters", - Input=calo["ecalClusters"], - HistoMultiplicityMax=400, - HistoEnergyMax=50. * GeV, - HistoEtMax=5. * GeV, - HistoSizeMax=30, - ), ) +def monitor_calo_clusters(clusters, + split_clusters=None, + name="ClusterMonitorEcalClusters"): + nodes = [ + CaloClusterECALMonitor( + name=name, + Input=clusters, + HistoMultiplicity=(0., 400., 100), + HistoEnergy=(0. * GeV, 50. * GeV, 100), + HistoEt=(0. * GeV, 5. * GeV, 100), + HistoSize=(0, 30, 25), + ), + ] if split_clusters: - nodes += (CaloFutureClusterMonitor( - name="ClusterMonitorEcalSplitClusters", - Input=calo["ecalSplitClusters"], - HistoMultiplicityMax=50, - HistoEnergyMax=100. * GeV, - HistoEtMax=10. * GeV, - ), ) + nodes.append( + CaloClusterECALMonitor( + name="ClusterMonitorEcalSplitClusters", + Input=split_clusters, + HistoMultiplicity=(0., 50., 100), + HistoEnergy=(0. * GeV, 100. * GeV, 100), + HistoEt=(0. * GeV, 10. * GeV, 100), + )) return nodes @@ -52,61 +58,41 @@ def monitor_calo_digits(calo, histoAdcBin=4196, HistoMultiplicityMaxEcal=8000, HistoMultiplicityBinEcal=8000, - HistoMultiplicityMaxHCal=2000, + HistoMultiplicityMaxHcal=2000, HistoMultiplicityBinHcal=2000, Calib_BXIDsA=[], - Calib_BXIDsB=[], - perBXIDlist=[], - spectrum=False): - ecal_digit_moni = CaloFutureDigitMonitor( + Calib_BXIDsB=[]): + ecal_digit_moni = CaloDigitECALMonitor( name="DigitMonitorEcal", Input=calo["digitsEcal"], ODINLocation=make_odin(), - HistoMultiplicityMax=HistoMultiplicityMaxEcal, - HistoMultiplicityBin=HistoMultiplicityBinEcal, - HistoEtMax=5. * GeV, - HistoSizeMax=30, - HistoAdcMin=histoAdcMin, - HistoAdcMax=histoAdcMax, - HistoAdcBin=histoAdcBin, - HistoXMin=-3900.8, - HistoXMax=3900.8, - HistoXBin=64, - HistoYMin=-3169.4, - HistoYMax=3169.4, - HistoYBin=52, + HistoMultiplicity=(0., HistoMultiplicityMaxEcal, + HistoMultiplicityBinEcal), + HistoEt=(0. * GeV, 5. * GeV, 100), + HistoAdc=(histoAdcMin, histoAdcMax, histoAdcBin), + HistoX=(-3900.8, 3900.8, 64), + HistoY=(-3169.4, 3169.4, 52), Calib_BXIDsA=Calib_BXIDsA, Calib_BXIDsB=Calib_BXIDsB, - perBXIDlist=perBXIDlist, ADCFilter=adcFilterEcal, EnergyFilter=eFilter, - EtFilter=etFilter, - Spectrum=spectrum) - hcal_digit_moni = CaloFutureDigitMonitor( + EtFilter=etFilter) + hcal_digit_moni = CaloDigitHCALMonitor( name="DigitMonitorHcal", Input=calo["digitsHcal"], ODINLocation=make_odin(), - HistoMultiplicityMax=HistoMultiplicityMaxHCal, - HistoMultiplicityBin=HistoMultiplicityBinHcal, - HistoEtMax=5. * GeV, - HistoSizeMax=30, - HistoAdcMin=histoAdcMin, - HistoAdcMax=histoAdcMax, - HistoAdcBin=histoAdcBin, - HistoXMin=-4201.6, - HistoXMax=4201.6, - HistoXBin=32, - HistoYMin=-3413.8, - HistoYMax=3413.8, - HistoYBin=26, + HistoMultiplicity=(0., HistoMultiplicityMaxHcal, + HistoMultiplicityBinHcal), + HistoEt=(0. * GeV, 5. * GeV, 100), + HistoAdc=(histoAdcMin, histoAdcMax, histoAdcBin), + HistoX=(-4201.6, 4201.6, 32), + HistoY=(-3413.8, 3413.8, 26), Calib_BXIDsA=Calib_BXIDsA, Calib_BXIDsB=Calib_BXIDsB, - perBXIDlist=perBXIDlist, ADCFilter=adcFilterHcal, EnergyFilter=eFilter, - EtFilter=etFilter, - Spectrum=spectrum) - return ecal_digit_moni, hcal_digit_moni + EtFilter=etFilter) + return [ecal_digit_moni, hcal_digit_moni] @configurable @@ -125,7 +111,7 @@ def monitor_calo_led(calo): DetectorLocation=ecalpath, DecodePinData=True) - ecal_led_moni = CaloFutureLEDMonitor( + ecal_led_moni = CaloLEDECALMonitor( name="LEDMonitorEcal", InputODIN=make_odin(), Input=adc_alg_ecal.OutputDigitData, @@ -142,7 +128,7 @@ def monitor_calo_led(calo): DetectorLocation=hcalpath, DecodePinData=True) - hcal_led_moni = CaloFutureLEDMonitor( + hcal_led_moni = CaloLEDHCALMonitor( name="LEDMonitorHcal", InputODIN=make_odin(), Input=adc_alg_hcal.OutputDigitData, @@ -159,69 +145,44 @@ def monitor_calo_led(calo): def monitor_calo_time_alignment(calo, adcFilterEcal=-100, adcFilterHcal=-100, - histoEnergyMax=250. * GeV, histoAdcMax=4000, taHistoYBin=100, - TAE_BXIDs=[1000, 2000], - spectrum=False): - ecal_ta_moni = CaloFutureTimeAlignment( - name="CaloFutureECALTimeAlignment", + TAE_BXIDs=[1000, 2000]): + ecal_ta_moni = CaloECALTimeAlignment( Input=calo["digitsEcal"], ODINLocation=make_odin(), ADCFilter=adcFilterEcal, - HistoEnergyMax=histoEnergyMax, - HistoAdcMax=histoAdcMax, - TAHistoYBin=taHistoYBin, - TAE_BXIDs=TAE_BXIDs, - Spectrum=spectrum) - hcal_ta_moni = CaloFutureTimeAlignment( - name="CaloFutureHCALTimeAlignment", + TAE_BXIDs=TAE_BXIDs) + hcal_ta_moni = CaloHCALTimeAlignment( Input=calo["digitsHcal"], ODINLocation=make_odin(), ADCFilter=adcFilterHcal, - TAHistoYBin=taHistoYBin, - TAE_BXIDs=TAE_BXIDs, - Spectrum=spectrum) + TAE_BXIDs=TAE_BXIDs) tae_data = CaloTAEData( name="CaloTAEData", Input=calo["digitsEcal"], ODINLocation=make_odin()) - return ecal_ta_moni, hcal_ta_moni, tae_data + return [ecal_ta_moni, hcal_ta_moni, tae_data] @configurable def monitor_calo_pedestal(calo, - ecal_name="CaloFutureECALPedestal", - hcal_name="CaloFutureHCALPedestal", adcFilterEcal=-100, adcFilterHcal=-100, histoAdcMin=-100.5, histoAdcMax=100.5, - histoAdcBin=201, - spectrum=False): - ecal_pedestal_moni = CaloFuturePedestal( - name=ecal_name, + histoAdcBin=201): + ecal_pedestal_moni = CaloECALPedestal( Input=calo["digitsEcal"], ODINLocation=make_odin(), ADCFilter=adcFilterEcal, - HistoAdcMin=histoAdcMin, - HistoAdcMax=histoAdcMax, - HistoAdcBin=histoAdcBin, - Spectrum=spectrum, - Profile=True, - ProfileError="s" # only applied to 1D Profiles + HistoAdc=(histoAdcMin, histoAdcMax, histoAdcBin), ) - hcal_pedestal_moni = CaloFuturePedestal( - name=hcal_name, + hcal_pedestal_moni = CaloHCALPedestal( Input=calo["digitsHcal"], ODINLocation=make_odin(), ADCFilter=adcFilterHcal, - HistoAdcMin=histoAdcMin, - HistoAdcMax=histoAdcMax, - HistoAdcBin=histoAdcBin, - Spectrum=spectrum, - Profile=True, - ProfileError="s" # only applied to 1D Profiles + HistoAdc=(histoAdcMin, histoAdcMax, histoAdcBin), ) - return ecal_pedestal_moni, hcal_pedestal_moni + return [ecal_pedestal_moni, hcal_pedestal_moni] @configurable @@ -247,7 +208,8 @@ def monitor_calo_charged(calo, def monitor_calo(calo, tracks=None): monitors = ( - monitor_calo_clusters(calo) + monitor_calo_digits(calo) + - monitor_calo_time_alignment(calo) + monitor_calo_pedestal(calo)) + monitor_calo_clusters(calo["ecalClusters"], calo["ecalSplitClusters"]) + + monitor_calo_digits(calo) + monitor_calo_time_alignment(calo) + + monitor_calo_pedestal(calo)) if tracks: monitors += (monitor_calo_charged(calo, tracks)) return monitors