CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlCaP0.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 """
3 _AlCaP0_
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
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 from Configuration.PyReleaseValidation.ConfigBuilder import installFilteredStream
19 from Configuration.DataProcessing.RecoTLR import customisePrompt,customiseExpress
20 
22  """
23  _AlCaP0_
24 
25  Implement configuration building for data processing for proton
26  collision data taking
27 
28  """
29 
30 
31  def promptReco(self, globalTag, writeTiers = ['ALCARECO'], **args):
32  """
33  _promptReco_
34 
35  Proton collision data taking prompt reco
36 
37  """
38 
39  skims = ['EcalCalPi0Calib',
40  'EcalCalEtaCalib']
41  step = stepALCAPRODUCER(skims)
42  options = Options()
43  options.__dict__.update(defaultOptions.__dict__)
44  options.scenario = "pp"
45  options.step = step
46  options.isMC = False
47  options.isData = True
48  options.beamspot = None
49  options.eventcontent = ','.join(writeTiers)
50  options.datatier = ','.join(writeTiers)
51  options.magField = 'AutoFromDBCurrent'
52  options.conditions = "FrontierConditions_GlobalTag,%s" % globalTag
53  options.relval = False
54 
55  process = cms.Process('RECO')
56  cb = ConfigBuilder(options, process = process, with_output = True)
57 
58  # Input source
59  process.source = cms.Source("PoolSource",
60  fileNames = cms.untracked.vstring()
61  )
62  cb.prepare()
63 
64  #add the former top level patches here
65  # customisePrompt(process)
66 
67  return process
68 
69 
70  def expressProcessing(self, globalTag, writeTiers = [], **args):
71  """
72  _expressProcessing_
73 
74  Proton collision data taking express processing
75 
76  """
77 
78  skims = ['EcalCalPi0Calib',
79  'EcalCalEtaCalib']
80  step = stepALCAPRODUCER(skims)
81  options = Options()
82  options.__dict__.update(defaultOptions.__dict__)
83  options.scenario = "pp"
84  options.step = step
85  options.isMC = False
86  options.isData = True
87  options.beamspot = None
88  options.eventcontent = ','.join(writeTiers)
89  options.datatier = ','.join(writeTiers)
90  options.magField = 'AutoFromDBCurrent'
91  options.conditions = "FrontierConditions_GlobalTag,%s" % globalTag
92  options.relval = False
93 
94  process = cms.Process('RECO')
95  cb = ConfigBuilder(options, process = process, with_output = True)
96 
97  # Input source
98  process.source = cms.Source("PoolSource",
99  fileNames = cms.untracked.vstring()
100  )
101  cb.prepare()
102 
103  #add the former top level patches here
104  customisePrompt(process)
105 
106  return process
107 
108 
109  def alcaSkim(self, skims, **args):
110  """
111  _alcaSkim_
112 
113  AlcaReco processing & skims for proton collisions
114 
115  """
116 
117  globalTag = None
118  if 'globaltag' in args:
119  globalTag = args['globaltag']
120 
121  step = "ALCAOUTPUT:"
122  for skim in skims:
123  step += (skim+"+")
124  options = Options()
125  options.__dict__.update(defaultOptions.__dict__)
126  options.scenario = "pp"
127  options.step = step.rstrip('+')
128  options.isMC = False
129  options.isData = True
130  options.beamspot = None
131  options.eventcontent = None
132  options.relval = None
133  if globalTag != None :
134  options.conditions = "FrontierConditions_GlobalTag,%s" % globalTag
135  options.triggerResultsProcess = 'RECO'
136 
137  process = cms.Process('ALCA')
138  cb = ConfigBuilder(options, process = process)
139 
140  # Input source
141  process.source = cms.Source(
142  "PoolSource",
143  fileNames = cms.untracked.vstring()
144  )
145 
146  cb.prepare()
147 
148  return process
149 
150 
151  def dqmHarvesting(self, datasetName, runNumber, globalTag, **args):
152  """
153  _dqmHarvesting_
154 
155  Proton collisions data taking DQM Harvesting
156 
157  """
158  options = defaultOptions
159  options.scenario = "pp"
160  options.step = "HARVESTING:alcaHarvesting"
161  options.isMC = False
162  options.isData = True
163  options.beamspot = None
164  options.eventcontent = None
165  options.name = "EDMtoMEConvert"
166  options.conditions = "FrontierConditions_GlobalTag,%s" % globalTag
167  options.arguments = ""
168  options.evt_type = ""
169  options.filein = []
170 
171  process = cms.Process("HARVESTING")
172  process.source = cms.Source("PoolSource")
173  configBuilder = ConfigBuilder(options, process = process)
174  configBuilder.prepare()
175 
176  #
177  # customise process for particular job
178  #
179  process.source.processingMode = cms.untracked.string('RunsAndLumis')
180  process.source.fileNames = cms.untracked(cms.vstring())
181  process.maxEvents.input = -1
182  process.dqmSaver.workflow = datasetName
183  process.dqmSaver.saveByLumiSection = 1
184  if args.has_key('referenceFile') and args.get('referenceFile', ''):
185  process.DQMStore.referenceFileName = \
186  cms.untracked.string(args['referenceFile'])
187 
188  return process
def expressProcessing
Definition: AlCaP0.py:70
def stepALCAPRODUCER
Definition: Utils.py:9
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def customisePrompt
Definition: RecoTLR.py:74