File indexing completed on 2023-11-21 00:29:06
0001 from __future__ import absolute_import
0002 import FWCore.ParameterSet.Config as cms
0003
0004 from .particleFlowCaloResolution_cfi import _timeResolutionECALBarrel, _timeResolutionECALEndcap
0005
0006
0007
0008
0009 _spikeAndDoubleSpikeCleaner_ECAL = cms.PSet(
0010 algoName = cms.string("SpikeAndDoubleSpikeCleaner"),
0011 cleaningByDetector = cms.VPSet(
0012 cms.PSet( detector = cms.string("ECAL_BARREL"),
0013
0014 singleSpikeThresh = cms.double(4.0),
0015 minS4S1_a = cms.double(0.04),
0016 minS4S1_b = cms.double(-0.024),
0017
0018 doubleSpikeThresh = cms.double(10.0),
0019 doubleSpikeS6S2 = cms.double(0.04),
0020 energyThresholdModifier = cms.double(2.0),
0021 fractionThresholdModifier = cms.double(3.0)
0022 ),
0023 cms.PSet( detector = cms.string("ECAL_ENDCAP"),
0024
0025 singleSpikeThresh = cms.double(15.0),
0026 minS4S1_a = cms.double(0.02),
0027 minS4S1_b = cms.double(-0.0125),
0028
0029 doubleSpikeThresh = cms.double(1e9),
0030 doubleSpikeS6S2 = cms.double(-1.0),
0031 energyThresholdModifier = cms.double(2.0),
0032 fractionThresholdModifier = cms.double(3.0)
0033 )
0034 )
0035 )
0036
0037
0038 _seedsFlagsCleaner_ECAL = cms.PSet(
0039 algoName = cms.string("FlagsCleanerECAL"),
0040
0041 RecHitFlagsToBeExcluded= cms.vstring()
0042 )
0043
0044
0045 _seedCleaner_ECAL = cms.PSet(
0046 algoName = cms.string("ECALPFSeedCleaner"),
0047 )
0048
0049
0050
0051 _localMaxSeeds_ECAL = cms.PSet(
0052 algoName = cms.string("LocalMaximumSeedFinder"),
0053 thresholdsByDetector = cms.VPSet(
0054 cms.PSet( detector = cms.string("ECAL_ENDCAP"),
0055 seedingThreshold = cms.double(0.60),
0056 seedingThresholdPt = cms.double(0.15)
0057 ),
0058 cms.PSet( detector = cms.string("ECAL_BARREL"),
0059 seedingThreshold = cms.double(0.23),
0060 seedingThresholdPt = cms.double(0.0)
0061 )
0062 ),
0063 nNeighbours = cms.int32(8),
0064 )
0065
0066
0067 _topoClusterizer_ECAL = cms.PSet(
0068 algoName = cms.string("Basic2DGenericTopoClusterizer"),
0069 thresholdsByDetector = cms.VPSet(
0070 cms.PSet( detector = cms.string("ECAL_BARREL"),
0071 gatheringThreshold = cms.double(0.08),
0072 gatheringThresholdPt = cms.double(0.0)
0073 ),
0074 cms.PSet( detector = cms.string("ECAL_ENDCAP"),
0075 gatheringThreshold = cms.double(0.3),
0076 gatheringThresholdPt = cms.double(0.0)
0077 )
0078 ),
0079 useCornerCells = cms.bool(True)
0080 )
0081
0082
0083 _positionCalcECAL_all_nodepth = cms.PSet(
0084 algoName = cms.string("Basic2DGenericPFlowPositionCalc"),
0085
0086 minFractionInCalc = cms.double(1e-9),
0087 posCalcNCrystals = cms.int32(-1),
0088 logWeightDenominator = cms.double(0.08),
0089 minAllowedNormalization = cms.double(1e-9),
0090 timeResolutionCalcBarrel = _timeResolutionECALBarrel,
0091 timeResolutionCalcEndcap = _timeResolutionECALEndcap,
0092 )
0093 _positionCalcECAL_3x3_nodepth = _positionCalcECAL_all_nodepth.clone(
0094 posCalcNCrystals = 9
0095 )
0096 _positionCalcECAL_all_withdepth = cms.PSet(
0097 algoName = cms.string("ECAL2DPositionCalcWithDepthCorr"),
0098
0099 minFractionInCalc = cms.double(0.0),
0100 minAllowedNormalization = cms.double(0.0),
0101 T0_EB = cms.double(7.4),
0102 T0_EE = cms.double(3.1),
0103 T0_ES = cms.double(1.2),
0104 W0 = cms.double(4.2),
0105 X0 = cms.double(0.89)
0106 )
0107
0108
0109 _pfClusterizer_ECAL = cms.PSet(
0110 algoName = cms.string("Basic2DGenericPFlowClusterizer"),
0111
0112 minFractionToKeep = cms.double(1e-7),
0113 positionCalc = _positionCalcECAL_3x3_nodepth,
0114 allCellsPositionCalc = _positionCalcECAL_all_nodepth,
0115 positionCalcForConvergence = _positionCalcECAL_all_withdepth,
0116 showerSigma = cms.double(1.5),
0117 stoppingTolerance = cms.double(1e-8),
0118 maxIterations = cms.uint32(50),
0119 excludeOtherSeeds = cms.bool(True),
0120 minFracTot = cms.double(1e-20),
0121 recHitEnergyNorms = cms.VPSet(
0122 cms.PSet( detector = cms.string("ECAL_BARREL"),
0123 recHitEnergyNorm = cms.double(0.08)
0124 ),
0125 cms.PSet( detector = cms.string("ECAL_ENDCAP"),
0126 recHitEnergyNorm = cms.double(0.3)
0127 )
0128 )
0129 )
0130
0131 particleFlowClusterECALUncorrected = cms.EDProducer(
0132 "PFClusterProducer",
0133 recHitsSource = cms.InputTag("particleFlowRecHitECAL"),
0134 usePFThresholdsFromDB = cms.bool(False),
0135 recHitCleaners = cms.VPSet(),
0136
0137 seedCleaners = cms.VPSet(_seedsFlagsCleaner_ECAL),
0138 seedFinder = _localMaxSeeds_ECAL,
0139 initialClusteringStep = _topoClusterizer_ECAL,
0140 pfClusterBuilder = _pfClusterizer_ECAL,
0141 positionReCalc = _positionCalcECAL_all_withdepth,
0142 energyCorrector = cms.PSet()
0143 )