Skip to content

Commit

Permalink
Merge pull request #14168 from kpedro88/hgcal_eras2
Browse files Browse the repository at this point in the history
HGCal Eras using recommended methods
  • Loading branch information
davidlange6 committed Apr 28, 2016
2 parents 6da9ec2 + ef38181 commit 3072726
Show file tree
Hide file tree
Showing 22 changed files with 164 additions and 180 deletions.
Expand Up @@ -91,35 +91,33 @@

es_prefer_hcalHardcode = cms.ESPrefer("HcalHardcodeCalibrations", "es_hardcode")

def _modifyHcal_Conditions_forGlobalTagForPhase2Common( obj ):
obj.toGet = cms.untracked.vstring(
'GainWidths',
'MCParams',
'RecoParams',
'RespCorrs',
'QIEData',
'QIETypes',
'Gains',
'Pedestals',
'PedestalWidths',
'ChannelQuality',
'ZSThresholds',
'TimeCorrs',
'LUTCorrs',
'LutMetadata',
'L1TriggerObjects',
'PFCorrs',
'ElectronicsMap',
'CholeskyMatrices',
'CovarianceMatrices',
'FlagHFDigiTimeParams'
)
# Special Upgrade trick (if absent - regular case assumed)
obj.GainWidthsForTrigPrims = cms.bool(True)
obj.HEreCalibCutoff = cms.double(100.)
obj.useHBUpgrade = cms.bool(True)
obj.useHEUpgrade = cms.bool(True)
obj.useHFUpgrade = cms.bool(True)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( es_hardcode, func=_modifyHcal_Conditions_forGlobalTagForPhase2Common )
eras.phase2_common.toModify( es_hardcode,
toGet = cms.untracked.vstring(
'GainWidths',
'MCParams',
'RecoParams',
'RespCorrs',
'QIEData',
'QIETypes',
'Gains',
'Pedestals',
'PedestalWidths',
'ChannelQuality',
'ZSThresholds',
'TimeCorrs',
'LUTCorrs',
'LutMetadata',
'L1TriggerObjects',
'PFCorrs',
'ElectronicsMap',
'CholeskyMatrices',
'CovarianceMatrices',
'FlagHFDigiTimeParams'
),
GainWidthsForTrigPrims = cms.bool(True),
HEreCalibCutoff = cms.double(100.),
useHBUpgrade = cms.bool(True),
useHEUpgrade = cms.bool(True),
useHFUpgrade = cms.bool(True)
)
6 changes: 4 additions & 2 deletions Configuration/StandardSequences/python/Digi_cff.py
Expand Up @@ -45,8 +45,10 @@

#phase 2 common mods
def _modifyDigitizerPhase2Common( theProcess ):
theProcess.load("CalibCalorimetry/HcalPlugins/Hcal_Conditions_forGlobalTag_cff")

from CalibCalorimetry.HcalPlugins.Hcal_Conditions_forGlobalTag_cff import hcal_db_producer as _hcal_db_producer, es_hardcode as _es_hardcode, es_prefer_hcalHardcode as _es_prefer_hcalHardcode
theProcess.hcal_db_producer = _hcal_db_producer
theProcess.es_hardcode = _es_hardcode
theProcess.es_prefer_hcalHardcode = _es_prefer_hcalHardcode

from Configuration.StandardSequences.Eras import eras
modifyDigitizerPhase2Common_ = eras.phase2_common.makeProcessModifier( _modifyDigitizerPhase2Common )
Expand Down
Expand Up @@ -57,18 +57,23 @@
RecoLocalCaloRECO.outputCommands.extend(ecalLocalRecoRECO.outputCommands)
RecoLocalCaloAOD.outputCommands.extend(ecalLocalRecoAOD.outputCommands)

def _modifyRecoLocalCaloEventContentForHGCalRECO( obj ):
obj.outputCommands.append('keep *_HGCalRecHit_*_*')
def _updateOutput( era, outputPSets, commands):
for o in outputPSets:
era.toModify( o, outputCommands = o.outputCommands + commands )

