00001 import math 00002 import FWCore.ParameterSet.Config as cms 00003 00004 from RecoJets.FFTJetProducers.fftjetcommon_cfi import * 00005 00006 # FFTJet jet producer configuration 00007 fftjet_jet_maker = cms.EDProducer( 00008 "FFTJetProducer", 00009 # 00010 # Label for the input clustering tree (must be sparse) 00011 treeLabel = cms.InputTag("fftjetpatreco", "FFTJetPatternRecognition"), 00012 # 00013 # Do we have the complete event at the lowest clustering tree scale? 00014 insertCompleteEvent = cms.bool(fftjet_insert_complete_event), 00015 completeEventScale = cms.double(fftjet_complete_event_scale), 00016 # 00017 # The initial set of scales used by the pattern recognition stage. 00018 # This is also the final set unless clustering tree construction 00019 # is adaptive. Needed here for reading back non-adaptive trees. 00020 InitialScales = fftjet_patreco_scales_50, 00021 # 00022 # Label for the produced objects 00023 outputLabel = cms.string("MadeByFFTJet"), 00024 # 00025 # Label for the input collection of Candidate objects 00026 src = cms.InputTag("towerMaker"), 00027 # 00028 # Type of the jets which will be produced (should be consistent with 00029 # the input collection). Valid types are "BasicJet", "GenJet", "CaloJet", 00030 # "PFJet", and "TrackJet". The algorithm might do different things 00031 # depending on the type. In particular, vertex correction may be done 00032 # for "CaloJet". 00033 jetType = cms.string("CaloJet"), 00034 # 00035 # Perform vertex correction? 00036 doPVCorrection = cms.bool(False), 00037 # 00038 # Label for the input collection of vertex objects. Meaningful 00039 # only when "doPVCorrection" is True 00040 srcPVs = cms.InputTag("offlinePrimaryVertices"), 00041 # 00042 # Anomalous calo tower definition (comes from RecoJets default) 00043 anomalous = fftjet_anomalous_tower_default, 00044 # 00045 # Magnitude correction factors (used only with gridded algorithms) 00046 etaDependentMagnutideFactors = cms.vdouble(), 00047 # 00048 # If a gridded algorithm is used, do we want to pick up the discretized 00049 # energy flow grid from the event record? 00050 reuseExistingGrid = cms.bool(False), 00051 # 00052 # If we do not reuse an existing grid, we need to provide 00053 # the grid configuration 00054 GridConfiguration = fftjet_grid_256_72, 00055 # 00056 # Maximum number of iterations allowed for the iterative jet 00057 # fitting. One-shot method is used if this number is 0 or 1. 00058 maxIterations = cms.uint32(1), 00059 # 00060 # Number of leading jets for which the iterative jet fitting must 00061 # converge before iterations are declared successful. This parameter 00062 # is not terribly meaningfule unless you know how many jets you expect 00063 # to get. 00064 nJetsRequiredToConverge = cms.uint32(10), 00065 # 00066 # The distance cutoff for the convergence. The distance between 00067 # the jets on two subsequent iterations must be less than this 00068 # cutoff in order to declare that the jet reconstruction has 00069 # converged. The distance function is defined by the "jetDistanceCalc" 00070 # parameter. Used only if "maxIterations" is larger than 1. 00071 convergenceDistance = cms.double(0.001), 00072 # 00073 # Are we going to produce the set of constituents for each jet? 00074 # If we are not doing this, the code will run faster. 00075 assignConstituents = cms.bool(True), 00076 # 00077 # Are we going to resum constituents to calculate jet 4-vectors? 00078 # This only makes sense when a gridded algorithm is used in the 00079 # crisp 4-vector recombination mode to determine jet areas (note 00080 # that "recombinationDataCutoff" parameter should be negative), 00081 # and resumming is used to emulate vector algorithm recombination. 00082 resumConstituents = cms.bool(False), 00083 # 00084 # Noise sigma parameter for the background functor (the interface 00085 # to noise modeling is likely to be changed in the future) 00086 noiseLevel = cms.double(0.15), 00087 # 00088 # Number of clusters requested. Works with both "locallyAdaptive" 00089 # and "globallyAdaptive" resolution schemes. 00090 nClustersRequested = cms.uint32(4), 00091 # 00092 # Maximum eta for gridded recombination algorithms. Grid cells 00093 # with eta values ou t 00094 gridScanMaxEta = cms.double(fftjet_standard_eta_range), 00095 # 00096 # Are we going to use gridded or vector algorithm? Vector algoritms 00097 # are slightly more precise (no binning uncertainty introduced). However, 00098 # jet-by-jet jet areas can be calculated only by gridded algorithms. 00099 useGriddedAlgorithm = cms.bool(False), 00100 # 00101 # The recombination algorithm used. For vector algorithms, possible 00102 # specifications are: 00103 # "Kernel" -- use 4-vector recombination scheme 00104 # "EtCentroid" -- use Et centroid (or "original Snowmass") scheme 00105 # "EtSum" -- set the jet direction to the precluster direction 00106 # For gridded algorithms additional specifications are available: 00107 # "FasterKernel", "FasterEtCentroid", and "FasterEtSum". See the 00108 # comments in the "FasterKernelRecombinationAlg.hh" header of the 00109 # FFTJet package for limitations of those faster algorithms. 00110 recombinationAlgorithm = cms.string("Kernel"), 00111 # 00112 # Are we going to utilize crisp or fuzzy clustering? 00113 isCrisp = cms.bool(True), 00114 # 00115 # A parameter which defines when we will attempt to split the energy 00116 # of a calorimeter cell if it is unlikely to belong to any jet and 00117 # to the noise. Works with Et-dependent membership functions only. 00118 # The default value of 0 means don't split, just assign this energy 00119 # deposition to the unclustered energy. 00120 unlikelyBgWeight = cms.double(0.0), 00121 # 00122 # The data cutoff for the gridded algorithms. Set this cutoff 00123 # to some negative number if you want to calculate jet areas. 00124 # Set it to 0 or some positive number if you want to improve 00125 # the code speed. 00126 recombinationDataCutoff = cms.double(0.0), 00127 # 00128 # The built-in precluster selection for subsequent jet reconstruction 00129 # can be performed according to the following schemes which, basically, 00130 # describe how the resolution of the Gaussian filter is chosen: 00131 # "fixed" -- use the same user-selected resolution across 00132 # the whole eta-phi space 00133 # "maximallyStable" -- pick up a single resolution according to 00134 # a jet configuration stability criterion 00135 # "globallyAdaptive" -- pick up a single resolution which gives 00136 # a desired number of jets 00137 # "locallyAdaptive" -- use different resolutions in different parts 00138 # of the eta-phi space in order to maximize 00139 # a certain optimization criterion 00140 resolution = cms.string("fixed"), 00141 # 00142 # Scale parameter for the "fixed" and "locallyAdaptive" resolution schemes 00143 fixedScale = cms.double(0.15), 00144 # 00145 # Minimum and maximum stable scales for the "maximallyStable" 00146 # resolution scheme. Value of 0 means there is no limit, and 00147 # all scales in the clustering tree are considered. 00148 minStableScale = cms.double(0.0), 00149 maxStableScale = cms.double(0.0), 00150 # 00151 # Stability exponent for the "maximallyStable" resolution scheme 00152 stabilityAlpha = cms.double(0.5), 00153 # 00154 # The precluster discriminator which works together with the 00155 # resolution selection scheme 00156 PeakSelectorConfiguration = cms.PSet( 00157 Class = cms.string("SimplePeakSelector"), 00158 magCut = cms.double(0.1), 00159 driftSpeedCut = cms.double(1.0e100), 00160 magSpeedCut = cms.double(-1.0e100), 00161 lifeTimeCut = cms.double(-1.0e100), 00162 NNDCut = cms.double(-1.0e100), 00163 etaCut = cms.double(1.0e100) 00164 ), 00165 # 00166 # The jet membership function 00167 jetMembershipFunction = fftjet_jet_membership_cone, 00168 # 00169 # The noise membership function 00170 bgMembershipFunction = fftjet_noise_membership_smallconst, 00171 # 00172 # The recombination scale function 00173 recoScaleCalcPeak = cms.PSet( 00174 Class = cms.string("ConstDouble"), 00175 value = cms.double(0.5) 00176 ), 00177 # 00178 # The function which calculates eta-to-phi bandwidth ratio 00179 # for the jet membership function. If the ratio is set to 0, 00180 # the "setScaleRatio" membership function method will never 00181 # be called, and the default ratio built into the membership 00182 # functionwill be used instead. 00183 recoScaleRatioCalcPeak = fftjet_peakfunctor_const_zero, 00184 # 00185 # The function which calculates the factor to be multiplied by 00186 # the membership function 00187 memberFactorCalcPeak = fftjet_peakfunctor_const_one 00188 # 00189 # The following parameters must be specified if "maxIterations" value 00190 # is larger than 1. They are used in the iterative mode only. 00191 # recoScaleCalcJet = , 00192 # recoScaleRatioCalcJet = , 00193 # memberFactorCalcJet = , 00194 # jetDistanceCalc = , 00195 )