ATLAS Offline Software
CaloLCWPerformanceConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 # CA config of job to get performance plots for local hadronic
3 # calibration on single pions
4 
5 
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 
9 
10 
11 def GetLCWPerfCfg(flags):
12 
14 
15  lcPerf = CompFactory.GetLCSinglePionsPerf("LocalHadPerformance")
16 
17  # collection name to study cluster moments
18  lcPerf.ClusterBasicCollName = "CaloTopoClusters"
19 
20  # collections names to study engReco wrt Truth after different correction steps
21  lcPerf.ClusterCollectionNames = ["CaloTopoClusters", "CaloWTopoCluster", "CaloOOCTopoCluster", "CaloCalTopoClusters"]
22 
23  lcPerf.CalibrationHitContainerNames= ["LArCalibrationHitInactive","LArCalibrationHitActive","TileCalibHitActiveCell","TileCalibHitInactiveCell"]
24  lcPerf.DMCalibrationHitContainerNames= ["LArCalibrationHitDeadMaterial_DEAD","LArCalibrationHitInactive_DEAD","LArCalibrationHitActive_DEAD","TileCalibHitDeadMaterial"]
25 
26  from math import pi
27  lcPerf.DistanceCut = 1.5
28  lcPerf.doEngRecOverTruth = True
29  lcPerf.doEngTag = True
30  lcPerf.doEngRecSpect = True
31  lcPerf.doEngNoiseClus = True
32  lcPerf.doClusMoments = True
33  lcPerf.doRecoEfficiency = True
34  lcPerf.etamin = 0.0
35  lcPerf.etamax = 5.0
36  lcPerf.netabin = 25
37  lcPerf.phimin = -pi
38  lcPerf.phimax = pi
39  lcPerf.nphibin = 1
40  lcPerf.logenermin = 2.0
41  lcPerf.logenermax = 6.4
42  lcPerf.nlogenerbin = 22
43  lcPerf.useGoodClus = False
44  lcPerf.usePionClustersOnly = False
45  lcPerf.useRecoEfficiency = False
46 
47  lcPerf.OutputFileName = flags.LCW.outFileNamePerf
48 
49  cfg.addEventAlgo(lcPerf)
50 
51  return cfg
52 
53 
54 if __name__=="__main__":
55  from AthenaConfiguration.AllConfigFlags import initConfigFlags
56  flags = initConfigFlags()
57  from CaloLocalHadCalib.LCWConfigFlags import addLCWFlags
58  addLCWFlags(flags)
59 
60  #flags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecExRecoTest/mc20e_13TeV/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.ESD.e4993_s3227_r12689/myESD.pool.root"]
61  #flags.Input.Files = ["/home/pavol/mc10_7TeV/ESD.371532._001990.pool.root.1"]
62  flags.Input.Files = ["/home/pavol/mc16_13TeV/ESD.29275544._000648.pool.root.1"]
63  flags.Output.ESDFileName="esdOut.pool.root"
64  from AthenaConfiguration.Enums import LHCPeriod
65  flags.GeoModel.Run = LHCPeriod.Run1
66  from AthenaConfiguration.TestDefaults import defaultGeometryTags
67  flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN1_2010
68 
69 
70  flags.fillFromArgs()
71 
72  # for debugging
73  from AthenaCommon.Constants import DEBUG
74  flags.Exec.OutputLevel=DEBUG
75 
76  # redo topo clusters on LC scale
77  flags.Calo.TopoCluster.doTopoClusterLocalCalib = True
78  flags.Calo.TopoCluster.doCellWeightCalib = False
79  flags.Calo.TopoCluster.doCalibHitMoments = True
80 
81  flags.Digitization.HighGainEMECIW = False
82  flags.Calo.Noise.fixedLumiForNoise=60*0.1724*50/25 # mu=60; dt=25ns
83  flags.Calo.Noise.useCaloNoiseLumi=False
84 
85  flags.lock()
86 
87  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
88  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
89 
90  cfg = MainServicesCfg(flags)
91  cfg.merge(PoolReadCfg(flags))
92 
93  from CaloRec.CaloTopoClusterConfig import CaloTopoClusterCfg
94  cfg.merge(CaloTopoClusterCfg(flags))
95 
96  topoAlg = cfg.getEventAlgo("CaloCalTopoClustersMaker")
97  topoAlg.ClusterCorrectionTools.__getitem__("TopoCalibMoments").MatchDmType = 1 # 1=loose, 2=medium (default), 3=tight
98  topoAlg.ClusterCorrectionTools.__getitem__("TopoCalibMoments").MomentsNames += ["ENG_CALIB_OUT_L"]
99  topoAlg.ClusterCorrectionTools.__getitem__("TopoCalibMoments").CalibrationHitContainerNames = ["LArCalibrationHitInactive","LArCalibrationHitActive","TileCalibHitActiveCell","TileCalibHitInactiveCell"]
100  topoAlg.ClusterCorrectionTools.__getitem__("TopoCalibMoments").DMCalibrationHitContainerNames = ["LArCalibrationHitDeadMaterial_DEAD","LArCalibrationHitInactive_DEAD","LArCalibrationHitActive_DEAD","TileCalibHitDeadMaterial"]
101 
102  # here add snapshots
103  from CaloRec.CaloTopoClusterConfig import addSnapshot
104  addSnapshot(topoAlg,"OOCPi0Calib","CaloOOCTopoCluster")
105  addSnapshot(topoAlg,"LocalCalib","CaloWTopoCluster")
106 
107  cfg.merge(GetLCWPerfCfg(flags))
108 
109  # configure output
110  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
111  myItemList = ['EventInfo#*', "McEventCollection#TruthEvent",
112  'xAOD::CaloClusterContainer#CaloCalTopoClusters',
113  'xAOD::CaloClusterAuxContainer#CaloCalTopoClustersAux.']
114 
115  cfg.merge( OutputStreamCfg(flags,"StreamDPD", ItemList=myItemList,
116  disableEventTag=True, takeItemsFromInput=False))
117 
118  # remove the default folders
119  from IOVDbSvc.IOVDbSvcConfig import blockFolder
120  blockFolder(cfg,"/CALO/Ofl/HadCalibration2/CaloEMFrac")
121  blockFolder(cfg,"/CALO/Ofl/HadCalibration2/H1ClusterCellWeights")
122  blockFolder(cfg,"/CALO/Ofl/HadCalibration2/CaloOutOfCluster")
123  blockFolder(cfg,"/CALO/Ofl/HadCalibration2/CaloOutOfClusterPi0")
124  blockFolder(cfg,"/CALO/Ofl/HadCalibration2/CaloDMCorr2")
125 
126 
127 
128  # LCW folders from sqlite files
129  clFolders=( ("/CALO/HadCalibration2/CaloEMFrac<tag>CaloEMFrac2-R3S-2021-02-00-00-FTFP-BERT-DT25-EPOS-A3-OFC25-MU60</tag>", "myclwooc.db","CaloLocalHadCoeff"),
130  ("/CALO/HadCalibration2/H1ClusterCellWeights<tag>CaloH1CellWeights2-R3S-2021-02-00-00-FTFP-BERT-DT25-EPOS-A3-OFC25-MU60</tag>", "myclwooc.db","CaloLocalHadCoeff"),
131  ("/CALO/HadCalibration2/CaloOutOfCluster<tag>CaloHadOOCCorr2-R3S-2021-02-00-00-FTFP-BERT-DT25-EPOS-A3-OFC25-MU60</tag>", "myclwooc.db","CaloLocalHadCoeff"),
132  ("/CALO/HadCalibration2/CaloOutOfClusterPi0<tag>CaloHadOOCCorrPi02-R3S-2021-02-00-00-FTFP-BERT-DT25-EPOS-A3-OFC25-MU60</tag>", "myclwooc.db","CaloLocalHadCoeff"),
133  ("/CALO/HadCalibration2/CaloDMCorr2<tag>CaloHadDMCorr2-R3S-2021-02-00-00-FTFP-BERT-DT25-EPOS-A3-OFC25-MU60</tag>", "myDm.db","CaloLocalHadCoeff") )
134  from IOVDbSvc.IOVDbSvcConfig import addFolderList
135  cfg.merge(addFolderList(flags, clFolders, db="OFLP200"))
136 
137  # for debugging purposes:
138  cfg.getService("StoreGateSvc").Dump=True
139  cfg.getService("MessageSvc").defaultLimit=999999
140 
141  cfg.run(10)
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=None, MetadataItemList=None, disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=None, HelperTools=None)
Definition: OutputStreamConfig.py:13
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.IOVDbSvcConfig.addFolderList
def addFolderList(flags, listOfFolderInfoTuple, extensible=False, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:104
python.CaloTopoClusterConfig.addSnapshot
def addSnapshot(topomaker, corrName, contName)
Definition: CaloTopoClusterConfig.py:470
CaloLCWPerformanceConfig.GetLCWPerfCfg
def GetLCWPerfCfg(flags)
Definition: CaloLCWPerformanceConfig.py:11
python.IOVDbSvcConfig.blockFolder
def blockFolder(ca, folder)
Definition: IOVDbSvcConfig.py:310
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:310
Constants
some useful constants -------------------------------------------------—
python.CaloTopoClusterConfig.CaloTopoClusterCfg
def CaloTopoClusterCfg(flags, cellsname="AllCalo", clustersname=None, clustersnapname="CaloTopoClusters")
Definition: CaloTopoClusterConfig.py:318
LCWConfigFlags.addLCWFlags
def addLCWFlags(flags)
Definition: LCWConfigFlags.py:3
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71