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

Update event content structure in RecoEcal and RecoVertex #29299

Merged
merged 2 commits into from
Apr 21, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 55 additions & 78 deletions RecoEcal/Configuration/python/RecoEcal_EventContent_cff.py
Original file line number Diff line number Diff line change
@@ -1,62 +1,5 @@
import FWCore.ParameterSet.Config as cms

# Full Event content
RecoEcalFEVT = cms.PSet(
outputCommands = cms.untracked.vstring(
#selected digis
'keep *_selectDigi_*_*',
# Hits
'keep *_reducedEcalRecHitsEB_*_*',
'keep *_reducedEcalRecHitsEE_*_*',
'keep *_reducedEcalRecHitsES_*_*',
'keep *_interestingEcalDetId*_*_*',
'keep *_ecalWeightUncalibRecHit_*_*',
'keep *_ecalPreshowerRecHit_*_*',
# Barrel clusters
'keep *_hybridSuperClusters_*_*',
'keep *_correctedHybridSuperClusters_*_*',
# Endcap clusters
'keep *_multi5x5*_*_*',
'keep *_correctedMulti5x5*_*_*',
# Preshower clusters
'keep recoPreshowerClusters_multi5x5SuperClustersWithPreshower_*_*',
'keep recoPreshowerClusterShapes_multi5x5PreshowerClusterShape_*_*',
# Particle Flow superclusters
'keep *_particleFlowSuperClusterECAL_*_*',
'keep *_particleFlowSuperClusterOOTECAL_*_*',
# DROP statements
'drop recoBasicClusters_multi5x5BasicClusters_multi5x5BarrelBasicClusters_*',
'drop recoSuperClusters_multi5x5SuperClusters_multi5x5BarrelSuperClusters_*')
)
# RECO content
RecoEcalRECO = cms.PSet(
outputCommands = cms.untracked.vstring(
#selected digis
'keep *_selectDigi_*_*',
# Hits
'keep EcalRecHitsSorted_reducedEcalRecHitsEE_*_*',
'keep EcalRecHitsSorted_reducedEcalRecHitsEB_*_*',
'keep EcalRecHitsSorted_reducedEcalRecHitsES_*_*',
# Barrel clusters
'keep *_hybridSuperClusters_*_*',
'keep recoSuperClusters_correctedHybridSuperClusters_*_*',
# Endcap clusters
'keep *_multi5x5SuperClusters_*_*',
'keep recoSuperClusters_multi5x5SuperClusters_*_*',
'keep recoSuperClusters_multi5x5SuperClustersWithPreshower_*_*',
'keep recoSuperClusters_correctedMulti5x5SuperClustersWithPreshower_*_*',
# Preshower clusters
'keep recoPreshowerClusters_multi5x5SuperClustersWithPreshower_*_*',
'keep recoPreshowerClusterShapes_multi5x5PreshowerClusterShape_*_*',
# Particle Flow superclusters
'keep *_particleFlowSuperClusterECAL_*_*',
'keep *_particleFlowSuperClusterOOTECAL_*_*',
# DROP statements
'drop recoClusterShapes_*_*_*',
'drop recoBasicClustersToOnerecoClusterShapesAssociation_*_*_*',
'drop recoBasicClusters_multi5x5BasicClusters_multi5x5BarrelBasicClusters_*',
'drop recoSuperClusters_multi5x5SuperClusters_multi5x5BarrelSuperClusters_*')
)
# AOD content
RecoEcalAOD = cms.PSet(
outputCommands = cms.untracked.vstring(
Expand All @@ -80,25 +23,16 @@
'keep recoSuperClusters_particleFlowSuperClusterECAL_*_*',
'keep recoCaloClusters_particleFlowSuperClusterECAL_*_*',
'keep recoSuperClusters_particleFlowSuperClusterOOTECAL_*_*',
'keep recoCaloClusters_particleFlowSuperClusterOOTECAL_*_*',
)
'keep recoCaloClusters_particleFlowSuperClusterOOTECAL_*_*')
)

