ATLAS Offline Software
LArConditions2Ntuple.py
Go to the documentation of this file.
1 #!/bin/env python
2 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
6 
7 if __name__=='__main__':
8 
9  import os,sys
10  import argparse
11 
12  # now process the CL options and assign defaults
13  parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
14  parser.add_argument('-r','--run', dest='run', default=0x7fffffff, help='Run number', type=int)
15  parser.add_argument('--sqlite', dest='sqlite', default=None, help='sqlite file to read from (default: oracle)', type=str)
16  parser.add_argument('-t','--tag',dest='dbtag',default=None,help="Global conditions tag", type=str)
17  parser.add_argument('-f','--ftag',dest='ftag',default=None,help="folder tag suffig", type=str)
18  parser.add_argument('-o','--out', dest='out', default="LArConditions.root", help='Output root file', type=str)
19  parser.add_argument('--ofcfolder',dest='ofcfolder',default="", help="OFC flavor",type=str)
20  parser.add_argument('-s','--isSC', dest='isSC', action='store_true', default=False, help='is SC?')
21  parser.add_argument('-m','--isMC', dest='isMC', action='store_true', default=False, help='is MC?')
22 
23  parser.add_argument("--objects",dest="objects",default="PEDESTAL,RAMP",help="List of conditions types to be dumped",type=str)
24  parser.add_argument("--folders",dest="folders",default="/LAR/ElecCalibFlat/Pedestal,/LAR/ElecCalibFlat/Ramp",help="List of folders to be taken from sqlite",type=str)
25  parser.add_argument('--offline',dest="offline", action='store_true', default=False, help='is offline folder?')
26  parser.add_argument('--poolcat',dest="poolcat", default="", type=str, help='is offline folder?')
27  parser.add_argument('-n', '--ntuple', dest='ntname', default='', help='output ntuple name (if different from default)', type=str)
28  parser.add_argument('--oLevel', dest='olevel', default=3, help='OutputLevel of the job', type=int)
29 
30  args = parser.parse_args()
31  if help in args and args.help is not None and args.help:
32  parser.print_help()
33  sys.exit(0)
34 
35  print(vars(args))
36 
37  #Translation table ... with a few potential variant spellings
38  objTable={"RAMP":"Ramp",
39  "DAC2UA":"DAC2uA",
40  "DACUA":"DAC2uA",
41  "PEDESTAL":"Pedestal",
42  "PED":"Pedestal",
43  "UA2MEV":"uA2MeV",
44  "UAMEV":"uA2MeV",
45  "MPHYSOVERMCAL":"MphysOverMcal",
46  "MPHYSMCAL":"MphysOverMcal",
47  "MPMC":"MphysOverMcal",
48  "OFC":"OFC",
49  "SHAPE":"Shape",
50  "HVSCALECORR":"HVScaleCorr",
51  "HVSCALE":"HVScaleCorr",
52  "FSAMPL":"fSampl",
53  "AUTOCORR":"AutoCorr",
54  "AC":"AutoCorr",
55  "CALIWAVE":"CaliWave",
56  "PHYSWAVE":"PhysWave",
57  "OFCCALI":"OFCCali",
58  "ACORR":"AutoCorr",
59  "DSPTHR":"DSPThr",
60  "MINBIAS":"MinBias",
61  "PHYSAC":"PhysAutoCorr",
62  }
63 
64  objects=set()
65  objectsOnl=set()
66  for obj in args.objects.split(","):
67  objU=obj.upper()
68  if objU not in objTable:
69  print("ERROR: Unknown conditions type",obj)
70  sys.exit(0)
71 
72  objects.add(objTable[objU])
73  if "OFCCALI" not in obj.upper() and 'WAVE' not in obj.upper() and 'DSPTHR' not in obj.upper() and 'MINBIAS' not in obj.upper() and not args.offline:
74  objectsOnl.add(objTable[objU])
75 
76  flds=set()
77  for fld in args.folders.split(","):
78  flds.add(fld)
79 
80  from AthenaConfiguration.AllConfigFlags import initConfigFlags
82  from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags
83  addLArCalibFlags(flags, args.isSC)
84 
85  flags.Input.RunNumbers=[args.run]
86  from AthenaConfiguration.TestDefaults import defaultGeometryTags
87  flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
88 
89  flags.Input.Files=[]
90 
91  flags.Input.isMC=args.isMC
92  flags.LArCalib.isSC=args.isSC
93 
94  flags.LAr.doAlign=False
95 
96  flags.LAr.OFCShapeFolder=args.ofcfolder
97 
98  from AthenaConfiguration.Enums import LHCPeriod
99  if flags.Input.RunNumbers[0] < 222222:
100  #Set to run1 for early run-numbers
101  flags.GeoModel.Run=LHCPeriod.Run1
102  flags.IOVDb.DatabaseInstance="OFLP200" if flags.Input.isMC else "COMP200"
103  else:
104  flags.GeoModel.Run=LHCPeriod.Run2
105  flags.IOVDb.DatabaseInstance="OFLP200" if flags.Input.isMC else "CONDBR2"
106 
107  if args.dbtag:
108  flags.IOVDb.GlobalTag=args.dbtag
109  elif flags.Input.isMC:
110  flags.IOVDb.GlobalTag="OFLCOND-MC16-SDR-20"
111  elif flags.IOVDb.DatabaseInstance == "COMP200":
112  flags.IOVDb.GlobalTag="COMCOND-BLKPA-RUN1-09"
113  else:
114  flags.IOVDb.GlobalTag="CONDBR2-ES1PA-2024-01"
115 
116  flags.Exec.OutputLevel=args.olevel
117  flags.Debug.DumpCondStore=True
118  flags.Debug.DumpDetStore=True
119 
120  if (args.sqlite):
121  flags.IOVDb.SqliteInput=args.sqlite
122  flags.IOVDb.SqliteFolders=tuple(flds)
123  if len(objects)!=len(objectsOnl):
124  flags.IOVDb.DBConnection="COOLOFL_LAR/CONDBR2"
125 
126  if "fSampl" in objects:
127  flags.Overlay.DataOverlay=True
128 
129  flags.lock()
130 
131  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
132  cfg=MainServicesCfg(flags)
133 
134  #MC Event selector since we have no input data file
135  from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
136  cfg.merge(McEventSelectorCfg(flags,
137  EventsPerRun = 1,
138  FirstEvent = 1,
139  InitialTimeStamp = 0,
140  TimeStampInterval = 1))
141 
142 
143  if "fSampl" in objects:
144  from IOVDbSvc.IOVDbSvcConfig import addOverride
145  cfg.merge(addOverride(flags,"/LAR/ElecCalibMC/fSampl","LARElecCalibMCfSampl-G496-19213-FTFP_BERT_BIRK"))
146 
147  #Get LAr basic services and cond-algos
148  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
149  cfg.merge(LArGMCfg(flags))
150 
151  if flags.LArCalib.isSC:
152  #Setup SuperCell cabling
153  from LArCabling.LArCablingConfig import LArOnOffIdMappingSCCfg, LArCalibIdMappingSCCfg, LArLATOMEMappingCfg
154  cfg.merge(LArOnOffIdMappingSCCfg(flags))
155  cfg.merge(LArCalibIdMappingSCCfg(flags))
156  cfg.merge(LArLATOMEMappingCfg(flags))
157  if not args.offline:
158  from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBSCCfg
159  cfg.merge(LArElecCalibDBSCCfg(flags,objectsOnl))
160  else:
161  #Setup regular cabling
162  from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg, LArCalibIdMappingCfg
163  cfg.merge(LArOnOffIdMappingCfg(flags))
164  cfg.merge(LArCalibIdMappingCfg(flags))
165  if not args.offline:
166  from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBCfg
167  cfg.merge(LArElecCalibDBCfg(flags,objectsOnl))
168 
169  from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg
170  cfg.merge(LArBadChannelCfg(flags, isSC=flags.LArCalib.isSC))
171 
172  bcKey = "LArBadChannelSC" if flags.LArCalib.isSC else "LArBadChannel"
173 
174  if "Pedestal" in objects:
175  ckey = "LArPedestalSC" if flags.LArCalib.isSC else "LArPedestal"
176  cfg.addEventAlgo(CompFactory.LArPedestals2Ntuple(ContainerKey = ckey,
177  AddFEBTempInfo = False,
178  AddCalib = True,
179  isSC = flags.LArCalib.isSC,
180  BadChanKey = bcKey
181  ))
182 
183  if "AutoCorr" in objects:
184  from IOVDbSvc.IOVDbSvcConfig import addFolders
185  if flags.LArCalib.isSC:
186  cfg.merge(addFolders(flags,'/LAR/ElecCalibOflSC/AutoCorrs/AutoCorr',modifiers='<key>LArAutoCorrSC</key>',className='LArAutoCorrComplete'))
187  else:
188  if args.ftag:
189  cfg.merge(addFolders(flags,'/LAR/ElecCalibOfl/AutoCorrs/AutoCorr',tag="".join('/LAR/ElecCalibOfl/AutoCorrs/AutoCorr'.split('/')) + args.ftag))
190  else:
191  cfg.merge(addFolders(flags,'/LAR/ElecCalibOfl/AutoCorrs/AutoCorr',className='LArAutoCorrComplete'))
192  ckey="LArAutoCorrSC" if flags.LArCalib.isSC else "LArAutoCorr"
193  cfg.addEventAlgo(CompFactory.LArAutoCorr2Ntuple(ContainerKey = "LArAutoCorrSym" if flags.Input.isMC else ckey,
194  AddFEBTempInfo = False,
195  AddCalib = True,
196  isSC = flags.LArCalib.isSC,
197  ApplyCorrection = True,
198  AddCorrUndo = True,
199  BadChanKey = bcKey,
200 
201  ))
202 
203  if "PhysAutoCorr" in objects:
204  from IOVDbSvc.IOVDbSvcConfig import addFolders
205  if flags.LArCalib.isSC:
206  cfg.merge(addFolders(flags,'/LAR/ElecCalibOflSC/AutoCorrs/PhysicsAutoCorr',modifiers='<key>LArAutoCorrSC</key>',className='LArAutoCorrComplete'))
207  else:
208  if args.ftag:
209  cfg.merge(addFolders(flags,'/LAR/ElecCalibOfl/AutoCorrs/PhysicsAutoCorr',tag="".join('/LAR/ElecCalibOfl/AutoCorrs/PhysicsAutoCorr'.split('/')) + args.ftag))
210  else:
211  cfg.merge(addFolders(flags,'/LAR/ElecCalibOfl/AutoCorrs/PhysicsAutoCorr',className='LArAutoCorrComplete'))
212  ckey="LArPhysAutoCorrSC" if flags.LArCalib.isSC else "LArPhysAutoCorr"
213  cfg.addEventAlgo(CompFactory.LArAutoCorr2Ntuple(ContainerKey = ckey,
214  AddFEBTempInfo = False,
215  AddCalib = True,
216  isSC = flags.LArCalib.isSC,
217  ApplyCorrection = not flags.Input.isMC,
218  AddCorrUndo = not flags.Input.isMC,
219  BadChanKey = bcKey,
220 
221  ))
222 
223  if "Ramp" in objects:
224  ckey = "LArRampSC" if flags.LArCalib.isSC else "LArRamp"
225  if args.offline:
226  from IOVDbSvc.IOVDbSvcConfig import addFolders
227  if flags.LArCalib.isSC:
228  cfg.merge(addFolders(flags,'/LAR/ElecCalibOflSC/Ramps/RampLinea',modifiers='<key>LArRampSC</key>',className='LArRampComplete'))
229  else:
230  cfg.merge(addFolders(flags,'/LAR/ElecCalibOfl/Ramps/RampLinea',className='LArRampComplete'))
231  cfg.addEventAlgo(CompFactory.LArRamps2Ntuple(RampKey="LArRampSym" if flags.Input.isMC else ckey,
232  AddFEBTempInfo = False,
233  AddCalib = True,
234  isSC = flags.LArCalib.isSC,
235  ApplyCorr = True,
236  AddCorrUndo = True,
237  BadChanKey = bcKey
238  ))
239 
240  if "OFC" in objects:
241  if args.offline:
242  from IOVDbSvc.IOVDbSvcConfig import addFolders
243  for fld in flds:
244  if 'OFC' in fld:
245  if args.ftag:
246  cfg.merge(addFolders(flags,fld,tag="".join(fld.split('/')) + args.ftag))
247  else:
248  cfg.merge(addFolders(flags,fld))
249  ckey= 'LArOFC'
250  ntname= 'OFC' if '1phase' in fld else 'OFC_1ns'
251  break
252  else:
253  ckey = "LArOFCSC" if flags.LArCalib.isSC else "LArOFC"
254  ntname = 'OFC'
255  cfg.addEventAlgo(CompFactory.LArOFC2Ntuple(AddFEBTempInfo = False,
256  ContainerKey=ckey,
257  NtupleName=ntname,
258  isSC = flags.LArCalib.isSC,
259  BadChanKey = bcKey
260  ))
261 
262  if "OFCCali" in objects:
263  if args.offline:
264  from IOVDbSvc.IOVDbSvcConfig import addFolders
265  for fld in flds:
266  if 'OFC' in fld:
267  if args.ftag:
268  cfg.merge(addFolders(flags,fld,tag="".join(foldername.split('/')) + args.ftag))
269  else:
270  cfg.merge(addFolders(flags,fld))
271  ckey= 'LArOFC' if '1phase' in fld else 'LArOFC'
272  break
273  else:
274  ckey = "LArOFCSCCali" if flags.LArCalib.isSC else "LArOFCCali"
275  fldr = "/LAR/ElecCalibFlatSC/OFCCali" if flags.LArCalib.isSC else "/LAR/ElecCalibFlat/OFCCali"
276  dbString = "<db>sqlite://;schema="+args.sqlite+";dbname=CONDBR2" if args.sqlite else "<db>COOLONL_LAR/CONDBR2</db>"
277  from IOVDbSvc.IOVDbSvcConfig import addFolders
278  cfg.merge(addFolders(flags,fldr,detDb=dbString,className="CondAttrListCollection"))
279  LArOFCSCCondAlg = CompFactory.getComp("LArFlatConditionsAlg<LArOFCSC>")("LArOFCSCCaliCondAlg")
280  LArOFCSCCondAlg.ReadKey=fldr
281  LArOFCSCCondAlg. WriteKey=ckey
282  cfg.addCondAlgo(LArOFCSCCondAlg)
283 
284  cfg.addEventAlgo(CompFactory.LArOFC2Ntuple("LArOFC2NtupleCali",
285  AddFEBTempInfo = False,
286  ContainerKey=ckey,
287  NtupleName="OFCCali" if args.ntname=='' else args.ntname,
288  isSC = flags.LArCalib.isSC,
289  BadChanKey = bcKey
290  ))
291 
292 
293  if "Shape" in objects:
294  if args.offline:
295  from IOVDbSvc.IOVDbSvcConfig import addFolders
296  for fld in flds:
297  if 'Shape' in fld:
298  if args.ftag:
299  cfg.merge(addFolders(flags,fld,tag="".join(fld.split('/')) + args.ftag))
300  else:
301  cfg.merge(addFolders(flags,fld))
302  ckey= 'LArShape'
303  ntname= 'SHAPE' if '1phase' in fld else 'SHAPE_1ns'
304  break
305  else:
306  ckey = "LArShapeSC" if flags.LArCalib.isSC else "LArShape"
307  if flags.Input.isMC:
308  ckey="LArShapeSym"
309 
310  cfg.addEventAlgo(CompFactory.LArShape2Ntuple(ContainerKey=ckey,
311  AddFEBTempInfo = False,
312  AddCalib = True,
313  isSC = flags.LArCalib.isSC,
314  BadChanKey = bcKey
315 
316  ))
317  if "MphysOverMcal" in objects:
318  if args.offline:
319  from IOVDbSvc.IOVDbSvcConfig import addFolders
320  if flags.LArCalib.isSC:
321  print('offline, adding /LAR/ElecCalibOflSC/MphysOverMcal/RTM folder')
322  cfg.merge(addFolders(flags,'/LAR/ElecCalibOflSC/MphysOverMcal/RTM',modifiers='<key>LArMphysOverMcalSC</key>',className='LArMphysOverMcalComplete'))
323  else:
324  cfg.merge(addFolders(flags,'/LAR/ElecCalibOfl/MphysOverMcal/RTM',className='LArMphysOverMcalComplete'))
325 
326  cfg.addEventAlgo(CompFactory.LArMphysOverMcal2Ntuple(ContainerKey = "LArMphysOverMcalSC" if flags.LArCalib.isSC else "LArMphysOverMcal",
327  AddFEBTempInfo = False,
328  AddCalib = True,
329  isSC = flags.LArCalib.isSC,
330  BadChanKey = bcKey
331  ))
332 
333  #ADC2MeV and DACuA are handled by the same ntuple dumper
334  if "DAC2uA" in objects or "uA2MeV" in objects:
335  uackey = "LAruA2MeVSC" if flags.LArCalib.isSC else "LAruA2MeV"
336  dackey = "LArDAC2uASC" if flags.LArCalib.isSC else "LArDAC2uA"
337  ua2MeVKey="LAruA2MeVSym" if flags.Input.isMC else uackey
338  dac2uAKey="LArDAC2uASym" if flags.Input.isMC else dackey
339 
340  cfg.addEventAlgo(CompFactory.LAruA2MeV2Ntuple(uA2MeVKey=ua2MeVKey if "uA2MeV" in objects else "",
341  DAC2uAKey=dac2uAKey if "DAC2uA" in objects else "",
342  isSC = flags.LArCalib.isSC,
343  BadChanKey = bcKey
344  ))
345 
346 
347  if "HVScaleCorr" in objects:
348  # hack to read from sqlite created by HV computations
349  iovDbSvc=cfg.getService("IOVDbSvc")
350  for i in range(0,len(iovDbSvc.Folders)):
351  if (iovDbSvc.Folders[i].find("HVScaleCorr")>=0):
352  iovDbSvc.Folders[i]+="<key>/LAR/ElecCalibFlatSC/HVScaleCorr</key>"
353 
354  cfg.addEventAlgo(CompFactory.LArHVScaleCorr2Ntuple(ContainerKey= "LArHVScaleCorrSC" if flags.LArCalib.isSC else "LArHVScaleCorr",
355  AddFEBTempInfo = False,
356  isSC = flags.LArCalib.isSC,
357  BadChanKey = bcKey
358  ))
359 
360  if "fSampl" in objects:
361  cfg.addEventAlgo(CompFactory.LArfSampl2Ntuple(ContainerKey="LArfSamplSC" if flags.LArCalib.isSC else "LArfSamplSym",
362  isSC=flags.LArCalib.isSC
363  ))
364 
365  if "CaliWave" in objects:
366  if flags.Input.isMC:
367  print('No CaliWave in MC')
368  else:
369  fld = "/LAR/ElecCalibOflSC/CaliWaves/CaliWave" if flags.LArCalib.isSC else "/LAR/ElecCalibOfl/CaliWaves/CaliWave"
370  from IOVDbSvc.IOVDbSvcConfig import addFolders
371  cfg.merge(addFolders(flags,fld,modifiers='<key>LArCaliWave</key><typeName>LArCaliWaveContainer</typeName>'))
372  cfg.addEventAlgo(CompFactory.LArCaliWaves2Ntuple(KeyList = ["LArCaliWave"],
373  NtupleName = "CALIWAVE",
374  AddFEBTempInfo = False,
375  SaveDerivedInfo = True,
376  AddCalib = True,
377  SaveJitter = True,
378  isFlat = False,
379  isSC = flags.LArCalib.isSC,
380  BadChanKey = bcKey
381  ))
382 
383  if "PhysWave" in objects:
384  if flags.Input.isMC:
385  print('No PhysWave in MC yet')
386  else:
387  fld = "/LAR/ElecCalibOflSC/PhysWaves/RTM" if flags.LArCalib.isSC else "/LAR/ElecCalibOfl/PhysWaves/RTM"
388  from IOVDbSvc.IOVDbSvcConfig import addFolders
389  cfg.merge(addFolders(flags,fld))
390  cfg.addEventAlgo(CompFactory.LArPhysWaves2Ntuple(KeyList = ["LArPhysWave"],
391  NtupleName = "PHYSWAVE",
392  AddFEBTempInfo = False,
393  SaveDerivedInfo = True,
394  AddCalib = True,
395  isFlat = False,
396  isSC = flags.LArCalib.isSC,
397  BadChanKey = bcKey
398  ))
399 
400  if "DSPThr" in objects:
401  from IOVDbSvc.IOVDbSvcConfig import addFolders
402  cfg.merge(addFolders(flags,"/LAR/Configuration/DSPThresholdFlat/Thresholds",detDb="LAR_ONL"))
403  cfg.addEventAlgo(CompFactory.LArDSPThresholds2Ntuple(DumpFlat=True,FlatFolder="/LAR/Configuration/DSPThresholdFlat/Thresholds"))
404 
405  if "MinBias" in objects:
406  #FIXME different for MC
407  from IOVDbSvc.IOVDbSvcConfig import addFolders
408  if args.offline:
409  myfld="/LAR/ElecCalibOfl/LArPileupAverage"
410  mydb="LAR_OFL"
411  else:
412  myfld="/LAR/LArPileup/LArPileupAverage"
413  mydb="LAR_ONL"
414  if args.ftag:
415  cfg.merge(addFolders(flags,myfld,detDb=mydb,className="LArMinBiasAverageMC",tag="".join(myfld.split('/')) + args.ftag))
416  else:
417  cfg.merge(addFolders(flags,myfld,detDb=mydb,className="LArMinBiasAverageMC"))
418  LArMinBiasAverageSymAlg = CompFactory.getComp("LArSymConditionsAlg<LArMinBiasAverageMC, LArMinBiasAverageSym>")
419  LArMCSymCondAlg=CompFactory.LArMCSymCondAlg
420  cfg.addCondAlgo(LArMCSymCondAlg(ReadKey="LArOnOffIdMap"))
421  cfg.addCondAlgo(LArMinBiasAverageSymAlg(ReadKey="LArPileupAverage",WriteKey="LArSymPileupAverage"))
422  cfg.addEventAlgo(CompFactory.LArMinBias2Ntuple(ContainerKey="",ContainerKeyAv="LArSymPileupAverage"))
423 
424  rootfile=args.out
425  if os.path.exists(rootfile):
426  os.remove(rootfile)
427  cfg.addService(CompFactory.NTupleSvc(Output = [ "FILE1 DATAFILE='"+rootfile+"' OPT='NEW'" ]))
428  cfg.setAppProperty("HistogramPersistency","ROOT")
429 
430  if args.dbtag and 'CALIB' in args.dbtag:
431  cfg.getService("IOVDbSvc").DBInstance=""
432 
433  if args.poolcat:
434  cfg.getService("PoolSvc").ReadCatalog+=["xmlcatalog_file:%s"%args.poolcat,]
435 
436  cfg.run(1)
437  sys.exit(0)
438 
python.LArElecCalibDBConfig.LArElecCalibDBCfg
def LArElecCalibDBCfg(flags, condObjs)
Definition: LArElecCalibDBConfig.py:47
LArCablingConfig.LArOnOffIdMappingSCCfg
def LArOnOffIdMappingSCCfg(configFlags)
Definition: LArCablingConfig.py:65
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
LArConditions2Ntuple.LArMinBiasAverageSymAlg
LArMinBiasAverageSymAlg
Definition: LArConditions2Ntuple.py:418
python.LArBadChannelConfig.LArBadChannelCfg
def LArBadChannelCfg(configFlags, tag=None, isSC=False)
Definition: LArBadChannelConfig.py:8
LArCablingConfig.LArLATOMEMappingCfg
def LArLATOMEMappingCfg(configFlags)
Definition: LArCablingConfig.py:95
LArMCSymCondAlg
Definition: LArMCSymCondAlg.h:17
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:262
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
python.McEventSelectorConfig.McEventSelectorCfg
def McEventSelectorCfg(flags, **kwargs)
Definition: McEventSelectorConfig.py:5
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:81
LArCablingConfig.LArOnOffIdMappingCfg
def LArOnOffIdMappingCfg(configFlags)
Definition: LArCablingConfig.py:62
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.IOVDbSvcConfig.addOverride
def addOverride(flags, folder, tag, tagType="tag", db=None)
Definition: IOVDbSvcConfig.py:233
LArCablingConfig.LArCalibIdMappingSCCfg
def LArCalibIdMappingSCCfg(configFlags)
Definition: LArCablingConfig.py:86
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.LArElecCalibDBConfig.LArElecCalibDBSCCfg
def LArElecCalibDBSCCfg(flags, condObjs, sqlite=None)
Definition: LArElecCalibDBConfig.py:126
python.LArCalibConfigFlags.addLArCalibFlags
def addLArCalibFlags(flags, isSC=False)
Definition: LArCalibConfigFlags.py:3
LArCablingConfig.LArCalibIdMappingCfg
def LArCalibIdMappingCfg(configFlags)
Definition: LArCablingConfig.py:83
Trk::split
@ split
Definition: LayerMaterialProperties.h:38