File indexing completed on 2024-04-06 12:03:31
0001
0002 """
0003 _HeavyIons_
0004
0005 Scenario supporting heavy ions collisions
0006
0007 """
0008
0009 import os
0010 import sys
0011
0012 from Configuration.DataProcessing.Reco import Reco
0013 import FWCore.ParameterSet.Config as cms
0014 from Configuration.DataProcessing.Modifiers import modifyExpressHI
0015
0016 class HeavyIons(Reco):
0017 def __init__(self):
0018 Reco.__init__(self)
0019 self.recoSeq=''
0020 self.cbSc='HeavyIons'
0021 self.promptCustoms= [ 'Configuration/DataProcessing/RecoTLR.customisePromptHI' ]
0022 self.expressCustoms= [ ]
0023 self.expressModifiers = modifyExpressHI
0024 self.visCustoms= [ ]
0025 self.visModifiers = modifyExpressHI
0026 """
0027 _HeavyIons_
0028
0029 Implement configuration building for data processing for Heavy Ions
0030 collision data taking
0031
0032 """
0033
0034 def _checkMINIAOD(self,**args):
0035 if 'outputs' in args:
0036 for a in args['outputs']:
0037 if a['dataTier'] == 'MINIAOD':
0038 raise RuntimeError("MINIAOD is not supported in HeavyIons")
0039
0040
0041 def _setRepackedFlag(self,args):
0042 if not 'repacked' in args:
0043 args['repacked']= True
0044
0045 def promptReco(self, globalTag, **args):
0046 """
0047 _promptReco_
0048
0049 Heavy ions collision data taking prompt reco
0050
0051 """
0052 self._checkMINIAOD(**args)
0053 self._setRepackedFlag(args)
0054
0055 if not 'skims' in args:
0056 args['skims']=['@allForPrompt']
0057
0058 if not 'customs' in args:
0059 args['customs']=[ ]
0060
0061 for c in self.promptCustoms:
0062 args['customs'].append(c)
0063
0064 process = Reco.promptReco(self,globalTag, **args)
0065
0066 return process
0067
0068
0069 def expressProcessing(self, globalTag, **args):
0070 """
0071 _expressProcessing_
0072
0073 Heavy ions collision data taking express processing
0074
0075 """
0076 self._checkMINIAOD(**args)
0077 self._setRepackedFlag(args)
0078
0079 if not 'skims' in args:
0080 args['skims']=['@allForExpress']
0081
0082 if not 'customs' in args:
0083 args['customs']=[ ]
0084
0085 for c in self.expressCustoms:
0086 args['customs'].append(c)
0087
0088 process = Reco.expressProcessing(self,globalTag, **args)
0089
0090 return process
0091
0092 def visualizationProcessing(self, globalTag, **args):
0093 """
0094 _visualizationProcessing_
0095
0096 Heavy ions collision data taking visualization processing
0097
0098 """
0099 self._checkMINIAOD(**args)
0100 self._setRepackedFlag(args)
0101
0102 if not 'customs' in args:
0103 args['customs']=[ ]
0104
0105 for c in self.visCustoms:
0106 args['customs'].append(c)
0107
0108 process = Reco.visualizationProcessing(self,globalTag, **args)
0109
0110 return process
0111
0112 def alcaHarvesting(self, globalTag, datasetName, **args):
0113 """
0114 _alcaHarvesting_
0115
0116 Heavy ions collisions data taking AlCa Harvesting
0117
0118 """
0119 self._checkMINIAOD(**args)
0120
0121 if not 'skims' in args and not 'alcapromptdataset' in args:
0122 args['skims']=['BeamSpotByRun',
0123 'BeamSpotByLumi',
0124 'SiStripQuality']
0125
0126 return Reco.alcaHarvesting(self, globalTag, datasetName, **args)
0127