def _modifyRecoLocalCaloEventContentForHGCalFEVT( obj ):
obj.outputCommands.append('keep *_HGCalRecHit_*_*')
obj.outputCommands.append('keep *_HGCalUncalibRecHit_*_*')
# mods for HCAL
from Configuration.StandardSequences.Eras import eras

_outputs = [RecoLocalCaloFEVT, RecoLocalCaloRECO]
_updateOutput( eras.phase2_common, _outputs, [ 'keep *_hbheUpgradeReco_*_*', 'keep *_hfUpgradeReco_*_*' ] )

# mods for HGCAL
from Configuration.StandardSequences.Eras import eras
eras.phase2_hgcal.toModify( RecoLocalCaloFEVT, func=_modifyRecoLocalCaloEventContentForHGCalFEVT)
eras.phase2_hgcal.toModify( RecoLocalCaloRECO, func=_modifyRecoLocalCaloEventContentForHGCalRECO )
eras.phase2_hgcal.toModify( RecoLocalCaloFEVT, outputCommands = RecoLocalCaloFEVT.outputCommands + [
'keep *_HGCalRecHit_*_*',
'keep *_HGCalUncalibRecHit_*_*'
]
)
eras.phase2_hgcal.toModify( RecoLocalCaloRECO, outputCommands = RecoLocalCaloRECO.outputCommands + ['keep *_HGCalRecHit_*_*'] )
# don't modify AOD for HGCal yet, need "reduced" rechits collection first (i.e. requires reconstruction)
#eras.phase2_hgcal.toModify( RecoLocalMuonAOD, func=_modifyRecoLocalCaloEventContentForHGCalRECO )
#eras.phase2_hgcal.toModify( RecoLocalCaloAOD, outputCommands = RecoLocalCaloAOD.outputCommands + ['keep *_HGCalRecHit_*_*'] )

37 changes: 4 additions & 33 deletions RecoLocalCalo/Configuration/python/RecoLocalCalo_cff.py
Expand Up @@ -32,38 +32,9 @@
from RecoLocalCalo.Configuration.hcalLocalRecoNZS_cff import *
calolocalrecoNZS = cms.Sequence(ecalLocalRecoSequence+hcalLocalRecoSequence+hcalLocalRecoSequenceNZS)

def _modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonHBHE( obj ):
obj.digiLabel = cms.InputTag('simHcalDigis','HBHEUpgradeDigiCollection')

def _modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonHO( obj ):
obj.digiLabel = cms.InputTag('simHcalDigis')

def _modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonHF( obj ):
obj.digiLabel = cms.InputTag('simHcalDigis','HFUpgradeDigiCollection')

def _modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonZDC( obj ):
obj.digiLabel = cms.InputTag('simHcalUnsuppressedDigis')
obj.digiLabelhcal = cms.InputTag('simHcalUnsuppressedDigis')

def _modifyRecoLocalCaloConfigurationProcessForPhase2Common( theProcess ):
theProcess.load("RecoLocalCalo.HcalRecProducers.HBHEUpgradeReconstructor_cfi")
theProcess.load("RecoLocalCalo.HcalRecProducers.HFUpgradeReconstructor_cfi")
theProcess.hcalLocalRecoSequence.replace(theProcess.hfreco,theProcess.hfUpgradeReco)
theProcess.hcalLocalRecoSequence.remove(theProcess.hbhereco)
theProcess.hcalLocalRecoSequence.replace(theProcess.hbheprereco,theProcess.hbheUpgradeReco)

