6if __name__==
'__main__':
10 from AthenaCommon
import Logging
11 log = Logging.logging.getLogger(
'LArXtalkDelay' )
14 parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
15 parser.add_argument(
'-r',
'--run', dest=
'run', default=
'00408918', help=
'Run number string as in input filename', type=str)
16 parser.add_argument(
'-g',
'--gain', dest=
'gain', default=
"MEDIUM", help=
'Gain string', type=str)
17 parser.add_argument(
'-p',
'--partition', dest=
'partition', default=
"Em", help=
'Data taking partition string', type=str)
18 parser.add_argument(
'-f',
'--fileprefix', dest=
'fprefix', default=
"data25_calib", help=
'File prefix string', type=str)
19 parser.add_argument(
'-d',
'--indir', dest=
'indir', default=
"", help=
'Full input dir string', type=str)
20 parser.add_argument(
'-t',
'--trigger', dest=
'trig', default=
'calibration_', help=
'Trigger string in filename', type=str)
21 parser.add_argument(
'-o',
'--outrwaveprefix', dest=
'outrwaveprefix', default=
"LArCaliWave", help=
'Prefix of CaliWave output root filename', type=str)
22 parser.add_argument(
'-e',
'--outrdir', dest=
'outrdir', default=
"/eos/atlas/atlascerngroupdisk/det-larg/Temp/Weekly/ntuples", help=
'Output root file directory', type=str)
23 parser.add_argument(
'-q',
'--insqlite', dest=
'insql', default=
"", help=
'Input sqlite file with pedestals, in pool output dir.', type=str)
24 parser.add_argument(
'-m',
'--subdet', dest=
'subdet', default=
"EMB", help=
'Subdetector, EMB, EMEC, HEC, FCAL or HECFCAL', type=str)
25 parser.add_argument(
'-s',
'--side', dest=
'side', default=
"C", help=
'Detector side empty (means both), C or A', type=str)
26 parser.add_argument(
'-c',
'--isSC', dest=
'supercells', default=
False, action=
"store_true", help=
'is SC data ?')
27 parser.add_argument(
'-a',
'--isRawdata', dest=
'rawdata', default=
False, action=
"store_true", help=
'is raw data ?')
28 parser.add_argument(
'-x',
'--ignoreBarrel', dest=
'ignoreB', default=
False, action=
"store_true", help=
'ignore Barrel channels ?')
29 parser.add_argument(
'-v',
'--ignoreEndcap', dest=
'ignoreE', default=
False, action=
"store_true", help=
'ignore Endcap channels ?')
30 parser.add_argument(
'-b',
'--badchansqlite', dest=
'badsql', default=
"", help=
'Output sqlite file, in pool output dir.', type=str)
31 parser.add_argument(
'-i',
'--pattdir', dest=
'pdir', default=
"", help=
'Full input pattern dir string', type=str)
32 parser.add_argument(
'-j',
'--ntrigg', dest=
'ntrig', default=100, help=
'Number of trigger per step', type=int)
33 parser.add_argument(
'-u',
'--usepatt', dest=
'pattern', default=1, help=
'Number of trigger per step', type=int)
34 parser.add_argument(
'-n',
'--nsteps', dest=
'nstep', default=5, help=
'Number of delay steps', type=int)
35 parser.add_argument(
'-y',
'--nsubstep', dest=
'nsubstep', default=1, help=
'Number of subststeps', type=int)
36 parser.add_argument(
'--maxev', dest=
'maxev', default=-1, help=
'Number of events to process', type=int)
38 args = parser.parse_args()
40 for _, value
in args._get_kwargs():
45 args.run = args.run.zfill(8)
51 log.error(
"Need input dir!")
55 from LArCalibProcessing.LArCalib_Delay_OFCCaliConfig
import LArXtalkDelayCfg
58 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
61 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
62 from LArCalibProcessing.LArCalibConfigFlags
import addLArCalibFlags
63 flags=initConfigFlags()
64 addLArCalibFlags(flags, args.supercells)
68 flags.LArCalib.Input.Dir = InputDir
69 flags.LArCalib.Input.Type = args.trig
70 flags.LArCalib.Input.RunNumbers = [int(args.run),]
71 flags.LArCalib.Input.isRawData = args.rawdata
72 gainNumMap={
"HIGH":0,
"MEDIUM":1,
"LOW":2}
73 flags.LArCalib.Gain=gainNumMap[args.gain.upper()]
77 flags.Input.Files=flags.LArCalib.Input.Files
79 print (
"Input files to be processed:")
80 for f
in flags.Input.Files:
83 if len(flags.Input.Files) == 0 :
84 print(
"Unable to find any input files. Please check the input directory:",InputDir)
89 if not flags.LArCalib.isSC:
90 if args.subdet ==
'EMB' or args.subdet ==
'EMEC':
91 flags.LArCalib.Input.SubDet=
"EM"
93 flags.LArCalib.Input.SubDet=args.subdet
96 flags.LArCalib.Preselection.Side = [0,1]
97 elif args.side ==
"C":
98 flags.LArCalib.Preselection.Side = [0]
99 elif args.side ==
"A":
100 flags.LArCalib.Preselection.Side = [1]
102 print(
"unknown side ",args.side)
105 if args.subdet !=
"EM":
106 if args.subdet ==
'EMB':
107 flags.LArCalib.Preselection.BEC = [0]
109 flags.LArCalib.Preselection.BEC = [1]
111 if args.subdet ==
'FCAL':
112 flags.LArCalib.Preselection.FT = [6]
113 elif args.subdet ==
'HEC':
114 flags.LArCalib.Preselection.FT = [3,10,16,22]
115 elif args.subdet ==
'HECFCAL':
116 flags.LArCalib.Preselection.FT = [3,6,10,16,22]
121 if args.badsql.startswith(
"/"):
122 flags.LArCalib.BadChannelDB = args.badsql
124 flags.LArCalib.BadChannelDB =
"LAR_OFL"
127 OutputCaliWaveRootFileName = args.outrwaveprefix +
"_" + args.run
129 if args.subdet !=
"" and not flags.LArCalib.isSC:
130 OutputCaliWaveRootFileName +=
"_"+args.subdet
132 if flags.LArCalib.Input.SubDet==
"EM":
133 OutputCaliWaveRootFileName += args.side
135 OutputCaliWaveRootFileName +=
".root"
137 flags.LArCalib.Output.ROOTFile = args.outrdir +
"/" + OutputCaliWaveRootFileName
139 flags.IOVDb.GlobalTag =
"LARCALIB-RUN2-00"
144 flags.LArCalib.CaliWave.Nsteps=args.nstep
146 pfile = args.pdir +
'/parameters.dat'
147 flags.LArCalib.Input.paramsFile = pfile
149 flags.LArCalib.OFC.Ncoll = args.ntrig
151 flags.LArCalib.CaliWave.NSubSteps = args.nsubstep
153 flags.LArCalib.OFC.Nsamples = args.pattern
156 flags.LArCalib.Input.Database = args.insql
158 flags.LArCalib.Input.Database =
"LAR_ONL"
159 flags.LArCalib.Pedestal.Folder =
"/LAR/ElecCalibFlat/Pedestal"
163 flags.Exec.OutputLevel = INFO
165 from AthenaConfiguration.Enums
import LHCPeriod
166 flags.GeoModel.Run = LHCPeriod.Run3
168 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
169 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
172 flags.dump(evaluate=
True)
174 cfg=MainServicesCfg(flags)
176 cfg.merge(LArXtalkDelayCfg(flags))
178 if flags.LArCalib.isSC:
183 runinfo=getLArDTInfoForRun(flags.Input.RunNumbers[0], connstring=
"COOLONL_LAR/CONDBR2")
184 log.info(
"Got DT run info !")
186 log.warning(
"Could not get DT run info, using defaults !")
188 fwversion=runinfo.FWversion()
189 if args.fw6
or fwversion==6:
190 from IOVDbSvc.IOVDbSvcConfig
import addOverride
191 cfg.merge(addOverride(flags,
"/LAR/Identifier/LatomeMapping",
"LARIdentifierLatomeMapping-fw6"))
197 cfg.getEventAlgo(
"LArRawSCDataReadingAlg").LATOMEDecoder.IgnoreBarrelChannels=args.ignoreB
199 cfg.getEventAlgo(
"LArRawSCCalibDataReadingAlg").LATOMEDecoder.IgnoreBarrelChannels=args.ignoreB
202 cfg.getEventAlgo(
"LArRawSCDataReadingAlg").LATOMEDecoder.IgnoreEndcapChannels=args.ignoreE
204 cfg.getEventAlgo(
"LArRawSCCalibDataReadingAlg").LATOMEDecoder.IgnoreEndcapChannels=args.ignoreE
207 cfg.getService(
"IOVDbSvc").DBInstance=
""
209 cfg.getService(
"IOVDbSvc").DBInstance=
"LAR_OFL"
void print(char *figname, TCanvas *c1)