5from argparse
import ArgumentParser
17 with open(os.path.join(
"/proc", str(pid),
"status"))
as f:
19 _vmsize = [line_i
for line_i
in lines
if line_i.startswith(
"VmSize")][0]
20 vmsize = int(_vmsize.split()[1])
22 pmsize = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
24 "memory: virtuell = %5.2F MB physical = %5.2F MB"
25 % (vmsize / 1.0e3, pmsize / 1.0e3)
33parser = ArgumentParser()
35 "-f",
"--inputFile", dest=
"inputFile", help=
"single input file", required=
True
37parser.add_argument(
"-g",
"--geoFile", dest=
"geoFile", help=
"geofile", required=
True)
38parser.add_argument(
"-DT",
"--miniDTdir", dest=
"MiniDTdirectory", help=
"Path for MiniDT raw trees directory", required=
True)
44 help=
"number of events to process",
47parser.add_argument(
"-d",
"--Debug", dest=
"debug", help=
"debug", default=
False)
49options = parser.parse_args()
51timer = ROOT.TStopwatch()
55tmp = options.inputFile.split(
"/")
56outFile = tmp[len(tmp) - 1].replace(
".root",
"_dig.root")
57runN = options.inputFile.split(
"/")[-2][4:]
58runN_MiniDT = options.MiniDTdirectory.split(
"/")[-1][11:]
59if runN != runN_MiniDT :
60 print(f
"SND run number {runN} and MiniDT run number {runN_MiniDT} do NOT match. Abort")
67lsOfGlobals = ROOT.gROOT.GetListOfGlobals()
68DriftTubeDet = lsOfGlobals.FindObject(
'DriftTube')
70run = ROOT.FairRunAna()
71ioman = ROOT.FairRootManager.Instance()
72ioman.RegisterInputObject(
"DriftTube", snd_geo.modules[
"DriftTube"])
74fileSource = ROOT.FairFileSource(options.inputFile)
75run.SetSource(fileSource)
77outFile_sink = ROOT.FairRootFileSink(outFile)
78run.SetSink(outFile_sink)
81inRootFile = ROOT.TFile.Open(options.inputFile)
82inTree = inRootFile.Get(
"rawConv")
83nEventsInFile = inTree.GetEntries()
84nEvents = min(nEventsInFile, options.nEvents)
86rtdb = run.GetRuntimeDb()
89ioman.RegisterInputObject(
"rawConv", inRootFile)
92MiniDTfiles_ = os.listdir(options.MiniDTdirectory)
93MiniDTChain = ROOT.TChain(
"minidt_hits")
95MiniDTfiles = [file
for file
in MiniDTfiles_
if "hits" in file
and "__" not in file]
96nMiniDTfiles = len(MiniDTfiles)
98MiniDTChain.Add(f
"{options.MiniDTdirectory}/minidt_run_{runN}_hits.root")
100for i
in range(1, nMiniDTfiles):
101 filename = f
"{options.MiniDTdirectory}/minidt_run_{runN}_hits_{i}.root"
102 MiniDTChain.Add(filename)
104ioman.RegisterInputObject(
"MiniDTChain", MiniDTChain)
106run.SetEventHeaderPersistence(
False)
107xrdb = ROOT.FairRuntimeDb.instance()
108xrdb.getContainer(
"FairBaseParSet").setStatic()
109xrdb.getContainer(
"FairGeoParSet").setStatic()
111ConvDriftTubeTask = ROOT.ConvDriftTubeRawData()
112run.AddTask(ConvDriftTubeTask)
114run.Run(firstEvent, nEvents)
117rtime = timer.RealTime()
118ctime = timer.CpuTime()
120print(
"Real time ", rtime,
" s, CPU time ", ctime,
"s")
configure(darkphoton=None)