ATLAS Offline Software
Loading...
Searching...
No Matches
dumpTgcDigiJitter.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2import logging
4 from argparse import ArgumentParser
5
6 parser = ArgumentParser()
7 parser.add_argument("--inFile", help="Input file to be translated",
8 default="TGC_Digitization_timejitter.dat")
9 parser.add_argument("--outFile", help="Output JSON file",
10 default="TGC_Digitization_timejitter.json")
11 return parser
12
13if __name__ == "__main__":
14 args = setupArgParser().parse_args()
15 from ROOT import PathResolver
16 resolver = PathResolver()
17
18 resolvedInFile = resolver.find_file(args.inFile, "DATAPATH")
19 if not resolvedInFile or len(resolvedInFile) == 0:
20 logging.error("Failed to find file {fileName}".format(fileName = args.inFile))
21 exit(1)
22
23 jitterFields = []
24 with open (resolvedInFile, 'r') as inStream:
25 for line in inStream:
26 tokens = [x.strip() for x in line.split(" ") if len(x.strip())]
27
28 angle = tokens[0]
29 nBins = tokens[1]
30 timeJitters= tokens[2:]
31 jitterEntry ="\n".join([ " {",
32 " \"angle\" : {angle},".format(angle = angle),
33 " \"nBins\" : {nBins},".format(nBins = nBins),
34 " \"values\" : [{timeJitters}]".format(timeJitters = ",".join(timeJitters)),
35 " }"])
36 logging.debug(jitterEntry)
37 jitterFields+=[jitterEntry]
38
39 with open(args.outFile, 'w') as outStream:
40 outStream.write("[\n")
41 for num, jitter in enumerate(jitterFields, 1):
42 outStream.write(jitter)
43 if num != len(jitterFields): outStream.write(",")
44 outStream.write("\n")
45 outStream.write("]\n")