8def LArFebErrorSummaryMakerCfg(flags):
9
10 log = logging.getLogger('LArFebErrorSummaryMakerConfig')
11 projectName=flags.Input.ProjectName
12
13 bCheckAllFEB=True
14 streamName=flags.Input.ProcessingTags
15 if len(streamName) > 0 and len(streamName[0])>4 and streamName[0].endswith("PEB"):
16 log.info("StreamName %s suggests partial event building. Do not check for FEB completeness",str(streamName))
17 bCheckAllFEB=False
18
19
20 if projectName == "data_test":
21 from datetime import date
22 yearNumber=date.today().year-2000
23 log.info("Found project name data_test, assume year number to be %d",yearNumber)
24 else:
25 try:
26 yearNumber=int(projectName[4:6])
27 except ValueError:
28 from datetime import date
29 yearNumber=date.today().year-2000
30 log.warning("Failed to extract year from project tag "+ projectName+". Guessing %d",yearNumber)
31
32 if yearNumber > 20:
33 lMaskFebScacStatus = [0x38680000,0x38720000]
34 lMaskFebEvtId = [0x38680000]
35 else:
36 lMaskFebScacStatus = [0x38080000]
37 lMaskFebEvtId = [0x38080000]
38
39
40
41 acc = LArBadFebCfg(flags)
42
43 minErrFeb=1
44
45 if flags.Common.isOnline or flags.Common.doExpressProcessing:
46 minErrFeb=4
47
48 acc.addEventAlgo(CompFactory.LArFebErrorSummaryMaker("LArFebErrorSummaryMaker",CheckAllFEB=bCheckAllFEB,
49 WriteKey="StoreGateSvc+LArFebErrorSummary",
50 EventInfoKey=f"{flags.Overlay.BkgPrefix}EventInfo" if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing else "EventInfo",
51 MaskFebScacStatus = lMaskFebScacStatus, MaskFebEvtId = lMaskFebEvtId,
52 minFebInError=minErrFeb
53
54 )
55 )
56
57 acc.merge(addToESD(flags,["LArFebErrorSummary#LArFebErrorSummary",]))
58
59 return acc
60
61