|
|
Go to the documentation of this file.
16 #include <Math/VectorUtil.h>
45 double xfx(
int nset,
double x,
double Q,
int fl);
46 double getXmin(
int nset,
int member);
47 double getXmax(
int nset,
int member);
48 double getQ2min(
int nset,
int member);
49 double getQ2max(
int nset,
int member);
55 : fixPOWHEG_(
pset.getUntrackedParameter<
std::
string>(
"FixPOWHEG",
"")),
56 useFirstAsDefault_(
pset.getUntrackedParameter<
bool>(
"useFirstAsDefault",
false)),
61 pdfSetNames_(
pset.getUntrackedParameter<
std::vector<
std::
string> >(
"PdfSetNames")) {
67 <<
" PDF sets requested on input. Using only the first 3 sets and ignoring the rest!!";
74 if (underscore <
dot) {
109 int id1 = pdfstuff->
pdf()->
id.first;
110 double x1 = pdfstuff->
pdf()->
x.first;
111 double pdf1 = pdfstuff->
pdf()->
xPDF.first;
113 int id2 = pdfstuff->
pdf()->
id.second;
114 double x2 = pdfstuff->
pdf()->
x.second;
115 double pdf2 = pdfstuff->
pdf()->
xPDF.second;
131 for (
unsigned int i = 0;
i < gensize; ++
i) {
136 int id =
part.pdgId();
137 if (
id != 23 &&
abs(
id) != 24)
139 mboson =
part.mass();
142 Q =
sqrt(mboson * mboson +
Q *
Q);
150 std::unique_ptr<std::vector<double> >
weights(
new std::vector<double>);
151 unsigned int nweights = 1;
156 for (
unsigned int i = 0;
i < nweights; ++
i) {
160 weights->push_back(newpdf1 / pdf1 * newpdf2 / pdf2);
T dot(const Basic3DVector &v) const
Scalar product, or "dot" product, with a vector of same type.
edm::EDGetTokenT< reco::GenParticleCollection > genToken_
std::pair< double, double > x
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
void usePDFMember(int nset, int member)
void initPDFSet(int nset, const std::string &filename, int member=0)
double getQ2max(int nset, int member)
#define DEFINE_FWK_MODULE(type)
std::vector< std::string > pdfSetNames_
std::pair< double, double > xPDF
void extrapolate(bool extrapolate=true)
double xfx(int nset, double x, double Q, int fl)
PdfWeightProducer(const edm::ParameterSet &)
edm::InputTag pdfInfoTag_
double getXmin(int nset, int member)
edm::EDGetTokenT< GenEventInfoProduct > pdfInfoToken_
double getQ2min(int nset, int member)
~PdfWeightProducer() override
double getXmax(int nset, int member)
void produce(edm::Event &, const edm::EventSetup &) override
Abs< T >::type abs(const T &t)
std::vector< std::string > pdfShortNames_