_phase2_hgcal_scCommands = ['keep *_particleFlowSuperClusterHGCal_*_*', 'keep *_particleFlowSuperClusterHGCalFromMultiCl_*_*']
_phase2_hgcal_scCommandsAOD = ['keep recoSuperClusters_particleFlowSuperClusterHGCal__*',
'keep recoCaloClusters_particleFlowSuperClusterHGCal__*',
'keep recoSuperClusters_particleFlowSuperClusterHGCalFromMultiCl__*',
'keep recoCaloClusters_particleFlowSuperClusterHGCalFromMultiCl__*']
_phase2_hgcal_RecoEcalFEVT = RecoEcalFEVT.clone()
_phase2_hgcal_RecoEcalFEVT.outputCommands += _phase2_hgcal_scCommands
_phase2_hgcal_RecoEcalRECO = RecoEcalRECO.clone()
_phase2_hgcal_RecoEcalRECO.outputCommands += _phase2_hgcal_scCommands
_phase2_hgcal_RecoEcalAOD = RecoEcalAOD.clone()
_phase2_hgcal_RecoEcalAOD.outputCommands += _phase2_hgcal_scCommandsAOD

from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
phase2_hgcal.toReplaceWith( RecoEcalFEVT, _phase2_hgcal_RecoEcalFEVT )
phase2_hgcal.toReplaceWith( RecoEcalRECO, _phase2_hgcal_RecoEcalRECO )
phase2_hgcal.toReplaceWith( RecoEcalAOD , _phase2_hgcal_RecoEcalAOD )
phase2_hgcal.toModify(RecoEcalAOD,
outputCommands = RecoEcalAOD.outputCommands + _phase2_hgcal_scCommandsAOD)

from Configuration.Eras.Modifier_pA_2016_cff import pA_2016
from Configuration.Eras.Modifier_peripheralPbPb_cff import peripheralPbPb
Expand All @@ -107,11 +41,54 @@
from Configuration.Eras.Modifier_ppRef_2017_cff import ppRef_2017
#HI-specific products needed in pp scenario special configurations
for e in [pA_2016, peripheralPbPb, pp_on_AA_2018, pp_on_XeXe_2017, ppRef_2017]:
for ec in [RecoEcalAOD.outputCommands, RecoEcalRECO.outputCommands, RecoEcalFEVT.outputCommands]:
e.toModify( ec, func=lambda outputCommands: outputCommands.extend(['keep recoSuperClusters_correctedIslandBarrelSuperClusters_*_*',
'keep recoSuperClusters_correctedIslandEndcapSuperClusters_*_*'
])
)
for ec in [RecoEcalRECO.outputCommands, RecoEcalFEVT.outputCommands]:
e.toModify( ec, func=lambda outputCommands: outputCommands.extend(['keep recoCaloClusters_islandBasicClusters_*_*'])
)
e.toModify( RecoEcalAOD.outputCommands,
func=lambda outputCommands: outputCommands.extend(['keep recoSuperClusters_correctedIslandBarrelSuperClusters_*_*',
'keep recoSuperClusters_correctedIslandEndcapSuperClusters_*_*'])
)
# RECO content
RecoEcalRECO = cms.PSet(
outputCommands = cms.untracked.vstring(
# Barrel clusters
'keep *_hybridSuperClusters_*_*',
'keep recoSuperClusters_correctedHybridSuperClusters_*_*',
# Endcap clusters
'keep *_multi5x5SuperClusters_*_*',
'keep recoSuperClusters_multi5x5SuperClusters_*_*',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a subset of the line above... But ok, it doesn't hurt

'keep recoSuperClusters_multi5x5SuperClustersWithPreshower_*_*',
# Particle Flow superclusters
'keep *_particleFlowSuperClusterECAL_*_*',
'keep *_particleFlowSuperClusterOOTECAL_*_*',
# DROP statements # not used
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How did you verify that these drop statements are not used?
@afiqaize @SohamBhattacharya

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By my event content comparison check, these drop statements don't really act on the RECO/FEVT event content. When I checked every event content without these drop statements like this modified file, there is no difference in event contents.
@afiqaize @SohamBhattacharya Please confirm if these 4 drop statements can be removed.

Copy link
Contributor Author

@jeongeun jeongeun Apr 20, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now, it would be good to have these drop statements in RecoEcalRECO PSets as the original. I'll not remove them. It will safe in the new commit.

#'drop recoClusterShapes_*_*_*',
#'drop recoBasicClustersToOnerecoClusterShapesAssociation_*_*_*',
#'drop recoBasicClusters_multi5x5BasicClusters_multi5x5BarrelBasicClusters_*',
#'drop recoSuperClusters_multi5x5SuperClusters_multi5x5BarrelSuperClusters_*')
)
)
RecoEcalRECO.outputCommands.extend(RecoEcalAOD.outputCommands)
_phase2_hgcal_scCommands = ['keep *_particleFlowSuperClusterHGCal_*_*',
'keep *_particleFlowSuperClusterHGCalFromMultiCl_*_*']
phase2_hgcal.toModify(RecoEcalRECO,
outputCommands = RecoEcalRECO.outputCommands + _phase2_hgcal_scCommands)

