CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HeavyIons.py
Go to the documentation of this file.
1 #!/usr/bin/env python
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 
15 class HeavyIons(Reco):
16  def __init__(self):
17  Reco.__init__(self)
18  self.recoSeq=''
19  self.cbSc='HeavyIons'
20  self.promptCustoms='Configuration/DataProcessing/RecoTLR.customisePromptHI'
21  self.expressCustoms='Configuration/DataProcessing/RecoTLR.customiseExpressHI'
22  self.visCustoms='Configuration/DataProcessing/RecoTLR.customiseExpressHI'
23  """
24  _HeavyIons_
25 
26  Implement configuration building for data processing for Heavy Ions
27  collision data taking
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 HeavyIons")
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  if not 'customs' in args:
56  args['customs']=[ ]
57 
58  args['customs'].append(self.promptCustoms)
59 
60  process = Reco.promptReco(self,globalTag, **args)
61 
62  return process
63 
64 
65  def expressProcessing(self, globalTag, **args):
66  """
67  _expressProcessing_
68 
69  Heavy ions collision data taking express processing
70 
71  """
72  self._checkMINIAOD(**args)
73  self._setRepackedFlag(args)
74 
75  if not 'skims' in args:
76  args['skims']=['@allForExpress']
77 
78  if not 'customs' in args:
79  args['customs']=[ ]
80 
81  args['customs'].append( self.expressCustoms )
82 
83  process = Reco.expressProcessing(self,globalTag, **args)
84 
85  return process
86 
87  def visualizationProcessing(self, globalTag, **args):
88  """
89  _visualizationProcessing_
90 
91  Heavy ions collision data taking visualization processing
92 
93  """
94  self._checkMINIAOD(**args)
95  self._setRepackedFlag(args)
96 
97  if not 'customs' in args:
98  args['customs']=[ ]
99 
100  args['customs'].append( self.visCustoms )
101 
102  process = Reco.visualizationProcessing(self,globalTag, **args)
103 
104  return process
105 
106  def alcaHarvesting(self, globalTag, datasetName, **args):
107  """
108  _alcaHarvesting_
109 
110  Heavy ions collisions data taking AlCa Harvesting
111 
112  """
113  self._checkMINIAOD(**args)
114 
115  if not 'skims' in args and not 'alcapromptdataset' in args:
116  args['skims']=['BeamSpotByRun',
117  'BeamSpotByLumi',
118  'SiStripQuality']
119 
120  return Reco.alcaHarvesting(self, globalTag, datasetName, **args)
121 
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