def _modifyRecoLocalCaloConfigurationProcessForHGCal( theProcess ):
theProcess.load("RecoLocalCalo.HGCalRecProducers.HGCalUncalibRecHit_cfi")
theProcess.load("RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi")
theProcess.calolocalreco += theProcess.HGCalUncalibRecHit
theProcess.calolocalreco += theProcess.HGCalRecHit
from RecoLocalCalo.Configuration.hgcalLocalReco_cff import *
_phase2_calolocalreco = calolocalreco.copy()
_phase2_calolocalreco += hgcalLocalRecoSequence

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( hbhereco, func=_modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonHBHE )
eras.phase2_common.toModify( horeco, func=_modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonHO )
eras.phase2_common.toModify( hfreco, func=_modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonHF )
eras.phase2_common.toModify( zdcreco, func=_modifyRecoLocalCaloConfigurationReconstructorsForPhase2CommonZDC )

modifyRecoLocalCaloConfigurationProcessForPhase2Common_ = eras.phase2_common.makeProcessModifier( _modifyRecoLocalCaloConfigurationProcessForPhase2Common )
modifyRecoLocalCaloConfigurationProcessForHGCal_ = eras.phase2_hgcal.makeProcessModifier( _modifyRecoLocalCaloConfigurationProcessForHGCal )

eras.phase2_hgcal.toReplaceWith( calolocalreco , _phase2_calolocalreco )
3 changes: 3 additions & 0 deletions RecoLocalCalo/Configuration/python/hcalGlobalReco_cff.py
Expand Up @@ -2,3 +2,6 @@

from RecoLocalCalo.HcalRecProducers.HBHEIsolatedNoiseReflagger_cfi import *
hcalGlobalRecoSequence = cms.Sequence(hbhereco)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toReplaceWith( hcalGlobalRecoSequence, cms.Sequence() )
14 changes: 14 additions & 0 deletions RecoLocalCalo/Configuration/python/hcalLocalReco_cff.py
Expand Up @@ -11,3 +11,17 @@

#from RecoLocalCalo.HcalRecProducers.HBHEIsolatedNoiseReflagger_cfi import *
#hcalGlobalRecoSequence = cms.Sequence(hbhereco)

from RecoLocalCalo.HcalRecProducers.HBHEUpgradeReconstructor_cfi import *
from RecoLocalCalo.HcalRecProducers.HFUpgradeReconstructor_cfi import *

_phase2_hcalLocalRecoSequence = hcalLocalRecoSequence.copy()
_phase2_hcalLocalRecoSequence.replace(hfreco,hfUpgradeReco)
_phase2_hcalLocalRecoSequence.replace(hbheprereco,hbheUpgradeReco)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( hbheprereco, digiLabel = cms.InputTag('simHcalDigis','HBHEUpgradeDigiCollection') )
eras.phase2_common.toModify( horeco, digiLabel = cms.InputTag('simHcalDigis') )
eras.phase2_common.toModify( hfreco, digiLabel = cms.InputTag('simHcalDigis','HFUpgradeDigiCollection') )
eras.phase2_common.toModify( zdcreco, digiLabel = cms.InputTag('simHcalUnsuppressedDigis'), digiLabelhcal = cms.InputTag('simHcalUnsuppressedDigis') )
eras.phase2_common.toReplaceWith( hcalLocalRecoSequence, _phase2_hcalLocalRecoSequence )
6 changes: 6 additions & 0 deletions RecoLocalCalo/Configuration/python/hgcalLocalReco_cff.py
@@ -0,0 +1,6 @@
import FWCore.ParameterSet.Config as cms

from RecoLocalCalo.HGCalRecProducers.HGCalUncalibRecHit_cfi import *
from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import *

hgcalLocalRecoSequence = cms.Sequence(HGCalUncalibRecHit+HGCalRecHit)
Expand Up @@ -144,7 +144,11 @@ def _modifyPFEventContentForHGCalFEVT( obj ):