for e in [pA_2016, peripheralPbPb, pp_on_AA_2018, pp_on_XeXe_2017, ppRef_2017]:
e.toModify( RecoEcalRECO.outputCommands,
func=lambda outputCommands: outputCommands.extend(['keep recoCaloClusters_islandBasicClusters_*_*'])
)
# Full Event content
RecoEcalFEVT = cms.PSet(
outputCommands = cms.untracked.vstring(
# Hits
'keep *_reducedEcalRecHitsEB_*_*',
'keep *_reducedEcalRecHitsEE_*_*',
'keep *_reducedEcalRecHitsES_*_*',
'keep *_interestingEcalDetId*_*_*',
'keep *_ecalWeightUncalibRecHit_*_*',
'keep *_ecalPreshowerRecHit_*_*',
# Barrel clusters
'keep *_correctedHybridSuperClusters_*_*',
# Endcap clusters
'keep *_multi5x5*_*_*',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this get expanded without the wild card (and without blowing the list too much)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is in FEVT, I think that an exception can be made, considering that this datatier is more debug-like than something for sustained production

Copy link
Contributor Author

@jeongeun jeongeun Apr 7, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've found 5 modules in RECO/FEVT event contents :
multi5x5BasicClustersCleaned
multi5x5SuperClusters
multi5x5SuperClustersCleaned
multi5x5SuperClustersWithPreshower
multi5x5PreshowerClusterShape

with different types and labels.

vector<reco::CaloCluster> multi5x5BasicClustersCleaned * *
vector<reco::SuperCluster> multi5x5BasicClustersCleaned * *
vector<reco::CaloCluster> multi5x5SuperClusters * *
vector<reco::SuperCluster> multi5x5SuperClusters * *
vector<reco::PreshowerCluster> multi5x5SuperClustersWithPreshower * *
vector<reco::SuperCluster>  multi5x5SuperClustersWithPreshower * *
vector<reco::PreshowerClusterShape> multi5x5PreshowerClusterShape * *

'keep *_correctedMulti5x5*_*_*')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there anything else beside correctedMulti5x5SuperClustersWithPreshower already saved in the AOD event content?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, only vector<reco::SuperCluster> "correctedMulti5x5SuperClustersWithPreshower" "" "RECO" exists in AOD event content (also in RECO/FEVT event contents). So this line is redundant so it can be deleted.

)
RecoEcalFEVT.outputCommands.extend(RecoEcalRECO.outputCommands)
14 changes: 8 additions & 6 deletions RecoVertex/BeamSpotProducer/python/BeamSpot_EventContent_cff.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import FWCore.ParameterSet.Config as cms

