CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DataScouting.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 """
3 _DataScouting_
4 
5 Scenario supporting proton collisions data scouting
6 Inheriting to reco.
7 Really against OO principles, but pragmatism should prevale, I guess.
8 """
9 
10 import os
11 import sys
12 
13 from Configuration.DataProcessing.Reco import Reco
14 
15 from Configuration.DataProcessing.Utils import stepALCAPRODUCER,addMonitoring,dictIO,dqmIOSource,harvestingMode,dqmSeq
16 import FWCore.ParameterSet.Config as cms
17 from Configuration.PyReleaseValidation.ConfigBuilder import ConfigBuilder
18 from Configuration.PyReleaseValidation.ConfigBuilder import Options
19 from Configuration.PyReleaseValidation.ConfigBuilder import defaultOptions
20 from Configuration.PyReleaseValidation.ConfigBuilder import installFilteredStream
21 from Configuration.DataProcessing.RecoTLR import customisePrompt,customiseExpress
22 
24  """
25  _DataScouting_
26 
27  Implement configuration building for data processing for proton
28  collision data taking
29 
30  """
31 
32  def promptReco(self, globalTag, **args):
33  """
34  _promptReco_
35 
36  Collision data, data scouting (dst stream).
37  This method provides the scheleton process for the dataScouting.
38  dpiparo 17-7-2012
39  I follow the structure of the package.
40  """
41  options = Options()
42  options.scenario = self.cbSc
43  options.__dict__.update(defaultOptions.__dict__)
44  options.step = 'DQM:DQM/DataScouting/dataScouting_cff.dataScoutingDQMSequence,ENDJOB'
45  dictIO(options,args)
46  options.conditions = globalTag
47 
48  process = cms.Process('DataScouting')
49  cb = ConfigBuilder(options, process = process, with_output = True)
50 
51  # Input source
52  process.source = cms.Source("PoolSource",
53  fileNames = cms.untracked.vstring()
54  )
55  cb.prepare()
56 
57  return process
58 
59  def __getEmptyProcess(self):
60  return cms.Process('Empty')
61 
62 
63  def expressProcessing(self, globalTag, **args):
64  """
65  _expressProcessing_
66 
67  In this scheme this method does not make any sense, but I have to
68  override the Reco one.
69 
70  """
71  return self.__getEmptyProcess()
72 
73 
74  def alcaSkim(self, skims, **args):
75  """
76  _alcaSkim_
77 
78  Same as above
79 
80  """
81  return self.__getEmptyProcess()
82 
83  def dqmHarvesting(self, datasetName, runNumber, globalTag, **args):
84  """
85  _dqmHarvesting_
86 
87  Proton collisions data taking DQM Harvesting
88 
89  """
90  options = defaultOptions
91  options.scenario = self.cbSc
92  options.step = "HARVESTING"+dqmSeq(args,':DQMOffline')
93  options.name = "EDMtoMEConvert"
94  options.conditions = globalTag
95 
96  process = cms.Process("HARVESTING")
97  process.source = dqmIOSource(args)
98  configBuilder = ConfigBuilder(options, process = process)
99  configBuilder.prepare()
100 
101  harvestingMode(process,datasetName,args,rANDl=False)
102  return process
103 
104 
105  def alcaHarvesting(self, globalTag, datasetName, **args):
106  """
107  _alcaHarvesting_
108 
109  Again the same thing.
110 
111  """
112  return self.__getEmptyProcess()
113 
def dqmSeq
Definition: Utils.py:116
Definition: Reco.py:1
def dqmIOSource
Definition: Utils.py:88
def dictIO
Definition: Utils.py:108
def harvestingMode
Definition: Utils.py:99