# mods for HGCAL
from Configuration.StandardSequences.Eras import eras
eras.phase2_hgcal.toModify( RecoParticleFlowFEVT, func=_modifyPFEventContentForHGCalFEVT)
eras.phase2_hgcal.toModify( RecoParticleFlowRECO, func=_modifyPFEventContentForHGCalRECO )
eras.phase2_hgcal.toModify( RecoParticleFlowAOD, func=_modifyPFEventContentForHGCalRECO )
eras.phase2_hgcal.toModify( RecoParticleFlowFEVT, outputCommands = RecoParticleFlowFEVT.outputCommands + [
'keep recoPFRecHits_particleFlowClusterECAL__*',
'keep recoPFRecHits_particleFlowClusterECAL_Cleaned_*'
]
)
eras.phase2_hgcal.toModify( RecoParticleFlowRECO, outputCommands = RecoParticleFlowRECO.outputCommands + [ 'keep recoPFRecHits_particleFlowClusterECAL_Cleaned_*' ] )
eras.phase2_hgcal.toModify( RecoParticleFlowAOD, outputCommands = RecoParticleFlowAOD.outputCommands + [ 'keep recoPFRecHits_particleFlowClusterECAL_Cleaned_*' ] )

Expand Up @@ -47,10 +47,12 @@
)

#HGCal
def _modifyParticleFlowForHGCal( theProcess ):
theProcess.load('RecoParticleFlow.PFClusterProducer.particleFlowRecHitHGC_cff')
theProcess.pfClusteringHGCal = cms.Sequence(theProcess.particleFlowRecHitHGC)
theProcess.particleFlowCluster += theProcess.pfClusteringHGCal

from RecoParticleFlow.PFClusterProducer.particleFlowRecHitHGC_cfi import particleFlowRecHitHGC
pfClusteringHGCal = cms.Sequence(particleFlowRecHitHGC)

_phase2_particleFlowCluster = particleFlowCluster.copy()
_phase2_particleFlowCluster += pfClusteringHGCal

from Configuration.StandardSequences.Eras import eras
modifyParticleFlowForHGCal_ = eras.phase2_hgcal.makeProcessModifier( _modifyParticleFlowForHGCal )
eras.phase2_hgcal.toReplaceWith( particleFlowCluster, _phase2_particleFlowCluster )
8 changes: 4 additions & 4 deletions SimCalorimetry/Configuration/python/hcalDigiSequence_cff.py
Expand Up @@ -9,9 +9,9 @@
+simHcalDigis
*simHcalTTPDigis)

def _modifySimCalorimetryHcalDigiSequenceForCommon( obj ):
obj.remove(simHcalTriggerPrimitiveDigis)
obj.remove(simHcalTTPDigis)
_phase2_hcalDigiSequence = hcalDigiSequence.copy()
_phase2_hcalDigiSequence.remove(simHcalTriggerPrimitiveDigis)
_phase2_hcalDigiSequence.remove(simHcalTTPDigis)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( hcalDigiSequence, func=_modifySimCalorimetryHcalDigiSequenceForCommon )
eras.phase2_common.toReplaceWith( hcalDigiSequence, _phase2_hcalDigiSequence )
Expand Up @@ -10,8 +10,5 @@
#from SimCalorimetry.EcalTrigPrimProducers.ecalTrigPrimESProducer_cff import *

#Common
def _modifyecalTriggerPrimitiveDigisCommon( obj ):
obj.BarrelOnly = cms.bool(True)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( simEcalTriggerPrimitiveDigis, func=_modifyecalTriggerPrimitiveDigisCommon )
eras.phase2_common.toModify( simEcalTriggerPrimitiveDigis, BarrelOnly = cms.bool(True) )
Expand Up @@ -6,9 +6,5 @@
from SimCalorimetry.EcalTrigPrimProducers.ecalTrigPrimESProducer_mc_cff import *

#Common
def _modifyecalTriggerPrimitiveDigis_mcCommon( obj ):
obj.BarrelOnly = cms.bool(True)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( simEcalTriggerPrimitiveDigis, func=_modifyecalTriggerPrimitiveDigis_mcCommon )
e
eras.phase2_common.toModify( simEcalTriggerPrimitiveDigis, BarrelOnly = cms.bool(True) )
Expand Up @@ -8,9 +8,5 @@


