diff --git a/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py b/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py deleted file mode 100644 index 1c10d8e275f2f4326fe772d5476cff6163ce9075..0000000000000000000000000000000000000000 --- a/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py +++ /dev/null @@ -1,262 +0,0 @@ - -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration - -# -# $Id: CaloTopoClusterFlags.py,v 1.5 2009-05-04 16:23:04 lochp Exp $ -# -# File: CaloRec/python/CaloTopoClusterFlags.py -# Created: June 2007, S.Menke -# Purpose: Define flags to steer topo cluster algorithm -# -# Modified: May 4, 2009, P.Loch -# Purpose: Added steering for H1-style calibration of TopoClusters - -""" A container of flags for CaloTopoCluster making configuring -""" - -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties - -# -class doTopoClusterLocalCalib(JobProperty): - """ Flag to activate Local Hadron Calibration - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = True - -# -class usePhysicsList(JobProperty): - """ indicate the Physics List most appropriate for Local Hadron Calibration - """ - statusOn = True - allowedTypes = ['str'] - StoredValue = "QGSP_BERT" - -# -class doClusterVertexFraction(JobProperty): - """ Flag to activate calculation of cluster vertex fraction and append it as a cluster moment - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - -# -class doCalibHitMoments(JobProperty): - """ Flag to activate calibration hit based cluster moments - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = True -#>> PL May 4, 2009 -# Defines if cell weight signal is to be calculated -class doCellWeightCalib(JobProperty): - """ Apply H1-style cell weighting to cluster (3rd signal state) - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = False -# Defines reference jet finder for cell weights -class cellWeightRefFinder(JobProperty): - """ Default jet finder for calibration weight extraction - """ - statusOn = True - allowedTypes = ['str'] - allowedValues = ["Cone","Kt","SISCone","AntKt"] - StoredValue = "Cone" -# Defines reference jet size for cell weights -class cellWeightRefSize(JobProperty): - """ Default jet size for calibration weight extraction - """ - statusOn = True - allowedTypes = ['float'] - StoredValue = 0.4 -# Defines reference jet calorimeter signal -class cellWeightRefSignal(JobProperty): - """ Default calorimeter signal for cell weights - """ - statusOn = True - allowedTypes = ['str'] - allowedValues = ["Tower","Topo"] - StoredValue = "Topo" - -class doTwoGaussianNoise(JobProperty): - """ Flag to activate two gaussian noise description - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -# Defines the container for the topo cluster making flags -class CaloTopoClusterFlags(JobPropertyContainer): - """ The CaloTopoCluster making flag property container - """ - pass - -#Split clusters according to abs E only -class doTreatEnergyCutAsAbsolute(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -#also compute moments from abs E from the Cells only (has to go together with doTreatEnergyCutAsAbsolute) -class doMomentsfromAbs(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -class doTimeCut(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - - -class extendTimeCut(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class useUpperLimitForTimeCut(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class timeCutUpperLimit(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=20.0 - -class xtalkEM2(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class xtalkEM2D(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class xtalkEM2n(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class xtalkEM3(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class xtalkEMEta(JobProperty): - """ - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class xtalkDeltaT(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=15.0 - -class xtalk2Eratio1(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=4.0 - -class xtalk2Eratio2(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=25. - -class xtalk3Eratio(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=10. - -class xtalkEtaEratio(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=4. - -class xtalk2DEratio(JobProperty): - """ - """ - statusOn=True - allowedTypes=['float'] - StoredValue=4. - - - -# add the flags container to the top container -jobproperties.add_Container(CaloTopoClusterFlags) - - -# We want always the following flags in the container -list_jobproperties = [ - doTopoClusterLocalCalib - ,usePhysicsList - #,lockTopoClusterSamplingEnergies - #,lockTopoClusterSamplingVariables - ,doClusterVertexFraction - #,printTopoClusters - ,doCalibHitMoments - ,doCellWeightCalib - ,cellWeightRefFinder - ,cellWeightRefSize - ,cellWeightRefSignal - ,doTwoGaussianNoise - ,doTreatEnergyCutAsAbsolute - ,doMomentsfromAbs - ,doTimeCut - ,extendTimeCut - ,useUpperLimitForTimeCut - ,timeCutUpperLimit - ,xtalkEM2 - ,xtalkEM2D - ,xtalkEM2n - ,xtalkEM3 - ,xtalkEMEta - ,xtalkDeltaT - ,xtalk2Eratio1 - ,xtalk2Eratio2 - ,xtalk3Eratio - ,xtalkEtaEratio - ,xtalk2DEratio - ] - -for i in list_jobproperties: - jobproperties.CaloTopoClusterFlags.add_JobProperty(i) - -## module clean-up -del list_jobproperties diff --git a/Calorimeter/CaloTools/python/CaloNoiseCondAlg.py b/Calorimeter/CaloTools/python/CaloNoiseCondAlg.py deleted file mode 100644 index 87e6eea8f2d0b48bd7dcd05722579594aa95e2b0..0000000000000000000000000000000000000000 --- a/Calorimeter/CaloTools/python/CaloNoiseCondAlg.py +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -from AthenaCommon.AlgSequence import AthSequencer -from IOVDbSvc.CondDB import conddb -from AthenaCommon.Logging import logging - - -def CaloNoiseCondAlg(noisetype="totalNoise"): - if noisetype not in ("electronicNoise","pileupNoise","totalNoise"): - raise RuntimeError("Requested noise of unknown type %s" % noisetype) - - - noiseAlgName="Calo_"+noisetype+"Alg" - condSeq = AthSequencer("AthCondSeq") - - if hasattr (condSeq,noiseAlgName): - return getattr(condSeq,noiseAlgName) - - if (conddb.isMC): - alg = _CaloNoiseCondAlgMC(noiseAlgName,noisetype) - else: - alg = _CaloNoiseCondAlgData(noiseAlgName,noisetype) - condSeq += alg - return alg - - -def _CaloNoiseCondAlgMC(noiseAlgName,noisetype): - mlog = logging.getLogger('CaloNoiseCondMC') - - from CaloTools.CaloToolsConf import CaloNoiseCondAlg - theCaloNoiseAlg=CaloNoiseCondAlg(noiseAlgName,OutputKey=noisetype) - from CaloTools.CaloNoiseFlags import jobproperties - if jobproperties.CaloNoiseFlags.FixedLuminosity() >= 0 : - theCaloNoiseAlg.Luminosity=jobproperties.CaloNoiseFlags.FixedLuminosity() - mlog.info(" Luminosity (in 10**33) units used for pileup noise from CaloNoiseFlags : %f", theCaloNoiseAlg.Luminosity) - else: - if jobproperties.CaloNoiseFlags.UseCaloLuminosity(): - lumiFolder='/CALO/Ofl/Noise/PileUpNoiseLumi' - conddb.addFolder('CALO_OFL',lumiFolder,className="CondAttrListCollection") - mlog.info("offline mode: use luminosity from /CALO/Ofl/Noise/PileUpNoiseLumi to scale pileup noise") - theCaloNoiseAlg.LumiFolder = lumiFolder - theCaloNoiseAlg.Luminosity=-1. - else: - from AthenaCommon.BeamFlags import jobproperties - theCaloNoiseAlg.Luminosity=jobproperties.Beam.estimatedLuminosity()/1e+33 - mlog.info(" Luminosity (in 10**33) units used for pileup noise from BeamFlags : %f", theCaloNoiseAlg.Luminosity) - pass - pass - theCaloNoiseAlg.LArNoiseFolder="/LAR/NoiseOfl/CellNoise" - conddb.addFolder("LAR_OFL","/LAR/NoiseOfl/CellNoise",className="CondAttrListCollection") - theCaloNoiseAlg.TileNoiseFolder="/TILE/OFL02/NOISE/CELL" - conddb.addFolder("TILE_OFL","/TILE/OFL02/NOISE/CELL",className="CondAttrListCollection") - theCaloNoiseAlg.CaloNoiseFolder="/CALO/Ofl/Noise/CellNoise" - conddb.addFolder("CALO_OFL","/CALO/Ofl/Noise/CellNoise",className="CondAttrListCollection") - - return theCaloNoiseAlg - - - - -def _CaloNoiseCondAlgData(noiseAlgName,noisetype): - mlog = logging.getLogger('CaloNoiseCondData') - from CaloTools.CaloNoiseFlags import jobproperties - fixedLumi = jobproperties.CaloNoiseFlags.FixedLuminosity() - caloLumi = jobproperties.CaloNoiseFlags.UseCaloLuminosity() - - from CaloTools.CaloToolsConf import CaloNoiseCondAlg - theCaloNoiseAlg=CaloNoiseCondAlg(noiseAlgName,OutputKey=noisetype) - - if conddb.isOnline: - folder = "/CALO/Noise/CellNoise" - theCaloNoiseAlg.CaloNoiseFolder=folder - theCaloNoiseAlg.LArNoiseFolder="" - theCaloNoiseAlg.TileNoiseFolder="" - conddb.addFolder('CALO_ONL',folder,className="CondAttrListCollection") - if fixedLumi >= 0 : - theCaloNoiseAlg.Luminosity = fixedLumi - mlog.info("online mode: use fixed luminosity for scaling pileup noise: %f", fixedLumi) - else: - if caloLumi: - lumiFolder='/CALO/Noise/PileUpNoiseLumi' - conddb.addFolder('CALO',lumiFolder,className="CondAttrListCollection") - theCaloNoiseAlg.LumiFolder = lumiFolder - theCaloNoiseAlg.Luminosity = -1. - mlog.info("online mode: use luminosity from /CALO/Noise/PileUpNoiseLumi to scale pileup noise") - else: - theCaloNoiseAlg.Luminosity = 0. - mlog.info("online mode: ignore pileup noise") - pass - else: #regular offline mode - if conddb.dbdata=="CONDBR2": # Run2 case: - theCaloNoiseAlg.CaloNoiseFolder="" - theCaloNoiseAlg.LArNoiseFolder="/LAR/NoiseOfl/CellNoise" - theCaloNoiseAlg.TileNoiseFolder="/TILE/OFL02/NOISE/CELL" - conddb.addFolder("LAR_OFL","/LAR/NoiseOfl/CellNoise",className="CondAttrListCollection") - conddb.addFolder("TILE_OFL","/TILE/OFL02/NOISE/CELL",className="CondAttrListCollection") - from CaloRec.CaloCellFlags import jobproperties - if jobproperties.CaloCellFlags.doLArHVCorr(): - mlog.info("Run2 & doLArHVCorr=True: Will rescale noise automatically for HV trips") - theCaloNoiseAlg.useHVCorr=True - from LArConditionsCommon import LArHVDB # noqa: F401 - pass - pass - else: #COMP200 case: - #The noise for runs before 2012 is in different folders: - theCaloNoiseAlg.CaloNoiseFolder="/CALO/Ofl/Noise/CellNoise" - theCaloNoiseAlg.LArNoiseFolder="/LAR/NoiseOfl/CellNoise" - theCaloNoiseAlg.TileNoiseFolder="/TILE/OFL02/NOISE/CELL" - conddb.addFolder("CALO_OFL","/CALO/Ofl/Noise/CellNoise",className="CondAttrListCollection") - conddb.addFolder("LAR_OFL","/LAR/NoiseOfl/CellNoise",className="CondAttrListCollection") - conddb.addFolder("TILE_OFL","/TILE/OFL02/NOISE/CELL",className="CondAttrListCollection") - - - # for luminosity - if fixedLumi >= 0 : - theCaloNoiseAlg.Luminosity = fixedLumi - mlog.info("offline mode: use fixed luminosity for scaling pileup noise: %f", fixedLumi) - else: - theCaloNoiseAlg.Luminosity = -1 - if caloLumi: - lumiFolder='/CALO/Ofl/Noise/PileUpNoiseLumi' - conddb.addFolder('CALO_OFL',lumiFolder,className="CondAttrListCollection") - mlog.info("offline mode: use luminosity from /CALO/Ofl/Noise/PileUpNoiseLumi to scale pileup noise") - else: - lumiFolder = '/TRIGGER/LUMI/LBLESTONL' - conddb.addFolder('TRIGGER_ONL',lumiFolder,className="CondAttrListCollection") - mlog.info("offline mode: use luminosity = f(Lumiblock) to scale pileup noise") - theCaloNoiseAlg.LumiFolder = lumiFolder - - return theCaloNoiseAlg diff --git a/Calorimeter/CaloTools/python/CaloNoiseFlags.py b/Calorimeter/CaloTools/python/CaloNoiseFlags.py deleted file mode 100644 index 6f7d09b94c14ebfcdd8704f2f4eaed79e9610f03..0000000000000000000000000000000000000000 --- a/Calorimeter/CaloTools/python/CaloNoiseFlags.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -""" Flags for define calo noise tool configuration -""" -# -# -__author__ = 'G.Unal' - - -#======================================================================= -# imports -#======================================================================= -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties - -class FixedLuminosity(JobProperty): - """ Flag to force luminosity (10**33 units) to a given value corresponding to a given mu - Lumi is related to mu by Lumi = (mu/2.3) * 25ns/BunchSpacing(ns) - BunchSpacing should be consistent with what is used from DB, as noise/sqrt(Lumi) depends on BunchSpacing - if -1 uses lumi from database (Data) or Beam properties (MC) to perform the sqrt(Lumi) pileup noise scaling - """ - statusOn = True - allowedType=['float'] - StoredValue = -1. - -class UseCaloLuminosity(JobProperty): - """ Flag to tell to use the luminosity normalization for pileup noise from dedicated calo folder - instead of online per LumiBlock - Only active if FixedLuminosity is not >0 - """ - statusOn = True - allowedType=['bool'] - StoredValue = True - -class CaloNoiseFlags(JobPropertyContainer): - """ The CaloNoiseFlag container - """ - pass - - -# add container to jobProperties -jobproperties.add_Container(CaloNoiseFlags) - -list_jobproperties = [ - FixedLuminosity,UseCaloLuminosity - ] - -for i in list_jobproperties: - jobproperties.CaloNoiseFlags.add_JobProperty(i) - -del list_jobproperties diff --git a/DataQuality/DataQualityConfigurations/config/Tile/collisions_run.config b/DataQuality/DataQualityConfigurations/config/Tile/collisions_run.config index 2e824a658b411424c819a5d35c4f6f4247a3dcff..24d5289ef81307da32aafd3200f03051ac762150 100644 --- a/DataQuality/DataQualityConfigurations/config/Tile/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/Tile/collisions_run.config @@ -2726,7 +2726,7 @@ dir Tile { dir DigiNoise { output = TileCal/Noise/Digit - hist noisemap_.*_hi_.* { + hist TileDigiNoise.*_HG { regex = 1 } } @@ -3335,20 +3335,16 @@ algorithm Tile_TileDigiErrors_CheckNonZeroBins { UseTotalEntries = 0 EntriesBin = 18 algorithm LB { - reference = TileDigiErrorsLB } algorithm EB { - reference = TileDigiErrorsEB IgnoreBin_DMU0_BadQ = 559 IgnoreBin_DMU4_BadQ = 563 } algorithm EB_special { - reference = TileDigiErrorsEB_special IgnoreBin_DMU0_BadQ = 559 IgnoreBin_DMU4_BadQ = 563 } algorithm EB_innerMBTS { - reference = TileDigiErrorsEB_innerMBTS UseReference = 0 IgnoreBin_DMU0_BadQ = 559 IgnoreBin_DMU1_Zeros = 344 @@ -3356,7 +3352,6 @@ algorithm Tile_TileDigiErrors_CheckNonZeroBins { IgnoreBin_DMU4_BadQ = 563 } algorithm EBA40 { - reference = TileDigiErrorsEB_innerMBTS UseReference = 0 thresholds = DMU_thr_EBA40 IgnoreBin_DMU0_BadQ = 559 @@ -3624,7 +3619,7 @@ thresholds DMU_thr { thresholds DMU_thr_EBA40 { limits BinThreshold { warning = 0.001 - error = 0.03 + error = 0.01 } } diff --git a/DataQuality/DataQualityConfigurations/config/Tile/cosmics_run.config b/DataQuality/DataQualityConfigurations/config/Tile/cosmics_run.config index 030f73faa5de42176e9069046fe42d92d4041bcd..5cc98735e141a047b412412d5b97a268fa98dff8 100644 --- a/DataQuality/DataQualityConfigurations/config/Tile/cosmics_run.config +++ b/DataQuality/DataQualityConfigurations/config/Tile/cosmics_run.config @@ -1505,17 +1505,13 @@ algorithm DMU_alg { UseTotalEntries = 0 EntriesBin = 18 algorithm LB { - reference = TileDigiErrorsLB } algorithm EB { - reference = TileDigiErrorsEB } algorithm EB_special { - reference = TileDigiErrorsEB_special } algorithm EBA40 { thresholds = DMU_thr_EBA40 - reference = TileDigiErrorsEB } } diff --git a/DataQuality/DataQualityConfigurations/config/Tile/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/Tile/heavyions_run.config index d8d9ca39075fbd4c5faca3d1ede2329a6d9e4419..ff52b62ce22eb8d6d60126db2a8488c63e0fd323 100644 --- a/DataQuality/DataQualityConfigurations/config/Tile/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/Tile/heavyions_run.config @@ -3332,20 +3332,16 @@ algorithm Tile_TileDigiErrors_CheckNonZeroBins { UseTotalEntries = 0 EntriesBin = 18 algorithm LB { - reference = TileDigiErrorsLB } algorithm EB { - reference = TileDigiErrorsEB IgnoreBin_DMU0_BadQ = 559 IgnoreBin_DMU4_BadQ = 563 } algorithm EB_special { - reference = TileDigiErrorsEB_special IgnoreBin_DMU0_BadQ = 559 IgnoreBin_DMU4_BadQ = 563 } algorithm EB_innerMBTS { - reference = TileDigiErrorsEB_innerMBTS UseReference = 0 IgnoreBin_DMU0_BadQ = 559 IgnoreBin_DMU1_Zeros = 344 @@ -3353,7 +3349,6 @@ algorithm Tile_TileDigiErrors_CheckNonZeroBins { IgnoreBin_DMU4_BadQ = 563 } algorithm EBA40 { - reference = TileDigiErrorsEB_innerMBTS UseReference = 0 thresholds = DMU_thr_EBA40 IgnoreBin_DMU0_BadQ = 559 diff --git a/DataQuality/DataQualityConfigurations/config/sTGC/collisions_minutes10.config b/DataQuality/DataQualityConfigurations/config/sTGC/collisions_minutes10.config index 440b026b7c3b7fbe0096d871f2c4c2688aeda386..290c87f306fd2aa91d132b28e64408619fe7ec42 100644 --- a/DataQuality/DataQualityConfigurations/config/sTGC/collisions_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/sTGC/collisions_minutes10.config @@ -2,641 +2,602 @@ # sTG ########################################################### -############# -# Output -############# - -output top_level { - output MuonDetectors { - output STG { - output Shifter { - output Overview { - } - output Lumiblock { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output PadTrigger { - output Triggers { - output PhiIDvsRelBCID { - } - output BandIDvsRelBCID { - } - } - output Hits { - output PFEBvsRelBCID { - } - } - } - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output Timing { - output Strip { - } - output Pad { - } - output Wire { - } - } - } - output Expert { - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output PadTrigger { - output Triggers { - output OccupancyBandIDvsLB { - } - output OccupancyBandIDvsPhiId { - } - output RelBCIDvsLB { - } - } - output Hits { - output padTriggerOccupancy { - } - } - } - output Timing { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output Residuals { - output Overview { - } - output ${occ_anysector} { - } - } - output Charge { - output ${occ_anysector} { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - } - output Efficiency { - output ${occ_anysector} { - } - } - } - } - } -} - ####################### # Histogram Assessments ####################### dir Muon { - - dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - - dir STG { - - dir Shifter { - dir Overview { - regex = 1 - hist Strip_cluster_size_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_size - display = LogZ,Draw=COLZ - } - hist Strip_cluster_timing_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_timing - display = LogZ,Draw=COLZ - } - hist strip_efficiency_per_mm_squared_Wheel[AC]_layer[1-8] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_etaPhi { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_eta { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_phi_Side_[AC] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - } - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Pad - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Strip { - hist Strip_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Strip - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Wire { - hist Wire_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Wire - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - } - dir PadTrigger { - dir Triggers { - hist OccupancySector_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - dir PhiIDvsRelBCID { - regex = 1 - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - dir BandIDvsRelBCID { - regex = 1 - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Hits { - dir PFEBvsRelBCID { - regex = 1 - hist pFEB_vs_relBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist pFEB_vs_relBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - hist OccupancypFEB_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - hist relBCID_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Lumiblock { - regex = 1 - dir Pad { - hist Nhits_all_pad_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_pad_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_pad_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_pad_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Strip { - hist Nhits_all_strip_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_strip_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_strip_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 - algorithm = stgc_Histogram_Not_Empty + dir MuonRawDataMonitoring { + dir STG { + dir Shifter { + dir Overview { + regex = 1 + hist Strip_cluster_size_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_size + display = LogZ,Draw=COLZ + } + hist Strip_cluster_timing_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_timing + display = LogZ,Draw=COLZ + } + hist strip_efficiency_per_mm_squared_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_etaPhi { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_eta { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + hist padTrigger_Efficiency_per_phi_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + } + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Pad + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Strip { + hist Strip_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Strip + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Wire { + hist Wire_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Wire + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + } + dir PadTrigger { + dir Triggers { + regex = 1 + hist OccupancySector_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist RelBCID_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + dir PhiIDvsRelBCID { + regex = 1 + hist Trigger_PhiID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + dir BandIDvsRelBCID { + regex = 1 + hist Trigger_BandID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Hits { + dir PFEBvsRelBCID { + regex = 1 + hist pFEB_vs_relBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + hist OccupancypFEB_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + hist relBCID_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Lumiblock { + regex = 1 + dir Pad { + hist Nhits_all_pad_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_pad_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_pad_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_pad_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Strip { + hist Nhits_all_strip_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_strip_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_strip_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_strip_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Wire { + hist Nhits_all_wire_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_wire_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_wire_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_wire_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + hist All_pad_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Pad + algorithm = stg_Ymeans_timing + } + } + dir Strip { + hist All_strip_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Strip + algorithm = stg_Ymeans_timing + } + } + dir Wire { + hist All_wire_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Wire + algorithm = stg_Ymeans_timing + } + } + } + } + dir Expert { + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Pad + algorithm = stgc_Histogram_Not_Empty + } + } + dir Strip { + hist Strip_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Strip + algorithm = stgc_Histogram_Not_Empty + } + } + dir Wire { + hist Wire_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Wire + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir PadTrigger { + dir Hits { + regex = 1 + dir padTriggerOccupancy { + hist padEtaPhiOcc_[1-8][AC][LS] { + output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Triggers { + regex = 1 + dir OccupancyBandIDvsLB { + hist OccupancyBandId_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + dir OccupancyBandIDvsPhiId { + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId + algorithm = stgc_Histogram_Not_Empty + } + } + dir RelBCIDvsLB { + hist RelBCID_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + dir Q1 { + hist All_pad_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_pad_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_pad_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Strip { + dir Q1 { + hist All_strip_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_strip_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_strip_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Wire { + dir Q1 { + hist All_wire_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_wire_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_wire_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q3 + algorithm = stg_Ymeans_timing + } + } + } + } + dir Residuals { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Q1 { + hist Residuals_in_Q1_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + } + } + dir Efficiency { + regex = 1 + dir (?P<sector>[AC][0-9]{2}) { + hist Efficiency_per_Radius_.* { + output = MuonDetectors/STG/Expert/Efficiency/${sector} + algorithm = stg_efficiency_bins_out_of_range + } + } + } + dir Charge { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Pad { + dir Q1 { + hist All_pad_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q1 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_pad_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q2 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_pad_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q3 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Strip { + dir Q1 { + hist All_strip_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q1 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_strip_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q2 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_strip_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q3 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Wire { + dir Q1 { + hist All_wire_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q1 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_wire_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q2 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_wire_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q3 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + } + } } - } - dir Q3 { - hist Nhits_all_strip_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Wire { - hist Nhits_all_wire_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_wire_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_wire_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_wire_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - hist All_pad_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Pad - algorithm = stg_Ymeans_timing - } - } - dir Strip { - hist All_strip_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Strip - algorithm = stg_Ymeans_timing - } - } - dir Wire { - hist All_wire_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Wire - algorithm = stg_Ymeans_timing - } - } - } } - dir Expert { - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Pad - algorithm = stgc_Histogram_Not_Empty - } - } - dir Strip { - hist Strip_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Strip - algorithm = stgc_Histogram_Not_Empty - } - } - dir Wire { - hist Wire_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Wire - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir PadTrigger { - dir Hits { - regex = 1 - dir padTriggerOccupancy { - hist padEtaPhiOcc_[1-8][AC][LS] { - output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Triggers { - regex = 1 - dir OccupancyBandIDvsLB { - hist OccupancyBandId_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist OccupancyBandId_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - dir OccupancyBandIDvsPhiId { - hist bandIds_vs_phiIds_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - } - dir RelBCIDvsLB { - hist RelBCID_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - dir Q1 { - hist All_pad_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_pad_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_pad_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Strip { - dir Q1 { - hist All_strip_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_strip_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_strip_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Wire { - dir Q1 { - hist All_wire_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_wire_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_wire_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q3 - algorithm = stg_Ymeans_timing - } - } - } - } - dir Residuals { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Q1 { - hist Residuals_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Residuals_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Residuals_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } +} + +############# +# Output +############# + +output top_level { + output MuonDetectors { + output STG { + output Shifter { + output Overview { + } + output Lumiblock { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } - } - } - } - } - dir Efficiency { - regex = 1 - dir (?P<occ_anysector>[AC][0-9]{2}) { - hist Efficiency_per_Radius_Layer[1-8] { - output = MuonDetectors/STG/Expert/Efficiency/${occ_anysector} - algorithm = stg_efficiency_bins_out_of_range - } - } - } - dir Charge { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Pad { - dir Q1 { - hist All_pad_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q1 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_pad_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q2 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_pad_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q3 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Strip { - dir Q1 { - hist All_strip_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q1 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_strip_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q2 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_strip_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q3 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Wire { - dir Q1 { - hist All_wire_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q1 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_wire_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q2 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_wire_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q3 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - } - } - } - } - } + } + output PadTrigger { + output Triggers { + output PhiIDvsRelBCID { + } + output BandIDvsRelBCID { + } + } + output Hits { + output PFEBvsRelBCID { + } + } + } + output Occupancy { + output Strip { + } + output Pad { + } + output Wire { + } + } + output Timing { + output Strip { + } + output Pad { + } + output Wire { + } + } + } + output Expert { + output Occupancy { + output Pad { + } + output Strip { + } + output Wire { + } + } + output PadTrigger { + output Triggers { + output OccupancyBandIDvsLB { + } + output OccupancyBandIDvsPhiId { + } + output RelBCIDvsLB { + } + } + output Hits { + output padTriggerOccupancy { + } + } + } + output Timing { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + output Residuals { + output ${sector} { + } + } + output Charge { + output ${sector} { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + } + output Efficiency { + output ${sector} { + } + } + } + } + } } - + ############# # Algorithms ############# @@ -648,6 +609,7 @@ algorithm stgc_Histogram_Not_Empty { } algorithm stgc_GatherData { + libname = libdqm_algorithms.so name = GatherData reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -686,7 +648,7 @@ algorithm stg_efficiency_bins_out_of_range { RANGE_D = 0.6 RANGE_U = 1.01 thresholds = range_thresholds_stgeff - reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/DataQualityConfigurations/config/sTGC/collisions_run.config b/DataQuality/DataQualityConfigurations/config/sTGC/collisions_run.config index 440b026b7c3b7fbe0096d871f2c4c2688aeda386..290c87f306fd2aa91d132b28e64408619fe7ec42 100644 --- a/DataQuality/DataQualityConfigurations/config/sTGC/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/sTGC/collisions_run.config @@ -2,641 +2,602 @@ # sTG ########################################################### -############# -# Output -############# - -output top_level { - output MuonDetectors { - output STG { - output Shifter { - output Overview { - } - output Lumiblock { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output PadTrigger { - output Triggers { - output PhiIDvsRelBCID { - } - output BandIDvsRelBCID { - } - } - output Hits { - output PFEBvsRelBCID { - } - } - } - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output Timing { - output Strip { - } - output Pad { - } - output Wire { - } - } - } - output Expert { - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output PadTrigger { - output Triggers { - output OccupancyBandIDvsLB { - } - output OccupancyBandIDvsPhiId { - } - output RelBCIDvsLB { - } - } - output Hits { - output padTriggerOccupancy { - } - } - } - output Timing { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output Residuals { - output Overview { - } - output ${occ_anysector} { - } - } - output Charge { - output ${occ_anysector} { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - } - output Efficiency { - output ${occ_anysector} { - } - } - } - } - } -} - ####################### # Histogram Assessments ####################### dir Muon { - - dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - - dir STG { - - dir Shifter { - dir Overview { - regex = 1 - hist Strip_cluster_size_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_size - display = LogZ,Draw=COLZ - } - hist Strip_cluster_timing_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_timing - display = LogZ,Draw=COLZ - } - hist strip_efficiency_per_mm_squared_Wheel[AC]_layer[1-8] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_etaPhi { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_eta { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_phi_Side_[AC] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - } - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Pad - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Strip { - hist Strip_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Strip - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Wire { - hist Wire_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Wire - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - } - dir PadTrigger { - dir Triggers { - hist OccupancySector_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - dir PhiIDvsRelBCID { - regex = 1 - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - dir BandIDvsRelBCID { - regex = 1 - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Hits { - dir PFEBvsRelBCID { - regex = 1 - hist pFEB_vs_relBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist pFEB_vs_relBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - hist OccupancypFEB_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - hist relBCID_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Lumiblock { - regex = 1 - dir Pad { - hist Nhits_all_pad_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_pad_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_pad_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_pad_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Strip { - hist Nhits_all_strip_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_strip_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_strip_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 - algorithm = stgc_Histogram_Not_Empty + dir MuonRawDataMonitoring { + dir STG { + dir Shifter { + dir Overview { + regex = 1 + hist Strip_cluster_size_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_size + display = LogZ,Draw=COLZ + } + hist Strip_cluster_timing_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_timing + display = LogZ,Draw=COLZ + } + hist strip_efficiency_per_mm_squared_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_etaPhi { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_eta { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + hist padTrigger_Efficiency_per_phi_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + } + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Pad + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Strip { + hist Strip_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Strip + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Wire { + hist Wire_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Wire + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + } + dir PadTrigger { + dir Triggers { + regex = 1 + hist OccupancySector_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist RelBCID_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + dir PhiIDvsRelBCID { + regex = 1 + hist Trigger_PhiID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + dir BandIDvsRelBCID { + regex = 1 + hist Trigger_BandID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Hits { + dir PFEBvsRelBCID { + regex = 1 + hist pFEB_vs_relBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + hist OccupancypFEB_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + hist relBCID_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Lumiblock { + regex = 1 + dir Pad { + hist Nhits_all_pad_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_pad_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_pad_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_pad_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Strip { + hist Nhits_all_strip_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_strip_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_strip_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_strip_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Wire { + hist Nhits_all_wire_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_wire_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_wire_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_wire_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + hist All_pad_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Pad + algorithm = stg_Ymeans_timing + } + } + dir Strip { + hist All_strip_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Strip + algorithm = stg_Ymeans_timing + } + } + dir Wire { + hist All_wire_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Wire + algorithm = stg_Ymeans_timing + } + } + } + } + dir Expert { + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Pad + algorithm = stgc_Histogram_Not_Empty + } + } + dir Strip { + hist Strip_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Strip + algorithm = stgc_Histogram_Not_Empty + } + } + dir Wire { + hist Wire_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Wire + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir PadTrigger { + dir Hits { + regex = 1 + dir padTriggerOccupancy { + hist padEtaPhiOcc_[1-8][AC][LS] { + output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Triggers { + regex = 1 + dir OccupancyBandIDvsLB { + hist OccupancyBandId_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + dir OccupancyBandIDvsPhiId { + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId + algorithm = stgc_Histogram_Not_Empty + } + } + dir RelBCIDvsLB { + hist RelBCID_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + dir Q1 { + hist All_pad_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_pad_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_pad_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Strip { + dir Q1 { + hist All_strip_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_strip_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_strip_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Wire { + dir Q1 { + hist All_wire_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_wire_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_wire_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q3 + algorithm = stg_Ymeans_timing + } + } + } + } + dir Residuals { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Q1 { + hist Residuals_in_Q1_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + } + } + dir Efficiency { + regex = 1 + dir (?P<sector>[AC][0-9]{2}) { + hist Efficiency_per_Radius_.* { + output = MuonDetectors/STG/Expert/Efficiency/${sector} + algorithm = stg_efficiency_bins_out_of_range + } + } + } + dir Charge { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Pad { + dir Q1 { + hist All_pad_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q1 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_pad_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q2 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_pad_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q3 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Strip { + dir Q1 { + hist All_strip_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q1 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_strip_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q2 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_strip_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q3 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Wire { + dir Q1 { + hist All_wire_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q1 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_wire_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q2 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_wire_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q3 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + } + } } - } - dir Q3 { - hist Nhits_all_strip_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Wire { - hist Nhits_all_wire_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_wire_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_wire_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_wire_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - hist All_pad_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Pad - algorithm = stg_Ymeans_timing - } - } - dir Strip { - hist All_strip_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Strip - algorithm = stg_Ymeans_timing - } - } - dir Wire { - hist All_wire_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Wire - algorithm = stg_Ymeans_timing - } - } - } } - dir Expert { - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Pad - algorithm = stgc_Histogram_Not_Empty - } - } - dir Strip { - hist Strip_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Strip - algorithm = stgc_Histogram_Not_Empty - } - } - dir Wire { - hist Wire_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Wire - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir PadTrigger { - dir Hits { - regex = 1 - dir padTriggerOccupancy { - hist padEtaPhiOcc_[1-8][AC][LS] { - output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Triggers { - regex = 1 - dir OccupancyBandIDvsLB { - hist OccupancyBandId_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist OccupancyBandId_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - dir OccupancyBandIDvsPhiId { - hist bandIds_vs_phiIds_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - } - dir RelBCIDvsLB { - hist RelBCID_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - dir Q1 { - hist All_pad_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_pad_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_pad_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Strip { - dir Q1 { - hist All_strip_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_strip_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_strip_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Wire { - dir Q1 { - hist All_wire_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_wire_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_wire_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q3 - algorithm = stg_Ymeans_timing - } - } - } - } - dir Residuals { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Q1 { - hist Residuals_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Residuals_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Residuals_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } +} + +############# +# Output +############# + +output top_level { + output MuonDetectors { + output STG { + output Shifter { + output Overview { + } + output Lumiblock { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } - } - } - } - } - dir Efficiency { - regex = 1 - dir (?P<occ_anysector>[AC][0-9]{2}) { - hist Efficiency_per_Radius_Layer[1-8] { - output = MuonDetectors/STG/Expert/Efficiency/${occ_anysector} - algorithm = stg_efficiency_bins_out_of_range - } - } - } - dir Charge { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Pad { - dir Q1 { - hist All_pad_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q1 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_pad_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q2 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_pad_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q3 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Strip { - dir Q1 { - hist All_strip_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q1 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_strip_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q2 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_strip_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q3 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Wire { - dir Q1 { - hist All_wire_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q1 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_wire_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q2 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_wire_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q3 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - } - } - } - } - } + } + output PadTrigger { + output Triggers { + output PhiIDvsRelBCID { + } + output BandIDvsRelBCID { + } + } + output Hits { + output PFEBvsRelBCID { + } + } + } + output Occupancy { + output Strip { + } + output Pad { + } + output Wire { + } + } + output Timing { + output Strip { + } + output Pad { + } + output Wire { + } + } + } + output Expert { + output Occupancy { + output Pad { + } + output Strip { + } + output Wire { + } + } + output PadTrigger { + output Triggers { + output OccupancyBandIDvsLB { + } + output OccupancyBandIDvsPhiId { + } + output RelBCIDvsLB { + } + } + output Hits { + output padTriggerOccupancy { + } + } + } + output Timing { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + output Residuals { + output ${sector} { + } + } + output Charge { + output ${sector} { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + } + output Efficiency { + output ${sector} { + } + } + } + } + } } - + ############# # Algorithms ############# @@ -648,6 +609,7 @@ algorithm stgc_Histogram_Not_Empty { } algorithm stgc_GatherData { + libname = libdqm_algorithms.so name = GatherData reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -686,7 +648,7 @@ algorithm stg_efficiency_bins_out_of_range { RANGE_D = 0.6 RANGE_U = 1.01 thresholds = range_thresholds_stgeff - reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_minutes10.config b/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_minutes10.config index 440b026b7c3b7fbe0096d871f2c4c2688aeda386..290c87f306fd2aa91d132b28e64408619fe7ec42 100644 --- a/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_minutes10.config @@ -2,641 +2,602 @@ # sTG ########################################################### -############# -# Output -############# - -output top_level { - output MuonDetectors { - output STG { - output Shifter { - output Overview { - } - output Lumiblock { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output PadTrigger { - output Triggers { - output PhiIDvsRelBCID { - } - output BandIDvsRelBCID { - } - } - output Hits { - output PFEBvsRelBCID { - } - } - } - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output Timing { - output Strip { - } - output Pad { - } - output Wire { - } - } - } - output Expert { - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output PadTrigger { - output Triggers { - output OccupancyBandIDvsLB { - } - output OccupancyBandIDvsPhiId { - } - output RelBCIDvsLB { - } - } - output Hits { - output padTriggerOccupancy { - } - } - } - output Timing { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output Residuals { - output Overview { - } - output ${occ_anysector} { - } - } - output Charge { - output ${occ_anysector} { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - } - output Efficiency { - output ${occ_anysector} { - } - } - } - } - } -} - ####################### # Histogram Assessments ####################### dir Muon { - - dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - - dir STG { - - dir Shifter { - dir Overview { - regex = 1 - hist Strip_cluster_size_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_size - display = LogZ,Draw=COLZ - } - hist Strip_cluster_timing_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_timing - display = LogZ,Draw=COLZ - } - hist strip_efficiency_per_mm_squared_Wheel[AC]_layer[1-8] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_etaPhi { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_eta { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_phi_Side_[AC] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - } - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Pad - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Strip { - hist Strip_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Strip - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Wire { - hist Wire_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Wire - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - } - dir PadTrigger { - dir Triggers { - hist OccupancySector_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - dir PhiIDvsRelBCID { - regex = 1 - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - dir BandIDvsRelBCID { - regex = 1 - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Hits { - dir PFEBvsRelBCID { - regex = 1 - hist pFEB_vs_relBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist pFEB_vs_relBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - hist OccupancypFEB_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - hist relBCID_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Lumiblock { - regex = 1 - dir Pad { - hist Nhits_all_pad_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_pad_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_pad_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_pad_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Strip { - hist Nhits_all_strip_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_strip_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_strip_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 - algorithm = stgc_Histogram_Not_Empty + dir MuonRawDataMonitoring { + dir STG { + dir Shifter { + dir Overview { + regex = 1 + hist Strip_cluster_size_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_size + display = LogZ,Draw=COLZ + } + hist Strip_cluster_timing_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_timing + display = LogZ,Draw=COLZ + } + hist strip_efficiency_per_mm_squared_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_etaPhi { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_eta { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + hist padTrigger_Efficiency_per_phi_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + } + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Pad + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Strip { + hist Strip_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Strip + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Wire { + hist Wire_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Wire + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + } + dir PadTrigger { + dir Triggers { + regex = 1 + hist OccupancySector_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist RelBCID_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + dir PhiIDvsRelBCID { + regex = 1 + hist Trigger_PhiID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + dir BandIDvsRelBCID { + regex = 1 + hist Trigger_BandID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Hits { + dir PFEBvsRelBCID { + regex = 1 + hist pFEB_vs_relBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + hist OccupancypFEB_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + hist relBCID_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Lumiblock { + regex = 1 + dir Pad { + hist Nhits_all_pad_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_pad_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_pad_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_pad_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Strip { + hist Nhits_all_strip_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_strip_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_strip_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_strip_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Wire { + hist Nhits_all_wire_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_wire_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_wire_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_wire_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + hist All_pad_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Pad + algorithm = stg_Ymeans_timing + } + } + dir Strip { + hist All_strip_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Strip + algorithm = stg_Ymeans_timing + } + } + dir Wire { + hist All_wire_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Wire + algorithm = stg_Ymeans_timing + } + } + } + } + dir Expert { + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Pad + algorithm = stgc_Histogram_Not_Empty + } + } + dir Strip { + hist Strip_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Strip + algorithm = stgc_Histogram_Not_Empty + } + } + dir Wire { + hist Wire_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Wire + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir PadTrigger { + dir Hits { + regex = 1 + dir padTriggerOccupancy { + hist padEtaPhiOcc_[1-8][AC][LS] { + output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Triggers { + regex = 1 + dir OccupancyBandIDvsLB { + hist OccupancyBandId_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + dir OccupancyBandIDvsPhiId { + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId + algorithm = stgc_Histogram_Not_Empty + } + } + dir RelBCIDvsLB { + hist RelBCID_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + dir Q1 { + hist All_pad_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_pad_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_pad_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Strip { + dir Q1 { + hist All_strip_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_strip_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_strip_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Wire { + dir Q1 { + hist All_wire_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_wire_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_wire_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q3 + algorithm = stg_Ymeans_timing + } + } + } + } + dir Residuals { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Q1 { + hist Residuals_in_Q1_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + } + } + dir Efficiency { + regex = 1 + dir (?P<sector>[AC][0-9]{2}) { + hist Efficiency_per_Radius_.* { + output = MuonDetectors/STG/Expert/Efficiency/${sector} + algorithm = stg_efficiency_bins_out_of_range + } + } + } + dir Charge { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Pad { + dir Q1 { + hist All_pad_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q1 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_pad_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q2 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_pad_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q3 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Strip { + dir Q1 { + hist All_strip_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q1 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_strip_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q2 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_strip_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q3 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Wire { + dir Q1 { + hist All_wire_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q1 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_wire_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q2 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_wire_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q3 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + } + } } - } - dir Q3 { - hist Nhits_all_strip_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Wire { - hist Nhits_all_wire_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_wire_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_wire_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_wire_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - hist All_pad_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Pad - algorithm = stg_Ymeans_timing - } - } - dir Strip { - hist All_strip_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Strip - algorithm = stg_Ymeans_timing - } - } - dir Wire { - hist All_wire_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Wire - algorithm = stg_Ymeans_timing - } - } - } } - dir Expert { - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Pad - algorithm = stgc_Histogram_Not_Empty - } - } - dir Strip { - hist Strip_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Strip - algorithm = stgc_Histogram_Not_Empty - } - } - dir Wire { - hist Wire_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Wire - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir PadTrigger { - dir Hits { - regex = 1 - dir padTriggerOccupancy { - hist padEtaPhiOcc_[1-8][AC][LS] { - output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Triggers { - regex = 1 - dir OccupancyBandIDvsLB { - hist OccupancyBandId_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist OccupancyBandId_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - dir OccupancyBandIDvsPhiId { - hist bandIds_vs_phiIds_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - } - dir RelBCIDvsLB { - hist RelBCID_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - dir Q1 { - hist All_pad_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_pad_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_pad_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Strip { - dir Q1 { - hist All_strip_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_strip_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_strip_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Wire { - dir Q1 { - hist All_wire_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_wire_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_wire_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q3 - algorithm = stg_Ymeans_timing - } - } - } - } - dir Residuals { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Q1 { - hist Residuals_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Residuals_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Residuals_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } +} + +############# +# Output +############# + +output top_level { + output MuonDetectors { + output STG { + output Shifter { + output Overview { + } + output Lumiblock { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } - } - } - } - } - dir Efficiency { - regex = 1 - dir (?P<occ_anysector>[AC][0-9]{2}) { - hist Efficiency_per_Radius_Layer[1-8] { - output = MuonDetectors/STG/Expert/Efficiency/${occ_anysector} - algorithm = stg_efficiency_bins_out_of_range - } - } - } - dir Charge { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Pad { - dir Q1 { - hist All_pad_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q1 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_pad_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q2 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_pad_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q3 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Strip { - dir Q1 { - hist All_strip_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q1 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_strip_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q2 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_strip_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q3 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Wire { - dir Q1 { - hist All_wire_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q1 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_wire_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q2 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_wire_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q3 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - } - } - } - } - } + } + output PadTrigger { + output Triggers { + output PhiIDvsRelBCID { + } + output BandIDvsRelBCID { + } + } + output Hits { + output PFEBvsRelBCID { + } + } + } + output Occupancy { + output Strip { + } + output Pad { + } + output Wire { + } + } + output Timing { + output Strip { + } + output Pad { + } + output Wire { + } + } + } + output Expert { + output Occupancy { + output Pad { + } + output Strip { + } + output Wire { + } + } + output PadTrigger { + output Triggers { + output OccupancyBandIDvsLB { + } + output OccupancyBandIDvsPhiId { + } + output RelBCIDvsLB { + } + } + output Hits { + output padTriggerOccupancy { + } + } + } + output Timing { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + output Residuals { + output ${sector} { + } + } + output Charge { + output ${sector} { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + } + output Efficiency { + output ${sector} { + } + } + } + } + } } - + ############# # Algorithms ############# @@ -648,6 +609,7 @@ algorithm stgc_Histogram_Not_Empty { } algorithm stgc_GatherData { + libname = libdqm_algorithms.so name = GatherData reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -686,7 +648,7 @@ algorithm stg_efficiency_bins_out_of_range { RANGE_D = 0.6 RANGE_U = 1.01 thresholds = range_thresholds_stgeff - reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_run.config b/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_run.config index 440b026b7c3b7fbe0096d871f2c4c2688aeda386..290c87f306fd2aa91d132b28e64408619fe7ec42 100644 --- a/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_run.config +++ b/DataQuality/DataQualityConfigurations/config/sTGC/cosmics_run.config @@ -2,641 +2,602 @@ # sTG ########################################################### -############# -# Output -############# - -output top_level { - output MuonDetectors { - output STG { - output Shifter { - output Overview { - } - output Lumiblock { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output PadTrigger { - output Triggers { - output PhiIDvsRelBCID { - } - output BandIDvsRelBCID { - } - } - output Hits { - output PFEBvsRelBCID { - } - } - } - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output Timing { - output Strip { - } - output Pad { - } - output Wire { - } - } - } - output Expert { - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output PadTrigger { - output Triggers { - output OccupancyBandIDvsLB { - } - output OccupancyBandIDvsPhiId { - } - output RelBCIDvsLB { - } - } - output Hits { - output padTriggerOccupancy { - } - } - } - output Timing { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output Residuals { - output Overview { - } - output ${occ_anysector} { - } - } - output Charge { - output ${occ_anysector} { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - } - output Efficiency { - output ${occ_anysector} { - } - } - } - } - } -} - ####################### # Histogram Assessments ####################### dir Muon { - - dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - - dir STG { - - dir Shifter { - dir Overview { - regex = 1 - hist Strip_cluster_size_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_size - display = LogZ,Draw=COLZ - } - hist Strip_cluster_timing_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_timing - display = LogZ,Draw=COLZ - } - hist strip_efficiency_per_mm_squared_Wheel[AC]_layer[1-8] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_etaPhi { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_eta { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_phi_Side_[AC] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - } - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Pad - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Strip { - hist Strip_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Strip - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Wire { - hist Wire_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Wire - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - } - dir PadTrigger { - dir Triggers { - hist OccupancySector_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - dir PhiIDvsRelBCID { - regex = 1 - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - dir BandIDvsRelBCID { - regex = 1 - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Hits { - dir PFEBvsRelBCID { - regex = 1 - hist pFEB_vs_relBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist pFEB_vs_relBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - hist OccupancypFEB_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - hist relBCID_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Lumiblock { - regex = 1 - dir Pad { - hist Nhits_all_pad_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_pad_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_pad_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_pad_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Strip { - hist Nhits_all_strip_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_strip_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_strip_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 - algorithm = stgc_Histogram_Not_Empty + dir MuonRawDataMonitoring { + dir STG { + dir Shifter { + dir Overview { + regex = 1 + hist Strip_cluster_size_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_size + display = LogZ,Draw=COLZ + } + hist Strip_cluster_timing_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_timing + display = LogZ,Draw=COLZ + } + hist strip_efficiency_per_mm_squared_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_etaPhi { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_eta { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + hist padTrigger_Efficiency_per_phi_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + } + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Pad + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Strip { + hist Strip_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Strip + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Wire { + hist Wire_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Wire + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + } + dir PadTrigger { + dir Triggers { + regex = 1 + hist OccupancySector_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist RelBCID_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + dir PhiIDvsRelBCID { + regex = 1 + hist Trigger_PhiID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + dir BandIDvsRelBCID { + regex = 1 + hist Trigger_BandID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Hits { + dir PFEBvsRelBCID { + regex = 1 + hist pFEB_vs_relBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + hist OccupancypFEB_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + hist relBCID_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Lumiblock { + regex = 1 + dir Pad { + hist Nhits_all_pad_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_pad_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_pad_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_pad_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Strip { + hist Nhits_all_strip_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_strip_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_strip_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_strip_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Wire { + hist Nhits_all_wire_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_wire_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_wire_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_wire_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + hist All_pad_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Pad + algorithm = stg_Ymeans_timing + } + } + dir Strip { + hist All_strip_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Strip + algorithm = stg_Ymeans_timing + } + } + dir Wire { + hist All_wire_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Wire + algorithm = stg_Ymeans_timing + } + } + } + } + dir Expert { + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Pad + algorithm = stgc_Histogram_Not_Empty + } + } + dir Strip { + hist Strip_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Strip + algorithm = stgc_Histogram_Not_Empty + } + } + dir Wire { + hist Wire_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Wire + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir PadTrigger { + dir Hits { + regex = 1 + dir padTriggerOccupancy { + hist padEtaPhiOcc_[1-8][AC][LS] { + output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Triggers { + regex = 1 + dir OccupancyBandIDvsLB { + hist OccupancyBandId_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + dir OccupancyBandIDvsPhiId { + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId + algorithm = stgc_Histogram_Not_Empty + } + } + dir RelBCIDvsLB { + hist RelBCID_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + dir Q1 { + hist All_pad_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_pad_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_pad_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Strip { + dir Q1 { + hist All_strip_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_strip_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_strip_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Wire { + dir Q1 { + hist All_wire_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_wire_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_wire_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q3 + algorithm = stg_Ymeans_timing + } + } + } + } + dir Residuals { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Q1 { + hist Residuals_in_Q1_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + } + } + dir Efficiency { + regex = 1 + dir (?P<sector>[AC][0-9]{2}) { + hist Efficiency_per_Radius_.* { + output = MuonDetectors/STG/Expert/Efficiency/${sector} + algorithm = stg_efficiency_bins_out_of_range + } + } + } + dir Charge { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Pad { + dir Q1 { + hist All_pad_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q1 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_pad_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q2 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_pad_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q3 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Strip { + dir Q1 { + hist All_strip_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q1 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_strip_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q2 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_strip_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q3 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Wire { + dir Q1 { + hist All_wire_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q1 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_wire_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q2 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_wire_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q3 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + } + } } - } - dir Q3 { - hist Nhits_all_strip_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Wire { - hist Nhits_all_wire_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_wire_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_wire_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_wire_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - hist All_pad_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Pad - algorithm = stg_Ymeans_timing - } - } - dir Strip { - hist All_strip_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Strip - algorithm = stg_Ymeans_timing - } - } - dir Wire { - hist All_wire_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Wire - algorithm = stg_Ymeans_timing - } - } - } } - dir Expert { - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Pad - algorithm = stgc_Histogram_Not_Empty - } - } - dir Strip { - hist Strip_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Strip - algorithm = stgc_Histogram_Not_Empty - } - } - dir Wire { - hist Wire_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Wire - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir PadTrigger { - dir Hits { - regex = 1 - dir padTriggerOccupancy { - hist padEtaPhiOcc_[1-8][AC][LS] { - output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Triggers { - regex = 1 - dir OccupancyBandIDvsLB { - hist OccupancyBandId_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist OccupancyBandId_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - dir OccupancyBandIDvsPhiId { - hist bandIds_vs_phiIds_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - } - dir RelBCIDvsLB { - hist RelBCID_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - dir Q1 { - hist All_pad_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_pad_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_pad_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Strip { - dir Q1 { - hist All_strip_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_strip_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_strip_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Wire { - dir Q1 { - hist All_wire_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_wire_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_wire_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q3 - algorithm = stg_Ymeans_timing - } - } - } - } - dir Residuals { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Q1 { - hist Residuals_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Residuals_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Residuals_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } +} + +############# +# Output +############# + +output top_level { + output MuonDetectors { + output STG { + output Shifter { + output Overview { + } + output Lumiblock { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } - } - } - } - } - dir Efficiency { - regex = 1 - dir (?P<occ_anysector>[AC][0-9]{2}) { - hist Efficiency_per_Radius_Layer[1-8] { - output = MuonDetectors/STG/Expert/Efficiency/${occ_anysector} - algorithm = stg_efficiency_bins_out_of_range - } - } - } - dir Charge { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Pad { - dir Q1 { - hist All_pad_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q1 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_pad_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q2 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_pad_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q3 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Strip { - dir Q1 { - hist All_strip_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q1 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_strip_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q2 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_strip_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q3 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Wire { - dir Q1 { - hist All_wire_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q1 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_wire_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q2 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_wire_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q3 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - } - } - } - } - } + } + output PadTrigger { + output Triggers { + output PhiIDvsRelBCID { + } + output BandIDvsRelBCID { + } + } + output Hits { + output PFEBvsRelBCID { + } + } + } + output Occupancy { + output Strip { + } + output Pad { + } + output Wire { + } + } + output Timing { + output Strip { + } + output Pad { + } + output Wire { + } + } + } + output Expert { + output Occupancy { + output Pad { + } + output Strip { + } + output Wire { + } + } + output PadTrigger { + output Triggers { + output OccupancyBandIDvsLB { + } + output OccupancyBandIDvsPhiId { + } + output RelBCIDvsLB { + } + } + output Hits { + output padTriggerOccupancy { + } + } + } + output Timing { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + output Residuals { + output ${sector} { + } + } + output Charge { + output ${sector} { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + } + output Efficiency { + output ${sector} { + } + } + } + } + } } - + ############# # Algorithms ############# @@ -648,6 +609,7 @@ algorithm stgc_Histogram_Not_Empty { } algorithm stgc_GatherData { + libname = libdqm_algorithms.so name = GatherData reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -686,7 +648,7 @@ algorithm stg_efficiency_bins_out_of_range { RANGE_D = 0.6 RANGE_U = 1.01 thresholds = range_thresholds_stgeff - reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_minutes10.config b/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_minutes10.config index 440b026b7c3b7fbe0096d871f2c4c2688aeda386..290c87f306fd2aa91d132b28e64408619fe7ec42 100644 --- a/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_minutes10.config @@ -2,641 +2,602 @@ # sTG ########################################################### -############# -# Output -############# - -output top_level { - output MuonDetectors { - output STG { - output Shifter { - output Overview { - } - output Lumiblock { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output PadTrigger { - output Triggers { - output PhiIDvsRelBCID { - } - output BandIDvsRelBCID { - } - } - output Hits { - output PFEBvsRelBCID { - } - } - } - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output Timing { - output Strip { - } - output Pad { - } - output Wire { - } - } - } - output Expert { - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output PadTrigger { - output Triggers { - output OccupancyBandIDvsLB { - } - output OccupancyBandIDvsPhiId { - } - output RelBCIDvsLB { - } - } - output Hits { - output padTriggerOccupancy { - } - } - } - output Timing { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output Residuals { - output Overview { - } - output ${occ_anysector} { - } - } - output Charge { - output ${occ_anysector} { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - } - output Efficiency { - output ${occ_anysector} { - } - } - } - } - } -} - ####################### # Histogram Assessments ####################### dir Muon { - - dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - - dir STG { - - dir Shifter { - dir Overview { - regex = 1 - hist Strip_cluster_size_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_size - display = LogZ,Draw=COLZ - } - hist Strip_cluster_timing_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_timing - display = LogZ,Draw=COLZ - } - hist strip_efficiency_per_mm_squared_Wheel[AC]_layer[1-8] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_etaPhi { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_eta { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_phi_Side_[AC] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - } - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Pad - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Strip { - hist Strip_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Strip - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Wire { - hist Wire_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Wire - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - } - dir PadTrigger { - dir Triggers { - hist OccupancySector_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - dir PhiIDvsRelBCID { - regex = 1 - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - dir BandIDvsRelBCID { - regex = 1 - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Hits { - dir PFEBvsRelBCID { - regex = 1 - hist pFEB_vs_relBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist pFEB_vs_relBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - hist OccupancypFEB_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - hist relBCID_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Lumiblock { - regex = 1 - dir Pad { - hist Nhits_all_pad_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_pad_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_pad_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_pad_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Strip { - hist Nhits_all_strip_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_strip_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_strip_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 - algorithm = stgc_Histogram_Not_Empty + dir MuonRawDataMonitoring { + dir STG { + dir Shifter { + dir Overview { + regex = 1 + hist Strip_cluster_size_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_size + display = LogZ,Draw=COLZ + } + hist Strip_cluster_timing_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_timing + display = LogZ,Draw=COLZ + } + hist strip_efficiency_per_mm_squared_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_etaPhi { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_eta { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + hist padTrigger_Efficiency_per_phi_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + } + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Pad + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Strip { + hist Strip_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Strip + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Wire { + hist Wire_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Wire + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + } + dir PadTrigger { + dir Triggers { + regex = 1 + hist OccupancySector_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist RelBCID_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + dir PhiIDvsRelBCID { + regex = 1 + hist Trigger_PhiID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + dir BandIDvsRelBCID { + regex = 1 + hist Trigger_BandID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Hits { + dir PFEBvsRelBCID { + regex = 1 + hist pFEB_vs_relBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + hist OccupancypFEB_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + hist relBCID_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Lumiblock { + regex = 1 + dir Pad { + hist Nhits_all_pad_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_pad_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_pad_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_pad_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Strip { + hist Nhits_all_strip_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_strip_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_strip_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_strip_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Wire { + hist Nhits_all_wire_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_wire_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_wire_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_wire_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + hist All_pad_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Pad + algorithm = stg_Ymeans_timing + } + } + dir Strip { + hist All_strip_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Strip + algorithm = stg_Ymeans_timing + } + } + dir Wire { + hist All_wire_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Wire + algorithm = stg_Ymeans_timing + } + } + } + } + dir Expert { + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Pad + algorithm = stgc_Histogram_Not_Empty + } + } + dir Strip { + hist Strip_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Strip + algorithm = stgc_Histogram_Not_Empty + } + } + dir Wire { + hist Wire_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Wire + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir PadTrigger { + dir Hits { + regex = 1 + dir padTriggerOccupancy { + hist padEtaPhiOcc_[1-8][AC][LS] { + output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Triggers { + regex = 1 + dir OccupancyBandIDvsLB { + hist OccupancyBandId_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + dir OccupancyBandIDvsPhiId { + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId + algorithm = stgc_Histogram_Not_Empty + } + } + dir RelBCIDvsLB { + hist RelBCID_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + dir Q1 { + hist All_pad_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_pad_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_pad_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Strip { + dir Q1 { + hist All_strip_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_strip_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_strip_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Wire { + dir Q1 { + hist All_wire_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_wire_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_wire_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q3 + algorithm = stg_Ymeans_timing + } + } + } + } + dir Residuals { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Q1 { + hist Residuals_in_Q1_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + } + } + dir Efficiency { + regex = 1 + dir (?P<sector>[AC][0-9]{2}) { + hist Efficiency_per_Radius_.* { + output = MuonDetectors/STG/Expert/Efficiency/${sector} + algorithm = stg_efficiency_bins_out_of_range + } + } + } + dir Charge { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Pad { + dir Q1 { + hist All_pad_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q1 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_pad_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q2 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_pad_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q3 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Strip { + dir Q1 { + hist All_strip_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q1 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_strip_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q2 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_strip_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q3 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Wire { + dir Q1 { + hist All_wire_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q1 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_wire_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q2 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_wire_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q3 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + } + } } - } - dir Q3 { - hist Nhits_all_strip_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Wire { - hist Nhits_all_wire_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_wire_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_wire_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_wire_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - hist All_pad_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Pad - algorithm = stg_Ymeans_timing - } - } - dir Strip { - hist All_strip_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Strip - algorithm = stg_Ymeans_timing - } - } - dir Wire { - hist All_wire_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Wire - algorithm = stg_Ymeans_timing - } - } - } } - dir Expert { - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Pad - algorithm = stgc_Histogram_Not_Empty - } - } - dir Strip { - hist Strip_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Strip - algorithm = stgc_Histogram_Not_Empty - } - } - dir Wire { - hist Wire_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Wire - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir PadTrigger { - dir Hits { - regex = 1 - dir padTriggerOccupancy { - hist padEtaPhiOcc_[1-8][AC][LS] { - output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Triggers { - regex = 1 - dir OccupancyBandIDvsLB { - hist OccupancyBandId_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist OccupancyBandId_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - dir OccupancyBandIDvsPhiId { - hist bandIds_vs_phiIds_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - } - dir RelBCIDvsLB { - hist RelBCID_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - dir Q1 { - hist All_pad_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_pad_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_pad_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Strip { - dir Q1 { - hist All_strip_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_strip_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_strip_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Wire { - dir Q1 { - hist All_wire_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_wire_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_wire_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q3 - algorithm = stg_Ymeans_timing - } - } - } - } - dir Residuals { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Q1 { - hist Residuals_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Residuals_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Residuals_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } +} + +############# +# Output +############# + +output top_level { + output MuonDetectors { + output STG { + output Shifter { + output Overview { + } + output Lumiblock { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } - } - } - } - } - dir Efficiency { - regex = 1 - dir (?P<occ_anysector>[AC][0-9]{2}) { - hist Efficiency_per_Radius_Layer[1-8] { - output = MuonDetectors/STG/Expert/Efficiency/${occ_anysector} - algorithm = stg_efficiency_bins_out_of_range - } - } - } - dir Charge { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Pad { - dir Q1 { - hist All_pad_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q1 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_pad_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q2 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_pad_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q3 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Strip { - dir Q1 { - hist All_strip_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q1 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_strip_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q2 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_strip_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q3 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Wire { - dir Q1 { - hist All_wire_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q1 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_wire_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q2 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_wire_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q3 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - } - } - } - } - } + } + output PadTrigger { + output Triggers { + output PhiIDvsRelBCID { + } + output BandIDvsRelBCID { + } + } + output Hits { + output PFEBvsRelBCID { + } + } + } + output Occupancy { + output Strip { + } + output Pad { + } + output Wire { + } + } + output Timing { + output Strip { + } + output Pad { + } + output Wire { + } + } + } + output Expert { + output Occupancy { + output Pad { + } + output Strip { + } + output Wire { + } + } + output PadTrigger { + output Triggers { + output OccupancyBandIDvsLB { + } + output OccupancyBandIDvsPhiId { + } + output RelBCIDvsLB { + } + } + output Hits { + output padTriggerOccupancy { + } + } + } + output Timing { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + output Residuals { + output ${sector} { + } + } + output Charge { + output ${sector} { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + } + output Efficiency { + output ${sector} { + } + } + } + } + } } - + ############# # Algorithms ############# @@ -648,6 +609,7 @@ algorithm stgc_Histogram_Not_Empty { } algorithm stgc_GatherData { + libname = libdqm_algorithms.so name = GatherData reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -686,7 +648,7 @@ algorithm stg_efficiency_bins_out_of_range { RANGE_D = 0.6 RANGE_U = 1.01 thresholds = range_thresholds_stgeff - reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_run.config index 440b026b7c3b7fbe0096d871f2c4c2688aeda386..290c87f306fd2aa91d132b28e64408619fe7ec42 100644 --- a/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/sTGC/heavyions_run.config @@ -2,641 +2,602 @@ # sTG ########################################################### -############# -# Output -############# - -output top_level { - output MuonDetectors { - output STG { - output Shifter { - output Overview { - } - output Lumiblock { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output PadTrigger { - output Triggers { - output PhiIDvsRelBCID { - } - output BandIDvsRelBCID { - } - } - output Hits { - output PFEBvsRelBCID { - } - } - } - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output Timing { - output Strip { - } - output Pad { - } - output Wire { - } - } - } - output Expert { - output Occupancy { - output Strip { - } - output Pad { - } - output Wire { - } - } - output PadTrigger { - output Triggers { - output OccupancyBandIDvsLB { - } - output OccupancyBandIDvsPhiId { - } - output RelBCIDvsLB { - } - } - output Hits { - output padTriggerOccupancy { - } - } - } - output Timing { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - output Residuals { - output Overview { - } - output ${occ_anysector} { - } - } - output Charge { - output ${occ_anysector} { - output Strip { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Pad { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - output Wire { - output Q1 { - } - output Q2 { - } - output Q3 { - } - } - } - } - output Efficiency { - output ${occ_anysector} { - } - } - } - } - } -} - ####################### # Histogram Assessments ####################### dir Muon { - - dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - - dir STG { - - dir Shifter { - dir Overview { - regex = 1 - hist Strip_cluster_size_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_size - display = LogZ,Draw=COLZ - } - hist Strip_cluster_timing_ontrk_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_Ymeans_timing - display = LogZ,Draw=COLZ - } - hist strip_efficiency_per_mm_squared_Wheel[AC]_layer[1-8] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_etaPhi { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_eta { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - hist padTrigger_Efficiency_per_phi_Side_[AC] { - output = MuonDetectors/STG/Shifter/Overview - algorithm = stg_efficiency_bins_out_of_range - } - } - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Pad - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Strip { - hist Strip_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Strip - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - dir Wire { - hist Wire_quad_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Occupancy/Wire - display = LogZ,Draw=COLZ - algorithm = Occupancy_Bins - } - } - } - dir PadTrigger { - dir Triggers { - hist OccupancySector_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideA_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeL { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_SideC_SizeS { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers - algorithm = stgc_Histogram_Not_Empty - } - dir PhiIDvsRelBCID { - regex = 1 - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_PhiID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - dir BandIDvsRelBCID { - regex = 1 - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist Trigger_BandID_vs_RelBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Hits { - dir PFEBvsRelBCID { - regex = 1 - hist pFEB_vs_relBCID_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - hist pFEB_vs_relBCID_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID - algorithm = stgc_Histogram_Not_Empty - } - } - hist OccupancypFEB_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - hist relBCID_vs_Sector { - output = MuonDetectors/STG/Shifter/PadTrigger/Hits - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Lumiblock { - regex = 1 - dir Pad { - hist Nhits_all_pad_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_pad_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_pad_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_pad_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Strip { - hist Nhits_all_strip_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_strip_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_strip_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 - algorithm = stgc_Histogram_Not_Empty + dir MuonRawDataMonitoring { + dir STG { + dir Shifter { + dir Overview { + regex = 1 + hist Strip_cluster_size_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_size + display = LogZ,Draw=COLZ + } + hist Strip_cluster_timing_ontrk_per_sector_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_Ymeans_timing + display = LogZ,Draw=COLZ + } + hist strip_efficiency_per_mm_squared_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_etaPhi { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + display = Draw=COLZ + } + hist padTrigger_Efficiency_per_eta { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + hist padTrigger_Efficiency_per_phi_.* { + output = MuonDetectors/STG/Shifter/Overview + algorithm = stg_efficiency_bins_out_of_range + } + } + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Pad + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Strip { + hist Strip_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Strip + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + dir Wire { + hist Wire_quad_occupancy_per_sector_.* { + output = MuonDetectors/STG/Shifter/Occupancy/Wire + display = LogZ,Draw=COLZ + algorithm = Occupancy_Bins + } + } + } + dir PadTrigger { + dir Triggers { + regex = 1 + hist OccupancySector_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist RelBCID_vs_LB { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers + algorithm = stgc_Histogram_Not_Empty + } + dir PhiIDvsRelBCID { + regex = 1 + hist Trigger_PhiID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/PhiIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + dir BandIDvsRelBCID { + regex = 1 + hist Trigger_BandID_vs_RelBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Triggers/BandIDvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Hits { + dir PFEBvsRelBCID { + regex = 1 + hist pFEB_vs_relBCID_.* { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits/PFEBvsRelBCID + algorithm = stgc_Histogram_Not_Empty + } + } + hist OccupancypFEB_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + hist relBCID_vs_Sector { + output = MuonDetectors/STG/Shifter/PadTrigger/Hits + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Lumiblock { + regex = 1 + dir Pad { + hist Nhits_all_pad_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_pad_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_pad_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_pad_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Pad/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Strip { + hist Nhits_all_strip_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_strip_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_strip_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_strip_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Wire { + hist Nhits_all_wire_in_sector_per_LB { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire + algorithm = stgc_Histogram_Not_Empty + } + dir Q1 { + hist Nhits_all_wire_in_sector_per_LB_in_Q1_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist Nhits_all_wire_in_sector_per_LB_in_Q2_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 + algorithm = stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Nhits_all_wire_in_sector_per_LB_in_Q3_.* { + output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + hist All_pad_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Pad + algorithm = stg_Ymeans_timing + } + } + dir Strip { + hist All_strip_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Strip + algorithm = stg_Ymeans_timing + } + } + dir Wire { + hist All_wire_timing_per_sector_.* { + output = MuonDetectors/STG/Shifter/Timing/Wire + algorithm = stg_Ymeans_timing + } + } + } + } + dir Expert { + dir Occupancy { + regex = 1 + dir Pad { + hist Pad_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Pad + algorithm = stgc_Histogram_Not_Empty + } + } + dir Strip { + hist Strip_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Strip + algorithm = stgc_Histogram_Not_Empty + } + } + dir Wire { + hist Wire_ch_occupancy_per_sector_.* { + output = MuonDetectors/STG/Expert/Occupancy/Wire + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir PadTrigger { + dir Hits { + regex = 1 + dir padTriggerOccupancy { + hist padEtaPhiOcc_[1-8][AC][LS] { + output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy + algorithm = stgc_Histogram_Not_Empty + } + } + } + dir Triggers { + regex = 1 + dir OccupancyBandIDvsLB { + hist OccupancyBandId_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + dir OccupancyBandIDvsPhiId { + hist bandIds_vs_phiIds_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId + algorithm = stgc_Histogram_Not_Empty + } + } + dir RelBCIDvsLB { + hist RelBCID_vs_LB_.* { + output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB + algorithm = stgc_Histogram_Not_Empty + } + } + } + } + dir Timing { + regex = 1 + dir Pad { + dir Q1 { + hist All_pad_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_pad_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_pad_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Pad/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Strip { + dir Q1 { + hist All_strip_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_strip_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_strip_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Strip/Q3 + algorithm = stg_Ymeans_timing + } + } + } + dir Wire { + dir Q1 { + hist All_wire_timing_in_Q1_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q1 + algorithm = stg_Ymeans_timing + } + } + dir Q2 { + hist All_wire_timing_in_Q2_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q2 + algorithm = stg_Ymeans_timing + } + } + dir Q3 { + hist All_wire_timing_in_Q3_.* { + output = MuonDetectors/STG/Expert/Timing/Wire/Q3 + algorithm = stg_Ymeans_timing + } + } + } + } + dir Residuals { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Q1 { + hist Residuals_in_Q1_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist Residuals_in_Q3_.* { + output = MuonDetectors/STG/Expert/Residuals/${sector} + display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") + algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } + } + } + } + dir Efficiency { + regex = 1 + dir (?P<sector>[AC][0-9]{2}) { + hist Efficiency_per_Radius_.* { + output = MuonDetectors/STG/Expert/Efficiency/${sector} + algorithm = stg_efficiency_bins_out_of_range + } + } + } + dir Charge { + regex = 1 + algorithm = stgc_Histogram_Not_Empty + dir (?P<sector>[AC][0-9]{2}) { + dir Pad { + dir Q1 { + hist All_pad_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q1 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_pad_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q2 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_pad_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Pad/Q3 + display = Draw=e1,StatBox + algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Strip { + dir Q1 { + hist All_strip_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q1 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_strip_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q2 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_strip_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Strip/Q3 + display = Draw=e1,StatBox + algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + dir Wire { + dir Q1 { + hist All_wire_charge_in_Q1_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q1 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q2 { + hist All_wire_charge_in_Q2_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q2 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + dir Q3 { + hist All_wire_charge_in_Q3_.* { + output = MuonDetectors/STG/Expert/Charge/${sector}/Wire/Q3 + display = Draw=e1,StatBox + algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty + } + } + } + } + } } - } - dir Q3 { - hist Nhits_all_strip_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Strip/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Wire { - hist Nhits_all_wire_in_sector_per_LB { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire - algorithm = stgc_Histogram_Not_Empty - } - dir Q1 { - hist Nhits_all_wire_in_sector_per_LB_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q1 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Nhits_all_wire_in_sector_per_LB_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q2 - algorithm = stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Nhits_all_wire_in_sector_per_LB_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Lumiblock/Wire/Q3 - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - hist All_pad_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Pad - algorithm = stg_Ymeans_timing - } - } - dir Strip { - hist All_strip_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Strip - algorithm = stg_Ymeans_timing - } - } - dir Wire { - hist All_wire_timing_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Shifter/Timing/Wire - algorithm = stg_Ymeans_timing - } - } - } } - dir Expert { - dir Occupancy { - regex = 1 - dir Pad { - hist Pad_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Pad - algorithm = stgc_Histogram_Not_Empty - } - } - dir Strip { - hist Strip_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Strip - algorithm = stgc_Histogram_Not_Empty - } - } - dir Wire { - hist Wire_ch_occupancy_per_sector_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Occupancy/Wire - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir PadTrigger { - dir Hits { - regex = 1 - dir padTriggerOccupancy { - hist padEtaPhiOcc_[1-8][AC][LS] { - output = MuonDetectors/STG/Expert/PadTrigger/Hits/padTriggerOccupancy - algorithm = stgc_Histogram_Not_Empty - } - } - } - dir Triggers { - regex = 1 - dir OccupancyBandIDvsLB { - hist OccupancyBandId_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist OccupancyBandId_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - dir OccupancyBandIDvsPhiId { - hist bandIds_vs_phiIds_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - hist bandIds_vs_phiIds_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/OccupancyBandIDvsPhiId - algorithm = stgc_Histogram_Not_Empty - } - } - dir RelBCIDvsLB { - hist RelBCID_vs_LB_Side[AC]_Sector[123456789] { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - hist RelBCID_vs_LB_Side[AC]_Sector[0-9]{2} { - output = MuonDetectors/STG/Expert/PadTrigger/Triggers/RelBCIDvsLB - algorithm = stgc_Histogram_Not_Empty - } - } - } - } - dir Timing { - regex = 1 - dir Pad { - dir Q1 { - hist All_pad_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_pad_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_pad_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Pad/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Strip { - dir Q1 { - hist All_strip_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_strip_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_strip_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Strip/Q3 - algorithm = stg_Ymeans_timing - } - } - } - dir Wire { - dir Q1 { - hist All_wire_timing_in_Q1_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q1 - algorithm = stg_Ymeans_timing - } - } - dir Q2 { - hist All_wire_timing_in_Q2_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q2 - algorithm = stg_Ymeans_timing - } - } - dir Q3 { - hist All_wire_timing_in_Q3_Layer*[12345678] { - output = MuonDetectors/STG/Expert/Timing/Wire/Q3 - algorithm = stg_Ymeans_timing - } - } - } - } - dir Residuals { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Q1 { - hist Residuals_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist Residuals_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist Residuals_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Residuals/${occ_anysector} - display = Draw=E1,gauspluspol1(-2,2),AxisRange(-2,2,"X") - algorithm = stg_gaus_Fit&stgc_Histogram_Not_Empty + } +} + +############# +# Output +############# + +output top_level { + output MuonDetectors { + output STG { + output Shifter { + output Overview { + } + output Lumiblock { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } - } - } - } - } - dir Efficiency { - regex = 1 - dir (?P<occ_anysector>[AC][0-9]{2}) { - hist Efficiency_per_Radius_Layer[1-8] { - output = MuonDetectors/STG/Expert/Efficiency/${occ_anysector} - algorithm = stg_efficiency_bins_out_of_range - } - } - } - dir Charge { - regex = 1 - algorithm = stgc_Histogram_Not_Empty - dir (?P<occ_anysector>[AC][0-9]{2}) { - dir Pad { - dir Q1 { - hist All_pad_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q1 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_pad_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q2 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_pad_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Pad/Q3 - display = Draw=e1,StatBox - algorithm = stg_pad_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Strip { - dir Q1 { - hist All_strip_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q1 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_strip_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q2 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_strip_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Strip/Q3 - display = Draw=e1,StatBox - algorithm = stg_strip_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - dir Wire { - dir Q1 { - hist All_wire_charge_in_Q1_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q1 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q2 { - hist All_wire_charge_in_Q2_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q2 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - dir Q3 { - hist All_wire_charge_in_Q3_Layer[1-8] { - output = MuonDetectors/STG/Expert/Charge/${occ_anysector}/Wire/Q3 - display = Draw=e1,StatBox - algorithm = stg_wire_landau_Fit&stgc_Histogram_Not_Empty - } - } - } - } - } - } - } - } + } + output PadTrigger { + output Triggers { + output PhiIDvsRelBCID { + } + output BandIDvsRelBCID { + } + } + output Hits { + output PFEBvsRelBCID { + } + } + } + output Occupancy { + output Strip { + } + output Pad { + } + output Wire { + } + } + output Timing { + output Strip { + } + output Pad { + } + output Wire { + } + } + } + output Expert { + output Occupancy { + output Pad { + } + output Strip { + } + output Wire { + } + } + output PadTrigger { + output Triggers { + output OccupancyBandIDvsLB { + } + output OccupancyBandIDvsPhiId { + } + output RelBCIDvsLB { + } + } + output Hits { + output padTriggerOccupancy { + } + } + } + output Timing { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + output Residuals { + output ${sector} { + } + } + output Charge { + output ${sector} { + output Pad { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Strip { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + output Wire { + output Q1 { + } + output Q2 { + } + output Q3 { + } + } + } + } + output Efficiency { + output ${sector} { + } + } + } + } + } } - + ############# # Algorithms ############# @@ -648,6 +609,7 @@ algorithm stgc_Histogram_Not_Empty { } algorithm stgc_GatherData { + libname = libdqm_algorithms.so name = GatherData reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -686,7 +648,7 @@ algorithm stg_efficiency_bins_out_of_range { RANGE_D = 0.6 RANGE_U = 1.01 thresholds = range_thresholds_stgeff - reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/MDTTDCOfflineSpectrum.h b/DataQuality/dqm_algorithms/dqm_algorithms/MDTTDCOfflineSpectrum.h index b5329f8f9f8f4e69665ec3e66379c0e38f03250a..1ef4f4aaeb14b17f6b7cf73ef0529fa654fe75cc 100644 --- a/DataQuality/dqm_algorithms/dqm_algorithms/MDTTDCOfflineSpectrum.h +++ b/DataQuality/dqm_algorithms/dqm_algorithms/MDTTDCOfflineSpectrum.h @@ -12,6 +12,8 @@ #include <dqm_core/Algorithm.h> #include <string> #include <iosfwd> +#include <TH1.h> + namespace dqm_algorithms { @@ -24,6 +26,7 @@ namespace dqm_algorithms dqm_core::Result * execute( const std::string & , const TObject & , const dqm_core::AlgorithmConfig & ); using dqm_core::Algorithm::printDescription; void printDescription(std::ostream& out); + void MDTFitTDC(TH1* h, double &t0, double &t0err, double &tmax, double &tmaxerr); private: std::string m_name; diff --git a/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx b/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx index 68da4f2681d1d88b5eced82c6a4ec07ceb302186..10ea95142d14a9fa4bd5c6537afb9901787f97a5 100644 --- a/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx +++ b/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx @@ -6,7 +6,6 @@ #include <dqm_core/AlgorithmConfig.h> #include <dqm_algorithms/MDTTDCOfflineSpectrum.h> #include <dqm_algorithms/tools/AlgorithmHelper.h> -#include <TH1.h> #include <TF1.h> #include <TClass.h> #include <ers/ers.h> @@ -39,23 +38,18 @@ dqm_core::Result * dqm_algorithms::MDTTDCOfflineSpectrum::execute( const std::string & name, const TObject & object, const dqm_core::AlgorithmConfig & config ) -{ - const TH1 * histogram; - - if( object.IsA()->InheritsFrom( "TH1" ) ) { - histogram = static_cast<const TH1*>(&object); - if (histogram->GetDimension() > 2 ){ - throw dqm_core::BadConfig( ERS_HERE, name, "dimension > 2 " ); - } - } else { - throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TH1" ); +{ + + + if (!object.IsA()->InheritsFrom("TH1")) { + throw dqm_core::BadConfig(ERS_HERE, name, "does not inherit from TH1"); + } + std::unique_ptr<TH1> histogram(static_cast<TH1 *>(object.Clone())); // we just checked that this is really a TH1, so we can safely type-cast the pointer + if (histogram->GetDimension() > 2) { + throw dqm_core::BadConfig(ERS_HERE, name, "dimension > 2"); } const double minstat = dqm_algorithms::tools::GetFirstFromMap( "MinStat", config.getParameters(), -1); - /* - const bool publish = (bool) dqm_algorithms::tools::GetFirstFromMap( "PublishBins", config.getParameters(), 0); - const int maxpublish = (int) dqm_algorithms::tools::GetFirstFromMap( "MaxPublish", config.getParameters(), 20); - */ if (histogram->GetEntries() < minstat ) { dqm_core::Result *result = new dqm_core::Result(dqm_core::Result::Undefined); @@ -85,24 +79,38 @@ dqm_algorithms::MDTTDCOfflineSpectrum::execute( const std::string & name, throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex ); } - std::vector<int> range=dqm_algorithms::tools::GetBinRange(histogram, config.getParameters()); + dqm_core::Result* result = new dqm_core::Result(); - + + double t0; + double tmax; + double tdrift; + double t0Err; + double tmaxErr; + TF1* t0Fit = histogram->GetFunction("func1"); TF1* tmaxFit = histogram->GetFunction("func2"); - if(!t0Fit || !tmaxFit) throw dqm_core::BadConfig( ERS_HERE, name, "TH1 has no TF1" ); - double t0 = t0Fit->GetParameter(1); - double tmax = tmaxFit->GetParameter(1); - double tdrift = tmax - t0; - double t0Err = t0Fit->GetParameter(2); - double tmaxErr = tmaxFit->GetParameter(2); + + if(!t0Fit || !tmaxFit){ + MDTFitTDC(histogram.get(), t0, t0Err, tmax, tmaxErr); + t0Fit = histogram->GetFunction("func1"); + tmaxFit = histogram->GetFunction("func2"); + tdrift = tmax - t0; + if(!t0Fit || !tmaxFit) throw dqm_core::BadConfig( ERS_HERE, name, "TH1 has no TF1" ); + }else{ + t0 = t0Fit->GetParameter(1); + tmax = tmaxFit->GetParameter(1); + tdrift = tmax - t0; + t0Err = t0Fit->GetParameter(2); + tmaxErr = tmaxFit->GetParameter(2); + } ERS_DEBUG(1, m_name << " TDrift " << " is " << tdrift ); ERS_DEBUG(1,"Green threshold: "<< t0_low_warning << " < t0 < "<< t0_high_warning << " && " << tmax_low_warning <<" < tmax < " << tmax_high_warning << - " ; Red threshold : t0 < " << t0_low_error << "\n" << - "t0 > " << t0_high_error << "\n" << - "tmax > " << tmax_high_error << "\n" << - "tmax < " << tmax_low_error + " ; Red threshold : t0 < " << t0_low_error << "\n" << + "t0 > " << t0_high_error << "\n" << + "tmax > " << tmax_high_error << "\n" << + "tmax < " << tmax_low_error ); std::map<std::string,double> tags; @@ -167,3 +175,45 @@ dqm_algorithms::MDTTDCOfflineSpectrum::printDescription(std::ostream& out) } +void dqm_algorithms::MDTTDCOfflineSpectrum::MDTFitTDC(TH1* h, double &t0, double &t0err, double &tmax, double &tmaxerr) +{ + t0 = tmax = 0; + t0err = tmaxerr = 0; + double up = h->GetBinCenter(h->GetMaximumBin()+1); + if( up > 200 ) up = 200; + double down = up + 650; + if( up < 50 ) up = 50; + double parESD0 = h->GetBinContent(h->GetMinimumBin()); + double parESD1 = up; + double parESD2 = 20; + double parESD3 = h->GetBinContent(h->GetMaximumBin()) - h->GetBinContent(h->GetMinimumBin()); + std::unique_ptr<TF1> func1 = std::make_unique<TF1>("func1", "[0]+([3]/(1+(TMath::Exp((-x+[1])/[2]))))", 0, up); // tzero + func1->SetParameters(parESD0, parESD1, parESD2, parESD3); + if(h->GetEntries()>100){ + h->Fit("func1","RQ"); + t0 = func1->GetParameter(1) ; + t0err = func1->GetParError(1); + double binAtT0 = (double)h->GetBinContent(h->FindBin(t0)); + if(binAtT0<1) binAtT0 = 1; + t0err += 10.0 * func1->GetChisquare() / (0.01*binAtT0*binAtT0*(double)func1->GetNumberFitPoints()); // to additionally account for bad fits + } + + parESD0 = h->GetBinContent(h->GetMinimumBin()); + parESD1 = down; + parESD2 = 50; + parESD3 = (h->GetBinContent(h->GetMaximumBin())-h->GetBinContent(h->GetMinimumBin()))/10.; + std::unique_ptr<TF1> func2 = std::make_unique<TF1>("func2", "[0]+([3]/(1+(TMath::Exp((x-[1])/[2]))))", down-135, down+135); // tmax + func2->SetParameters(parESD0,parESD1,parESD2,parESD3); + if(h->GetEntries()>100){ + func2->SetParLimits(0, parESD0, 2.0*parESD0+1); + func2->SetParLimits(2, 5, 90); + func2->SetParLimits(3, 0.2*parESD3, 7*parESD3); + h->Fit("func2","WWRQ+"); + tmax = func2->GetParameter(1); + tmaxerr = func2->GetParError(1); + double binAtTmax = (double)h->GetBinContent(h->FindBin(tmax)); + if(binAtTmax<1) binAtTmax = 1; + tmaxerr += 10.0 * func2->GetChisquare() / (0.01*binAtTmax*binAtTmax*(double)func2->GetNumberFitPoints()); // to additionally account for bad fits + } + +} diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/Root/RPDDataAnalyzer.cxx b/ForwardDetectors/ZDC/ZdcAnalysis/Root/RPDDataAnalyzer.cxx index 7f04f0fb957cdcbac4469f2d69bfb0d1d4c6b7e9..f9c3ae87eea676ac9040fd1692bb3b1506c6938a 100644 --- a/ForwardDetectors/ZDC/ZdcAnalysis/Root/RPDDataAnalyzer.cxx +++ b/ForwardDetectors/ZDC/ZdcAnalysis/Root/RPDDataAnalyzer.cxx @@ -3,6 +3,7 @@ #include "TLinearFitter.h" #include "TMath.h" #include <limits> +#include <set> const auto zeroVector = [](std::vector<float>& v){ v.assign(v.size(), 0); }; const auto zeroVectorVector = [](std::vector<std::vector<float>>& vv){ for (std::vector<float>& v : vv) v.assign(v.size(), 0); }; @@ -193,14 +194,12 @@ float RPDDataAnalyzer::calculateBaselineSamplesMSE(unsigned int channel, std::fu * Perform an exponential fit in baseline-subtracted baseline samples and set relevant status bits. * Returns true if the fit and subtraction are good, false if there was a problem. */ -bool RPDDataAnalyzer::doPileupExpFit(unsigned int channel) +bool RPDDataAnalyzer::doPileupExpFit(unsigned int channel, std::vector<std::pair<unsigned int, float>> const& pileupFitPoints) { TLinearFitter fitter(1, "1 ++ x"); - double x, y; - for (unsigned int sample = 0; sample < m_nBaselineSamples; sample++) { + double x; + for (auto const& [sample, y] : pileupFitPoints) { x = sample; - y = m_chFadcData.at(channel).at(sample) - m_chBaseline.at(channel); - if (y <= 0) continue; fitter.AddPoint(&x, std::log(y)); } if (fitter.Eval()) { @@ -226,14 +225,12 @@ bool RPDDataAnalyzer::doPileupExpFit(unsigned int channel) * Perform a stretched exponential fit in baseline-subtracted baseline samples and set relevant status bits. * Returns true if the fit and subtraction are good, false if there was a problem. */ -bool RPDDataAnalyzer::doPileupStretchedExpFit(unsigned int channel) +bool RPDDataAnalyzer::doPileupStretchedExpFit(unsigned int channel, std::vector<std::pair<unsigned int, float>> const& pileupFitPoints) { TLinearFitter fitter(1, "1 ++ (x + 4)**(0.5) ++ (x + 4)**(-0.5)"); - double x, y; - for (unsigned int sample = 0; sample < m_nBaselineSamples; sample++) { + double x; + for (auto const& [sample, y] : pileupFitPoints) { x = sample; - y = m_chFadcData.at(channel).at(sample) - m_chBaseline.at(channel); - if (y <= 0) continue; fitter.AddPoint(&x, std::log(y)); } if (fitter.Eval()) { @@ -282,11 +279,19 @@ bool RPDDataAnalyzer::doBaselinePileupSubtraction(unsigned int channel) { float const& calibFactor = m_calibFactors.at(channel); float baselineSum = 0; - unsigned int nFitPoints = 0; + /** points (sample, baseline-subtracted ADC) with ADC above baseline, to be used in fit in case of pileup */ + std::vector<std::pair<unsigned int, float>> pileupFitPoints; + /** set of (unique) ADC values in baseline samples above nominal baseline */ + std::set<float> uniqueBaselineValues; for (unsigned int sample = 0; sample < m_nBaselineSamples; sample++) { - float &adc = m_chFadcData.at(channel).at(sample); + float const& adc = m_chFadcData.at(channel).at(sample); baselineSum += adc; - if (adc - m_nominalBaseline > 0) nFitPoints++; + float const adcBaselineSubtr = adc - m_nominalBaseline; + if (adcBaselineSubtr > 0) { + // this sample is a candidate for pileup fit + pileupFitPoints.push_back({sample, adcBaselineSubtr}); + uniqueBaselineValues.insert(adc); + } } float baselineStdDev = TMath::RMS(m_chFadcData.at(channel).begin(), std::next(m_chFadcData.at(channel).begin(), m_nBaselineSamples)); @@ -307,7 +312,7 @@ bool RPDDataAnalyzer::doBaselinePileupSubtraction(unsigned int channel) { // we suspect that there is pileup - use nominal baseline m_chBaseline.at(channel) = m_nominalBaseline; - if (nFitPoints < 2) { + if (pileupFitPoints.size() < s_minPileupFitPoints || uniqueBaselineValues.size() < s_minUniquePileupFitPoints) { m_chStatus.at(channel).set(InsufficientPileupFitPointsBit, true); // there are not enough points to do fit, so just use nominal baseline and call it a day for (unsigned int sample = 0; sample < m_nSamples; sample++) { @@ -319,8 +324,8 @@ bool RPDDataAnalyzer::doBaselinePileupSubtraction(unsigned int channel) { // there is OOT pileup in this channel => expect approx. negative exponential in baseline samples m_chStatus.at(channel).set(OutOfTimePileupBit, true); // fit (approximately) to exponential and stretched exponential in baseline samples - bool expFitSuccess = doPileupExpFit(channel); - bool stretchedExpFitSuccess = doPileupStretchedExpFit(channel); + bool expFitSuccess = doPileupExpFit(channel, pileupFitPoints); + bool stretchedExpFitSuccess = doPileupStretchedExpFit(channel, pileupFitPoints); if (stretchedExpFitSuccess) { // calculate fadc data with baseline and pileup contribution subtracted diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/Root/RpdSubtractCentroidTool.cxx b/ForwardDetectors/ZDC/ZdcAnalysis/Root/RpdSubtractCentroidTool.cxx index f895e235fa91941233cb71a69bc43c7634a6b4d6..194be38e019fcff199dd1fd15191ab5b82db2b52 100644 --- a/ForwardDetectors/ZDC/ZdcAnalysis/Root/RpdSubtractCentroidTool.cxx +++ b/ForwardDetectors/ZDC/ZdcAnalysis/Root/RpdSubtractCentroidTool.cxx @@ -404,7 +404,7 @@ void RpdSubtractCentroidTool::writeAOD(xAOD::ZdcModuleContainer const& moduleSum ATH_MSG_DEBUG("Adding variables with suffix=" + m_auxSuffix); // initialize write handles from write handle keys - SG::WriteDecorHandle<xAOD::ZdcModuleContainer, bool> centroidEventValidHandle(m_centroidEventValidKey); + SG::WriteDecorHandle<xAOD::ZdcModuleContainer, char> centroidEventValidHandle(m_centroidEventValidKey); SG::WriteDecorHandle<xAOD::ZdcModuleContainer, unsigned int> centroidStatusHandle(m_centroidStatusKey); SG::WriteDecorHandle<xAOD::ZdcModuleContainer, std::vector<float>> rpdChannelSubtrAmpHandle(m_RPDChannelSubtrAmpKey); SG::WriteDecorHandle<xAOD::ZdcModuleContainer, float> rpdSubtrAmpSumHandle(m_RPDSubtrAmpSumKey); @@ -427,6 +427,7 @@ void RpdSubtractCentroidTool::writeAOD(xAOD::ZdcModuleContainer const& moduleSum side = 1; } else { // global sum container + // event status is bool, but stored as char to save disk space centroidEventValidHandle(*zdcSum) = m_eventStatus; cosDeltaReactionPlaneAngleHandle(*zdcSum) = m_cosDeltaReactionPlaneAngle; continue; diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/RPDDataAnalyzer.h b/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/RPDDataAnalyzer.h index 3eb6c11db2444474d7282be5754600c46e5ac9c6..9f58161fbdef52eb34c4c96372c0f993ab216e3f 100644 --- a/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/RPDDataAnalyzer.h +++ b/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/RPDDataAnalyzer.h @@ -89,8 +89,8 @@ class RPDDataAnalyzer void setSideStatusBits(); - bool doPileupExpFit(unsigned int channel); - bool doPileupStretchedExpFit(unsigned int channel); + bool doPileupExpFit(unsigned int channel, std::vector<std::pair<unsigned int, float>> const& pileupFitPoints); + bool doPileupStretchedExpFit(unsigned int channel, std::vector<std::pair<unsigned int, float>> const& pileupFitPoints); float calculateBaselineSamplesMSE(unsigned int channel, std::function<float(unsigned int)> const& fit) const; ZDCMsg::MessageFunctionPtr m_msgFunc_p; @@ -133,5 +133,18 @@ class RPDDataAnalyzer std::vector<float> m_ch2ndOrderStretchedExpPileupMSE; /** mean squared error of pileup stretched exponential fit in baseline samples (if pileup was detected and fit did not fail); per channel */ std::vector<std::bitset<32>> m_chStatus; /** status bits per channel */ std::bitset<32> m_sideStatus; /** status bits for side */ + + /** + * in the case of pileup, the number of points (above baseline) in baseline samples required to perform fit. + * if insufficient points, set InsufficientPileupFitPointsBit and abort pileup subtraction + */ + static unsigned int constexpr s_minPileupFitPoints = 3; + /** + * in the case of pileup, the number of UNIQUE points (above baseline) in baseline samples required to perform fit. + * this number must be at least the number of parameters in pileup fits, else inversion of Gram matrix in TLinearFitter + * will fail and generate ROOT error that propagates to Athena. + * if insufficient points, set InsufficientPileupFitPointsBit and abort pileup subtraction. + */ + static unsigned int constexpr s_minUniquePileupFitPoints = 3; }; #endif diff --git a/ForwardDetectors/ZDC/ZdcNtuple/Root/ZdcNtuple.cxx b/ForwardDetectors/ZDC/ZdcNtuple/Root/ZdcNtuple.cxx index 0c06716a2208aa1bf17177205b2421e058607073..040c8dea3dfada6429edc84efde632eaa0a6c3ae 100644 --- a/ForwardDetectors/ZDC/ZdcNtuple/Root/ZdcNtuple.cxx +++ b/ForwardDetectors/ZDC/ZdcNtuple/Root/ZdcNtuple.cxx @@ -219,7 +219,7 @@ StatusCode ZdcNtuple :: initialize () } if (enableCentroid) { - m_outputTree->Branch("zdc_centroidEventValid", &t_centroidEventValid, "zdc_centroidEventValid/b"); + m_outputTree->Branch("zdc_centroidEventValid", &t_centroidEventValid, "zdc_centroidEventValid/B"); m_outputTree->Branch("zdc_centroidStatus", &t_centroidStatus, "zdc_centroidStatus[2]/i"); m_outputTree->Branch("zdc_RPDChannelSubtrAmp", &t_RPDChannelSubtrAmp, "zdc_RPDChannelSubtrAmp[2][16]/F"); m_outputTree->Branch("zdc_RPDSubtrAmpSum", &t_RPDSubtrAmpSum, "zdc_RPDSubtrAmpSum[2]/F"); @@ -710,7 +710,7 @@ void ZdcNtuple::processZdcNtupleFromModules() { if (zdcSum->zdcSide()==0) { // new global sum - t_centroidEventValid = zdcSum->auxdataConst<bool>("centroidEventValid" + auxSuffix); + t_centroidEventValid = zdcSum->auxdataConst<char>("centroidEventValid" + auxSuffix); t_cosDeltaReactionPlaneAngle = zdcSum->auxdataConst<float>("cosDeltaReactionPlaneAngle" + auxSuffix); continue; } diff --git a/ForwardDetectors/ZDC/ZdcNtuple/ZdcNtuple/ZdcNtuple.h b/ForwardDetectors/ZDC/ZdcNtuple/ZdcNtuple/ZdcNtuple.h index 8aa360e4f876d08d45394f3f220d35d519af65c0..260c7cfbabbd8fa4e29c71e4e09fb4de5892b0cb 100644 --- a/ForwardDetectors/ZDC/ZdcNtuple/ZdcNtuple/ZdcNtuple.h +++ b/ForwardDetectors/ZDC/ZdcNtuple/ZdcNtuple/ZdcNtuple.h @@ -234,7 +234,7 @@ public: unsigned int t_RpdSideStatus[2]; unsigned int t_RpdModuleTruthNphotons[2][16]; - bool t_centroidEventValid; + char t_centroidEventValid; unsigned int t_centroidStatus[2]; float t_RPDChannelSubtrAmp[2][16]; float t_RPDSubtrAmpSum[2]; diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonGenericTracksAlgCfg.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonGenericTracksAlgCfg.py index dd75807eb255cef05cce1e6c54dd7e81d9cca6ee..18449f1cbd5362715dfb4bdf603a72c831a9623c 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonGenericTracksAlgCfg.py +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonGenericTracksAlgCfg.py @@ -67,13 +67,12 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=101, xmin=-0.5, xmax= 100.5) varName = 'm_lb_event;LumiBlock' - title = 'Events per Lumiblock;Lumiblock;Events' + title = 'Lumiblock of the events;Lumiblock;Events' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=1024, xmin=-0.5, xmax=1023.5) - ## Plots per lumiblock - + # Plots per lumiblock varName = 'm_lb_track;NTracksPerLumiBlock' - title = 'Tracks per LumiBlock;Lumiblock;Tracks' + title = 'Tracks Per LumiBlock;Lumiblock;Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=1024, xmin=-0.5, xmax=1023.5) varName = 'm_lb_pixhits;NPixPerLumiBlock' @@ -88,7 +87,6 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): title = 'TRT Hits per LumiBlock;Lumiblock;TRT Hits' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=1024, xmin=-0.5, xmax=1023.5) - # Start loop on tracks ## Hits per track varName = 'm_nhits_per_track;Nhits_per_track' @@ -104,11 +102,11 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_rangePixHits+1, xmin=-0.5, xmax=m_rangePixHits +0.5) varName = 'm_npixelhits_per_track_eca;Npixhits_per_track_eca' - title = 'Number of PIXEL hits per track (ECA);Pixel hits in EndCap A;Tracks' + title = 'Number of PIXEL (PIX+IBL) hits per track (ECA);Pixel hits in EndCap A;Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_rangePixHits+1, xmin=-0.5, xmax=m_rangePixHits +0.5) varName = 'm_npixelhits_per_track_ecc;Npixhits_per_track_ecc' - title = 'Number of PIXEL hits per track (ECC);Pixel hits in EndCap C;Tracks' + title = 'Number of PIXEL (PIX+IBL) hits per track (ECC);Pixel hits in EndCap C;Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_rangePixHits+1, xmin=-0.5, xmax=m_rangePixHits +0.5) varName = 'm_nscthits_per_track;Nscthits_per_track' @@ -144,15 +142,15 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_rangeTRTHits+1, xmin=-0.5, xmax=m_rangeTRTHits +0.5) varName = 'm_eta_2fillpix,m_npixelhits_per_track_2filleta;Npixhits_vs_eta' - title = "Number of Pixel hits vs track #eta;Track #eta;Pixel hits (PIX+IBL)" + title = "Number of Pixel hits vs track #eta; Track #eta;Pixel hits (PIX+IBL)" genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_etaBins, xmin=-m_etaRange, xmax=m_etaRange, ybins=m_rangePixHits+1, ymin=-0.5, ymax=m_rangePixHits +0.5) varName = 'm_eta_2fillsct,m_nscthits_per_track_2filleta;Nscthits_vs_eta' - title = "Number of SCT hits vs track #eta;Track #eta;SCT hits" + title = "Number of SCT hits vs track #eta; Track #eta;SCT hits" genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_etaBins, xmin=-m_etaRange, xmax=m_etaRange, ybins=m_rangeSCTHits+1, ymin=-0.5, ymax=m_rangeSCTHits +0.5) varName = 'm_eta_2filltrt,m_ntrthits_per_track_2filleta;Ntrthits_vs_eta' - title = "Number of TRT hits vs track #eta;Track #eta;TRT hits" + title = "Number of TRT hits vs track #eta; Track #eta;TRT hits" genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_etaBins, xmin=-m_etaRange, xmax=m_etaRange, ybins=m_rangeTRTHits+1, ymin=-0.5, ymax=m_rangeTRTHits +0.5) varName = 'm_chi2oDoF;chi2oDoF' @@ -161,7 +159,7 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): ## Track params varName = 'm_eta;eta' - title = 'Track #eta;Track #eta;Tracks' + title = 'eta;Track #eta;Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_etaBins, xmin=-m_etaRange, xmax=m_etaRange) varName = 'm_errEta;err_Eta' @@ -185,15 +183,15 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=50, xmin=0, xmax= 0.002) varName = 'm_z0;z0_origin' - title = 'z_{0} (computed vs origin);z_{0} (origin) [mm];Tracks' + title = 'z_{0} (computed vs origin); z_{0} (origin) [mm];Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_d0BsNbins, xmin=-m_z0Range, xmax=m_z0Range) varName = 'm_errZ0;err_z0' title = 'z_{0} error; z_{0} error [mm];Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=50, xmin=0, xmax=0.3) - varName = 'm_z0_bscorr;z0_bscorr' - title = 'z_{0} (corrected for beamspot);z_{0} (BS) [mm];Tracks' + varName = 'm_z0_bscorr;z0' + title = 'z_{0} (corrected for beamspot);z_{0} (BS) [mm]; Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_d0BsNbins, xmin=-m_z0Range, xmax=m_z0Range) varName = 'm_z0sintheta;z0sintheta' @@ -205,11 +203,11 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_d0BsNbins, xmin=-m_d0Range, xmax=m_d0Range) varName = 'm_errD0;errD0' - title = 'd_{0} error;d_{0} error [mm];Tracks' + title = 'd_{0} error;d_{0} error [mm]; Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=60, xmin=0, xmax=0.05) varName = 'm_d0_bscorr;d0_bscorr' - title = 'd_{0} (corrected for beamspot);d_{0} (BS) [mm];Tracks' + title = 'd_{0} (corrected for beamspot);d_{0} (BS) [mm]; Tracks' genericTrackGroup.defineHistogram(varName, type='TH1F', path=pathtrack, title=title, xbins=m_d0BsNbins, xmin=-m_d0BsRange, xmax=m_d0BsRange) varName = 'm_pT;pT' @@ -244,19 +242,19 @@ def IDAlignMonGenericTracksAlgCfg(helper, alg, **kwargs): title = 'd_{0} (BS) Vs p_{T};Signed track p_{T} [GeV];d_{0} (BS) [mm]' genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=200, xmin=-m_pTRange, xmax=m_pTRange, ybins=m_d0BsNbins, ymin=-m_d0BsRange, ymax=m_d0BsRange) - varName = 'm_phi_2filld0bscorr,m_d0_bscorr_2fillphi;D0bsVsPhi0' + varName = 'm_phi_2filld0bscorr,m_d0_bscorr_2fillphi;D0VsPhi0' title = 'd_{0} (BS) Vs #phi_{0};Track #phi_{0} [rad];d_{0} (BS) [mm]' genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_phiBins, xmin=0, xmax= 2 * M_PI, ybins=m_d0BsNbins, ymin=-m_d0BsRange, ymax=m_d0BsRange) - varName = 'm_phi_2filld0bscorrBAR,m_d0_bscorrBAR;D0bsVsPhi0_Barrel' + varName = 'm_phi_2filld0bscorrBAR,m_d0_bscorrBAR;D0VsPhi0_Barrel' title = 'd_{0} (BS) Vs #phi_{0} (Barrel);Track #phi_{0} [rad];d_{0} (BS) [mm]' genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_phiBins, xmin=0, xmax= 2 * M_PI, ybins=m_d0BsNbins, ymin=-m_d0BsRange, ymax=m_d0BsRange) - varName = 'm_phi_2filld0bscorrECA,m_d0_bscorrECA;D0bsVsPhi0_ECA' + varName = 'm_phi_2filld0bscorrECA,m_d0_bscorrECA;D0VsPhi0_ECA' title = 'd_{0} (BS) Vs #phi_{0} (ECA);Track #phi_{0} [rad];d_{0} (BS) [mm]' genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_phiBins, xmin=0, xmax= 2 * M_PI, ybins=m_d0BsNbins, ymin=-m_d0BsRange, ymax=m_d0BsRange) - varName = 'm_phi_2filld0bscorrECC,m_d0_bscorrECC;D0bsVsPhi0_ECC' + varName = 'm_phi_2filld0bscorrECC,m_d0_bscorrECC;D0VsPhi0_ECC' title = 'd_{0} (BS) Vs #phi_{0} (ECC);Track #phi_{0} [rad];d_{0} (BS) [mm]' genericTrackGroup.defineHistogram(varName, type='TH2F', path=pathtrack, title=title, xbins=m_phiBins, xmin=0, xmax= 2 * M_PI, ybins=m_d0BsNbins, ymin=-m_d0BsRange, ymax=m_d0BsRange) diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonResidualsAlgCfg.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonResidualsAlgCfg.py index f2fdc65decc87454ebe3f5da2b73d30a9408fbe8..54895ffb6fc516c1b85d32a0be9492ff98010807 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonResidualsAlgCfg.py +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/python/IDAlignMonResidualsAlgCfg.py @@ -298,6 +298,16 @@ def IDAlignMonResidualsAlgCfg(helper, alg, **kwargs): tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 * m_FinerBinningFactor, xmin = m_minSiResFillRange, xmax = m_maxSiResFillRange) + # Define local X 3D histograms + residualX3DArray = helper.addArray([len(layersPix)], alg, 'PixResidualX_3D', topPath = pathResiduals) + for postfix, tool in residualX3DArray.Tools.items(): + layer = layersPix[int( postfix.split('_')[1] )] + title = ('Local X Residual vs Module Eta-Phi-ID Pixel Barrel layer %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer) + name = 'm_modEta,m_modPhi,m_pix_residualsx;pix_b' + layer + '_xresvsmodetaphi_3d' + tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesPix[int(layer)], xmin = m_EtaModulesMinPix[int(layer)], xmax = m_EtaModulesMaxPix[int(layer)], + ybins = m_PhiModules[int(layer)], ymin = -0.5, ymax = m_PhiModules[int(layer)] - 0.5, + zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange) + residualYArray = helper.addArray([len(layersPix)], alg, 'PixResidualY', topPath = pathResiduals) for postfix, tool in residualYArray.Tools.items(): layer = layersPix[int( postfix.split('_')[1] )] diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonGenericTracksAlg.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonGenericTracksAlg.cxx index b234cb74f374647fbd0b8539dba13fdc8139c618..305bd21e5465d4e49a40add656c554e59b2d6520 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonGenericTracksAlg.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonGenericTracksAlg.cxx @@ -536,12 +536,10 @@ StatusCode IDAlignMonGenericTracksAlg::fillHistograms( const EventContext& ctx ) fill(genericTrackGroup, errD0_m); auto d0_bscorr_m = Monitored::Scalar<float>( "m_d0_bscorr", d0bscorr ); fill(genericTrackGroup, d0_bscorr_m); - //d0 vs Eta auto eta_2filld0bscorr_m = Monitored::Scalar<float>( "m_eta_2filld0bscorr", trketa ); auto d0_bscorr_2filleta_m = Monitored::Scalar<float>( "m_d0_bscorr_2filleta", d0bscorr ); fill(genericTrackGroup, eta_2filld0bscorr_m, d0_bscorr_2filleta_m); - //d0 vs phi auto phi_2filld0bscorr_m = Monitored::Scalar<float>( "m_phi_2filld0bscorr", trkphi ); auto d0_bscorr_2fillphi_m = Monitored::Scalar<float>( "m_d0_bscorr_2fillphi", d0bscorr ); @@ -584,7 +582,7 @@ StatusCode IDAlignMonGenericTracksAlg::fillHistograms( const EventContext& ctx ) auto pT_2fillpTRes_m = Monitored::Scalar<float>( "m_pT_2fillpTRes", pT ); fill(genericTrackGroup, pT_2fillpTRes_m, pTRes_2fillpT_m); - //d0 vs pT + //d0 vs pT auto pT_2filld0bscorr_m = Monitored::Scalar<float>( "m_pT_2filld0bscorr", pT ); auto d0_bscorr_2fillpT_m = Monitored::Scalar<float>( "m_d0_bscorr_2fillpT", d0bscorr ); fill(genericTrackGroup, pT_2filld0bscorr_m, d0_bscorr_2fillpT_m); diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.cxx index 1cbc0c2f455db8018ee8b5545f60c7a29c4633aa..4c21aa2a579be8362b87d09a80a39758bf16ffb6 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.cxx @@ -91,6 +91,7 @@ StatusCode IDAlignMonResidualsAlg::initialize() ATH_CHECK( m_tracksKey.initialize() ); m_pixResidualX = Monitored::buildToolMap<int>(m_tools, "PixResidualX", m_nSiBlayers); + m_pixResidualX_3D = Monitored::buildToolMap<int>(m_tools, "PixResidualX_3D", m_nSiBlayers); m_pixResidualY = Monitored::buildToolMap<int>(m_tools, "PixResidualY", m_nSiBlayers); m_pixPullX = Monitored::buildToolMap<int>(m_tools, "PixPullX", m_nSiBlayers); m_pixPullY = Monitored::buildToolMap<int>(m_tools, "PixPullY", m_nSiBlayers); @@ -485,6 +486,7 @@ StatusCode IDAlignMonResidualsAlg::fillHistograms( const EventContext& ctx ) con fill(residualGroup, pix_b_biased_residualy_m); auto pix_b_residualsx_m = Monitored::Scalar<float>("m_pix_residualsx", residualX); fill(m_tools[m_pixResidualX[layerDisk]], pix_b_residualsx_m); + fill(m_tools[m_pixResidualX_3D[layerDisk]], modEta_m, modPhi_m, pix_b_residualsx_m); auto pix_b_residualsy_m = Monitored::Scalar<float>("m_pix_residualsy", residualY); fill(m_tools[m_pixResidualY[layerDisk]], pix_b_residualsy_m); auto pix_b_pullsx_m = Monitored::Scalar<float>("m_pix_pullsx", pullX); diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.h index 8aeeda440acf8c21d5f9186c1b349b4662f78f6c..94f1a882f73fd18180d8343bfff36a441d75774b 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.h +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoringRun3/src/IDAlignMonResidualsAlg.h @@ -95,6 +95,7 @@ class IDAlignMonResidualsAlg : public AthMonitorAlgorithm { static const int m_nTRTBlayers{3}; // static const int m_nTRTEClayers{2}; // std::vector<int> m_pixResidualX; + std::vector<int> m_pixResidualX_3D; std::vector<int> m_pixResidualY; std::vector<int> m_pixPullX; std::vector<int> m_pixPullY; diff --git a/LArCalorimeter/LArCalibTools/python/LArSC2NtupleConfig.py b/LArCalorimeter/LArCalibTools/python/LArSC2NtupleConfig.py index e8104d3e2aaae99999f9c30c18a2d59f9a28e54d..7b26c42f018ab151581176ad84993e728a9a7fe1 100644 --- a/LArCalorimeter/LArCalibTools/python/LArSC2NtupleConfig.py +++ b/LArCalorimeter/LArCalibTools/python/LArSC2NtupleConfig.py @@ -3,7 +3,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator -def LArSC2NtupleCfg(flags, **kwargs): +def LArSC2NtupleCfg(flags, isEmf=False, **kwargs): kwargs['isSC'] = True @@ -16,6 +16,25 @@ def LArSC2NtupleCfg(flags, **kwargs): cfg.merge(LArOnOffIdMappingSCCfg(flags)) cfg.merge(LArCalibIdMappingSCCfg(flags)) cfg.merge(LArLATOMEMappingCfg(flags)) + if isEmf: + # hack for different mapping from EMF + cil=cfg.getCondAlgo('CondInputLoader') + iovdbsvc=cfg.getService('IOVDbSvc') + folder='/LAR/Identifier/LatomeMapping' + for i in range(0,len(iovdbsvc.Folders)): + if (iovdbsvc.Folders[i].find(folder)>=0): + del iovdbsvc.Folders[i] + break + + remove_folder = False + for cil_Loadval in cil.Load: + if folder in cil_Loadval: + print(f"Removing {cil_Loadval} from cil/Load") + remove_folder = True + break + if remove_folder: cil.Load.remove(cil_Loadval) + from IOVDbSvc.IOVDbSvcConfig import addFolders + cfg.merge(addFolders(flags,'/LAR/Identifier/LatomeMapping',tag='LARIdentifierLatomeMapping-EMF',className="CondAttrListCollection",detDb='/afs/cern.ch/user/p/pavol/w0/public/DB_update_24/SCcalib/LatomeMapping_EMF.db')) if flags.LArSCDump.doRawChan: from LArByteStream.LArRawDataReadingConfig import LArRawDataReadingCfg diff --git a/LArCalorimeter/LArCalibTools/share/LArConditions2Ntuple.py b/LArCalorimeter/LArCalibTools/share/LArConditions2Ntuple.py index e1a80ac193a87c36a99d7c02e688c81cd45ec130..23b126a196559d53ca587049eb1a460f592d4924 100755 --- a/LArCalorimeter/LArCalibTools/share/LArConditions2Ntuple.py +++ b/LArCalorimeter/LArCalibTools/share/LArConditions2Ntuple.py @@ -153,33 +153,30 @@ if __name__=='__main__': from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg cfg.merge(LArBadChannelCfg(flags, isSC=flags.LArCalib.isSC)) - if flags.LArCalib.isSC: - bcKey = "LArBadChannelSC" - else: - bcKey = "LArBadChannel" - - - + bcKey = "LArBadChannelSC" if flags.LArCalib.isSC else "LArBadChannel" if "Pedestal" in objects: ckey = "LArPedestalSC" if flags.LArCalib.isSC else "LArPedestal" cfg.addEventAlgo(CompFactory.LArPedestals2Ntuple(ContainerKey = ckey, AddFEBTempInfo = False, + AddCalib = True, isSC = flags.LArCalib.isSC, BadChanKey = bcKey )) if "AutoCorr" in objects: - cfg.addEventAlgo(CompFactory.LArAutoCorr2Ntuple(ContainerKey = "LArAutoCorrSym" if flags.Input.isMC else "LArAutoCorr", - AddFEBTempInfo = False, + ckey="LArAutoCorrSC" if flags.LArCalib.isSC else "LArAutoCorr" + cfg.addEventAlgo(CompFactory.LArAutoCorr2Ntuple(ContainerKey = "LArAutoCorrSym" if flags.Input.isMC else ckey, + AddFEBTempInfo = False, + AddCalib = True, isSC = flags.LArCalib.isSC, BadChanKey = bcKey )) if "Ramp" in objects: ckey = "LArRampSC" if flags.LArCalib.isSC else "LArRamp" - if flags.Input.isMC: ckey = "LArRampSym" - cfg.addEventAlgo(CompFactory.LArRamps2Ntuple(RampKey=ckey, + cfg.addEventAlgo(CompFactory.LArRamps2Ntuple(RampKey="LArRampSym" if flags.Input.isMC else ckey, AddFEBTempInfo = False, + AddCalib = True, isSC = flags.LArCalib.isSC, BadChanKey = bcKey )) @@ -240,22 +237,25 @@ if __name__=='__main__': ckey="LArShapeSym" cfg.addEventAlgo(CompFactory.LArShape2Ntuple(ContainerKey=ckey, AddFEBTempInfo = False, + AddCalib = True, isSC = flags.LArCalib.isSC, BadChanKey = bcKey )) if "MphysOverMcal" in objects: - ckey = "LArMphysOverMcalSC" if flags.LArCalib.isSC else "LArMphysOverMcal" - cfg.addEventAlgo(CompFactory.LArMphysOverMcal2Ntuple(ContainerKey = ckey, + cfg.addEventAlgo(CompFactory.LArMphysOverMcal2Ntuple(ContainerKey = "LArMphysOverMcalSC" if flags.LArCalib.isSC else "LArMphysOverMcal", AddFEBTempInfo = False, + AddCalib = True, isSC = flags.LArCalib.isSC, BadChanKey = bcKey )) #ADC2MeV and DACuA are handled by the same ntuple dumper if "DAC2uA" in objects or "uA2MeV" in objects: - ua2MeVKey="LAruA2MeVSym" if flags.Input.isMC else "LAruA2MeV" - dac2uAKey="LArDAC2uASym" if flags.Input.isMC else "LArDAC2uA" + uackey = "LAruA2MeVSC" if flags.LArCalib.isSC else "LAruA2MeV" + dackey = "LArDAC2uASC" if flags.LArCalib.isSC else "LArDAC2uA" + ua2MeVKey="LAruA2MeVSym" if flags.Input.isMC else uackey + dac2uAKey="LArDAC2uASym" if flags.Input.isMC else dackey cfg.addEventAlgo(CompFactory.LAruA2MeV2Ntuple(uA2MeVKey=ua2MeVKey if "uA2MeV" in objects else "", DAC2uAKey=dac2uAKey if "DAC2uA" in objects else "", @@ -265,13 +265,14 @@ if __name__=='__main__': if "HVScaleCorr" in objects: - cfg.addEventAlgo(CompFactory.LArHVScaleCorr2Ntuple(AddFEBTempInfo = False, + cfg.addEventAlgo(CompFactory.LArHVScaleCorr2Ntuple(ContainerKey= "LArHVScaleCorrSC" if flags.LArCalib.isSC else "LArHVScaleCorr", + AddFEBTempInfo = False, isSC = flags.LArCalib.isSC, BadChanKey = bcKey )) if "fSampl" in objects: - cfg.addEventAlgo(CompFactory.LArfSampl2Ntuple(ContainerKey="LArfSamplSym", + cfg.addEventAlgo(CompFactory.LArfSampl2Ntuple(ContainerKey="LArfSamplSC" if flags.LArCalib.isSC else "LArfSamplSym", isSC=flags.LArCalib.isSC )) diff --git a/LArCalorimeter/LArCalibTools/src/LArDigits2Ntuple.cxx b/LArCalorimeter/LArCalibTools/src/LArDigits2Ntuple.cxx index 2e03210c86c6278f05917ef33185564d2508bf8d..ceaf7eb3920f51415505fe92f1774fd842a06c85 100644 --- a/LArCalorimeter/LArCalibTools/src/LArDigits2Ntuple.cxx +++ b/LArCalorimeter/LArCalibTools/src/LArDigits2Ntuple.cxx @@ -178,11 +178,12 @@ StatusCode LArDigits2Ntuple::execute() } } m_ntNsamples = trueMaxSample; + ATH_MSG_DEBUG( "The number of digi samples in data "<< m_Nsamples ); fillFromIdentifier(digi->hardwareID()); - if(m_fillEMB && m_barrel_ec !=0) continue; - if(m_fillEndcap && m_barrel_ec !=1) continue; + if(m_isSC && m_fillEMB && m_barrel_ec !=0) continue; + if(m_isSC && m_fillEndcap && m_barrel_ec !=1) continue; if(m_FTlist.size() > 0) { // should do a selection if(std::find(std::begin(m_FTlist), std::end(m_FTlist), m_FT) == std::end(m_FTlist)) { // is our FT in list ? diff --git a/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArCalibPatchingAlg.icc b/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArCalibPatchingAlg.icc index 8030645378067b17f0d8f5b3769511b28ce1818b..ce5c28143a936c68d2f98107c4f60290b0570b2f 100644 --- a/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArCalibPatchingAlg.icc +++ b/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArCalibPatchingAlg.icc @@ -22,6 +22,7 @@ StatusCode LArCalibPatchingAlg<CONDITIONSCONTAINER>::initialize() { ATH_CHECK( m_cablingKey.initialize() ); ATH_CHECK( m_CLKey.initialize() ); + if(m_patchMethodProp=="FEBNeighbor") { m_patchMethod=FEBNeighbor; return StatusCode::SUCCESS; @@ -77,6 +78,7 @@ StatusCode LArCalibPatchingAlg<CONDITIONSCONTAINER>::stop() { m_caloId = dynamic_cast<const CaloCell_Base_ID*>(caloid); } + if(m_isSC) m_bcMask.setSC(); ATH_CHECK(m_bcMask.buildBitMask(m_problemsToPatch,msg())); const EventContext& ctx = Gaudi::Hive::currentContext(); @@ -127,6 +129,7 @@ StatusCode LArCalibPatchingAlg<CONDITIONSCONTAINER>::stop() { } LArBadChanBitPacking packing; + LArBadChanSCBitPacking scpacking; unsigned maxgain; if(m_isSC) maxgain=CaloGain::LARMEDIUMGAIN; else maxgain=CaloGain::LARNGAIN; @@ -138,7 +141,7 @@ StatusCode LArCalibPatchingAlg<CONDITIONSCONTAINER>::stop() { const HWIdentifier chid = it.channelId(); if (!cabling->isOnlineConnected(chid)) continue; //Don't care about disconnected channels if (m_bcMask.cellShouldBeMasked(bcCont,chid)) { - const std::string bcType=packing.stringStatus(bcCont->status(chid)); + const std::string bcType = m_isSC ? scpacking.stringStatus(bcCont->status(chid)) : packing.stringStatus(bcCont->status(chid)); ATH_MSG_INFO ( "Found problematic channel 0x" << MSG::hex << chid.get_identifier32().get_compact() << MSG::dec << " [" << bcType << "]" <<" Gain:" << igain << " " << m_onlineHelper->channel_name(chid) << ". Trying to patch." ); if (patch(chid,igain, bcCont, cabling, clCont)) { @@ -546,8 +549,10 @@ bool LArCalibPatchingAlg<CONDITIONSCONTAINER>::getAverage(const HWIdentifier chi // Organize waves per DAC and calculate tmax (peaking time) std::map<int,perDAC_t> neighbors_per_dac; //In most cases, there is only one DAC, eg one entry in this map + ATH_MSG_DEBUG(" symCells size "<<symCells.size()); for (HWIdentifier hwid : symCells) { for (const LArCaliWave& cwave : m_contIn->get(hwid,gain)) { + ATH_MSG_VERBOSE("found wave in channel " << m_onlineHelper->channel_name(hwid) << ", gain " << gain); const int ourDAC = cwave.getDAC(); double tmax=-1; wHelper.getDMax(cwave, tmax); @@ -562,6 +567,8 @@ bool LArCalibPatchingAlg<CONDITIONSCONTAINER>::getAverage(const HWIdentifier chi }//end loop over DACs }// end loop over sym-cells + ATH_MSG_DEBUG(" neighbors_per_dac size "<<neighbors_per_dac.size()); + for (auto& dacWave : neighbors_per_dac) { dacWave.second.tmaxAvg/=dacWave.second.tmax_wave.size(); ATH_MSG_DEBUG("Average tmax computed " << dacWave.second.tmaxAvg << " for DAC=" << dacWave.first << ", to patch channel " << m_onlineHelper->channel_name(chid) << ", gain " << gain); diff --git a/LArCalorimeter/LArCalibUtils/src/LArRampBuilder.cxx b/LArCalorimeter/LArCalibUtils/src/LArRampBuilder.cxx index 92d5dfc50c011445317931a67955873c38b165d2..9f8b20034fa48d43fd287e20d0b3de01d55cd164 100644 --- a/LArCalorimeter/LArCalibUtils/src/LArRampBuilder.cxx +++ b/LArCalorimeter/LArCalibUtils/src/LArRampBuilder.cxx @@ -50,6 +50,7 @@ StatusCode LArRampBuilder::initialize() ATH_CHECK( m_cablingKeySC.initialize(m_isSC) ); ATH_CHECK(m_bcContKey.initialize(m_doBadChannelMask)); + if(m_isSC) m_bcMask.setSC(); ATH_CHECK(m_bcMask.buildBitMask(m_problemsToMask,msg())); //Intermediate ramp object (DAC/ADC pairs) diff --git a/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx b/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx index dcfa73df2cbae7baa51cdf7ccc01d247089c129e..107541125a572f6e2d6a4cecb8ff7ae873255545 100644 --- a/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx +++ b/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx @@ -100,4 +100,3 @@ DECLARE_COMPONENT( LArDetCellParamsMerger ) DECLARE_COMPONENT( LArCaliPulseParamsMerger ) DECLARE_COMPONENT( LArPhysWaveMerger ) DECLARE_COMPONENT( LArCaliWaveMerger ) - diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_Delay_OFCCaliConfig.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_Delay_OFCCaliConfig.py index fc939c7ead853a2962839202be486eb8be7c6d30..bd301b759602f35ddccf2be85d5494ec951b5ad1 100644 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_Delay_OFCCaliConfig.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_Delay_OFCCaliConfig.py @@ -115,9 +115,14 @@ def LArDelay_OFCCaliCfg(flags): theLArCaliWavePatcher.SuperCells = flags.LArCalib.isSC #theLArCaliWavePatcher.PatchMethod="PhiNeighbor" ##take the first neigbour theLArCaliWavePatcher.PatchMethod = "PhiAverage" ##do an aveage in phi after removing bad and empty event - theLArCaliWavePatcher.ProblemsToPatch = [ - "deadCalib","deadReadout","deadPhys","almostDead","short", - ] + if flags.LArCalib.isSC: + theLArCaliWavePatcher.ProblemsToPatch = [ + "deadCalib","deadReadout","deadPhys","maskedOSUM","OffOFCs",] + theLArCaliWavePatcher.OnOffMap="LArOnOffIdMapSC" + theLArCaliWavePatcher.CalibLineKey="LArCalibIdMapSC" + else: + theLArCaliWavePatcher.ProblemsToPatch = [ + "deadCalib","deadReadout","deadPhys","almostDead","short", ] result.addEventAlgo(theLArCaliWavePatcher) pass diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_PileUpAutoCorrConfig.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_PileUpAutoCorrConfig.py index 03059406a3acbb3eddb093f11c989d745cdca663..2882bafc2c15ecbe094a8d2c46e5a872ec529bd3 100644 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_PileUpAutoCorrConfig.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_PileUpAutoCorrConfig.py @@ -40,10 +40,10 @@ def LArPileUpAutoCorrCfg(flags): rs=FolderTagResolver(dbname="sqlite://;schema=%s;dbname=CONDBR2"%flags.LArCalib.Input.Database) AutoCorrTag=rs.getFolderTag(flags.LArCalib.AutoCorr.Folder) # FIXME these tags has to be re-enabled in 2024 also for main readout: - if flags.LArCalib.isSC: - PedestalTag=rs.getFolderTag(flags.LArCalib.Pedestal.Folder) - RampTag=rs.getFolderTag(flags.LArCalib.Ramp.Folder) - MpMcTag=rs.getFolderTag(flags.LArCalib.MphysOverMcal.Folder) + #if flags.LArCalib.isSC: + PedestalTag=rs.getFolderTag(flags.LArCalib.Pedestal.Folder) + RampTag=rs.getFolderTag(flags.LArCalib.Ramp.Folder) + MpMcTag=rs.getFolderTag(flags.LArCalib.MphysOverMcal.Folder) rsac=FolderTagResolver(dbname="COOLOFL_LAR/CONDBR2") PhysAutoCorrTag= rsac.getFolderTag(flags.LArCalib.PhysAutoCorr.Folder) nColl=flags.LArCalib.OFC.Ncoll @@ -55,25 +55,25 @@ def LArPileUpAutoCorrCfg(flags): del rs - result.merge(addFolders(flags,flags.LArCalib.AutoCorr.Folder,detDb=flags.LArCalib.Input.Database, tag=AutoCorrTag, modifiers=chanSelStr(flags), + result.merge(addFolders(flags,flags.LArCalib.AutoCorr.Folder,detDb=flags.LArCalib.Input.Database, tag=AutoCorrTag, modifiers=chanSelStr(flags)+"<key>LArAutoCorr</key>", className="LArAutoCorrComplete")) # FIXME these folders has to be re-enabled in 2024 also for Main readout: - if flags.LArCalib.isSC: - result.merge(addFolders(flags,flags.LArCalib.Pedestal.Folder,detDb=flags.LArCalib.Input.Database, tag=PedestalTag, modifiers=chanSelStr(flags), - className="LArPedestalComplete")) - result.merge(addFolders(flags,flags.LArCalib.Ramp.Folder,detDb=flags.LArCalib.Input.Database, tag=RampTag, modifiers=chanSelStr(flags), - className="LArRampComplete")) - result.merge(addFolders(flags,flags.LArCalib.MphysOverMcal.Folder,detDb=flags.LArCalib.Input.Database, tag=MpMcTag, modifiers=chanSelStr(flags), - className="LArMphysOverMcalComplete")) + #if flags.LArCalib.isSC: + result.merge(addFolders(flags,flags.LArCalib.Pedestal.Folder,detDb=flags.LArCalib.Input.Database, tag=PedestalTag, modifiers=chanSelStr(flags)+"<key>LArPedestal</key>", + className="LArPedestalComplete")) + result.merge(addFolders(flags,flags.LArCalib.Ramp.Folder,detDb=flags.LArCalib.Input.Database, tag=RampTag, modifiers=chanSelStr(flags), + className="LArRampComplete")) + result.merge(addFolders(flags,flags.LArCalib.MphysOverMcal.Folder,detDb=flags.LArCalib.Input.Database, tag=MpMcTag, modifiers=chanSelStr(flags), + className="LArMphysOverMcalComplete")) #Need ADC2MeV values for AutoCorrCondAlg ... #use current production values as input conditions if flags.LArCalib.isSC: requiredConditions=["DAC2uA","HVScaleCorr"] else: - requiredConditions=["DAC2uA","uA2MeV","HVScaleCorr","Ramp","Pedestal","MphysOverMcal"] + #requiredConditions=["DAC2uA","uA2MeV","HVScaleCorr","Ramp","Pedestal","MphysOverMcal"] # in 2024 put: - #requiredConditions=["DAC2uA","uA2MeV","HVScaleCorr"] + requiredConditions=["DAC2uA","uA2MeV","HVScaleCorr"] if flags.LArCalib.isSC: from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBSCCfg result.merge(LArElecCalibDBSCCfg(flags,requiredConditions)) @@ -102,13 +102,11 @@ def LArPileUpAutoCorrCfg(flags): theLArAutoCorrTotalCondAlg.LArAutoCorrObjKey="LArAutoCorr" theLArAutoCorrTotalCondAlg.LArAutoCorrTotalObjKey="LArPhysAutoCorr" theLArAutoCorrTotalCondAlg.LArOnOffIdMappingObjKey=mapKey + theLArAutoCorrTotalCondAlg.LArPedestalObjKey="LArPedestal" if flags.LArCalib.isSC: - theLArAutoCorrTotalCondAlg.LArPedestalObjKey="Pedestal" theLArAutoCorrTotalCondAlg.LArShapeObjKey = "LArShapeSC" theLArAutoCorrTotalCondAlg.LArfSamplObjKey = "LArfSamplSC" theLArAutoCorrTotalCondAlg.LArMinBiasObjKey = "LArMinBiasSC" - else: - theLArAutoCorrTotalCondAlg.LArPedestalObjKey="LArPedestal" result.addCondAlgo(theLArAutoCorrTotalCondAlg) diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_RampConfig.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_RampConfig.py index 3a9224f27580a039d470580fdc79f57eaa358ffc..8f9569b2e6a8a8293f7e7b3559f096616ae5435d 100644 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_RampConfig.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_RampConfig.py @@ -82,7 +82,10 @@ def LArRampCfg(flags): theLArRampBuilder = CompFactory.LArRampBuilder() theLArRampBuilder.KeyList = [digKey,] theLArRampBuilder.SubtractDac0 = False - theLArRampBuilder.ProblemsToMask=["deadCalib","deadReadout","deadPhys","almostDead","short"] + if flags.LArCalib.isSC: + theLArRampBuilder.ProblemsToMask=["deadCalib","deadReadout","deadPhys","maskedOSUM","OffOFCs"] + else: + theLArRampBuilder.ProblemsToMask=["deadCalib","deadReadout","deadPhys","almostDead","short"] theLArRampBuilder.RecoType = "OF" theLArRampBuilder.PeakOFTool=CompFactory.LArOFPeakRecoTool(UseShape = False,OutputLevel=2) @@ -120,7 +123,12 @@ def LArRampCfg(flags): theLArRampPatcher.PatchMethod="PhiAverage" theLArRampPatcher.SuperCells=flags.LArCalib.isSC - theLArRampPatcher.ProblemsToPatch=["deadCalib","deadReadout","deadPhys","almostDead","short"] + if flags.LArCalib.isSC: + theLArRampPatcher.ProblemsToPatch=["deadCalib","deadReadout","deadPhys","maskedOSUM","OffOFCs"] + theLArRampPatcher.OnOffMap="LArOnOffIdMapSC" + theLArRampPatcher.CalibLineKey="LArCalibIdMapSC" + else: + theLArRampPatcher.ProblemsToPatch=["deadCalib","deadReadout","deadPhys","almostDead","short"] theLArRampPatcher.UseCorrChannels=False result.addEventAlgo(theLArRampPatcher) diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_ToCoolInlineConfig.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_ToCoolInlineConfig.py index 1d8a682ccf294c0a7e4ad9f92709df909a1f29fc..b7b581d77157d4eab4c3dbbfab8351b0773c6520 100755 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_ToCoolInlineConfig.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_ToCoolInlineConfig.py @@ -147,6 +147,8 @@ if __name__=="__main__": flags.Debug.DumpCondStore=True flags.Debug.DumpEvtStore=True + from AthenaCommon.Constants import DEBUG + flags.Exec.OutputLevel=DEBUG flags.dump() flags.lock() diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_postProcessingConfig.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_postProcessingConfig.py index 86a025c10225371ed044f6f6819674fa9f2a2093..b2b2aaa3469b75fd0a4013b4cb96557272aa9474 100755 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_postProcessingConfig.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArCalib_postProcessingConfig.py @@ -57,6 +57,8 @@ if __name__=="__main__": #The following flags help finding the input bytestream files: flags.LArCalib.Input.RunNumbers = [int(args.run),] flags.LArCalib.Input.Database = args.insql + flags.IOVDb.SqliteInput=args.insql + flags.IOVDb.SqliteFolders=("/LAR/ElecCalibOfl/PhysWaves/RTM","/LAR/ElecCalibOfl/AutoCorrs/AutoCorr","/LAR/ElecCalibOfl/AutoCorrs/PhysicsAutoCorr") flags.LArCalib.Output.ROOTFile = args.rootfile flags.LArCalib.Output.POOLFile = args.poolfile diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArNewCalib_MergeDB.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArNewCalib_MergeDB.py index eae14df35defb03e81a9e24e265bb2ef4f56906c..2092846394a26d4f54deff10f48dbb8fbcdedbc4 100644 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/LArNewCalib_MergeDB.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/LArNewCalib_MergeDB.py @@ -216,6 +216,10 @@ if __name__=="__main__": else: InputSQLiteFiles = args.insql + if len(InputSQLiteFiles) == 1: #Main readout case, copy first input to output + import shutil, os + shutil.copyfile(InputSQLiteFiles[0],args.outsql) + #Import the flag-container that is the arguemnt to the configuration methods from AthenaConfiguration.AllConfigFlags import initConfigFlags from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/python/utils.py b/LArCalorimeter/LArExample/LArCalibProcessing/python/utils.py index e829f3222a963adb0f56f8a944ed661a57cac0ba..d4c7f02b6ef1123f906081083001ff08f36895bc 100644 --- a/LArCalorimeter/LArExample/LArCalibProcessing/python/utils.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/python/utils.py @@ -60,7 +60,10 @@ class FolderTagResolver: def getFolderTagSuffix(self,foldername,globalTag=None): ft=self.getFolderTag(foldername,globalTag) - p=ft.find("-") + if '_mu' in ft: + p=ft.find("_mu") + else: + p=ft.find("-") if p==-1: return "-Default" else: diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArDigits2NtupleDumper.py b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArDigits2NtupleDumper.py index 9d8723ad8682d70c0f746e30e471a66e6b22a051..7fbe42a8bc0ab7ca39b166cc842bc1b51c89aca5 100755 --- a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArDigits2NtupleDumper.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArDigits2NtupleDumper.py @@ -28,6 +28,7 @@ if __name__=='__main__': parser.add_argument('-t','--addGeom', dest='geom', default=False, help='Add real geom info to output ntuple', type=bool) parser.add_argument('-u','--addBC', dest='bc', default=False, help='Add Bad. chan info to output ntuple', type=bool) parser.add_argument('-v','--addEvTree', dest='evtree', default=False, help='Add tree with per event info to output ntuple', type=bool) + parser.add_argument('--EMF', dest='emf', default=False, help='Is it for EMF', action='store_true') args = parser.parse_args() if help in args and args.help is not None and args.help: @@ -79,6 +80,10 @@ if __name__=='__main__': log.info("Autoconfigured: ") log.info("nSamples: %d digitsKey %s",flags.LArSCDump.nSamples, flags.LArSCDump.digitsKey) + #GEometry + from AthenaConfiguration.TestDefaults import defaultGeometryTags + flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3 + # now construct the job flags.LAr.doAlign=False @@ -92,6 +97,11 @@ if __name__=='__main__': flags.Trigger.enableL1CaloLegacy = True flags.Trigger.enableL1CaloPhase1 = True + # additions for EMF + if args.emf: + flags.IOVDb.SqliteInput="/afs/cern.ch/user/p/pavol/public/EMF_otherCond.db" + flags.IOVDb.SqliteFolders = ("/LAR/BadChannelsOfl/BadChannels","/LAR/BadChannelsOfl/KnownBADFEBs","/LAR/BadChannelsOfl/KnownMNBFEBs","/LAR/BadChannelsOfl/MissingFEBs","/LAR/Identifier/OnOffIdMap",) + flags.lock() #Import the MainServices (boilerplate) @@ -129,7 +139,7 @@ if __name__=='__main__': from LArCalibTools.LArDigits2NtupleConfig import LArDigits2NtupleCfg acc.merge(LArDigits2NtupleCfg(flags, AddBadChannelInfo=args.bc, AddFEBTempInfo=False, isSC=False, isFlat=True, OffId=args.offline, AddHash=args.ahash, AddCalib=args.calib, RealGeometry=args.geom, # from LArCond2NtupleBase - NSamples=flags.LArSCDump.nSamples, FTlist={}, ContainerKey=flags.LArSCDump.digitsKey, # from LArDigits2Ntuple + NSamples=flags.LArSCDump.nSamples, FTlist=[], ContainerKey=flags.LArSCDump.digitsKey, # from LArDigits2Ntuple FillLB=args.evtree, OutputLevel=args.olevel )) diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArNewCalib_Delay_OFC_Cali.py b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArNewCalib_Delay_OFC_Cali.py index 4107d99ef71b5ae2284db96a761a025c48db42e5..baeac400ffe01689904b2febcd16601453a37d69 100755 --- a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArNewCalib_Delay_OFC_Cali.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArNewCalib_Delay_OFC_Cali.py @@ -195,6 +195,8 @@ if __name__=='__main__': if args.ignoreE: cfg.getEventAlgo("LArRawSCCalibDataReadingAlg").LATOMEDecoder.IgnoreEndcapChannels=args.ignoreE + cfg.getService("MessageSvc").defaultLimit=20000 #more messages + #run the application cfg.run() diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArSC2NtupleDumper.py b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArSC2NtupleDumper.py index 56f6818a72ee13120fcf2378d8b3a1eb41662042..9e4595f1636c3377a0a3f6ce1be0d9bd6f64278d 100755 --- a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArSC2NtupleDumper.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArSC2NtupleDumper.py @@ -41,6 +41,7 @@ if __name__=='__main__': parser.add_argument('-v','--addEvTree', dest='evtree', default=False, help='Add tree with per event info to output ntuple', action='store_true') parser.add_argument('-q','--addNoisyRO', dest='noisyRO', default=False, help='Add reco and info from LArNoisyROSummary to output ntuple', action='store_true') parser.add_argument('--addTT', dest='TT', default=False, help='Add info from LArTriggerTowers to output ntuple', action='store_true') + parser.add_argument('--EMF', dest='emf', default=False, help='Is it for EMF', action='store_true') args = parser.parse_args() if help in args and args.help is not None and args.help: @@ -157,11 +158,16 @@ if __name__=='__main__': flags.LArSCDump.fillNoisyRO=args.noisyRO # in case stores needs to be debugged: #from AthenaCommon.Constants import DEBUG - #flags.Exec.OutputLevel=DEBUG + flags.Exec.OutputLevel=args.olevel #flags.Debug.DumpCondStore=True #flags.Debug.DumpDetStore=True #flags.Debug.DumpEvtStore=True + # additions for EMF + if args.emf: + flags.IOVDb.SqliteInput="/afs/cern.ch/user/p/pavol/public/EMF_otherCond.db" + flags.IOVDb.SqliteFolders = ("/LAR/BadChannelsOfl/BadChannelsSC","/LAR/BadChannels/BadChannelsSC","/LAR/Identifier/OnOffIdMap",) + flags.lock() flags.dump('LArSCDump.*') @@ -192,7 +198,7 @@ if __name__=='__main__': acc.addCondAlgo(CompFactory.CaloSuperCellAlignCondAlg()) from LArCalibTools.LArSC2NtupleConfig import LArSC2NtupleCfg - acc.merge(LArSC2NtupleCfg(flags, AddBadChannelInfo=args.bc, AddFEBTempInfo=False, isSC=True, isFlat=False, + acc.merge(LArSC2NtupleCfg(flags, isEmf = args.emf, AddBadChannelInfo=args.bc, AddFEBTempInfo=False, isSC=True, isFlat=False, OffId=args.offline, AddHash=args.ahash, AddCalib=args.calib, RealGeometry=args.geom, ExpandId=args.expid, # from LArCond2NtupleBase NSamples=flags.LArSCDump.nSamples, FTlist=[], FillBCID=args.bcid, ContainerKey=flags.LArSCDump.digitsKey, # from LArDigits2Ntuple SCContainerKeys=CKeys, OverwriteEventNumber = args.overEvN, # from LArSC2Ntuple @@ -215,6 +221,5 @@ if __name__=='__main__': log.info("Output file: ") log.info(args.outfile) - # and run acc.run(args.maxev) diff --git a/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py b/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py index 1f5fc054cc7c9d540082ac4be2d0a877afd36883..6f6113002bafc00c345b5635091794e1496ad958 100644 --- a/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py +++ b/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py @@ -237,24 +237,13 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes ylabels = [str(x) for x in range(1,nsamples+1)], pattern=[(part)]) - partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_diff_adc_ped;Diff_ADC_Ped_vs_LATOME_'+thisSel, - title='ADC - Pedestal vs LATOME name '+selStrPart[thisSel]+'; ; ADC - Pedestal', - type='TH2F', - cutmask='Digi_part_'+thisSel, - path=thisTopPath, - xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1, - ybins=64, ymin=-32, ymax=32, - xlabels=BinLabel_LATOME, - pattern=[(part)]) - - partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_diff_adc0_ped;Diff_ADC0_Ped_vs_LATOME_'+thisSel, title='ADC[0] - Pedestal vs LATOME name '+selStrPart[thisSel]+'; ; ADC[0] - Pedestal', type='TH2F', cutmask='Digi_part_'+thisSel, path=thisTopPath, xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1, - ybins=68, ymin=-34, ymax=34, + ybins=64, ymin=-32, ymax=32, xlabels=BinLabel_LATOME, pattern=[(part)]) @@ -283,8 +272,8 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes if not flags.Common.isOnline: continue # Skip the remaining histos if we are running offline #### HERE - plots which should only be booked for the nominal selection if thisSel != "passDigiNom": continue - partGroup_digi.defineHistogram('Digi_part_eta,Digi_part_phi,Digi_part_diff_adc_ped;Coverage_Diff_ADC_Ped_'+thisSel, - title='ADC - Pedestal'+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi', + partGroup_digi.defineHistogram('Digi_part_eta,Digi_part_phi,Digi_part_diff_adc0_ped;Coverage_Diff_ADC0_Ped_'+thisSel, + title='ADC[0] - Pedestal'+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi', type='TProfile2D', cutmask='Digi_part_'+thisSel, path=thisTopPath+'/Coverage', @@ -295,8 +284,8 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes ##################### - partGroup_digi.defineHistogram('Digi_part_BCID,Digi_part_iphi,Digi_part_diff_adc_ped;Diff_ADC_Ped_Per_BCID_Per_iphi_'+thisSel, - title='ADC - Pedestal '+selStrPart[thisSel]+': iphi vs BCID;BCID;iphi', + partGroup_digi.defineHistogram('Digi_part_BCID,Digi_part_iphi,Digi_part_diff_adc0_ped;Diff_ADC0_Ped_Per_BCID_Per_iphi_'+thisSel, + title='ADC[0] - Pedestal '+selStrPart[thisSel]+': iphi vs BCID;BCID;iphi', type='TProfile2D', cutmask='Digi_part_'+thisSel, path=thisTopPath, @@ -339,8 +328,8 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes ybins=500, ymin=0, ymax=5000, #raw ADC is 12 bit pattern=[(part)]) - partGroup_digi.defineHistogram('Digi_part_diff_adc_ped;Diff_ADC_Ped_'+thisSel, - title='LATOME (ADC-ped) '+selStrPart[thisSel]+'; (ADC - pedestal)', + partGroup_digi.defineHistogram('Digi_part_diff_adc0_ped;Diff_ADC0_Ped_'+thisSel, + title='LATOME (ADC[0]-ped) '+selStrPart[thisSel]+'; (ADC - pedestal)', type='TH1F', cutmask='Digi_part_'+thisSel, path=thisTopPath, @@ -356,7 +345,7 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes xbins=nsamples,xmin=0.5,xmax=nsamples+0.5, xlabels = [str(x) for x in range(1,nsamples+1)], pattern=[(part)]) - + partGroup_digi.defineHistogram('Digi_part_BCID, Digi_part_adc;ADC_vs_BCID_'+thisSel, title='ADC value vs BCID '+selStrPart[thisSel]+'; BCID; ADC Value', type='TProfile', @@ -366,8 +355,8 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes ybins=500, ymin=0, ymax=5000, pattern=[(part)]) - partGroup_digi.defineHistogram('Digi_part_BCID, Digi_part_diff_adc_ped;Diff_ADC_Ped_vs_BCID_'+thisSel, - title='ADC - Ped value vs BCID '+selStrPart[thisSel]+'; BCID; ADC Value', + partGroup_digi.defineHistogram('Digi_part_BCID, Digi_part_diff_adc0_ped;Diff_ADC0_Ped_vs_BCID_'+thisSel, + title='ADC[0] - Ped value vs BCID '+selStrPart[thisSel]+'; BCID; ADC[0] Value', type='TProfile', cutmask='Digi_part_'+thisSel, path=thisTopPath, diff --git a/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx index 1b0531c0b09491ca150e285d0eee87deeaafc268..6728dec29e474ff3fc85d0c759cd1dd5f5108c97 100755 --- a/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx +++ b/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx @@ -12,7 +12,7 @@ // Ljiljana Morvaj (ljiljana.morvaj@cern.ch) // Yesenia Hernadez (yesenia@cern.ch) // Based on LAtDigitMon tool by L. Hellary and LArOddCellsMonTool.cxx by Benjamin Trocme -// +// // Monitor a few things in the LArDigit... // // 1) Check that the highest value of the LArDigit is contained in an interval. @@ -42,7 +42,7 @@ #include "CaloIdentifier/CaloCell_SuperCell_ID.h" #include "LArTrigStreamMatching.h" -#include "LArCOOLConditions/LArPedestalSC.h" +#include "LArCOOLConditions/LArPedestalSC.h" //STL: #include <sstream> @@ -59,33 +59,31 @@ LArDigitalTriggMonAlg::~LArDigitalTriggMonAlg() } /*---------------------------------------------------------*/ -StatusCode -LArDigitalTriggMonAlg::initialize() +StatusCode LArDigitalTriggMonAlg::initialize() { - ATH_MSG_INFO( "Initialize LArDigitalTriggMonAlg" ); - + /** Get LAr Online Id Helper*/ ATH_CHECK(detStore()->retrieve( m_LArOnlineIDHelper, "LArOnline_SuperCellID" )); - + /** Get offline SC Id Helper*/ ATH_CHECK(detStore()->retrieve( m_SCID_helper, "CaloCell_SuperCell_ID" ).isSuccess()); - + ATH_MSG_INFO("Building tool map"); m_toolmapLayerNames_digi = Monitored::buildToolMap<int>( m_tools, "LArDigitalTriggerMon_digi", m_layerNames); m_toolmapLayerNames_sc = Monitored::buildToolMap<int>( m_tools, "LArDigitalTriggerMon_sc", m_layerNames); - + ATH_MSG_INFO("Done building tool map"); /** Get bad-channel mask (only if jO IgnoreBadChannels is true)*/ ATH_CHECK(m_bcContKey.initialize()); ATH_CHECK(m_bcMask.buildBitMask(m_problemsToMask,msg())); - + ATH_CHECK(m_digitContainerKey.initialize()); ATH_CHECK(m_keyPedestalSC.initialize()); ATH_CHECK(m_caloSuperCellMgrKey.initialize()); - ATH_CHECK(m_rawSCContainerKey.initialize()); - ATH_CHECK(m_rawSCEtRecoContainerKey.initialize()); + ATH_CHECK(m_rawSCContainerKey.initialize()); + ATH_CHECK(m_rawSCEtRecoContainerKey.initialize()); ATH_CHECK(m_cablingKey.initialize()); ATH_CHECK(m_actualMuKey.initialize()); ATH_CHECK(m_LATOMEHeaderContainerKey.initialize()); @@ -93,14 +91,12 @@ LArDigitalTriggMonAlg::initialize() // Property check: constexpr unsigned expSize=MAXLYRNS*2+1; if (m_layerNames.size() != expSize) { - ATH_MSG_ERROR("Unexpected size of LayerNames property. Expect " - << expSize << " entries, found " - << m_layerNames.size() << " entries"); + ATH_MSG_ERROR("Unexpected size of LayerNames property. Expect "<< expSize << " entries, found "<< m_layerNames.size() << " entries"); return StatusCode::FAILURE; } if (m_isADCBaseline) { - ATH_MSG_INFO("IsADCBas set to true"); + ATH_MSG_INFO("IsADCBas set to true"); } return AthMonitorAlgorithm::initialize(); } @@ -115,7 +111,7 @@ struct Digi_MonValues { int digi_adc; int digi_latomesourceidbin; float digi_pedestal; - int digi_maxpos; + int digi_maxpos; int digi_partition; float digi_diff_adc_ped_norm; float digi_diff_adc_ped; @@ -154,9 +150,9 @@ struct SC_MonValues { StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const { - + ATH_MSG_DEBUG("in fillHists()" ); - + // General Monitored variables auto lumi_block = Monitored::Scalar<unsigned int>("lumi_block", 0); auto time_stamp = Monitored::Scalar<unsigned int>("time_stamp", 0); @@ -171,8 +167,8 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const auto Digi_latomeSourceIdBIN = Monitored::Scalar<int>("Digi_latomeSourceIdBIN",1); // MlatomeSourceIdBIN auto Digi_phi = Monitored::Scalar<float>("Digi_phi",0.0); // MSCphi auto Digi_eta = Monitored::Scalar<float>("Digi_eta",0.0); // MSCeta - auto Digi_iphi = Monitored::Scalar<int>("Digi_iphi",0.0); - auto Digi_ieta = Monitored::Scalar<int>("Digi_ieta",0.0); + auto Digi_iphi = Monitored::Scalar<int>("Digi_iphi",0.0); + auto Digi_ieta = Monitored::Scalar<int>("Digi_ieta",0.0); auto Digi_maxpos = Monitored::Scalar<int>("Digi_maxpos",-1); // Mmaxpos auto Digi_partition = Monitored::Scalar<int>("Digi_partition",-1); // Mpartition auto Digi_sampos = Monitored::Scalar<int>("Digi_sampos",-1); // Msampos @@ -233,7 +229,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const auto thisEvent=this->GetEventInfo(ctx); const std::vector<unsigned> streamsThisEvent=LArMon::trigStreamMatching(m_streams,thisEvent->streamTags()); - + SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKey,ctx}; const LArOnOffIdMapping* cabling=*cablingHdl; @@ -255,8 +251,8 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const }else{ ATH_MSG_DEBUG("hSCetRecoContainer.size() " << hSCetRecoContainer->size()); } - - + + SG::ReadHandle<LArLATOMEHeaderContainer> hLArLATOMEHeaderContainer{m_LATOMEHeaderContainerKey,ctx}; //"SC_LATOME_HEADER" if (!hLArLATOMEHeaderContainer.isValid()) { ATH_MSG_WARNING("The requested LATOME header container key could not be retrieved. Was there a problem retrieving information from the run logger?"); @@ -285,7 +281,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const SG::ReadCondHandle<ILArPedestal> pedestalHdl{m_keyPedestalSC, ctx}; const ILArPedestal* pedestals=*pedestalHdl; - SG::ReadCondHandle<CaloSuperCellDetDescrManager> caloSuperCellMgrHandle{m_caloSuperCellMgrKey,ctx}; + SG::ReadCondHandle<CaloSuperCellDetDescrManager> caloSuperCellMgrHandle{m_caloSuperCellMgrKey,ctx}; const CaloSuperCellDetDescrManager* ddman = *caloSuperCellMgrHandle; //retrieve BadChannel info: @@ -293,18 +289,18 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const SG::ReadCondHandle<LArBadChannelCont> bcContHdl{m_bcContKey,ctx}; bcCont=(*bcContHdl); - + if ( (hLArDigitContainer.isValid()) ){ std::vector<std::vector<Digi_MonValues>> digiMonValueVec(m_layerNames.size()); for (auto& innerVec : digiMonValueVec) { - innerVec.reserve(1600); // (m_layerNcells[ilayer]) * nsamples; + innerVec.reserve(1600); // (m_layerNcells[ilayer]) * nsamples; } - + // Loop over digits for (const LArDigit* pLArDigit : *hLArDigitContainer) { HWIdentifier id = pLArDigit->hardwareID(); //gives online ID //skip disconnected channels: - if(!cabling->isOnlineConnected(id)) continue; + if(!cabling->isOnlineConnected(id)) continue; const unsigned trueNSamples = pLArDigit->nsamples(); Digi_Nsamples = trueNSamples; // Fill the monitored variable @@ -313,9 +309,9 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const const Identifier offlineID=cabling->cnvToIdentifier(id); const CaloDetDescrElement* caloDetElement = ddman->get_element(offlineID); if(caloDetElement == 0 ){ - ATH_MSG_ERROR( "Cannot retrieve caloDetElement" ); + ATH_MSG_ERROR( "Cannot retrieve caloDetElement" ); continue; - } + } Digi_eta = caloDetElement->eta_raw(); Digi_phi = caloDetElement->phi_raw(); @@ -336,20 +332,20 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const Digi_partition = ThisPartition; // Fill the monitored variable fill(m_scMonGroupName, Digi_Nsamples); - - // Check if this is a maskedOSUM SC + + // Check if this is a maskedOSUM SC notMasked = true; if ( m_bcMask.cellShouldBeMasked(bcCont,id)) { - notMasked = false; + notMasked = false; } if(pedestals){ - Pedestal = pedestals->pedestal(id,cgain); - PedestalRMS = pedestals->pedestalRMS(id,cgain); + Pedestal = pedestals->pedestal(id,cgain); + PedestalRMS = pedestals->pedestalRMS(id,cgain); } else - ATH_MSG_INFO( "Pedestal values not received"); - + ATH_MSG_INFO( "Pedestal values not received"); + const LArSCDigit* scdigi = dynamic_cast<const LArSCDigit*>(pLArDigit); if(!scdigi){ ATH_MSG_DEBUG(" CAN'T CAST "); }else{ @@ -359,13 +355,18 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const } // Retrieve samples const std::vector<short>* digito = &pLArDigit->samples(); - + //retrieve the max sample digit ie digitot.back(). std::vector<short>::const_iterator maxSam = std::max_element(digito->begin(), digito->end()); int thismaxPos = std::distance(digito->begin(), maxSam); Digi_maxpos=thismaxPos+1; //count samples [1,5] float ADC_max = pLArDigit->samples().at(Digi_maxpos-1); + float ADC_0 = pLArDigit->samples().at(0); + if (m_isADCBaseline) { //SC_ADC_BAS, have to divide by 8 + ADC_0 = ADC_0/8; + } + // Start Loop over samples Digi_Diff_ADC0_Ped = ADC_0 - Pedestal; for(unsigned i=0; i<trueNSamples;++i) { @@ -373,7 +374,6 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const notBadQual = false; ADCped10RMS = false; passDigiNom = false; - Digi_sampos=i+1; Digi_ADC = pLArDigit->samples().at(i); if (m_isADCBaseline) { //SC_ADC_BAS, have to divide by 8 @@ -393,14 +393,14 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const badNotMasked = true; } } - if(ADC_max - Pedestal > 10*PedestalRMS) { + if(ADC_max - Pedestal > 10*PedestalRMS) { ADCped10RMS = true; } if ( notMasked && notBadQual && ADCped10RMS ){ passDigiNom = true; } - //Should be able to use emplace_back here with C++20, see https://en.cppreference.com/w/cpp/language/aggregate_initialization + //Should be able to use emplace_back here with C++20, see https://en.cppreference.com/w/cpp/language/aggregate_initialization lvaluemap_digi.push_back({Digi_eta, Digi_phi, Digi_ieta, Digi_iphi, Digi_sampos, Digi_ADC, Digi_latomeSourceIdBIN, Pedestal, Digi_maxpos, Digi_partition, Digi_Diff_ADC_Ped_Norm, Digi_Diff_ADC_Ped, Digi_Diff_ADC0_Ped, BCID, lumi_block, passDigiNom, badNotMasked}); lvaluemap_digi_ALL.push_back({Digi_eta, Digi_phi, Digi_ieta, Digi_iphi, Digi_sampos, Digi_ADC, Digi_latomeSourceIdBIN, Pedestal, Digi_maxpos, Digi_partition, Digi_Diff_ADC_Ped_Norm, Digi_Diff_ADC_Ped, Digi_Diff_ADC0_Ped, BCID, lumi_block, passDigiNom, badNotMasked}); @@ -430,19 +430,17 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const auto digi_part_passDigiNom = Monitored::Collection("Digi_part_passDigiNom",tool,[](const auto& v){return v.digi_passDigiNom;}); auto digi_part_badNotMasked = Monitored::Collection("Digi_part_badNotMasked",tool,[](const auto& v){return v.digi_badNotMasked;}); - fill(m_tools[m_toolmapLayerNames_digi.at(m_layerNames[ilayer])], + fill(m_tools[m_toolmapLayerNames_digi.at(m_layerNames[ilayer])], digi_part_eta, digi_part_phi, digi_part_ieta, digi_part_iphi, digi_part_sampos, digi_part_adc, digi_part_latomesourceidbin, digi_part_pedestal, digi_part_maxpos, digi_part_diff_adc_ped_norm, digi_part_diff_adc_ped, digi_part_diff_adc0_ped, digi_part_bcid, digi_part_lb, digi_part_passDigiNom, digi_part_badNotMasked); } - } // End if(LArDigitContainer is valid) - if ( hSCetContainer.isValid() && hSCetRecoContainer.isValid() ){ LArRawSCContainer::const_iterator itSC = hSCetContainer->begin(); - LArRawSCContainer::const_iterator itSC_e= hSCetContainer->end(); + LArRawSCContainer::const_iterator itSC_e= hSCetContainer->end(); LArRawSCContainer::const_iterator itSCReco = hSCetRecoContainer->begin(); const LArRawSC* rawSC = 0; const LArRawSC* rawSCReco = 0; @@ -455,8 +453,8 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const // Loop over SCs for ( ; itSC!=itSC_e;++itSC,++itSCReco) { rawSC = *itSC; - if ( itSCReco < hSCetRecoContainer->end() ){ - rawSCReco = *itSCReco; + if ( itSCReco < hSCetRecoContainer->end() ){ + rawSCReco = *itSCReco; }else{ ATH_MSG_WARNING("Looping SC ET container, but we have reached the end of the SC ET Reco iterator. Check the sizes of these containers. Is SC ET Reco size zero? Is there a problem with the digit container name sent by the run logger?"); rawSCReco = 0; @@ -470,11 +468,9 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const // Get Physical Coordinates const CaloDetDescrElement* caloDetElement = ddman->get_element(offlineID); if (caloDetElement == 0) { - ATH_MSG_ERROR("Cannot retrieve (eta,phi) coordinates for raw channels"); - ATH_MSG_ERROR(" ==============> " << std::hex << "; offlineID = " << offlineID - << "online ID =" << m_LArOnlineIDHelper->channel_name(id) - << "; rawSC->SourceId() = " << rawSC->SourceId()); - continue; + ATH_MSG_ERROR("Cannot retrieve (eta,phi) coordinates for raw channels"); + ATH_MSG_ERROR(" ==============> " << std::hex << "; offlineID = " << offlineID<< "online ID =" << m_LArOnlineIDHelper->channel_name(id) << "; rawSC->SourceId() = " << rawSC->SourceId()); + continue; } SC_eta = caloDetElement->eta_raw(); SC_phi = caloDetElement->phi_raw(); @@ -487,8 +483,8 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const const unsigned side = m_LArOnlineIDHelper->pos_neg(id); const unsigned iLyr=iLyrNS*2+side; - auto& lvaluemap_sc = scMonValueVec[iLyr]; - auto& lvaluemap_sc_ALL = scMonValueVec.back(); + auto& lvaluemap_sc = scMonValueVec[iLyr]; + auto& lvaluemap_sc_ALL = scMonValueVec.back(); SC_latomeSourceIdBIN=getXbinFromSourceID(rawSC->SourceId()); @@ -513,12 +509,11 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const notMaskedEoflGt1 = false; nonZeroETofl = false; eToflGt1GeV = false; - // Check if this is a maskedOSUM SC + // Check if this is a maskedOSUM SC if ( ! m_bcMask.cellShouldBeMasked(bcCont,id)) { notMasked = true; } // popopopo - if ( rawSCReco != 0 && rawSCReco->passTauSelection().size()>0){ //only compare Et if tau selection is passed if (rawSCReco->passTauSelection().at(0) == true) passTauSel = true; } @@ -552,8 +547,8 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const ATH_MSG_WARNING("rawSCReco energies vector is empty!"); SC_energy_ofl = 0; } - } - SC_ET_diff = SC_energy_onl - SC_energy_ofl; + } + SC_ET_diff = SC_energy_onl - SC_energy_ofl; SC_ET_onl = ( SC_energy_onl* 12.5 ) / 1000; // Converted to GeV SC_ET_ofl = ( SC_energy_ofl* 12.5 ) / 1000; // Converted to GeV SC_ET_onl_muscaled = event_mu > 0. ? SC_ET_onl / event_mu : SC_ET_onl; @@ -562,7 +557,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const if ( rawSCReco->tauEnergies().size()>0 ){ Etau = rawSCReco->tauEnergies().at(0); } } SC_time = (SC_energy_ofl != 0) ? (float)Etau / (float)SC_energy_ofl : Etau; - + ATH_MSG_DEBUG("Energy onl - Energy ofl: "<<SC_energy_onl<<", "<<SC_energy_ofl<<std::endl); if (SC_ET_onl != 0 ){ nonZeroET = true; @@ -574,15 +569,15 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const eTgt10GeV = true; } if (SC_ET_ofl != 0 ) { - nonZeroETofl = true; + nonZeroETofl = true; } if (SC_ET_ofl > 1){ - eToflGt1GeV = true; + eToflGt1GeV = true; } if ( rawSC->satur().size()>bcid_ind ){ if ( rawSC->satur().at(bcid_ind) ){ if ( notMasked ){ - saturNotMasked = true; + saturNotMasked = true; } }else{ notSatur = true; @@ -603,32 +598,32 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const } if ( notMasked && notSatur && notOFCbOF ){ - if(nonZeroETofl){ - notMaskedEoflNe0 = true; - } - if(eToflGt1GeV) { - notMaskedEoflGt1 = true; - } - - if ( passTauSel ){ - if ( nonZeroET ){ - passSCNom = true; - } - if ( eTgt1GeV ){ - passSCNom1 = true; - } - if (eTgt10GeV ){ - passSCNom10 = true; - if ( tauGt3 ){ - passSCNom10tauGt3 = true; - } - } - if (SC_energy_onl != SC_energy_ofl){ - onlofflEmismatch = true; - } - } + if(nonZeroETofl){ + notMaskedEoflNe0 = true; + } + if(eToflGt1GeV) { + notMaskedEoflGt1 = true; + } + + if ( passTauSel ){ + if ( nonZeroET ){ + passSCNom = true; + } + if ( eTgt1GeV ){ + passSCNom1 = true; + } + if (eTgt10GeV ){ + passSCNom10 = true; + if ( tauGt3 ){ + passSCNom10tauGt3 = true; + } + } + if (SC_energy_onl != SC_energy_ofl){ + onlofflEmismatch = true; + } + } } // end nominal selections - + //Should be able to use emplace_back here with C++20, see https://en.cppreference.com/w/cpp/language/aggregate_initialization lvaluemap_sc.push_back({SC_eta, SC_phi, SC_ieta, SC_iphi, SC_latomeSourceIdBIN, SC_ET_ofl, SC_ET_diff, SC_ET_onl, SC_ET_onl_muscaled, SC_time, BCID, lumi_block, passSCNom, passSCNom1, passSCNom10, passSCNom10tauGt3, saturNotMasked, OFCbOFNotMasked, notMaskedEoflNe0, notMaskedEoflGt1}); lvaluemap_sc_ALL.push_back({SC_eta, SC_phi, SC_ieta, SC_iphi, SC_latomeSourceIdBIN, SC_ET_ofl, SC_ET_diff, SC_ET_onl, SC_ET_onl_muscaled, SC_time, BCID, lumi_block, passSCNom, passSCNom1, passSCNom10, passSCNom10tauGt3, saturNotMasked, OFCbOFNotMasked, notMaskedEoflNe0, notMaskedEoflGt1}); @@ -661,14 +656,14 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const auto sc_part_notMaskedEoflGt1 = Monitored::Collection("SC_part_notMaskedEoflGt1",tool,[](const auto& v){return v.sc_notMaskedEoflGt1;}); - fill(m_tools[m_toolmapLayerNames_sc.at(m_layerNames[ilayer])], + fill(m_tools[m_toolmapLayerNames_sc.at(m_layerNames[ilayer])], sc_part_eta, sc_part_phi, sc_part_ieta, sc_part_iphi, sc_part_latomesourceidbin, sc_part_et_ofl, sc_part_et_diff, sc_part_et_onl, sc_part_et_onl_muscaled, sc_part_time, sc_part_bcid, sc_part_lb, sc_part_passSCNom, sc_part_passSCNom1, sc_part_passSCNom10, sc_part_passSCNom10tauGt3, sc_part_saturNotMasked, sc_part_OFCbOFNotMasked, sc_part_notMaskedEoflNe0, sc_part_notMaskedEoflGt1); } - + } // End if(LArSCContainer is valid) - + //LATOME event size if ( (hLArLATOMEHeaderContainer.isValid()) ){ @@ -679,11 +674,11 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const event_size /= (1024*1024/4); fill(m_scMonGroupName,lumi_block,event_size); } - -//end LATOME event size - + //end LATOME event size + + return StatusCode::SUCCESS; } @@ -708,8 +703,8 @@ int LArDigitalTriggMonAlg::whatPartition(HWIdentifier id, int side) const } } - - + + unsigned LArDigitalTriggMonAlg::getXbinFromSourceID(const unsigned sourceID) const { // int NLatomeBins = 117; diff --git a/LArCalorimeter/LArRecConditions/LArRecConditions/LArBadChannelMask.h b/LArCalorimeter/LArRecConditions/LArRecConditions/LArBadChannelMask.h index c9bbcb7d60fd547b3df38c501d751db4c64a7573..d5ebc078c153eb3e60d1dafb55073701074cc372 100644 --- a/LArCalorimeter/LArRecConditions/LArRecConditions/LArBadChannelMask.h +++ b/LArCalorimeter/LArRecConditions/LArRecConditions/LArBadChannelMask.h @@ -25,6 +25,9 @@ class LArBadChannelMask { bool cellShouldBeMasked(const LArBadChannelCont* bcCont, const HWIdentifier& hardwareId) const; bool cellShouldBeMasked(const LArBadChannelCont* bcCont, const Identifier& offlineId) const; + bool isSC() const {return m_isSC;} + void setSC() {m_isSC=true;} + private: const static LArBadChanBitPacking s_bitPacking; // A helper for bit operations, etc. const static LArBadChanSCBitPacking s_bitSCPacking; // A helper for bit operations, etc. diff --git a/Reconstruction/tauRec/python/TauToolHolder.py b/Reconstruction/tauRec/python/TauToolHolder.py index 338a1ad7a67942987cf2913c9f355d28c9324c74..fd6941ca9de0c65ace7ea07451fd4c65b7cf3897 100644 --- a/Reconstruction/tauRec/python/TauToolHolder.py +++ b/Reconstruction/tauRec/python/TauToolHolder.py @@ -260,24 +260,6 @@ def CellWeightToolCfg(flags): # -- return result - # _name = sPrefix + 'CellWeightTool' - - # once StandardCellWeightCalib is updated can use this - # from CaloRec.CaloTopoClusterFlags import jobproperties - # -- auto configure weight tool - # finder = jobproperties.CaloTopoClusterFlags.cellWeightRefFinder.get_Value() - # size = jobproperties.CaloTopoClusterFlags.cellWeightRefSize.get_Value() - # signal = jobproperties.CaloTopoClusterFlags.cellWeightRefSignal.get_Value() - # Defaults already set in StandardCellWeightCalib: - # finder=Cone, size=0.4, signal=Topo - - #from CaloClusterCorrection.StandardCellWeightCalib import getCellWeightTool - # CaloWeightTool = getCellWeightTool(finder,size,signal) - #CaloWeightTool = result.popToolsAndMerge(getCellWeightTool(flags)) - - #result.setPrivateTools(CaloWeightTool) - #return result - ######################################################################### # Photon Shot Finder def TauShotFinderCfg(flags): diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexInputMonitorAlgorithm.py b/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexInputMonitorAlgorithm.py index 115568277c6052240eab77fda8525b6cec2a2f41..b723df48faeba9b1894885bafcbcce4566cda35c 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexInputMonitorAlgorithm.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexInputMonitorAlgorithm.py @@ -24,18 +24,18 @@ def EfexInputMonitoringConfig(flags): ybins=1,ymin=0,ymax=1,ylabels=[""], opt=['kCanRebin','kAlwaysCreate'],merge="merge") - helper.defineHistogram('LBNString,TowerEta,TowerCount;h_dataTowers_ecal',title='DataTowers ECAL Average;LBN;Eta', + helper.defineHistogram('LBN,TowerEta,TowerCount;h_dataTowers_ecal',title='DataTowers ECAL Average;LBN;Eta', fillGroup="ecal", type='TProfile2D', - xlabels=[""], + xbins=1,xmin=0,xmax=1, ybins=50,ymin=-2.5,ymax=2.5, - opt=['kCanRebin','kAlwaysCreate'],merge="merge") - helper.defineHistogram('LBNString,TowerEta,TowerCount;h_dataTowers_hcal',title='DataTowers HCAL Average;LBN;Eta', + opt=['kAddBinsDynamically','kAlwaysCreate'],merge="merge") + helper.defineHistogram('LBN,TowerEta,TowerCount;h_dataTowers_hcal',title='DataTowers HCAL Average;LBN;Eta', fillGroup="hcal", type='TProfile2D', - xlabels=[""], + xbins=1,xmin=0,xmax=1, ybins=50,ymin=-2.5,ymax=2.5, - opt=['kCanRebin','kAlwaysCreate'],merge="merge") + opt=['kAddBinsDynamically','kAlwaysCreate'],merge="merge") helper.defineTree('LBNString,Error,EventNumber,TowerId,TowerEta,TowerPhi,TowerEmstatus,TowerHadstatus,TowerSlot,TowerCount,RefTowerCount,SlotSCID,timeSince,timeUntil;errors', "lbnString/string:error/string:eventNumber/l:id/I:eta/F:phi/F:em_status/i:had_status/i:slot/I:count/I:ref_count/I:scid/string:timeSince/I:timeUntil/I", title="errors tree;LBN;Error",fillGroup="errors") diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexInputMonitorAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexInputMonitorAlgorithm.cxx index 6b777ab0279e19b0e690221507dfae7eea2e49e8..a96a5ed26d05860026baf0d7596968f16533b154 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexInputMonitorAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexInputMonitorAlgorithm.cxx @@ -76,6 +76,7 @@ StatusCode EfexInputMonitorAlgorithm::fillHistograms( const EventContext& ctx ) auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber()); auto lbnString = Monitored::Scalar<std::string>("LBNString",std::to_string(GetEventInfo(ctx)->lumiBlock())); + auto lbn = Monitored::Scalar<int>("LBNS",GetEventInfo(ctx)->lumiBlock()); // mismatches can be caused by recent/imminent OTF maskings, so track timings auto timeSince = Monitored::Scalar<int>("timeSince", -1); @@ -128,7 +129,7 @@ StatusCode EfexInputMonitorAlgorithm::fillHistograms( const EventContext& ctx ) TowerRefCount = Toweret_count[i]; if (TowerRefCount==1025) missingLAr=true; // 1025 comes from eFexTowerBuilder if it had no supercells if(TowerRefCount==1025 || TowerRefCount==1022) TowerRefCount=0; // unavailable or invalid code - fill((i<10) ? "ecal" : "hcal",lbnString,Towereta,TowerRefCount); + fill((i<10) ? "ecal" : "hcal",lbn,Towereta,TowerRefCount); } } } @@ -207,7 +208,7 @@ StatusCode EfexInputMonitorAlgorithm::fillHistograms( const EventContext& ctx ) fill("errors",Decision,timeSince,timeUntil,evtNumber,lbnString,TowerId,Towereta,Towerphi,Toweremstatus,Towerhadstatus,TowerSlot,TowerCount,TowerRefCount,SlotSCID); } } - fill((i<10) ? "ecal" : "hcal",lbnString,Towereta,TowerCount); + fill((i<10) ? "ecal" : "hcal",lbn,Towereta,TowerCount); } } diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_struct.h b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_struct.h index 7ae4ff6b7dc22a91178aff114fa04586b8be7302..f7e078be1357a9a5b764622635a631fd2b16d86d 100644 --- a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_struct.h +++ b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_struct.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MM_STRUCT_H @@ -357,7 +357,7 @@ struct evInf_entry{ }; struct hitData_key{ - hitData_key(int bct=0, double t=0, double gt=0, int vmm=-1,int ev=-1); + hitData_key(int bct=0, double gt=0, int vmm=-1,int ev=-1); //for these operators, "less" means what you think it means //with precedence of quantities the same as order in the constructor //in the context of "earlier," it might make sense to say that a hit is earlier if, @@ -373,7 +373,7 @@ struct hitData_key{ void print() const; int BC_time; - double time,gtime; + double gtime; int VMM_chip,event; @@ -436,7 +436,7 @@ struct Hit{ struct hitData_entry{ hitData_entry(int ev=0, double gt=0, double q=0, int vmm=0, int mmfe=0, int pl=0, int st=0, int est=0, int phi=0, int mult=0, int gg=0, double locX=0, double tr_the=0, double tru_phi=0, - bool q_tbg=0, int bct=0, double time=0,const ROOT::Math::XYZVector& tru=ROOT::Math::XYZVector(), const ROOT::Math::XYZVector& rec=ROOT::Math::XYZVector(), + bool q_tbg=0, int bct=0, const ROOT::Math::XYZVector& tru=ROOT::Math::XYZVector(), const ROOT::Math::XYZVector& rec=ROOT::Math::XYZVector(), double fit_the=0, double fit_phi=0, double fit_dth=0, double tru_dth=0,// double tru_thl=0, double tru_thg=0, double mxg=0, double mug=0, double mvg=0, double mxl=0, double the_mx=0, double the_my=0, int the_roi=0); @@ -452,7 +452,6 @@ struct hitData_entry{ double localX,tru_theta_ip,tru_phi_ip; bool truth_nbg;//truth (i.e. not bg) if true, int BC_time;/*fit theta, phi, dtheta originally here*/ - double time; ROOT::Math::XYZVector truth,recon; double fit_theta,fit_phi; double fit_dtheta; diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx index 448c5c2792ac9f24cd36e6271d6d6bcfb0d3e9e9..43e6df03c35f2f4e93f76e83cce07d8feb9ad8aa 100644 --- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx +++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1NSWSimTools/MMLoadVariables.h" @@ -276,8 +276,6 @@ StatusCode MMLoadVariables::getMMDigitsInfo(const EventContext& ctx, xxuv_to_uvxx(recon,thisPlane,pars[station]); } - int special_time = thisTime + (event+1)*100; - hitData_entry hit_entry(event, thisTime, thisCharge, @@ -294,7 +292,6 @@ StatusCode MMLoadVariables::getMMDigitsInfo(const EventContext& ctx, tru_phi, true, BC_id, - special_time, mazin_check, mazin_check); diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Fitter.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Fitter.cxx index 7accbcf09374c37e92b1e2f2781c22c402da2e80..8f83af85ab3146dd7958502677cbf4afc99e425c 100644 --- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Fitter.cxx +++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Fitter.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "AthenaKernel/getMessageSvc.h" @@ -120,7 +120,7 @@ evFit_entry MMT_Fitter::fit_event(int event, vector<Hit>& track, vector<hitData_ int MMT_Fitter::find_hitData(const vector<hitData_entry>& hitDatas, const hitData_key& key) const{ for(unsigned int i=0;i<hitDatas.size();i++){ - if(hitDatas[i].BC_time==key.BC_time && hitDatas[i].time==key.time && hitDatas[i].gtime==key.gtime && hitDatas[i].VMM_chip==key.VMM_chip) return i; + if(hitDatas[i].BC_time==key.BC_time && hitDatas[i].gtime==key.gtime && hitDatas[i].VMM_chip==key.VMM_chip) return i; } return -1; } diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx index 4e312af9185200bebf5801d80c593b94e10bc4db..5467ef4a3b95037d8db648b013127d9d8a03dbaa 100644 --- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx +++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1NSWSimTools/MMT_struct.h" @@ -1047,10 +1047,10 @@ evFit_entry::evFit_entry(int event,double fthe,double fphi,double fdth,int roi,i void evFit_entry::print()const{ } -hitData_key::hitData_key(int bct, double t, double gt, int vmm, int ev):BC_time(bct),time(t),gtime(gt),VMM_chip(vmm),event(ev) {} +hitData_key::hitData_key(int bct, double gt, int vmm, int ev):BC_time(bct),gtime(gt),VMM_chip(vmm),event(ev) {} bool hitData_key::operator==(const hitData_key& rhs) const{ - if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime==rhs.gtime && this->VMM_chip==rhs.VMM_chip && this->event==rhs.event) return true; + if(this->BC_time==rhs.BC_time && this->gtime==rhs.gtime && this->VMM_chip==rhs.VMM_chip && this->event==rhs.event) return true; return false; } @@ -1059,19 +1059,17 @@ bool hitData_key::operator!=(const hitData_key& rhs) const{ } bool hitData_key::operator<(const hitData_key& rhs) const{ if(this->BC_time<rhs.BC_time) return true; - else if(this->BC_time==rhs.BC_time && this->time<rhs.time) return true; - else if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime<rhs.gtime) return true; - else if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime==rhs.gtime && this->VMM_chip<rhs.VMM_chip) return true; - else if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime==rhs.gtime && this->VMM_chip==rhs.VMM_chip && this->event<rhs.event) return true; + else if(this->BC_time==rhs.BC_time && this->gtime<rhs.gtime) return true; + else if(this->BC_time==rhs.BC_time && this->gtime==rhs.gtime && this->VMM_chip<rhs.VMM_chip) return true; + else if(this->BC_time==rhs.BC_time && this->gtime==rhs.gtime && this->VMM_chip==rhs.VMM_chip && this->event<rhs.event) return true; return false; } bool hitData_key::operator>(const hitData_key& rhs) const{ if(this->BC_time>rhs.BC_time) return true; - else if(this->BC_time==rhs.BC_time && this->time>rhs.time) return true; - else if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime>rhs.gtime) return true; - else if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime==rhs.gtime && this->VMM_chip>rhs.VMM_chip) return true; - else if(this->BC_time==rhs.BC_time && this->time==rhs.time && this->gtime==rhs.gtime && this->VMM_chip==rhs.VMM_chip && this->event>rhs.event) return true; + else if(this->BC_time==rhs.BC_time && this->gtime>rhs.gtime) return true; + else if(this->BC_time==rhs.BC_time && this->gtime==rhs.gtime && this->VMM_chip>rhs.VMM_chip) return true; + else if(this->BC_time==rhs.BC_time && this->gtime==rhs.gtime && this->VMM_chip==rhs.VMM_chip && this->event>rhs.event) return true; return false; } @@ -1085,12 +1083,12 @@ bool hitData_key::operator>=(const hitData_key& rhs) const{ string hitData_key::hdr()const{ ostringstream out; - out << setw(12) << "BC_t" << setw(12) << "t" << setw(12) << "g_t" << setw(12) << "VMM" << setw(12) << "event"; + out << setw(12) << "BC_t" << setw(12) << "g_t" << setw(12) << "VMM" << setw(12) << "event"; return out.str(); } string hitData_key::str()const{ ostringstream out; - out << setw(12) << this->BC_time << setw(12) << this->time << setw(12) << this->gtime << setw(12) << this->VMM_chip << setw(12) << this->event; + out << setw(12) << this->BC_time << setw(12) << this->gtime << setw(12) << this->VMM_chip << setw(12) << this->event; return out.str(); } void hitData_key::print()const{ @@ -1215,17 +1213,17 @@ void Hit::print() const{ } hitData_entry::hitData_entry(int ev, double gt, double q, int vmm, int mmfe, int pl, int st, int est, int phi, int mult, int gg, double locX, double tr_the, double tru_phi, - bool q_tbg, int bct, double t, const ROOT::Math::XYZVector& tru, const ROOT::Math::XYZVector& rec, + bool q_tbg, int bct, const ROOT::Math::XYZVector& tru, const ROOT::Math::XYZVector& rec, double fit_the, double fit_ph, double fit_dth, double tru_dth,// double tru_thl, double tru_thg, double mxg, double mug, double mvg, double mxl, double the_mx, double the_my, int the_roi): - event(ev),gtime(gt),charge(q),VMM_chip(vmm),MMFE_VMM(mmfe),plane(pl),strip(st),station_eta(est),station_phi(phi),multiplet(mult),gasgap(gg),localX(locX),tru_theta_ip(tr_the),tru_phi_ip(tru_phi),truth_nbg(q_tbg),BC_time(bct),time(t),truth(tru),recon(rec),fit_theta(fit_the),fit_phi(fit_ph),fit_dtheta(fit_dth),tru_dtheta(tru_dth), + event(ev),gtime(gt),charge(q),VMM_chip(vmm),MMFE_VMM(mmfe),plane(pl),strip(st),station_eta(est),station_phi(phi),multiplet(mult),gasgap(gg),localX(locX),tru_theta_ip(tr_the),tru_phi_ip(tru_phi),truth_nbg(q_tbg),BC_time(bct),truth(tru),recon(rec),fit_theta(fit_the),fit_phi(fit_ph),fit_dtheta(fit_dth),tru_dtheta(tru_dth), /*tru_theta_local(tru_thl),tru_theta_global(tru_thg),*/M_x_global(mxg),M_u_global(mug),M_v_global(mvg),M_x_local(mxl),mx(the_mx),my(the_my),roi(the_roi) {} Hit hitData_entry::entry_hit(std::shared_ptr<MMT_Parameters> par)const{ return Hit(entry_key(),entry_info(par)); } hitData_key hitData_entry::entry_key() const{ - return hitData_key(BC_time,time,gtime,VMM_chip,event); + return hitData_key(BC_time,gtime,VMM_chip,event); } hitData_info hitData_entry::entry_info(std::shared_ptr<MMT_Parameters> par)const{ diff --git a/Trigger/TrigValidation/TrigP1Test/share/test_trigP1_magFieldToggle.ref b/Trigger/TrigValidation/TrigP1Test/share/test_trigP1_magFieldToggle.ref index a163d9aef5b9e3eb8c7ca6da819fd44fd1e1f9dd..08549fce9c02f91e253689240f2cb366672af88f 100644 --- a/Trigger/TrigValidation/TrigP1Test/share/test_trigP1_magFieldToggle.ref +++ b/Trigger/TrigValidation/TrigP1Test/share/test_trigP1_magFieldToggle.ref @@ -1,131 +1,131 @@ -AtlasFieldCacheCondAlg 1 0 INFO updateCurrentFromParameters: Update from job options: Range of input/output is {[440499,l:0,b:4294967295] - [440500,l:0,b:4294967295]} -AtlasFieldCacheCondAlg 1 0 INFO execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor 1/1, EventRange {[440499,l:0,b:4294967295] - [440500,l:0,b:4294967295]} -AtlasFieldCacheCondAlg 1 0 INFO execute: solenoid zone id 7000 -MagFieldCondReader 1 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 1 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 2 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 2 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 3 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 3 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 4 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 4 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 5 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 5 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 6 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 6 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 7 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 7 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 8 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 8 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 9 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 9 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 10 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 10 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 11 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 11 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 12 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 12 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 13 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 13 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 14 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 14 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 15 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 15 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 16 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 16 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 17 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 17 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 18 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 18 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 19 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 19 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 20 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 20 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -AtlasFieldCacheCondAlg 1 0 INFO updateCurrentFromParameters: Update from job options: Range of input/output is {[431886,l:0,b:4294967295] - [431887,l:0,b:4294967295]} -AtlasFieldCacheCondAlg 1 0 INFO execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor 1/1, EventRange {[431886,l:0,b:4294967295] - [431887,l:0,b:4294967295]} -AtlasFieldCacheCondAlg 1 0 INFO execute: no map read (currents == 0 -MagFieldCondReader 1 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 1 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 2 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 2 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 3 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 3 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 4 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 4 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 5 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 5 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 6 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 6 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 7 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 7 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 8 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 8 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 9 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 9 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 10 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 10 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 11 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 11 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 12 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 12 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 13 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 13 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 14 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 14 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 15 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 15 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 16 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 16 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 17 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 17 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 18 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 18 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 19 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 19 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -MagFieldCondReader 20 0 INFO Field status: solenoid=0, toroids=0 -MagFieldCondReader 20 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 -AtlasFieldCacheCondAlg 1 0 INFO updateCurrentFromParameters: Update from job options: Range of input/output is {[431887,l:0,b:4294967295] - [431888,l:0,b:4294967295]} -AtlasFieldCacheCondAlg 1 0 INFO execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor 1/1, EventRange {[431887,l:0,b:4294967295] - [431888,l:0,b:4294967295]} -AtlasFieldCacheCondAlg 1 0 INFO execute: solenoid zone id 7000 -MagFieldCondReader 1 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 1 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 2 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 2 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 3 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 3 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 4 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 4 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 5 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 5 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 6 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 6 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 7 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 7 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 8 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 8 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 9 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 9 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 10 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 10 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 11 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 11 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 12 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 12 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 13 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 13 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 14 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 14 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 15 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 15 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 16 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 16 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 17 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 17 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 18 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 18 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 19 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 19 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -MagFieldCondReader 20 0 INFO Field status: solenoid=1, toroids=1 -MagFieldCondReader 20 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 -AtlasFieldCacheCondAlg INFO Initialize: Will update current from parameters -AtlasFieldCacheCondAlg INFO Initialize: useDCS, useSoleCurrent, useToroCurrent. 0, 'UseSoleCurrent':7730.0000, 'UseToroCurrent':20400.000 LockMapCurrents 1 +AtlasFieldCacheCondAlg 1 0 INFO updateCurrentFromParameters: Update from job options: Range of input/output is {[475321,l:0,b:4294967295] - [475322,l:0,b:4294967295]} +AtlasFieldCacheCondAlg 1 0 INFO execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor 1/1, EventRange {[475321,l:0,b:4294967295] - [475322,l:0,b:4294967295]} +AtlasFieldCacheCondAlg 1 0 INFO execute: solenoid zone id 7000 +MagFieldCondReader 1 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 1 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 2 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 2 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 3 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 3 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 4 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 4 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 5 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 5 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 6 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 6 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 7 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 7 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 8 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 8 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 9 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 9 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 10 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 10 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 11 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 11 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 12 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 12 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 13 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 13 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 14 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 14 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 15 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 15 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 16 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 16 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 17 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 17 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 18 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 18 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 19 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 19 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 20 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 20 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +AtlasFieldCacheCondAlg 1 0 INFO updateCurrentFromParameters: Update from job options: Range of input/output is {[431886,l:0,b:4294967295] - [431887,l:0,b:4294967295]} +AtlasFieldCacheCondAlg 1 0 INFO execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor 1/1, EventRange {[431886,l:0,b:4294967295] - [431887,l:0,b:4294967295]} +AtlasFieldCacheCondAlg 1 0 INFO execute: no map read (currents == 0 +MagFieldCondReader 1 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 1 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 2 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 2 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 3 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 3 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 4 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 4 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 5 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 5 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 6 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 6 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 7 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 7 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 8 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 8 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 9 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 9 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 10 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 10 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 11 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 11 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 12 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 12 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 13 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 13 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 14 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 14 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 15 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 15 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 16 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 16 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 17 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 17 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 18 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 18 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 19 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 19 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +MagFieldCondReader 20 0 INFO Field status: solenoid=0, toroids=0 +MagFieldCondReader 20 0 INFO Field xyz: 100, 100, 100, 1e-08, 1e-08, 1e-08 +AtlasFieldCacheCondAlg 1 0 INFO updateCurrentFromParameters: Update from job options: Range of input/output is {[431887,l:0,b:4294967295] - [431888,l:0,b:4294967295]} +AtlasFieldCacheCondAlg 1 0 INFO execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor 1/1, EventRange {[431887,l:0,b:4294967295] - [431888,l:0,b:4294967295]} +AtlasFieldCacheCondAlg 1 0 INFO execute: solenoid zone id 7000 +MagFieldCondReader 1 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 1 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 2 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 2 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 3 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 3 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 4 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 4 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 5 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 5 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 6 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 6 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 7 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 7 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 8 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 8 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 9 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 9 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 10 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 10 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 11 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 11 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 12 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 12 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 13 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 13 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 14 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 14 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 15 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 15 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 16 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 16 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 17 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 17 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 18 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 18 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 19 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 19 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +MagFieldCondReader 20 0 INFO Field status: solenoid=1, toroids=1 +MagFieldCondReader 20 0 INFO Field xyz: 100, 100, 100, 1.58913e-06, -2.49264e-07, 0.00199734 +AtlasFieldCacheCondAlg INFO Initialize: Will update current from parameters +AtlasFieldCacheCondAlg INFO Initialize: useDCS, useSoleCurrent, useToroCurrent. 0, 'UseSoleCurrent':7730.0000, 'UseToroCurrent':20400.000 LockMapCurrents 1