Go to the documentation of this file.00001
00002 """
00003 _AlCa_
00004
00005 Scenario supporting proton collisions
00006
00007 """
00008
00009 import os
00010 import sys
00011
00012 from Configuration.DataProcessing.Scenario import Scenario
00013 from Configuration.DataProcessing.Utils import stepALCAPRODUCER,dqmIOSource,harvestingMode,dictIO
00014 import FWCore.ParameterSet.Config as cms
00015 from Configuration.PyReleaseValidation.ConfigBuilder import ConfigBuilder
00016 from Configuration.PyReleaseValidation.ConfigBuilder import Options
00017 from Configuration.PyReleaseValidation.ConfigBuilder import defaultOptions
00018
00019 class AlCa(Scenario):
00020 """
00021 _AlCa_
00022
00023 Implement configuration building for data processing for proton
00024 collision data taking
00025
00026 """
00027
00028 def skimsIfNotGiven(self,args,sl):
00029 if not 'skims' in args:
00030 args['skims']=sl
00031
00032 def promptReco(self, globalTag, **args):
00033 if not 'skims' in args:
00034 args['skims']=self.skims
00035 step = stepALCAPRODUCER(args['skims'])
00036 options = Options()
00037 options.__dict__.update(defaultOptions.__dict__)
00038 options.scenario = "pp"
00039 options.step = step
00040 dictIO(options,args)
00041 options.conditions = globalTag
00042
00043 process = cms.Process('RECO')
00044 cb = ConfigBuilder(options, process = process, with_output = True)
00045
00046
00047 process.source = cms.Source("PoolSource",
00048 fileNames = cms.untracked.vstring()
00049 )
00050 cb.prepare()
00051
00052 return process
00053
00054 def alcaSkim(self, skims, **args):
00055 """
00056 _alcaSkim_
00057
00058 AlcaReco processing & skims for proton collisions
00059
00060 """
00061 options = Options()
00062 options.__dict__.update(defaultOptions.__dict__)
00063 options.scenario = "pp"
00064 options.step = "ALCAOUTPUT:"+('+'.join(skims))
00065 options.conditions = args['globaltag'] if 'globaltag' in args else 'None'
00066 options.triggerResultsProcess = 'RECO'
00067
00068 process = cms.Process('ALCA')
00069 cb = ConfigBuilder(options, process = process)
00070
00071
00072 process.source = cms.Source(
00073 "PoolSource",
00074 fileNames = cms.untracked.vstring()
00075 )
00076
00077 cb.prepare()
00078
00079 return process
00080
00081
00082 def dqmHarvesting(self, datasetName, runNumber, globalTag, args):
00083 """
00084 _dqmHarvesting_
00085
00086 Proton collisions data taking DQM Harvesting
00087
00088 """
00089 options = defaultOptions
00090 options.scenario = "pp"
00091 options.step = "HARVESTING:alcaHarvesting"
00092 options.name = "EDMtoMEConvert"
00093 options.conditions = globalTag
00094
00095 process = cms.Process("HARVESTING")
00096 process.source = dqmIOSource(args)
00097 configBuilder = ConfigBuilder(options, process = process)
00098 configBuilder.prepare()
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 harvestingMode(process,datasetName,args)
00112
00113 return process