#Common
def _modifyecalTriggerPrimitiveDigis_with_suppressedCommon( obj ):
obj.BarrelOnly = cms.bool(True)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( simEcalTriggerPrimitiveDigis, func=_modifyecalTriggerPrimitiveDigis_with_suppressedCommon )
e
eras.phase2_common.toModify( simEcalTriggerPrimitiveDigis, BarrelOnly = cms.bool(True) )
Expand Up @@ -21,13 +21,11 @@
useConfigZSvalues = cms.int32(0)
)


def _modifyHcalZeroSuppressionProducersHcalDigisRealisticForCommon( obj ):
obj.useConfigZSvalues=cms.int32(1)
obj.HBlevel=cms.int32(16)
obj.HElevel=cms.int32(16)
obj.HOlevel=cms.int32(16)
obj.HFlevel=cms.int32(16)

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( simHcalDigis, func=_modifyHcalZeroSuppressionProducersHcalDigisRealisticForCommon )
eras.phase2_common.toModify( simHcalDigis,
useConfigZSvalues = cms.int32(1),
HBlevel = cms.int32(16),
HElevel = cms.int32(16),
HOlevel = cms.int32(16),
HFlevel = cms.int32(16)
)
5 changes: 1 addition & 4 deletions SimG4Core/Configuration/python/SimG4Core_cff.py
Expand Up @@ -6,8 +6,5 @@
#
from SimG4Core.Application.g4SimHits_cfi import *

def _modifySimPhase2Common( obj ):
obj.HCalSD.TestNumberingScheme = True

from Configuration.StandardSequences.Eras import eras
eras.phase2_common.toModify( g4SimHits, func=_modifySimPhase2Common )
eras.phase2_common.toModify( g4SimHits, HCalSD = dict( TestNumberingScheme = True ) )
12 changes: 4 additions & 8 deletions SimGeneral/Configuration/python/SimGeneral_EventContent_cff.py
Expand Up @@ -24,13 +24,9 @@
'keep int_*_bunchSpacing_*')
)

def _modifySimGeneralEventContentForHGCal( obj ):
obj.outputCommands.append('keep *_mix_HGCDigisEE_*')
obj.outputCommands.append('keep *_mix_HGCDigisHEfront_*')
obj.outputCommands.append('keep *_mix_HGCDigisHEback_*')

# mods for HGCAL
_phase2_hgc_extraCommands = [ 'keep *_mix_HGCDigisEE_*', 'keep *_mix_HGCDigisHEfront_*', 'keep *_mix_HGCDigisHEback_*' ]
from Configuration.StandardSequences.Eras import eras
eras.phase2_hgcal.toModify( SimGeneralRAW, func=_modifySimGeneralEventContentForHGCal )
eras.phase2_hgcal.toModify( SimGeneralFEVTDEBUG, func=_modifySimGeneralEventContentForHGCal )
eras.phase2_hgcal.toModify( SimGeneralRECO, func=_modifySimGeneralEventContentForHGCal )
eras.phase2_hgcal.toModify( SimGeneralRAW, outputCommands = SimGeneralRAW.outputCommands + _phase2_hgc_extraCommands )
eras.phase2_hgcal.toModify( SimGeneralFEVTDEBUG, outputCommands = SimGeneralFEVTDEBUG.outputCommands + _phase2_hgc_extraCommands )
eras.phase2_hgcal.toModify( SimGeneralRECO, outputCommands = SimGeneralRECO.outputCommands + _phase2_hgc_extraCommands )
12 changes: 6 additions & 6 deletions SimGeneral/MixingModule/python/digitizers_cfi.py
Expand Up @@ -42,13 +42,13 @@
setattr(theDigitizers,"tracks",recoTrackAccumulator)


