CMS 3D CMS Logo

FFTJetParameterParser.cc
Go to the documentation of this file.
1 #include <cstdlib>
2 #include <cstring>
3 #include <string>
4 #include <fstream>
5 
7 
14 
17 
18 #include "fftjet/PeakSelectors.hh"
19 #include "fftjet/Kernel2dFactory.hh"
20 #include "fftjet/GaussianNoiseMembershipFcn.hh"
21 #include "fftjet/EquidistantSequence.hh"
22 #include "fftjet/PeakEtaPhiDistance.hh"
23 #include "fftjet/PeakEtaDependentDistance.hh"
24 #include "fftjet/JetProperty.hh"
25 #include "fftjet/InterpolatedMembershipFcn.hh"
26 #include "fftjet/CompositeKernel.hh"
27 #include "fftjet/InterpolatedKernel.hh"
28 #include "fftjet/InterpolatedKernel3d.hh"
29 #include "fftjet/MagneticSmearingKernel.hh"
30 
31 #define make_param(type, varname) const type& varname(ps.getParameter<type>(#varname))
32 
33 using namespace fftjetcms;
34 
35 typedef fftjet::RecombinedJet<VectorLike> RecoFFTJet;
36 
37 static bool parse_peak_member_function(const char* fname, fftjet::JetProperty<fftjet::Peak>::JetMemberFunction* f) {
38  if (strcmp(fname, "eta") == 0)
39  *f = &fftjet::Peak::eta;
40  else if (strcmp(fname, "phi") == 0)
41  *f = &fftjet::Peak::phi;
42  else if (strcmp(fname, "magnitude") == 0)
43  *f = &fftjet::Peak::magnitude;
44  else if (strcmp(fname, "driftSpeed") == 0)
45  *f = &fftjet::Peak::driftSpeed;
46  else if (strcmp(fname, "magSpeed") == 0)
47  *f = &fftjet::Peak::magSpeed;
48  else if (strcmp(fname, "lifetime") == 0)
49  *f = &fftjet::Peak::lifetime;
50  else if (strcmp(fname, "mergeTime") == 0)
51  *f = &fftjet::Peak::mergeTime;
52  else if (strcmp(fname, "splitTime") == 0)
53  *f = &fftjet::Peak::splitTime;
54  else if (strcmp(fname, "scale") == 0)
56  else if (strcmp(fname, "nearestNeighborDistance") == 0)
57  *f = &fftjet::Peak::nearestNeighborDistance;
58  else if (strcmp(fname, "membershipFactor") == 0)
59  *f = &fftjet::Peak::membershipFactor;
60  else if (strcmp(fname, "recoScale") == 0)
61  *f = &fftjet::Peak::recoScale;
62  else if (strcmp(fname, "recoScaleRatio") == 0)
63  *f = &fftjet::Peak::recoScaleRatio;
64  else if (strcmp(fname, "laplacian") == 0)
65  *f = &fftjet::Peak::laplacian;
66  else if (strcmp(fname, "hessianDeterminant") == 0)
67  *f = &fftjet::Peak::hessianDeterminant;
68  else if (strcmp(fname, "clusterRadius") == 0)
69  *f = &fftjet::Peak::clusterRadius;
70  else if (strcmp(fname, "clusterSeparation") == 0)
71  *f = &fftjet::Peak::clusterSeparation;
72  else {
73  return false;
74  }
75  return true;
76 }
77 
78 static bool parse_jet_member_function(const char* fname, fftjet::JetProperty<RecoFFTJet>::JetMemberFunction* f) {
79  if (strcmp(fname, "peakEta") == 0)
80  *f = &RecoFFTJet::peakEta;
81  else if (strcmp(fname, "peakPhi") == 0)
82  *f = &RecoFFTJet::peakPhi;
83  else if (strcmp(fname, "peakMagnitude") == 0)
84  *f = &RecoFFTJet::peakMagnitude;
85  else if (strcmp(fname, "magnitude") == 0)
86  *f = &RecoFFTJet::magnitude;
87  else if (strcmp(fname, "driftSpeed") == 0)
88  *f = &RecoFFTJet::driftSpeed;
89  else if (strcmp(fname, "magSpeed") == 0)
90  *f = &RecoFFTJet::magSpeed;
91  else if (strcmp(fname, "lifetime") == 0)
92  *f = &RecoFFTJet::lifetime;
93  else if (strcmp(fname, "mergeTime") == 0)
94  *f = &RecoFFTJet::mergeTime;
95  else if (strcmp(fname, "splitTime") == 0)
96  *f = &RecoFFTJet::splitTime;
97  else if (strcmp(fname, "scale") == 0)
98  *f = &RecoFFTJet::scale;
99  else if (strcmp(fname, "nearestNeighborDistance") == 0)
100  *f = &RecoFFTJet::nearestNeighborDistance;
101  else if (strcmp(fname, "membershipFactor") == 0)
102  *f = &RecoFFTJet::membershipFactor;
103  else if (strcmp(fname, "recoScale") == 0)
104  *f = &RecoFFTJet::recoScale;
105  else if (strcmp(fname, "recoScaleRatio") == 0)
106  *f = &RecoFFTJet::recoScaleRatio;
107  else if (strcmp(fname, "laplacian") == 0)
108  *f = &RecoFFTJet::laplacian;
109  else if (strcmp(fname, "hessianDeterminant") == 0)
110  *f = &RecoFFTJet::hessianDeterminant;
111  else if (strcmp(fname, "clusterRadius") == 0)
112  *f = &RecoFFTJet::clusterRadius;
113  else if (strcmp(fname, "clusterSeparation") == 0)
114  *f = &RecoFFTJet::clusterSeparation;
115  else {
116  return false;
117  }
118  return true;
119 }
120 
121 namespace fftjetcms {
122 
123  std::unique_ptr<fftjet::Grid2d<Real> > fftjet_Grid2d_parser(const edm::ParameterSet& ps) {
124  typedef std::unique_ptr<fftjet::Grid2d<Real> > return_type;
125  fftjet::Grid2d<Real>* g = nullptr;
126 
127  // Check if the grid should be read from file
128  if (ps.exists("file")) {
129  const std::string file = ps.getParameter<std::string>("file");
130  std::ifstream in(file.c_str(), std::ios_base::in | std::ios_base::binary);
131  if (!in.is_open())
132  throw cms::Exception("FFTJetBadConfig") << "Failed to open file " << file << std::endl;
134  if (g == nullptr)
135  throw cms::Exception("FFTJetBadConfig") << "Failed to read file " << file << std::endl;
136  } else {
137  const unsigned nEtaBins = ps.getParameter<unsigned>("nEtaBins");
138  const Real etaMin = ps.getParameter<Real>("etaMin");
139  const Real etaMax = ps.getParameter<Real>("etaMax");
140  const unsigned nPhiBins = ps.getParameter<unsigned>("nPhiBins");
141  const Real phiBin0Edge = ps.getParameter<Real>("phiBin0Edge");
142  const std::string& title = ps.getUntrackedParameter<std::string>("title", "");
143 
144  if (nEtaBins == 0 || nPhiBins == 0 || etaMin >= etaMax)
145  return return_type(nullptr);
146 
147  g = new fftjet::Grid2d<Real>(nEtaBins, etaMin, etaMax, nPhiBins, phiBin0Edge, title.c_str());
148 
149  // Check if the grid data is provided
150  if (ps.exists("data")) {
151  const std::vector<Real>& data = ps.getParameter<std::vector<Real> >("data");
152  if (data.size() == nEtaBins * nPhiBins)
153  g->blockSet(&data[0], nEtaBins, nPhiBins);
154  else {
155  delete g;
156  g = nullptr;
157  }
158  }
159  }
160 
161  return return_type(g);
162  }
163 
164  std::unique_ptr<fftjet::Functor1<bool, fftjet::Peak> > fftjet_PeakSelector_parser(const edm::ParameterSet& ps) {
165  typedef std::unique_ptr<fftjet::Functor1<bool, fftjet::Peak> > return_type;
166 
167  const std::string peakselector_type = ps.getParameter<std::string>("Class");
168 
169  if (!peakselector_type.compare("AllPeaksPass")) {
170  return return_type(new fftjet::AllPeaksPass());
171  }
172 
173  if (!peakselector_type.compare("EtaAndPtDependentPeakSelector")) {
174  const std::string file = ps.getParameter<std::string>("file");
175  std::ifstream in(file.c_str(), std::ios_base::in | std::ios_base::binary);
176  if (!in.is_open())
177  throw cms::Exception("FFTJetBadConfig") << "Failed to open file " << file << std::endl;
179  if (!ptr->isValid())
180  throw cms::Exception("FFTJetBadConfig") << "Failed to read file " << file << std::endl;
181  return return_type(ptr);
182  }
183 
184  if (!peakselector_type.compare("EtaAndPtLookupPeakSelector")) {
185  make_param(unsigned, nx);
186  make_param(unsigned, ny);
187  make_param(double, xmin);
188  make_param(double, xmax);
189  make_param(double, ymin);
190  make_param(double, ymax);
191  make_param(std::vector<double>, data);
192 
193  if (xmin >= xmax || ymin >= ymax || !nx || !ny || data.size() != nx * ny)
194  throw cms::Exception("FFTJetBadConfig") << "Failed to configure EtaAndPtLookupPeakSelector" << std::endl;
195 
196  return return_type(new EtaAndPtLookupPeakSelector(nx, xmin, xmax, ny, ymin, ymax, data));
197  }
198 
199  if (!peakselector_type.compare("SimplePeakSelector")) {
200  const double magCut = ps.getParameter<double>("magCut");
201  const double driftSpeedCut = ps.getParameter<double>("driftSpeedCut");
202  const double magSpeedCut = ps.getParameter<double>("magSpeedCut");
203  const double lifeTimeCut = ps.getParameter<double>("lifeTimeCut");
204  const double NNDCut = ps.getParameter<double>("NNDCut");
205  const double etaCut = ps.getParameter<double>("etaCut");
206  const double splitTimeCut = ps.getParameter<double>("splitTimeCut");
207  const double mergeTimeCut = ps.getParameter<double>("mergeTimeCut");
208 
209  return return_type(new fftjet::SimplePeakSelector(
211  }
212 
213  if (!peakselector_type.compare("ScalePowerPeakSelector")) {
214  const double a = ps.getParameter<double>("a");
215  const double p = ps.getParameter<double>("p");
216  const double b = ps.getParameter<double>("b");
217  const double etaCut = ps.getParameter<double>("etaCut");
218 
219  return return_type(new fftjet::ScalePowerPeakSelector(a, p, b, etaCut));
220  }
221 
222  return return_type(nullptr);
223  }
224 
225  std::unique_ptr<fftjet::ScaleSpaceKernel> fftjet_MembershipFunction_parser(const edm::ParameterSet& ps) {
226  typedef std::unique_ptr<fftjet::ScaleSpaceKernel> return_type;
227 
228  const std::string MembershipFunction_type = ps.getParameter<std::string>("Class");
229 
230  // Parse special cases first
231  if (!MembershipFunction_type.compare("InterpolatedMembershipFcn")) {
232  // This is a kernel defined by a 4d (sparsified) lookup table.
233  // Here, it is simply loaded from a file using a built-in
234  // method from fftjet. Note that the table representation
235  // must be native binary (this will not work on platforms with
236  // different endianity of floating point standard).
237  const std::string file = ps.getParameter<std::string>("file");
238  std::ifstream in(file.c_str(), std::ios_base::in | std::ios_base::binary);
239  if (!in.is_open())
240  throw cms::Exception("FFTJetBadConfig") << "Failed to open file " << file << std::endl;
242  }
243 
244  if (!MembershipFunction_type.compare("Composite")) {
245  throw cms::Exception("FFTJetBadConfig")
246  << "Parsing of CompositeKernel objects is not implemented yet" << std::endl;
247  }
248 
249  if (!MembershipFunction_type.compare("MagneticSmearing")) {
250  // This kernel represents smearing of a jet in phi
251  // in a magnetic field. The meaning of the parameters
252  // is explained in the comments in the MagneticSmearingKernel.hh
253  // header file of the fftjet package.
254  make_param(std::vector<double>, fragmentationData);
255  make_param(double, numeratorConst);
256  make_param(double, charge1Fraction);
257  make_param(double, charge2Fraction);
258  make_param(unsigned, samplesPerBin);
259 
260  if (fragmentationData.empty())
261  throw cms::Exception("FFTJetBadConfig") << "Fragmentation function data not defined for "
262  "MagneticSmearingKernel"
263  << std::endl;
264  if (samplesPerBin < 1U)
265  throw cms::Exception("FFTJetBadConfig") << "Bad number of samples per bin in "
266  "MagneticSmearingKernel"
267  << std::endl;
268 
269  fftjet::LinearInterpolator1d* fragmentationFunction =
270  new fftjet::LinearInterpolator1d(&fragmentationData[0], fragmentationData.size(), 0.0, 1.0);
271 
272  return return_type(new fftjet::MagneticSmearingKernel<fftjet::LinearInterpolator1d>(
273  fragmentationFunction, numeratorConst, charge1Fraction, charge2Fraction, samplesPerBin, true));
274  }
275 
276  if (!MembershipFunction_type.compare("Interpolated")) {
277  // This is a kernel defined by a histogram-like 2d lookup table
278  make_param(double, sx);
279  make_param(double, sy);
280  make_param(int, scalePower);
281  make_param(unsigned, nxbins);
282  make_param(double, xmin);
283  make_param(double, xmax);
284  make_param(unsigned, nybins);
285  make_param(double, ymin);
286  make_param(double, ymax);
287  make_param(std::vector<double>, data);
288 
289  if (data.size() != nxbins * nybins)
290  throw cms::Exception("FFTJetBadConfig") << "Bad number of data points for Interpolated kernel" << std::endl;
291 
292  return return_type(
293  new fftjet::InterpolatedKernel(sx, sy, scalePower, &data[0], nxbins, xmin, xmax, nybins, ymin, ymax));
294  }
295 
296  if (!MembershipFunction_type.compare("Interpolated3d")) {
297  // This is a kernel defined by a histogram-like 3d lookup table
298  make_param(std::vector<double>, data);
299  make_param(std::vector<double>, scales);
300  make_param(bool, useLogSpaceForScale);
301  make_param(unsigned, nxbins);
302  make_param(double, xmin);
303  make_param(double, xmax);
304  make_param(unsigned, nybins);
305  make_param(double, ymin);
306  make_param(double, ymax);
307 
308  if (data.size() != nxbins * nybins * scales.size())
309  throw cms::Exception("FFTJetBadConfig") << "Bad number of data points for Interpolated3d kernel" << std::endl;
310 
311  return return_type(new fftjet::InterpolatedKernel3d(
312  &data[0], scales, useLogSpaceForScale, nxbins, xmin, xmax, nybins, ymin, ymax));
313  }
314 
315  // This is not a special kernel. Try one of the classes
316  // in the kernel factory provided by FFTJet.
317  fftjet::DefaultKernel2dFactory factory;
318  if (factory[MembershipFunction_type] == nullptr) {
319  return return_type(nullptr);
320  }
321 
322  make_param(double, sx);
323  make_param(double, sy);
324  make_param(int, scalePower);
325  make_param(std::vector<double>, kernelParameters);
326 
327  const int n_expected = factory[MembershipFunction_type]->nParameters();
328  if (n_expected >= 0)
329  if (static_cast<unsigned>(n_expected) != kernelParameters.size())
330  throw cms::Exception("FFTJetBadConfig") << "Bad number of kernel parameters" << std::endl;
331 
332  return std::unique_ptr<fftjet::ScaleSpaceKernel>(
333  factory[MembershipFunction_type]->create(sx, sy, scalePower, kernelParameters));
334  }
335 
336  std::unique_ptr<AbsBgFunctor> fftjet_BgFunctor_parser(const edm::ParameterSet& ps) {
337  const std::string bg_Membership_type = ps.getParameter<std::string>("Class");
338 
339  if (!bg_Membership_type.compare("GaussianNoiseMembershipFcn")) {
340  const double minWeight = ps.getParameter<double>("minWeight");
341  const double prior = ps.getParameter<double>("prior");
342  return std::unique_ptr<AbsBgFunctor>(new fftjet::GaussianNoiseMembershipFcn(minWeight, prior));
343  }
344 
345  return std::unique_ptr<AbsBgFunctor>(nullptr);
346  }
347 
348  std::unique_ptr<std::vector<double> > fftjet_ScaleSet_parser(const edm::ParameterSet& ps) {
349  typedef std::unique_ptr<std::vector<double> > return_type;
350 
351  const std::string className = ps.getParameter<std::string>("Class");
352 
353  if (!className.compare("EquidistantInLinearSpace") || !className.compare("EquidistantInLogSpace")) {
354  const double minScale = ps.getParameter<double>("minScale");
355  const double maxScale = ps.getParameter<double>("maxScale");
356  const unsigned nScales = ps.getParameter<unsigned>("nScales");
357 
358  if (minScale <= 0.0 || maxScale <= 0.0 || nScales == 0 || minScale == maxScale)
359  return return_type(nullptr);
360 
361  // Can't return pointers to EquidistantInLinearSpace
362  // or EquidistantInLogSpace directly because std::vector
363  // destructor is not virtual.
364  if (!className.compare("EquidistantInLinearSpace"))
365  return return_type(new std::vector<double>(fftjet::EquidistantInLinearSpace(minScale, maxScale, nScales)));
366  else
367  return return_type(new std::vector<double>(fftjet::EquidistantInLogSpace(minScale, maxScale, nScales)));
368  }
369 
370  if (!className.compare("UserSet")) {
371  return_type scales(new std::vector<double>(ps.getParameter<std::vector<double> >("scales")));
372 
373  // Verify that all scales are positive and unique
374  const unsigned nscales = scales->size();
375  for (unsigned i = 0; i < nscales; ++i)
376  if ((*scales)[i] <= 0.0)
377  return return_type(nullptr);
378 
379  for (unsigned i = 1; i < nscales; ++i)
380  for (unsigned j = 0; j < i; ++j)
381  if ((*scales)[i] == (*scales)[j])
382  return return_type(nullptr);
383 
384  return scales;
385  }
386 
387  return return_type(nullptr);
388  }
389 
390  std::unique_ptr<fftjet::ClusteringTreeSparsifier<fftjet::Peak, long> > fftjet_ClusteringTreeSparsifier_parser(
391  const edm::ParameterSet& ps) {
392  typedef std::unique_ptr<fftjet::ClusteringTreeSparsifier<fftjet::Peak, long> > return_type;
393 
394  const int maxLevelNumber = ps.getParameter<int>("maxLevelNumber");
395  const unsigned filterMask = ps.getParameter<unsigned>("filterMask");
396  const std::vector<double> userScalesV = ps.getParameter<std::vector<double> >("userScales");
397  const unsigned nUserScales = userScalesV.size();
398  const double* userScales = nUserScales ? &userScalesV[0] : nullptr;
399 
400  return return_type(
401  new fftjet::ClusteringTreeSparsifier<fftjet::Peak, long>(maxLevelNumber, filterMask, userScales, nUserScales));
402  }
403 
404  std::unique_ptr<fftjet::AbsDistanceCalculator<fftjet::Peak> > fftjet_DistanceCalculator_parser(
405  const edm::ParameterSet& ps) {
406  typedef std::unique_ptr<fftjet::AbsDistanceCalculator<fftjet::Peak> > return_type;
407 
408  const std::string calc_type = ps.getParameter<std::string>("Class");
409 
410  if (!calc_type.compare("PeakEtaPhiDistance")) {
411  const double etaToPhiBandwidthRatio = ps.getParameter<double>("etaToPhiBandwidthRatio");
412  return return_type(new fftjet::PeakEtaPhiDistance(etaToPhiBandwidthRatio));
413  }
414 
415  if (!calc_type.compare("PeakEtaDependentDistance")) {
416  std::unique_ptr<fftjet::LinearInterpolator1d> interp =
418  const fftjet::LinearInterpolator1d* ip = interp.get();
419  if (ip == nullptr)
420  return return_type(nullptr);
421 
422  // Check that the interpolator is always positive
423  const unsigned n = ip->nx();
424  const double* data = ip->getData();
425  for (unsigned i = 0; i < n; ++i)
426  if (data[i] <= 0.0)
427  return return_type(nullptr);
428  if (ip->fLow() <= 0.0 || ip->fHigh() <= 0.0)
429  return return_type(nullptr);
430 
431  return return_type(new fftjet::PeakEtaDependentDistance(*ip));
432  }
433 
434  return return_type(nullptr);
435  }
436 
437  std::unique_ptr<fftjetcms::LinInterpolatedTable1D> fftjet_LinInterpolatedTable1D_parser(const edm::ParameterSet& ps) {
438  const double xmin = ps.getParameter<double>("xmin");
439  const double xmax = ps.getParameter<double>("xmax");
440  const bool leftExtrapolationLinear = ps.getParameter<bool>("leftExtrapolationLinear");
441  const bool rightExtrapolationLinear = ps.getParameter<bool>("rightExtrapolationLinear");
442  const std::vector<double> data(ps.getParameter<std::vector<double> >("data"));
443  if (data.empty())
444  return std::unique_ptr<fftjetcms::LinInterpolatedTable1D>(nullptr);
445  else
446  return std::unique_ptr<fftjetcms::LinInterpolatedTable1D>(new fftjetcms::LinInterpolatedTable1D(
448  }
449 
450  std::unique_ptr<fftjet::LinearInterpolator1d> fftjet_LinearInterpolator1d_parser(const edm::ParameterSet& ps) {
451  const double xmin = ps.getParameter<double>("xmin");
452  const double xmax = ps.getParameter<double>("xmax");
453  const double flow = ps.getParameter<double>("flow");
454  const double fhigh = ps.getParameter<double>("fhigh");
455  const std::vector<double> data(ps.getParameter<std::vector<double> >("data"));
456  if (data.empty())
457  return std::unique_ptr<fftjet::LinearInterpolator1d>(nullptr);
458  else
459  return std::unique_ptr<fftjet::LinearInterpolator1d>(
460  new fftjet::LinearInterpolator1d(&data[0], data.size(), xmin, xmax, flow, fhigh));
461  }
462 
463  std::unique_ptr<fftjet::LinearInterpolator2d> fftjet_LinearInterpolator2d_parser(const edm::ParameterSet& ps) {
464  const std::string file = ps.getParameter<std::string>("file");
465  std::ifstream in(file.c_str(), std::ios_base::in | std::ios_base::binary);
466  if (!in.is_open())
467  throw cms::Exception("FFTJetBadConfig") << "Failed to open file " << file << std::endl;
468  fftjet::LinearInterpolator2d* ip = fftjet::LinearInterpolator2d::read(in);
469  if (!ip)
470  throw cms::Exception("FFTJetBadConfig") << "Failed to read file " << file << std::endl;
471  return std::unique_ptr<fftjet::LinearInterpolator2d>(ip);
472  }
473 
474  std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > fftjet_PeakFunctor_parser(const edm::ParameterSet& ps) {
475  typedef fftjet::Functor1<double, fftjet::Peak> ptr_type;
476  typedef std::unique_ptr<ptr_type> return_type;
477 
478  const std::string property_type = ps.getParameter<std::string>("Class");
479 
480  if (!property_type.compare("Log")) {
481  return_type wrapped = fftjet_PeakFunctor_parser(ps.getParameter<edm::ParameterSet>("function"));
482  ptr_type* wr = wrapped.get();
483  if (wr) {
484  return_type result = return_type(new fftjet::LogProperty<fftjet::Peak>(wr, true));
485  wrapped.release();
486  return result;
487  }
488  }
489 
490  if (!property_type.compare("PeakProperty")) {
491  const std::string member = ps.getParameter<std::string>("member");
492  fftjet::JetProperty<fftjet::Peak>::JetMemberFunction fcn;
493  if (parse_peak_member_function(member.c_str(), &fcn))
494  return return_type(new fftjet::JetProperty<fftjet::Peak>(fcn));
495  else
496  return return_type(nullptr);
497  }
498 
499  if (!property_type.compare("MinusScaledLaplacian")) {
500  const double sx = ps.getParameter<double>("sx");
501  const double sy = ps.getParameter<double>("sx");
502  return return_type(new fftjet::MinusScaledLaplacian<fftjet::Peak>(sx, sy));
503  }
504 
505  if (!property_type.compare("ScaledHessianDet")) {
506  return return_type(new fftjet::ScaledHessianDet<fftjet::Peak>());
507  }
508 
509  if (!property_type.compare("ScaledMagnitude")) {
510  return return_type(new fftjet::ScaledMagnitude<fftjet::Peak>());
511  }
512 
513  if (!property_type.compare("ScaledMagnitude2")) {
514  return return_type(new fftjet::ScaledMagnitude2<fftjet::Peak>());
515  }
516 
517  if (!property_type.compare("ConstDouble")) {
518  const double value = ps.getParameter<double>("value");
519  return return_type(new ConstDouble<fftjet::Peak>(value));
520  }
521 
522  if (!property_type.compare("ProportionalToScale")) {
523  const double value = ps.getParameter<double>("value");
524  return return_type(new ProportionalToScale<fftjet::Peak>(value));
525  }
526 
527  if (!property_type.compare("MultiplyByConst")) {
528  const double factor = ps.getParameter<double>("factor");
529  return_type function = fftjet_PeakFunctor_parser(ps.getParameter<edm::ParameterSet>("function"));
530  ptr_type* ptr = function.get();
531  if (ptr) {
532  return_type result = return_type(new MultiplyByConst<fftjet::Peak>(factor, ptr, true));
533  function.release();
534  return result;
535  }
536  }
537 
538  if (!property_type.compare("CompositeFunctor")) {
539  std::unique_ptr<fftjet::Functor1<double, double> > fcn1 =
541  return_type fcn2 = fftjet_PeakFunctor_parser(ps.getParameter<edm::ParameterSet>("function2"));
542  fftjet::Functor1<double, double>* f1 = fcn1.get();
543  ptr_type* f2 = fcn2.get();
544  if (f1 && f2) {
545  return_type result = return_type(new CompositeFunctor<fftjet::Peak>(f1, f2, true));
546  fcn1.release();
547  fcn2.release();
548  return result;
549  }
550  }
551 
552  if (!property_type.compare("ProductFunctor")) {
553  return_type fcn1 = fftjet_PeakFunctor_parser(ps.getParameter<edm::ParameterSet>("function1"));
554  return_type fcn2 = fftjet_PeakFunctor_parser(ps.getParameter<edm::ParameterSet>("function2"));
555  ptr_type* f1 = fcn1.get();
556  ptr_type* f2 = fcn2.get();
557  if (f1 && f2) {
558  return_type result = return_type(new ProductFunctor<fftjet::Peak>(f1, f2, true));
559  fcn1.release();
560  fcn2.release();
561  return result;
562  }
563  }
564 
565  if (!property_type.compare("MagnitudeDependent")) {
566  std::unique_ptr<fftjet::Functor1<double, double> > fcn1 =
568  fftjet::Functor1<double, double>* f1 = fcn1.get();
569  if (f1) {
570  return_type result = return_type(new MagnitudeDependent<fftjet::Peak>(f1, true));
571  fcn1.release();
572  return result;
573  }
574  }
575 
576  if (!property_type.compare("PeakEtaDependent")) {
577  std::unique_ptr<fftjet::Functor1<double, double> > fcn1 =
579  fftjet::Functor1<double, double>* f1 = fcn1.get();
580  if (f1) {
581  return_type result = return_type(new PeakEtaDependent(f1, true));
582  fcn1.release();
583  return result;
584  }
585  }
586 
587  return return_type(nullptr);
588  }
589 
590  std::unique_ptr<fftjet::Functor1<double, fftjet::RecombinedJet<VectorLike> > > fftjet_JetFunctor_parser(
591  const edm::ParameterSet& ps) {
592  typedef fftjet::Functor1<double, RecoFFTJet> ptr_type;
593  typedef std::unique_ptr<ptr_type> return_type;
594 
595  const std::string property_type = ps.getParameter<std::string>("Class");
596 
597  if (!property_type.compare("Log")) {
598  return_type wrapped = fftjet_JetFunctor_parser(ps.getParameter<edm::ParameterSet>("function"));
599  fftjet::Functor1<double, RecoFFTJet>* wr = wrapped.get();
600  if (wr) {
601  return_type result = return_type(new fftjet::LogProperty<RecoFFTJet>(wr, true));
602  wrapped.release();
603  return result;
604  }
605  }
606 
607  if (!property_type.compare("JetEtaDependent")) {
608  std::unique_ptr<fftjet::Functor1<double, double> > fcn1 =
610  fftjet::Functor1<double, double>* f1 = fcn1.get();
611  if (f1) {
612  return_type result = return_type(new JetEtaDependent(f1, true));
613  fcn1.release();
614  return result;
615  }
616  }
617 
618  if (!property_type.compare("JetProperty")) {
619  const std::string member = ps.getParameter<std::string>("member");
620  fftjet::JetProperty<RecoFFTJet>::JetMemberFunction fcn;
621  if (parse_jet_member_function(member.c_str(), &fcn))
622  return return_type(new fftjet::JetProperty<RecoFFTJet>(fcn));
623  else
624  return return_type(nullptr);
625  }
626 
627  if (!property_type.compare("ConstDouble")) {
628  const double value = ps.getParameter<double>("value");
629  return return_type(new ConstDouble<RecoFFTJet>(value));
630  }
631 
632  if (!property_type.compare("ProportionalToScale")) {
633  const double value = ps.getParameter<double>("value");
634  return return_type(new ProportionalToScale<RecoFFTJet>(value));
635  }
636 
637  if (!property_type.compare("MultiplyByConst")) {
638  const double factor = ps.getParameter<double>("factor");
639  return_type function = fftjet_JetFunctor_parser(ps.getParameter<edm::ParameterSet>("function"));
640  ptr_type* ptr = function.get();
641  if (ptr) {
642  return_type result = return_type(new MultiplyByConst<RecoFFTJet>(factor, ptr, true));
643  function.release();
644  return result;
645  }
646  }
647 
648  if (!property_type.compare("CompositeFunctor")) {
649  std::unique_ptr<fftjet::Functor1<double, double> > fcn1 =
651  return_type fcn2 = fftjet_JetFunctor_parser(ps.getParameter<edm::ParameterSet>("function2"));
652  fftjet::Functor1<double, double>* f1 = fcn1.get();
653  ptr_type* f2 = fcn2.get();
654  if (f1 && f2) {
655  return_type result = return_type(new CompositeFunctor<RecoFFTJet>(f1, f2, true));
656  fcn1.release();
657  fcn2.release();
658  return result;
659  }
660  }
661 
662  if (!property_type.compare("ProductFunctor")) {
663  return_type fcn1 = fftjet_JetFunctor_parser(ps.getParameter<edm::ParameterSet>("function1"));
664  return_type fcn2 = fftjet_JetFunctor_parser(ps.getParameter<edm::ParameterSet>("function2"));
665  ptr_type* f1 = fcn1.get();
666  ptr_type* f2 = fcn2.get();
667  if (f1 && f2) {
668  return_type result = return_type(new ProductFunctor<RecoFFTJet>(f1, f2, true));
669  fcn1.release();
670  fcn2.release();
671  return result;
672  }
673  }
674 
675  if (!property_type.compare("MagnitudeDependent")) {
676  std::unique_ptr<fftjet::Functor1<double, double> > fcn1 =
678  fftjet::Functor1<double, double>* f1 = fcn1.get();
679  if (f1) {
680  return_type result = return_type(new MagnitudeDependent<RecoFFTJet>(f1, true));
681  fcn1.release();
682  return result;
683  }
684  }
685 
686  return return_type(nullptr);
687  }
688 
689  std::unique_ptr<fftjet::Functor2<double, fftjet::RecombinedJet<VectorLike>, fftjet::RecombinedJet<VectorLike> > >
691  typedef std::unique_ptr<
692  fftjet::Functor2<double, fftjet::RecombinedJet<VectorLike>, fftjet::RecombinedJet<VectorLike> > >
693  return_type;
694 
695  const std::string distance_type = ps.getParameter<std::string>("Class");
696 
697  if (!distance_type.compare("JetConvergenceDistance")) {
700 
701  if (etaToPhiBandwidthRatio > 0.0 && relativePtBandwidth > 0.0)
703  }
704 
705  return return_type(nullptr);
706  }
707 
708  std::unique_ptr<fftjet::Functor1<double, double> > fftjet_Function_parser(const edm::ParameterSet& ps) {
709  typedef std::unique_ptr<fftjet::Functor1<double, double> > return_type;
710 
711  const std::string fcn_type = ps.getParameter<std::string>("Class");
712 
713  if (!fcn_type.compare("LinearInterpolator1d")) {
714  std::unique_ptr<fftjet::LinearInterpolator1d> p = fftjet_LinearInterpolator1d_parser(ps);
715  fftjet::LinearInterpolator1d* ptr = p.get();
716  if (ptr) {
717  p.release();
718  return return_type(ptr);
719  }
720  }
721 
722  if (!fcn_type.compare("LinInterpolatedTable1D")) {
723  std::unique_ptr<fftjetcms::LinInterpolatedTable1D> p = fftjet_LinInterpolatedTable1D_parser(ps);
725  if (ptr) {
726  p.release();
727  return return_type(ptr);
728  }
729  }
730 
731  if (!fcn_type.compare("Polynomial")) {
732  std::vector<double> coeffs;
733  for (unsigned i = 0;; ++i) {
734  std::ostringstream s;
735  s << 'c' << i;
736  if (ps.exists(s.str()))
737  coeffs.push_back(ps.getParameter<double>(s.str()));
738  else
739  break;
740  }
741  return return_type(new Polynomial(coeffs));
742  }
743 
744  return return_type(nullptr);
745  }
746 
747  std::unique_ptr<AbsPileupCalculator> fftjet_PileupCalculator_parser(const edm::ParameterSet& ps) {
748  typedef std::unique_ptr<AbsPileupCalculator> return_type;
749 
750  const std::string fcn_type = ps.getParameter<std::string>("Class");
751 
752  if (!fcn_type.compare("EtaDependentPileup")) {
753  std::unique_ptr<fftjet::LinearInterpolator2d> interp =
755  const double inputRhoFactor = ps.getParameter<double>("inputRhoFactor");
756  const double outputRhoFactor = ps.getParameter<double>("outputRhoFactor");
757 
758  const fftjet::LinearInterpolator2d* ip = interp.get();
759  if (ip)
760  return return_type(new EtaDependentPileup(*ip, inputRhoFactor, outputRhoFactor));
761  else
762  return return_type(nullptr);
763  }
764 
765  if (!fcn_type.compare("PileupGrid2d")) {
766  std::unique_ptr<fftjet::Grid2d<Real> > grid = fftjet_Grid2d_parser(ps.getParameter<edm::ParameterSet>("Grid2d"));
767  const double rhoFactor = ps.getParameter<double>("rhoFactor");
768 
769  const fftjet::Grid2d<Real>* g = grid.get();
770  if (g)
771  return return_type(new PileupGrid2d(*g, rhoFactor));
772  else
773  return return_type(nullptr);
774  }
775 
776  return return_type(nullptr);
777  }
778 
779  std::unique_ptr<fftjet::JetMagnitudeMapper2d<fftjet::Peak> > fftjet_PeakMagnitudeMapper2d_parser(
780  const edm::ParameterSet& ps) {
781  std::unique_ptr<fftjet::LinearInterpolator2d> responseCurve =
783 
784  const double minPredictor = ps.getParameter<double>("minPredictor");
785  const double maxPredictor = ps.getParameter<double>("maxPredictor");
786  const unsigned nPredPoints = ps.getParameter<unsigned>("nPredPoints");
787  const double maxMagnitude = ps.getParameter<double>("maxMagnitude");
788  const unsigned nMagPoints = ps.getParameter<unsigned>("nMagPoints");
789 
790  return (std::unique_ptr<fftjet::JetMagnitudeMapper2d<fftjet::Peak> >(
791  new fftjet::JetMagnitudeMapper2d<fftjet::Peak>(*responseCurve,
793  true,
794  minPredictor,
795  maxPredictor,
796  nPredPoints,
797  maxMagnitude,
798  nMagPoints)));
799  }
800 
801  std::unique_ptr<fftjet::JetMagnitudeMapper2d<fftjet::RecombinedJet<VectorLike> > > fftjet_JetMagnitudeMapper2d_parser(
802  const edm::ParameterSet& ps) {
803  std::unique_ptr<fftjet::LinearInterpolator2d> responseCurve =
805 
806  const double minPredictor = ps.getParameter<double>("minPredictor");
807  const double maxPredictor = ps.getParameter<double>("maxPredictor");
808  const unsigned nPredPoints = ps.getParameter<unsigned>("nPredPoints");
809  const double maxMagnitude = ps.getParameter<double>("maxMagnitude");
810  const unsigned nMagPoints = ps.getParameter<unsigned>("nMagPoints");
811 
812  return (std::unique_ptr<fftjet::JetMagnitudeMapper2d<RecoFFTJet> >(
813  new fftjet::JetMagnitudeMapper2d<RecoFFTJet>(*responseCurve,
815  true,
816  minPredictor,
817  maxPredictor,
818  nPredPoints,
819  maxMagnitude,
820  nMagPoints)));
821  }
822 
823 } // namespace fftjetcms
fftjetcms::fftjet_PeakFunctor_parser
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > fftjet_PeakFunctor_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:474
fftjetcms::fftjet_LinearInterpolator2d_parser
std::unique_ptr< fftjet::LinearInterpolator2d > fftjet_LinearInterpolator2d_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:463
fftjetcms::fftjet_MembershipFunction_parser
std::unique_ptr< fftjet::ScaleSpaceKernel > fftjet_MembershipFunction_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:225
fftjetcommon_cfi.relativePtBandwidth
relativePtBandwidth
Definition: fftjetcommon_cfi.py:223
ALCARECOTkAlBeamHalo_cff.etaMin
etaMin
GeV.
Definition: ALCARECOTkAlBeamHalo_cff.py:32
mps_fire.i
i
Definition: mps_fire.py:355
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
fftjetcms
Definition: AbsPileupCalculator.h:15
fftjetcommon_cfi.nScales
nScales
Definition: fftjetcommon_cfi.py:111
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
fftjetcms::ConstDouble
Definition: ScaleCalculators.h:17
fftjetcommon_cfi.maxScale
maxScale
Definition: fftjetcommon_cfi.py:110
fftjetcms::fftjet_ScaleSet_parser
std::unique_ptr< std::vector< double > > fftjet_ScaleSet_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:348
fftjetpatrecoproducer_cfi.maxLevelNumber
maxLevelNumber
Definition: fftjetpatrecoproducer_cfi.py:116
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
fftjetcms::fftjet_LinearInterpolator1d_parser
std::unique_ptr< fftjet::LinearInterpolator1d > fftjet_LinearInterpolator1d_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:450
fftjetproducer_cfi.lifeTimeCut
lifeTimeCut
Definition: fftjetproducer_cfi.py:166
fftjetcommon_cfi.kernelParameters
kernelParameters
Definition: fftjetcommon_cfi.py:205
fftjetcms::PeakAbsEta
Definition: JetAbsEta.h:10
getRunAppsInfo.grid
grid
Definition: getRunAppsInfo.py:92
fftjetcms::fftjet_JetDistance_parser
std::unique_ptr< fftjet::Functor2< double, fftjet::RecombinedJet< VectorLike >, fftjet::RecombinedJet< VectorLike > > > fftjet_JetDistance_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:690
EtaDependentPileup.h
fftjetcms::fftjet_JetMagnitudeMapper2d_parser
std::unique_ptr< fftjet::JetMagnitudeMapper2d< fftjet::RecombinedJet< VectorLike > > > fftjet_JetMagnitudeMapper2d_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:801
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
fftjetcms::fftjet_Function_parser
std::unique_ptr< fftjet::Functor1< double, double > > fftjet_Function_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:708
fftjetcms::MultiplyByConst
Definition: ScaleCalculators.h:41
fcn
void fcn(int &, double *, double &, double *, int)
Definition: LASBarrelAlgorithm.cc:388
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition: beamerCreator.py:44
fftjetcommon_cfi.minWeight
minWeight
Definition: fftjetcommon_cfi.py:213
RecoFFTJet
fftjet::RecombinedJet< VectorLike > RecoFFTJet
Definition: FFTJetParameterParser.cc:35
PileupGrid2d.h
fftjetcms::fftjet_BgFunctor_parser
std::unique_ptr< AbsBgFunctor > fftjet_BgFunctor_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:336
alignCSCRings.s
s
Definition: alignCSCRings.py:92
fftjetproducer_cfi.driftSpeedCut
driftSpeedCut
Definition: fftjetproducer_cfi.py:164
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
JetConvergenceDistance.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
fftjetcms::EtaAndPtDependentPeakSelector::isValid
bool isValid() const
Definition: EtaAndPtDependentPeakSelector.h:23
fftjetcms::PileupGrid2d
Definition: PileupGrid2d.h:19
fftjetcms::JetEtaDependent
Definition: ScaleCalculators.h:183
DQMScaleToClient_cfi.factor
factor
Definition: DQMScaleToClient_cfi.py:8
fftjetcms::EtaDependentPileup
Definition: EtaDependentPileup.h:17
b
double b
Definition: hdecay.h:118
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
fftjetcms::Real
double Real
Definition: fftjetTypedefs.h:21
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
fftjetcommon_cfi.phiBin0Edge
phiBin0Edge
Definition: fftjetcommon_cfi.py:31
mixed_calib_calo_ttbar_result.leftExtrapolationLinear
leftExtrapolationLinear
Definition: mixed_calib_calo_ttbar_result.py:10
fftjetcommon_cfi.fhigh
fhigh
Definition: fftjetcommon_cfi.py:192
fftjetcms::fftjet_ClusteringTreeSparsifier_parser
std::unique_ptr< fftjet::ClusteringTreeSparsifier< fftjet::Peak, long > > fftjet_ClusteringTreeSparsifier_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:390
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:674
fftjetcms::ProportionalToScale
Definition: ScaleCalculators.h:29
Scenarios_cff.scale
scale
Definition: Scenarios_cff.py:2186
JetAbsEta.h
fftjetcms::fftjet_PeakMagnitudeMapper2d_parser
std::unique_ptr< fftjet::JetMagnitudeMapper2d< fftjet::Peak > > fftjet_PeakMagnitudeMapper2d_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:779
edm::ParameterSet
Definition: ParameterSet.h:36
a
double a
Definition: hdecay.h:119
parse_peak_member_function
static bool parse_peak_member_function(const char *fname, fftjet::JetProperty< fftjet::Peak >::JetMemberFunction *f)
Definition: FFTJetParameterParser.cc:37
fftjetproducer_cfi.etaCut
etaCut
Definition: fftjetproducer_cfi.py:168
PVValHelper::phi
Definition: PVValidationHelpers.h:68
DeadROC_duringRun.f2
f2
Definition: DeadROC_duringRun.py:220
fftjetproducer_cfi.magSpeedCut
magSpeedCut
Definition: fftjetproducer_cfi.py:165
fftjetproducer_cfi.magCut
magCut
Definition: fftjetproducer_cfi.py:163
recoMuon::in
Definition: RecoMuonEnumerators.h:6
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
make_param
#define make_param(type, varname)
Definition: FFTJetParameterParser.cc:31
fftjetcommon_cfi.minScale
minScale
Definition: fftjetcommon_cfi.py:109
value
Definition: value.py:1
fftjetcommon_cfi.sy
sy
Definition: fftjetcommon_cfi.py:203
fftjetcms::LinInterpolatedTable1D
Definition: LinInterpolatedTable1D.h:24
fftjetcms::PeakEtaDependent
Definition: ScaleCalculators.h:131
ScaleCalculators.h
fftjetcms::fftjet_Grid2d_parser
std::unique_ptr< fftjet::Grid2d< Real > > fftjet_Grid2d_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:123
fftjetcms::Polynomial
Definition: ScaleCalculators.h:204
fftjetcms::JetAbsEta
Definition: JetAbsEta.h:15
readEcalDQMStatus.read
read
Definition: readEcalDQMStatus.py:38
overlapproblemtsosanalyzer_cfi.title
title
Definition: overlapproblemtsosanalyzer_cfi.py:7
fftjetcms::MagnitudeDependent
Definition: ScaleCalculators.h:112
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
alignmentValidation.fname
string fname
main script
Definition: alignmentValidation.py:959
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
fftjetcommon_cfi.flow
flow
Definition: fftjetcommon_cfi.py:191
L1TOccupancyClient_cfi.ymin
ymin
Definition: L1TOccupancyClient_cfi.py:43
fftjetpatrecoproducer_cfi.filterMask
filterMask
Definition: fftjetpatrecoproducer_cfi.py:117
L1TMuonDQMOffline_cfi.nEtaBins
nEtaBins
Definition: L1TMuonDQMOffline_cfi.py:21
fftjetcommon_cfi.scalePower
scalePower
Definition: fftjetcommon_cfi.py:204
TrackerOfflineValidation_Dqm_cff.xmax
xmax
Definition: TrackerOfflineValidation_Dqm_cff.py:11
Exception
Definition: hltDiff.cc:246
FFTJetParameterParser.h
fftjetcms::ProductFunctor
Definition: ScaleCalculators.h:87
fftjetcms::fftjet_PileupCalculator_parser
std::unique_ptr< AbsPileupCalculator > fftjet_PileupCalculator_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:747
ALCARECOTkAlBeamHalo_cff.etaMax
etaMax
Definition: ALCARECOTkAlBeamHalo_cff.py:33
fftjetpatrecoproducer_cfi.userScales
userScales
Definition: fftjetpatrecoproducer_cfi.py:118
Exception.h
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
bookConverter.prior
prior
Definition: bookConverter.py:146
fftjetproducer_cfi.splitTimeCut
splitTimeCut
Definition: fftjetproducer_cfi.py:169
className
std::string className(const T &t)
Definition: ClassName.h:31
fftjetcms::fftjet_LinInterpolatedTable1D_parser
std::unique_ptr< fftjetcms::LinInterpolatedTable1D > fftjet_LinInterpolatedTable1D_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:437
parse_jet_member_function
static bool parse_jet_member_function(const char *fname, fftjet::JetProperty< RecoFFTJet >::JetMemberFunction *f)
Definition: FFTJetParameterParser.cc:78
fftjetcms::fftjet_JetFunctor_parser
std::unique_ptr< fftjet::Functor1< double, fftjet::RecombinedJet< VectorLike > > > fftjet_JetFunctor_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:590
mps_fire.result
result
Definition: mps_fire.py:303
fftjetcms::EtaAndPtLookupPeakSelector
Definition: EtaAndPtDependentPeakSelector.h:35
cms::Exception
Definition: Exception.h:70
mixed_calib_calo_ttbar_result.rightExtrapolationLinear
rightExtrapolationLinear
Definition: mixed_calib_calo_ttbar_result.py:11
ParameterSet.h
ecaldqm::binning::nPhiBins
Definition: MESetBinningUtils.h:69
TrackerOfflineValidation_Dqm_cff.xmin
xmin
Definition: TrackerOfflineValidation_Dqm_cff.py:10
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
fftjetcms::EtaAndPtDependentPeakSelector
Definition: EtaAndPtDependentPeakSelector.h:17
fftjetcms::JetConvergenceDistance
Definition: JetConvergenceDistance.h:10
fftjetcms::fftjet_DistanceCalculator_parser
std::unique_ptr< fftjet::AbsDistanceCalculator< fftjet::Peak > > fftjet_DistanceCalculator_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:404
DeadROC_duringRun.f1
f1
Definition: DeadROC_duringRun.py:219
fftjetproducer_cfi.NNDCut
NNDCut
Definition: fftjetproducer_cfi.py:167
fftjetcommon_cfi.etaToPhiBandwidthRatio
etaToPhiBandwidthRatio
Definition: fftjetcommon_cfi.py:177
fftjetcms::CompositeFunctor
Definition: ScaleCalculators.h:62
fftjetcms::fftjet_PeakSelector_parser
std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > fftjet_PeakSelector_parser(const edm::ParameterSet &ps)
Definition: FFTJetParameterParser.cc:164
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
EtaAndPtDependentPeakSelector.h
fftjetproducer_cfi.mergeTimeCut
mergeTimeCut
Definition: fftjetproducer_cfi.py:170
fftjetcommon_cfi.sx
sx
Definition: fftjetcommon_cfi.py:202