CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HeavyIonsRun2.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 """
3 _HeavyIonsRun2_
4 
5 Scenario supporting heavy ions collisions
6 
7 """
8 
9 import os
10 import sys
11 
12 from Configuration.DataProcessing.Reco import Reco
13 import FWCore.ParameterSet.Config as cms
14 
16  def __init__(self):
17  self.recoSeq=''
18  self.cbSc='HeavyIons'
19  self.promptCustoms='Configuration/DataProcessing/RecoTLR.customiseRun2PromptHI'
20  self.expressCustoms='Configuration/DataProcessing/RecoTLR.customiseRun2ExpressHI'
21  self.visCustoms='Configuration/DataProcessing/RecoTLR.customiseRun2ExpressHI'
22  """
23  _HeavyIonsRun2_
24 
25  Implement configuration building for data processing for Heavy Ions
26  collision data taking for Run2
27 
28  """
29 
30  def _checkMINIAOD(self,**args):
31  if 'outputs' in args:
32  for a in args['outputs']:
33  if a['dataTier'] == 'MINIAOD':
34  raise RuntimeError("MINIAOD is not supported in HeavyIonsRun2")
35 
36  def promptReco(self, globalTag, **args):
37  """
38  _promptReco_
39 
40  Heavy ions collision data taking prompt reco
41 
42  """
43  self._checkMINIAOD(**args)
44 
45  if not 'skims' in args:
46  args['skims']=['@allForPrompt']
47 
48  customsFunction = self.promptCustoms
49  if not 'customs' in args:
50  args['customs']=[ customsFunction ]
51  else:
52  args['customs'].append(customsFunction)
53 
54  process = Reco.promptReco(self,globalTag, **args)
55 
56  return process
57 
58 
59  def expressProcessing(self, globalTag, **args):
60  """
61  _expressProcessing_
62 
63  Heavy ions collision data taking express processing
64 
65  """
66  self._checkMINIAOD(**args)
67 
68  if not 'skims' in args:
69  args['skims']=['@allForExpress']
70 
71  customsFunction = self.expressCustoms
72  if not 'customs' in args:
73  args['customs']=[ customsFunction ]
74  else:
75  args['customs'].append( customsFunction )
76 
77  process = Reco.expressProcessing(self,globalTag, **args)
78 
79  return process
80 
81  def visualizationProcessing(self, globalTag, **args):
82  """
83  _visualizationProcessing_
84 
85  Heavy ions collision data taking visualization processing
86 
87  """
88  self._checkMINIAOD(**args)
89 
90  customsFunction = self.visCustoms
91  if not 'customs' in args:
92  args['customs']=[ customsFunction ]
93  else:
94  args['customs'].append( customsFunction )
95 
96  process = Reco.visualizationProcessing(self,globalTag, **args)
97 
98  return process
99 
100  def alcaHarvesting(self, globalTag, datasetName, **args):
101  """
102  _alcaHarvesting_
103 
104  Heavy ions collisions data taking AlCa Harvesting
105 
106  """
107  self._checkMINIAOD(**args)
108 
109  if not 'skims' in args and not 'alcapromptdataset' in args:
110  args['skims']=['BeamSpotByRun',
111  'BeamSpotByLumi',
112  'SiStripQuality']
113 
114  return Reco.alcaHarvesting(self, globalTag, datasetName, **args)
115 
Definition: Reco.py:1