ATLAS Offline Software
Loading...
Searching...
No Matches
CaloCellPos2Ntuple.py
Go to the documentation of this file.
1#!/bin/env python
2# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6
7def CaloCellPos2NtupleCfg(flags,outputFile):
8
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))
14
15 cfg.addEventAlgo(CompFactory.CaloCellPosition2Ntuple())
16 cfg.addService(CompFactory.THistSvc(Output = ["file1 DATAFILE='"+outputFile+"' OPT='RECREATE'"]))
17
18 return cfg
19
20if __name__=="__main__":
21 import sys,argparse
22 parser= argparse.ArgumentParser()
23 parser.add_argument("--loglevel", default=None, help="logging level (ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, or FATAL")
24 parser.add_argument("-r","--runnumber",default=0x7fffffff, type=int, help="run number to query the DB")
25 parser.add_argument("-l","--lbnumber",default=1, type=int, help="LB number to query the DB")
26 parser.add_argument("-d","--database",default=None, help="Database name or sqlite file name")
27 parser.add_argument("-o","--output",default="LArCellPos.root", help="output file name")
28 parser.add_argument("-f","--folder",default=None, help="database folder to read")
29 parser.add_argument("-t","--tag",default=None, help="folder-level tag to read")
30 parser.add_argument("-m","--mc", action='store_true', help="data or MC?")
31
32
33 (args,leftover)=parser.parse_known_args(sys.argv[1:])
34
35 if len(leftover)>0:
36 print("ERROR, unhandled argument(s):",leftover)
37 sys.exit(-1)
38
39 from AthenaConfiguration.AllConfigFlags import initConfigFlags
40 flags=initConfigFlags()
41 flags.Input.Files = []
42 flags.Input.isMC = args.mc
43 flags.IOVDb.DatabaseInstance= "OFLP200" if args.mc else "CONDBR2"
44 from Campaigns.Utils import Campaign
45 flags.Input.MCCampaign=Campaign.Unknown
46 flags.LAr.doAlign=True
47
48 flags.Input.TypedCollections=()
49
50 flags.LAr.doHVCorr=False
51 flags.Input.RunNumbers=[args.runnumber]
52 from AthenaConfiguration.TestDefaults import defaultGeometryTags, defaultConditionsTags
53 flags.IOVDb.GlobalTag=(defaultConditionsTags.RUN3_MC if args.mc else
54 defaultConditionsTags.RUN3_DATA)
55 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
56
57
58 if args.loglevel:
59 from AthenaCommon import Constants
60 if hasattr(Constants,args.loglevel):
61 flags.Exec.OutputLevel=getattr(Constants,args.loglevel)
62 else:
63 raise ValueError("Unknown log-level, allowed values are ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, FATAL")
64
65 flags.lock()
66
67 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
68 cfg=MainServicesCfg(flags)
69 #MC Event selector since we have no input data file
70 from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
71 cfg.merge(McEventSelectorCfg(flags,
72 FirstLB=args.lbnumber,
73 EventsPerRun = 1,
74 FirstEvent = 1,
75 InitialTimeStamp = 0,
76 TimeStampInterval = 1))
77 cfg.addEventAlgo(CompFactory.xAODMaker.EventInfoCnvAlg(AODKey = 'McEventInfo'),sequenceName="AthAlgSeq")
78
79 cfg.merge(CaloCellPos2NtupleCfg(flags,args.output))
80
81 dbstr=None
82 if args.database:
83 dbstr="sqlite://;schema="+args.database+";dbname=" + flags.IOVDb.DatabaseInstance
84
85 if args.tag or args.database:
86 from IOVDbSvc.IOVDbSvcConfig import addOverride
87 cfg.merge(addOverride(flags,"/LAR/LArCellPositionShift",args.tag,dbstr))
88
89
90 sc=cfg.run(1)
91 if sc.isSuccess():
92 sys.exit(0)
93 else:
94 sys.exit(1)
void print(char *figname, TCanvas *c1)
CaloCellPos2NtupleCfg(flags, outputFile)