#include "PlotGenerator_d2pi.h" #include "particleType.h" PlotGenerator_d2pi::PlotGenerator_d2pi(const FitResults& locFitResults, double locMeanSqrtS) : PlotGenerator(locFitResults) { dCutRhoFlag = false; dCutOverlapFlag = false; //1, 2, 3 = pip, pim, d //mass projections bookHistogram(0, "Mass( 1 2 )", new Histogram1D(500, 0.0, 1.0, "name")); bookHistogram(1, "Mass( 1 3 )", new Histogram1D(1200, 2.0, 3.2)); bookHistogram(2, "Mass( 2 3 )", new Histogram1D(1200, 2.0, 3.2)); //dalitz plots bookHistogram(3, "Mass( 1 3 )^2 vs Mass ( 2 3 )^2", new Histogram2D(624, 4.0, 10.24, 624, 4.0, 10.24)); bookHistogram(4, "Mass( 1 2 )^2 vs Mass ( 1 3 )^2", new Histogram2D(624, 4.0, 10.24, 500, 0.0, 1.0)); bookHistogram(5, "Mass( 1 2 )^2 vs Mass ( 2 3 )^2", new Histogram2D(624, 4.0, 10.24, 500, 0.0, 1.0)); //cos(theta_pi+/pi-/d) bookHistogram(6, "cos(theta_1)", new Histogram1D(1000, -1.0, 1.0)); bookHistogram(7, "cos(theta_2)", new Histogram1D(1000, -1.0, 1.0)); bookHistogram(8, "cos(theta_3)", new Histogram1D(1000, -1.0, 1.0)); //cos(theta_pi+/pi-/d, selecting the peak) bookHistogram(9, "cos(theta_1)", new Histogram1D(1000, -1.0, 1.0)); bookHistogram(10, "cos(theta_2)", new Histogram1D(1000, -1.0, 1.0)); bookHistogram(11, "cos(theta_3)", new Histogram1D(1000, -1.0, 1.0)); //cos(theta_d) in dpip, dpim frames & peaks bookHistogram(12, "cos(theta_3) in dpip frame", new Histogram1D(1000, -1.0, 1.0)); bookHistogram(13, "cos(theta_3) in dpim frame", new Histogram1D(1000, -1.0, 1.0)); //cos(theta_(d,pip)) in dpim frame & peak bookHistogram(14, "cos(theta_1_3) in dpim frame", new Histogram1D(1000, -1.0, 1.0)); //cos(theta_(d,pim)) in dpip frame & peak bookHistogram(15, "cos(theta_2_3) in dpip frame", new Histogram1D(1000, -1.0, 1.0)); unsigned int locNextBinIndex = 16; //Binning for dpi+ Get_Binning_DPip(dPrimaryBinEdges_DPip, dSecondaryBinEdges_DPip); //Find dpi+ primary bin: dPrimaryBin_DPip = -2; for(size_t loc_i = 0; loc_i < dPrimaryBinEdges_DPip.size() - 1; ++loc_i) { if(locMeanSqrtS > dPrimaryBinEdges_DPip[loc_i]) continue; dPrimaryBin_DPip = loc_i - 1; break; } if(dPrimaryBin_DPip == -1) dPrimaryBin_DPip = 0; if(dPrimaryBin_DPip == -2) dPrimaryBin_DPip = dPrimaryBinEdges_DPip.size() - 2; //Histograms for dpi+ for(size_t loc_j = 0; loc_j < dSecondaryBinEdges_DPip[dPrimaryBin_DPip].size() - 1; ++loc_j) bookHistogram(locNextBinIndex + loc_j, "dpi+ Mass", new Histogram1D(1200, 2.0, 3.2)); locNextBinIndex += dSecondaryBinEdges_DPip[dPrimaryBin_DPip].size() - 1; //Binning for dpi- Get_Binning_DPim(dPrimaryBinEdges_DPim, dSecondaryBinEdges_DPim); //Find dpi- primary bin: dPrimaryBin_DPim = -2; for(size_t loc_i = 0; loc_i < dPrimaryBinEdges_DPim.size() - 1; ++loc_i) { if(locMeanSqrtS > dPrimaryBinEdges_DPim[loc_i]) continue; dPrimaryBin_DPim = loc_i - 1; break; } if(dPrimaryBin_DPim == -1) dPrimaryBin_DPim = 0; if(dPrimaryBin_DPim == -2) dPrimaryBin_DPim = dPrimaryBinEdges_DPim.size() - 2; //Histograms for dpi- for(size_t loc_j = 0; loc_j < dSecondaryBinEdges_DPim[dPrimaryBin_DPim].size() - 1; ++loc_j) bookHistogram(locNextBinIndex + loc_j, "dpi- Mass", new Histogram1D(1200, 2.0, 3.2)); locNextBinIndex += dSecondaryBinEdges_DPim[dPrimaryBin_DPim].size() - 1; dNumHists = locNextBinIndex; cout << "locMeanSqrtS, primary bins, numhists = " << locMeanSqrtS << ", " << dPrimaryBin_DPip << ", " << dPrimaryBin_DPim << ", " << dNumHists << endl; } void PlotGenerator_d2pi::projectEvent(Kinematics* locKinematics) { //Particles are g, pi+, pi- d HepLorentzVector locBeamP4 = locKinematics->particle(0); HepLorentzVector locTargetP4(0.0, 0.0, 0.0, ParticleMass(Deuteron)); HepLorentzVector locPiPlusP4 = locKinematics->particle(1); HepLorentzVector locPiMinusP4 = locKinematics->particle(2); HepLorentzVector locDeuteronP4 = locKinematics->particle(3); HepLorentzVector locFinalStateP4 = locPiPlusP4 + locPiMinusP4 + locDeuteronP4; HepLorentzVector locPiPlusDeuteronP4 = locPiPlusP4 + locDeuteronP4; HepLorentzVector locPiMinusDeuteronP4 = locPiMinusP4 + locDeuteronP4; double locSqrtS = (locBeamP4 + locTargetP4).m(); /******************************************* BOOST - DPiPi CM ********************************************/ HepLorentzRotation locLorentzBoost_DPiPiCM(-1.0*locFinalStateP4.boostVector()); //negative due to coordinate system convention HepLorentzVector locBeamP4_DPiPiCM = locLorentzBoost_DPiPiCM*locBeamP4; HepLorentzVector locPiPlusP4_DPiPiCM = locLorentzBoost_DPiPiCM*locPiPlusP4; HepLorentzVector locPiMinusP4_DPiPiCM = locLorentzBoost_DPiPiCM*locPiMinusP4; HepLorentzVector locDeuteronP4_DPiPiCM = locLorentzBoost_DPiPiCM*locDeuteronP4; HepLorentzVector locPiPlusDeuteronP4_DPiPiCM = locPiPlusP4_DPiPiCM + locDeuteronP4_DPiPiCM; HepLorentzVector locPiMinusDeuteronP4_DPiPiCM = locPiMinusP4_DPiPiCM + locDeuteronP4_DPiPiCM; /****************************************** BOOST - DPiPlus CM *******************************************/ HepLorentzRotation locLorentzBoost_DPiPlusCM(-1.0*locPiPlusDeuteronP4_DPiPiCM.boostVector()); //negative due to coordinate system convention HepLorentzVector locBeamP4_DPiPlusCM = locLorentzBoost_DPiPlusCM*locBeamP4_DPiPiCM; HepLorentzVector locPiPlusP4_DPiPlusCM = locLorentzBoost_DPiPlusCM*locPiPlusP4_DPiPiCM; HepLorentzVector locPiMinusP4_DPiPlusCM = locLorentzBoost_DPiPlusCM*locPiMinusP4_DPiPiCM; HepLorentzVector locDeuteronP4_DPiPlusCM = locLorentzBoost_DPiPlusCM*locDeuteronP4_DPiPiCM; /****************************************** BOOST - DPiMinus CM ******************************************/ HepLorentzRotation locLorentzBoost_DPiMinusCM(-1.0*locPiMinusDeuteronP4_DPiPiCM.boostVector()); //negative due to coordinate system convention HepLorentzVector locBeamP4_DPiMinusCM = locLorentzBoost_DPiMinusCM*locBeamP4_DPiPiCM; HepLorentzVector locPiPlusP4_DPiMinusCM = locLorentzBoost_DPiMinusCM*locPiPlusP4_DPiPiCM; HepLorentzVector locPiMinusP4_DPiMinusCM = locLorentzBoost_DPiMinusCM*locPiMinusP4_DPiPiCM; HepLorentzVector locDeuteronP4_DPiMinusCM = locLorentzBoost_DPiMinusCM*locDeuteronP4_DPiPiCM; /******************************************** FILL HISTOGRAMS ********************************************/ double locPiPiMass = (locPiPlusP4 + locPiMinusP4).m(); double locPipDMass = (locPiPlusP4 + locDeuteronP4).m(); double locPimDMass = (locPiMinusP4 + locDeuteronP4).m(); fillHistogram(0, locPiPiMass); fillHistogram(1, locPipDMass); fillHistogram(2, locPimDMass); fillHistogram(3, locPimDMass*locPimDMass, locPipDMass*locPipDMass); fillHistogram(4, locPimDMass*locPimDMass, locPiPiMass*locPiPiMass); fillHistogram(5, locPipDMass*locPipDMass, locPiPiMass*locPiPiMass); //cos(theta_pi+/pi-) double locCosThetaPiPlus = cos(locPiPlusP4_DPiPiCM.angle(locBeamP4_DPiPiCM.vect())); double locCosThetaPiMinus = cos(locPiMinusP4_DPiPiCM.angle(locBeamP4_DPiPiCM.vect())); double locCosThetaDeuteron = cos(locDeuteronP4_DPiPiCM.angle(locBeamP4_DPiPiCM.vect())); fillHistogram(6, locCosThetaPiPlus); fillHistogram(7, locCosThetaPiMinus); fillHistogram(8, locCosThetaDeuteron); if(locPimDMass < 2.3) //is dpim event { fillHistogram(9, locCosThetaPiPlus); double locCosThetaDeuteron_DPiMinusCM = cos(locDeuteronP4_DPiMinusCM.angle(locBeamP4_DPiMinusCM.vect())); fillHistogram(13, locCosThetaDeuteron_DPiMinusCM); double locDeuteronE_DPimCM = locPiMinusDeuteronP4.m2() + ParticleMass(Deuteron)*ParticleMass(Deuteron) - ParticleMass(PiMinus)*ParticleMass(PiMinus); locDeuteronE_DPimCM /= 2.0*locPiMinusDeuteronP4.m(); double locDeuteronP_DPimCM = sqrt(locDeuteronE_DPimCM*locDeuteronE_DPimCM - ParticleMass(Deuteron)*ParticleMass(Deuteron)); double locPiPlusE_DPimCM = locSqrtS*locSqrtS - locPiMinusDeuteronP4.m2() - ParticleMass(PiPlus)*ParticleMass(PiPlus); locPiPlusE_DPimCM /= 2.0*locPiMinusDeuteronP4.m(); double locPiPlusP_DPimCM = sqrt(locPiPlusE_DPimCM*locPiPlusE_DPimCM - ParticleMass(PiPlus)*ParticleMass(PiPlus)); double locDPipESq = (locDeuteronE_DPimCM + locPiPlusE_DPimCM); locDPipESq *= locDPipESq; double locMinDPipMassSquared = locDPipESq - (locDeuteronP_DPimCM + locPiPlusP_DPimCM)*(locDeuteronP_DPimCM + locPiPlusP_DPimCM); double locMaxDPipMassSquared = locDPipESq - (locDeuteronP_DPimCM - locPiPlusP_DPimCM)*(locDeuteronP_DPimCM - locPiPlusP_DPimCM); double locCosThetaResonanceL = 2.0*locPiPlusDeuteronP4.m2() - (locMinDPipMassSquared + locMaxDPipMassSquared); locCosThetaResonanceL /= locMinDPipMassSquared - locMaxDPipMassSquared; fillHistogram(14, locCosThetaResonanceL); } if(locPipDMass < 2.3) //is dpip event { fillHistogram(10, locCosThetaPiMinus); double locCosThetaDeuteron_DPiPlusCM = cos(locDeuteronP4_DPiPlusCM.angle(locBeamP4_DPiPlusCM.vect())); fillHistogram(12, locCosThetaDeuteron_DPiPlusCM); double locDeuteronE_DPipCM = locPiPlusDeuteronP4.m2() + ParticleMass(Deuteron)*ParticleMass(Deuteron) - ParticleMass(PiPlus)*ParticleMass(PiPlus); locDeuteronE_DPipCM /= 2.0*locPiPlusDeuteronP4.m(); double locDeuteronP_DPipCM = sqrt(locDeuteronE_DPipCM*locDeuteronE_DPipCM - ParticleMass(Deuteron)*ParticleMass(Deuteron)); double locPiMinusE_DPipCM = locSqrtS*locSqrtS - locPiPlusDeuteronP4.m2() - ParticleMass(PiMinus)*ParticleMass(PiMinus); locPiMinusE_DPipCM /= 2.0*locPiPlusDeuteronP4.m(); double locPiMinusP_DPipCM = sqrt(locPiMinusE_DPipCM*locPiMinusE_DPipCM - ParticleMass(PiMinus)*ParticleMass(PiMinus)); double locDPimESq = (locDeuteronE_DPipCM + locPiMinusE_DPipCM); locDPimESq *= locDPimESq; double locMinDPimMassSquared = locDPimESq - (locDeuteronP_DPipCM + locPiMinusP_DPipCM)*(locDeuteronP_DPipCM + locPiMinusP_DPipCM); double locMaxDPimMassSquared = locDPimESq - (locDeuteronP_DPipCM - locPiMinusP_DPipCM)*(locDeuteronP_DPipCM - locPiMinusP_DPipCM); double locCosThetaResonanceL = 2.0*locPiMinusDeuteronP4.m2() - (locMinDPimMassSquared + locMaxDPimMassSquared); locCosThetaResonanceL /= locMinDPimMassSquared - locMaxDPimMassSquared; fillHistogram(15, locCosThetaResonanceL); } if((locPipDMass > 2.3) && (locPimDMass > 2.3)) //is rho event fillHistogram(11, locCosThetaDeuteron); if(dCutRhoFlag && (locPiPiMass > 0.6)) return; unsigned int locNextBinIndex = 16; //Find dpi+ cos-theta bin int locCosThetaBinIndex = -1; for(size_t loc_j = 0; loc_j < dSecondaryBinEdges_DPip[dPrimaryBin_DPip].size(); ++loc_j) { if(locCosThetaPiMinus > dSecondaryBinEdges_DPip[dPrimaryBin_DPip][loc_j]) continue; locCosThetaBinIndex = loc_j - 1; break; } //fill dpi+ histogram if((!dCutOverlapFlag) || (locPimDMass >= 2.3)) { if(locCosThetaBinIndex != -1) fillHistogram(locNextBinIndex + locCosThetaBinIndex, locPipDMass); } locNextBinIndex += dSecondaryBinEdges_DPip[dPrimaryBin_DPip].size() - 1; //Find dpi- cos-theta bin locCosThetaBinIndex = -1; for(size_t loc_j = 0; loc_j < dSecondaryBinEdges_DPim[dPrimaryBin_DPim].size(); ++loc_j) { if(locCosThetaPiPlus > dSecondaryBinEdges_DPim[dPrimaryBin_DPim][loc_j]) continue; locCosThetaBinIndex = loc_j - 1; break; } //fill dpi- histogram if((!dCutOverlapFlag) || (locPipDMass >= 2.3)) { if(locCosThetaBinIndex != -1) fillHistogram(locNextBinIndex + locCosThetaBinIndex, locPimDMass); } locNextBinIndex += dSecondaryBinEdges_DPim[dPrimaryBin_DPim].size() - 1; } /******************************************************* DPim ********************************************************/ void PlotGenerator_d2pi::Get_Binning_DPim(vector& locPrimaryBinEdges, vector >& locSecondaryBinEdges) const { locPrimaryBinEdges.clear(); locSecondaryBinEdges.clear(); /* unsigned int locNumPrimaryBins = 15; for(size_t loc_i = 0; loc_i < locNumPrimaryBins + 1; ++loc_i) locPrimaryBinEdges.push_back(2.475 + 0.05*double(loc_i)); */ unsigned int locNumPrimaryBins = 15; for(size_t loc_i = 0; loc_i < locNumPrimaryBins + 1; ++loc_i) locPrimaryBinEdges.push_back(2.45 + 0.05*double(loc_i)); locSecondaryBinEdges.resize(locNumPrimaryBins); locSecondaryBinEdges[0].resize(15); locSecondaryBinEdges[0][0] = -0.75; locSecondaryBinEdges[0][1] = -0.474; locSecondaryBinEdges[0][2] = -0.334; locSecondaryBinEdges[0][3] = -0.238; locSecondaryBinEdges[0][4] = -0.158; locSecondaryBinEdges[0][5] = -0.086; locSecondaryBinEdges[0][6] = -0.014; locSecondaryBinEdges[0][7] = 0.05; locSecondaryBinEdges[0][8] = 0.114; locSecondaryBinEdges[0][9] = 0.178; locSecondaryBinEdges[0][10] = 0.242; locSecondaryBinEdges[0][11] = 0.306; locSecondaryBinEdges[0][12] = 0.378; locSecondaryBinEdges[0][13] = 0.454; locSecondaryBinEdges[0][14] = 0.7; locSecondaryBinEdges[1].resize(25); locSecondaryBinEdges[1][0] = -0.75; locSecondaryBinEdges[1][1] = -0.542; locSecondaryBinEdges[1][2] = -0.442; locSecondaryBinEdges[1][3] = -0.366; locSecondaryBinEdges[1][4] = -0.31; locSecondaryBinEdges[1][5] = -0.258; locSecondaryBinEdges[1][6] = -0.208; locSecondaryBinEdges[1][7] = -0.158; locSecondaryBinEdges[1][8] = -0.108; locSecondaryBinEdges[1][9] = -0.058; locSecondaryBinEdges[1][10] = -0.008; locSecondaryBinEdges[1][11] = 0.042; locSecondaryBinEdges[1][12] = 0.092; locSecondaryBinEdges[1][13] = 0.142; locSecondaryBinEdges[1][14] = 0.192; locSecondaryBinEdges[1][15] = 0.242; locSecondaryBinEdges[1][16] = 0.292; locSecondaryBinEdges[1][17] = 0.342; locSecondaryBinEdges[1][18] = 0.392; locSecondaryBinEdges[1][19] = 0.442; locSecondaryBinEdges[1][20] = 0.492; locSecondaryBinEdges[1][21] = 0.542; locSecondaryBinEdges[1][22] = 0.592; locSecondaryBinEdges[1][23] = 0.646; locSecondaryBinEdges[1][24] = 0.8; locSecondaryBinEdges[2].resize(27); locSecondaryBinEdges[2][0] = -0.75; locSecondaryBinEdges[2][1] = -0.566; locSecondaryBinEdges[2][2] = -0.474; locSecondaryBinEdges[2][3] = -0.402; locSecondaryBinEdges[2][4] = -0.346; locSecondaryBinEdges[2][5] = -0.296; locSecondaryBinEdges[2][6] = -0.246; locSecondaryBinEdges[2][7] = -0.196; locSecondaryBinEdges[2][8] = -0.146; locSecondaryBinEdges[2][9] = -0.096; locSecondaryBinEdges[2][10] = -0.046; locSecondaryBinEdges[2][11] = 0.004; locSecondaryBinEdges[2][12] = 0.054; locSecondaryBinEdges[2][13] = 0.104; locSecondaryBinEdges[2][14] = 0.154; locSecondaryBinEdges[2][15] = 0.204; locSecondaryBinEdges[2][16] = 0.254; locSecondaryBinEdges[2][17] = 0.304; locSecondaryBinEdges[2][18] = 0.354; locSecondaryBinEdges[2][19] = 0.404; locSecondaryBinEdges[2][20] = 0.454; locSecondaryBinEdges[2][21] = 0.504; locSecondaryBinEdges[2][22] = 0.554; locSecondaryBinEdges[2][23] = 0.604; locSecondaryBinEdges[2][24] = 0.654; locSecondaryBinEdges[2][25] = 0.704; locSecondaryBinEdges[2][26] = 0.82; locSecondaryBinEdges[3].resize(27); locSecondaryBinEdges[3][0] = -0.75; locSecondaryBinEdges[3][1] = -0.55; locSecondaryBinEdges[3][2] = -0.446; locSecondaryBinEdges[3][3] = -0.37; locSecondaryBinEdges[3][4] = -0.314; locSecondaryBinEdges[3][5] = -0.264; locSecondaryBinEdges[3][6] = -0.214; locSecondaryBinEdges[3][7] = -0.164; locSecondaryBinEdges[3][8] = -0.114; locSecondaryBinEdges[3][9] = -0.064; locSecondaryBinEdges[3][10] = -0.014; locSecondaryBinEdges[3][11] = 0.036; locSecondaryBinEdges[3][12] = 0.086; locSecondaryBinEdges[3][13] = 0.136; locSecondaryBinEdges[3][14] = 0.186; locSecondaryBinEdges[3][15] = 0.236; locSecondaryBinEdges[3][16] = 0.286; locSecondaryBinEdges[3][17] = 0.336; locSecondaryBinEdges[3][18] = 0.386; locSecondaryBinEdges[3][19] = 0.436; locSecondaryBinEdges[3][20] = 0.486; locSecondaryBinEdges[3][21] = 0.536; locSecondaryBinEdges[3][22] = 0.586; locSecondaryBinEdges[3][23] = 0.636; locSecondaryBinEdges[3][24] = 0.686; locSecondaryBinEdges[3][25] = 0.736; locSecondaryBinEdges[3][26] = 0.82; locSecondaryBinEdges[4].resize(26); locSecondaryBinEdges[4][0] = -0.75; locSecondaryBinEdges[4][1] = -0.51; locSecondaryBinEdges[4][2] = -0.39; locSecondaryBinEdges[4][3] = -0.314; locSecondaryBinEdges[4][4] = -0.25; locSecondaryBinEdges[4][5] = -0.194; locSecondaryBinEdges[4][6] = -0.144; locSecondaryBinEdges[4][7] = -0.094; locSecondaryBinEdges[4][8] = -0.044; locSecondaryBinEdges[4][9] = 0.006; locSecondaryBinEdges[4][10] = 0.056; locSecondaryBinEdges[4][11] = 0.106; locSecondaryBinEdges[4][12] = 0.156; locSecondaryBinEdges[4][13] = 0.206; locSecondaryBinEdges[4][14] = 0.256; locSecondaryBinEdges[4][15] = 0.306; locSecondaryBinEdges[4][16] = 0.356; locSecondaryBinEdges[4][17] = 0.406; locSecondaryBinEdges[4][18] = 0.456; locSecondaryBinEdges[4][19] = 0.506; locSecondaryBinEdges[4][20] = 0.556; locSecondaryBinEdges[4][21] = 0.606; locSecondaryBinEdges[4][22] = 0.656; locSecondaryBinEdges[4][23] = 0.706; locSecondaryBinEdges[4][24] = 0.756; locSecondaryBinEdges[4][25] = 0.83; locSecondaryBinEdges[5].resize(23); locSecondaryBinEdges[5][0] = -0.75; locSecondaryBinEdges[5][1] = -0.438; locSecondaryBinEdges[5][2] = -0.306; locSecondaryBinEdges[5][3] = -0.21; locSecondaryBinEdges[5][4] = -0.134; locSecondaryBinEdges[5][5] = -0.066; locSecondaryBinEdges[5][6] = -0.002; locSecondaryBinEdges[5][7] = 0.054; locSecondaryBinEdges[5][8] = 0.106; locSecondaryBinEdges[5][9] = 0.158; locSecondaryBinEdges[5][10] = 0.208; locSecondaryBinEdges[5][11] = 0.258; locSecondaryBinEdges[5][12] = 0.308; locSecondaryBinEdges[5][13] = 0.358; locSecondaryBinEdges[5][14] = 0.408; locSecondaryBinEdges[5][15] = 0.458; locSecondaryBinEdges[5][16] = 0.508; locSecondaryBinEdges[5][17] = 0.558; locSecondaryBinEdges[5][18] = 0.608; locSecondaryBinEdges[5][19] = 0.658; locSecondaryBinEdges[5][20] = 0.708; locSecondaryBinEdges[5][21] = 0.758; locSecondaryBinEdges[5][22] = 0.83; locSecondaryBinEdges[6].resize(21); locSecondaryBinEdges[6][0] = -0.75; locSecondaryBinEdges[6][1] = -0.414; locSecondaryBinEdges[6][2] = -0.27; locSecondaryBinEdges[6][3] = -0.162; locSecondaryBinEdges[6][4] = -0.07; locSecondaryBinEdges[6][5] = 0.006; locSecondaryBinEdges[6][6] = 0.078; locSecondaryBinEdges[6][7] = 0.146; locSecondaryBinEdges[6][8] = 0.206; locSecondaryBinEdges[6][9] = 0.266; locSecondaryBinEdges[6][10] = 0.322; locSecondaryBinEdges[6][11] = 0.374; locSecondaryBinEdges[6][12] = 0.424; locSecondaryBinEdges[6][13] = 0.474; locSecondaryBinEdges[6][14] = 0.524; locSecondaryBinEdges[6][15] = 0.574; locSecondaryBinEdges[6][16] = 0.624; locSecondaryBinEdges[6][17] = 0.674; locSecondaryBinEdges[6][18] = 0.724; locSecondaryBinEdges[6][19] = 0.778; locSecondaryBinEdges[6][20] = 0.85; locSecondaryBinEdges[7].resize(17); locSecondaryBinEdges[7][0] = -0.75; locSecondaryBinEdges[7][1] = -0.358; locSecondaryBinEdges[7][2] = -0.186; locSecondaryBinEdges[7][3] = -0.058; locSecondaryBinEdges[7][4] = 0.046; locSecondaryBinEdges[7][5] = 0.142; locSecondaryBinEdges[7][6] = 0.226; locSecondaryBinEdges[7][7] = 0.302; locSecondaryBinEdges[7][8] = 0.37; locSecondaryBinEdges[7][9] = 0.43; locSecondaryBinEdges[7][10] = 0.486; locSecondaryBinEdges[7][11] = 0.538; locSecondaryBinEdges[7][12] = 0.588; locSecondaryBinEdges[7][13] = 0.638; locSecondaryBinEdges[7][14] = 0.688; locSecondaryBinEdges[7][15] = 0.742; locSecondaryBinEdges[7][16] = 0.85; locSecondaryBinEdges[8].resize(13); locSecondaryBinEdges[8][0] = -0.7; locSecondaryBinEdges[8][1] = -0.258; locSecondaryBinEdges[8][2] = -0.054; locSecondaryBinEdges[8][3] = 0.098; locSecondaryBinEdges[8][4] = 0.226; locSecondaryBinEdges[8][5] = 0.33; locSecondaryBinEdges[8][6] = 0.414; locSecondaryBinEdges[8][7] = 0.486; locSecondaryBinEdges[8][8] = 0.546; locSecondaryBinEdges[8][9] = 0.606; locSecondaryBinEdges[8][10] = 0.666; locSecondaryBinEdges[8][11] = 0.726; locSecondaryBinEdges[8][12] = 0.85; locSecondaryBinEdges[9].resize(12); locSecondaryBinEdges[9][0] = -0.7; locSecondaryBinEdges[9][1] = -0.202; locSecondaryBinEdges[9][2] = 0.026; locSecondaryBinEdges[9][3] = 0.182; locSecondaryBinEdges[9][4] = 0.306; locSecondaryBinEdges[9][5] = 0.402; locSecondaryBinEdges[9][6] = 0.478; locSecondaryBinEdges[9][7] = 0.542; locSecondaryBinEdges[9][8] = 0.602; locSecondaryBinEdges[9][9] = 0.662; locSecondaryBinEdges[9][10] = 0.722; locSecondaryBinEdges[9][11] = 0.85; locSecondaryBinEdges[10].resize(10); locSecondaryBinEdges[10][0] = -0.7; locSecondaryBinEdges[10][1] = -0.106; locSecondaryBinEdges[10][2] = 0.146; locSecondaryBinEdges[10][3] = 0.306; locSecondaryBinEdges[10][4] = 0.418; locSecondaryBinEdges[10][5] = 0.506; locSecondaryBinEdges[10][6] = 0.582; locSecondaryBinEdges[10][7] = 0.65; locSecondaryBinEdges[10][8] = 0.714; locSecondaryBinEdges[10][9] = 0.85; locSecondaryBinEdges[11].resize(9); locSecondaryBinEdges[11][0] = -0.7; locSecondaryBinEdges[11][1] = 0.006; locSecondaryBinEdges[11][2] = 0.266; locSecondaryBinEdges[11][3] = 0.414; locSecondaryBinEdges[11][4] = 0.522; locSecondaryBinEdges[11][5] = 0.61; locSecondaryBinEdges[11][6] = 0.69; locSecondaryBinEdges[11][7] = 0.766; locSecondaryBinEdges[11][8] = 0.85; locSecondaryBinEdges[12].resize(8); locSecondaryBinEdges[12][0] = -0.6; locSecondaryBinEdges[12][1] = 0.11; locSecondaryBinEdges[12][2] = 0.346; locSecondaryBinEdges[12][3] = 0.486; locSecondaryBinEdges[12][4] = 0.59; locSecondaryBinEdges[12][5] = 0.678; locSecondaryBinEdges[12][6] = 0.758; locSecondaryBinEdges[12][7] = 0.85; locSecondaryBinEdges[13].resize(6); locSecondaryBinEdges[13][0] = -0.6; locSecondaryBinEdges[13][1] = 0.194; locSecondaryBinEdges[13][2] = 0.426; locSecondaryBinEdges[13][3] = 0.562; locSecondaryBinEdges[13][4] = 0.666; locSecondaryBinEdges[13][5] = 0.85; locSecondaryBinEdges[14].resize(6); locSecondaryBinEdges[14][0] = -0.6; locSecondaryBinEdges[14][1] = 0.298; locSecondaryBinEdges[14][2] = 0.514; locSecondaryBinEdges[14][3] = 0.646; locSecondaryBinEdges[14][4] = 0.746; locSecondaryBinEdges[14][5] = 0.85; } /******************************************************* DPip ********************************************************/ void PlotGenerator_d2pi::Get_Binning_DPip(vector& locPrimaryBinEdges, vector >& locSecondaryBinEdges) const { locPrimaryBinEdges.clear(); locSecondaryBinEdges.clear(); unsigned int locNumPrimaryBins = 15; for(size_t loc_i = 0; loc_i < locNumPrimaryBins + 1; ++loc_i) locPrimaryBinEdges.push_back(2.45 + 0.05*double(loc_i)); /* unsigned int locNumPrimaryBins = 15; for(size_t loc_i = 0; loc_i < locNumPrimaryBins + 1; ++loc_i) locPrimaryBinEdges.push_back(2.475 + 0.05*double(loc_i)); */ locSecondaryBinEdges.resize(locNumPrimaryBins); locSecondaryBinEdges[0].resize(12); locSecondaryBinEdges[0][0] = -0.72; locSecondaryBinEdges[0][1] = -0.386; locSecondaryBinEdges[0][2] = -0.214; locSecondaryBinEdges[0][3] = -0.098; locSecondaryBinEdges[0][4] = -0.014; locSecondaryBinEdges[0][5] = 0.062; locSecondaryBinEdges[0][6] = 0.13; locSecondaryBinEdges[0][7] = 0.202; locSecondaryBinEdges[0][8] = 0.274; locSecondaryBinEdges[0][9] = 0.35; locSecondaryBinEdges[0][10] = 0.434; locSecondaryBinEdges[0][11] = 0.7; locSecondaryBinEdges[1].resize(22); locSecondaryBinEdges[1][0] = -0.72; locSecondaryBinEdges[1][1] = -0.494; locSecondaryBinEdges[1][2] = -0.366; locSecondaryBinEdges[1][3] = -0.27; locSecondaryBinEdges[1][4] = -0.186; locSecondaryBinEdges[1][5] = -0.122; locSecondaryBinEdges[1][6] = -0.072; locSecondaryBinEdges[1][7] = -0.022; locSecondaryBinEdges[1][8] = 0.028; locSecondaryBinEdges[1][9] = 0.078; locSecondaryBinEdges[1][10] = 0.128; locSecondaryBinEdges[1][11] = 0.178; locSecondaryBinEdges[1][12] = 0.228; locSecondaryBinEdges[1][13] = 0.278; locSecondaryBinEdges[1][14] = 0.328; locSecondaryBinEdges[1][15] = 0.378; locSecondaryBinEdges[1][16] = 0.428; locSecondaryBinEdges[1][17] = 0.478; locSecondaryBinEdges[1][18] = 0.528; locSecondaryBinEdges[1][19] = 0.578; locSecondaryBinEdges[1][20] = 0.628; locSecondaryBinEdges[1][21] = 0.82; locSecondaryBinEdges[2].resize(25); locSecondaryBinEdges[2][0] = -0.72; locSecondaryBinEdges[2][1] = -0.518; locSecondaryBinEdges[2][2] = -0.39; locSecondaryBinEdges[2][3] = -0.294; locSecondaryBinEdges[2][4] = -0.214; locSecondaryBinEdges[2][5] = -0.15; locSecondaryBinEdges[2][6] = -0.1; locSecondaryBinEdges[2][7] = -0.05; locSecondaryBinEdges[2][8] = -1.38778e-17; locSecondaryBinEdges[2][9] = 0.05; locSecondaryBinEdges[2][10] = 0.1; locSecondaryBinEdges[2][11] = 0.15; locSecondaryBinEdges[2][12] = 0.2; locSecondaryBinEdges[2][13] = 0.25; locSecondaryBinEdges[2][14] = 0.3; locSecondaryBinEdges[2][15] = 0.35; locSecondaryBinEdges[2][16] = 0.4; locSecondaryBinEdges[2][17] = 0.45; locSecondaryBinEdges[2][18] = 0.5; locSecondaryBinEdges[2][19] = 0.55; locSecondaryBinEdges[2][20] = 0.6; locSecondaryBinEdges[2][21] = 0.65; locSecondaryBinEdges[2][22] = 0.7; locSecondaryBinEdges[2][23] = 0.75; locSecondaryBinEdges[2][24] = 0.89; locSecondaryBinEdges[3].resize(25); locSecondaryBinEdges[3][0] = -0.72; locSecondaryBinEdges[3][1] = -0.49; locSecondaryBinEdges[3][2] = -0.354; locSecondaryBinEdges[3][3] = -0.25; locSecondaryBinEdges[3][4] = -0.17; locSecondaryBinEdges[3][5] = -0.11; locSecondaryBinEdges[3][6] = -0.058; locSecondaryBinEdges[3][7] = -0.008; locSecondaryBinEdges[3][8] = 0.042; locSecondaryBinEdges[3][9] = 0.092; locSecondaryBinEdges[3][10] = 0.142; locSecondaryBinEdges[3][11] = 0.192; locSecondaryBinEdges[3][12] = 0.242; locSecondaryBinEdges[3][13] = 0.292; locSecondaryBinEdges[3][14] = 0.342; locSecondaryBinEdges[3][15] = 0.392; locSecondaryBinEdges[3][16] = 0.442; locSecondaryBinEdges[3][17] = 0.492; locSecondaryBinEdges[3][18] = 0.542; locSecondaryBinEdges[3][19] = 0.592; locSecondaryBinEdges[3][20] = 0.642; locSecondaryBinEdges[3][21] = 0.692; locSecondaryBinEdges[3][22] = 0.742; locSecondaryBinEdges[3][23] = 0.792; locSecondaryBinEdges[3][24] = 0.9; locSecondaryBinEdges[4].resize(23); locSecondaryBinEdges[4][0] = -0.72; locSecondaryBinEdges[4][1] = -0.458; locSecondaryBinEdges[4][2] = -0.298; locSecondaryBinEdges[4][3] = -0.182; locSecondaryBinEdges[4][4] = -0.102; locSecondaryBinEdges[4][5] = -0.03; locSecondaryBinEdges[4][6] = 0.03; locSecondaryBinEdges[4][7] = 0.09; locSecondaryBinEdges[4][8] = 0.146; locSecondaryBinEdges[4][9] = 0.198; locSecondaryBinEdges[4][10] = 0.25; locSecondaryBinEdges[4][11] = 0.3; locSecondaryBinEdges[4][12] = 0.35; locSecondaryBinEdges[4][13] = 0.4; locSecondaryBinEdges[4][14] = 0.45; locSecondaryBinEdges[4][15] = 0.5; locSecondaryBinEdges[4][16] = 0.55; locSecondaryBinEdges[4][17] = 0.6; locSecondaryBinEdges[4][18] = 0.65; locSecondaryBinEdges[4][19] = 0.7; locSecondaryBinEdges[4][20] = 0.75; locSecondaryBinEdges[4][21] = 0.8; locSecondaryBinEdges[4][22] = 0.93; locSecondaryBinEdges[5].resize(17); locSecondaryBinEdges[5][0] = -0.72; locSecondaryBinEdges[5][1] = -0.362; locSecondaryBinEdges[5][2] = -0.174; locSecondaryBinEdges[5][3] = -0.054; locSecondaryBinEdges[5][4] = 0.046; locSecondaryBinEdges[5][5] = 0.134; locSecondaryBinEdges[5][6] = 0.214; locSecondaryBinEdges[5][7] = 0.29; locSecondaryBinEdges[5][8] = 0.358; locSecondaryBinEdges[5][9] = 0.422; locSecondaryBinEdges[5][10] = 0.482; locSecondaryBinEdges[5][11] = 0.538; locSecondaryBinEdges[5][12] = 0.598; locSecondaryBinEdges[5][13] = 0.654; locSecondaryBinEdges[5][14] = 0.71; locSecondaryBinEdges[5][15] = 0.77; locSecondaryBinEdges[5][16] = 0.93; locSecondaryBinEdges[6].resize(15); locSecondaryBinEdges[6][0] = -0.72; locSecondaryBinEdges[6][1] = -0.314; locSecondaryBinEdges[6][2] = -0.134; locSecondaryBinEdges[6][3] = -0.006; locSecondaryBinEdges[6][4] = 0.11; locSecondaryBinEdges[6][5] = 0.218; locSecondaryBinEdges[6][6] = 0.31; locSecondaryBinEdges[6][7] = 0.39; locSecondaryBinEdges[6][8] = 0.458; locSecondaryBinEdges[6][9] = 0.526; locSecondaryBinEdges[6][10] = 0.594; locSecondaryBinEdges[6][11] = 0.658; locSecondaryBinEdges[6][12] = 0.718; locSecondaryBinEdges[6][13] = 0.782; locSecondaryBinEdges[6][14] = 0.94; locSecondaryBinEdges[7].resize(11); locSecondaryBinEdges[7][0] = -0.72; locSecondaryBinEdges[7][1] = -0.214; locSecondaryBinEdges[7][2] = -0.002; locSecondaryBinEdges[7][3] = 0.162; locSecondaryBinEdges[7][4] = 0.298; locSecondaryBinEdges[7][5] = 0.41; locSecondaryBinEdges[7][6] = 0.506; locSecondaryBinEdges[7][7] = 0.594; locSecondaryBinEdges[7][8] = 0.678; locSecondaryBinEdges[7][9] = 0.758; locSecondaryBinEdges[7][10] = 0.94; locSecondaryBinEdges[8].resize(10); locSecondaryBinEdges[8][0] = -0.7; locSecondaryBinEdges[8][1] = -0.122; locSecondaryBinEdges[8][2] = 0.122; locSecondaryBinEdges[8][3] = 0.314; locSecondaryBinEdges[8][4] = 0.45; locSecondaryBinEdges[8][5] = 0.562; locSecondaryBinEdges[8][6] = 0.658; locSecondaryBinEdges[8][7] = 0.75; locSecondaryBinEdges[8][8] = 0.834; locSecondaryBinEdges[8][9] = 0.94; locSecondaryBinEdges[9].resize(9); locSecondaryBinEdges[9][0] = -0.7; locSecondaryBinEdges[9][1] = -0.086; locSecondaryBinEdges[9][2] = 0.174; locSecondaryBinEdges[9][3] = 0.358; locSecondaryBinEdges[9][4] = 0.494; locSecondaryBinEdges[9][5] = 0.606; locSecondaryBinEdges[9][6] = 0.694; locSecondaryBinEdges[9][7] = 0.774; locSecondaryBinEdges[9][8] = 0.94; locSecondaryBinEdges[10].resize(8); locSecondaryBinEdges[10][0] = -0.6; locSecondaryBinEdges[10][1] = -0.006; locSecondaryBinEdges[10][2] = 0.27; locSecondaryBinEdges[10][3] = 0.446; locSecondaryBinEdges[10][4] = 0.578; locSecondaryBinEdges[10][5] = 0.686; locSecondaryBinEdges[10][6] = 0.774; locSecondaryBinEdges[10][7] = 0.94; locSecondaryBinEdges[11].resize(7); locSecondaryBinEdges[11][0] = -0.6; locSecondaryBinEdges[11][1] = 0.07; locSecondaryBinEdges[11][2] = 0.346; locSecondaryBinEdges[11][3] = 0.526; locSecondaryBinEdges[11][4] = 0.654; locSecondaryBinEdges[11][5] = 0.758; locSecondaryBinEdges[11][6] = 0.94; locSecondaryBinEdges[12].resize(7); locSecondaryBinEdges[12][0] = -0.5; locSecondaryBinEdges[12][1] = 0.19; locSecondaryBinEdges[12][2] = 0.458; locSecondaryBinEdges[12][3] = 0.63; locSecondaryBinEdges[12][4] = 0.746; locSecondaryBinEdges[12][5] = 0.838; locSecondaryBinEdges[12][6] = 0.94; locSecondaryBinEdges[13].resize(6); locSecondaryBinEdges[13][0] = -0.5; locSecondaryBinEdges[13][1] = 0.29; locSecondaryBinEdges[13][2] = 0.55; locSecondaryBinEdges[13][3] = 0.71; locSecondaryBinEdges[13][4] = 0.83; locSecondaryBinEdges[13][5] = 0.94; locSecondaryBinEdges[14].resize(5); locSecondaryBinEdges[14][0] = -0.5; locSecondaryBinEdges[14][1] = 0.334; locSecondaryBinEdges[14][2] = 0.582; locSecondaryBinEdges[14][3] = 0.734; locSecondaryBinEdges[14][4] = 0.94; }