Skip to content

Commit

Permalink
Merge pull request #21903 from slava77/CMSSW_10_0_X_2018-01-12-2300/s…
Browse files Browse the repository at this point in the history
…ign997/dp2018

add data processing scenarios for 2018 eras
  • Loading branch information
cmsbuild committed Jan 20, 2018
2 parents 2ca73ae + f193a2c commit 265462a
Show file tree
Hide file tree
Showing 10 changed files with 392 additions and 23 deletions.
25 changes: 25 additions & 0 deletions Configuration/DataProcessing/python/Impl/cosmicsEra_Run2_2018.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env python
"""
_cosmicsEra_Run2_2018_
Scenario supporting cosmic data taking
"""

import os
import sys

from Configuration.Eras.Era_Run2_2018_cff import Run2_2018
from Configuration.DataProcessing.Impl.cosmics import cosmics

class cosmicsEra_Run2_2018(cosmics):
def __init__(self):
cosmics.__init__(self)
self.eras = Run2_2018
"""
_cosmicsEra_Run2_2018_
Implement configuration building for data processing for cosmic
data taking in Run2
"""
31 changes: 31 additions & 0 deletions Configuration/DataProcessing/python/Impl/hcalnzsEra_Run2_2018.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env python
"""
_hcalnzsEra_Run2_2018_
Scenario supporting proton collisions
"""

import os
import sys

from Configuration.DataProcessing.Impl.hcalnzs import hcalnzs
from Configuration.Eras.Era_Run2_2018_cff import Run2_2018

class hcalnzsEra_Run2_2018(hcalnzs):
def __init__(self):
hcalnzs.__init__(self)
self.recoSeq=':reconstruction_HcalNZS'
self.cbSc='pp'
self.addEI=True
self.eras = Run2_2018
self.promptCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
self.expressCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
self.visCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
"""
_hcalnzsEra_Run2_2018_
Implement configuration building for data processing for proton
collision data taking
"""
34 changes: 34 additions & 0 deletions Configuration/DataProcessing/python/Impl/ppEra_Run2_2018.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/env python
"""
_ppEra_Run2_2018_
Scenario supporting proton collisions
"""

import os
import sys

from Configuration.DataProcessing.Reco import Reco
import FWCore.ParameterSet.Config as cms
from Configuration.Eras.Era_Run2_2018_cff import Run2_2018

from Configuration.DataProcessing.Impl.pp import pp

class ppEra_Run2_2018(pp):
def __init__(self):
pp.__init__(self)
self.recoSeq=''
self.cbSc='pp'
self.addEI=True
self.eras=Run2_2018
self.promptCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
self.expressCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
self.visCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
"""
_ppEra_Run2_2018_
Implement configuration building for data processing for proton
collision data taking for Run2
"""
10 changes: 2 additions & 8 deletions Configuration/DataProcessing/python/Impl/trackingOnly.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class trackingOnly(pp):
def __init__(self):
pp.__init__(self)
# tracking only RECO is sufficient, to run high performance BS at PCL;
# some dedicated customization are required, though: customisePostEra_Run2_2017_trackingOnly
# some dedicated customization are required, though: see specific era implementations
self.recoSeq=':reconstruction_trackingOnly'
self.cbSc='pp'
# don't run EI, because only tracking is done
Expand All @@ -24,7 +24,7 @@ def __init__(self):
_trackingOnly_
Implement configuration building for data processing for proton
collision data taking
collision data taking for high performance beamspot
"""

Expand All @@ -45,10 +45,4 @@ def expressProcessing(self, globalTag, **args):

return process

"""
_ppEra_Run2_2017_trackingOnly
Implement configuration building for data processing for proton
collision data taking for Run2, 2017 high performance beamspot

