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  Reco.__init__(self)
18  self.recoSeq=''
19  self.cbSc='HeavyIons'
20  self.promptCustoms='Configuration/DataProcessing/RecoTLR.customiseRun2DeprecatedPromptHI'
21  self.expressCustoms='Configuration/DataProcessing/RecoTLR.customiseRun2DeprecatedExpressHI'
22  self.visCustoms='Configuration/DataProcessing/RecoTLR.customiseRun2DeprecatedExpressHI'
23  """
24  _HeavyIonsRun2_
25 
26  Implement configuration building for data processing for Heavy Ions
27  collision data taking for Run2
28 
29  """
30 
31  def _checkMINIAOD(self,**args):
32  if 'outputs' in args:
33  for a in args['outputs']:
34  if a['dataTier'] == 'MINIAOD':
35  raise RuntimeError("MINIAOD is not supported in HeavyIonsRun2")
36 
37 
38  def _setRepackedFlag(self,args):
39  if not 'repacked' in args:
40  args['repacked']= True
41 
42  def promptReco(self, globalTag, **args):
43  """
44  _promptReco_
45 
46  Heavy ions collision data taking prompt reco
47 
48  """
49  self._checkMINIAOD(**args)
50  self._setRepackedFlag(args)
51 
52  if not 'skims' in args:
53  args['skims']=['@allForPrompt']
54 
55  customsFunction = self.promptCustoms
56  if not 'customs' in args:
57  args['customs']=[ customsFunction ]
58  else:
59  args['customs'].append(customsFunction)
60 
61  process = Reco.promptReco(self,globalTag, **args)
62 
63  return process
64 
65 
66  def expressProcessing(self, globalTag, **args):
67  """
68  _expressProcessing_
69 
70  Heavy ions collision data taking express processing
71 
72  """
73  self._checkMINIAOD(**args)
74  self._setRepackedFlag(args)
75 
76  if not 'skims' in args:
77  args['skims']=['@allForExpress']
78 
79  customsFunction = self.expressCustoms
80  if not 'customs' in args:
81  args['customs']=[ customsFunction ]
82  else:
83  args['customs'].append( customsFunction )
84 
85  process = Reco.expressProcessing(self,globalTag, **args)
86 
87  return process
88 
89  def visualizationProcessing(self, globalTag, **args):
90  """
91  _visualizationProcessing_
92 
93  Heavy ions collision data taking visualization processing
94 
95  """
96  self._checkMINIAOD(**args)
97  self._setRepackedFlag(args)
98 
99  customsFunction = self.visCustoms
100  if not 'customs' in args:
101  args['customs']=[ customsFunction ]
102  else:
103  args['customs'].append( customsFunction )
104 
105  process = Reco.visualizationProcessing(self,globalTag, **args)
106 
107  return process
108 
109  def alcaHarvesting(self, globalTag, datasetName, **args):
110  """
111  _alcaHarvesting_
112 
113  Heavy ions collisions data taking AlCa Harvesting
114 
115  """
116  self._checkMINIAOD(**args)
117 
118  if not 'skims' in args and not 'alcapromptdataset' in args:
119  args['skims']=['BeamSpotByRun',
120  'BeamSpotByLumi',
121  'SiStripQuality']
122 
123  return Reco.alcaHarvesting(self, globalTag, datasetName, **args)
124 
boost::dynamic_bitset append(const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 ...
Definition: Reco.py:1