6 if __name__==
'__main__':
11 from AthenaCommon
import Logging
12 log = Logging.logging.getLogger(
'LArPedestalAutoCorr' )
18 parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
20 parser.add_argument(
'-r',
'--run', dest=
'run', default=
'00408913', help=
'Run number string as in input filename', type=str)
21 parser.add_argument(
'-g',
'--gain', dest=
'gain', default=
"MEDIUM", help=
'Gain string', type=str)
22 parser.add_argument(
'-p',
'--partition', dest=
'partition', default=
"All", help=
'Partition string', type=str)
23 parser.add_argument(
'-f',
'--fileprefix', dest=
'fprefix', default=
"data24_calib", help=
'File prefix string', type=str)
24 parser.add_argument(
'-i',
'--indirprefix', dest=
'dprefix', default=
"/eos/atlas/atlastier0/rucio/", help=
'Input directory prefix string', type=str)
25 parser.add_argument(
'-d',
'--indir', dest=
'indir', default=
"", help=
'Full input dir string', type=str)
26 parser.add_argument(
'-t',
'--trigger', dest=
'trig', default=
'calibration_', help=
'Trigger string in filename', type=str)
27 parser.add_argument(
'-o',
'--outrprefix', dest=
'outrprefix', default=
"LArPedAutoCorr", help=
'Prefix of output root filename', type=str)
28 parser.add_argument(
'-l',
'--outpprefix', dest=
'outpprefix', default=
"LArPedAutoCorr", help=
'Prefix of output pool filename', type=str)
29 parser.add_argument(
'-e',
'--outrdir', dest=
'outrdir', default=
"/eos/atlas/atlascerngroupdisk/det-larg/Temp/Weekly/ntuples", help=
'Output root file directory', type=str)
30 parser.add_argument(
'-k',
'--outpdir', dest=
'outpdir', default=
"/eos/atlas/atlascerngroupdisk/det-larg/Temp/Weekly/poolFiles", help=
'Output pool file directory', type=str)
31 parser.add_argument(
'-n',
'--outsqlite', dest=
'outsql', default=
"mysql.db", help=
'Output sqlite file, in pool output dir.', type=str)
32 parser.add_argument(
'-m',
'--subdet', dest=
'subdet', default=
"EMB", help=
'Subdetector, EMB, EMEC, HEC or FCAL', type=str)
33 parser.add_argument(
'-s',
'--side', dest=
'side', default=
"C", help=
'Detector side empty (means both), C or A', type=str)
34 parser.add_argument(
'-c',
'--isSC', dest=
'supercells', default=
False, action=
"store_true", help=
'is SC data ?')
35 parser.add_argument(
'-a',
'--isRawdata', dest=
'rawdata', default=
False, action=
"store_true", help=
'is raw data ?')
36 parser.add_argument(
'-b',
'--badchansqlite', dest=
'badsql', default=
"SnapshotBadChannel.db", help=
'Input sqlite file with bad chans.', type=str)
38 args = parser.parse_args()
39 if help
in args
and args.help
is not None and args.help:
43 for _, value
in args._get_kwargs():
48 args.run = args.run.zfill(8)
54 gain=args.gain.lower().capitalize()
57 if not args.supercells:
58 partstr = args.partition
60 partstr = args.partition+
"-DT"
64 InputDir = args.dprefix+args.fprefix+
"/calibration_LArElec-Pedestal-32s-"+gain+
"-"+partstr+
"/"+args.run+
"/"+args.fprefix+
"."+args.run+
".calibration_LArElec-Pedestal-32s-"+gain+
"-"+partstr+
".daq.RAW/"
67 from LArCalibProcessing.LArCalib_PedestalAutoCorrConfig
import LArPedestalAutoCorrCfg
70 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
73 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
74 from LArCalibProcessing.LArCalibConfigFlags
import addLArCalibFlags
81 flags.LArCalib.Input.Dir = InputDir
82 flags.LArCalib.Input.Type = args.trig
83 flags.LArCalib.Input.RunNumbers = [
int(args.run),]
84 flags.LArCalib.Input.isRawData = args.rawdata
86 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
87 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
90 flags.Input.Files=flags.LArCalib.Input.Files
92 log.info(
"Input files to be processed:")
93 for f
in flags.Input.Files:
96 if len(flags.Input.Files) == 0 :
97 print(
"Unable to find any input files. Please check the input directory:",InputDir)
103 if not flags.LArCalib.isSC:
104 if args.subdet ==
'EMB' or args.subdet ==
'EMEC':
105 flags.LArCalib.Input.SubDet=
"EM"
107 flags.LArCalib.Input.SubDet=args.subdet
111 flags.LArCalib.Preselection.Side = [0]
112 elif args.side ==
"A":
113 flags.LArCalib.Preselection.Side = [1]
115 log.warning(
"Bad side argument: ",args.side,
" using both!!")
117 if args.subdet ==
'EMB':
118 flags.LArCalib.Preselection.BEC = [0]
120 flags.LArCalib.Preselection.BEC = [1]
122 if args.subdet ==
'FCAL':
123 flags.LArCalib.Preselection.FT = [6]
124 elif args.subdet ==
'HEC':
125 flags.LArCalib.Preselection.FT = [3,10,16,22]
128 OutputPedAutoCorrRootFileName = args.outrprefix +
"_" + args.run
129 OutputPedAutoCorrPoolFileName = args.outpprefix +
"_" + args.run
131 if args.subdet !=
"" and not flags.LArCalib.isSC:
132 OutputPedAutoCorrRootFileName = OutputPedAutoCorrRootFileName +
"_"+args.subdet
133 OutputPedAutoCorrPoolFileName = OutputPedAutoCorrPoolFileName +
"_"+args.subdet
134 if flags.LArCalib.Input.SubDet==
"EM":
135 OutputPedAutoCorrRootFileName = OutputPedAutoCorrRootFileName + args.side
136 OutputPedAutoCorrPoolFileName = OutputPedAutoCorrPoolFileName + args.side
137 OutputPedAutoCorrRootFileName = OutputPedAutoCorrRootFileName +
".root"
138 OutputPedAutoCorrPoolFileName = OutputPedAutoCorrPoolFileName +
".pool.root"
140 flags.LArCalib.Output.ROOTFile = args.outrdir +
"/" + OutputPedAutoCorrRootFileName
141 flags.LArCalib.Output.POOLFile = args.outpdir +
"/" + OutputPedAutoCorrPoolFileName
142 if args.outsql.startswith(
"/"):
143 flags.IOVDb.DBConnection=
"sqlite://;schema=" + args.outsql +
";dbname=CONDBR2"
145 flags.IOVDb.DBConnection=
"sqlite://;schema="+args.outpdir +
"/" + args.outsql +
";dbname=CONDBR2"
148 flags.IOVDb.GlobalTag =
"LARCALIB-RUN2-00"
151 if args.badsql.startswith(
"/"):
152 flags.LArCalib.BadChannelDB = args.badsql
154 flags.LArCalib.BadChannelDB = args.outpdir +
"/" + args.badsql
160 flags.Exec.OutputLevel = INFO
162 from AthenaConfiguration.Enums
import LHCPeriod
163 flags.GeoModel.Run = LHCPeriod.Run3
168 cmdlinerm = ([
'/bin/rm',
'-f', flags.LArCalib.BadChannelDB])
169 if not flags.LArCalib.isSC:
170 cmdline = ([
'AtlCoolCopy',
'COOLOFL_LAR/CONDBR2',
'sqlite://;schema='+flags.LArCalib.BadChannelDB+
';dbname=CONDBR2',
'-f',
'/LAR/BadChannelsOfl/BadChannels',
'-f',
'/LAR/BadChannelsOfl/MissingFEBs',
'-t', flags.IOVDb.GlobalTag,
'-c',
'-a',
'-hitag'])
172 cmdline = ([
'AtlCoolCopy',
'COOLOFL_LAR/CONDBR2',
'sqlite://;schema='+flags.LArCalib.BadChannelDB+
';dbname=CONDBR2',
'-f',
'/LAR/BadChannelsOfl/BadChannelsSC',
'-t',
'LARBadChannelsOflBadChannelsSC'+flags.LArCalib.BadChannelTagSC,
'-c',
'-a',
'-hitag',
'-ch',
'0'])
175 cp = subprocess.run(cmdlinerm, check=
True, capture_output=
True )
176 except Exception
as e:
178 log.info(
'not existing BadChan sqlite file, fine')
183 cp = subprocess.run(cmdline, check=
True, capture_output=
True )
184 except Exception
as e:
187 log.error(
'Could not create BadChan sqlite file !!!!')
200 if args.outsql.startswith(
"/"):
201 cmdline = ([
'/afs/cern.ch/user/l/larcalib/LArDBTools/python/BuildTagHierarchy.py', args.outsql , flags.IOVDb.GlobalTag])
203 cmdline = ([
'/afs/cern.ch/user/l/larcalib/LArDBTools/python/BuildTagHierarchy.py',args.outpdir +
"/" + args.outsql , flags.IOVDb.GlobalTag])
206 subprocess.run(cmdline, check=
True)
207 except Exception
as e:
208 log.error(
'Could not create tag hierarchy in output sqlite file !!!!')