"""
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env python
"""
_trackingOnlyEra_Run2_2017
Scenario supporting proton collisions and tracking only reconstruction for HP beamspot
"""

import os
import sys

from Configuration.DataProcessing.Impl.trackingOnly import trackingOnly
import FWCore.ParameterSet.Config as cms
from Configuration.Eras.Era_Run2_2017_cff import Run2_2017

from Configuration.DataProcessing.Impl.pp import pp

class trackingOnlyEra_Run2_2017(trackingOnly):
def __init__(self):
trackingOnly.__init__(self)
# tracking only RECO is sufficient, to run high performance BS at PCL;
# some dedicated customization are required, though: customisePostEra_Run2_2017_trackingOnly
self.recoSeq=':reconstruction_trackingOnly'
self.cbSc='pp'
self.addEI=False
self.eras=Run2_2017
self.promptCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2017' ]
self.expressCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2017_express_trackingOnly' ]
self.alcaHarvCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2017_harvesting_trackingOnly' ]
self.visCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2017' ]

"""
_trackingOnlyEra_Run2_2017
Implement configuration building for data processing for proton
collision data taking for Run2, 2017 high performance beamspot
"""
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env python
"""
_trackingOnlyEra_Run2_2018
Scenario supporting proton collisions and tracking only reconstruction for HP beamspot
"""

import os
import sys

from Configuration.DataProcessing.Impl.trackingOnly import trackingOnly
import FWCore.ParameterSet.Config as cms
from Configuration.Eras.Era_Run2_2018_cff import Run2_2018

from Configuration.DataProcessing.Impl.pp import pp

class trackingOnlyEra_Run2_2018(trackingOnly):
def __init__(self):
trackingOnly.__init__(self)
# tracking only RECO is sufficient, to run high performance BS at PCL;
# some dedicated customization are required, though: customisePostEra_Run2_2018_trackingOnly
self.recoSeq=':reconstruction_trackingOnly'
self.cbSc='pp'
self.addEI=False
self.eras=Run2_2018
self.promptCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]
self.expressCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018_express_trackingOnly' ]
self.alcaHarvCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018_harvesting_trackingOnly' ]
self.visCustoms += [ 'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018' ]

"""
_trackingOnlyEra_Run2_2018
Implement configuration building for data processing for proton
collision data taking for Run2, 2018 high performance beamspot
"""
17 changes: 17 additions & 0 deletions Configuration/DataProcessing/python/RecoTLR.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,23 @@ def customisePostEra_Run2_2017_ppRef(process):
customisePostEra_Run2_2017(process)
return process

# 2018 equivalents
def customisePostEra_Run2_2018(process):
#start with a repeat of 2017
customisePostEra_Run2_2017(process)
return process

def customisePostEra_Run2_2018_express_trackingOnly(process):
#start with a repeat of 2017
customisePostEra_Run2_2017_express_trackingOnly(process)
return process

def customisePostEra_Run2_2018_harvesting_trackingOnly(process):
#start with a repeat of 2017
customisePostEra_Run2_2017_harvesting_trackingOnly(process)
return process


##############################################################################
def customisePPData(process):
#deprecated process= customiseCommon(process)
Expand Down
98 changes: 98 additions & 0 deletions Configuration/DataProcessing/test/cosmicsEra_Run2_2018_t.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#!/usr/bin/env python
"""
_cosmicsEra_Run2_2018_
Test for CosmicsRun2 Scenario implementation
"""


import unittest
import FWCore.ParameterSet.Config as cms
from Configuration.DataProcessing.GetScenario import getScenario



def writePSetFile(name, process):
"""
_writePSetFile_
Util to dump the process to a file
"""
handle = open(name, 'w')
handle.write(process.dumpPython())
handle.close()


class cosmicsEra_Run2_2018ScenarioTest(unittest.TestCase):
"""
unittest for cosmicsEra_Run2_2018 scenario
"""

def testA(self):
"""get the scenario"""
try:
scenario = getScenario("cosmicsEra_Run2_2018")
except Exception as ex:
msg = "Failed to get cosmicsEra_Run2_2018 scenario\n"
msg += str(ex)
self.fail(msg)


def testPromptReco(self):
"""test promptReco method"""
scenario = getScenario("cosmicsEra_Run2_2018")
try:
process = scenario.promptReco("GLOBALTAG::ALL")
writePSetFile("testPromptReco.py", process)
except Exception as ex:
msg = "Failed to create Prompt Reco configuration\n"
msg += "for cosmicsEra_Run2_2018 Scenario\n"
msg += str(ex)
self.fail(msg)


def testExpressProcessing(self):
""" test expressProcessing method"""
scenario = getScenario("cosmicsEra_Run2_2018")
try:
process = scenario.expressProcessing("GLOBALTAG::ALL")
writePSetFile("testExpressProcessing.py", process)
except Exception as ex:
msg = "Failed to create Express Processing configuration\n"
msg += "for cosmicsEra_Run2_2018 Scenario\n"
msg += str(ex)
self.fail(msg)


def testAlcaSkim(self):
""" test alcaSkim method"""
scenario = getScenario("cosmicsEra_Run2_2018")
try:
process = scenario.alcaSkim(["MuAlCalIsolatedMu"])
writePSetFile("testAlcaReco.py", process)
except Exception as ex:
msg = "Failed to create Alca Skimming configuration\n"
msg += "for cosmicsEra_Run2_2018 Scenario\n"
msg += str(ex)
self.fail(msg)


def testDQMHarvesting(self):
"""test dqmHarvesting method"""
scenario = getScenario("cosmicsEra_Run2_2018")
try:
process = scenario.dqmHarvesting("dataset", 123456,
"GLOBALTAG::ALL")
writePSetFile("testDQMHarvesting.py", process)
except Exception as ex:
msg = "Failed to create DQM Harvesting configuration "
msg += "for cosmicsEra_Run2_2018 scenario:\n"
msg += str(ex)
self.fail(msg)


if __name__ == '__main__':
unittest.main()
Loading

0 comments on commit 265462a

Please sign in to comment.