ATLAS Offline Software
Loading...
Searching...
No Matches
LArRecUtilsConfig.py
Go to the documentation of this file.
1"""ComponentAccumulator configuration utilities for LArRecUtils
2
3Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
4"""
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from AthenaCommon.Logging import logging
8from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
9from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBCfg
10from AthenaConfiguration.Enums import LHCPeriod
11
12def LArMCSymCondAlgCfg(flags, name="LArMCSymCondAlg", **kwargs):
13 """Return ComponentAccumulator with configured LArMCSymCondAlg"""
14 acc = ComponentAccumulator()
15 kwargs.setdefault("ReadKey", "LArOnOffIdMap")
16 acc.addCondAlgo(CompFactory.LArMCSymCondAlg(name, **kwargs))
17 return acc
18
19
20def LArAutoCorrNoiseCondAlgCfg(flags, name="LArAutoCorrNoiseCondAlg", **kwargs):
21 """Return ComponentAccumulator with configured LArAutoCorrNoiseCondAlg"""
22
23 LArAutoCorrNoiseCondAlg=CompFactory.LArAutoCorrNoiseCondAlg
24 # The LArAutoCorrNoiseCondAlgCfg needs the cabling, the sym-object and the AutoCorr
25 acc = LArOnOffIdMappingCfg(flags)
26 acc.merge(LArMCSymCondAlgCfg(flags))
27 acc.merge(LArElecCalibDBCfg(flags,["AutoCorr",]))
28 kwargs.setdefault("nSampl", flags.LAr.ROD.nSamples)
29 acc.addCondAlgo(LArAutoCorrNoiseCondAlg(name, **kwargs))
30 return acc
31
32
33def LArOFCCondAlgCfg (flags, name = 'LArOFCCondAlg', **kwargs):
34
35 mlog = logging.getLogger ('LArOFCCondAlgCfg')
36 mlog.info(" entering LArOFCCondAlgCfg")
37
38 kwargs.setdefault ('isMC', True)
39 kwargs.setdefault ('firstSample', flags.LAr.ROD.FirstSample)
40 kwargs.setdefault ('useHighestGainAutoCorr', flags.LAr.ROD.UseHighestGainAutoCorr)
41 kwargs.setdefault('Nminbias',flags.LAr.ROD.NumberOfCollisions)
42 mlog.info("Setup LArOFCCOndAlg Nminbias %f ", flags.LAr.ROD.NumberOfCollisions)
43 #The LArPileUpTool needs: Calbling, Shape, Noise, Pedestal and the (total) AutoCorr
44 acc = LArOnOffIdMappingCfg(flags)
45 requiredConditons=["Shape","Noise","Pedestal"]
46 acc.merge(LArElecCalibDBCfg(flags,requiredConditons))
47 acc.merge(LArAutoCorrTotalCondAlgCfg(flags))
48 LArOFCCondAlg=CompFactory.LArOFCCondAlg
49 acc.addCondAlgo (LArOFCCondAlg (name, **kwargs))
50 return acc
51
52
53def LArOFCSCCondAlgCfg (flags, name = 'LArOFCSCCondAlg', **kwargs):
54
55 mlog = logging.getLogger ('LArOFCSCCondAlgCfg')
56 mlog.info(" entering LArOFCSCCondAlgCfg")
57
58 kwargs.setdefault ('isMC', True)
59 kwargs.setdefault ('isSuperCell', True)
60 kwargs.setdefault ('firstSample', flags.LAr.ROD.FirstSample)
61 kwargs.setdefault ('useHighestGainAutoCorr', flags.LAr.ROD.UseHighestGainAutoCorr)
62 kwargs.setdefault ('NGains',1) #SuperCells have only one gain
63 from LArCabling.LArCablingConfig import LArOnOffIdMappingSCCfg
64 acc = LArOnOffIdMappingSCCfg(flags)
65 kwargs.setdefault("LArOnOffIdMappingObjKey", 'LArOnOffIdMapSC') # Provided by LArOnOffMappingAlgSC
66 requiredConditions=["ShapeSC","PedestalSC","NoiseSC"]
67 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBMCSCCfg
68 acc.merge(LArElecCalibDBMCSCCfg(flags,requiredConditions))
69 kwargs.setdefault("LArShapeObjKey", 'LArShapeSC') # Provided by LArFlatConditionsAlg<LArShapeSC>
70 kwargs.setdefault("LArNoiseObjKey", 'LArNoiseSC') # Provided by LArFlatConditionsAlg<LArNoiseSC>
71 kwargs.setdefault("LArPedestalObjKey", 'LArPedestalSC') # Provided by LArFlatConditionsAlg<LArPedestalSC>
72
73 acc.merge(LArAutoCorrTotalSCCondAlgCfg(flags))
74 kwargs.setdefault("LArAutoCorrTotalObjKey", 'LArAutoCorrTotalSC') # Provided by LArAutoCorrTotalSCCondAlg
75 kwargs.setdefault("LArOFCObjKey", 'LArOFCSC') # Output
76
77 kwargs.setdefault('Nminbias',flags.LAr.ROD.NumberOfCollisions)
78 mlog.info("Setup LArOFCSCCOndAlg Nminbias %f ", flags.LAr.ROD.NumberOfCollisions)
79
80 acc.addCondAlgo (CompFactory.LArOFCCondAlg (name, **kwargs))
81 return acc
82
83
84def LArAutoCorrTotalCondAlgCfg (flags, name = 'LArAutoCorrTotalCondAlg', **kwargs):
85 mlog = logging.getLogger ('LArAutoCorrTotalCondAlgCfg')
86 mlog.info(" entering LArAutoCorrTotalCondAlgCfg")
87 from AthenaCommon.SystemOfUnits import ns
88
89
90 kwargs.setdefault('NGains', 2 if flags.GeoModel.Run==LHCPeriod.Run4 and flags.IOVDb.UseCREST else 3)
91 kwargs.setdefault('Nsamples', flags.LAr.ROD.nSamples)
92 kwargs.setdefault('firstSample',flags.LAr.ROD.FirstSample)
93 mlog.info("Nsamples %d",flags.LAr.ROD.nSamples)
94 mlog.info("firstSample %d",flags.LAr.ROD.FirstSample)
95 deltaBunch = int(flags.Beam.BunchSpacing/( 25.*ns)+0.5)
96 mlog.info("DeltaBunch %d " , deltaBunch)
97 kwargs.setdefault('deltaBunch',deltaBunch)
98
99 if flags.LAr.ROD.NumberOfCollisions <= 0:
100 kwargs.setdefault("NoPileUp", True)
101 mlog.info(" no pileup noise in LArAutoCorrTotal ")
102 else:
103 kwargs.setdefault("NoPileUp", False)
104
105 #The LArAutoCorrTotalAlg needs cabling and
106 #Shape, AutoCorr, Noise, Pedestal, fSampl and MinBias
107 acc = LArOnOffIdMappingCfg(flags)
108 requiredConditons=["Shape","AutoCorr","Noise","Pedestal","fSampl","MinBias"]
109 acc.merge(LArElecCalibDBCfg(flags,requiredConditons))
110 LArAutoCorrTotalCondAlg=CompFactory.LArAutoCorrTotalCondAlg
111 acc.addCondAlgo (LArAutoCorrTotalCondAlg (name, **kwargs))
112 return acc
113
114
115def LArAutoCorrTotalSCCondAlgCfg (flags, name = 'LArAutoCorrTotalSCCondAlg', **kwargs):
116 mlog = logging.getLogger ('LArAutoCorrTotalSCCondAlgCfg')
117 mlog.info(" entering LArAutoCorrTotalSCCondAlgCfg")
118 from AthenaCommon.SystemOfUnits import ns
119
120 acc = LArOnOffIdMappingCfg(flags)
121 kwargs.setdefault("LArOnOffIdMappingObjKey", 'LArOnOffIdMapSC') # Provided by LArOnOffMappingAlgSC
122
123 from LArRecUtils.LArADC2MeVSCCondAlgConfig import LArADC2MeVSCCondAlgCfg
124 acc.merge(LArADC2MeVSCCondAlgCfg(flags))
125 kwargs.setdefault("LArADC2MeVObjKey", 'LArADC2MeVSC') # Provided by LArADC2MeVSCCondAlg
126
127 requiredConditons=["ShapeSC","AutoCorrSC","NoiseSC","PedestalSC","fSamplSC","MinBiasSC"]
128 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBMCSCCfg
129 acc.merge(LArElecCalibDBMCSCCfg(flags,requiredConditons))
130 kwargs.setdefault("LArShapeObjKey", 'LArShapeSC') # Provided by LArFlatConditionsAlg<LArShapeSC>
131 kwargs.setdefault("LArAutoCorrObjKey", 'LArAutoCorrSC')# Provided by LArFlatConditionsAlg<LArAutoCorrSC>
132 kwargs.setdefault("LArNoiseObjKey", 'LArNoiseSC') # Provided by LArFlatConditionsAlg<LArNoiseSC>
133 kwargs.setdefault("LArPedestalObjKey", 'LArPedestalSC') # Provided by LArFlatConditionsAlg<LArPedestalSC>
134 kwargs.setdefault("LArfSamplObjKey", 'LArfSamplSC') # Provided by LArFlatConditionsAlg<LArfSamplSC>
135 kwargs.setdefault("LArMinBiasObjKey", 'LArMinBiasSC') # Provided by LArFlatConditionsAlg<LArMinBiasSC>
136
137 kwargs.setdefault("LArAutoCorrTotalObjKey", 'LArAutoCorrTotalSC') # Output
138
139 kwargs.setdefault("isSuperCell", True)
140 kwargs.setdefault('Nsamples', flags.LAr.ROD.nSamples)
141 kwargs.setdefault('firstSample',flags.LAr.ROD.FirstSample)
142 mlog.info("Nsamples %d",flags.LAr.ROD.nSamples)
143 mlog.info("firstSample %d",flags.LAr.ROD.FirstSample)
144 deltaBunch = int(flags.Beam.BunchSpacing/( 25.*ns)+0.5)
145 mlog.info("DeltaBunch %d " , deltaBunch)
146 kwargs.setdefault('deltaBunch',deltaBunch)
147
148
149 if flags.LAr.ROD.NumberOfCollisions <= 0:
150 kwargs.setdefault("NoPileUp", True)
151 mlog.info(" no pileup noise in LArAutoCorrTotal ")
152 else:
153 kwargs.setdefault("NoPileUp", False)
154
155 LArAutoCorrTotalCondAlg=CompFactory.LArAutoCorrTotalCondAlg
156 acc.addCondAlgo (LArAutoCorrTotalCondAlg (name, **kwargs))
157 return acc
158
159
160def LArRoIMapCondAlgCfg (flags, name = 'LArRoIMapCondAlg', **kwargs):
161 acc = ComponentAccumulator()
162
163 from LArCabling.LArCablingConfig import LArFebRodMappingCfg, LArOnOffIdMappingCfg
164 acc.merge (LArFebRodMappingCfg (flags))
165 acc.merge (LArOnOffIdMappingCfg (flags))
166
167 from CaloConditions.CaloConditionsConfig import LArTTCellMapCfg, CaloTTIdMapCfg
168 acc.merge(LArTTCellMapCfg(flags))
169 acc.merge(CaloTTIdMapCfg(flags))
170
171 CaloTriggerTowerService = CompFactory.CaloTriggerTowerService # CaloTriggerTool
172 kwargs.setdefault ('TriggerTowerSvc', CaloTriggerTowerService())
173
174 LArRoIMapCondAlg = CompFactory.LArRoIMapCondAlg
175 acc.addCondAlgo (LArRoIMapCondAlg (name, **kwargs))
176 return acc
177
178
179if __name__ == "__main__":
180 from AthenaConfiguration.AllConfigFlags import initConfigFlags
181 from AthenaConfiguration.TestDefaults import defaultTestFiles
182
183 print ('--- LArOFCCondAlg 1')
184 flags1 = initConfigFlags()
185 flags1.LAr.ROD.NumberOfCollisions=0
186 flags1.Input.Files = defaultTestFiles.RDO_RUN2
187 flags1.lock()
188 acc1 = LArOFCCondAlgCfg (flags1)
189 acc1.printCondAlgs(summariseProps=True)
190 acc1.wasMerged()
191
192 print ('--- LArAutoCorrTotalCondAlg')
193 flags4 = initConfigFlags()
194 flags4.LAr.ROD.NumberOfCollisions=0
195 flags4.Input.Files = defaultTestFiles.RDO_RUN2
196 flags4.LAr.ROD.nSamples = 32
197 flags4.lock()
198 acc4 = LArAutoCorrTotalCondAlgCfg (flags4)
199 acc4.printCondAlgs(summariseProps=True)
200 acc4.wasMerged()
201
202 print ('--- LArRoIMapCondAlg')
203 flags5 = initConfigFlags()
204 flags5.LAr.ROD.NumberOfCollisions=0
205 flags5.Input.Files = defaultTestFiles.RDO_RUN2
206 flags5.lock()
207 acc5 = LArRoIMapCondAlgCfg (flags5)
208 acc5.printCondAlgs(summariseProps=True)
209 acc5.wasMerged()
Tool providing the mapping of the online and offline TriggerTower identifiers as well as the TT-cells...
LArAutoCorrTotalCondAlgCfg(flags, name='LArAutoCorrTotalCondAlg', **kwargs)
LArRoIMapCondAlgCfg(flags, name='LArRoIMapCondAlg', **kwargs)
LArOFCSCCondAlgCfg(flags, name='LArOFCSCCondAlg', **kwargs)
LArOFCCondAlgCfg(flags, name='LArOFCCondAlg', **kwargs)
LArMCSymCondAlgCfg(flags, name="LArMCSymCondAlg", **kwargs)
LArAutoCorrTotalSCCondAlgCfg(flags, name='LArAutoCorrTotalSCCondAlg', **kwargs)
LArAutoCorrNoiseCondAlgCfg(flags, name="LArAutoCorrNoiseCondAlg", **kwargs)