ATLAS Offline Software
LArRawChannelBuilderCrestConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentFactory import CompFactory
3 from AthenaConfiguration.Enums import LHCPeriod, ProductionStep
4 from LArRecUtils.LArADC2MeVCondAlgConfig import LArADC2MeVCondAlgCfg
5 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBCfg
6 from LArRecUtils.LArRecUtilsConfig import LArOFCCondAlgCfg
7 from LArConfiguration.LArConfigFlags import RawChannelSource
8 
9 def LArRawChannelBuilderAlgCfg(flags, **kwargs):
10 
11  acc = LArADC2MeVCondAlgCfg(flags)
12 
13  kwargs.setdefault("name", "LArRawChannelBuilder")
14  kwargs.setdefault("firstSample", flags.LAr.ROD.FirstSample)
15  obj = "AthenaAttributeList"
16  dspkey = 'Run2DSPThresholdsKey'
17  from IOVDbSvc.IOVDbSvcConfig import addFolders
18  if flags.Input.isMC:
19  # need OFC configuration, which includes appropriate ElecCalibDb
20  acc.merge(LArOFCCondAlgCfg(flags))
21  kwargs.setdefault("LArRawChannelKey", "LArRawChannels")
22  kwargs.setdefault("ShapeKey", "LArShapeSym")
23  if flags.GeoModel.Run is LHCPeriod.Run1: # back to flat threshold
24  kwargs.setdefault("useDB", False)
25  dspkey = ''
26  else:
27  fld="/LAR/NoiseOfl/DSPThresholds"
28  sgkey=fld
29  dbString="OFLP200"
30  dbInstance="LAR_OFL"
31  acc.merge(addFolders(flags,fld, dbInstance, className=obj, db=dbString))
32 
33  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
34  kwargs.setdefault("LArDigitKey", flags.Overlay.BkgPrefix + "LArDigitContainer_MC")
35  else:
36  kwargs.setdefault("LArDigitKey", "LArDigitContainer_MC")
37  else:
38  acc.merge(LArElecCalibDBCfg(flags,("OFC","Shape","Pedestal")))
39  if flags.Overlay.DataOverlay:
40  kwargs.setdefault("LArDigitKey", "LArDigitContainer_MC")
41  kwargs.setdefault("LArRawChannelKey", "LArRawChannels")
42  else:
43  kwargs.setdefault("LArRawChannelKey", "LArRawChannels_FromDigits")
44  if 'COMP200' in flags.IOVDb.DatabaseInstance:
45  fld='/LAR/Configuration/DSPThreshold/Thresholds'
46  obj='LArDSPThresholdsComplete'
47  dspkey = 'Run1DSPThresholdsKey'
48  sgkey='LArDSPThresholds'
49  dbString = 'COMP200'
50  else:
51  fld="/LAR/Configuration/DSPThresholdFlat/Thresholds"
52  sgkey=fld
53  dbString="CONDBR2"
54  dbInstance="LAR_ONL"
55  acc.merge(addFolders(flags,fld, dbInstance, className=obj, db=dbString))
56 
57  kwargs.setdefault(dspkey, sgkey)
58 
59  if flags.LAr.ROD.forceIter or flags.LAr.RawChannelSource is RawChannelSource.Calculated:
60  # iterative OFC procedure
61  kwargs.setdefault('minSample',2)
62  kwargs.setdefault('maxSample',12)
63  kwargs.setdefault('minADCforIterInSigma',4)
64  kwargs.setdefault('minADCforIter',15)
65  kwargs.setdefault('defaultPhase',12)
66  nominalPeakSample=2
67  from LArConditionsCommon.LArRunFormat import getLArFormatForRun
68  larformat=getLArFormatForRun(flags.Input.RunNumbers[0],connstring="COOLONL_LAR/"+flags.IOVDb.DatabaseInstance)
69  if larformat is not None:
70  nominalPeakSample = larformat.firstSample()
71  else:
72  print("WARNING: larformat not found, use nominalPeakSample = 2")
73  nominalPeakSample = 2
74  if (nominalPeakSample > 1) :
75  kwargs.setdefault('DefaultShiftTimeSample',nominalPeakSample-2)
76  else :
77  kwargs.setdefault('DefaultShiftTimeSample',0)
78 
79  acc.addEventAlgo(CompFactory.LArRawChannelBuilderIterAlg(**kwargs))
80  else:
81  #fixed OFC, as in DSP
82  acc.addEventAlgo(CompFactory.LArRawChannelBuilderAlg(**kwargs))
83 
84  return acc
85 
86 
87 if __name__=="__main__":
88 
89  from AthenaConfiguration.AllConfigFlags import initConfigFlags
90  from AthenaCommon.Logging import log
91  from AthenaCommon.Constants import DEBUG
92  log.setLevel(DEBUG)
93 
94  from AthenaConfiguration.TestDefaults import defaultTestFiles,defaultGeometryTags
95  flags = initConfigFlags()
96  flags.Input.Files = defaultTestFiles.RAW_RUN2
97  flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
98  # in case of testing iterative OFC:
99  #flags.Input.Files = ['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecJobTransformTests/data15_1beam/data15_1beam.00260466.physics_L1Calo.merge.RAW._lb1380._SFO-ALL._0001.1']
100  flags.Input.isMC = False
101  flags.Detector.GeometryTile = False
102  flags.lock()
103 
104 
105  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
106  from LArByteStream.LArRawDataReadingConfig import LArRawDataReadingCfg
107 
108  acc=MainServicesCfg(flags)
109  acc.merge(LArRawDataReadingCfg(flags))
110  acc.merge(LArRawChannelBuilderAlgCfg(flags))
111 
112  DumpLArRawChannels=CompFactory.DumpLArRawChannels
113  acc.addEventAlgo(DumpLArRawChannels(LArRawChannelContainerName="LArRawChannels_FromDigits",),sequenceName="AthAlgSeq")
114  acc.getService("IOVDbSvc").GlobalTag="CREST-RUN12-SDR-25-MC"
115  acc.getService("IOVDbSvc").Source="CREST"
116  acc.getService("IOVDbSvc").OutputLevel=DEBUG
117  acc.getService("IOVDbSvc").DBInstance=""
118  acc.run(3)
python.LArElecCalibDBConfig.LArElecCalibDBCfg
def LArElecCalibDBCfg(flags, condObjs)
Definition: LArElecCalibDBConfig.py:47
python.LArRecUtilsConfig.LArOFCCondAlgCfg
def LArOFCCondAlgCfg(flags, name='LArOFCCondAlg', **kwargs)
Definition: LArRecUtilsConfig.py:33
python.LArADC2MeVCondAlgConfig.LArADC2MeVCondAlgCfg
def LArADC2MeVCondAlgCfg(flags)
Definition: LArADC2MeVCondAlgConfig.py:6
LArRunFormat
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:252
Constants
some useful constants -------------------------------------------------—
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:72
python.LArRawDataReadingConfig.LArRawDataReadingCfg
def LArRawDataReadingCfg(configFlags, **kwargs)
Definition: LArRawDataReadingConfig.py:10
python.LArRunFormat.getLArFormatForRun
def getLArFormatForRun(run, quiet=False, connstring="COOLONL_LAR/CONDBR2")
Definition: LArRunFormat.py:58
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
python.LArRawChannelBuilderCrestConfig.LArRawChannelBuilderAlgCfg
def LArRawChannelBuilderAlgCfg(flags, **kwargs)
Definition: LArRawChannelBuilderCrestConfig.py:9
DumpLArRawChannels
Definition: DumpLArRawChannels.h:22