CMS 3D CMS Logo

particleFlowClusterHFEM_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 #### PF CLUSTER HFEM ####
4 
5 #cleaning
6 _spikeAndDoubleSpikeCleaner_HFEM = cms.PSet(
7  algoName = cms.string("SpikeAndDoubleSpikeCleaner"),
8  cleaningByDetector = cms.VPSet(
9  cms.PSet( detector = cms.string("HF_EM"),
10  #single spike
11  singleSpikeThresh = cms.double(80.0),
12  minS4S1_a = cms.double(0.11), #constant term
13  minS4S1_b = cms.double(-0.19), #log pt scaling
14  #double spike
15  doubleSpikeThresh = cms.double(1e9),
16  doubleSpikeS6S2 = cms.double(-1.0),
17  energyThresholdModifier = cms.double(1.0), ## aka "tighterE"
18  fractionThresholdModifier = cms.double(1.0) ## aka "tighterF"
19  )
20  )
21  )
22 
23 #seeding
24 _localMaxSeeds_HFEM = cms.PSet(
25  algoName = cms.string("LocalMaximumSeedFinder"),
26  thresholdsByDetector = cms.VPSet(
27  cms.PSet( detector = cms.string("HF_EM"),
28  seedingThreshold = cms.double(1.4),
29  seedingThresholdPt = cms.double(0.0)
30  )
31  ),
32  nNeighbours = cms.int32(0)
33 )
34 
35 #topo clusters
36 _topoClusterizer_HFEM = cms.PSet(
37  algoName = cms.string("Basic2DGenericTopoClusterizer"),
38  thresholdsByDetector = cms.VPSet(
39  cms.PSet( detector = cms.string("HF_EM"),
40  gatheringThreshold = cms.double(0.8),
41  gatheringThresholdPt = cms.double(0.0)
42  )
43  ),
44  useCornerCells = cms.bool(False)
45 )
46 
47 #position calc
48 _positionCalcHFEM_cross_nodepth = cms.PSet(
49  algoName = cms.string("Basic2DGenericPFlowPositionCalc"),
50 
51  minFractionInCalc = cms.double(1e-9),
52  posCalcNCrystals = cms.int32(5),
53  logWeightDenominator = cms.double(0.8), # same as gathering threshold
54  minAllowedNormalization = cms.double(1e-9)
55 )
56 
57 _positionCalcHFEM_all_nodepth = _positionCalcHFEM_cross_nodepth.clone(
58  posCalcNCrystals = cms.int32(-1)
59  )
60 
61 #pf clusters
62 _pfClusterizer_HFEM = cms.PSet(
63  algoName = cms.string("Basic2DGenericPFlowClusterizer"),
64  #pf clustering parameters
65  minFractionToKeep = cms.double(1e-7),
66  positionCalc = _positionCalcHFEM_cross_nodepth,
67  allCellsPositionCalc = _positionCalcHFEM_all_nodepth,
68  showerSigma = cms.double(10.0),
69  stoppingTolerance = cms.double(1e-8),
70  maxIterations = cms.uint32(50),
71  excludeOtherSeeds = cms.bool(True),
72  minFracTot = cms.double(1e-20), ## numerical stabilization
73  recHitEnergyNorms = cms.VPSet(
74  cms.PSet( detector = cms.string("HF_EM"),
75  recHitEnergyNorm = cms.double(0.8)
76  )
77  )
78 )
79 
80 particleFlowClusterHFEM = cms.EDProducer(
81  "PFClusterProducer",
82  recHitsSource = cms.InputTag("particleFlowRecHitHCAL:HFEM"),
83  recHitCleaners = cms.VPSet(_spikeAndDoubleSpikeCleaner_HFEM),
84  seedFinder = _localMaxSeeds_HFEM,
85  initialClusteringStep = _topoClusterizer_HFEM,
86  pfClusterBuilder = _pfClusterizer_HFEM,
87  positionReCalc = cms.PSet(),
88  energyCorrector = cms.PSet()
89  )
90