Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various improvements and small fixes of the MET uncertainty tools 76X #10241

Merged
merged 20 commits into from
Sep 15, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion DQMOffline/JetMET/python/jetMETDQMOfflineSourceMC_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@
from JetMETCorrections.Type1MET.correctionTermsPfMetType0PFCandidate_cff import *
from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1

dqmCorrPfMetType1=corrPfMetType1.clone(jetCorrLabel = cms.InputTag('dqmAk4PFL1FastL2L3Corrector'))
dqmCorrPfMetType1=corrPfMetType1.clone(jetCorrLabel = cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector'),
jetCorrLabelRes = cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector')
)
pfMETT1=pfMetT1.clone(srcCorrections = cms.VInputTag(
cms.InputTag('dqmCorrPfMetType1', 'type1')
))
Expand Down
21 changes: 17 additions & 4 deletions DQMOffline/JetMET/python/jetMETDQMOfflineSource_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,33 @@
dqmAk4CaloL2L3ResidualCorrector
)

from JetMETCorrections.Configuration.JetCorrectors_cff import ak4PFL1FastL2L3ResidualCorrectorChain,ak4PFL1FastL2L3ResidualCorrector,ak4PFResidualCorrector,ak4PFL3AbsoluteCorrector,ak4PFL2RelativeCorrector,ak4PFL1FastjetCorrector
from JetMETCorrections.Configuration.JetCorrectors_cff import ak4PFL1FastL2L3ResidualCorrectorChain,ak4PFL1FastL2L3ResidualCorrector,ak4PFCHSL1FastL2L3Corrector,ak4PFResidualCorrector,ak4PFL3AbsoluteCorrector,ak4PFL2RelativeCorrector,ak4PFL1FastjetCorrector

dqmAk4PFCHSL1FastL2L3Corrector = ak4PFCHSL1FastL2L3Corrector.clone()
dqmAk4PFCHSL1FastL2L3CorrectorChain = cms.Sequence(
#ak4CaloL2RelativeCorrector*ak4CaloL3AbsoluteCorrector*ak4CaloResidualCorrector*
dqmAk4PFCHSL1FastL2L3Corrector
)

dqmAk4PFL1FastL2L3ResidualCorrector = ak4PFL1FastL2L3ResidualCorrector.clone()
dqmAk4PFL1FastL2L3ResidualCorrectorChain = cms.Sequence(
#ak4PFL1FastjetCorrector*ak4PFL2RelativeCorrector*ak4PFL3AbsoluteCorrector*ak4PFResidualCorrector*
dqmAk4PFL1FastL2L3ResidualCorrector
)

from JetMETCorrections.Configuration.JetCorrectors_cff import ak4PFCHSL1FastL2L3ResidualCorrectorChain,ak4PFCHSL1FastL2L3ResidualCorrector,ak4PFCHSResidualCorrector,ak4PFCHSL3AbsoluteCorrector,ak4PFCHSL2RelativeCorrector,ak4PFCHSL1FastjetCorrector
from JetMETCorrections.Configuration.JetCorrectors_cff import ak4PFCHSL1FastL2L3ResidualCorrectorChain,ak4PFCHSL1FastL2L3ResidualCorrector,ak4PFCHSL1FastL2L3Corrector,ak4PFCHSResidualCorrector,ak4PFCHSL3AbsoluteCorrector,ak4PFCHSL2RelativeCorrector,ak4PFCHSL1FastjetCorrector

dqmAk4PFCHSL1FastL2L3ResidualCorrector = ak4PFCHSL1FastL2L3ResidualCorrector.clone()
dqmAk4PFCHSL1FastL2L3ResidualCorrectorChain = cms.Sequence(
#ak4PFCHSL1FastjetCorrector*ak4PFCHSL2RelativeCorrector*ak4PFCHSL3AbsoluteCorrector*ak4PFCHSResidualCorrector
dqmAk4PFCHSL1FastL2L3ResidualCorrector
)

dqmAk4PFCHSL1FastL2L3Corrector = ak4PFCHSL1FastL2L3Corrector.clone()
dqmAk4PFCHSL1FastL2L3CorrectorChain = cms.Sequence(
dqmAk4PFCHSL1FastL2L3Corrector
)

