CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlCa.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 """
3 _AlCa_
4 
5 Scenario supporting proton collisions
6 
7 """
8 
9 import os
10 import sys
11 
12 from Configuration.DataProcessing.Scenario import Scenario
13 from Configuration.DataProcessing.Utils import stepALCAPRODUCER,dqmIOSource,harvestingMode,dictIO
14 import FWCore.ParameterSet.Config as cms
15 from Configuration.PyReleaseValidation.ConfigBuilder import ConfigBuilder
16 from Configuration.PyReleaseValidation.ConfigBuilder import Options
17 from Configuration.PyReleaseValidation.ConfigBuilder import defaultOptions
18 
19 class AlCa(Scenario):
20  """
21  _AlCa_
22 
23  Implement configuration building for data processing for proton
24  collision data taking
25 
26  """
27 
28  def skimsIfNotGiven(self,args,sl):
29  if not 'skims' in args:
30  args['skims']=sl
31 
32  def promptReco(self, globalTag, **args):
33  if not 'skims' in args:
34  args['skims']=self.skims
35  step = stepALCAPRODUCER(args['skims'])
36  options = Options()
37  options.__dict__.update(defaultOptions.__dict__)
38  options.scenario = "pp"
39  options.step = step
40  dictIO(options,args)
41  options.conditions = globalTag
42 
43  process = cms.Process('RECO')
44  cb = ConfigBuilder(options, process = process, with_output = True)
45 
46  # Input source
47  process.source = cms.Source("PoolSource",
48  fileNames = cms.untracked.vstring()
49  )
50  cb.prepare()
51 
52  return process
53 
54  def alcaSkim(self, skims, **args):
55  """
56  _alcaSkim_
57 
58  AlcaReco processing & skims for proton collisions
59 
60  """
61  options = Options()
62  options.__dict__.update(defaultOptions.__dict__)
63  options.scenario = "pp"
64  options.step = "ALCAOUTPUT:"+('+'.join(skims))
65  options.conditions = args['globaltag'] if 'globaltag' in args else 'None'
66  options.triggerResultsProcess = 'RECO'
67 
68  process = cms.Process('ALCA')
69  cb = ConfigBuilder(options, process = process)
70 
71  # Input source
72  process.source = cms.Source(
73  "PoolSource",
74  fileNames = cms.untracked.vstring()
75  )
76 
77  cb.prepare()
78 
79  return process
80 
81 
82  def dqmHarvesting(self, datasetName, runNumber, globalTag, **args):
83  """
84  _dqmHarvesting_
85 
86  Proton collisions data taking DQM Harvesting
87 
88  """
89  options = defaultOptions
90  options.scenario = "pp"
91  options.step = "HARVESTING:alcaHarvesting"
92  options.name = "EDMtoMEConvert"
93  options.conditions = globalTag
94 
95  process = cms.Process("HARVESTING")
96  process.source = dqmIOSource(args)
97  configBuilder = ConfigBuilder(options, process = process)
98  configBuilder.prepare()
99 
100  #
101  # customise process for particular job
102  #
103  #process.source.processingMode = cms.untracked.string('RunsAndLumis')
104  #process.source.fileNames = cms.untracked(cms.vstring())
105  #process.maxEvents.input = -1
106  #process.dqmSaver.workflow = datasetName
107  #process.dqmSaver.saveByLumiSection = 1
108  #if args.has_key('referenceFile') and args.get('referenceFile', ''):
109  # process.DQMStore.referenceFileName = \
110  # cms.untracked.string(args['referenceFile'])
111  harvestingMode(process,datasetName,args)
112 
113  return process
def promptReco
Definition: AlCa.py:32
def stepALCAPRODUCER
Definition: Utils.py:9
def dqmHarvesting
Definition: AlCa.py:82
def alcaSkim
Definition: AlCa.py:54
def dqmIOSource
Definition: Utils.py:88
def dictIO
Definition: Utils.py:108
def skimsIfNotGiven
Definition: AlCa.py:28
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def harvestingMode
Definition: Utils.py:99