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; } } }
//------------------------------------------------------------------------------ // 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(); }
// 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; } }
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; }
bool Vector3D::normalize() { float norm = getNorm(); if (norm != 0.0f) { x /= norm; y /= norm; z /= norm; return true; } return false; }
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; }
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; }
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; }
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); }
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); }
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; }
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]); }
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; }
double VectorspaceElement::getNorm( VectorNorm norm ) const{ VectorspaceElement scale(dim); scale.setAll(1.0); return getNorm( norm, scale ); }
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(); }
void Normalizer2DataBuilder::removeMapping(UChar32 c) { Norm *p=checkNormForMapping(getNorm(c), c); if(p!=NULL) { p->mappingType=Norm::REMOVED; } }
//------------------------------------------------------------------------------ // 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; }
void Neuron::NguyenWidrowInitialization(float beta) { float norm = getNorm(); for (int k = 0; k != _weights.size(); ++k) _weights[k] = beta * _weights[k] / norm; }