CMS 3D CMS Logo

relval_nano.py
Go to the documentation of this file.
2 import math
3 
4 
5 class WFN:
6  # a simple class to number workflows dynamically
7  def __init__(self, offset):
8  self.offset = offset
9  self.index = 0
10  self.subindex = 1
11 
12  def __call__(self):
13  if self.subindex == 100:
14  print("this is not going to work nicely")
15  self.subindex = 0 / 0
16  r = float(f'{self.offset}.{self.index}{self.subindex:02d}')
17  self.subindex += 1
18  return r
19 
20  def next(self, index=None):
21  if index is None:
22  self.index += 1
23  else:
24  # manually set the index if given
25  assert index > self.index
26  self.index = index
27  self.subindex = 1
28 
29  def subnext(self):
30  # go to the next tenth for the subindex 10 because of 02d formating
31  self.subindex = math.ceil(self.subindex / 10.) * 10 + 1
32 
33 
34 workflows = Matrix()
35 
36 _NANO_data = merge([{'-s': 'NANO,DQM:@nanoAODDQM',
37  '--process': 'NANO',
38  '--data': '',
39  '--eventcontent': 'NANOAOD,DQM',
40  '--datatier': 'NANOAOD,DQMIO',
41  '-n': '10000',
42  '--customise': '"Configuration/DataProcessing/Utils.addMonitoring"'
43  }])
44 _HARVEST_nano = merge([{'-s': 'HARVESTING:@nanoAODDQM',
45  '--filetype': 'DQM',
46  '--filein': 'file:step2_inDQM.root',
47  '--conditions': 'auto:run2_data' # this is fake for harvesting
48  }])
49 _HARVEST_data = merge([_HARVEST_nano, {'--data': ''}])
50 
51 
52 run2_lumis = {277168: [[1, 1708]],
53  277194: [[913, 913], [916, 916], [919, 919], [932, 932], [939, 939]],
54  283877: [[1, 1496]],
55  299649: [[155, 332]],
56  303885: [[60, 2052]],
57  305040: [[200, 700]],
58  305050: [[200, 700]],
59  305234: [[1, 200]],
60  305377: [[1, 500]],
61  315489: [[1, 100]],
62  320822: [[1, 200]],
63  }
64 run3_lumis = {}
65 
66 _NANO_mc = merge([{'-s': 'NANO,DQM:@nanoAODDQM',
67  '--process': 'NANO',
68  '--mc': '',
69  '--eventcontent': 'NANOAODSIM,DQM',
70  '--datatier': 'NANOAODSIM,DQMIO',
71  '-n': '10000',
72  '--customise': '"Configuration/DataProcessing/Utils.addMonitoring"'
73  }])
74 _HARVEST_mc = merge([_HARVEST_nano, {'--mc': ''}])
75 steps['HRV_NANO_mc'] = _HARVEST_mc
76 steps['HRV_NANO_data'] = _HARVEST_data
77 
78 
80 steps['TTbarMINIAOD10.6_UL16v2'] = {'INPUT': InputInfo(
81  location='STD', dataSet='/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2/MINIAODSIM')}
82 steps['NANO_mc10.6ul16v2'] = merge([{'--era': 'Run2_2016,run2_nanoAOD_106Xv2',
83  '--conditions': 'auto:run2_mc'},
84  _NANO_mc])
85 # 2017 looking Monte-Carlo: two versions in 10.6
86 steps['TTbarMINIAOD10.6_UL17v2'] = {'INPUT': InputInfo(
87  location='STD', dataSet='/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17MiniAODv2-106X_mc2017_realistic_v9-v2/MINIAODSIM')}
88 steps['NANO_mc10.6ul17v2'] = merge([{'--era': 'Run2_2017,run2_nanoAOD_106Xv2',
89  '--conditions': 'auto:phase1_2017_realistic'},
90  _NANO_mc])
91 
92 steps['TTbarMINIAOD10.6_UL18v2'] = {'INPUT': InputInfo(
93  location='STD', dataSet='/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL18MiniAODv2-106X_upgrade2018_realistic_v16_L1v1-v2/MINIAODSIM')}
94 steps['NANO_mc10.6ul18v2'] = merge([{'--era': 'Run2_2018,run2_nanoAOD_106Xv2',
95  '--conditions': 'auto:phase1_2018_realistic'},
96  _NANO_mc])
97 
98 # HIPM_UL2016_MiniAODv2 campaign is CMSSW_10_6_25
99 steps['MuonEG2016MINIAOD10.6v2'] = {'INPUT': InputInfo(location='STD', ls=run2_lumis,
100  dataSet='/MuonEG/Run2016E-HIPM_UL2016_MiniAODv2-v2/MINIAOD')}
101 steps['NANO_data10.6ul16v2'] = merge([{'--era': 'Run2_2016_HIPM,run2_nanoAOD_106Xv2',
102  '--conditions': 'auto:run2_data'},
103  _NANO_data])
104 # UL2017_MiniAODv2 campaign is CMSSW_10_6_20
105 steps['MuonEG2017MINIAOD10.6v2'] = {'INPUT': InputInfo(location='STD', ls=run2_lumis,
106  dataSet='/MuonEG/Run2017F-UL2017_MiniAODv2-v1/MINIAOD')}
107 steps['NANO_data10.6ul17v2'] = merge([{'--era': 'Run2_2017,run2_nanoAOD_106Xv2',
108  '--conditions': 'auto:run2_data'},
109  _NANO_data])
110 
111 # UL2018_MiniAODv2 campaign is CMSSW_10_6_20
112 steps['MuonEG2018MINIAOD10.6v2'] = {'INPUT': InputInfo(location='STD', ls=run2_lumis,
113  dataSet='/MuonEG/Run2018D-UL2018_MiniAODv2-v1/MINIAOD')}
114 steps['NANO_data10.6ul18v2'] = merge([{'--era': 'Run2_2018,run2_nanoAOD_106Xv2',
115  '--conditions': 'auto:run2_data'},
116  _NANO_data])
117 
118 
120 steps['NANO_mc_UL16APVreMINI'] = merge([{'--era': 'Run2_2016_HIPM',
121  '--conditions': 'auto:run2_mc_pre_vfp'},
122  _NANO_mc])
123 steps['NANO_mc_UL16reMINI'] = merge([{'--era': 'Run2_2016',
124  '--conditions': 'auto:run2_mc'},
125  _NANO_mc])
126 steps['NANO_mc_UL17reMINI'] = merge([{'--era': 'Run2_2017',
127  '--conditions': 'auto:phase1_2017_realistic'},
128  _NANO_mc])
129 steps['NANO_mc_UL18reMINI'] = merge([{'--era': 'Run2_2018',
130  '--conditions': 'auto:phase1_2018_realistic'},
131  _NANO_mc])
132 
133 steps['NANO_data_UL16APVreMINI'] = merge([{'--era': 'Run2_2016_HIPM',
134  '--conditions': 'auto:run2_data'},
135  _NANO_data])
136 steps['NANO_data_UL16reMINI'] = merge([{'--era': 'Run2_2016',
137  '--conditions': 'auto:run2_data'},
138  _NANO_data])
139 steps['NANO_data_UL17reMINI'] = merge([{'--era': 'Run2_2017',
140  '--conditions': 'auto:run2_data'},
141  _NANO_data])
142 steps['NANO_data_UL18reMINI'] = merge([{'--era': 'Run2_2018',
143  '--conditions': 'auto:run2_data'},
144  _NANO_data])
145 
146 
148 steps['TTbarMINIAOD13.0'] = {'INPUT': InputInfo(
149  location='STD', dataSet='/TTtoLNu2Q_TuneCP5_13p6TeV_powheg-pythia8/Run3Summer23MiniAODv4-130X_mcRun3_2023_realistic_v14-v2/MINIAODSIM')}
150 
151 steps['NANO_mc13.0'] = merge([{'--era': 'Run3', '--conditions': 'auto:phase1_2023_realistic'},
152  _NANO_mc])
153 
154 
155 # 13.0 workflows -- data
156 steps['MuonEG2023MINIAOD13.0'] = {'INPUT': InputInfo(location='STD', ls={368489: [[46, 546]]},
157  dataSet='/MuonEG/Run2023C-22Sep2023_v4-v1/MINIAOD')}
158 
159 steps['ScoutingPFRun32022RAW13.0'] = {'INPUT': InputInfo(
160  dataSet='/ScoutingPFRun3/Run2022D-v1/RAW', label='2022D', events=100000, location='STD', ls=Run2022D)}
161 
162 
163 steps['NANO_data13.0'] = merge([{'--era': 'Run3', '--conditions': 'auto:run3_data'},
164  _NANO_data])
165 
166 steps['NANO_data13.0_prompt'] = merge([{'-s': 'NANO:@Prompt,DQM:@nanoAODDQM', '-n': '1000'},
167  steps['NANO_data13.0']])
168 
169 
170 steps['scoutingNANO_data13.0'] = merge([{'-s': 'NANO:@Scout'},
171  steps['NANO_data13.0']])
172 
173 
174 
176 steps['TTbarMINIAOD14.0'] = {'INPUT': InputInfo(
177  location='STD', dataSet='/RelValTTbar_14TeV/CMSSW_14_0_0-PU_140X_mcRun3_2024_realistic_v3_STD_2024_PU-v2/MINIAODSIM')}
178 
179 steps['NANO_mc14.0'] = merge([{'--era': 'Run3', '--conditions': 'auto:phase1_2024_realistic'},
180  _NANO_mc])
181 
182 steps['muPOGNANO_mc14.0'] = merge([{'-s': 'NANO:@MUPOG,DQM:@nanoAODDQM', '-n': '1000'},
183  steps['NANO_mc14.0']])
184 
185 steps['EGMNANO_mc14.0'] = merge([{'-s': 'NANO:@EGM,DQM:@nanoAODDQM', '-n': '1000'},
186  steps['NANO_mc14.0']])
187 
188 steps['BTVNANO_mc14.0'] = merge([{'-s': 'NANO:@BTV', '-n': '1000'},
189  steps['NANO_mc14.0']])
190 
191 steps['lepTrackInfoNANO_mc14.0'] = merge([{'-s': 'NANO:@LepTrackInfo,DQM:@nanoAODDQM', '-n': '1000'},
192  steps['NANO_mc14.0']])
193 
194 steps['jmeNANO_mc14.0'] = merge([{'-s': 'NANO:@JME ', '-n': '1000'},
195  steps['NANO_mc14.0']])
196 
197 steps['jmeNANO_rePuppi_mc14.0'] = merge([{'-s': 'NANO:@JMErePuppi ', '-n': '1000'},
198  steps['NANO_mc14.0']])
199 
200 steps['scoutingNANO_mc14.0'] = merge([{'-s': 'NANO:@Scout'},
201  steps['NANO_mc14.0']])
202 
203 # 14.0 workflows -- data
204 lumis_Run2024D = {380306: [[28, 273]]}
205 steps['MuonEG2024MINIAOD14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
206  dataSet='/MuonEG/Run2024D-PromptReco-v1/MINIAOD')}
207 
208 steps['ScoutingPFRun32024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
209  dataSet='/ScoutingPFRun3/Run2024D-v1/HLTSCOUT')}
210 
211 steps['ZMuSkim2024RAWRECO14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
212  dataSet='/Muon0/Run2024D-ZMu-PromptReco-v1/RAW-RECO')}
213 
214 steps['ZeroBias2024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
215  dataSet='/ZeroBias/Run2024D-v1/RAW')}
216 
217 steps['TestEnablesEcalHcal2024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls={383173: [[151, 162]]},
218  dataSet='/TestEnablesEcalHcal/Run2024F-Express-v1/RAW')}
219 
220 steps['NANO_data14.0'] = merge([{'--era': 'Run3_2024', '--conditions': 'auto:run3_data_prompt'},
221  _NANO_data])
222 
223 steps['NANO_data14.0_prompt'] = merge([{'-s': 'NANO:@Prompt,DQM:@nanoAODDQM', '-n': '1000'},
224  steps['NANO_data14.0']])
225 
226 steps['muPOGNANO_data14.0'] = merge([{'-s': 'NANO:@MUPOG,DQM:@nanoAODDQM', '-n': '1000'},
227  steps['NANO_data14.0']])
228 
229 steps['EGMNANO_data14.0'] = merge([{'-s': 'NANO:@EGM,DQM:@nanoAODDQM', '-n': '1000'},
230  steps['NANO_data14.0']])
231 
232 steps['BTVNANO_data14.0'] = merge([{'-s': 'NANO:@BTV', '-n': '1000'},
233  steps['NANO_data14.0']])
234 
235 steps['lepTrackInfoNANO_data14.0'] = merge([{'-s': 'NANO:@LepTrackInfo,DQM:@nanoAODDQM', '-n': '1000'},
236  steps['NANO_data14.0']])
237 
238 steps['jmeNANO_data14.0'] = merge([{'-s': 'NANO:@JME', '-n': '1000'},
239  steps['NANO_data14.0']])
240 
241 steps['jmeNANO_rePuppi_data14.0'] = merge([{'-s': 'NANO:@JMErePuppi', '-n': '1000'},
242  steps['NANO_data14.0']])
243 
244 steps['scoutingNANO_data14.0'] = merge([{'-s': 'NANO:@Scout'},
245  steps['NANO_data14.0']])
246 
247 # DPG custom NANO
248 steps['muDPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@MUDPG', '-n': '100'},
249  steps['NANO_data14.0']])
250 
251 steps['muDPGNANOBkg_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@MUDPGBKG', '-n': '100'},
252  steps['NANO_data14.0']])
253 
254 steps['hcalDPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,RECO,NANO:@HCAL', '-n': '100',
255  '--processName': 'NANO'},
256  steps['NANO_data14.0']])
257 
258 steps['hcalDPGCalibNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,RECO,NANO:@HCALCalib', '-n': '100',
259  '--processName': 'NANO'},
260  steps['NANO_data14.0']])
261 
262 steps['l1DPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@L1DPG', '-n': '100'},
263  steps['NANO_data14.0']])
264 
265 
267 steps['NANOGENFromGen'] = merge([{'-s': 'NANO:@GEN,DQM:@nanogenDQM',
268  '-n': 1000,
269  '--conditions': 'auto:run2_mc'},
270  _NANO_mc])
271 steps['NANOGENFromMini'] = merge([{'-s': 'NANO:@GENFromMini,DQM:@nanogenDQM',
272  '-n': 1000,
273  '--conditions': 'auto:run2_mc'},
274  _NANO_mc])
275 
276 
277 _wfn = WFN(2500)
278 
280 workflows[_wfn()] = ['NANOmc106Xul16v2', ['TTbarMINIAOD10.6_UL16v2', 'NANO_mc10.6ul16v2', 'HRV_NANO_mc']]
281 workflows[_wfn()] = ['NANOmc106Xul17v2', ['TTbarMINIAOD10.6_UL17v2', 'NANO_mc10.6ul17v2', 'HRV_NANO_mc']]
282 workflows[_wfn()] = ['NANOmc106Xul18v2', ['TTbarMINIAOD10.6_UL18v2', 'NANO_mc10.6ul18v2', 'HRV_NANO_mc']]
283 
284 _wfn.subnext()
285 workflows[_wfn()] = ['NANOdata106Xul16v2', ['MuonEG2016MINIAOD10.6v2', 'NANO_data10.6ul16v2', 'HRV_NANO_data']]
286 workflows[_wfn()] = ['NANOdata106Xul17v2', ['MuonEG2017MINIAOD10.6v2', 'NANO_data10.6ul17v2', 'HRV_NANO_data']]
287 workflows[_wfn()] = ['NANOdata106Xul18v2', ['MuonEG2018MINIAOD10.6v2', 'NANO_data10.6ul18v2', 'HRV_NANO_data']]
288 
289 # Run2, 10_6_X AOD, reMINI+reNANO
290 _wfn.subnext()
291 workflows[_wfn()] = ['NANOmcUL16APVreMINI', ['TTbar_13_reminiaod2016UL_preVFP_INPUT', 'REMINIAOD_mc2016UL_preVFP', 'NANO_mc_UL16APVreMINI', 'HRV_NANO_data']] # noqa
292 workflows[_wfn()] = ['NANOmcUL16reMINI', ['TTbar_13_reminiaod2016UL_postVFP_INPUT', 'REMINIAOD_mc2016UL_postVFP', 'NANO_mc_UL16reMINI', 'HRV_NANO_data']] # noqa
293 workflows[_wfn()] = ['NANOmcUL17reMINI', ['TTbar_13_reminiaod2017UL_INPUT', 'REMINIAOD_mc2017UL', 'NANO_mc_UL17reMINI', 'HRV_NANO_data']] # noqa
294 workflows[_wfn()] = ['NANOmcUL18reMINI', ['TTbar_13_reminiaod2018UL_INPUT', 'REMINIAOD_mc2018UL', 'NANO_mc_UL18reMINI', 'HRV_NANO_data']] # noqa
295 
296 _wfn.subnext()
297 workflows[_wfn()] = ['NANOdataUL16APVreMINI', ['RunJetHT2016E_reminiaodUL', 'REMINIAOD_data2016UL_HIPM', 'NANO_data_UL16APVreMINI', 'HRV_NANO_data']] # noqa
298 workflows[_wfn()] = ['NANOdataUL16reMINI', ['RunJetHT2016H_reminiaodUL', 'REMINIAOD_data2016UL', 'NANO_data_UL16reMINI', 'HRV_NANO_data']] # noqa
299 workflows[_wfn()] = ['NANOdataUL17reMINI', ['RunJetHT2017F_reminiaodUL', 'REMINIAOD_data2017UL', 'NANO_data_UL17reMINI', 'HRV_NANO_data']] # noqa
300 workflows[_wfn()] = ['NANOdataUL18reMINI', ['RunJetHT2018D_reminiaodUL', 'REMINIAOD_data2018UL', 'NANO_data_UL18reMINI', 'HRV_NANO_data']] # noqa
301 
302 _wfn.next(1)
303 
305 workflows[_wfn()] = ['NANOmc130X', ['TTbarMINIAOD13.0', 'NANO_mc13.0', 'HRV_NANO_mc']]
306 
307 _wfn.subnext()
308 workflows[_wfn()] = ['NANOdata130Xrun3', ['MuonEG2023MINIAOD13.0', 'NANO_data13.0', 'HRV_NANO_data']]
309 workflows[_wfn()] = ['NANOdata130Xrun3', ['MuonEG2023MINIAOD13.0', 'NANO_data13.0_prompt', 'HRV_NANO_data']]
310 
311 # POG/PAG custom NANOs, MC
312 _wfn.subnext()
313 
314 # POG/PAG custom NANOs, data
315 _wfn.subnext()
316 workflows[_wfn()] = ['ScoutingNANOdata130Xrun3', ['ScoutingPFRun32022RAW13.0', 'scoutingNANO_data13.0']]
317 
318 # DPG custom NANOs, data
319 _wfn.subnext()
320 
321 _wfn.next(2)
322 
324 workflows[_wfn()] = ['NANOmc140X', ['TTbarMINIAOD14.0', 'NANO_mc14.0', 'HRV_NANO_mc']]
325 
326 _wfn.subnext()
327 workflows[_wfn()] = ['NANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'NANO_data14.0', 'HRV_NANO_data']]
328 workflows[_wfn()] = ['NANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'NANO_data14.0_prompt', 'HRV_NANO_data']]
329 
330 # POG/PAG custom NANOs, MC
331 _wfn.subnext()
332 workflows[_wfn()] = ['muPOGNANOmc140X', ['TTbarMINIAOD14.0', 'muPOGNANO_mc14.0']]
333 workflows[_wfn()] = ['EGMNANOmc140X', ['TTbarMINIAOD14.0', 'EGMNANO_mc14.0']]
334 workflows[_wfn()] = ['BTVNANOmc140X', ['TTbarMINIAOD14.0', 'BTVNANO_mc14.0']]
335 workflows[_wfn()] = ['jmeNANOmc140X', ['TTbarMINIAOD14.0', 'jmeNANO_mc14.0']]
336 workflows[_wfn()] = ['jmeNANOrePuppimc140X', ['TTbarMINIAOD14.0', 'jmeNANO_rePuppi_mc14.0']]
337 workflows[_wfn()] = ['lepTrackInfoNANOmc140X', ['TTbarMINIAOD14.0', 'lepTrackInfoNANO_mc14.0']]
338 workflows[_wfn()] = ['ScoutingNANOmc140X', ['TTbarMINIAOD14.0', 'scoutingNANO_mc14.0']]
339 
340 # POG/PAG custom NANOs, data
341 _wfn.subnext()
342 workflows[_wfn()] = ['muPOGNANO140Xrun3', ['MuonEG2024MINIAOD14.0', 'muPOGNANO_data14.0']]
343 workflows[_wfn()] = ['EGMNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'EGMNANO_data14.0']]
344 workflows[_wfn()] = ['BTVNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'BTVNANO_data14.0']]
345 workflows[_wfn()] = ['jmeNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'jmeNANO_data14.0']]
346 workflows[_wfn()] = ['jmeNANOrePuppidata140Xrun3', ['MuonEG2024MINIAOD14.0', 'jmeNANO_rePuppi_data14.0']]
347 workflows[_wfn()] = ['lepTrackInfoNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'lepTrackInfoNANO_data14.0']]
348 workflows[_wfn()] = ['ScoutingNANOdata140Xrun3', ['ScoutingPFRun32024RAW14.0', 'scoutingNANO_data14.0']]
349 
350 # DPG custom NANOs, data
351 _wfn.subnext()
352 workflows[_wfn()] = ['l1DPGNANO140Xrun3', ['ZMuSkim2024RAWRECO14.0', 'l1DPGNANO_data14.0']]
353 workflows[_wfn()] = ['muDPGNANO140Xrun3', ['ZMuSkim2024RAWRECO14.0', 'muDPGNANO_data14.0']]
354 workflows[_wfn()] = ['muDPGNANOBkg140Xrun3', ['ZeroBias2024RAW14.0', 'muDPGNANOBkg_data14.0']]
355 workflows[_wfn()] = ['hcalDPGNANO140Xrun3', ['ZeroBias2024RAW14.0', 'hcalDPGNANO_data14.0']]
356 workflows[_wfn()] = ['hcalDPGCalibNANO140Xrun3', ['TestEnablesEcalHcal2024RAW14.0', 'hcalDPGCalibNANO_data14.0']]
357 
358 _wfn.next(9)
359 
361 workflows[_wfn()] = ['', ['TTbarMINIAOD10.6_UL18v2', 'NANOGENFromMini']]
362 workflows[_wfn()] = ['', ['TTbarMINIAOD14.0', 'NANOGENFromMini']]
363 _wfn.subnext()
364 workflows[_wfn()] = ['', ['DYToLL_M-50_13TeV_pythia8', 'NANOGENFromGen']]
365 workflows[_wfn()] = ['', ['DYToll01234Jets_5f_LO_MLM_Madgraph_LHE_13TeV',
366  'Hadronizer_TuneCP5_13TeV_MLM_5f_max4j_LHE_pythia8', 'NANOGENFromGen']]
367 workflows[_wfn()] = ['', ['TTbar_Pow_LHE_13TeV', 'Hadronizer_TuneCP5_13TeV_powhegEmissionVeto2p_pythia8', 'NANOGENFromGen']]
Definition: merge.py:1
def next(self, index=None)
Definition: relval_nano.py:20
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
def __init__(self, offset)
Definition: relval_nano.py:7
portabletest::Matrix Matrix
def subnext(self)
Definition: relval_nano.py:29
def __call__(self)
Definition: relval_nano.py:12