CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
HeavyIons.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 """
3 _HeavyIons_
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 from Configuration.DataProcessing.Modifiers import modifyExpressHI
15 
16 class HeavyIons(Reco):
17  def __init__(self):
18  Reco.__init__(self)
19  self.recoSeq=''
20  self.cbSc='HeavyIons'
21  self.promptCustoms= [ 'Configuration/DataProcessing/RecoTLR.customisePromptHI' ]
22  self.expressCustoms= [ ]
23  self.expressModifiers = modifyExpressHI
24  self.visCustoms= [ ]
25  self.visModifiers = modifyExpressHI
26  """
27  _HeavyIons_
28 
29  Implement configuration building for data processing for Heavy Ions
30  collision data taking
31 
32  """
33 
34  def _checkMINIAOD(self,**args):
35  if 'outputs' in args:
36  for a in args['outputs']:
37  if a['dataTier'] == 'MINIAOD':
38  raise RuntimeError("MINIAOD is not supported in HeavyIons")
39 
40 
41  def _setRepackedFlag(self,args):
42  if not 'repacked' in args:
43  args['repacked']= True
44 
45  def promptReco(self, globalTag, **args):
46  """
47  _promptReco_
48 
49  Heavy ions collision data taking prompt reco
50 
51  """
52  self._checkMINIAOD(**args)
53  self._setRepackedFlag(args)
54 
55  if not 'skims' in args:
56  args['skims']=['@allForPrompt']
57 
58  if not 'customs' in args:
59  args['customs']=[ ]
60 
61  for c in self.promptCustoms:
62  args['customs'].append(c)
63 
64  process = Reco.promptReco(self,globalTag, **args)
65 
66  return process
67 
68 
69  def expressProcessing(self, globalTag, **args):
70  """
71  _expressProcessing_
72 
73  Heavy ions collision data taking express processing
74 
75  """
76  self._checkMINIAOD(**args)
77  self._setRepackedFlag(args)
78 
79  if not 'skims' in args:
80  args['skims']=['@allForExpress']
81 
82  if not 'customs' in args:
83  args['customs']=[ ]
84 
85  for c in self.expressCustoms:
86  args['customs'].append(c)
87 
88  process = Reco.expressProcessing(self,globalTag, **args)
89 
90  return process
91 
92  def visualizationProcessing(self, globalTag, **args):
93  """
94  _visualizationProcessing_
95 
96  Heavy ions collision data taking visualization processing
97 
98  """
99  self._checkMINIAOD(**args)
100  self._setRepackedFlag(args)
101 
102  if not 'customs' in args:
103  args['customs']=[ ]
104 
105  for c in self.visCustoms:
106  args['customs'].append(c)
107 
108  process = Reco.visualizationProcessing(self,globalTag, **args)
109 
110  return process
111 
112  def alcaHarvesting(self, globalTag, datasetName, **args):
113  """
114  _alcaHarvesting_
115 
116  Heavy ions collisions data taking AlCa Harvesting
117 
118  """
119  self._checkMINIAOD(**args)
120 
121  if not 'skims' in args and not 'alcapromptdataset' in args:
122  args['skims']=['BeamSpotByRun',
123  'BeamSpotByLumi',
124  'SiStripQuality']
125 
126  return Reco.alcaHarvesting(self, globalTag, datasetName, **args)
127 
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