ATLAS Offline Software
Loading...
Searching...
No Matches
LArNewCalib_FillOFCPhase.py
Go to the documentation of this file.
1#!/usr/bin/env python
2#
3# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4
5from AthenaConfiguration.ComponentFactory import CompFactory
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7
8if __name__=='__main__':
9
10 import os,sys
11 import argparse
12 import subprocess
13 from AthenaCommon import Logging
14 log = Logging.logging.getLogger( 'LArSCFillPhase' )
15
16 parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
17
18 parser.add_argument('-i','--infile', dest='inpfile', default="OFC_phase.dat", help='Input filename', type=str)
19 parser.add_argument('-k','--outkey', dest='outkey', default="LArOFCPhase", help='phase container key', type=str)
20 parser.add_argument('-c','--isSC', dest='supercells', default=False, action="store_true", help='is SC data ?')
21 parser.add_argument('-a','--hasid', dest='hasid', default=False, action="store_true", help='has ID in input ?')
22 parser.add_argument('-d','--default', dest='defaultphase', default=0, help='if not in input', type=int)
23 parser.add_argument('-f','--folder', dest='folder', default="/LAR/ElecCalibOfl/OFCBin/Dummy", help=' folder name', type=str)
24 parser.add_argument('-t','--tag', dest='tag', default="LArOFCPhase-01", help='folder tag', type=str)
25 parser.add_argument('-o','--outsql', dest='outsql', default="OFCPhase.db", help='output sqlite filename', type=str)
26 parser.add_argument('-p','--outp', dest='outpool', default="ofc_phase.pool.root", help='output pool filename', type=str)
27 parser.add_argument('-r','--run', dest='run', default=0, help='Starting IOV run ', type=int)
28 parser.add_argument('--poolcat', dest='poolcat', default="PoolFileCatalog.xml", help='Catalog of POOL files', type=str)
29
30
31 args = parser.parse_args()
32 if help in args and args.help is not None and args.help:
33 parser.print_help()
34 sys.exit(0)
35
36 for _, value in args._get_kwargs():
37 if value is not None:
38 print(value)
39
40 # now set flags according parsed options
41
42 #Import the MainServices (boilerplate)
43 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
44
45 #Import the flag-container that is the arguemnt to the configuration methods
46 from AthenaConfiguration.AllConfigFlags import initConfigFlags
47 flags=initConfigFlags()
48 from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags
49 addLArCalibFlags(flags, args.supercells)
50
51 flags.Input.Files=[]
52 flags.LArCalib.Input.Files = [ ]
53 flags.LArCalib.Input.RunNumbers = [9999999]
54
55 flags.LArCalib.IOVStart=0
56 if args.run > 0:
57 flags.LArCalib.IOVStart = args.run
58
59 flags.LArCalib.isSC = args.supercells
60
61 flags.IOVDb.DBConnection="sqlite://;schema=" + args.outsql +";dbname=CONDBR2"
62
63 #The global tag we are working with
64 flags.IOVDb.GlobalTag = "CONDBR2-BLKPA-2024-02"
65
66
67 from AthenaConfiguration.TestDefaults import defaultGeometryTags
68 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
69
70 #Define the global output Level:
71 from AthenaCommon.Constants import INFO,DEBUG
72 flags.Exec.OutputLevel = INFO
73
74 flags.lock()
75
76 cfg=MainServicesCfg(flags)
77
78 #Get basic services and cond-algos
79 from LArCalibProcessing.LArCalibBaseConfig import LArCalibBaseCfg
80 cfg.merge(LArCalibBaseCfg(flags))
81
82
83 LArOFPhaseFill = CompFactory.getComp('LArOFPhaseFill')("LArOFPhaseFill")
84 LArOFPhaseFill.InputFile = args.inpfile
85 LArOFPhaseFill.keyOFCBin = args.outkey
86 LArOFPhaseFill.isSC = args.supercells
87 LArOFPhaseFill.isID = args.hasid
88 LArOFPhaseFill.DefaultPhase = args.defaultphase
89 LArOFPhaseFill.GroupingType = "ExtendedSubDetector" if not args.supercells else "SuperCells"
90 LArOFPhaseFill.OutputLevel = DEBUG
91
92 cfg.addEventAlgo(LArOFPhaseFill)
93
94 from RegistrationServices.OutputConditionsAlgConfig import OutputConditionsAlgCfg
95 cfg.merge(OutputConditionsAlgCfg(flags,
96 outputFile=args.outpool,
97 ObjectList=["LArOFCBinComplete#"+args.outkey+"#"+args.folder,],
98 IOVTagList=[args.tag,],
99 Run1=flags.LArCalib.IOVStart,
100 Run2=flags.LArCalib.IOVEnd
101 ))
102 cfg.addService(CompFactory.IOVRegistrationSvc(RecreateFolders = False))
103
104 #MC Event selector since we have no input data file
105 from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
106 cfg.merge(McEventSelectorCfg(flags,
107 RunNumber = flags.LArCalib.Input.RunNumbers[0],
108 EventsPerRun = 1,
109 FirstEvent = 1,
110 InitialTimeStamp = 0,
111 TimeStampInterval = 1))
112
113 cfg.getService("IOVDbSvc").DBInstance="CONDBR2"
114 cfg.getService("MessageSvc").defaultLimit=9999999
115 cfg.getService("PoolSvc").WriteCatalog="xmlcatalog_file:%s"%args.poolcat
116
117 print("Start running...")
118 cfg.run(1)
119
120
void print(char *figname, TCanvas *c1)