def _modifySimGeneralMixingModuleDigitizersForHGCal( obj ):
from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgceeDigitizer, hgchebackDigitizer, hgchefrontDigitizer
obj.hgceeDigitizer=hgceeDigitizer
obj.hgchebackDigitizer=hgchebackDigitizer
obj.hgchefrontDigitizer=hgchefrontDigitizer
from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgceeDigitizer, hgchebackDigitizer, hgchefrontDigitizer

eras.phase2_hgcal.toModify( theDigitizers, func=_modifySimGeneralMixingModuleDigitizersForHGCal)
eras.phase2_hgcal.toModify( theDigitizers,
hgceeDigitizer = cms.PSet(hgceeDigitizer),
hgchebackDigitizer = cms.PSet(hgchebackDigitizer),
hgchefrontDigitizer = cms.PSet(hgchefrontDigitizer),
)


theDigitizersValid = cms.PSet(
Expand Down
6 changes: 1 addition & 5 deletions SimGeneral/MixingModule/python/ecalDigitizer_cfi.py
Expand Up @@ -29,9 +29,5 @@
ecalDigitizer.doEE = cms.bool(True)
ecalDigitizer.doES = cms.bool(True)

def _modifyEcalDigitizerForHGCal( obj ):
obj.doEE = cms.bool(False)
obj.doES = cms.bool(False)

from Configuration.StandardSequences.Eras import eras
eras.phase2_hgcal.toModify( ecalDigitizer, func=_modifyEcalDigitizerForHGCal)
eras.phase2_hgcal.toModify( ecalDigitizer, doEE = cms.bool(False), doES = cms.bool(False) )
42 changes: 22 additions & 20 deletions SimGeneral/MixingModule/python/hcalDigitizer_cfi.py
Expand Up @@ -7,25 +7,27 @@
accumulatorType = cms.string("HcalDigiProducer"),
makeDigiSimLinks = cms.untracked.bool(False))

def _modifyHcalDigitizerForHGCal( obj ):
newFactors = cms.vdouble(
210.55, 197.93, 186.12, 189.64, 189.63,
189.96, 190.03, 190.11, 190.18, 190.25,
190.32, 190.40, 190.47, 190.54, 190.61,
190.69, 190.83, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94 )
obj.HBHEUpgradeQIE = True
obj.hb.siPMCells = cms.vint32([1])
obj.hb.photoelectronsToAnalog = cms.vdouble([10.]*16)
obj.hb.pixels = cms.int32(4500*4*2)
obj.he.samplingFactors = newFactors
obj.he.photoelectronsToAnalog = cms.vdouble([10.]*len(newFactors))
obj.he.pixels = cms.int32(4500*4*2)
obj.HFUpgradeQIE = True
obj.HcalReLabel.RelabelHits=cms.untracked.bool(True)
_newFactors = cms.vdouble(
210.55, 197.93, 186.12, 189.64, 189.63,
189.96, 190.03, 190.11, 190.18, 190.25,
190.32, 190.40, 190.47, 190.54, 190.61,
190.69, 190.83, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94,
190.94, 190.94, 190.94, 190.94, 190.94 )

from Configuration.StandardSequences.Eras import eras
eras.phase2_hgcal.toModify( hcalDigitizer, func=_modifyHcalDigitizerForHGCal)
eras.phase2_hgcal.toModify( hcalDigitizer,
HBHEUpgradeQIE = cms.bool(True),
HFUpgradeQIE = cms.bool(True),
HcalReLabel = dict( RelabelHits = cms.untracked.bool(True) ),
hb = dict( siPMCells =cms.vint32([1]),
photoelectronsToAnalog = cms.vdouble([10.]*16),
pixels = cms.int32(4500*4*2)
),
he = dict( samplingFactors = _newFactors,
photoelectronsToAnalog = cms.vdouble([10.]*len(_newFactors)),
pixels = cms.int32(4500*4*2)
)
)

0 comments on commit 3072726

Please sign in to comment.