test
Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
PhysicsTools
Heppy
src
PdfWeightProducerTool.cc
Go to the documentation of this file.
1
#include "
PhysicsTools/Heppy/interface/PdfWeightProducerTool.h
"
2
#include <cassert>
3
4
namespace
LHAPDF {
5
void
initPDFSet
(
int
nset,
const
std::string
&
filename
,
int
member=0);
6
int
numberPDF
(
int
nset);
7
void
usePDFMember
(
int
nset,
int
member);
8
double
xfx
(
int
nset,
double
x,
double
Q
,
int
fl);
9
double
getXmin
(
int
nset,
int
member);
10
double
getXmax
(
int
nset,
int
member);
11
double
getQ2min
(
int
nset,
int
member);
12
double
getQ2max
(
int
nset,
int
member);
13
void
extrapolate
(
bool
extrapolate
=
true
);
14
}
15
16
namespace
heppy {
17
18
void
PdfWeightProducerTool::addPdfSet
(
const
std::string
&
name
) {
19
pdfs_
.push_back(name);
20
weights_
[
name
] = std::vector<double>();
21
}
22
23
void
PdfWeightProducerTool::beginJob
() {
24
for
(
unsigned
int
i
= 0,
n
=
pdfs_
.size();
i
<
n
; ++
i
) {
25
LHAPDF::initPDFSet
(
i
+1,
pdfs_
[
i
]);
26
}
27
}
28
29
void
PdfWeightProducerTool::processEvent
(
const
GenEventInfoProduct
& pdfstuff) {
30
float
Q
= pdfstuff.
pdf
()->
scalePDF
;
31
32
int
id1 = pdfstuff.
pdf
()->
id
.first;
33
double
x1 = pdfstuff.
pdf
()->
x
.first;
34
double
pdf1 = pdfstuff.
pdf
()->
xPDF
.first;
35
36
int
id2 = pdfstuff.
pdf
()->
id
.second;
37
double
x2 = pdfstuff.
pdf
()->
x
.second;
38
double
pdf2 = pdfstuff.
pdf
()->
xPDF
.second;
39
40
for
(
unsigned
int
i
= 0,
n
=
pdfs_
.size();
i
<
n
; ++
i
) {
41
std::vector<double> &
weights
=
weights_
[
pdfs_
[
i
]];
42
unsigned
int
nweights = 1;
43
if
(
LHAPDF::numberPDF
(
i
+1)>1) nweights +=
LHAPDF::numberPDF
(
i
+1);
44
weights.resize(nweights);
45
46
for
(
unsigned
int
j
= 0;
j
< nweights; ++
j
) {
47
LHAPDF::usePDFMember
(
i
+1,
j
);
48
double
newpdf1 =
LHAPDF::xfx
(
i
+1, x1, Q, id1)/x1;
49
double
newpdf2 =
LHAPDF::xfx
(
i
+1, x2, Q, id2)/x2;
50
weights[
j
] = newpdf1/pdf1*newpdf2/pdf2;
51
}
52
}
53
}
54
55
const
std::vector<double> &
PdfWeightProducerTool::getWeights
(
const
std::string
&
name
)
const
{
56
std::map<std::string, std::vector<double> >::const_iterator
match
=
weights_
.find(name);
57
assert
(match !=
weights_
.end());
58
return
match->second;
59
}
60
61
62
}
i
int i
Definition:
DBlmapReader.cc:9
GenEventInfoProduct::pdf
const PDF * pdf() const
Definition:
GenEventInfoProduct.h:41
heppy::PdfWeightProducerTool::pdfs_
std::vector< std::string > pdfs_
Definition:
PdfWeightProducerTool.h:24
GenEventInfoProduct
Definition:
GenEventInfoProduct.h:15
assert
assert(m_qm.get())
gen::PdfInfo::x
std::pair< double, double > x
Definition:
PdfInfo.h:11
heppy::PdfWeightProducerTool::weights_
std::map< std::string, std::vector< double > > weights_
Definition:
PdfWeightProducerTool.h:25
class-composition.Q
tuple Q
Definition:
class-composition.py:81
heppy::PdfWeightProducerTool::addPdfSet
void addPdfSet(const std::string &name)
Definition:
PdfWeightProducerTool.cc:18
heppy::PdfWeightProducerTool::processEvent
void processEvent(const GenEventInfoProduct &pdfstuff)
Definition:
PdfWeightProducerTool.cc:29
mergeVDriftHistosByStation.name
string name
Definition:
mergeVDriftHistosByStation.py:77
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
LHAPDF::initPDFSet
void initPDFSet(int nset, const std::string &filename, int member=0)
gen::PdfInfo::xPDF
std::pair< double, double > xPDF
Definition:
PdfInfo.h:12
LHAPDF::getXmax
double getXmax(int nset, int member)
LHAPDF::getQ2max
double getQ2max(int nset, int member)
heppy::PdfWeightProducerTool::beginJob
void beginJob()
Definition:
PdfWeightProducerTool.cc:23
heppy::PdfWeightProducerTool::getWeights
const std::vector< double > & getWeights(const std::string &name) const
Definition:
PdfWeightProducerTool.cc:55
LHAPDF::extrapolate
void extrapolate(bool extrapolate=true)
PdfWeightProducerTool.h
j
int j
Definition:
DBlmapReader.cc:9
LHAPDF::numberPDF
int numberPDF(int nset)
LHAPDF::getXmin
double getXmin(int nset, int member)
gen::PdfInfo::id
std::pair< int, int > id
Definition:
PdfInfo.h:10
gen::n
int n
Definition:
Cascade2Hadronizer.cc:79
create_public_pileup_plots.weights
list weights
Definition:
create_public_pileup_plots.py:205
LHAPDF::xfx
double xfx(int nset, double x, double Q, int fl)
lut2db_cfg.filename
tuple filename
Definition:
lut2db_cfg.py:20
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition:
Utils.h:10
LHAPDF::getQ2min
double getQ2min(int nset, int member)
gen::PdfInfo::scalePDF
double scalePDF
Definition:
PdfInfo.h:13
LHAPDF::usePDFMember
void usePDFMember(int nset, int member)
Generated for CMSSW Reference Manual by
1.8.5