Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ECAL-only local reconstruction workflow #29620

Merged
merged 1 commit into from May 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions Configuration/PyReleaseValidation/python/relval_2017.py
Expand Up @@ -44,13 +44,13 @@
10824.8,
10842.501,10842.502, # 10842.503,10842.504,
10824.501,10824.502, # 10824.503,10824.504,
# 10824.511,10824.512,10824.513,10824.514,
10824.511,10824.512, # 10824.513,10824.514,
# 10824.521,10824.522,10824.523,10824.524,
11650.0,11634.0,11646.0,11640.0,11834.0,11834.99,11846.0,12024.0,
11634.7,
11650.501,11650.502, # 11650.503,11650.504,
11634.501,11634.502, # 11634.503,11634.504,
# 11634.511,11634.512,11634.513,11634.514,
11634.511,11634.512, # 11634.513,11634.514,
# 11634.521,11634.522,11634.523,11634.524,
12434.0,12634.0,12634.99,
12834.0,13034.0,13034.99]
Expand Down
Expand Up @@ -301,10 +301,14 @@ def condition_(self, fragment, stepList, key, hasHarvest):

class UpgradeWorkflowPatatrack_PixelOnlyCPU(UpgradeWorkflowPatatrack):
def setup_(self, step, stepName, stepDict, k, properties):
if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
if 'Reco' in step:
stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
elif 'HARVEST' in step:
stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])

def condition_(self, fragment, stepList, key, hasHarvest):
return '2018' in key or '2021' in key

upgradeWFs['PatatrackPixelOnlyCPU'] = UpgradeWorkflowPatatrack_PixelOnlyCPU(
steps = [
'RecoFull',
Expand All @@ -316,6 +320,7 @@ def condition_(self, fragment, stepList, key, hasHarvest):
suffix = 'Patatrack_PixelOnlyCPU',
offset = 0.501,
)

upgradeWFs['PatatrackPixelOnlyCPU'].step3 = {
'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
'--datatier': 'GEN-SIM-RECO,DQMIO',
Expand All @@ -325,10 +330,14 @@ def condition_(self, fragment, stepList, key, hasHarvest):

class UpgradeWorkflowPatatrack_PixelOnlyGPU(UpgradeWorkflowPatatrack):
def setup_(self, step, stepName, stepDict, k, properties):
if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
if 'Reco' in step:
stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
elif 'HARVEST' in step:
stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])

def condition_(self, fragment, stepList, key, hasHarvest):
return '2018' in key or '2021' in key

upgradeWFs['PatatrackPixelOnlyGPU'] = UpgradeWorkflowPatatrack_PixelOnlyGPU(
steps = [
'RecoFull',
Expand All @@ -340,12 +349,71 @@ def condition_(self, fragment, stepList, key, hasHarvest):
suffix = 'Patatrack_PixelOnlyGPU',
offset = 0.502,
)

upgradeWFs['PatatrackPixelOnlyGPU'].step3 = {
'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
'--datatier': 'GEN-SIM-RECO,DQMIO',
'--eventcontent': 'RECOSIM,DQM',
'--procModifiers': 'gpu'
}

class UpgradeWorkflowPatatrack_ECALOnlyCPU(UpgradeWorkflowPatatrack):
def setup_(self, step, stepName, stepDict, k, properties):
if 'Reco' in step:
stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
elif 'HARVEST' in step:
stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@ecalOnlyValidation+@ecal'}, stepDict[step][k]])

def condition_(self, fragment, stepList, key, hasHarvest):
return '2018' in key or '2021' in key

upgradeWFs['PatatrackECALOnlyCPU'] = UpgradeWorkflowPatatrack_ECALOnlyCPU(
steps = [
'RecoFull',
'HARVESTFull',
'RecoFullGlobal',
'HARVESTFullGlobal',
],
PU = [],
suffix = 'Patatrack_ECALOnlyCPU',
offset = 0.511,
)

upgradeWFs['PatatrackECALOnlyCPU'].step3 = {
'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
'--datatier': 'GEN-SIM-RECO,DQMIO',
'--eventcontent': 'RECOSIM,DQM',
}

class UpgradeWorkflowPatatrack_ECALOnlyGPU(UpgradeWorkflowPatatrack):
def setup_(self, step, stepName, stepDict, k, properties):
if 'Reco' in step:
stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
elif 'HARVEST' in step:
stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@ecalOnlyValidation+@ecal'}, stepDict[step][k]])

def condition_(self, fragment, stepList, key, hasHarvest):
return '2018' in key or '2021' in key

upgradeWFs['PatatrackECALOnlyGPU'] = UpgradeWorkflowPatatrack_ECALOnlyGPU(
steps = [
'RecoFull',
'HARVESTFull',
'RecoFullGlobal',
'HARVESTFullGlobal',
],
PU = [],
suffix = 'Patatrack_ECALOnlyGPU',
offset = 0.512,
)

upgradeWFs['PatatrackECALOnlyGPU'].step3 = {
'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
'--datatier': 'GEN-SIM-RECO,DQMIO',
'--eventcontent': 'RECOSIM,DQM',
'--procModifiers': 'gpu'
}

# end of Patatrack workflows

class UpgradeWorkflow_ProdLike(UpgradeWorkflow):
Expand Down
3 changes: 3 additions & 0 deletions Configuration/StandardSequences/python/RawToDigi_cff.py
Expand Up @@ -67,6 +67,9 @@
RawToDigiTask_pixelOnly = cms.Task(siPixelDigis)
RawToDigi_pixelOnly = cms.Sequence(RawToDigiTask_pixelOnly)

RawToDigiTask_ecalOnly = cms.Task(ecalDigis, ecalPreshowerDigis, scalersRawToDigi)
RawToDigi_ecalOnly = cms.Sequence(RawToDigiTask_ecalOnly)

scalersRawToDigi.scalersInputTag = 'rawDataCollector'
siPixelDigis.InputLabel = 'rawDataCollector'
#false by default anyways ecalDigis.DoRegional = False
Expand Down
7 changes: 7 additions & 0 deletions Configuration/StandardSequences/python/Reconstruction_cff.py
Expand Up @@ -210,6 +210,13 @@
)
reconstruction_pixelTrackingOnly = cms.Sequence(reconstruction_pixelTrackingOnlyTask)

