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 
13 from Configuration.DataProcessing.Utils import stepALCAPRODUCER,dqmIOSource,harvestingMode,dictIO,gtNameAndConnect
14 import FWCore.ParameterSet.Config as cms
15 
16 class AlCa(Scenario):
17  def __init__(self):
18  Scenario.__init__(self)
19 
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 = gtNameAndConnect(globalTag, args)
42 
43  process = cms.Process('RECO', self.eras)
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  if 'globalTagConnect' in args and args['globalTagConnect'] != '':
67  options.conditions += ','+args['globalTagConnect']
68 
69  options.triggerResultsProcess = 'RECO'
70 
71  process = cms.Process('ALCA', self.eras)
72  cb = ConfigBuilder(options, process = process)
73 
74  # Input source
75  process.source = cms.Source(
76  "PoolSource",
77  fileNames = cms.untracked.vstring()
78  )
79 
80  cb.prepare()
81 
82  return process
83 
84 
85  def dqmHarvesting(self, datasetName, runNumber, globalTag, **args):
86  """
87  _dqmHarvesting_
88 
89  Proton collisions data taking DQM Harvesting
90 
91  """
92  options = defaultOptions
93  options.scenario = "pp"
94  options.step = "HARVESTING:alcaHarvesting"
95  options.name = "EDMtoMEConvert"
96  options.conditions = gtNameAndConnect(globalTag, args)
97 
98  process = cms.Process("HARVESTING", self.eras)
99  process.source = dqmIOSource(args)
100  configBuilder = ConfigBuilder(options, process = process)
101  configBuilder.prepare()
102 
103  #
104  # customise process for particular job
105  #
106  #process.source.processingMode = cms.untracked.string('RunsAndLumis')
107  #process.source.fileNames = cms.untracked(cms.vstring())
108  #process.maxEvents.input = -1
109  #process.dqmSaver.workflow = datasetName
110  #process.dqmSaver.saveByLumiSection = 1
111  #if args.has_key('referenceFile') and args.get('referenceFile', ''):
112  # process.DQMStore.referenceFileName = \
113  # cms.untracked.string(args['referenceFile'])
114  harvestingMode(process,datasetName,args)
115 
116  return process
def __init__
Definition: AlCa.py:17
def promptReco
Definition: AlCa.py:32
def stepALCAPRODUCER
Definition: Utils.py:9
def dqmHarvesting
Definition: AlCa.py:85
def alcaSkim
Definition: AlCa.py:54
def gtNameAndConnect
Definition: Utils.py:137
def dqmIOSource
Definition: Utils.py:103
def dictIO
Definition: Utils.py:123
def skimsIfNotGiven
Definition: AlCa.py:28
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def harvestingMode
Definition: Utils.py:114