From 311eac5d664726a226ac502a93a99573e363bebc Mon Sep 17 00:00:00 2001 From: Jon Burr <jon.burr@cern.ch> Date: Fri, 10 Jul 2020 17:32:08 +0200 Subject: [PATCH] Add python helper config class for the LC calibrator alg --- .../TrigCaloRec/python/TrigCaloRecConfig.py | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/Trigger/TrigAlgorithms/TrigCaloRec/python/TrigCaloRecConfig.py b/Trigger/TrigAlgorithms/TrigCaloRec/python/TrigCaloRecConfig.py index c195fa4f553b..a27b7ae46646 100755 --- a/Trigger/TrigAlgorithms/TrigCaloRec/python/TrigCaloRecConfig.py +++ b/Trigger/TrigAlgorithms/TrigCaloRec/python/TrigCaloRecConfig.py @@ -19,6 +19,7 @@ from TrigCaloRec.TrigCaloRecConf import RoIFCalHadCellContMaker from TrigCaloRec.TrigCaloRecConf import FullCaloCellContMaker from TrigCaloRec.TrigCaloRecConf import TrigLArNoisyROAlg from TrigCaloRec.TrigCaloRecConf import TrigL1BSTowerHypo +from TrigCaloRec.TrigCaloRecConf import TrigCaloClusterCalibratorMT from LArRecUtils.LArRecUtilsConf import LArTowerBuilderTool from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool from CaloRec.CaloRecConf import CaloCellContainerFinalizerTool @@ -1767,4 +1768,83 @@ class HLTCaloCellMaker (_HLTCaloCellMaker): self.MonTool = monTool self.monitorCells = monitorCells +class TrigCaloClusterCalibratorMT_LC(TrigCaloClusterCalibratorMT): + """ Class to set up the default configurations for LC calibrations """ + def __init__(self, name="TrigCaloClusterCalibratorMT_LC", **kwargs): + super(TrigCaloClusterCalibratorMT_LC, self).__init__(name, **kwargs) + + from CaloTools.CaloNoiseCondAlg import CaloNoiseCondAlg + from CaloUtils.CaloUtilsConf import CaloLCClassificationTool, CaloLCWeightTool, CaloLCOutOfClusterTool, CaloLCDeadMaterialTool + from CaloClusterCorrection.CaloClusterCorrectionConf import CaloClusterLocalCalib + from AthenaCommon.GlobalFlags import globalflags + + # Need electronic noise for LCWeights + CaloNoiseCondAlg(noisetype="electronicNoise") + + # Figure out the detector version + det_version_is_rome = globalflags.DetDescrVersion().startswith("Rome") + + self.ClusterCorrectionTools = [] + + # Set up the tools + self += CaloClusterLocalCalib( + "TrigLocalCalib", + ClusterRecoStatus = [1, 2]) + self.TrigLocalCalib += CaloLCClassificationTool( + "TrigLCClassify", + ClassificationKey = "EMFracClassify", + UseSpread = False, + MaxProbability = 0.85 if det_version_is_rome else 0.5, + UseNormalizedEnergyDensity = not det_version_is_rome, + StoreClassificationProbabilityInAOD = True) + self.TrigLocalCalib.ClusterClassificationTool = [self.TrigLocalCalib.TrigLCClassify] + self.TrigLocalCalib += CaloLCWeightTool( + "TrigLCWeight", + CorrectionKey = "H1ClusterCellWeights", + SignalOverNoiseCut = 2.0, + UseHadProbability = True) + self.TrigLocalCalib.LocalCalibTools = [self.TrigLocalCalib.TrigLCWeight] + self.ClusterCorrectionTools.append(self.TrigLocalCalib) + + self += CaloClusterLocalCalib( + "TrigOOCCalib", + ClusterRecoStatus = [1, 2]) + self.TrigOOCCalib += CaloLCOutOfClusterTool( + "TrigLCOut", + CorrectionKey = "OOCCorrection", + UseEmProbability = False, + UseHadProbability = True) + self.TrigOOCCalib.LocalCalibTools = [self.TrigOOCCalib.TrigLCOut] + self.ClusterCorrectionTools.append(self.TrigOOCCalib) + + self += CaloClusterLocalCalib( + "TrigOOCPi0Calib", + ClusterRecoStatus = [1, 2]) + self.TrigOOCPi0Calib += CaloLCOutOfClusterTool( + "TrigLCOutPi0", + CorrectionKey = "OOCPi0Correction", + UseEmProbability = True, + UseHadProbability = False) + self.TrigOOCPi0Calib.LocalCalibTools = [self.TrigOOCPi0Calib.TrigLCOutPi0] + self.ClusterCorrectionTools.append(self.TrigOOCPi0Calib) + + self += CaloClusterLocalCalib( + "TrigDMCalib", + ClusterRecoStatus = [1, 2]) + self.TrigDMCalib += CaloLCDeadMaterialTool( + "TrigLCDeadMaterial", + HadDMCoeffKey = "HadDMCoeff2", + ClusterRecoStatus = 0, + WeightModeDM = 2, + UseHadProbability = True) + self.TrigDMCalib.LocalCalibTools = [self.TrigDMCalib.TrigLCDeadMaterial] + self.ClusterCorrectionTools.append(self.TrigDMCalib) + + # Also set up the monitoring + from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool + self.MonTool = GenericMonitoringTool("MonTool") + self.MonTool.defineHistogram('Et', path='EXPERT', type='TH1F', title="Cluster E_T; E_T [ MeV ] ; Number of Clusters", xbins=135, xmin=-200.0, xmax=2500.0) + self.MonTool.defineHistogram('Eta', path='EXPERT', type='TH1F', title="Cluster #eta; #eta ; Number of Clusters", xbins=100, xmin=-2.5, xmax=2.5) + self.MonTool.defineHistogram('Phi', path='EXPERT', type='TH1F', title="Cluster #phi; #phi ; Number of Clusters", xbins=64, xmin=-3.2, xmax=3.2) + self.MonTool.defineHistogram('Eta,Phi', path='EXPERT', type='TH2F', title="Number of Clusters; #eta ; #phi ; Number of Clusters", xbins=100, xmin=-2.5, xmax=2.5, ybins=128, ymin=-3.2, ymax=3.2) -- GitLab