当前位置: 首页>>代码示例>>C++>>正文


C++ Jet::getVarF方法代码示例

本文整理汇总了C++中Jet::getVarF方法的典型用法代码示例。如果您正苦于以下问题:C++ Jet::getVarF方法的具体用法?C++ Jet::getVarF怎么用?C++ Jet::getVarF使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Jet的用法示例。


在下文中一共展示了Jet::getVarF方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: smearedJet

Jet smearedJet(const Jet & origJet, unsigned mode) {
	if (origJet.getVarF("jn_genpt") <= 0)
		return origJet;

	//smearing factors are described in https://twiki.cern.ch/twiki/bin/view/CMS/JetResolution
	double eta = fabs(origJet.lorentzVector().Eta());
	double pt = origJet.lorentzVector().Pt();
	double ptSF = 1.0;
	double ptSF_err = 0.06;
	if (eta < 0.5) {
		ptSF = 1.052;
		ptSF_err = sqrt(pow(0.012, 2) + pow(0.5 * (0.062 + 0.061), 2));
	} else if (eta >= 0.5 && eta < 1.1) {
		ptSF = 1.057;
		ptSF_err = sqrt(pow(0.012, 2) + pow(0.5 * (0.056 + 0.055), 2));
	} else if (eta >= 1.1 && eta < 1.7) {
		ptSF = 1.096;
		ptSF_err = sqrt(pow(0.017, 2) + pow(0.5 * (0.063 + 0.062), 2));
	} else if (eta >= 1.7 && eta < 2.3) {
		ptSF = 1.134;
		ptSF_err = sqrt(pow(0.035, 2) + pow(0.5 * (0.087 + 0.085),2));
	} else if (eta >= 2.3 && eta < 5.0) {
		ptSF = 1.288;
		ptSF_err = sqrt(pow(0.127, 2) + pow(0.5 * (0.155 + 0.153), 2));
	}

	if (mode == 1)
		ptSF += ptSF_err;
	else if (mode == 2)
		ptSF -= ptSF_err;
	
	ptSF = max(0., (origJet.getVarF("jn_genpt") + ptSF * (pt - origJet.getVarF("jn_genpt")))) / pt;  //deterministic version
	if (ptSF <= 0)
		return origJet;

	double px = origJet.getVarF("jn_px") * ptSF;
	double py = origJet.getVarF("jn_py") * ptSF;
	double pz = origJet.getVarF("jn_pz");
	double mass = origJet.lorentzVector().M();
	double en = sqrt(mass * mass + px * px + py * py + pz * pz);

	Jet smearedJet(origJet);
	smearedJet.addFloatVar( "jn_px", px );
	smearedJet.addFloatVar( "jn_py", py );
	smearedJet.addFloatVar( "jn_pz", pz );
	smearedJet.addFloatVar( "jn_en", en );
	return smearedJet;
}
开发者ID:qbaza,项目名称:CMSSW_MacroLibrary,代码行数:48,代码来源:preselectionCMG.cpp


注:本文中的Jet::getVarF方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。