153def getLArDTInfoForRun(run,quiet=False,connstring="COOLONL_LAR/CONDBR2"):
154 from AthenaCommon.Logging import logging
155 mlog_LRF = logging.getLogger( 'getLArDTRunInfoForRun' )
156 mlog_LRF.info("Connecting to database %s", connstring)
157
158 runDB=indirectOpen(connstring)
159 if (runDB is None):
160 mlog_LRF.error("Cannot connect to database %s",connstring)
161 raise RuntimeError("getLArFormatForRun ERROR: Cannot connect to database %s",connstring)
162
163 timing="LAR"
164 adccalib=0
165 mux=[]
166 fw=0
167 try:
168 folder=runDB.getFolder('/LAR/Configuration/RunLogDT')
169 runiov=run << 32
170 obj=folder.findObject(runiov,0)
171 payload=obj.payload()
172 timing=payload['timing_configuration']
173 recipe=payload['recipe_tdaq_A']
174 recipePEB=payload['recipe_tdaq_B']
175 mux.append(ord(payload['mux_setting_0_tdaq']))
176 mux.append(ord(payload['mux_setting_1_tdaq']))
177 adccalib=ord(payload['ADCCalibMode'])
178 if run > 493743:
179 fw=ord(payload['ttype_mask_A'])
180 except Exception:
181 mlog_LRF.warning("No information in /LAR/Configuration/RunLogDT for run %i", run)
182 mlog_LRF.warning("Using defaults: MUX0: ADC MUX1: ET_ID receipe: at0_bc5-at1_bc1_ts1-q")
183 recipe="at0_bc5-at1_bc1_ts1-q"
184 recipePEB=''
185 mux.append(0)
186 mux.append(3)
187
188 runDB.closeDatabase()
189 sTypes, sLengths = parse_recipe(recipe,mux,mlog_LRF)
190 sTypesPEB, sLengthsPEB = parse_recipe(recipePEB,mux,mlog_LRF)
191 return LArDTRunInfo(sTypes, sLengths, sTypesPEB, sLengthsPEB, timing, adccalib, fw)
192
193