1 import FWCore.ParameterSet.Config
as cms
2 from RecoParticleFlow.PFClusterProducer.particleFlowCaloResolution_cfi
import _timeResolutionHCALMaxSample
4 _thresholdsHB = cms.vdouble(0.8, 0.8, 0.8, 0.8)
5 _thresholdsHE = cms.vdouble(0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8)
6 _thresholdsHBphase1 = cms.vdouble(0.1, 0.2, 0.3, 0.3)
7 _thresholdsHEphase1 = cms.vdouble(0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2)
8 _seedingThresholdsHB = cms.vdouble(1.0, 1.0, 1.0, 1.0)
9 _seedingThresholdsHE = cms.vdouble(1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1)
10 _seedingThresholdsHBphase1 = cms.vdouble(0.125, 0.25, 0.35, 0.35)
11 _seedingThresholdsHEphase1 = cms.vdouble(0.1375, 0.275, 0.275, 0.275, 0.275, 0.275, 0.275)
13 _thresholdsHBphase1_2023 = cms.vdouble(0.4, 0.3, 0.3, 0.3)
15 _seedingThresholdsHBphase1_2023 = cms.vdouble(0.6, 0.5, 0.5, 0.5)
19 particleFlowClusterHBHE = cms.EDProducer(
21 recHitsSource = cms.InputTag(
"particleFlowRecHitHBHE"),
22 usePFThresholdsFromDB = cms.bool(
False),
23 recHitCleaners = cms.VPSet(),
24 seedCleaners = cms.VPSet(),
25 seedFinder = cms.PSet(
26 algoName = cms.string(
"LocalMaximumSeedFinder"),
27 thresholdsByDetector = cms.VPSet(
28 cms.PSet( detector = cms.string(
"HCAL_BARREL1"),
29 depths = cms.vint32(1, 2, 3, 4),
30 seedingThreshold = _seedingThresholdsHB,
31 seedingThresholdPt = cms.vdouble(0.0, 0.0, 0.0, 0.0)
33 cms.PSet( detector = cms.string(
"HCAL_ENDCAP"),
34 depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
35 seedingThreshold = _seedingThresholdsHE,
36 seedingThresholdPt = cms.vdouble(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
39 nNeighbours = cms.int32(4),
41 initialClusteringStep = cms.PSet(
42 algoName = cms.string(
"Basic2DGenericTopoClusterizer"),
43 thresholdsByDetector = cms.VPSet(
44 cms.PSet( detector = cms.string(
"HCAL_BARREL1"),
45 depths = cms.vint32(1, 2, 3, 4),
46 gatheringThreshold = _thresholdsHB,
47 gatheringThresholdPt = cms.vdouble(0.0, 0.0, 0.0, 0.0)
49 cms.PSet( detector = cms.string(
"HCAL_ENDCAP"),
50 depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
51 gatheringThreshold = _thresholdsHE,
52 gatheringThresholdPt = cms.vdouble(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
55 useCornerCells = cms.bool(
True)
58 pfClusterBuilder = cms.PSet(
59 algoName = cms.string(
"Basic2DGenericPFlowClusterizer"),
61 minFractionToKeep = cms.double(1e-7),
62 positionCalc = cms.PSet(
63 algoName = cms.string(
"Basic2DGenericPFlowPositionCalc"),
64 minFractionInCalc = cms.double(1e-9),
65 posCalcNCrystals = cms.int32(5),
66 logWeightDenominatorByDetector = cms.VPSet(
67 cms.PSet( detector = cms.string(
"HCAL_BARREL1"),
68 depths = cms.vint32(1, 2, 3, 4),
69 logWeightDenominator = _thresholdsHB,
71 cms.PSet( detector = cms.string(
"HCAL_ENDCAP"),
72 depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
73 logWeightDenominator = _thresholdsHE,
76 minAllowedNormalization = cms.double(1e-9)
78 allCellsPositionCalc =cms.PSet(
79 algoName = cms.string(
"Basic2DGenericPFlowPositionCalc"),
80 minFractionInCalc = cms.double(1e-9),
81 posCalcNCrystals = cms.int32(-1),
82 logWeightDenominatorByDetector = cms.VPSet(
83 cms.PSet( detector = cms.string(
"HCAL_BARREL1"),
84 depths = cms.vint32(1, 2, 3, 4),
85 logWeightDenominator = _thresholdsHB,
87 cms.PSet( detector = cms.string(
"HCAL_ENDCAP"),
88 depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
89 logWeightDenominator = _thresholdsHE,
92 minAllowedNormalization = cms.double(1e-9)
96 timeSigmaEB = cms.double(10.),
97 timeSigmaEE = cms.double(10.),
98 maxNSigmaTime = cms.double(10.),
99 minChi2Prob = cms.double(0.),
100 clusterTimeResFromSeed = cms.bool(
False),
101 timeResolutionCalcBarrel = _timeResolutionHCALMaxSample,
102 timeResolutionCalcEndcap = _timeResolutionHCALMaxSample,
103 showerSigma = cms.double(10.0),
104 stoppingTolerance = cms.double(1e-8),
105 maxIterations = cms.uint32(50),
106 excludeOtherSeeds = cms.bool(
True),
107 minFracTot = cms.double(1e-20),
108 recHitEnergyNorms = cms.VPSet(
109 cms.PSet( detector = cms.string(
"HCAL_BARREL1"),
110 depths = cms.vint32(1, 2, 3, 4),
111 recHitEnergyNorm = _thresholdsHB,
113 cms.PSet( detector = cms.string(
"HCAL_ENDCAP"),
114 depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
115 recHitEnergyNorm = _thresholdsHE,
119 positionReCalc = cms.PSet(),
120 energyCorrector = cms.PSet()
126 from Configuration.Eras.Modifier_run2_HE_2018_cff
import run2_HE_2018
127 from Configuration.ProcessModifiers.run2_HECollapse_2018_cff
import run2_HECollapse_2018
128 (run2_HE_2018 & ~run2_HECollapse_2018).toModify(particleFlowClusterHBHE,
129 seedFinder = dict(thresholdsByDetector = {1 : dict(seedingThreshold = _seedingThresholdsHEphase1) } ),
130 initialClusteringStep = dict(thresholdsByDetector = {1 : dict(gatheringThreshold = _thresholdsHEphase1) } ),
131 pfClusterBuilder = dict(
132 recHitEnergyNorms = {1 : dict(recHitEnergyNorm = _thresholdsHEphase1) },
133 positionCalc = dict(logWeightDenominatorByDetector = {1 : dict(logWeightDenominator = _thresholdsHEphase1) } ),
134 allCellsPositionCalc = dict(logWeightDenominatorByDetector = {1 : dict(logWeightDenominator = _thresholdsHEphase1) } ),
139 from Configuration.Eras.Modifier_run3_HB_cff
import run3_HB
140 run3_HB.toModify(particleFlowClusterHBHE,
141 seedFinder = dict(thresholdsByDetector = {0 : dict(seedingThreshold = _seedingThresholdsHBphase1) } ),
142 initialClusteringStep = dict(thresholdsByDetector = {0 : dict(gatheringThreshold = _thresholdsHBphase1) } ),
143 pfClusterBuilder = dict(
144 recHitEnergyNorms = {0 : dict(recHitEnergyNorm = _thresholdsHBphase1) },
145 positionCalc = dict(logWeightDenominatorByDetector = {0 : dict(logWeightDenominator = _thresholdsHBphase1) } ),
146 allCellsPositionCalc = dict(logWeightDenominatorByDetector = {0 : dict(logWeightDenominator = _thresholdsHBphase1) } ),
151 from Configuration.Eras.Modifier_run3_egamma_2023_cff
import run3_egamma_2023
152 run3_egamma_2023.toModify(particleFlowClusterHBHE,
153 seedFinder = dict(thresholdsByDetector = {0 : dict(seedingThreshold = _seedingThresholdsHBphase1_2023) } ),
154 initialClusteringStep = dict(thresholdsByDetector = {0 : dict(gatheringThreshold = _thresholdsHBphase1_2023) } ),
155 pfClusterBuilder = dict(
156 recHitEnergyNorms = {0 : dict(recHitEnergyNorm = _thresholdsHBphase1_2023) },
157 positionCalc = dict(logWeightDenominatorByDetector = {0 : dict(logWeightDenominator = _thresholdsHBphase1_2023) } ),
158 allCellsPositionCalc = dict(logWeightDenominatorByDetector = {0 : dict(logWeightDenominator = _thresholdsHBphase1_2023) } ),
164 particleFlowClusterHBHEOnly = particleFlowClusterHBHE.clone(
165 recHitsSource =
"particleFlowRecHitHBHEOnly" 169 from Configuration.Eras.Modifier_hcalPfCutsFromDB_cff
import hcalPfCutsFromDB
170 hcalPfCutsFromDB.toModify( particleFlowClusterHBHE,
171 usePFThresholdsFromDB =
True)