00001 import math 00002 import FWCore.ParameterSet.Config as cms 00003 00004 from RecoJets.FFTJetProducers.fftjetcommon_cfi import * 00005 00006 # FFTJet pattern recognition module configuration 00007 fftjet_patreco_producer = cms.EDProducer( 00008 "FFTJetPatRecoProducer", 00009 # 00010 # The main eta and phi scale factors for the pattern recognition kernel 00011 kernelEtaScale = cms.double(math.sqrt(1.0/fftjet_phi_to_eta_bw_ratio)), 00012 kernelPhiScale = cms.double(math.sqrt(fftjet_phi_to_eta_bw_ratio)), 00013 # 00014 # Make the clustering trees? If you do not make the trees, 00015 # you should at least turn on the "storeDiscretizationGrid" 00016 # flag, otherwise this module will not produce anything at all. 00017 makeClusteringTree = cms.bool(True), 00018 # 00019 # Verify data conversion? For trees, this is only meaningful with 00020 # double precision storage. Grids, however, will always be verified 00021 # if this flag is set. 00022 verifyDataConversion = cms.untracked.bool(False), 00023 # 00024 # Are we going to produce sparse or full clustering trees 00025 sparsify = cms.bool(True), 00026 # 00027 # Are we going to store the discretized energy flow? 00028 storeDiscretizationGrid = cms.bool(False), 00029 # 00030 # Are we going to dump discretized energy flow into an external file? 00031 # Empty file name means "no". 00032 externalGridFile = cms.string(""), 00033 # 00034 # Configuration for the preliminary peak finder. 00035 # Its main purpose is to reject peaks produced by the FFT round-off noise. 00036 peakFinderMaxEta = cms.double(fftjet_standard_eta_range), 00037 peakFinderMaxMagnitude = cms.double(1.e-8), 00038 # 00039 # Attempt to correct the jet finding efficiency near detector eta limits? 00040 fixEfficiency = cms.bool(False), 00041 # 00042 # Minimum and maximum eta bin number for 1d convolver. Also used 00043 # to indicate detector limits for 2d convolvers in case "fixEfficiency" 00044 # is True. 00045 convolverMinBin = cms.uint32(0), 00046 convolverMaxBin = cms.uint32(fftjet_large_int), 00047 # 00048 # Insert complete event at the end when the clustering tree is constructed? 00049 insertCompleteEvent = cms.bool(fftjet_insert_complete_event), 00050 # 00051 # The scale variable for the complete event. Should be smaller than 00052 # any other pattern recognition scale but not too small so that the 00053 # tree can be nicely visualized in the ln(scale) space. 00054 completeEventScale = cms.double(fftjet_complete_event_scale), 00055 # 00056 # The grid data cutoff for the complete event 00057 completeEventDataCutoff = cms.double(0.0), 00058 # 00059 # Label for the produced objects 00060 outputLabel = cms.string("FFTJetPatternRecognition"), 00061 # 00062 # Label for the input collection of Candidate objects 00063 src = cms.InputTag("towerMaker"), 00064 # 00065 # Label for the jets which will be produced. The algorithm might do 00066 # different things depending on the type. In particular, vertex 00067 # correction may be done for "CaloJet" 00068 jetType = cms.string("CaloJet"), 00069 # 00070 # Perform vertex correction? 00071 doPVCorrection = cms.bool(False), 00072 # 00073 # Label for the input collection of vertex objects. Meaningful 00074 # only when "doPVCorrection" is True 00075 srcPVs = cms.InputTag("offlinePrimaryVertices"), 00076 # 00077 # Are we going to perform adaptive clustering? Setting the maximum 00078 # number of adaptive scales to 0 turns adaptive clustering off. 00079 maxAdaptiveScales = cms.uint32(0), 00080 # 00081 # Minimum distance between the scales (in the ln(scale) space) 00082 # for adaptive clustering. Meaningful only when the "maxAdaptiveScales" 00083 # parameter is not 0. 00084 minAdaptiveRatioLog = cms.double(0.01), 00085 # 00086 # Eta-dependent scale factors for the sequential 1d convolver. 00087 # If this vector is empty, 2d convolver will be used. 00088 etaDependentScaleFactors = cms.vdouble(), 00089 # 00090 # Eta-dependent magnitude factors for the data. These can be used 00091 # to correct for various things (including the eta-dependent scale 00092 # factors above). 00093 etaDependentMagnutideFactors = cms.vdouble(), 00094 # 00095 # Configuration for the energy discretization grid 00096 GridConfiguration = fftjet_grid_256_128, 00097 # 00098 # Configuration for the peak selector determining which peaks 00099 # are kept when the clustering tree is constructed 00100 PeakSelectorConfiguration = fftjet_peak_selector_allpass, 00101 # 00102 # The initial set of scales used by the pattern recognition stage. 00103 # This is also the final set unless clustering tree construction 00104 # is adaptive. 00105 InitialScales = fftjet_patreco_scales_50, 00106 # 00107 # Configuration for the clustering tree sparsification. 00108 # 00109 # Do not write the last tree level (the complete event) into the sparse 00110 # tree. This is done by setting the "maxLevelNumber" parameter to -1 00111 # in which case the counting for the max level is performed backwards 00112 # from the last level. Counting backwards is especially useful in the 00113 # adaptive clustering mode when the number of clustering tree levels 00114 # is not known in advance. 00115 SparsifierConfiguration = cms.PSet( 00116 maxLevelNumber = cms.int32(-1), 00117 filterMask = cms.uint32(fftjet_large_int), 00118 userScales = cms.vdouble() 00119 ), 00120 # 00121 # Clustering tree distance functor 00122 TreeDistanceCalculator = fftjet_fixed_bandwidth_distance, 00123 # 00124 # Anomalous calo tower definition (comes from JetProducers default) 00125 anomalous = fftjet_anomalous_tower_default 00126 )