double gMatrixSparse::gColumnSparse::getNorm(gMatrixd::NormDef n)
{
    switch (n) {
        case gMatrixd::NORM_ONE:
        {
            double sum = 0.0;
            for (int i = 0; i < nnz; i++)
                sum += fabs(vals[i]);
            return sum;
        }
        case gMatrixd::NORM_TWO: default:
        {
            double sum = 0.0;
            double xmax = getNorm(gMatrixd::NORM_INF);
            for (int i = 0; i < nnz; i++)
                sum += (vals[i] * vals[i]) / (xmax * xmax);
            return xmax * sqrt(sum);
        }
        case gMatrixd::NORM_INF:
        {
            double max = 0.0;
            for (int i = 0; i < nnz; i++)
                if (fabs(vals[i]) > max) max = fabs(vals[i]);
            return max;
        }
    }
}
Exemple #2
0
//------------------------------------------------------------------------------
// normalize this vector
//------------------------------------------------------------------------------
bool RVector::normalize()
{
   if (isZeroVector()) return false;

   const double sf = 1.0 / getNorm();
   multiply(sf);
   return true;
}
// groupedSliders are in the upper set of sliders
void TriangleDensityWidget::groupedSliderChangedSlot(int value)
{
	TriangleList triangles = triangleScene->triangles();
	double norm = getNorm();
	triangles.at(grouped_slider_idx)->xform()->density
		= (double)value / 1000. * norm;
	resetSliders(norm);
	emit dataChanged();
}
Exemple #4
0
// To normalize a vector
void normalize (GLfloat * a)
{
	GLfloat norm=getNorm(a);
	if (norm!=0.0)
	{
	    a[0]/=norm;
	    a[1]/=norm;
	    a[2]/=norm;
	}
}
Exemple #5
0
void Vector::normalize(void) {

	double x, y, z, norm = getNorm();

	x = _x/norm;
    y = _y/norm;
    z = _z/norm;

	_x = x;
    _y = y;
    _z = z;
}
Exemple #6
0
	bool Vector3D::normalize()
	{
		float norm = getNorm();
		if (norm != 0.0f)
		{
			x /= norm;
			y /= norm;
			z /= norm;
			return true;
		}
		return false;
	}
Exemple #7
0
VectorSpherical Vector3::toSpherical() const {
    VectorSpherical result;

    result.phi = _euclidGet2DAngle(x, -z);
    result.theta = _euclidGet2DAngle(sqrt(x * x + z * z), y);
    if (y < 0.0) {
        result.theta -= 2.0 * Maths::PI;
    }
    result.r = getNorm();

    return result;
}
Exemple #8
0
TH2F* Sample::getHistoNtpFile(TString xvar, Int_t xnbins, Float_t xmin, Float_t xmax, TString yvar, Int_t ynbins, Float_t ymin, Float_t ymax, TString selection){
  if(!ntpChain_) openNtpFile();
    
  TH2F* h=new TH2F(TString("Sample")+GetName(),"",xnbins,xmin,xmax,ynbins,ymin,ymax);
  h->Sumw2();
  if(ntpChain_->GetNtrees()>0){
    ntpChain_->Draw(yvar+":"+xvar+">>"+h->GetName(),selection);
    h->Scale(getNorm());
  }

  return h;
}
Exemple #9
0
TH1F* Sample::getHistoNtpFile(TString xvar,Int_t xnbins,Float_t xmin,Float_t xmax,TString selection){
  if(!ntpChain_) openNtpFile();
    
  TH1F* h=new TH1F(TString("Sample")+GetName(),xvar,xnbins,xmin,xmax);
  h->GetXaxis()->SetTitle(xvar);
  h->Sumw2();
  if(ntpChain_->GetNtrees()>0){
    ntpChain_->Draw(xvar+">>"+h->GetName(),selection);
    h->Scale(getNorm());
  }

  return h;
}
Exemple #10
0
TH1F * Sample::getHistoNtpFile(TString xvar,Int_t Nbins, Float_t * Xbins, TString selection){
  if(!ntpChain_) openNtpFile();

  TH1F* h=new TH1F(TString("Sample")+GetName(),xvar,Nbins,Xbins);
  h->GetXaxis()->SetTitle(xvar);
  h->Sumw2();
  if(ntpChain_->GetNtrees()>0){
    ntpChain_->Draw(xvar+">>"+h->GetName(),selection);
    //cout<<"Scaling "<<GetName()<<" by "<<getNorm()<<endl;
    h->Scale(getNorm());
  }

  return h;
}
/*
 *	n o r m a l i s e C o n s t r a i n t s
 */