jetPreDQMSeq=cms.Sequence(ak4CaloL2RelativeCorrector*ak4CaloL3AbsoluteCorrector*ak4CaloResidualCorrector*
ak4PFL1FastjetCorrector*ak4PFL2RelativeCorrector*ak4PFL3AbsoluteCorrector*ak4PFResidualCorrector*
ak4PFCHSL1FastjetCorrector*ak4PFCHSL2RelativeCorrector*ak4PFCHSL3AbsoluteCorrector*ak4PFCHSResidualCorrector)
Expand All @@ -69,7 +80,9 @@
from JetMETCorrections.Type1MET.correctionTermsPfMetType0PFCandidate_cff import *
from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1

dqmCorrPfMetType1=corrPfMetType1.clone(jetCorrLabel = cms.InputTag('dqmAk4PFL1FastL2L3ResidualCorrector'))
dqmCorrPfMetType1=corrPfMetType1.clone(jetCorrLabel = cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector'),
jetCorrLabelRes = cms.InputTag('dqmAk4PFCHSL1FastL2L3ResidualCorrector')
)
pfMETT1=pfMetT1.clone(srcCorrections = cms.VInputTag(
cms.InputTag('dqmCorrPfMetType1', 'type1')
))
Expand All @@ -78,7 +91,7 @@
pileupJetIdCalculatorCHSDQM*pileupJetIdEvaluatorCHSDQM*
pileupJetIdCalculatorDQM*pileupJetIdEvaluatorDQM*
jetPreDQMSeq*
dqmAk4CaloL2L3ResidualCorrectorChain*dqmAk4PFL1FastL2L3ResidualCorrectorChain*dqmAk4PFCHSL1FastL2L3ResidualCorrectorChain*
dqmAk4CaloL2L3ResidualCorrectorChain*dqmAk4PFL1FastL2L3ResidualCorrectorChain*dqmAk4PFCHSL1FastL2L3ResidualCorrectorChain*dqmAk4PFCHSL1FastL2L3CorrectorChain*
dqmCorrPfMetType1*pfMETT1*
jetDQMAnalyzerSequence*METDQMAnalyzerSequence)
jetMETDQMOfflineSourceMiniAOD = cms.Sequence(goodOfflinePrimaryVerticesDQMforMiniAOD*jetDQMAnalyzerSequenceMiniAOD*METDQMAnalyzerSequenceMiniAOD)
7 changes: 4 additions & 3 deletions DataFormats/PatCandidates/interface/MET.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,10 @@ namespace pat {
// ---- members for MET corrections ----
enum METUncertainty {
JetResUp=0, JetResDown=1, JetEnUp=2, JetEnDown=3,
MuonEnUp=4, MuonEnDown=5, ElectronEnUp=6, ElectronEnDown=7, TauEnUp=8,TauEnDown=9,
UnclusteredEnUp=10,UnclusteredEnDown=11, NoShift=12, METUncertaintySize=13,
JetResUpSmear=14, JetResDownSmear=15, METFullUncertaintySize=16
MuonEnUp=4, MuonEnDown=5, ElectronEnUp=6, ElectronEnDown=7,
TauEnUp=8, TauEnDown=9, UnclusteredEnUp=10, UnclusteredEnDown=11,
PhotonEnUp=12, PhotonEnDown=13, NoShift=14, METUncertaintySize=15,
JetResUpSmear=16, JetResDownSmear=17, METFullUncertaintySize=18
};
enum METCorrectionLevel {
Raw=0, Type1=1, Type01=2, TypeXY=3, Type1XY=4, Type01XY=5,
Expand Down
8 changes: 4 additions & 4 deletions DataFormats/PatCandidates/src/MET.cc
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ double MET::caloMETSumEt() const {

// functions to access to 74X samples ========================================================
MET::Vector2 MET::shiftedP2_74x(MET::METUncertainty shift, MET::METCorrectionLevel level) const {
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples \n");
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples \n");
const std::vector<PackedMETUncertainty> &v = (level == Type1 ? uncertaintiesType1_ : uncertaintiesRaw_);
if (v.empty()) throw cms::Exception("Unsupported", "MET uncertainties not available for the specified correction type\n");
if (v.size() == 1) {
Expand All @@ -392,7 +392,7 @@ MET::Vector2 MET::shiftedP2_74x(MET::METUncertainty shift, MET::METCorrectionLev
}

MET::Vector MET::shiftedP3_74x(MET::METUncertainty shift, MET::METCorrectionLevel level) const {
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples \n");
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples \n");
const std::vector<PackedMETUncertainty> &v = (level == Type1 ? uncertaintiesType1_ : uncertaintiesRaw_);
if (v.empty()) throw cms::Exception("Unsupported", "MET uncertainties not available for the specified correction type\n");
if (v.size() == 1) {
Expand All @@ -403,7 +403,7 @@ MET::Vector MET::shiftedP3_74x(MET::METUncertainty shift, MET::METCorrectionLeve
}

MET::LorentzVector MET::shiftedP4_74x(METUncertainty shift, MET::METCorrectionLevel level) const {
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples\n");
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples\n");
const std::vector<PackedMETUncertainty> &v = (level == Type1 ? uncertaintiesType1_ : uncertaintiesRaw_);
if (v.empty()) throw cms::Exception("Unsupported", "MET uncertainties not available for the specified correction type\n");
if (v.size() == 1) {
Expand All @@ -416,7 +416,7 @@ MET::LorentzVector MET::shiftedP4_74x(METUncertainty shift, MET::METCorrectionLe
}

double MET::shiftedSumEt_74x(MET::METUncertainty shift, MET::METCorrectionLevel level) const {
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples\n");
if (level != Type1 && level != Raw) throw cms::Exception("Unsupported", "MET uncertainties only supported for Raw and Type1 in 74X samples\n");
const std::vector<PackedMETUncertainty> &v = (level == Type1 ? uncertaintiesType1_ : uncertaintiesRaw_);
if (v.empty()) throw cms::Exception("Unsupported", "MET uncertainties not available for the specified correction type\n");
if (v.size() == 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class AddCorrectionsToGenericMET {
AddCorrectionsToGenericMET() {};
~AddCorrectionsToGenericMET() {};

void setCorTokens(std::vector<edm::EDGetTokenT<CorrMETData> > corrTokens);
void setCorTokens(std::vector<edm::EDGetTokenT<CorrMETData> > const& corrTokens);

reco::MET getCorrectedMET(const reco::MET& srcMET,edm::Event& evt, const edm::EventSetup& es);
reco::PFMET getCorrectedPFMET(const reco::PFMET& srcMET,edm::Event& evt, const edm::EventSetup& es);
Expand Down
17 changes: 14 additions & 3 deletions JetMETCorrections/Type1MET/interface/PFJetMETcorrInputProducerT.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,10 @@ class PFJetMETcorrInputProducerT : public edm::EDProducer
offsetCorrLabel_ = cfg.getParameter<edm::InputTag>("offsetCorrLabel");
offsetCorrToken_ = consumes<reco::JetCorrector>(offsetCorrLabel_);
}
jetCorrLabel_ = cfg.getParameter<edm::InputTag>("jetCorrLabel");
jetCorrToken_ = consumes<reco::JetCorrector>(jetCorrLabel_);
jetCorrLabel_ = cfg.getParameter<edm::InputTag>("jetCorrLabel"); //for MC
jetCorrLabelRes_ = cfg.getParameter<edm::InputTag>("jetCorrLabelRes"); //for data
jetCorrToken_ = mayConsume<reco::JetCorrector>(jetCorrLabel_);
jetCorrResToken_ = mayConsume<reco::JetCorrector>(jetCorrLabelRes_);

jetCorrEtaMax_ = ( cfg.exists("jetCorrEtaMax") ) ?
cfg.getParameter<double>("jetCorrEtaMax") : 9.9;
Expand Down Expand Up @@ -134,6 +136,7 @@ class PFJetMETcorrInputProducerT : public edm::EDProducer

void produce(edm::Event& evt, const edm::EventSetup& es)
{

std::auto_ptr<CorrMETData> type1Correction(new CorrMETData());
for ( typename std::vector<type2BinningEntryType*>::iterator type2BinningEntry = type2Binning_.begin();
type2BinningEntry != type2Binning_.end(); ++type2BinningEntry ) {
Expand All @@ -142,7 +145,13 @@ class PFJetMETcorrInputProducerT : public edm::EDProducer
}

edm::Handle<reco::JetCorrector> jetCorr;
evt.getByToken(jetCorrToken_, jetCorr);
//automatic switch for residual corrections
if(evt.isRealData() ) {
jetCorrLabel_ = jetCorrLabelRes_;
evt.getByToken(jetCorrResToken_, jetCorr);
} else {
evt.getByToken(jetCorrToken_, jetCorr);
}

typedef std::vector<T> JetCollection;
edm::Handle<JetCollection> jets;
Expand Down Expand Up @@ -237,7 +246,9 @@ class PFJetMETcorrInputProducerT : public edm::EDProducer
edm::InputTag offsetCorrLabel_;
edm::EDGetTokenT<reco::JetCorrector> offsetCorrToken_; // e.g. 'ak5CaloJetL1Fastjet'
edm::InputTag jetCorrLabel_;
edm::InputTag jetCorrLabelRes_;
edm::EDGetTokenT<reco::JetCorrector> jetCorrToken_; // e.g. 'ak5CaloJetL1FastL2L3' (MC) / 'ak5CaloJetL1FastL2L3Residual' (Data)
edm::EDGetTokenT<reco::JetCorrector> jetCorrResToken_; // e.g. 'ak5CaloJetL1FastL2L3' (MC) / 'ak5CaloJetL1FastL2L3Residual' (Data)
Textractor jetCorrExtractor_;

double jetCorrEtaMax_; // do not use JEC factors for |eta| above this threshold
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ MultShiftMETcorrInputProducer::MultShiftMETcorrInputProducer(const edm::Paramete
TString corrPyFormula = v->getParameter<std::string>("fy");
std::vector<double> corrPxParams = v->getParameter<std::vector<double> >("px");
std::vector<double> corrPyParams = v->getParameter<std::vector<double> >("py");

formula_x_.push_back( std::unique_ptr<TF1>(new TF1(std::string(moduleLabel_).append("_").append(v->getParameter<std::string>("name")).append("_corrPx").c_str(), v->getParameter<std::string>("fx").c_str()) ) );
formula_y_.push_back( std::unique_ptr<TF1>(new TF1(std::string(moduleLabel_).append("_").append(v->getParameter<std::string>("name")).append("_corrPy").c_str(), v->getParameter<std::string>("fy").c_str()) ) );

Expand All @@ -68,10 +68,9 @@ void MultShiftMETcorrInputProducer::produce(edm::Event& evt, const edm::EventSet
{
//get primary vertices
edm::Handle<edm::View<reco::Vertex> > hpv;
try {
evt.getByToken( vertices_, hpv );
} catch ( cms::Exception & e ) {
std::cout <<"[MultShiftMETcorrInputProducer] error: " << e.what() << std::endl;
evt.getByToken( vertices_, hpv );
if(!hpv.isValid()) {
edm::LogError("MultShiftMETcorrInputProducer::produce") << "could not find vertex collection ";
}
std::vector<reco::Vertex> goodVertices;
for (unsigned i = 0; i < hpv->size(); i++) {
Expand Down Expand Up @@ -104,6 +103,9 @@ void MultShiftMETcorrInputProducer::produce(edm::Event& evt, const edm::EventSet
//MM: loop over all constituent types and sum each correction
std::auto_ptr<CorrMETData> metCorr(new CorrMETData());

double corx=0.;
double cory=0.;

for (std::vector<edm::ParameterSet>::const_iterator v = cfgCorrParameters_.begin(); v!=cfgCorrParameters_.end(); v++) {
unsigned j=v-cfgCorrParameters_.begin();

Expand All @@ -117,10 +119,14 @@ void MultShiftMETcorrInputProducer::produce(edm::Event& evt, const edm::EventSet
if (varType_[j]==2) {
val = sumPt_[j];
}
metCorr->mex = -formula_x_[j]->Eval(val);
metCorr->mey = -formula_y_[j]->Eval(val);
}

corx -= formula_x_[j]->Eval(val);
cory -= formula_y_[j]->Eval(val);

} //end loop over corrections

metCorr->mex = corx;
metCorr->mey = cory;
evt.put(metCorr, "");

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@
##____________________________________________________________________________||
corrPfMetType1 = cms.EDProducer(
"PFJetMETcorrInputProducer",
src = cms.InputTag('ak4PFJets'),
offsetCorrLabel = cms.InputTag("ak4PFL1FastjetCorrector"),
jetCorrLabel = cms.InputTag("ak4PFL1FastL2L3Corrector"), # NOTE: use "ak4PFL1FastL2L3Corrector" for MC / "ak4PFL1FastL2L3ResidualCorrector" for Data
src = cms.InputTag('ak4PFJetsCHS'),
offsetCorrLabel = cms.InputTag("ak4PFCHSL1FastjetCorrector"),
jetCorrLabel = cms.InputTag("ak4PFCHSL1FastL2L3Corrector"), #for MC
jetCorrLabelRes = cms.InputTag("ak4PFCHSL1FastL2L3ResidualCorrector"), # for data, automatic switch
jetCorrEtaMax = cms.double(9.9),
type1JetPtThreshold = cms.double(10.0),
skipEM = cms.bool(True),
Expand Down Expand Up @@ -71,7 +72,8 @@
pfCandsNotInJetsPtrForMetCorr +
pfCandsNotInJetsForMetCorr +
pfCandMETcorr +
ak4PFL1FastL2L3CorrectorChain + # NOTE: use "ak4PFL1FastL2L3CorrectorChain" for MC / "ak4PFL1FastL2L3ResidualCorrectorChain" for Data
ak4PFCHSL1FastL2L3ResidualCorrectorChain + #Data full chain
ak4PFCHSL1FastL2L3Corrector + #MC last corrector, previous are already in the data chain
corrPfMetType1 +
corrPfMetType2
)
Expand Down
135 changes: 135 additions & 0 deletions JetMETCorrections/Type1MET/python/multPhiCorr_741_25nsDY_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
import FWCore.ParameterSet.Config as cms
multPhiCorr_741_25nsDY = cms.VPSet(
cms.PSet(
name=cms.string("hEtaPlus"),
type=cms.int32(1),
varType=cms.int32(0),
etaMin=cms.double(0),
etaMax=cms.double(2.7),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.00229295500096,3.15487850373e-07),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(0.000114282381437,-1.58467325852e-08),
),
cms.PSet(
name=cms.string("hEtaMinus"),
type=cms.int32(1),
varType=cms.int32(0),
etaMin=cms.double(-2.7),
etaMax=cms.double(0),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.000198571488347,-1.94054852726e-07),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(-0.00137832489313,-2.02238617742e-06),
),
cms.PSet(
name=cms.string("h0Barrel"),
type=cms.int32(5),
varType=cms.int32(0),
etaMin=cms.double(-1.392),
etaMax=cms.double(1.392),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.0153652906396,-3.80210366974e-05),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(0.00798098092474,-0.000103998219585),
),
cms.PSet(
name=cms.string("h0EndcapPlus"),
type=cms.int32(5),
varType=cms.int32(0),
etaMin=cms.double(1.392),
etaMax=cms.double(3),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.00305719113962,-0.00032676418359),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(-0.00345131507897,0.000164816815994),
),
cms.PSet(
name=cms.string("h0EndcapMinus"),
type=cms.int32(5),
varType=cms.int32(0),
etaMin=cms.double(-3.0),
etaMax=cms.double(-1.392),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.000159031461755,0.00012231873804),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(0.0260436390996,-8.17994745657e-05),
),
cms.PSet(
name=cms.string("gammaBarrel"),
type=cms.int32(4),
varType=cms.int32(0),
etaMin=cms.double(-1.479),
etaMax=cms.double(1.479),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.00163144589987,3.17557692226e-06),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(-0.000710945802217,6.45810884842e-06),
),
cms.PSet(
name=cms.string("gammaEndcapPlus"),
type=cms.int32(4),
varType=cms.int32(0),
etaMin=cms.double(1.479),
etaMax=cms.double(3.0),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.00108893779312,-2.53584544941e-05),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(0.00188026342884,8.15028097381e-05),
),
cms.PSet(
name=cms.string("gammaEndcapMinus"),
type=cms.int32(4),
varType=cms.int32(0),
etaMin=cms.double(-3.0),
etaMax=cms.double(-1.479),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.00130486432072,1.72313009972e-05),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(-0.00367119684052,-1.63143116342e-05),
),
cms.PSet(
name=cms.string("hHFPlus"),
type=cms.int32(6),
varType=cms.int32(0),
etaMin=cms.double(2.901376),
etaMax=cms.double(5.2),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.000218928792083,-1.0492437382e-06),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(2.7982430778e-05,-6.87804028426e-08),
),
cms.PSet(
name=cms.string("hHFMinus"),
type=cms.int32(6),
varType=cms.int32(0),
etaMin=cms.double(-5.2),
etaMax=cms.double(-2.901376),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(-0.000851170798547,3.18768998961e-07),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(6.10447368609e-05,-5.92655106387e-07),
),
cms.PSet(
name=cms.string("egammaHFPlus"),
type=cms.int32(7),
varType=cms.int32(0),
etaMin=cms.double(2.901376),
etaMax=cms.double(5.2),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(0.00138084425101,-6.39459000901e-06),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(-0.000532336534523,2.21305870813e-06),
),
cms.PSet(
name=cms.string("egammaHFMinus"),
type=cms.int32(7),
varType=cms.int32(0),
etaMin=cms.double(-5.2),
etaMax=cms.double(-2.901376),
fx=cms.string("(x*[0])+(sq(x)*[1])"),
px=cms.vdouble(0.00102598393499,-3.37284909389e-06),
fy=cms.string("(x*[0])+(sq(x)*[1])"),
py=cms.vdouble(0.000439449053802,-2.3750891943e-06),
),
)
Loading