4from AthenaConfiguration.ComponentFactory
import CompFactory
5from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 cfg=ComponentAccumulator()
10 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
11 cfg.merge(LArGMCfg(flags))
12 from TileGeoModel.TileGMConfig
import TileGMCfg
13 cfg.merge(TileGMCfg(flags))
15 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
16 cfg.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
17 cfg.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
18 cfg.merge(CaloNoiseCondAlgCfg(flags,
"pileupNoise"))
20 cfg.addEventAlgo(CompFactory.CaloNoise2Ntuple())
21 cfg.addService(CompFactory.THistSvc(Output = [
"file1 DATAFILE='"+outputFile+
"' OPT='RECREATE'"]))
25if __name__==
"__main__":
27 parser= argparse.ArgumentParser()
28 parser.add_argument(
"--loglevel", default=
None, help=
"logging level (ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, or FATAL")
29 parser.add_argument(
"-r",
"--runnumber",default=0x7fffffff, type=int, help=
"run number to query the DB")
30 parser.add_argument(
"-l",
"--lbnumber",default=1, type=int, help=
"LB number to query the DB")
31 parser.add_argument(
"-d",
"--database",default=
None, help=
"Database name or sqlite file name")
32 parser.add_argument(
"-o",
"--output",default=
"caloNoise.root", help=
"output file name")
33 parser.add_argument(
"-t",
"--tag",default=
None, help=
"folder-level tag to read")
34 parser.add_argument(
"-m",
"--mc", action=
'store_true', help=
"data or MC?")
35 parser.add_argument(
"-p",
"--pileup", default=-1., type=float, help=
"if positive, calculate the noise for a fixed <mu> = specified value")
36 parser.add_argument(
"--online", action=
'store_true', help=
"online noise calculation and conditions")
37 parser.add_argument(
"--mu",default=-1, type=int, help=
"Fixed mu to use (lumi from DB if -1)")
40 (args,leftover)=parser.parse_known_args(sys.argv[1:])
43 print(
"ERROR, unhandled argument(s):",leftover)
46 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
47 flags=initConfigFlags()
48 flags.Input.Files = []
49 flags.Input.isMC = args.mc
50 flags.IOVDb.DatabaseInstance=
"OFLP200" if args.mc
else "CONDBR2"
51 from Campaigns.Utils
import Campaign
52 flags.Input.MCCampaign=Campaign.Unknown
53 flags.LAr.doAlign=
False
54 flags.LAr.doHVCorr=
False
56 flags.Calo.Noise.fixedLumiForNoise=args.mu*0.17241*50/25
57 flags.Input.RunNumbers=[args.runnumber]
58 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags
59 flags.IOVDb.GlobalTag=defaultConditionsTags.RUN3_MC
if args.mc
else defaultConditionsTags.RUN3_DATA
60 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
61 flags.Common.isOnline = args.online
63 flags.Calo.Noise.fixedLumiForNoise = args.pileup
65 from AthenaCommon
import Constants
66 if hasattr(Constants,args.loglevel):
67 flags.Exec.OutputLevel=getattr(Constants,args.loglevel)
69 raise ValueError(
"Unknown log-level, allowed values are ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, FATAL")
73 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
74 cfg=MainServicesCfg(flags)
76 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
77 cfg.merge(McEventSelectorCfg(flags,
78 FirstLB=args.lbnumber,
82 TimeStampInterval = 1))
83 cfg.addEventAlgo(CompFactory.xAODMaker.EventInfoCnvAlg(AODKey =
'McEventInfo'),sequenceName=
"AthAlgSeq")
89 dbstr=
"sqlite://;schema="+args.database+
";dbname=" + flags.IOVDb.DatabaseInstance
91 if args.tag
or args.database:
92 from IOVDbSvc.IOVDbSvcConfig
import addOverride
93 folder =
"/CALO/Noise/CellNoise" if flags.Common.isOnline
else "/LAR/NoiseOfl/CellNoise"
94 cfg.merge(addOverride(flags, folder, tag=args.tag, db=dbstr))
void print(char *figname, TCanvas *c1)
CaloNoise2NtupleCfg(flags, outputFile)