returnValue normaliseConstraints(	int_t nV, int_t nC,
									real_t* A, real_t* lbA, real_t* ubA,
									int_t type
									)
{
	int_t ii, jj;
	real_t curNorm;

	if ( ( nV <= 0 ) || ( nC <= 0 ) || ( A == 0 ) )
		return THROWERROR( RET_INVALID_ARGUMENTS );

	for( ii=0; ii<nC; ++ii )
	{
		/* get row norm */
		curNorm = getNorm( &(A[ii*nV]),nV,type );

		if ( curNorm > EPS )
		{
			/* normalise if norm is positive */
			for( jj=0; jj<nV; ++jj )
				A[ii*nV + jj] /= curNorm;

			if ( lbA != 0 ) lbA[ii] /= curNorm;
			if ( ubA != 0 ) ubA[ii] /= curNorm;
		}
		else
		{
			/* if row norm is (close to) zero, kind of erase constraint */
			if ( type == 1 )
			{
				for( jj=0; jj<nV; ++jj )
					A[ii*nV + jj] = 1.0 / ((real_t)nV);
			}
			else
			{
				/* assume type == 2 */
				for( jj=0; jj<nV; ++jj )
					A[ii*nV + jj] = 1.0 / getSqrt((real_t)nV);
			}

			if ( lbA != 0 ) lbA[ii] = -INFTY;
			if ( ubA != 0 ) ubA[ii] =  INFTY;
		}
	}

	return SUCCESSFUL_RETURN;
}
void TriangleDensityWidget::reset()
{
	TriangleList triangles = triangleScene->triangles();

	// make more sliders if necessary
	while (sliders.size() < triangles.size())
	{
		GroupedSlider* s
			= new GroupedSlider(Qt::Horizontal, this, sliders.size());
		QLabel* name = new QLabel(QString::number(sliders.size() + 1));
		QHBoxLayout* hl = new QHBoxLayout();
		hl->addWidget(name);
		hl->addWidget(s);
		dynamic_cast<QVBoxLayout*>
			(m_scrollAreaWidgetContents->layout())->insertLayout(-1,hl,0);
		s->setRange(0, 1000);
		s->setVisible(false);
		sliders.append(s);
		slider_names.append(name);
		connect(s, SIGNAL(valueChanged(int)), this, SLOT(groupedSliderChangedSlot(int)));
		connect(s, SIGNAL(sliderPressed()), this, SLOT(groupedSliderPressedSlot()));
		connect(s, SIGNAL(undoStateSignal()), this, SIGNAL(undoStateSignal()));
	}
	// hide non-used sliders
	for (int n = triangles.size() ; n < sliders.size() ; n++)
	{
		sliders.at(n)->setVisible(false);
		slider_names.at(n)->setVisible(false);
	}
	resetSliders(getNorm());

	QStringList items;
	items << tr("None");
	for (int n = 1 ; n <= genome->size() ; n++)
		items << QString::number(n);
	int n = m_crossComboBox->currentIndex();
	m_crossComboBox->blockSignals(true);
	m_crossComboBox->clear();
	m_crossComboBox->addItems(items);
	m_crossComboBox->setCurrentIndex(n);
	m_crossComboBox->blockSignals(false);
}
Exemple #13
0
CMatrix::MatrixError_t CMatrix::normalize_I( ActionAppliedTo_t eActionArea /*= kAll*/, int p /*= 1*/ )
{
    float fNorm;
    
    if (eActionArea == kAll)
    {
        fNorm   = getNorm(p);

        if (fNorm <= 0)
            return kMatrixNoError;

        for (int i = 0; i < m_aiMatrixDimensions[kRow]; i++)
            CUtil::mulBuffC(m_ppfMatrix[i], 1.F/fNorm, m_aiMatrixDimensions[kCol]);
    }
    else if (eActionArea == kRow)
    {
        for (int i = 0; i < m_aiMatrixDimensions[kRow]; i++)
        {
            fNorm   = getVectorNorm(i,-1,p);
            if (fNorm <= 0)
                return kMatrixNoError;

            CUtil::mulBuffC(m_ppfMatrix[i], 1.F/fNorm, m_aiMatrixDimensions[kCol]);
        }
    }
    else if (eActionArea == kCol)
    {
        for (int j = 0; j < m_aiMatrixDimensions[kCol]; j++)
        {
            fNorm   = getVectorNorm(-1,j,p);
            if (fNorm <= 0)
                return kMatrixNoError;

            for (int i = 0; i < m_aiMatrixDimensions[kRow]; i++)
                m_ppfMatrix[i][j]  /= fNorm;
        }
    }

    return kMatrixNoError;
}
void gMatrixSparse::gColumnSparse::normalize(gMatrixd::NormDef n)
{
    (*this)*= 1.0 / getNorm(n);
}
Exemple #15
0
int main() {

    int i, j, tstep;

    time_t t;
    srand((unsigned) time(&t));

    struct timeval startTime, endTime;
    long long time1, time2, totaltime;

    getBasic();
    printf("No. of Particles : %d\nNo. of Particles on shell : %d\nShell Radius : %d \n", npos, nsphere, shell_radius);

    /////START TOTAL_TIME
    //gettimeofday(&startTime, NULL);

    double *pos, *shell, *rad;
    pos = (double *)malloc(sizeof(double)*(npos+nsphere)*3);
    rad = (double *)malloc(sizeof(double)*npos);
    shell = pos + 3*npos;

    setPosRad(pos, rad);
    savePos(pos, rad, 0);
    getShell(shell);

    //printf("here\n");

    //check pos & shell
    //printVectors(pos, npos+nsphere, 3);

    double L = 2*shell_radius;
    int boxdim = shell_radius;
    double cutoff2 = (2 * shell_particle_radius) * (2 * shell_particle_radius);

    int maxnumpairs = 5000000;
    int *pairs = (int *)malloc(sizeof(int)*2*maxnumpairs);
    int *finalPairs = (int *)malloc(sizeof(int)*2*maxnumpairs);
    double *distances2 = (double *)malloc(sizeof(double)*maxnumpairs);
    int numpairs_p;

    double *f;
    f = (double *)malloc(sizeof(double)*3*npos);
    complex *f1, *f2, *f3, *rpy, *lanczos_out;
    f1 = (complex *)malloc(sizeof(complex)*npos);
    f2 = (complex *)malloc(sizeof(complex)*npos);
    f3 = (complex *)malloc(sizeof(complex)*npos);
    rpy = (complex *)malloc(sizeof(complex)*(npos*3));
    lanczos_out = (complex *)malloc(sizeof(complex)*(npos*3));

    double *f_serial;
    f_serial = (double *)malloc(sizeof(double)*3*npos);
    double error1, error2;
    double *standardNormalZ1, *standardNormalZ;
    standardNormalZ = (double *)malloc(sizeof(double)*npos*3);
    standardNormalZ1 = (double *)malloc(sizeof(double)*npos*3);

    lanczos_t *lanczos, *lanczos1;
    lanczos = malloc(sizeof(lanczos));

    int maxiters = 200;
    double *A;
    lanczos1 = malloc(sizeof(lanczos));
    A = (double *)malloc(sizeof(double)*3*3*npos*npos);
    char dir[100] = "outputs/";

    //double *Mf;
    //Mf = (double *)malloc(sizeof(double)*3*npos);

    for(tstep = 0; tstep<tmax; tstep++) {

        printf("time step %d started\n", tstep+1);



        //gettimeofday(&startTime, NULL);
        interactions(npos+nsphere, pos, L, boxdim, cutoff2, distances2, pairs, maxnumpairs, &numpairs_p);
        interactionsFilter(&numpairs_p, pairs, finalPairs, rad, pos);

        printf("beyond interactions\n");
        //printf("Final number of pairs (after filtering) : %d\n", numpairs_p);

        computeForce(f, f1, f2, f3, pos, rad, finalPairs, numpairs_p);
        //gettimeofday(&endTime, NULL);
        //time1 = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
        //printf("For INTERACTIVE : %ld msec\n", time1/1000);


        if(CHECKCODE) {

            //gettimeofday(&startTime, NULL);
            computeForceSerial(f_serial, pos, rad, shell);
            //gettimeofday(&endTime, NULL);
            //time2 = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
            //printf("For SERIAL : %ld msec\n", time2/1000);

            //printVectors(f_serial, npos, 3);

            //error1 = relError(f_serial, f, npos, 3);
            //printf("Relative Error in computeForce %lf\n", error1);
            //error2 = maxError(f_serial, f, npos, 3);
            //printf("Max Error in computeForce %lf\n", error2);
        }

        //char dir[100] = "outputs/";
        //printf("Calling computeRPY : \n");
        //gettimeofday(&startTime, NULL);

        computerpy_(&npos, pos, rad, f1, f2, f3, rpy, dir);

        //gettimeofday(&endTime, NULL);
        //time2 = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
        //printf("For 5 call FMM: %ld \n", time2/1000);

        //gettimeofday(&endTime, NULL);
        //time1 = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
        //printf("Total Time taken for RPY with FMM: %ld \n", time1/1000);

        //printf("Calling postCorrection : \n");
        //gettimeofday(&startTime, NULL);

        //postCorrection(npos, pos, rad, numpairs_p, finalPairs, f1, f2, f3, rpy);





        getNorm((100000000+(rand()%99999999)), standardNormalZ);
        //getNorm((100000000+(rand()%99999999)), standardNormalZ1);
        //printVectors(standardNormalZ, 3*npos, 1);

        /*
        		if(CHECKCODE){

        			for(i=0;i<npos*3;i++)
        				standardNormalZ1[i] = standardNormalZ[i];
        		}
        */

        //

        if(CHECKCODE) {

            //create_lanczos (&lanczos1, 1, maxiters, npos*3);

            //double *Az;
            //Az = (double *)malloc(sizeof(double)*3*npos);

            //gettimeofday(&startTime, NULL);
            createDiag(A, rad);
            //sqrtMatrix(A, standardNormalZ1);

            //printVectors(A, 3*npos, 3*npos);

            //printVectorsToFile(A, 3*npos);

            mobilityMatrix(A, pos, rad);

            //printVectorsToFile(A, 3*npos);

            //printVectorsToFile(A, npos*3);

            //compute_lanczos(lanczos1, 1e-4, 1, standardNormalZ1, 3*npos,
            //		SERIAL, f1, f2, f3, lanczos_out, pos, rad, numpairs_p, finalPairs, A);

            //printf("Z: \n");
            //printVectors(standardNormalZ1, npos, 3);

            //printVectorsToFile(A, 3*npos);

            multiplyMatrix(A, f_serial);

            //gettimeofday(&endTime, NULL);
            //time1 = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
            //printf("For SERIAL : %ld msec\n", time1/1000);

            //printf("Mf: \n");
            //printf("M*f : \n");
            //printVectors(A, npos, 3);
            //printf("\n");

            //printf("RPY : \n");
            //printVectorsComplex(rpy, 10, 3);
            //printf("\n");

            //printf("Relative error in RPy and M*f : %lf\n", relErrorRealComplex(A, rpy, npos, 3));
            //printf("Maximum error in Rpy and M*f : %lf\n", maxErrorRealComplex(A, rpy, npos, 3));

        }

        //printf("Adding Random Brownian motion ... \n");

        create_lanczos (&lanczos, 1, maxiters, npos*3);
        compute_lanczos(lanczos, 1e-4, 1, standardNormalZ, 3*npos,
                        FMM, f1, f2, f3, lanczos_out, pos, rad, numpairs_p, finalPairs, A);


        /////////END TOTAL_TIME
        //gettimeofday(&endTime, NULL);
        //totaltime = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
        //printf("Total time computing 1 time step (%d particles) : %ld msec\n", npos, totaltime/1000);


        //if(CHECKCODE){
        //	printf("Relative Error in brownian : %lf\n", relError(standardNormalZ, standardNormalZ1, npos, 3));
        //}


        updatePos(pos, rpy, standardNormalZ);
        //updatePosSerial(pos, A, standardNormalZ1);
        //printf("new pos: \n");
        //printVectors(pos, npos, 3);
        savePos(pos, rad, tstep+1);

        printf("%d time steps done\n\n", tstep+1);

    }

    //gettimeofday(&endTime, NULL);
    //totaltime = (endTime.tv_sec-startTime.tv_sec)*1000000 + endTime.tv_usec-startTime.tv_usec;
    //printf("Total time computing %d time steps (%d particles) : %ld msec\n", tmax, npos, totaltime/1000);

    return 0;
}
Exemple #16
0
void Euler_init(double* accl, double* magn) {
    norm = getNorm(accl);
    for (i=0; i<3; ++i) {
	acclNorm[i] = accl[i] / norm;
	Euler[i] = acos(acclNorm[i]);
    }

    alpha = sqrt((acclNorm[2]+1)/2);

//    q[0] = alpha;
//    q[1] = sqrt(1-pow(alpha,2));
//    for (i=2; i<4; ++i) q[i] = q[1];
//    for (i=1; i<4; ++i) q[i] *= acclNorm[i];

//    Euler[0] = atan2(2*(q[0]*q[1]+q[2]*q[3]) , 1-2*(q[1]*q[1]+q[2]*q[2]));
//    Euler[1] = asin(2*(q[0]*q[2]-q[1]*q[3]));
//    Euler[2] = atan2(2*(q[0]*q[3]+q[2]*q[1]) , 1-2*(q[2]*q[2]+q[3]*q[3]));


//    Euler[2] = getAngle(magn);

    double rotate[4][9] = { {1,0,0, 0, cos(Euler[0]), -sin(Euler[0]) , 0, sin(Euler[0]), cos(Euler[0]) } ,
                {cos(Euler[1]), 0, -sin(Euler[1]) , 0,1,0 , sin(Euler[1]), 0, cos(Euler[1])},
                {cos(Euler[2]), -sin(Euler[2]), 0 , sin(Euler[2]), cos(Euler[2]), 0 , 0,0,1},
                {0,0,0,0,0,0,0,0,0}};
/*

    double rotate[4][9] = { {1,0,0, 0, cos(Euler[0]), sin(Euler[0]) , 0, -sin(Euler[0]), cos(Euler[0]) } ,
                {cos(Euler[1]), 0, sin(Euler[1]) , 0,1,0 , -sin(Euler[1]), 0, cos(Euler[1])},
                {cos(Euler[2]), sin(Euler[2]), 0 , -sin(Euler[2]), cos(Euler[2]), 0 , 0,0,1},
                {0,0,0,0,0,0,0,0,0}};
*/
    gsl_matrix_float_view A = gsl_matrix_float_view_array(&rotate[0][0], 3, 3);
    gsl_matrix_float_view B = gsl_matrix_float_view_array(&rotate[1][0], 3, 3);
    gsl_matrix_float_view C = gsl_matrix_float_view_array(&rotate[2][0], 3, 3);
    gsl_matrix_float_view D = gsl_matrix_float_view_array(&rotate[3][0], 3, 3);
    gsl_matrix_float_view E = gsl_matrix_float_view_array(rotateAll, 3, 3);
    gsl_blas_sgemm (CblasNoTrans, CblasNoTrans,1.0, &B.matrix, &A.matrix, 0.0, &D.matrix);
    gsl_blas_sgemm (CblasNoTrans, CblasNoTrans,1.0, &D.matrix, &C.matrix, 0.0, &E.matrix);

//    norm = getNorm(magn);
    for (i=0; i<3; ++i) magNord[i] = 0;
    magNord[2] = norm;

    gsl_vector_float_view mm = gsl_vector_float_view_array(magNord, 3);
    gsl_vector_float_view aa = gsl_vector_float_view_array(Angle, 3);

    gsl_blas_sgemv (CblasNoTrans, 1.0, &E.matrix, &mm.vector, 0.0, &aa.vector);

/*
    magNord[0] = (cos(Euler[1])*cos(Euler[0]) * magn[0] + (sin(Euler[2])*sin(Euler[1])*cos(Euler[0])-cos(Euler[2])*sin(Euler[0])) * magn[1]
		+ (cos(Euler[2])*sin(Euler[1])*cos(Euler[0])+sin(Euler[2])*sin(Euler[0])) * magn[2])/norm;
    magNord[1] = (cos(Euler[1])*sin(Euler[0]) * magn[0] + (sin(Euler[2])*sin(Euler[1])*sin(Euler[0])-cos(Euler[2])*cos(Euler[0])) * magn[1]
		+ (cos(Euler[2])*sin(Euler[1])*sin(Euler[0])-sin(Euler[2])*cos(Euler[0])) * magn[2])/norm;
    magNord[2] = (-sin(Euler[1]) * magn[0] + sin(Euler[2])*cos(Euler[1]) * magn[1] + cos(Euler[2])*cos(Euler[1]) * magn[2])/norm;

    magNord[0] = (cos(Euler[0])*cos(Euler[1]) - cos(Euler[2])*sin(Euler[0])*sin(Euler[1])) * magn[0] +
 		 (sin(Euler[0])*cos(Euler[1]) + cos(Euler[2])*cos(Euler[0])*sin(Euler[1])) * magn[1] +
		  sin(Euler[2])*sin(Euler[1]) * magn[2];

    magNord[1] = (-cos(Euler[0])*sin(Euler[1]) - cos(Euler[2])*sin(Euler[0])*cos(Euler[1])) * magn[0] +
                 (-sin(Euler[0])*sin(Euler[1]) + cos(Euler[2])*cos(Euler[0])*cos(Euler[1])) * magn[1] +
                  sin(Euler[2])*cos(Euler[1]) * magn[2];

    magNord[2] = sin(Euler[2])*sin(Euler[0]) * magn[0] - sin(Euler[2])*cos(Euler[0])*magn[1] + cos(Euler[2]) * magn[2];
*/
/*
    for (i=0; i<3; ++i) {
	magNord[i] = 0;
	for (j=0; j=3; ++j) {
	    magNord[i] += 
	}
        magNord[i] /= norm;
    }
*/
    printf("%f, %f, %f\t",accl[0],accl[1],accl[2]);
    printf("%f, %f, %f\t",magNord[0],magNord[1],magNord[2]);
    printf("%f, %f, %f\n", Angle[0],Angle[1],Angle[2]);
}
Exemple #17
0
double CompArea1(double *eqn, double *corner)
{
	double val, area, minVal, maxVal;
	int i, minIndex, maxIndex;
	double cos_phi, top_area, bottom_area;

	if((corner[0] < EPS) || (corner[1] < EPS) || (corner[2] < EPS))
	{
		return -1.0;
	}
	if(eqn[2] < 1.0)
	{	// vertical plane
		return -2.0;
	}
	// cos of angle between plane perpendicular and z axis
	cos_phi = eqn[2]/getNorm(&(eqn[0]));
	maxVal = 0.0;
	minVal = 0.0;
	minIndex = maxIndex = -1;
	area = 0.0;
	SetVerts(corner[0], corner[1], corner[2]);
	for(i = 0; i < 8; i++)
	{
		val = applyEqn(eqn, &(vert[i][0]));
		vertVals[i] = val;
		if(val > maxVal)
		{
			maxVal = val;
			maxIndex = i;
		}
		if(val < minVal)
		{
			minVal = val;
			minIndex = i;
		}
	}
	/* sanity check */
	if((minIndex == -1) || (maxIndex == -1))
	{	// all veritces below plane or all above
		return -3.0;
	}
	area = 0.0;
	// see if plane hits top of box
	if((vertVals[1] >= 0.0) && (vertVals[3] >= 0.0) && 
		(vertVals[5] >= 0.0) && (vertVals[7] >= 0.0)) {
		/* plane does not hit top of box */
		top_area = 0.0;
	} else {
		top_area = FindFaceArea(topFaceVerts);
	}

	if((vertVals[0] <= 0.0) && (vertVals[2] <= 0.0) && 
		(vertVals[4] <= 0.0) && (vertVals[6] <= 0.0)) {
		/* does not hit bottom, arrea is whole base */
		bottom_area = corner[0] * corner[1];
	} else {
		bottom_area = FindFaceArea(bottomFaceVerts);
	}
	area = top_area + (bottom_area - top_area)/cos_phi;
	return area;
}
Exemple #18
0
double VectorspaceElement::getNorm( VectorNorm norm ) const{

    VectorspaceElement scale(dim);
    scale.setAll(1.0);
    return getNorm( norm, scale );
}
Exemple #19
0
void produce2D(){

  TFile * f_MC[12];
  TFile * f_RD[3];

  TString path = "/afs/cern.ch/work/y/youngjo/public/For8Tev/v20130613_HFupdw/";

  f_MC[0] = new TFile(path+"vallot_ZJets.root");
  f_MC[1] = new TFile(path+"vallot_ZJets10To50.root");
  f_MC[2] = new TFile(path+"vallot_TTbarFullLepMGDecays.root");
  f_MC[3] = new TFile(path+"vallot_TTbarSemiLeptMGDecays.root");
  f_MC[4] = new TFile(path+"vallot_TTbarHadronicMGDecays.root");
  f_MC[5] = new TFile(path+"vallot_WJetsToLNu.root");
  f_MC[6] = new TFile(path+"vallot_WW.root");
  f_MC[7] = new TFile(path+"vallot_WZ.root");
  f_MC[8] = new TFile(path+"vallot_ZZ.root");
  f_MC[9] = new TFile(path+"vallot_SingleToptW.root");
  f_MC[10] = new TFile(path+"vallot_SingleTopBartW.root");
  f_MC[11] = new TFile(path+"vallot_TTH.root");

  double norm[12];
  double lumi = 19619.0;
  norm[0] = getNorm( f_MC[0], 3503.0,   lumi, "MuMu");
  norm[1] = getNorm( f_MC[1], 860.0,    lumi, "MuMu");
  norm[2] = getNorm( f_MC[2], 26.0,     lumi, "MuMu");
  norm[3] = getNorm( f_MC[3], 104.0,    lumi, "MuMu");
  norm[4] = getNorm( f_MC[4], 104.0,    lumi, "MuMu");
  norm[5] = getNorm( f_MC[5], 37509.0,  lumi, "MuMu");
  norm[6] = getNorm( f_MC[6], 54.8,     lumi, "MuMu");
  norm[7] = getNorm( f_MC[7], 32.3,     lumi, "MuMu");
  norm[8] = getNorm( f_MC[8], 8.1,      lumi, "MuMu");
  norm[9] = getNorm( f_MC[9], 11.1,     lumi, "MuMu");
  norm[10]= getNorm( f_MC[10], 11.1,     lumi, "MuMu");
  norm[11]= getNorm( f_MC[11], 0.1302,     lumi, "MuMu");

  f_RD[0] = new TFile(path+"vallot_Run2012MuMu.root");
  f_RD[1] = new TFile(path+"vallot_Run2012ElEl.root");
  f_RD[2] = new TFile(path+"vallot_Run2012MuEl.root");

  TTree * t_MC[3][12];
  TTree * t_RD[3];

  TCut visible = "nGenJet20 >= 4 && nGenbJet20 >=2 && genLep1_pt > 20 && genLep2_pt > 20 && abs( genLep1_eta ) < 2.4 && abs( genLep2_eta ) < 2.4" ;
  TCut sigcut = "nGenbJet20 >= 4";
  TCut ttb = "nGenbJet20 == 3";
  TCut ttcc = "nGencJet20 >= 2";

  TCut final_em    = "ZMass > 12 && lep1_relIso03 < 0.15 && lep2_relIso03 < 0.15 && PairSign < 0 && nJet30 >= 4 && nbjets30_CSVT >= 2";
  TCut final       = "ZMass > 12 && lep1_relIso03 < 0.15 && lep2_relIso03 < 0.15 && PairSign < 0 && nJet30 >= 4 && nbjets30_CSVT >= 2 && abs(ZMass-91.2) > 15 && MET > 30";
  TCut finalqcd_em = "ZMass > 12 && lep1_relIso03 > 0.15 && lep2_relIso03 > 0.15 && PairSign < 0 && nJet30 >= 4 && nbjets30_CSVT >= 2";
  TCut finalqcd    = "ZMass > 12 && lep1_relIso03 > 0.15 && lep2_relIso03 > 0.15 && PairSign < 0 && nJet30 >= 4 && nbjets30_CSVT >= 2 && abs(ZMass-91.2) > 15 && MET > 30";

  TH1F * x_data[3];
  TH1F * y_data[3];
  TH2F * xy_data[3];
  TH1F * x_DY10To50[3];
  TH1F * y_DY10To50[3];
  TH2F * xy_DY10To50[3];
  TH1F * x_DY[3];
  TH1F * y_DY[3];
  TH2F * xy_DY[3];
  TH1F * x_ttbb[3];
  TH1F * y_ttbb[3];
  TH2F * xy_ttbb[3];
  TH1F * x_ttb[3];
  TH1F * y_ttb[3];
  TH2F * xy_ttb[3];
  TH1F * x_ttcc[3];
  TH1F * y_ttcc[3];
  TH2F * xy_ttcc[3];
  TH1F * x_ttLF[3];
  TH1F * y_ttLF[3];
  TH2F * xy_ttLF[3];
  TH1F * x_ttOthers[3];
  TH1F * y_ttOthers[3];
  TH2F * xy_ttOthers[3];
  TH1F * x_ttSemi[3];
  TH1F * y_ttSemi[3];
  TH2F * xy_ttSemi[3];
  TH1F * x_ttHad[3];
  TH1F * y_ttHad[3];
  TH2F * xy_ttHad[3];
  TH1F * x_wjets[3];
  TH1F * y_wjets[3];
  TH2F * xy_wjets[3];
  TH1F * x_ww[3];
  TH1F * y_ww[3];
  TH2F * xy_ww[3];
  TH1F * x_wz[3];
  TH1F * y_wz[3];
  TH2F * xy_wz[3];
  TH1F * x_zz[3];
  TH1F * y_zz[3];
  TH2F * xy_zz[3];
  TH1F * x_bkg[3];
  TH1F * y_bkg[3];
  TH2F * xy_bkg[3];
  TH1F * x_singleTop[3];
  TH1F * y_singleTop[3];
  TH2F * xy_singleTop[3];
  TH1F * x_singleTopBar[3];
  TH1F * y_singleTopBar[3];
  TH2F * xy_singleTopBar[3]; 
  TH1F * x_QCD[3];
  TH1F * y_QCD[3];
  TH2F * xy_QCD[3];
  TH1F * x_tth[3];
  TH1F * y_tth[3];
  TH2F * xy_tth[3];
 
  TH1F * x_data_all = new TH1F("x_data_all","x_data_all",10,0.0,1.0);
  TH1F * y_data_all = new TH1F("y_data_all","y_data_all",10,0.0,1.0);
  TH2F * xy_data_all = new TH2F("xy_data_all","xy_data_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_DY_all = new TH1F("x_DY_all","x_DY_all",10,0.0,1.0);
  TH1F * y_DY_all = new TH1F("y_DY_all","y_DY_all",10,0.0,1.0);
  TH2F * xy_DY_all = new TH2F("xy_DY_all","xy_DY_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_ttbb_all = new TH1F("x_ttbb_all","x_ttbb_all",10,0.0,1.0);
  TH1F * y_ttbb_all = new TH1F("y_ttbb_all","y_ttbb_all",10,0.0,1.0);
  TH2F * xy_ttbb_all = new TH2F("xy_ttbb_all","xy_ttbb_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_ttb_all = new TH1F("x_ttb_all","x_ttb_all",10,0.0,1.0);
  TH1F * y_ttb_all = new TH1F("y_ttb_all","y_ttb_all",10,0.0,1.0);
  TH2F * xy_ttb_all = new TH2F("xy_ttb_all","xy_ttb_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_ttcc_all = new TH1F("x_ttcc_all","x_ttcc_all",10,0.0,1.0);
  TH1F * y_ttcc_all = new TH1F("y_ttcc_all","y_ttcc_all",10,0.0,1.0);
  TH2F * xy_ttcc_all = new TH2F("xy_ttcc_all","xy_ttcc_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_ttLF_all = new TH1F("x_ttLF_all","x_ttLF_all",10,0.0,1.0);
  TH1F * y_ttLF_all = new TH1F("y_ttLF_all","y_ttLF_all",10,0.0,1.0);
  TH2F * xy_ttLF_all = new TH2F("xy_ttLF_all","xy_ttLF_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_ttOthers_all = new TH1F("x_ttOthers_all","x_ttOthers_all",10,0.0,1.0);
  TH1F * y_ttOthers_all = new TH1F("y_ttOthers_all","y_ttOthers_all",10,0.0,1.0);
  TH2F * xy_ttOthers_all = new TH2F("xy_ttOthers_all","xy_ttOthers_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_bkg_all = new TH1F("x_bkg_all","x_bkg_all",10,0.0,1.0);
  TH1F * y_bkg_all = new TH1F("y_bkg_all","y_bkg_all",10,0.0,1.0);
  TH2F * xy_bkg_all = new TH2F("xy_bkg_all","xy_bkg_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_singleTop_all = new TH1F("x_singleTop_all","x_singleTop_all",10,0.0,1.0);
  TH1F * y_singleTop_all = new TH1F("y_singleTop_all","y_singleTop_all",10,0.0,1.0);
  TH2F * xy_singleTop_all = new TH2F("xy_singleTop_all","xy_singleTop_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_QCD_all = new TH1F("x_QCD_all","x_QCD_all",10,0.0,1.0);
  TH1F * y_QCD_all = new TH1F("y_QCD_all","y_QCD_all",10,0.0,1.0);
  TH2F * xy_QCD_all = new TH2F("xy_QCD_all","xy_QCD_all",10,0.0,1.0,10,0.0,1.0);
  TH1F * x_tth_all = new TH1F("x_tth_all","x_tth_all",10,0.0,1.0);
  TH1F * y_tth_all = new TH1F("y_tth_all","y_tth_all",10,0.0,1.0);
  TH2F * xy_tth_all = new TH2F("xy_tth_all","xy_tth_all",10,0.0,1.0,10,0.0,1.0);


  cout << "fill...." << endl; 
  for(int i=0 ; i < 3; i++){
    cout << "i= " << i << endl;

    double qcdscale = 1.0;
    double dyscale = 1.0;
    TCut sel = final;
    TCut qcdsel = finalqcd;
    TString decay = "";
    if(i == 0) {
      decay = "MuMu";
      qcdscale = 0.028;
      dyscale = 1.73553;
    }
    if(i == 1) {
      decay = "ElEl";
      qcdscale = 0.657;
      dyscale = 1.87588; 
    }
    if(i == 2) {
      decay = "MuEl";
      qcdscale = 0.064; 
      sel = final_em;
      qcdsel = finalqcd_em;
    }

    t_RD[i] = (TTree*) f_RD[i]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][0] = (TTree*) f_MC[0]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][1] = (TTree*) f_MC[1]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][2] = (TTree*) f_MC[2]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][3] = (TTree*) f_MC[3]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][4] = (TTree*) f_MC[4]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][5] = (TTree*) f_MC[5]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][6] = (TTree*) f_MC[6]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][7] = (TTree*) f_MC[7]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][8] = (TTree*) f_MC[8]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][9] = (TTree*) f_MC[9]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][10] = (TTree*) f_MC[10]->Get(Form("%s/tree",decay.Data()));
    t_MC[i][11] = (TTree*) f_MC[11]->Get(Form("%s/tree",decay.Data()));

    x_data[i] = new TH1F(Form("x_data_%s",decay.Data()),Form("x_data_%s",decay.Data()),10,0.0,1.0);
    y_data[i] = new TH1F(Form("y_data_%s",decay.Data()),Form("y_data_%s",decay.Data()),10,0.0,1.0);
    xy_data[i] = new TH2F(Form("xy_data_%s",decay.Data()),Form("xy_data_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_DY10To50[i] = new TH1F(Form("x_DY10To50_%s",decay.Data()),Form("x_DY10To50_%s",decay.Data()),10,0.0,1.0);
    y_DY10To50[i] = new TH1F(Form("y_DY10To50_%s",decay.Data()),Form("y_DY10To50_%s",decay.Data()),10,0.0,1.0);
    xy_DY10To50[i] = new TH2F(Form("xy_DY10To50_%s",decay.Data()),Form("xy_DY10To50_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_DY[i] = new TH1F(Form("x_DY_%s",decay.Data()),Form("x_DY_%s",decay.Data()),10,0.0,1.0);
    y_DY[i] = new TH1F(Form("y_DY_%s",decay.Data()),Form("y_DY_%s",decay.Data()),10,0.0,1.0);
    xy_DY[i] = new TH2F(Form("xy_DY_%s",decay.Data()),Form("xy_DY_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttbb[i] = new TH1F(Form("x_ttbb_%s",decay.Data()),Form("x_ttbb_%s",decay.Data()),10,0.0,1.0);
    y_ttbb[i] = new TH1F(Form("y_ttbb_%s",decay.Data()),Form("y_ttbb_%s",decay.Data()),10,0.0,1.0);
    xy_ttbb[i] = new TH2F(Form("xy_ttbb_%s",decay.Data()),Form("xy_ttbb_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttb[i] = new TH1F(Form("x_ttb_%s",decay.Data()),Form("x_ttb_%s",decay.Data()),10,0.0,1.0);
    y_ttb[i] = new TH1F(Form("y_ttb_%s",decay.Data()),Form("y_ttb_%s",decay.Data()),10,0.0,1.0);
    xy_ttb[i] = new TH2F(Form("xy_ttb_%s",decay.Data()),Form("xy_ttb_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttcc[i] = new TH1F(Form("x_ttcc_%s",decay.Data()),Form("x_ttcc_%s",decay.Data()),10,0.0,1.0);
    y_ttcc[i] = new TH1F(Form("y_ttcc_%s",decay.Data()),Form("y_ttcc_%s",decay.Data()),10,0.0,1.0);
    xy_ttcc[i] = new TH2F(Form("xy_ttcc_%s",decay.Data()),Form("xy_ttcc_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttLF[i] = new TH1F(Form("x_ttLF_%s",decay.Data()),Form("x_ttLF_%s",decay.Data()),10,0.0,1.0);
    y_ttLF[i] = new TH1F(Form("y_ttLF_%s",decay.Data()),Form("y_ttLF_%s",decay.Data()),10,0.0,1.0);
    xy_ttLF[i] = new TH2F(Form("xy_ttLF_%s",decay.Data()),Form("xy_ttLF_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttOthers[i] = new TH1F(Form("x_ttOthers_%s",decay.Data()),Form("x_ttOthers_%s",decay.Data()),10,0.0,1.0);
    y_ttOthers[i] = new TH1F(Form("y_ttOthers_%s",decay.Data()),Form("y_ttOthers_%s",decay.Data()),10,0.0,1.0);
    xy_ttOthers[i] = new TH2F(Form("xy_ttOthers_%s",decay.Data()),Form("xy_ttOthers_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttSemi[i] = new TH1F(Form("x_ttSemi_%s",decay.Data()),Form("x_ttSemi_%s",decay.Data()),10,0.0,1.0);
    y_ttSemi[i] = new TH1F(Form("y_ttSemi_%s",decay.Data()),Form("y_ttSemi_%s",decay.Data()),10,0.0,1.0);
    xy_ttSemi[i] = new TH2F(Form("xy_ttSemi_%s",decay.Data()),Form("xy_ttSemi_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ttHad[i] = new TH1F(Form("x_ttHad_%s",decay.Data()),Form("x_ttHad_%s",decay.Data()),10,0.0,1.0);
    y_ttHad[i] = new TH1F(Form("y_ttHad_%s",decay.Data()),Form("y_ttHad_%s",decay.Data()),10,0.0,1.0);
    xy_ttHad[i] = new TH2F(Form("xy_ttHad_%s",decay.Data()),Form("xy_ttHad_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_wjets[i] = new TH1F(Form("x_wjets_%s",decay.Data()),Form("x_wjets_%s",decay.Data()),10,0.0,1.0);
    y_wjets[i] = new TH1F(Form("y_wjets_%s",decay.Data()),Form("y_wjets_%s",decay.Data()),10,0.0,1.0);
    xy_wjets[i] = new TH2F(Form("xy_wjets_%s",decay.Data()),Form("xy_wjets_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_ww[i] = new TH1F(Form("x_ww_%s",decay.Data()),Form("x_ww_%s",decay.Data()),10,0.0,1.0);
    y_ww[i] = new TH1F(Form("y_ww_%s",decay.Data()),Form("y_ww_%s",decay.Data()),10,0.0,1.0);
    xy_ww[i] = new TH2F(Form("xy_ww_%s",decay.Data()),Form("xy_ww_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);
 
    x_wz[i] = new TH1F(Form("x_wz_%s",decay.Data()),Form("x_wz_%s",decay.Data()),10,0.0,1.0);
    y_wz[i] = new TH1F(Form("y_wz_%s",decay.Data()),Form("y_wz_%s",decay.Data()),10,0.0,1.0);
    xy_wz[i] = new TH2F(Form("xy_wz_%s",decay.Data()),Form("xy_wz_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_zz[i] = new TH1F(Form("x_zz_%s",decay.Data()),Form("x_zz_%s",decay.Data()),10,0.0,1.0);
    y_zz[i] = new TH1F(Form("y_zz_%s",decay.Data()),Form("y_zz_%s",decay.Data()),10,0.0,1.0);
    xy_zz[i] = new TH2F(Form("xy_zz_%s",decay.Data()),Form("xy_zz_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);
 
    x_bkg[i] = new TH1F(Form("x_bkg_%s",decay.Data()),Form("x_bkg_%s",decay.Data()),10,0.0,1.0);
    y_bkg[i] = new TH1F(Form("y_bkg_%s",decay.Data()),Form("y_bkg_%s",decay.Data()),10,0.0,1.0);
    xy_bkg[i] = new TH2F(Form("xy_bkg_%s",decay.Data()),Form("xy_bkg_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_singleTop[i] = new TH1F(Form("x_singleTop_%s",decay.Data()),Form("x_singleTop_%s",decay.Data()),10,0.0,1.0);
    y_singleTop[i] = new TH1F(Form("y_singleTop_%s",decay.Data()),Form("y_singleTop_%s",decay.Data()),10,0.0,1.0);
    xy_singleTop[i] = new TH2F(Form("xy_singleTop_%s",decay.Data()),Form("xy_singleTop_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_singleTopBar[i] = new TH1F(Form("x_singleTopBar_%s",decay.Data()),Form("x_singleTopBar_%s",decay.Data()),10,0.0,1.0);
    y_singleTopBar[i] = new TH1F(Form("y_singleTopBar_%s",decay.Data()),Form("y_singleTopBar_%s",decay.Data()),10,0.0,1.0);
    xy_singleTopBar[i] = new TH2F(Form("xy_singleTopBar_%s",decay.Data()),Form("xy_singleTopBar_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_QCD[i] = new TH1F(Form("x_QCD_%s",decay.Data()),Form("x_QCD_%s",decay.Data()),10,0.0,1.0);
    y_QCD[i] = new TH1F(Form("y_QCD_%s",decay.Data()),Form("y_QCD_%s",decay.Data()),10,0.0,1.0);
    xy_QCD[i] = new TH2F(Form("xy_QCD_%s",decay.Data()),Form("xy_QCD_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    x_tth[i] = new TH1F(Form("x_tth_%s",decay.Data()),Form("x_tth_%s",decay.Data()),10,0.0,1.0);
    y_tth[i] = new TH1F(Form("y_tth_%s",decay.Data()),Form("y_tth_%s",decay.Data()),10,0.0,1.0);
    xy_tth[i] = new TH2F(Form("xy_tth_%s",decay.Data()),Form("xy_tth_%s",decay.Data()),10,0.0,1.0,10,0.0,1.0);

    t_RD[i]->Project(Form("xy_data_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",sel);
    t_RD[i]->Project(Form("x_data_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",sel);
    t_RD[i]->Project(Form("y_data_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",sel);

    t_RD[i]->Project(Form("xy_QCD_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",qcdsel);
    t_RD[i]->Project(Form("x_QCD_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",qcdsel);
    t_RD[i]->Project(Form("y_QCD_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",qcdsel);

    TCut cut_sel = sel;
    TString cutStr_sel ;
    cutStr_sel = cut_sel;
    TCut cut_selStr = Form("puweight*lepweight*csvweight*(%s)", cutStr_sel.Data());

    TCut cut_ttbb = sel+visible+sigcut;
    TString cutStr_ttbb ;
    cutStr_ttbb = cut_ttbb;
    TCut cut_ttbbStr = Form("puweight*lepweight*csvweight*(%s)", cutStr_ttbb.Data());

    TCut cut_ttb = sel+visible+ttb;
    TString cutStr_ttb ;
    cutStr_ttb = cut_ttb;
    TCut cut_ttbStr = Form("puweight*lepweight*csvweight*(%s)", cutStr_ttb.Data()); 

    TCut cut_ttcc = sel+visible+!sigcut+!ttb+ttcc;
    TString cutStr_ttcc ;
    cutStr_ttcc = cut_ttcc;
    TCut cut_ttccStr = Form("puweight*lepweight*csvweight*(%s)", cutStr_ttcc.Data());
 
    TCut cut_ttLF = sel+visible+!sigcut+!ttb+!ttcc;
    TString cutStr_ttLF ;
    cutStr_ttLF = cut_ttLF;
    TCut cut_ttLFStr = Form("puweight*lepweight*csvweight*(%s)", cutStr_ttLF.Data());

    TCut cut_ttOthers = sel+!visible;
    TString cutStr_ttOthers ;
    cutStr_ttOthers = cut_ttOthers;
    TCut cut_ttOthersStr = Form("puweight*lepweight*csvweight*(%s)", cutStr_ttOthers.Data());

    t_MC[i][0]->Project(Form("xy_DY_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][0]->Project(Form("x_DY_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][0]->Project(Form("y_DY_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][1]->Project(Form("xy_DY10To50_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][1]->Project(Form("x_DY10To50_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][1]->Project(Form("y_DY10To50_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);
 
    t_MC[i][2]->Project(Form("xy_ttbb_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttbbStr);
    t_MC[i][2]->Project(Form("x_ttbb_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttbbStr);
    t_MC[i][2]->Project(Form("y_ttbb_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_ttbbStr);

    t_MC[i][2]->Project(Form("xy_ttb_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttbStr);
    t_MC[i][2]->Project(Form("x_ttb_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttbStr);
    t_MC[i][2]->Project(Form("y_ttb_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_ttbStr);

    t_MC[i][2]->Project(Form("xy_ttcc_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttccStr);
    t_MC[i][2]->Project(Form("x_ttcc_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttccStr);
    t_MC[i][2]->Project(Form("y_ttcc_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_ttccStr);

    t_MC[i][2]->Project(Form("xy_ttLF_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]", cut_ttLFStr);
    t_MC[i][2]->Project(Form("x_ttLF_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttLFStr);
    t_MC[i][2]->Project(Form("y_ttLF_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_ttLFStr);

    t_MC[i][2]->Project(Form("xy_ttOthers_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttOthersStr);
    t_MC[i][2]->Project(Form("x_ttOthers_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_ttOthersStr);
    t_MC[i][2]->Project(Form("y_ttOthers_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_ttOthersStr);

    t_MC[i][3]->Project(Form("xy_ttSemi_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][3]->Project(Form("x_ttSemi_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][3]->Project(Form("y_ttSemi_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][4]->Project(Form("xy_ttHad_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("x_ttHad_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("y_ttHad_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][4]->Project(Form("xy_wjets_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("x_wjets_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("y_wjets_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][4]->Project(Form("xy_ww_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("x_ww_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("y_ww_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][4]->Project(Form("xy_wz_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("x_wz_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("y_wz_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][4]->Project(Form("xy_zz_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("x_zz_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][4]->Project(Form("y_zz_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);
 
    t_MC[i][9]->Project(Form("xy_singleTop_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][9]->Project(Form("x_singleTop_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][9]->Project(Form("y_singleTop_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);
  
    t_MC[i][10]->Project(Form("xy_singleTopBar_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][10]->Project(Form("x_singleTopBar_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][10]->Project(Form("y_singleTopBar_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    t_MC[i][11]->Project(Form("xy_tth_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]:jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][11]->Project(Form("x_tth_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[2]]",cut_selStr);
    t_MC[i][11]->Project(Form("y_tth_%s",decay.Data()),"jets_bDiscriminatorCSV[csvd_jetid[3]]",cut_selStr);

    cout << "scale" << endl;
    y_DY[i]->Scale(norm[0]);
    x_DY[i]->Scale(norm[0]);
    xy_DY[i]->Scale(norm[0]);
    y_DY10To50[i]->Scale(norm[1]);
    x_DY10To50[i]->Scale(norm[1]);
    xy_DY10To50[i]->Scale(norm[1]);
    y_ttbb[i]->Scale(norm[2]);
    x_ttbb[i]->Scale(norm[2]);
    xy_ttbb[i]->Scale(norm[2]);
    y_ttb[i]->Scale(norm[2]);
    x_ttb[i]->Scale(norm[2]);
    xy_ttb[i]->Scale(norm[2]);
    y_ttcc[i]->Scale(norm[2]);
    x_ttcc[i]->Scale(norm[2]);
    xy_ttcc[i]->Scale(norm[2]);
    y_ttLF[i]->Scale(norm[2]);
    x_ttLF[i]->Scale(norm[2]);
    xy_ttLF[i]->Scale(norm[2]);
    y_ttOthers[i]->Scale(norm[2]);
    x_ttOthers[i]->Scale(norm[2]);
    xy_ttOthers[i]->Scale(norm[2]);
    y_ttSemi[i]->Scale(norm[3]);
    x_ttSemi[i]->Scale(norm[3]);
    xy_ttSemi[i]->Scale(norm[3]);
    y_ttHad[i]->Scale(norm[4]);
    x_ttHad[i]->Scale(norm[4]);
    xy_ttHad[i]->Scale(norm[4]);
    y_wjets[i]->Scale(norm[5]);
    x_wjets[i]->Scale(norm[5]);
    xy_wjets[i]->Scale(norm[5]);
    y_ww[i]->Scale(norm[6]);
    x_ww[i]->Scale(norm[6]);
    xy_ww[i]->Scale(norm[6]);
    y_wz[i]->Scale(norm[7]);
    x_wz[i]->Scale(norm[7]);
    xy_wz[i]->Scale(norm[7]);
    y_zz[i]->Scale(norm[8]);
    x_zz[i]->Scale(norm[8]);
    xy_zz[i]->Scale(norm[8]);
    y_singleTop[i]->Scale(norm[9]);
    x_singleTop[i]->Scale(norm[9]);
    xy_singleTop[i]->Scale(norm[9]);
    y_singleTopBar[i]->Scale(norm[10]);
    x_singleTopBar[i]->Scale(norm[10]);
    xy_singleTopBar[i]->Scale(norm[10]);
    y_tth[i]->Scale(norm[11]);
    x_tth[i]->Scale(norm[11]);
    xy_tth[i]->Scale(norm[11]);

    y_QCD[i]->Scale(qcdscale);
    x_QCD[i]->Scale(qcdscale);
    xy_QCD[i]->Scale(qcdscale);

    x_DY[i]->Add(x_DY10To50[i]);
    y_DY[i]->Add(y_DY10To50[i]);
    xy_DY[i]->Add(xy_DY10To50[i]);

    x_DY[i]->Scale(dyscale);
    y_DY[i]->Scale(dyscale);
    xy_DY[i]->Scale(dyscale);

    x_ttOthers[i]->Add(x_ttSemi[i]);
    x_ttOthers[i]->Add(x_ttHad[i]);
    y_ttOthers[i]->Add(y_ttSemi[i]);
    y_ttOthers[i]->Add(y_ttHad[i]);
    xy_ttOthers[i]->Add(xy_ttSemi[i]);
    xy_ttOthers[i]->Add(xy_ttHad[i]);

    x_bkg[i]->Add(x_wjets[i]);
    y_bkg[i]->Add(y_wjets[i]);
    xy_bkg[i]->Add(xy_wjets[i]);
    x_bkg[i]->Add(x_ww[i]);
    y_bkg[i]->Add(y_ww[i]);
    xy_bkg[i]->Add(xy_ww[i]);
    x_bkg[i]->Add(x_wz[i]);
    y_bkg[i]->Add(y_wz[i]);
    xy_bkg[i]->Add(xy_wz[i]);
    x_bkg[i]->Add(x_zz[i]);
    y_bkg[i]->Add(y_zz[i]);
    xy_bkg[i]->Add(xy_zz[i]);

    x_singleTop[i]->Add(x_singleTopBar[i]);
    y_singleTop[i]->Add(y_singleTopBar[i]);
    xy_singleTop[i]->Add(xy_singleTopBar[i]);

    cout << "add..." << endl;
    double ndata = xy_data[i]->GetEntries();
    double nttbb = xy_ttbb[i]->GetEntries();
    double nttb = xy_ttb[i]->GetEntries();
    double nttcc = xy_ttcc[i]->GetEntries();
    double nttLF = xy_ttLF[i]->GetEntries();
    double nttOthers = xy_ttOthers[i]->GetEntries();
    cout << "ndata= " << ndata << " nttbb= " << nttbb << " nttb= " << nttb << " nttcc= " << nttcc << " nttLF= " << nttLF << " nttOthers= " << nttOthers << endl;
    x_data_all->Add(x_data[i]);
    y_data_all->Add(y_data[i]);
    xy_data_all->Add(xy_data[i]);
    x_DY_all->Add(x_DY[i]);
    y_DY_all->Add(y_DY[i]);
    xy_DY_all->Add(xy_DY[i]);
    x_ttbb_all->Add(x_ttbb[i]);
    y_ttbb_all->Add(y_ttbb[i]);
    xy_ttbb_all->Add(xy_ttbb[i]);
    x_ttb_all->Add(x_ttb[i]);
    y_ttb_all->Add(y_ttb[i]);
    xy_ttb_all->Add(xy_ttb[i]);
   x_ttcc_all->Add(x_ttcc[i]);
    y_ttcc_all->Add(y_ttcc[i]);
    xy_ttcc_all->Add(xy_ttcc[i]);
    x_ttLF_all->Add(x_ttLF[i]);
    y_ttLF_all->Add(y_ttLF[i]);
    xy_ttLF_all->Add(xy_ttLF[i]);
    x_ttOthers_all->Add(x_ttOthers[i]);
    y_ttOthers_all->Add(y_ttOthers[i]);
    xy_ttOthers_all->Add(xy_ttOthers[i]);
    x_bkg_all->Add(x_bkg[i]);
    y_bkg_all->Add(y_bkg[i]);
    xy_bkg_all->Add(xy_bkg[i]);
    x_singleTop_all->Add(x_singleTop[i]);
    y_singleTop_all->Add(y_singleTop[i]);
    xy_singleTop_all->Add(xy_singleTop[i]);
    x_QCD_all->Add(x_QCD[i]);
    y_QCD_all->Add(y_QCD[i]);
    xy_QCD_all->Add(xy_QCD[i]);
    x_tth_all->Add(x_tth[i]);
    y_tth_all->Add(y_tth[i]);
    xy_tth_all->Add(xy_tth[i]);
  }
   
  cout << "write..." << endl;
  double ndataall = xy_data_all->Integral();
  cout << "all data= " << ndataall << endl;
  TFile * f = new TFile("output.root","recreate");
  xy_data_all->Write();
  x_data_all->Write();
  y_data_all->Write();
  xy_DY_all->Write();
  x_DY_all->Write();
  y_DY_all->Write();
  xy_ttbb_all->Write();
  x_ttbb_all->Write();
  y_ttbb_all->Write();
  xy_ttb_all->Write();
  x_ttb_all->Write();
  y_ttb_all->Write();
  xy_ttcc_all->Write();
  x_ttcc_all->Write();
  y_ttcc_all->Write();
  xy_ttLF_all->Write();
  x_ttLF_all->Write();
  y_ttLF_all->Write();
  xy_ttOthers_all->Write();
  x_ttOthers_all->Write();
  y_ttOthers_all->Write();
  xy_bkg_all->Write();
  x_bkg_all->Write();
  y_bkg_all->Write();
  xy_singleTop_all->Write();
  x_singleTop_all->Write();
  y_singleTop_all->Write();
  xy_QCD_all->Write();
  x_QCD_all->Write();
  y_QCD_all->Write();
  xy_tth_all->Write();
  x_tth_all->Write();
  y_tth_all->Write();

}
Exemple #20
0
void Normalizer2DataBuilder::removeMapping(UChar32 c) {
    Norm *p=checkNormForMapping(getNorm(c), c);
    if(p!=NULL) {
        p->mappingType=Norm::REMOVED;
    }
}
Exemple #21
0
//------------------------------------------------------------------------------
// getQR
// Returns pre-ref'd pointers to the lower QR (pQ) and upper QR (pR) matrices
// of 'this' matrix, or zero if the matrix can not be QR-ized
//------------------------------------------------------------------------------
bool Matrix::getQR(Matrix* const pQ, Matrix* const pR) const
{
   //-------------------------------------------------------
   // initial compatibility and error checks
   //-------------------------------------------------------
   bool b1 = isGoodMatrix();
   bool b2 = isSquare();
   if (!b1 || !b2) return false;

   //-------------------------------------------------------
   // Initialize intermediate R matrix to 'this' matrix
   //-------------------------------------------------------
   const auto pRI = new Matrix(*this);

   //-------------------------------------------------------
   // Initialize intermediate Q matrix to 'identity' matrix
   //-------------------------------------------------------
   const int N = getRows();
   const auto pQI = new Matrix(N,N);
   pQI->makeIdent();

   //-------------------------------------------------------
   // X and V are intermediate vectors
   //-------------------------------------------------------
   const auto pX = new CVector(N);
   const auto pV = new CVector(N);

   //-------------------------------------------------------
   // Begin loop
   //-------------------------------------------------------
   for (int k = 0; k < N-1; k++) {

      pX->fillWith(0.0);
      for (int i = k; i<N ; i++) {
         (*pX)[i] = (*pRI)(i,k);
      }

      double g = pX->getNorm();
      (*pV) = (*pX);
      (*pV)[k] += g;
      double s = pV->getNorm();

      if (s == 0.0) {
         pQI->unref();
         pRI->unref();
         pX->unref();
         pV->unref();
         return false;
      }

      CVector* pW = base::multiply((*pV), 1.0/s);
      RVector* pWT = pW->getTranspose();

      {
         //----------------------------------------------------
         // U' = (2*R'*W)'
         //----------------------------------------------------
         Matrix* pRIT = pRI->getTranspose();
         CVector* pU0 = base::multiply((*pRIT), (*pW));
         CVector* pU = base::multiply((*pU0), 2.0);
         RVector* pUT = pU->getTranspose();
         pU0->unref();
         pU->unref();
         pRIT->unref();

         //----------------------------------------------------
         // R = R - W*U'
         //----------------------------------------------------
         Matrix* pM1 = outerProduct(*pW, *pUT);
         pRI->subtract(*pM1);
         pM1->unref();
         pUT->unref();
      }

      //----------------------------------------------------
      // Q = Q - 2*Q*W*W'
      //----------------------------------------------------
      {
         Matrix* pM2 = outerProduct(*pW, *pWT);
         Matrix* pM3 = base::multiply(*pQI, *pM2);
         Matrix* pM4 = base::multiply(*pM3, 2.0);
         pQI->subtract(*pM4);
         pM2->unref();
         pM3->unref();
         pM4->unref();
      }

      //-------------------------------------------------------
      // Unref pointers
      //-------------------------------------------------------
      pW->unref();
      pWT->unref();
   }

   //-------------------------------------------------------
   // Assign results to argument list variables for output
   //-------------------------------------------------------
   *pQ = *pQI;
   *pR = *pRI;

   //-------------------------------------------------------
   // Unref pointers
   //-------------------------------------------------------
   pQI->unref();
   pRI->unref();
   pX->unref();
   pV->unref();

   return true;
}
Exemple #22
0
void Neuron::NguyenWidrowInitialization(float beta)
{
    float norm = getNorm();
    for (int k = 0; k != _weights.size(); ++k)
        _weights[k] = beta * _weights[k] / norm;
}