#Full Event content
BeamSpotFEVT = cms.PSet(
#AOD content
BeamSpotAOD = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_offlineBeamSpot_*_*')
)
#RECO content
BeamSpotRECO = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_offlineBeamSpot_*_*')
outputCommands = cms.untracked.vstring()
)
#AOD content
BeamSpotAOD = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_offlineBeamSpot_*_*')
BeamSpotRECO.outputCommands.extend(BeamSpotAOD.outputCommands)
#Full Event content
BeamSpotFEVT = cms.PSet(
outputCommands = cms.untracked.vstring()
)
BeamSpotFEVT.outputCommands.extend(BeamSpotRECO.outputCommands)

52 changes: 16 additions & 36 deletions RecoVertex/Configuration/python/RecoVertex_EventContent_cff.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,4 @@
import FWCore.ParameterSet.Config as cms

RecoVertexFEVT = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_offlinePrimaryVertices__*',
'keep *_offlinePrimaryVerticesWithBS_*_*',
'keep *_offlinePrimaryVerticesFromCosmicTracks_*_*',
'keep *_nuclearInteractionMaker_*_*',
'keep *_generalV0Candidates_*_*',
'keep *_inclusiveSecondaryVertices_*_*')
)
#RECO content
RecoVertexRECO = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_offlinePrimaryVertices__*',
'keep *_offlinePrimaryVerticesWithBS_*_*',
'keep *_offlinePrimaryVerticesFromCosmicTracks_*_*',
'keep *_nuclearInteractionMaker_*_*',
'keep *_generalV0Candidates_*_*',
'keep *_inclusiveSecondaryVertices_*_*')
)
#AOD content
RecoVertexAOD = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_offlinePrimaryVertices__*',
Expand All @@ -35,21 +17,19 @@
'keep *_trackTimeValueMapProducer_*_*' ]

_phase2_tktiming_layer_RecoVertexEventContent = [ 'keep *_offlinePrimaryVertices4DnoPID__*',
'keep *_offlinePrimaryVertices4DnoPIDWithBS__*',
'keep *_tofPID_*_*']

def _phase2_tktiming_AddNewContent(mod):
temp = mod.outputCommands + _phase2_tktiming_RecoVertexEventContent
phase2_timing.toModify( mod, outputCommands = temp )

_phase2_tktiming_AddNewContent(RecoVertexFEVT)
_phase2_tktiming_AddNewContent(RecoVertexRECO)
_phase2_tktiming_AddNewContent(RecoVertexAOD)

def _phase2_tktiming_layer_AddNewContent(mod):
temp = mod.outputCommands + _phase2_tktiming_layer_RecoVertexEventContent
phase2_timing_layer.toModify( mod, outputCommands = temp )

_phase2_tktiming_layer_AddNewContent(RecoVertexFEVT)
_phase2_tktiming_layer_AddNewContent(RecoVertexRECO)
_phase2_tktiming_layer_AddNewContent(RecoVertexAOD)
'keep *_offlinePrimaryVertices4DnoPIDWithBS__*',
'keep *_tofPID_*_*']
phase2_timing.toModify( RecoVertexAOD,
outputCommands = RecoVertexAOD.outputCommands + _phase2_tktiming_RecoVertexEventContent)
phase2_timing_layer.toModify( RecoVertexAOD,
outputCommands = RecoVertexAOD.outputCommands + _phase2_tktiming_layer_RecoVertexEventContent)
#RECO content
RecoVertexRECO = cms.PSet(
outputCommands = cms.untracked.vstring()
)
RecoVertexRECO.outputCommands.extend(RecoVertexAOD.outputCommands)
#FEVT content
RecoVertexFEVT = cms.PSet(
outputCommands = cms.untracked.vstring()
)
RecoVertexFEVT.outputCommands.extend(RecoVertexRECO.outputCommands)