Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-22 02:24:05

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 #### PF CLUSTER HFEM ####
0004 
0005 #cleaning
0006 _spikeAndDoubleSpikeCleaner_HF = cms.PSet(
0007     algoName = cms.string("SpikeAndDoubleSpikeCleaner"),    
0008     cleaningByDetector = cms.VPSet(
0009        cms.PSet( detector = cms.string("HF_EM"),
0010                  #single spike
0011                  singleSpikeThresh = cms.double(80.0),
0012                  minS4S1_a = cms.double(0.11), #constant term
0013                  minS4S1_b = cms.double(-0.19), #log pt scaling
0014                  #double spike
0015                  doubleSpikeThresh = cms.double(1e9),
0016                  doubleSpikeS6S2 = cms.double(-1.0),
0017                  energyThresholdModifier = cms.double(1.0), ## aka "tighterE"
0018                  fractionThresholdModifier = cms.double(1.0) ## aka "tighterF"
0019                  ),
0020        cms.PSet( detector = cms.string("HF_HAD"),
0021                  #single spike
0022                  singleSpikeThresh = cms.double(120.0),
0023                  minS4S1_a = cms.double(0.045), #constant term
0024                  minS4S1_b = cms.double(-0.080), #log pt scaling
0025                  #double spike
0026                  doubleSpikeThresh = cms.double(1e9),
0027                  doubleSpikeS6S2 = cms.double(-1.0),
0028                  energyThresholdModifier = cms.double(1.0), ## aka "tighterE"
0029                  fractionThresholdModifier = cms.double(1.0) ## aka "tighterF"
0030               )
0031        )
0032     )
0033 
0034 #seeding
0035 _localMaxSeeds_HF = cms.PSet(
0036     algoName = cms.string("LocalMaximumSeedFinder"),
0037     thresholdsByDetector = cms.VPSet(
0038     cms.PSet( detector = cms.string("HF_EM"),
0039               seedingThreshold = cms.double(1.4),
0040               seedingThresholdPt = cms.double(0.0)
0041               ),
0042     cms.PSet( detector = cms.string("HF_HAD"),
0043               seedingThreshold = cms.double(1.4),
0044               seedingThresholdPt = cms.double(0.0)
0045               )
0046 
0047     ),
0048     nNeighbours = cms.int32(0),
0049 )
0050 
0051 #topo clusters
0052 _topoClusterizer_HF = cms.PSet(
0053     algoName = cms.string("Basic2DGenericTopoClusterizer"),
0054     thresholdsByDetector = cms.VPSet(
0055     cms.PSet( detector = cms.string("HF_EM"),
0056               gatheringThreshold = cms.double(0.8),
0057               gatheringThresholdPt = cms.double(0.0)
0058               ),
0059     cms.PSet( detector = cms.string("HF_HAD"),
0060               gatheringThreshold = cms.double(0.8),
0061               gatheringThresholdPt = cms.double(0.0)
0062               )
0063 
0064     ),
0065     useCornerCells = cms.bool(False)
0066 )
0067 
0068 #position calc
0069 _positionCalcHF_cross_nodepth = cms.PSet(
0070     algoName = cms.string("Basic2DGenericPFlowPositionCalc"),
0071     ##
0072     minFractionInCalc = cms.double(1e-9),
0073     posCalcNCrystals = cms.int32(5),
0074     logWeightDenominator = cms.double(0.8), # same as gathering threshold
0075     minAllowedNormalization = cms.double(1e-9)    
0076 )
0077 
0078 _positionCalcHF_all_nodepth = _positionCalcHF_cross_nodepth.clone(
0079     posCalcNCrystals = -1
0080     )
0081 
0082 #pf clusters
0083 _pfClusterizer_HF = cms.PSet(
0084     algoName = cms.string("Basic2DGenericPFlowClusterizer"),
0085     #pf clustering parameters
0086     minFractionToKeep = cms.double(1e-7),
0087     positionCalc = _positionCalcHF_cross_nodepth,
0088     allCellsPositionCalc = _positionCalcHF_all_nodepth,
0089     showerSigma = cms.double(10.0),
0090     stoppingTolerance = cms.double(1e-8),
0091     maxIterations = cms.uint32(50),
0092     excludeOtherSeeds = cms.bool(True),
0093     minFracTot = cms.double(1e-20), ## numerical stabilization
0094     recHitEnergyNorms = cms.VPSet(
0095     cms.PSet( detector = cms.string("HF_EM"),
0096               recHitEnergyNorm = cms.double(0.8)
0097               ),
0098     cms.PSet( detector = cms.string("HF_HAD"),
0099               recHitEnergyNorm = cms.double(0.8)
0100               )
0101     )
0102 )
0103 
0104 particleFlowClusterHF = cms.EDProducer(
0105     "PFClusterProducer",
0106     recHitsSource = cms.InputTag("particleFlowRecHitHF"),
0107     usePFThresholdsFromDB = cms.bool(False),
0108     recHitCleaners = cms.VPSet(),
0109     seedCleaners = cms.VPSet(),
0110     seedFinder = _localMaxSeeds_HF,
0111     initialClusteringStep = _topoClusterizer_HF,
0112     pfClusterBuilder = _pfClusterizer_HF,
0113     positionReCalc = cms.PSet(),
0114     energyCorrector = cms.PSet()
0115     )
0116