CMS 3D CMS Logo

Functions
getPayloadData Namespace Reference

Functions

def deserialize_iovs (db, plugin_name, plot_name, tags, time_type, input_params)
 
def discover ()
 
def discover_plugins ()
 
def output (description, param)
 
def supress_output (f)
 

Function Documentation

◆ deserialize_iovs()

def getPayloadData.deserialize_iovs (   db,
  plugin_name,
  plot_name,
  tags,
  time_type,
  input_params 
)
Deserializes given iovs data and returns plot coordinates 

Definition at line 65 of file getPayloadData.py.

65 def deserialize_iovs(db, plugin_name, plot_name, tags, time_type, input_params):
66  ''' Deserializes given iovs data and returns plot coordinates '''
67 
68  output('Starting to deserialize iovs: ', '')
69  output('db: ', db)
70  output('plugin name: ', plugin_name)
71  output('plot name: ', plot_name)
72  output('tags: ', tags)
73  output('tag time type: ', time_type)
74 
75  plugin_base = import_module('pluginModule_PayloadInspector')
76  output('PI plugin base: ', plugin_base)
77 
78  plugin_obj = import_module(plugin_name)
79  output('PI plugin object: ', plugin_obj)
80 
81  # get plot method and execute it with given iovs
82  plot = getattr(plugin_obj, plot_name)()
83  output('plot object: ', plot)
84 
85  if db == "Prod":
86  db_name = 'frontier://FrontierProd/CMS_CONDITIONS'
87  elif db == 'Prep' :
88  db_name = 'frontier://FrontierPrep/CMS_CONDITIONS'
89  else:
90  db_name = db
91 
92  output('full DB name: ', db_name)
93 
94  if input_params is not None:
95  plot.setInputParamValues( input_params )
96 
97  modv = getattr(plugin_base,'ModuleVersion')
98 
99  success = False
100  if modv.label == '1.0':
101  if len(tags)==1:
102  success = plot.process(db_name, tags[0][0], time_type, int(tags[0][1]), int(tags[0][2]) )
103  elif len(tags)==2:
104  success = plot.processTwoTags(db_name, tags[0][0], tags[1][0], int(tags[0][1]),int(tags[1][1]) )
105  elif modv.label == '2.0':
106  success = plot.process(db_name, tags)
107 
108  output('plot processed data successfully: ', success)
109  if not success:
110  return False
111 
112  result = plot.data()
113  output('deserialized data: ', result)
114  return result
115 

References createfilelist.int, and output().

Referenced by output().

◆ discover()

def getPayloadData.discover ( )
Discovers object types and plots for a given cmssw release
    Example:
    {
        "BasicPayload": [
            {"plot": "plot_BeamSpot_x", "plot_type": "History", 
             "single_iov": false, "plugin_name": "pluginBeamSpot_PayloadInspector",
             "title": "x vs run number"},
            ...
        ],
       ...
    }

Definition at line 152 of file getPayloadData.py.

152 def discover():
153  ''' Discovers object types and plots for a given cmssw release
154  Example:
155  {
156  "BasicPayload": [
157  {"plot": "plot_BeamSpot_x", "plot_type": "History",
158  "single_iov": false, "plugin_name": "pluginBeamSpot_PayloadInspector",
159  "title": "x vs run number"},
160  ...
161  ],
162  ...
163  }
164  '''
165  plugin_base = import_module('pluginModule_PayloadInspector')
166  modv = getattr(plugin_base,'ModuleVersion')
167  result = {}
168  for plugin_name in discover_plugins():
169  output(' - plugin name: ', plugin_name)
170  plugin_obj = import_module(plugin_name)
171  output('*** PI plugin object: ', plugin_obj)
172  for plot in dir(plugin_obj):
173  if 'plot_' not in plot: continue # skip if method doesn't start with 'plot_' prefix
174  output(' - plot name: ', plot)
175  plot_method= getattr(plugin_obj, plot)()
176  output(' - plot object: ', plot_method)
177  payload_type = plot_method.payloadType()
178  output(' - payload type: ', payload_type)
179  plot_title = plot_method.title()
180  output(' - plot title: ', plot_title)
181  plot_type = plot_method.type()
182  output(' - plot type: ', plot_type)
183  single_iov = plot_method.isSingleIov()
184  output(' - is single iov: ', single_iov)
185  two_tags = plot_method.isTwoTags()
186  output(' - is Two Tags: ', two_tags)
187  plot_dict = { 'plot': plot, 'plugin_name': plugin_name, 'title': plot_title, 'plot_type': plot_type, 'single_iov': single_iov, 'two_tags': two_tags }
188  #if modv.label == '2.0':
189  # input_params = plot_method.inputParams()
190  # output(' - input params: ', len(input_params))
191  # plot_dict[ 'input_params'] = input_params
192  result.setdefault(payload_type, []).append( plot_dict )
193  output('currently discovered info: ', result)
194  output('*** final output:', '')
195  return json.dumps(result)
196 

