Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:23

0001 import math
0002 import FWCore.ParameterSet.Config as cms
0003 import RecoJets.JetProducers.AnomalousCellParameters_cfi as anom
0004 
0005 # Common definitions for FFTJet interface modules
0006 
0007 # Some useful constants
0008 fftjet_large_int = pow(2,31) - 1
0009 
0010 # Global phi-to-eta bandwidth ratio
0011 fftjet_phi_to_eta_bw_ratio = 1.0
0012 
0013 # Are we including the complete event at the lowest scale
0014 # of the clustering tree?
0015 fftjet_insert_complete_event = False
0016 fftjet_complete_event_scale = 0.05
0017 
0018 # The standard eta range for various algos
0019 fftjet_standard_eta_range = 5.2
0020 
0021 # Provide several feasible energy discretization grid configurations.
0022 # The width of eta bins is 0.087. We want to choose the binning
0023 # so that FFT is efficient. At the same time, we have to prevent
0024 # wrap-around energy leakage during convolutions from one eta side
0025 # to another. Note that the CMS calorimeter extends up to eta of 5.191.
0026 fftjet_grid_256_72 = cms.PSet(
0027     nEtaBins = cms.uint32(256),
0028     etaMin = cms.double(-11.136),
0029     etaMax = cms.double(11.136),
0030     nPhiBins = cms.uint32(72),
0031     phiBin0Edge = cms.double(0.0),
0032     title = cms.untracked.string("256 x 72")
0033 )
0034 
0035 fftjet_grid_192_72 = cms.PSet(
0036     nEtaBins = cms.uint32(192),
0037     etaMin = cms.double(-8.352),
0038     etaMax = cms.double(8.352),
0039     nPhiBins = cms.uint32(72),
0040     phiBin0Edge = cms.double(0.0),
0041     title = cms.untracked.string("192 x 72")
0042 )
0043 
0044 fftjet_grid_144_72 = cms.PSet(
0045     nEtaBins = cms.uint32(144),
0046     etaMin = cms.double(-6.264),
0047     etaMax = cms.double(6.264),
0048     nPhiBins = cms.uint32(72),
0049     phiBin0Edge = cms.double(0.0),
0050     title = cms.untracked.string("144 x 72")
0051 )
0052 
0053 fftjet_grid_128_72 = cms.PSet(
0054     nEtaBins = cms.uint32(128),
0055     etaMin = cms.double(-5.568),
0056     etaMax = cms.double(5.568),
0057     nPhiBins = cms.uint32(72),
0058     phiBin0Edge = cms.double(0.0),
0059     title = cms.untracked.string("128 x 72")
0060 )
0061 
0062 fftjet_grid_256_128 = cms.PSet(
0063     nEtaBins = cms.uint32(256),
0064     etaMin = cms.double(-2.0*math.pi),
0065     etaMax = cms.double(2.0*math.pi),
0066     nPhiBins = cms.uint32(128),
0067     phiBin0Edge = cms.double(0.0),
0068     title = cms.untracked.string("256 x 128")
0069 )
0070 
0071 fftjet_grid_512_256 = cms.PSet(
0072     nEtaBins = cms.uint32(512),
0073     etaMin = cms.double(-2.0*math.pi),
0074     etaMax = cms.double(2.0*math.pi),
0075     nPhiBins = cms.uint32(256),
0076     phiBin0Edge = cms.double(0.0),
0077     title = cms.untracked.string("512 x 256")
0078 )
0079 
0080 #
0081 # Definitions for anomalous towers
0082 # 
0083 fftjet_anomalous_tower_default = anom.AnomalousCellParameters
0084 
0085 fftjet_anomalous_tower_allpass = cms.PSet(
0086     maxBadEcalCells = cms.uint32(fftjet_large_int),
0087     maxRecoveredEcalCells = cms.uint32(fftjet_large_int),
0088     maxProblematicEcalCells = cms.uint32(fftjet_large_int),
0089     maxBadHcalCells = cms.uint32(fftjet_large_int),
0090     maxRecoveredHcalCells = cms.uint32(fftjet_large_int),
0091     maxProblematicHcalCells = cms.uint32(fftjet_large_int)
0092 )
0093 
0094 #
0095 # Peak selectors
0096 # 
0097 fftjet_peak_selector_allpass = cms.PSet(
0098     Class = cms.string("AllPeaksPass")
0099 )
0100 
0101 #
0102 # 50 scales (49 intervals) from 0.087 to 0.6 in log space correspond
0103 # to the pattern recognition kernel bandwidth increase of 4.0% per scale.
0104 # This set of scales is useful for generic jet reconstruction with
0105 # variable jet size and for multiresolution studies.
0106 #
0107 fftjet_patreco_scales_50 = cms.PSet(
0108     Class = cms.string("EquidistantInLogSpace"),
0109     minScale = cms.double(0.087),
0110     maxScale = cms.double(0.6),
0111     nScales = cms.uint32(50)
0112 )
0113 
0114 #
0115 # Scales from 0.05 to 0.6, with 4.0% step.
0116 # Appropriate for use with the 512 x 256 grid.
0117 #
0118 fftjet_patreco_scales_64 = cms.PSet(
0119     Class = cms.string("EquidistantInLogSpace"),
0120     minScale = cms.double(0.05),
0121     maxScale = cms.double(0.6),
0122     nScales = cms.uint32(64)
0123 )
0124 
0125 #
0126 # Various sets of scales with 3 values (and 2 intervals).
0127 # Central scale is to be used for single-resolution jet
0128 # reconstruction. Using 3 scales instead of 1 allows for
0129 # determination of varios "speed" quantities for peaks.
0130 #
0131 fftjet_patreco_scales_3_at_010 = cms.PSet(
0132     Class = cms.string("EquidistantInLogSpace"),
0133     minScale = cms.double(0.10/1.04),
0134     maxScale = cms.double(0.10*1.04),
0135     nScales = cms.uint32(3)
0136 )
0137 fftjet_patreco_scales_3_at_015 = cms.PSet(
0138     Class = cms.string("EquidistantInLogSpace"),
0139     minScale = cms.double(0.15/1.04),
0140     maxScale = cms.double(0.15*1.04),
0141     nScales = cms.uint32(3)
0142 )
0143 fftjet_patreco_scales_3_at_017 = cms.PSet(
0144     Class = cms.string("EquidistantInLogSpace"),
0145     minScale = cms.double(0.17/1.04),
0146     maxScale = cms.double(0.17*1.04),
0147     nScales = cms.uint32(3)
0148 )
0149 fftjet_patreco_scales_3_at_020 = cms.PSet(
0150     Class = cms.string("EquidistantInLogSpace"),
0151     minScale = cms.double(0.20/1.04),
0152     maxScale = cms.double(0.20*1.04),
0153     nScales = cms.uint32(3)
0154 )
0155 fftjet_patreco_scales_3_at_025 = cms.PSet(
0156     Class = cms.string("EquidistantInLogSpace"),
0157     minScale = cms.double(0.25/1.04),
0158     maxScale = cms.double(0.25*1.04),
0159     nScales = cms.uint32(3)
0160 )
0161 fftjet_patreco_scales_3_at_050 = cms.PSet(
0162     Class = cms.string("EquidistantInLogSpace"),
0163     minScale = cms.double(0.50/1.04),
0164     maxScale = cms.double(0.50*1.04),
0165     nScales = cms.uint32(3)
0166 )
0167 
0168 #
0169 # Here, the distance calculator for the tree is a simple eta-phi
0170 # distance with fixed bandwidth values in eta and phi. However,
0171 # if the "etaDependentScaleFactors" are given in the module
0172 # configuration, it makes a lot of sense to use eta-dependent
0173 # eta-to-phi bandwidth ratio.
0174 #
0175 fftjet_fixed_bandwidth_distance = cms.PSet(
0176     Class = cms.string("PeakEtaPhiDistance"),
0177     etaToPhiBandwidthRatio = cms.double(1.0/fftjet_phi_to_eta_bw_ratio)
0178 )
0179 
0180 #
0181 # A placeholder for the tree distance calculator with eta-dependent
0182 # eta-to-phi bandwidth ratio (must be modified for meaningful use).
0183 # Inside the interpolator, bandwidth ratio points are placed at the
0184 # cell centers.
0185 #
0186 fftjet_variable_bandwidth_distance = cms.PSet(
0187     Class = cms.string("PeakEtaDependentDistance"),
0188     Interpolator = cms.PSet(
0189         xmin = cms.double(-5.2),
0190         xmax = cms.double(5.2),
0191         flow = cms.double(1.0),
0192         fhigh = cms.double(1.0),
0193         data = cms.vdouble(1.0, 1.0)
0194     )
0195 )
0196 
0197 #
0198 # Various jet membership functions
0199 #
0200 fftjet_jet_membership_cone = cms.PSet(
0201     Class = cms.string("Linear2d"),
0202     sx = cms.double(math.sqrt(1.0/fftjet_phi_to_eta_bw_ratio)),
0203     sy = cms.double(math.sqrt(fftjet_phi_to_eta_bw_ratio)),
0204     scalePower = cms.int32(1),
0205     kernelParameters = cms.vdouble()
0206 )
0207 
0208 #
0209 # Background/noise membership functions
0210 #
0211 fftjet_noise_membership_smallconst = cms.PSet(
0212     Class = cms.string("GaussianNoiseMembershipFcn"),
0213     minWeight = cms.double(1.0e-8),
0214     prior = cms.double(0.0)
0215 )
0216 
0217 #
0218 # Distance between jets for convergence determination
0219 #
0220 fftjet_convergence_jet_distance = cms.PSet(
0221     Class = cms.string("JetConvergenceDistance"),
0222     etaToPhiBandwidthRatio = cms.double(1.0/fftjet_phi_to_eta_bw_ratio),
0223     relativePtBandwidth = cms.double(1.0)
0224 )
0225 
0226 #
0227 # Various peak functors
0228 #
0229 fftjet_peakfunctor_const_zero = cms.PSet(
0230     Class = cms.string("ConstDouble"),
0231     value = cms.double(0.0)
0232 )
0233 
0234 fftjet_peakfunctor_const_one = cms.PSet(
0235     Class = cms.string("ConstDouble"),
0236     value = cms.double(1.0)
0237 )