CMS 3D CMS Logo

particleFlowClusterHCALLegacy_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 #### PF CLUSTER HCAL ####
4 
5 #cleaning
6 _rbxAndHPDCleaner = cms.PSet(
7  algoName = cms.string("RBXAndHPDCleaner")
8 )
9 
10 #seeding
11 _localMaxSeeds_HCAL = cms.PSet(
12  algoName = cms.string("LocalMaximumSeedFinder"),
13  thresholdsByDetector = cms.VPSet(
14  cms.PSet( detector = cms.string("HCAL_BARREL1"),
15  seedingThreshold = cms.double(0.8),
16  seedingThresholdPt = cms.double(0.0)
17  ),
18  cms.PSet( detector = cms.string("HCAL_ENDCAP"),
19  seedingThreshold = cms.double(1.1),
20  seedingThresholdPt = cms.double(0.0)
21  )
22  ),
23  nNeighbours = cms.int32(4)
24 )
25 
26 #topo clusters
27 _topoClusterizer_HCAL = cms.PSet(
28  algoName = cms.string("Basic2DGenericTopoClusterizer"),
29  thresholdsByDetector = cms.VPSet(
30  cms.PSet( detector = cms.string("HCAL_BARREL1"),
31  gatheringThreshold = cms.double(0.8),
32  gatheringThresholdPt = cms.double(0.0)
33  ),
34  cms.PSet( detector = cms.string("HCAL_ENDCAP"),
35  gatheringThreshold = cms.double(0.8),
36  gatheringThresholdPt = cms.double(0.0)
37  )
38  ),
39  useCornerCells = cms.bool(True)
40 )
41 
42 #position calc
43 _positionCalcHCAL_cross_nodepth = cms.PSet(
44  algoName = cms.string("Basic2DGenericPFlowPositionCalc"),
45 
46  minFractionInCalc = cms.double(1e-9),
47  posCalcNCrystals = cms.int32(5),
48  logWeightDenominator = cms.double(0.8),#same as gathering threshold
49  minAllowedNormalization = cms.double(1e-9)
50 )
51 
52 _positionCalcHCAL_all_nodepth = _positionCalcHCAL_cross_nodepth.clone(
53  posCalcNCrystals = cms.int32(-1)
54 )
55 
56 #pf clusterizer
57 _pfClusterizer_HCAL = cms.PSet(
58  algoName = cms.string("Basic2DGenericPFlowClusterizer"),
59  #pf clustering parameters
60  minFractionToKeep = cms.double(1e-7),
61  positionCalc = _positionCalcHCAL_cross_nodepth,
62  allCellsPositionCalc = _positionCalcHCAL_all_nodepth,
63  showerSigma = cms.double(10.0),
64  stoppingTolerance = cms.double(1e-8),
65  maxIterations = cms.uint32(50),
66  excludeOtherSeeds = cms.bool(True),
67  minFracTot = cms.double(1e-20), ## numerical stabilization
68  recHitEnergyNorms = cms.VPSet(
69  cms.PSet( detector = cms.string("HCAL_BARREL1"),
70  recHitEnergyNorm = cms.double(0.8)
71  ),
72  cms.PSet( detector = cms.string("HCAL_ENDCAP"),
73  recHitEnergyNorm = cms.double(0.8)
74  )
75  )
76 )
77 
78 particleFlowClusterHCAL = cms.EDProducer(
79  "PFClusterProducer",
80  recHitsSource = cms.InputTag("particleFlowRecHitHCAL"),
81  recHitCleaners = cms.VPSet(_rbxAndHPDCleaner),
82  seedFinder = _localMaxSeeds_HCAL,
83  initialClusteringStep = _topoClusterizer_HCAL,
84  pfClusterBuilder = _pfClusterizer_HCAL,
85  positionReCalc = cms.PSet(),
86  energyCorrector = cms.PSet()
87 )
88