c_cpp 用于计算来自TChain的给定变量集的cov矩阵的宏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 用于计算来自TChain的给定变量集的cov矩阵的宏相关的知识,希望对你有一定的参考价值。


#include "Reporter.h"
#include "RooPlotLib.h"

map< string, double> cov_matrix( vector<string> sources, string cut ){

	Reporter rp( "rp_cov_matrix.pdf", 600, 600 );
	RooPlotLib rpl;

	TChain * c = new TChain( "rcpPicoDst" );
	c->Add( "/Users/danielbrandenburg/bnl/local/data/RcpAnalysis/data/RcpPicoDst/tuple_93477DF676758D2254762F71F52E3D44_14*.root" );

	// first make histograms of each source
	map< string, TH1* > hSource;
	map< string, double > mu;
	map< string, double > sigma;

	for ( string source : sources ){
		c->Draw( (source + " >> h_" + source).c_str(), cut.c_str() );
		hSource[ source ] = (TH1*) gDirectory->Get( ("h_" + source ).c_str() );

		mu[ source ] = hSource[ source ]->GetMean();
		sigma[ source ] = hSource[ source ]->GetRMS();

		rpl.style( hSource[ source ] ) .set( "title", source ).draw();

		rp.savePage();

	}

	map< string, TH1 * > pairs;
	map< string, double > coef;
	map< string, double > u_coef;
	
	int i = 0;
	for ( string source1 : sources ){
		int j = 0;
		for ( string source2 : sources ){
			if ( source1 == source2 ){
				j++;
				continue;
			}
			if ( j > i )
				break;

			string expr = "( " + source1 + " - " + dts( mu[source1] ) + " ) * ( " + source2 + " - " + dts( mu[source2] ) + " ) / ( " + dts( sigma[source1] * sigma[source2] ) + " ) >> h_" + source1 + "_" + source2 ;
			c->Draw( expr.c_str(), cut.c_str() );

			string pName = source1+"_"+source2;
			pairs[ pName ] = (TH1*)gDirectory->Get( ("h_" + source1 + "_" + source2).c_str() );

			coef[ pName ] = pairs[ pName ]->GetMean();
			u_coef[ pName ] = pairs[ pName ]->GetRMS();

			rpl.style( pairs[ pName ] ) .set( "title", source1 + " X " + source2 ).draw();

			rp.savePage();
			j++;
		}
		i++;
	}

	return coef;
}

以上是关于c_cpp 用于计算来自TChain的给定变量集的cov矩阵的宏的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 来自顶点的给定长度的所有路径

c_cpp 使用后缀数组计算给定文本中子字符串的出现次数

c_cpp 用于检查给定整数是正还是负的C程序

c_cpp 在给定pid的情况下计算打开文件描述符的实用程序

c_cpp Arduino定义常量变量 - 来自https://www.arduino.cc/en/reference/define

c_cpp Mandelbrot集的ASCII图像