CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/RecoJets/FFTJetProducers/python/fftjetcommon_cfi.py

Go to the documentation of this file.
00001 import math
00002 import FWCore.ParameterSet.Config as cms
00003 import RecoJets.JetProducers.AnomalousCellParameters_cfi as anom
00004 
00005 # Common definitions for FFTJet interface modules
00006 
00007 # Some useful constants
00008 fftjet_large_int = pow(2,31) - 1
00009 
00010 # Global phi-to-eta bandwidth ratio
00011 fftjet_phi_to_eta_bw_ratio = 1.0
00012 
00013 # Are we including the complete event at the lowest scale
00014 # of the clustering tree?
00015 fftjet_insert_complete_event = False
00016 fftjet_complete_event_scale = 0.05
00017 
00018 # The standard eta range for various algos
00019 fftjet_standard_eta_range = 5.2
00020 
00021 # Provide several feasible energy discretization grid configurations.
00022 # The width of eta bins is 0.087. We want to choose the binning
00023 # so that FFT is efficient. At the same time, we have to prevent
00024 # wrap-around energy leakage during convolutions from one eta side
00025 # to another. Note that the CMS calorimeter extends up to eta of 5.191.
00026 fftjet_grid_256_72 = cms.PSet(
00027     nEtaBins = cms.uint32(256),
00028     etaMin = cms.double(-11.136),
00029     etaMax = cms.double(11.136),
00030     nPhiBins = cms.uint32(72),
00031     phiBin0Edge = cms.double(0.0),
00032     title = cms.untracked.string("256 x 72")
00033 )
00034 
00035 fftjet_grid_192_72 = cms.PSet(
00036     nEtaBins = cms.uint32(192),
00037     etaMin = cms.double(-8.352),
00038     etaMax = cms.double(8.352),
00039     nPhiBins = cms.uint32(72),
00040     phiBin0Edge = cms.double(0.0),
00041     title = cms.untracked.string("192 x 72")
00042 )
00043 
00044 fftjet_grid_144_72 = cms.PSet(
00045     nEtaBins = cms.uint32(144),
00046     etaMin = cms.double(-6.264),
00047     etaMax = cms.double(6.264),
00048     nPhiBins = cms.uint32(72),
00049     phiBin0Edge = cms.double(0.0),
00050     title = cms.untracked.string("144 x 72")
00051 )
00052 
00053 fftjet_grid_128_72 = cms.PSet(
00054     nEtaBins = cms.uint32(128),
00055     etaMin = cms.double(-5.568),
00056     etaMax = cms.double(5.568),
00057     nPhiBins = cms.uint32(72),
00058     phiBin0Edge = cms.double(0.0),
00059     title = cms.untracked.string("128 x 72")
00060 )
00061 
00062 fftjet_grid_256_128 = cms.PSet(
00063     nEtaBins = cms.uint32(256),
00064     etaMin = cms.double(-2.0*math.pi),
00065     etaMax = cms.double(2.0*math.pi),
00066     nPhiBins = cms.uint32(128),
00067     phiBin0Edge = cms.double(0.0),
00068     title = cms.untracked.string("256 x 128")
00069 )
00070 
00071 #
00072 # Definitions for anomalous towers
00073 # 
00074 fftjet_anomalous_tower_default = anom.AnomalousCellParameters
00075 
00076 fftjet_anomalous_tower_allpass = cms.PSet(
00077     maxBadEcalCells = cms.uint32(fftjet_large_int),
00078     maxRecoveredEcalCells = cms.uint32(fftjet_large_int),
00079     maxProblematicEcalCells = cms.uint32(fftjet_large_int),
00080     maxBadHcalCells = cms.uint32(fftjet_large_int),
00081     maxRecoveredHcalCells = cms.uint32(fftjet_large_int),
00082     maxProblematicHcalCells = cms.uint32(fftjet_large_int)
00083 )
00084 
00085 #
00086 # Peak selectors
00087 # 
00088 fftjet_peak_selector_allpass = cms.PSet(
00089     Class = cms.string("AllPeaksPass")
00090 )
00091 
00092 #
00093 # 50 scales (49 intervals) from 0.087 to 0.6 in log space correspond
00094 # to the pattern recognition kernel bandwidth increase of 4.0% per scale
00095 #
00096 fftjet_patreco_scales_50 = cms.PSet(
00097     Class = cms.string("EquidistantInLogSpace"),
00098     minScale = cms.double(0.087),
00099     maxScale = cms.double(0.6),
00100     nScales = cms.uint32(50)
00101 )
00102 
00103 #
00104 # Here, the distance calculator for the tree is a simple eta-phi
00105 # distance with fixed bandwidth values in eta and phi. However,
00106 # if the "etaDependentScaleFactors" are given in the module
00107 # configuration, it makes a lot of sense to use eta-dependent
00108 # eta-to-phi bandwidth ratio.
00109 #
00110 fftjet_fixed_bandwidth_distance = cms.PSet(
00111     Class = cms.string("PeakEtaPhiDistance"),
00112     etaToPhiBandwidthRatio = cms.double(1.0/fftjet_phi_to_eta_bw_ratio)
00113 )
00114 
00115 #
00116 # A placeholder for the tree distance calculator with eta-dependent
00117 # eta-to-phi bandwidth ratio (must be modified for meaningful use).
00118 # Inside the interpolator, bandwidth ratio points are placed at the
00119 # cell centers.
00120 #
00121 fftjet_variable_bandwidth_distance = cms.PSet(
00122     Class = cms.string("PeakEtaDependentDistance"),
00123     Interpolator = cms.PSet(
00124         xmin = cms.double(-5.2),
00125         xmax = cms.double(5.2),
00126         flow = cms.double(1.0),
00127         fhigh = cms.double(1.0),
00128         data = cms.vdouble(1.0, 1.0)
00129     )
00130 )
00131 
00132 #
00133 # Various jet membership functions
00134 #
00135 fftjet_jet_membership_cone = cms.PSet(
00136     Class = cms.string("Linear2d"),
00137     sx = cms.double(math.sqrt(1.0/fftjet_phi_to_eta_bw_ratio)),
00138     sy = cms.double(math.sqrt(fftjet_phi_to_eta_bw_ratio)),
00139     scalePower = cms.int32(1),
00140     kernelParameters = cms.vdouble()
00141 )
00142 
00143 #
00144 # Background/noise membership functions
00145 #
00146 fftjet_noise_membership_smallconst = cms.PSet(
00147     Class = cms.string("GaussianNoiseMembershipFcn"),
00148     minWeight = cms.double(1.0e-8),
00149     prior = cms.double(0.0)
00150 )
00151 
00152 #
00153 # Distance between jets for convergence determination
00154 #
00155 fftjet_convergence_jet_distance = cms.PSet(
00156     Class = cms.string("JetConvergenceDistance"),
00157     etaToPhiBandwidthRatio = cms.double(1.0/fftjet_phi_to_eta_bw_ratio),
00158     relativePtBandwidth = cms.double(1.0)
00159 )
00160 
00161 #
00162 # Various peak functors
00163 #
00164 fftjet_peakfunctor_const_zero = cms.PSet(
00165     Class = cms.string("ConstDouble"),
00166     value = cms.double(0.0)
00167 )
00168 
00169 fftjet_peakfunctor_const_one = cms.PSet(
00170     Class = cms.string("ConstDouble"),
00171     value = cms.double(1.0)
00172 )