Author: [log in to unmask] Date: Mon Feb 15 14:49:25 2016 New Revision: 4227 Log: made modifications to DQM: increase window sizes for higher beam energies; removed creation of .aida files (now root only), pass in beamEnergy as an argument for DataQualityRecon.lcsim Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java Mon Feb 15 14:49:25 2016 @@ -73,7 +73,14 @@ boolean fillHitPlots = true; String[] ecalQuantNames = {"avg_N_hits", "avg_Hit_Energy", "avg_N_clusters", "avg_N_hitsPerCluster", "avg_Cluster_Energy", "avg_ClusterTime"}; - double maxE = 1.1; + double beamEnergy = 1.1; + + double maxFactor = 1.5; + + public void setBeamEnergy(double e){ + beamEnergy = e; + } + private final String plotHitsDir = "EcalHits/"; private final String plotClustersDir = "EcalClusters/"; private final String plotFidCutDir = "FiducialCut/"; @@ -90,6 +97,7 @@ this.clusterCollectionName = clusterCollectionName; } + public void setFillHitPlots(boolean fill) { this.fillHitPlots = fill; } @@ -102,32 +110,32 @@ // Setup hit plots. hitCountPlot = aida.histogram1D(plotHitsDir + triggerType + "/"+ calibratedHitCollectionName + " Hit Count In Event", 40, -0.5, 39.5); hitTimePlot = aida.histogram1D(plotHitsDir + triggerType + "/"+calibratedHitCollectionName + " Hit Time", 50, 0 * 4.0, 50 * 4.0); - hitEnergyPlot = aida.histogram1D(plotHitsDir + triggerType + "/"+calibratedHitCollectionName + " Hit Energy", 100, -0.1, maxE); + hitEnergyPlot = aida.histogram1D(plotHitsDir + triggerType + "/"+calibratedHitCollectionName + " Hit Energy", 100, -0.1, beamEnergy*maxFactor); fiducialHitCountPlot = aida.histogram1D(plotHitsDir + triggerType + "/"+calibratedHitCollectionName + " Hit Count with Fiducial Cut", 10, -0.5, 9.5); - fiducialEnergyPlot = aida.histogram1D(plotHitsDir + triggerType + "/"+calibratedHitCollectionName + " Hit Energy with Fiducial Cut", 100, -0.1, maxE); + fiducialEnergyPlot = aida.histogram1D(plotHitsDir + triggerType + "/"+calibratedHitCollectionName + " Hit Energy with Fiducial Cut", 100, -0.1, beamEnergy*maxFactor); } // Setup cluster plots clusterCountPlot = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Count per Event", 10, -0.5, 9.5); clusterSizePlot = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Size", 10, -0.5, 9.5); - clusterEnergyPlot = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Energy", 100, -0.1, maxE); + clusterEnergyPlot = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Energy", 100, -0.1, beamEnergy*maxFactor); clusterTimes = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Seed Times", 400, 0, 4.0 * 50); clusterTimeMean = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Time Mean", 400, 0, 4.0 * 50); clusterTimeSigma = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Cluster Time Sigma", 100, 0, 10); - twoclusterTotEnergy = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Two Cluster Energy Sum", 100, 0, maxE); - twoclusterEnergyAsymmetry = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Two Cluster Energy Asymmetry", 100, 0, 1.0); - energyVsT = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Energy vs time", 400, 0.0, 200.0, 100, -0.1, maxE); + twoclusterTotEnergy = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Two Cluster Energy Sum", 100, 0, beamEnergy*maxFactor); + twoclusterEnergyAsymmetry = aida.histogram1D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Two Cluster Energy Asymmetry", 100, 0, beamEnergy*maxFactor); + energyVsT = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Energy vs time", 400, 0.0, 200.0, 100, -0.1, beamEnergy*maxFactor); xVsY = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " X vs Y (NHits >1)", 200, -200.0, 200.0, 85, -85.0, 85.0); - energyVsX = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Energy vs X", 50, 0, 1.6, 50, .0, 200.0); - energyVsY = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Energy vs Y", 50, 0, 1.6, 50, 20.0, 85.0); - pairsE1vsE2 = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + "Pair E1 vs E2", 50, 0, 2, 50, 0, 2); + energyVsX = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Energy vs X", 50, 0, maxFactor*beamEnergy, 50, .0, 200.0); + energyVsY = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + " Energy vs Y", 50, 0, maxFactor*beamEnergy, 50, 20.0, 85.0); + pairsE1vsE2 = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + "Pair E1 vs E2", 50, 0, beamEnergy*maxFactor, 50, 0, beamEnergy*maxFactor); pairsT1vsT2 = aida.histogram2D(plotClustersDir + triggerType + "/"+clusterCollectionName + "Pair T1 vs T2", 200, 0, 100, 200, 0, 100); pairsDeltaT = aida.histogram1D(plotClustersDir + triggerType + "/" + clusterCollectionName + " Pair Time Difference", 100, -20.0, 20.0); fiducialClusterCountPlot = aida.histogram1D(plotClustersDir + triggerType + "/"+plotFidCutDir + clusterCollectionName + " Cluster Count with Fiducal Cut", 10, -0.5, 9.5); fiducialClusterSizePlot = aida.histogram1D(plotClustersDir+ triggerType + "/" +plotFidCutDir + clusterCollectionName + " Cluster Size with Fiducal Cut", 10, -0.5, 9.5); - fiducialClusterEnergyPlot = aida.histogram1D(plotClustersDir + triggerType + "/"+plotFidCutDir + clusterCollectionName + " Cluster Energy with Fiducal Cut", 100, -0.1, maxE); - fiducialenergyVsY = aida.histogram2D(plotClustersDir + triggerType + "/"+plotFidCutDir + clusterCollectionName + " Energy vs Y with Fiducial Cuts", 50, 0, 1.6, 50, 45.0, 85.0); - fiducialenergyVsX = aida.histogram2D(plotClustersDir+ triggerType + "/" +plotFidCutDir + clusterCollectionName + " Energy vs X with Fiducial Cuts", 50, 0, 1.6, 50, 0.0, 200.0); + fiducialClusterEnergyPlot = aida.histogram1D(plotClustersDir + triggerType + "/"+plotFidCutDir + clusterCollectionName + " Cluster Energy with Fiducal Cut", 100, -0.1, beamEnergy*maxFactor); + fiducialenergyVsY = aida.histogram2D(plotClustersDir + triggerType + "/"+plotFidCutDir + clusterCollectionName + " Energy vs Y with Fiducial Cuts", 50, 0, beamEnergy*maxFactor, 50, 45.0, 85.0); + fiducialenergyVsX = aida.histogram2D(plotClustersDir+ triggerType + "/" +plotFidCutDir + clusterCollectionName + " Energy vs X with Fiducial Cuts", 50, 0, beamEnergy*maxFactor, 50, 0.0, 200.0); } Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java Mon Feb 15 14:49:25 2016 @@ -62,7 +62,7 @@ private final String plotDir = "FinalStateParticles/"; double beamEnergy = 1.05; //GeV double maxFactor = 1.5; - double feeMomentumCut = 0.8; //GeV + double feeMomentumCut = 0.75; //this number, multiplied by the beam energy, is the actual cut IHistogram1D elePx; IHistogram1D elePy; @@ -97,6 +97,10 @@ /* number of unassocaited tracks/event */ IHistogram1D nUnAssTracksHisto; + + public void setBeamEnergy(double e){ + this.beamEnergy = e; + } public void setFinalStateParticlesColName(String fsp) { this.finalStateParticlesColName = fsp; } @@ -111,24 +115,24 @@ /* Final State Particle Quantities */ /* plot electron & positron momentum separately */ - elePx = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Px (GeV)", 100, -0.1, 0.200); - elePy = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Py (GeV)", 100, -0.1, 0.1); + elePx = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Px (GeV)", 100, -0.1*beamEnergy, 0.200*beamEnergy); + elePy = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Py (GeV)", 100, -0.1*beamEnergy, 0.1*beamEnergy); elePz = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Pz (GeV)", 100, 0, beamEnergy * maxFactor); - elePzBeam = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Beam Electrons Total P (GeV)", 100, feeMomentumCut, beamEnergy * maxFactor); - elePzBeamTop = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Beam Electrons Total P (GeV): Top", 100, feeMomentumCut, beamEnergy * maxFactor); - elePzBeamBottom = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Beam Electrons Total P (GeV): Bottom", 100, feeMomentumCut, beamEnergy * maxFactor); + elePzBeam = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Beam Electrons Total P (GeV)", 100, feeMomentumCut*beamEnergy, beamEnergy * maxFactor); + elePzBeamTop = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Beam Electrons Total P (GeV): Top", 100, feeMomentumCut*beamEnergy, beamEnergy * maxFactor); + elePzBeamBottom = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Beam Electrons Total P (GeV): Bottom", 100, feeMomentumCut*beamEnergy, beamEnergy * maxFactor); elePTop = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Total P (GeV): Top", 100, 0, beamEnergy * maxFactor); elePBottom = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Electron Total P (GeV): Bottom", 100, 0, beamEnergy * maxFactor); - posPx = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Px (GeV)", 50, -0.1, 0.200); - posPy = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Py (GeV)", 50, -0.1, 0.1); + posPx = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Px (GeV)", 50, -0.1*beamEnergy, 0.200*beamEnergy); + posPy = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Py (GeV)", 50, -0.1*beamEnergy, 0.1*beamEnergy); posPz = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Pz (GeV)", 50, 0, beamEnergy * maxFactor); posPTop = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Total P (GeV): Top", 100, 0, beamEnergy * maxFactor); posPBottom = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Positron Total P (GeV): Bottom", 100, 0, beamEnergy * maxFactor); /* photon quanties (...right now, just unassociated clusters) */ nPhotonsHisto = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Number of photons per event", 15, 0, 15); - enePhoton = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Photon Energy (GeV)", 50, 0, 2.4); + enePhoton = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Photon Energy (GeV)", 50, 0, 2.4*beamEnergy); xPhoton = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Photon X position (mm)", 50, -200, 200); yPhoton = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Photon Y position (mm)", 50, -100, 100); Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java Mon Feb 15 14:49:25 2016 @@ -74,6 +74,36 @@ private final static Logger LOGGER = Logger.getLogger(TridentMonitoring.class.getPackage().getName()); private double ebeam = 1.05; + + public void setBeamEnergy(double ebeam){ + this.ebeam = ebeam; + + plotsMinMass = 0.03 * ebeam; + plotsMaxMass = 0.04 * ebeam; + + + //v0 plot ranges + v0PzMax = 1.25 * ebeam;//GeV + v0PzMin = 0.1;// GeV + v0PyMax = 0.04 * ebeam;//GeV absolute value + v0PxMax = 0.04 * ebeam;//GeV absolute value + + //v0 cuts + v0PzMaxCut = 1.25 * ebeam;//GeV + v0PzMinCut = 0.1;// GeV + v0PyCut = 0.04 * ebeam;//GeV absolute value + v0PxCut = 0.04 * ebeam;//GeV absolute value + + // track quality cuts + beamPCut = 0.85 * ebeam; + minPCut = 0.05; +// private double trkPyMax = 0.2; +// private double trkPxMax = 0.2; + radCut = 0.8 * ebeam; + + + } + private final BasicHep3Matrix beamAxisRotation = new BasicHep3Matrix(); // private static final int nCuts = 9; // private final String[] cutNames = {"Trk Quality", @@ -216,8 +246,8 @@ private final IHistogram1D[][] cutVertexZ = new IHistogram1D[Cut.nCuts][2]; private final IHistogram2D[][] cutVertexZVsMass = new IHistogram2D[Cut.nCuts][2]; - private final double plotsMinMass = 0.03 * ebeam; - private final double plotsMaxMass = 0.04 * ebeam; + private double plotsMinMass = 0.03 * ebeam; + private double plotsMaxMass = 0.04 * ebeam; //clean up event first private final int nTrkMax = 5; @@ -228,29 +258,29 @@ private final double maxVertChi2 = 7.0; //v0 plot ranges - private final double v0PzMax = 1.25 * ebeam;//GeV - private final double v0PzMin = 0.1;// GeV - private final double v0PyMax = 0.04;//GeV absolute value - private final double v0PxMax = 0.04;//GeV absolute value + private double v0PzMax = 1.25 * ebeam;//GeV + private double v0PzMin = 0.1;// GeV + private double v0PyMax = 0.04 * ebeam;//GeV absolute value + private double v0PxMax = 0.04 * ebeam;//GeV absolute value private final double v0VzMax = 50.0;// mm from target...someday make mass dependent private final double v0VyMax = 2.0;// mm from target...someday make mass dependent private final double v0VxMax = 2.0;// mm from target...someday make mass dependent //v0 cuts - private final double v0PzMaxCut = 1.25 * ebeam;//GeV - private final double v0PzMinCut = 0.1;// GeV - private final double v0PyCut = 0.04;//GeV absolute value - private final double v0PxCut = 0.04;//GeV absolute value + private double v0PzMaxCut = 1.25 * ebeam;//GeV + private double v0PzMinCut = 0.1;// GeV + private double v0PyCut = 0.04 * ebeam;//GeV absolute value + private double v0PxCut = 0.04 * ebeam;//GeV absolute value private final double v0VzCut = 50.0;// mm from target...someday make mass dependent private final double v0VyCut = 2.0;// mm from target...someday make mass dependent private final double v0VxCut = 2.0;// mm from target...someday make mass dependent // track quality cuts - private final double beamPCut = 0.85; - private final double minPCut = 0.05; + private double beamPCut = 0.85 * ebeam; + private double minPCut = 0.05; // private double trkPyMax = 0.2; // private double trkPxMax = 0.2; - private final double radCut = 0.8 * ebeam; + private double radCut = 0.8 * ebeam; private final double trkTimeDiff = 5.0; private final double clusterTimeDiffCut = 2.5; @@ -268,9 +298,7 @@ private float nRecoV0 = 0; private final float[] nPassCut = new float[Cut.nCuts]; - public void setEbeam(double ebeam) { - this.ebeam = ebeam; - } + @Override protected void detectorChanged(Detector detector) { Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java Mon Feb 15 14:49:25 2016 @@ -150,19 +150,40 @@ private final BasicHep3Matrix beamAxisRotation = new BasicHep3Matrix(); double maxFactor = 1.25; - double feeMomentumCut = 0.8; //GeV - - double v0ESumMinCut = 0.8 * beamEnergy; - double v0ESumMaxCut = 1.25 * beamEnergy; - double v0MaxPCut = 1.1;//GeV - double molPSumMin = 0.85; - double molPSumMax = 1.3; - double beambeamCut = 0.85; + + double thetaMax = 0.06; double thetaMin = 0.015; + + public void setBeamEnergy(double e){ + this.beamEnergy = e; + feeMomentumCut = 0.75*beamEnergy; //GeV + + v0ESumMinCut = 0.8 * beamEnergy; + v0ESumMaxCut = 1.25 * beamEnergy; + /*double v0MaxPCut = 1.1;//GeV + double molPSumMin = 0.85; + double molPSumMax = 1.3; + double beambeamCut = 0.85; + */ + v0MaxPCut = 1.05*beamEnergy;//GeV + molPSumMin = 0.80*beamEnergy; + molPSumMax = 1.25*beamEnergy; + beambeamCut = 0.80*beamEnergy; + + } + + double feeMomentumCut, v0ESumMinCut, v0MaxPCut, v0ESumMaxCut, + molPSumMin, molPSumMax, beambeamCut; + + @Override protected void detectorChanged(Detector detector) { + setBeamEnergy(beamEnergy); + + + beamAxisRotation.setActiveEuler(Math.PI / 2, -0.0305, -Math.PI / 2); LOGGER.info("Setting up the plotter"); @@ -171,10 +192,13 @@ String trkType = "SeedTrack/"; if (isGBL) trkType = "GBLTrack/"; + + double maxMass = .2*beamEnergy; + double maxMassMoller = .1*Math.sqrt(beamEnergy); /* V0 Quantities */ /* Mass, vertex, chi^2 of fit */ /* unconstrained */ - unconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Invariant Mass (GeV)", 100, 0, 0.200); + unconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Invariant Mass (GeV)", 100, 0, maxMass); unconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vx (mm)", 50, -10, 10); unconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vy (mm)", 50, -10, 10); unconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vz (mm)", 50, -50, 50); @@ -182,7 +206,7 @@ unconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); unconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); /* beamspot constrained */ - bsconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Mass (GeV)", 100, 0, 0.200); + bsconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Mass (GeV)", 100, 0, maxMass); bsconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vx (mm)", 50, -10, 10); bsconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vy (mm)", 50, -10, 10); bsconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vz (mm)", 50, -50, 50); @@ -190,7 +214,7 @@ bsconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); bsconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); /* target constrained */ - tarconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Mass (GeV)", 100, 0, 0.200); + tarconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Mass (GeV)", 100, 0, maxMass); tarconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vx (mm)", 50, -1, 1); tarconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vy (mm)", 50, -1, 1); tarconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vz (mm)", 50, -10, 10); @@ -206,9 +230,9 @@ pEleVspPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e) vs P(p)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); pEleVspPosWithCut = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e) vs P(p): Radiative", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); - pyEleVspyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); - pxEleVspxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Px(e) vs Px(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); - VtxZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Mass", 50, 0, 0.15, 50, -50, 80); + pyEleVspyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Py(e) vs Py(p)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + pxEleVspxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Px(e) vs Px(p)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + VtxZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Mass", 50, 0, maxMass, 50, -50, 80); VtxXVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Vz", 100, -10, 10, 100, -50, 80); VtxYVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vy vs Vz", 100, -5, 5, 100, -50, 80); VtxXVsVtxY = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Vy", 100, -10, 10, 100, -5, 5); @@ -221,13 +245,13 @@ VtxZVsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Track Chi2", 50, 0, 50, 50, -50, 80); pEleVspEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); phiEleVsphiEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/phi(e) vs phi(e)", 50, -Math.PI, Math.PI, 50, -Math.PI, Math.PI); - pyEleVspyEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e)", 50, -0.04, 0.04, 50, -0.04, 0.04); - pxEleVspxEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e)", 50, -0.02, 0.06, 50, -0.02, 0.06); + pyEleVspyEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + pxEleVspxEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e)", 50, -0.02*beamEnergy, 0.06*beamEnergy, 50, -0.02*beamEnergy, 0.06*beamEnergy); pEleVspEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) NoBeam", 50, 0, beambeamCut, 50, 0, beambeamCut); pEleVspEleMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) Moller", 50, 0, beambeamCut, 50, 0, beambeamCut); pEleVspEleBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, beambeamCut, beamEnergy * maxFactor); - pyEleVspyEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e) NoBeam", 50, -0.04, 0.04, 50, -0.04, 0.04); - pxEleVspxEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e) NoBeam", 50, -0.02, 0.06, 50, -0.02, 0.06); + pyEleVspyEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e) NoBeam", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + pxEleVspxEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e) NoBeam", 50, -0.02*beamEnergy, 0.06*beamEnergy, 50, -0.02*beamEnergy, 0.06*beamEnergy); sumChargeHisto = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Total Charge of Event", 5, -2, 3); numChargeHisto = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Number of Charged Particles", 6, 0, 6); @@ -236,8 +260,8 @@ pEleVsthetaBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs Theta BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, thetaMin, thetaMax); thetaEleVsthetaBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Theta vs Theta BeamBeam", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax); - mollerMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV)", 100, 0, 0.100); - mollerMassVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV): VtxCut", 100, 0, 0.100); + mollerMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV)", 100, 0, maxMassMoller); + mollerMassVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV): VtxCut", 100, 0, maxMassMoller); mollerVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx (mm)", 50, -10, 10); mollerVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vy (mm)", 50, -2, 2); mollerVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vz (mm)", 50, -50, 50); @@ -246,8 +270,8 @@ mollerYVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vy vs Vz", 100, -2, 2, 100, -50, 50); mollerXVsVtxY = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx vs Vy", 100, -5, 5, 100, -2, 2); - mollerUx = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Ux", 100, .025, .035); - mollerUy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Uy", 100, -.005, .005); + mollerUx = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Ux", 100, .015, .045); + mollerUy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Uy", 100, -.01, .01); @@ -471,8 +495,10 @@ mollerYVsVtxZ.fill(bv.getPosition().y(), bv.getPosition().z()); mollerXVsVtxY.fill(bv.getPosition().x(), bv.getPosition().y()); - mollerUx.fill((p1.x()+p2.x())/(p1.z()+p2.z())); - mollerUy.fill((p1.y()+p2.y())/(p1.z()+p2.z())); + double ux = (ele1.getMomentum().x()+ele2.getMomentum().x())/(ele1.getMomentum().z()+ele2.getMomentum().z()); + double uy = (ele1.getMomentum().y()+ele2.getMomentum().y())/(ele1.getMomentum().z()+ele2.getMomentum().z()); + mollerUx.fill(ux); + mollerUy.fill(uy); if (Math.abs(bv.getPosition().x()) < 2 && Math.abs(bv.getPosition().y()) < 0.5) { Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim ============================================================================= --- java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim (original) +++ java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim Mon Feb 15 14:49:25 2016 @@ -9,7 +9,8 @@ <!-- <driver name="DQMDatabaseDriver"/> --> <driver name="RawTrackerHitSensorSetup"/> <driver name="EcalMonitoring"/> - <driver name="SVTMonitoring"/> + <driver name="EcalMonitoringCorr"/> + <driver name="SVTMonitoring"/> <driver name="TrackingMonitoring"/> <driver name="TrackingResiduals"/> <driver name="FinalStateMonitoring"/> @@ -21,6 +22,7 @@ <driver name="TridentMonitoringGBL"/> <!-- Singles0 --> <driver name="EcalMonitoringSingles0"/> + <driver name="EcalMonitoringCorrSingles0"/> <driver name="TrackingMonitoringSingles0"/> <driver name="TrackingMonitoringGBLSingles0"/> <driver name="TrackingResidualsSingles0"/> @@ -29,6 +31,7 @@ <driver name="TridentMonitoringSingles0"/> <!-- Singles1 --> <driver name="EcalMonitoringSingles1"/> + <driver name="EcalMonitoringCorrSingles1"/> <driver name="TrackingMonitoringSingles1"/> <driver name="TrackingMonitoringGBLSingles1"/> <driver name="TrackingResidualsSingles1"/> @@ -39,7 +42,8 @@ <driver name="V0MonitoringGBLSingles1"/> <driver name="TridentMonitoringGBLSingles1"/> <!-- Pairs0 --> - <driver name="EcalMonitoringPairs0"/> + <driver name="EcalMonitoringPairs0"/> + <driver name="EcalMonitoringCorrPairs0"/> <driver name="TrackingMonitoringPairs0"/> <driver name="TrackingMonitoringGBLPairs0"/> <driver name="TrackingResidualsPairs0"/> @@ -47,7 +51,8 @@ <driver name="V0MonitoringPairs0"/> <driver name="TridentMonitoringPairs0"/> <!-- Pairs1 --> - <driver name="EcalMonitoringPairs1"/> + <driver name="EcalMonitoringPairs1"/> + <driver name="EcalMonitoringCorrPairs1"/> <driver name="TrackingMonitoringPairs1"/> <driver name="TrackingMonitoringGBLPairs1"/> <driver name="TrackingResidualsPairs1"/> @@ -58,7 +63,7 @@ <driver name="V0MonitoringGBLPairs1"/> <driver name="TridentMonitoringGBLPairs1"/> <!-- --> - <driver name="AidaSaveDriver"/> + <!-- <driver name="AidaSaveDriver"/>--> <driver name="AidaToRootSaveDriver"/> <driver name="CleanupDriver"/> </execute> @@ -79,6 +84,13 @@ <!-- all triggers --> <driver name="EcalMonitoring" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>all</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="EcalMonitoringCorr" type="org.hps.analysis.dataquality.EcalMonitoring"> + <triggerType>all</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + <clusterCollectionName>EcalClustersCorr</clusterCollectionName> + <fillHitPlots>false</fillHitPlots> </driver> <driver name="SVTMonitoring" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>all</triggerType> @@ -92,12 +104,15 @@ </driver> <driver name="FinalStateMonitoring" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>all</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0Monitoring" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>all</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoring" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>all</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TrackingMonitoringGBL" type="org.hps.analysis.dataquality.TrackingMonitoring"> <trackCollectionName>GBLTracks</trackCollectionName> @@ -105,20 +120,30 @@ </driver> <driver name="FinalStateMonitoringGBL" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>all</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> <isGBL>true</isGBL> </driver> <driver name="V0MonitoringGBL" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>all</triggerType> <isGBL>true</isGBL> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringGBL" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>all</triggerType> <isGBL>true</isGBL> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- singles0 triggers --> <driver name="EcalMonitoringSingles0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="EcalMonitoringCorrSingles0" type="org.hps.analysis.dataquality.EcalMonitoring"> + <triggerType>singles0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + <clusterCollectionName>EcalClustersCorr</clusterCollectionName> + <fillHitPlots>false</fillHitPlots> </driver> <driver name="SVTMonitoringSingles0" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>singles0</triggerType> @@ -135,17 +160,27 @@ </driver> <driver name="FinalStateMonitoringSingles0" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringSingles0" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>singles0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringSingles0" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>singles0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- singles1 triggers --> <driver name="EcalMonitoringSingles1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="EcalMonitoringCorrSingles1" type="org.hps.analysis.dataquality.EcalMonitoring"> + <triggerType>singles1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + <clusterCollectionName>EcalClustersCorr</clusterCollectionName> + <fillHitPlots>false</fillHitPlots> </driver> <driver name="SVTMonitoringSingles1" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>singles1</triggerType> @@ -162,29 +197,42 @@ </driver> <driver name="FinalStateMonitoringSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>singles1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringSingles1" type="org.hps.analysis.dataquality.TridentMonitoring"> - <triggerType>singles1</triggerType> + <triggerType>singles1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="FinalStateMonitoringGBLSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles1</triggerType> <isGBL>true</isGBL> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringGBLSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>singles1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> <isGBL>true</isGBL> </driver> <driver name="TridentMonitoringGBLSingles1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>singles1</triggerType> <isGBL>true</isGBL> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- pairs0 triggers --> <driver name="EcalMonitoringPairs0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="EcalMonitoringCorrPairs0" type="org.hps.analysis.dataquality.EcalMonitoring"> + <triggerType>pairs0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + <clusterCollectionName>EcalClustersCorr</clusterCollectionName> + <fillHitPlots>false</fillHitPlots> </driver> <driver name="SVTMonitoringPairs0" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>pairs0</triggerType> @@ -201,18 +249,28 @@ </driver> <driver name="FinalStateMonitoringPairs0" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>pairs0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringPairs0" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>pairs0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringPairs0" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs0</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- pairs1 triggers --> <driver name="EcalMonitoringPairs1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="EcalMonitoringCorrPairs1" type="org.hps.analysis.dataquality.EcalMonitoring"> + <triggerType>pairs1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> + <clusterCollectionName>EcalClustersCorr</clusterCollectionName> + <fillHitPlots>false</fillHitPlots> </driver> <driver name="SVTMonitoringPairs1" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>pairs1</triggerType> @@ -229,24 +287,30 @@ </driver> <driver name="FinalStateMonitoringPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>pairs1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringPairs1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>pairs1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringPairs1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="FinalStateMonitoringGBLPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>pairs1</triggerType> <isGBL>true</isGBL> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringGBLPairs1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>pairs1</triggerType> + <beamEnergy>${beamEnergy}</beamEnergy> <isGBL>true</isGBL> </driver> <driver name="TridentMonitoringGBLPairs1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs1</triggerType> <isGBL>true</isGBL> + <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/>