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"
31 #define make_param(type, varname) const \
32 type & varname (ps.getParameter< type >( #varname ))
34 using namespace fftjetcms;
39 fftjet::JetProperty<fftjet::Peak>::JetMemberFunction *
f)
41 if (strcmp(fname,
"eta") == 0)
43 else if (strcmp(fname,
"phi") == 0)
45 else if (strcmp(fname,
"magnitude") == 0)
46 *f = &fftjet::Peak::magnitude;
47 else if (strcmp(fname,
"driftSpeed") == 0)
48 *f = &fftjet::Peak::driftSpeed;
49 else if (strcmp(fname,
"magSpeed") == 0)
50 *f = &fftjet::Peak::magSpeed;
51 else if (strcmp(fname,
"lifetime") == 0)
52 *f = &fftjet::Peak::lifetime;
53 else if (strcmp(fname,
"scale") == 0)
55 else if (strcmp(fname,
"nearestNeighborDistance") == 0)
56 *f = &fftjet::Peak::nearestNeighborDistance;
57 else if (strcmp(fname,
"membershipFactor") == 0)
58 *f = &fftjet::Peak::membershipFactor;
59 else if (strcmp(fname,
"recoScale") == 0)
60 *f = &fftjet::Peak::recoScale;
61 else if (strcmp(fname,
"recoScaleRatio") == 0)
62 *f = &fftjet::Peak::recoScaleRatio;
63 else if (strcmp(fname,
"laplacian") == 0)
64 *f = &fftjet::Peak::laplacian;
65 else if (strcmp(fname,
"hessianDeterminant") == 0)
66 *f = &fftjet::Peak::hessianDeterminant;
67 else if (strcmp(fname,
"clusterRadius") == 0)
68 *f = &fftjet::Peak::clusterRadius;
69 else if (strcmp(fname,
"clusterSeparation") == 0)
70 *f = &fftjet::Peak::clusterSeparation;
79 fftjet::JetProperty<RecoFFTJet>::JetMemberFunction *
f)
81 if (strcmp(fname,
"peakEta") == 0)
82 *f = &RecoFFTJet::peakEta;
83 else if (strcmp(fname,
"peakPhi") == 0)
84 *f = &RecoFFTJet::peakPhi;
85 else if (strcmp(fname,
"peakMagnitude") == 0)
86 *f = &RecoFFTJet::peakMagnitude;
87 else if (strcmp(fname,
"magnitude") == 0)
88 *f = &RecoFFTJet::magnitude;
89 else if (strcmp(fname,
"driftSpeed") == 0)
90 *f = &RecoFFTJet::driftSpeed;
91 else if (strcmp(fname,
"magSpeed") == 0)
92 *f = &RecoFFTJet::magSpeed;
93 else if (strcmp(fname,
"lifetime") == 0)
94 *f = &RecoFFTJet::lifetime;
95 else if (strcmp(fname,
"scale") == 0)
97 else if (strcmp(fname,
"nearestNeighborDistance") == 0)
98 *f = &RecoFFTJet::nearestNeighborDistance;
99 else if (strcmp(fname,
"membershipFactor") == 0)
100 *f = &RecoFFTJet::membershipFactor;
101 else if (strcmp(fname,
"recoScale") == 0)
102 *f = &RecoFFTJet::recoScale;
103 else if (strcmp(fname,
"recoScaleRatio") == 0)
104 *f = &RecoFFTJet::recoScaleRatio;
105 else if (strcmp(fname,
"laplacian") == 0)
106 *f = &RecoFFTJet::laplacian;
107 else if (strcmp(fname,
"hessianDeterminant") == 0)
108 *f = &RecoFFTJet::hessianDeterminant;
109 else if (strcmp(fname,
"clusterRadius") == 0)
110 *f = &RecoFFTJet::clusterRadius;
111 else if (strcmp(fname,
"clusterSeparation") == 0)
112 *f = &RecoFFTJet::clusterSeparation;
121 namespace fftjetcms {
123 std::auto_ptr<fftjet::Grid2d<Real> >
126 typedef std::auto_ptr<fftjet::Grid2d<Real> > return_type;
127 fftjet::Grid2d<Real> *
g = 0;
133 std::ifstream
in(file.c_str(),
137 <<
"Failed to open file " << file << std::endl;
141 <<
"Failed to read file " << file << std::endl;
145 const unsigned nEtaBins = ps.
getParameter<
unsigned>(
"nEtaBins");
148 const unsigned nPhiBins = ps.
getParameter<
unsigned>(
"nPhiBins");
153 if (nEtaBins == 0 || nPhiBins == 0 || etaMin >= etaMax)
154 return return_type(
NULL);
156 g =
new fftjet::Grid2d<Real>(
168 const std::vector<Real>&
data =
170 if (data.size() == nEtaBins*nPhiBins)
171 g->blockSet(&data[0], nEtaBins, nPhiBins);
180 return return_type(g);
184 std::auto_ptr<fftjet::Functor1<bool,fftjet::Peak> >
187 typedef std::auto_ptr<fftjet::Functor1<bool,fftjet::Peak> > return_type;
192 if (!peakselector_type.compare(
"AllPeaksPass"))
194 return return_type(
new fftjet::AllPeaksPass());
197 if (!peakselector_type.compare(
"EtaAndPtDependentPeakSelector"))
200 std::ifstream
in(file.c_str(),
204 <<
"Failed to open file " << file << std::endl;
209 <<
"Failed to read file " << file << std::endl;
210 return return_type(ptr);
213 if (!peakselector_type.compare(
"EtaAndPtLookupPeakSelector"))
225 <<
"Failed to configure EtaAndPtLookupPeakSelector" << std::endl;
231 if (!peakselector_type.compare(
"SimplePeakSelector"))
233 const double magCut = ps.
getParameter<
double>(
"magCut");
234 const double driftSpeedCut = ps.
getParameter<
double>(
"driftSpeedCut");
235 const double magSpeedCut = ps.
getParameter<
double>(
"magSpeedCut");
236 const double lifeTimeCut = ps.
getParameter<
double>(
"lifeTimeCut");
237 const double NNDCut = ps.
getParameter<
double>(
"NNDCut");
238 const double etaCut = ps.
getParameter<
double>(
"etaCut");
240 return return_type(
new fftjet::SimplePeakSelector(
241 magCut, driftSpeedCut ,magSpeedCut, lifeTimeCut, NNDCut, etaCut));
244 if (!peakselector_type.compare(
"ScalePowerPeakSelector"))
249 const double etaCut = ps.
getParameter<
double>(
"etaCut");
251 return return_type(
new fftjet::ScalePowerPeakSelector(
255 return return_type(
NULL);
259 std::auto_ptr<fftjet::ScaleSpaceKernel>
262 typedef std::auto_ptr<fftjet::ScaleSpaceKernel> return_type;
268 if (!MembershipFunction_type.compare(
"InterpolatedMembershipFcn"))
276 std::ifstream
in(file.c_str(),
280 <<
"Failed to open file " << file << std::endl;
284 if (!MembershipFunction_type.compare(
"Composite"))
287 <<
"Parsing of CompositeKernel objects is not implemented yet"
291 if (!MembershipFunction_type.compare(
"MagneticSmearing"))
297 make_param(std::vector<double>, fragmentationData);
303 if (fragmentationData.empty())
305 <<
"Fragmentation function data not defined for "
306 "MagneticSmearingKernel" << std::endl;
307 if (samplesPerBin < 1U)
309 <<
"Bad number of samples per bin in "
310 "MagneticSmearingKernel" << std::endl;
312 fftjet::LinearInterpolator1d* fragmentationFunction =
313 new fftjet::LinearInterpolator1d(
314 &fragmentationData[0], fragmentationData.size(), 0.0, 1.0);
317 new fftjet::MagneticSmearingKernel<fftjet::LinearInterpolator1d>(
318 fragmentationFunction, numeratorConst,
319 charge1Fraction, charge2Fraction,
320 samplesPerBin,
true));
323 if (!MembershipFunction_type.compare(
"Interpolated"))
337 if (
data.size() != nxbins*nybins)
339 <<
"Bad number of data points for Interpolated kernel"
342 return return_type(
new fftjet::InterpolatedKernel(
348 if (!MembershipFunction_type.compare(
"Interpolated3d"))
361 if (
data.size() != nxbins*nybins*scales.size())
363 <<
"Bad number of data points for Interpolated3d kernel"
366 return return_type(
new fftjet::InterpolatedKernel3d(
367 &
data[0], scales, useLogSpaceForScale,
373 fftjet::DefaultKernel2dFactory factory;
374 if (factory[MembershipFunction_type] ==
NULL) {
375 return return_type(
NULL);
381 make_param(std::vector<double>, kernelParameters);
383 const int n_expected = factory[MembershipFunction_type]->nParameters();
385 if (static_cast<unsigned>(n_expected) != kernelParameters.size())
387 <<
"Bad number of kernel parameters" << std::endl;
389 return std::auto_ptr<fftjet::ScaleSpaceKernel>(
390 factory[MembershipFunction_type]->create(
391 sx, sy, scalePower, kernelParameters));
395 std::auto_ptr<AbsBgFunctor>
401 if (!bg_Membership_type.compare(
"GaussianNoiseMembershipFcn"))
403 const double minWeight = ps.
getParameter<
double>(
"minWeight");
405 return std::auto_ptr<AbsBgFunctor>(
406 new fftjet::GaussianNoiseMembershipFcn(minWeight,prior));
409 return std::auto_ptr<AbsBgFunctor>(
NULL);
413 std::auto_ptr<std::vector<double> >
416 typedef std::auto_ptr<std::vector<double> > return_type;
420 if (!className.compare(
"EquidistantInLinearSpace") ||
421 !className.compare(
"EquidistantInLogSpace"))
423 const double minScale = ps.
getParameter<
double>(
"minScale");
424 const double maxScale = ps.
getParameter<
double>(
"maxScale");
425 const unsigned nScales = ps.
getParameter<
unsigned>(
"nScales");
427 if (minScale <= 0.0 || maxScale <= 0.0 ||
428 nScales == 0 || minScale == maxScale)
429 return return_type(
NULL);
434 if (!className.compare(
"EquidistantInLinearSpace"))
435 return return_type(
new std::vector<double>(
436 fftjet::EquidistantInLinearSpace(
437 minScale, maxScale, nScales)));
439 return return_type(
new std::vector<double>(
440 fftjet::EquidistantInLogSpace(
441 minScale, maxScale, nScales)));
444 if (!className.compare(
"UserSet"))
446 return_type scales(
new std::vector<double>(
450 const unsigned nscales = scales->size();
451 for (
unsigned i=0;
i<nscales; ++
i)
452 if ((*scales)[
i] <= 0.0)
453 return return_type(
NULL);
455 for (
unsigned i=1;
i<nscales; ++
i)
456 for (
unsigned j=0;
j<
i; ++
j)
457 if ((*scales)[i] == (*scales)[
j])
458 return return_type(
NULL);
463 return return_type(
NULL);
467 std::auto_ptr<fftjet::ClusteringTreeSparsifier<fftjet::Peak,long> >
470 typedef std::auto_ptr<fftjet::ClusteringTreeSparsifier<fftjet::Peak,long> > return_type;
472 const int maxLevelNumber = ps.
getParameter<
int>(
"maxLevelNumber");
473 const unsigned filterMask = ps.
getParameter<
unsigned>(
"filterMask");
474 const std::vector<double> userScalesV =
476 const unsigned nUserScales = userScalesV.size();
477 const double* userScales = nUserScales ? &userScalesV[0] :
NULL;
480 new fftjet::ClusteringTreeSparsifier<fftjet::Peak,long>(
490 std::auto_ptr<fftjet::AbsDistanceCalculator<fftjet::Peak> >
493 typedef std::auto_ptr<fftjet::AbsDistanceCalculator<fftjet::Peak> > return_type;
497 if (!calc_type.compare(
"PeakEtaPhiDistance"))
499 const double etaToPhiBandwidthRatio = ps.
getParameter<
double>(
500 "etaToPhiBandwidthRatio");
501 return return_type(
new fftjet::PeakEtaPhiDistance(etaToPhiBandwidthRatio));
504 if (!calc_type.compare(
"PeakEtaDependentDistance"))
506 std::auto_ptr<fftjet::LinearInterpolator1d> interp =
509 const fftjet::LinearInterpolator1d* ip = interp.get();
511 return return_type(
NULL);
514 const unsigned n = ip->nx();
515 const double*
data = ip->getData();
516 for (
unsigned i=0;
i<
n; ++
i)
518 return return_type(
NULL);
519 if (ip->fLow() <= 0.0 || ip->fHigh() <= 0.0)
520 return return_type(
NULL);
522 return return_type(
new fftjet::PeakEtaDependentDistance(*ip));
525 return return_type(
NULL);
529 std::auto_ptr<fftjetcms::LinInterpolatedTable1D>
534 const bool leftExtrapolationLinear =
536 const bool rightExtrapolationLinear =
538 const std::vector<double>
data(
541 return std::auto_ptr<fftjetcms::LinInterpolatedTable1D>(
NULL);
543 return std::auto_ptr<fftjetcms::LinInterpolatedTable1D>(
546 leftExtrapolationLinear, rightExtrapolationLinear));
550 std::auto_ptr<fftjet::LinearInterpolator1d>
557 const std::vector<double>
data(
560 return std::auto_ptr<fftjet::LinearInterpolator1d>(
NULL);
562 return std::auto_ptr<fftjet::LinearInterpolator1d>(
563 new fftjet::LinearInterpolator1d(
564 &data[0], data.size(),
xmin,
xmax, flow, fhigh));
568 std::auto_ptr<fftjet::LinearInterpolator2d>
572 std::ifstream
in(file.c_str(),
576 <<
"Failed to open file " << file << std::endl;
580 <<
"Failed to read file " << file << std::endl;
581 return std::auto_ptr<fftjet::LinearInterpolator2d>(ip);
585 std::auto_ptr<fftjet::Functor1<double,fftjet::Peak> >
588 typedef fftjet::Functor1<double,fftjet::Peak> ptr_type;
589 typedef std::auto_ptr<ptr_type> return_type;
593 if (!property_type.compare(
"Log"))
597 ptr_type* wr = wrapped.get();
600 return_type
result = return_type(
601 new fftjet::LogProperty<fftjet::Peak>(wr,
true));
607 if (!property_type.compare(
"PeakProperty"))
610 fftjet::JetProperty<fftjet::Peak>::JetMemberFunction
fcn;
613 new fftjet::JetProperty<fftjet::Peak>(fcn));
615 return return_type(
NULL);
618 if (!property_type.compare(
"MinusScaledLaplacian"))
623 new fftjet::MinusScaledLaplacian<fftjet::Peak>(sx, sy));
626 if (!property_type.compare(
"ScaledHessianDet"))
629 new fftjet::ScaledHessianDet<fftjet::Peak>());
632 if (!property_type.compare(
"ScaledMagnitude"))
635 new fftjet::ScaledMagnitude<fftjet::Peak>());
638 if (!property_type.compare(
"ScaledMagnitude2"))
641 new fftjet::ScaledMagnitude2<fftjet::Peak>());
644 if (!property_type.compare(
"ConstDouble"))
650 if (!property_type.compare(
"ProportionalToScale"))
657 if (!property_type.compare(
"MultiplyByConst"))
659 const double factor = ps.
getParameter<
double>(
"factor");
662 ptr_type* ptr =
function.get();
665 return_type
result = return_type(
672 if (!property_type.compare(
"CompositeFunctor"))
674 std::auto_ptr<fftjet::Functor1<double,double> > fcn1 =
679 fftjet::Functor1<double,double>*
f1 = fcn1.get();
680 ptr_type*
f2 = fcn2.get();
683 return_type
result = return_type(
691 if (!property_type.compare(
"ProductFunctor"))
697 ptr_type*
f1 = fcn1.get();
698 ptr_type*
f2 = fcn2.get();
701 return_type
result = return_type(
709 if (!property_type.compare(
"MagnitudeDependent"))
711 std::auto_ptr<fftjet::Functor1<double,double> > fcn1 =
714 fftjet::Functor1<double,double>*
f1 = fcn1.get();
717 return_type
result = return_type(
724 if (!property_type.compare(
"PeakEtaDependent"))
726 std::auto_ptr<fftjet::Functor1<double,double> > fcn1 =
729 fftjet::Functor1<double,double>*
f1 = fcn1.get();
738 return return_type(
NULL);
742 std::auto_ptr<fftjet::Functor1<double,fftjet::RecombinedJet<VectorLike> > >
745 typedef fftjet::Functor1<double,RecoFFTJet> ptr_type;
746 typedef std::auto_ptr<ptr_type> return_type;
750 if (!property_type.compare(
"Log"))
754 fftjet::Functor1<double,RecoFFTJet>* wr = wrapped.get();
757 return_type
result = return_type(
758 new fftjet::LogProperty<RecoFFTJet>(wr,
true));
764 if (!property_type.compare(
"JetEtaDependent"))
766 std::auto_ptr<fftjet::Functor1<double,double> > fcn1 =
769 fftjet::Functor1<double,double>*
f1 = fcn1.get();
778 if (!property_type.compare(
"JetProperty"))
781 fftjet::JetProperty<RecoFFTJet>::JetMemberFunction
fcn;
784 new fftjet::JetProperty<RecoFFTJet>(fcn));
786 return return_type(
NULL);
789 if (!property_type.compare(
"ConstDouble"))
795 if (!property_type.compare(
"ProportionalToScale"))
802 if (!property_type.compare(
"MultiplyByConst"))
804 const double factor = ps.
getParameter<
double>(
"factor");
807 ptr_type* ptr =
function.get();
810 return_type
result = return_type(
817 if (!property_type.compare(
"CompositeFunctor"))
819 std::auto_ptr<fftjet::Functor1<double,double> > fcn1 =
824 fftjet::Functor1<double,double>*
f1 = fcn1.get();
825 ptr_type*
f2 = fcn2.get();
828 return_type
result = return_type(
836 if (!property_type.compare(
"ProductFunctor"))
842 ptr_type*
f1 = fcn1.get();
843 ptr_type*
f2 = fcn2.get();
846 return_type
result = return_type(
854 if (!property_type.compare(
"MagnitudeDependent"))
856 std::auto_ptr<fftjet::Functor1<double,double> > fcn1 =
859 fftjet::Functor1<double,double>*
f1 = fcn1.get();
862 return_type
result = return_type(
869 return return_type(
NULL);
873 std::auto_ptr<fftjet::Functor2<double,
874 fftjet::RecombinedJet<VectorLike>,
875 fftjet::RecombinedJet<VectorLike> > >
878 typedef std::auto_ptr<fftjet::Functor2<
880 fftjet::RecombinedJet<VectorLike>,
881 fftjet::RecombinedJet<VectorLike> > > return_type;
886 if (!distance_type.compare(
"JetConvergenceDistance"))
891 if (etaToPhiBandwidthRatio > 0.0 && relativePtBandwidth > 0.0)
893 etaToPhiBandwidthRatio, relativePtBandwidth));
896 return return_type(
NULL);
900 std::auto_ptr<fftjet::Functor1<double,double> >
903 typedef std::auto_ptr<fftjet::Functor1<double,double> > return_type;
907 if (!fcn_type.compare(
"LinearInterpolator1d"))
909 std::auto_ptr<fftjet::LinearInterpolator1d>
p =
911 fftjet::LinearInterpolator1d* ptr = p.get();
915 return return_type(ptr);
919 if (!fcn_type.compare(
"LinInterpolatedTable1D"))
921 std::auto_ptr<fftjetcms::LinInterpolatedTable1D>
p =
927 return return_type(ptr);
931 if (!fcn_type.compare(
"Polynomial"))
933 std::vector<double> coeffs;
934 for (
unsigned i=0; ; ++
i)
936 std::ostringstream
s;
946 return return_type(
NULL);
950 std::auto_ptr<AbsPileupCalculator>
953 typedef std::auto_ptr<AbsPileupCalculator> return_type;
957 if (!fcn_type.compare(
"EtaDependentPileup"))
959 std::auto_ptr<fftjet::LinearInterpolator2d> interp =
962 const double inputRhoFactor = ps.
getParameter<
double>(
"inputRhoFactor");
963 const double outputRhoFactor = ps.
getParameter<
double>(
"outputRhoFactor");
965 const fftjet::LinearInterpolator2d* ip = interp.get();
968 *ip, inputRhoFactor, outputRhoFactor));
970 return return_type(
NULL);
973 if (!fcn_type.compare(
"PileupGrid2d"))
975 std::auto_ptr<fftjet::Grid2d<Real> > grid =
978 const double rhoFactor = ps.
getParameter<
double>(
"rhoFactor");
980 const fftjet::Grid2d<Real>*
g = grid.get();
984 return return_type(
NULL);
987 return return_type(
NULL);
991 std::auto_ptr<fftjet::JetMagnitudeMapper2d <fftjet::Peak> >
994 std::auto_ptr<fftjet::LinearInterpolator2d> responseCurve =
998 const double minPredictor = ps.
getParameter<
double>(
"minPredictor");
999 const double maxPredictor = ps.
getParameter<
double>(
"maxPredictor");
1000 const unsigned nPredPoints = ps.
getParameter<
unsigned>(
"nPredPoints");
1001 const double maxMagnitude = ps.
getParameter<
double>(
"maxMagnitude");
1002 const unsigned nMagPoints = ps.
getParameter<
unsigned>(
"nMagPoints");
1004 return (std::auto_ptr<fftjet::JetMagnitudeMapper2d<fftjet::Peak> >
1005 (
new fftjet::JetMagnitudeMapper2d<fftjet::Peak>(
1008 true,minPredictor,maxPredictor,nPredPoints,
1009 maxMagnitude,nMagPoints)));
1013 std::auto_ptr<fftjet::JetMagnitudeMapper2d <fftjet::RecombinedJet<VectorLike> > >
1016 std::auto_ptr<fftjet::LinearInterpolator2d> responseCurve =
1020 const double minPredictor = ps.
getParameter<
double>(
"minPredictor");
1021 const double maxPredictor = ps.
getParameter<
double>(
"maxPredictor");
1022 const unsigned nPredPoints = ps.
getParameter<
unsigned>(
"nPredPoints");
1023 const double maxMagnitude = ps.
getParameter<
double>(
"maxMagnitude");
1024 const unsigned nMagPoints = ps.
getParameter<
unsigned>(
"nMagPoints");
1026 return (std::auto_ptr<fftjet::JetMagnitudeMapper2d<RecoFFTJet> >
1027 (
new fftjet::JetMagnitudeMapper2d<RecoFFTJet>(
1030 true,minPredictor,maxPredictor,nPredPoints,
1031 maxMagnitude,nMagPoints)));
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::auto_ptr< fftjetcms::LinInterpolatedTable1D > fftjet_LinInterpolatedTable1D_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::Grid2d< Real > > fftjet_Grid2d_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::JetMagnitudeMapper2d< fftjet::Peak > > fftjet_PeakMagnitudeMapper2d_parser(const edm::ParameterSet &ps)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::auto_ptr< fftjet::ScaleSpaceKernel > fftjet_MembershipFunction_parser(const edm::ParameterSet &ps)
std::auto_ptr< AbsPileupCalculator > fftjet_PileupCalculator_parser(const edm::ParameterSet &ps)
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
fftjet::RecombinedJet< VectorLike > RecoFFTJet
std::auto_ptr< fftjet::Functor1< bool, fftjet::Peak > > fftjet_PeakSelector_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::Functor2< double, fftjet::RecombinedJet< VectorLike >, fftjet::RecombinedJet< VectorLike > > > fftjet_JetDistance_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::Functor1< double, double > > fftjet_Function_parser(const edm::ParameterSet &ps)
static bool parse_peak_member_function(const char *fname, fftjet::JetProperty< fftjet::Peak >::JetMemberFunction *f)
#define make_param(type, varname)
std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > fftjet_PeakFunctor_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::JetMagnitudeMapper2d< fftjet::RecombinedJet< VectorLike > > > fftjet_JetMagnitudeMapper2d_parser(const edm::ParameterSet &ps)
void fcn(int &, double *, double &, double *, int)
std::auto_ptr< fftjet::LinearInterpolator1d > fftjet_LinearInterpolator1d_parser(const edm::ParameterSet &ps)
char data[epos_bytes_allocation]
std::auto_ptr< fftjet::AbsDistanceCalculator< fftjet::Peak > > fftjet_DistanceCalculator_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::ClusteringTreeSparsifier< fftjet::Peak, long > > fftjet_ClusteringTreeSparsifier_parser(const edm::ParameterSet &ps)
static bool parse_jet_member_function(const char *fname, fftjet::JetProperty< RecoFFTJet >::JetMemberFunction *f)
std::auto_ptr< AbsBgFunctor > fftjet_BgFunctor_parser(const edm::ParameterSet &ps)
std::auto_ptr< std::vector< double > > fftjet_ScaleSet_parser(const edm::ParameterSet &ps)
std::string className(const T &t)
std::auto_ptr< fftjet::Functor1< double, fftjet::RecombinedJet< VectorLike > > > fftjet_JetFunctor_parser(const edm::ParameterSet &ps)
std::auto_ptr< fftjet::LinearInterpolator2d > fftjet_LinearInterpolator2d_parser(const edm::ParameterSet &ps)