References mps_setup.append, DeadROC_duringRun.dir, discover_plugins(), and output().

Referenced by output().

◆ discover_plugins()

def getPayloadData.discover_plugins ( )
Returns a list of Payload Inspector plugin names
    Example:
    ['pluginBasicPayload_PayloadInspector', 'pluginBeamSpot_PayloadInspector', 'pluginSiStrip_PayloadInspector']

Definition at line 116 of file getPayloadData.py.

116 def discover_plugins():
117  ''' Returns a list of Payload Inspector plugin names
118  Example:
119  ['pluginBasicPayload_PayloadInspector', 'pluginBeamSpot_PayloadInspector', 'pluginSiStrip_PayloadInspector']
120  '''
121  architecture = os.environ.get('SCRAM_ARCH', None)
122  output('architecture: ', architecture)
123 
124  plugins = []
125  releases = [
126  os.environ.get('CMSSW_BASE', None),
127  os.environ.get('CMSSW_RELEASE_BASE', None)
128  ]
129 
130  for r in releases:
131  if not r: continue # skip if release base is not specified
132  output('* release: ', r)
133 
134  path = os.path.join(r, 'lib', architecture)
135  output('* full release path: ', path)
136 
137  plugins += glob.glob(path + '/plugin*_PayloadInspector.so' )
138  output('found plugins: ', plugins)
139 
140  if r: break # break loop if CMSSW_BASE is specified
141 
142  # extracts the object name from plugin path:
143  # /afs/cern.ch/cms/slc6_amd64_gcc493/cms/cmssw/CMSSW_8_0_6/lib/slc6_amd64_gcc493/pluginBasicPayload_PayloadInspector.so
144  # becomes pluginBasicPayload_PayloadInspector
145  result = []
146  for p in plugins:
147  result.append(p.split('/')[-1].replace('.so', ''))
148 
149  output('discovered plugins: ', result)
150  return result
151 

References output(), and python.rootplot.root2matplotlib.replace().

Referenced by discover().

◆ output()

def getPayloadData.output (   description,
  param 
)

Definition at line 197 of file getPayloadData.py.

197 def output(description, param):
198  if args.verbose:
199  print('')
200  print(description, param)
201 

References deserialize_iovs(), discover(), edm.print(), and str.

Referenced by deserialize_iovs(), discover(), and discover_plugins().

◆ supress_output()

def getPayloadData.supress_output (   f)
Temporarily disables stdout and stderr so that printouts from the plot
plugin does not compromise the purity of our ssh stream if 
args.suppress_output is true

Definition at line 22 of file getPayloadData.py.

22 def supress_output( f ):
23  '''
24  Temporarily disables stdout and stderr so that printouts from the plot
25  plugin does not compromise the purity of our ssh stream if
26  args.suppress_output is true
27  '''
28  def decorated( *fargs, **fkwargs ):
29 
30  suppress = args.suppress_output
31  if suppress:
32 
33  # Get rid of what is already there ( should be nothing for this script )
34  sys.stdout.flush()
35 
36  # Save file descriptors so it can be reactivated later
37  saved_stdout = os.dup( 1 )
38  saved_stderr = os.dup( 2 )
39 
40  # /dev/null is used just to discard what is being printed
41  devnull = os.open( '/dev/null', os.O_WRONLY )
42 
43  # Duplicate the file descriptor for /dev/null
44  # and overwrite the value for stdout (file descriptor 1)
45  os.dup2( devnull, 1 )
46  os.dup2( devnull, 2 )
47 
48  result = f( *fargs, **fkwargs )
49 
50  if suppress:
51 
52  # Close devnull after duplication (no longer needed)
53  os.close( devnull )
54 
55  # Reenable stdout and stderr
56  os.dup2( saved_stdout, 1 )
57  os.dup2( saved_stderr, 2 )
58 
59  return result
60 
61  return decorated
62 
63 
64 @supress_output

References f.

getPayloadData.supress_output
def supress_output(f)
Definition: getPayloadData.py:22
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
getPayloadData.discover_plugins
def discover_plugins()
Definition: getPayloadData.py:116
getPayloadData.output
def output(description, param)
Definition: getPayloadData.py:197
getPayloadData.discover
def discover()
Definition: getPayloadData.py:152
mps_setup.append
append
Definition: mps_setup.py:85
createfilelist.int
int
Definition: createfilelist.py:10
edm::print
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
getPayloadData.deserialize_iovs
def deserialize_iovs(db, plugin_name, plot_name, tags, time_type, input_params)
Definition: getPayloadData.py:65
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
python.rootplot.root2matplotlib.replace
def replace(string, replacements)
Definition: root2matplotlib.py:444