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