CMS 3D CMS Logo

dqmiolistmes.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 from __future__ import print_function
3 
4 import uproot
5 import argparse
6 
7 parser = argparse.ArgumentParser(description='List the full name of all MEs for a given run and lumi. ' +
8  'If lumi is omitted, per run MEs will be printed out')
9 
10 parser.add_argument('filename', help='Name of local root file. For remote files, use edmCopyUtil first: `edmCopyUtil root://cms-xrd-global.cern.ch/<FILEPATH> .`')
11 parser.add_argument('-r', type=int, help='Run to list MEs of')
12 parser.add_argument('-l', type=int, default=0, help='Lumisection to list MEs of')
13 
14 args = parser.parse_args()
15 
16 if args.l == None or args.l < 0:
17  print('Please provide a valid lumisection number')
18  exit()
19 
20 f = uproot.open(args.filename)
21 things = f.keys()
22 if 'Indices;1' in things:
23  indices = f['Indices']
24  runs = indices['Run'].array()
25  lumis = indices['Lumi'].array()
26  firstindex = indices['FirstIndex'].array()
27  lastindex = indices['LastIndex'].array()
28  types = indices['Type'].array()
29 
30  # If run is not provided, print all available runs in a given file.
31  if args.r == None or args.r < 0:
32  print('Please provide a valid run number. Runs contained in a given file:')
33  print('To figure out which lumisections are available for each run, use dqmiodumpmetadata.py')
34  for run in set(runs):
35  print(run)
36  exit()
37 
38  treenames = [ # order matters!
39  "Ints",
40  "Floats",
41  "Strings",
42  "TH1Fs",
43  "TH1Ss",
44  "TH1Ds",
45  "TH2Fs",
46  "TH2Ss",
47  "TH2Ds",
48  "TH3Fs",
49  "TProfiles",
50  "TProfile2Ds",
51  "TH1Is",
52  "TH2Is"
53  ]
54  trees = [f[name]["FullName"].array() for name in treenames]
55 
56  for run, lumi, first, last, type in zip(runs, lumis, firstindex, lastindex, types):
57  if run == args.r and lumi == args.l:
58  for i in range(first, int(last + 1)): # In DQMIO both ranges are inclusive
59  print(trees[type][i])
60 else:
61  print("This does not look like DQMIO data.")
ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE constexpr float zip(ConstView const &tracks, int32_t i)
Definition: TracksSoA.h:90
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
def exit(msg="")