reconstruction_ecalOnlyTask = cms.Task(
bunchSpacingProducer,
ecalLocalRecoTask,
ecalClustersNoPFBoxTask
)
reconstruction_ecalOnly = cms.Sequence(reconstruction_ecalOnlyTask)

#need a fully expanded sequence copy
modulesToRemove = list() # copy does not work well
noTrackingAndDependent = list()
Expand Down
9 changes: 7 additions & 2 deletions DQMOffline/Configuration/python/DQMOffline_cff.py
Expand Up @@ -34,8 +34,13 @@
DQMOfflineL1TMuon = cms.Sequence( l1TriggerMuonDqmOffline )

#DPGs
DQMOfflineEcal = cms.Sequence( ecal_dqm_source_offline *
es_dqm_source_offline )
DQMOfflineEcalOnly = cms.Sequence(
ecalOnly_dqm_source_offline +
es_dqm_source_offline )

DQMOfflineEcal = cms.Sequence(
ecal_dqm_source_offline +
es_dqm_source_offline )

DQMOfflineHcal = cms.Sequence( hcalOfflineSourceSequence )

Expand Down
4 changes: 4 additions & 0 deletions DQMOffline/Configuration/python/autoDQM.py
Expand Up @@ -109,6 +109,10 @@
'PostDQMOffline',
'DQMHarvestEcal+DQMCertEcal'],

'ecalOnly': ['DQMOfflineEcalOnly',
'PostDQMOffline',
'DQMHarvestEcal+DQMCertEcal'],

'egamma': ['DQMOfflineEGamma',
'PostDQMOffline',
'DQMHarvestEGamma+DQMCertEGamma'],
Expand Down
10 changes: 7 additions & 3 deletions DQMOffline/Ecal/python/ecal_dqm_source_offline_cff.py
Expand Up @@ -12,12 +12,16 @@
)

## standard
ecal_dqm_source_offline = cms.Sequence(
ecalOnly_dqm_source_offline = cms.Sequence(
dqmInfoEcal +
ecalMonitorTask +
ecalFEDMonitor +
ecalPreshowerRecoSummary +
ecalzmasstask +
ecalzmasstask
)

ecal_dqm_source_offline = cms.Sequence(
ecalOnly_dqm_source_offline +
ecalMonitorTask +
ecalPileUpDepMonitor
)

Expand Down
1 change: 1 addition & 0 deletions Validation/Configuration/python/autoValidation.py
Expand Up @@ -8,6 +8,7 @@
'electronOnlyValidation' : ['', 'electronValidationSequence', 'electronPostValidationSequence'],
'photonOnlyValidation' : ['', 'photonValidationSequence', 'photonPostProcessor'],
'tauOnlyValidation' : ['produceDenoms', 'pfTauRunDQMValidation', 'runTauEff'],
'ecalOnlyValidation' : ['globalPrevalidationECALOnly','globalValidationECAL','postValidation_ECAL'],
'hcalOnlyValidation' : ['globalPrevalidationHCAL','globalValidationHCAL','postValidation_HCAL'],
'baseValidation' : ['baseCommonPreValidation','baseCommonValidation','postValidation_common'],
'miniAODValidation' : ['prevalidationMiniAOD','validationMiniAOD','validationHarvestingMiniAOD'],
Expand Down
24 changes: 20 additions & 4 deletions Validation/Configuration/python/globalValidation_cff.py
Expand Up @@ -132,6 +132,7 @@
+ vertexValidationTrackingOnly
)
globalValidationTrackingOnly = cms.Sequence()

# Pixel tracking only validation
globalPrevalidationPixelTrackingOnly = cms.Sequence(
simHitTPAssocProducer
Expand All @@ -141,15 +142,30 @@
globalValidationPixelTrackingOnly = cms.Sequence()

globalValidationJetMETonly = cms.Sequence(
JetValidation
+ METValidation
JetValidation
+ METValidation
)

globalPrevalidationJetMETOnly = cms.Sequence(
jetPreValidSeq
+metPreValidSeq
jetPreValidSeq
+ metPreValidSeq
)

# ECAL local reconstruction
globalPrevalidationECAL = cms.Sequence()
globalPrevalidationECALOnly = cms.Sequence(
baseCommonPreValidation
+ globalPrevalidationECAL
)

globalValidationECAL = cms.Sequence(
ecalSimHitsValidationSequence
+ ecalDigisValidationSequence
+ ecalRecHitsValidationSequence
+ ecalClustersValidationSequence
)

# HCAL local reconstruction
globalPrevalidationHCAL = cms.Sequence()

globalValidationHCAL = cms.Sequence(
Expand Down
2 changes: 2 additions & 0 deletions Validation/Configuration/python/postValidation_cff.py
Expand Up @@ -90,6 +90,8 @@
METPostProcessor
)

postValidation_ECAL = cms.Sequence()

postValidation_HCAL = cms.Sequence(
hcalSimHitsPostProcessor
+ hcaldigisPostProcessor
Expand Down