CMS 3D CMS Logo

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