Author: [log in to unmask]
Date: Wed Sep 9 12:27:20 2015
New Revision: 3566
Log:
Data quality plots for pass-2; some reorginization for plotting GBL & SeedTrack stuff separately.
Added:
java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim
- copied, changed from r3549, java/trunk/steering-files/src/main/resources/org/hps/steering/readout/EngineeringRun2015TrigPairs1.lcsim
Modified:
java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java
java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java
java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java
java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingResiduals.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
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java Wed Sep 9 12:27:20 2015
@@ -37,9 +37,14 @@
protected String outputPlotDir = "DQMOutputPlots/";
String triggerType = "all";//allowed types are "" (blank) or "all", singles0, singles1, pairs0,pairs1
+ boolean isGBL = false;
public void setTriggerType(String type) {
this.triggerType = type;
+ }
+
+ public void setIsGBL(boolean isgbl) {
+ this.isGBL = isgbl;
}
public void setRecoVersion(String recoVersion) {
@@ -171,6 +176,10 @@
}
}
+ public String getTriggerType() {
+ return triggerType;
+ }
+
public boolean matchTriggerType(TIData triggerData) {
if (triggerType.contentEquals("") || triggerType.contentEquals("all"))
return true;
@@ -203,7 +212,6 @@
//override this method to do something interesting
//like print the DQM data log file
-
public void printDQMData() {
}
@@ -212,4 +220,5 @@
//format for making the db column headers
public void printDQMStrings() {
}
+
}
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 Wed Sep 9 12:27:20 2015
@@ -91,7 +91,7 @@
IHistogram1D timeMatchDeltaT;
/* number of unassocaited tracks/event */
IHistogram1D nUnAssTracksHisto;
-
+
public void setFinalStateParticlesColName(String fsp) {
this.finalStateParticlesColName = fsp;
}
@@ -100,41 +100,44 @@
protected void detectorChanged(Detector detector) {
System.out.println("FinalStateMonitoring::detectorChanged Setting up the plotter");
aida.tree().cd("/");
-
+ String trkType="SeedTrack/";
+ if(isGBL)
+ trkType="GBLTrack/";
+
/* Final State Particle Quantities */
/* plot electron & positron momentum separately */
- elePx = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Electron Px (GeV)", 100, -0.1, 0.200);
- elePy = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Electron Py (GeV)", 100, -0.1, 0.1);
- elePz = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Electron Pz (GeV)", 100, 0, beamEnergy * maxFactor);
- elePzBeam = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Beam Electrons Total P (GeV)", 100, feeMomentumCut, beamEnergy * maxFactor);
- elePzBeamTop = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Beam Electrons Total P (GeV): Top", 100, feeMomentumCut, beamEnergy * maxFactor);
- elePzBeamBottom = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Beam Electrons Total P (GeV): Bottom", 100, feeMomentumCut, beamEnergy * maxFactor);
- elePTop = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Electron Total P (GeV): Top", 100, 0, beamEnergy * maxFactor);
- elePBottom = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Electron Total P (GeV): Bottom", 100, 0, beamEnergy * maxFactor);
-
- posPx = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Positron Px (GeV)", 50, -0.1, 0.200);
- posPy = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Positron Py (GeV)", 50, -0.1, 0.1);
- posPz = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Positron Pz (GeV)", 50, 0, beamEnergy * maxFactor);
- posPTop = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Positron Total P (GeV): Top", 100, 0, beamEnergy * maxFactor);
- posPBottom = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Positron Total P (GeV): Bottom", 100, 0, beamEnergy * maxFactor);
+ 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);
+ 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);
+ 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);
+ 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 + finalStateParticlesColName + "/" + triggerType + "/" + "Number of photons per event", 15, 0, 15);
- enePhoton = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Photon Energy (GeV)", 50, 0, 2.4);
- xPhoton = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Photon X position (mm)", 50, -200, 200);
- yPhoton = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Photon Y position (mm)", 50, -100, 100);
+ 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);
+ 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);
/* tracks with associated clusters */
- eneOverp = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Cluster Energy Over TrackMomentum", 50, 0, 2.0);
- deltaXAtCal = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "delta X @ ECal (mm)", 50, -50, 50.0);
- deltaYAtCal = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "delta Y @ ECal (mm)", 50, -50, 50.0);
-// trackXvsECalX = aida.histogram2D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "track X vs ECal X", 50, -300, 300.0, 50, -300, 300.0);
-// trackYvsECalY = aida.histogram2D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "track Y vs ECal Y", 50, -100, 100.0, 50, -100, 100.0);
- trackPvsECalE = aida.histogram2D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "track mom vs ECal E", 50, 0.1, beamEnergy * maxFactor, 50, 0.1, beamEnergy * maxFactor);
- trackTvsECalT = aida.histogram2D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "track T vs ECal T", 200, 0.0, 200.0, 100, -25.0, 25.0);
- timeMatchDeltaT = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "ECal T minus track T", 200, -25, 175);
+ eneOverp = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Cluster Energy Over TrackMomentum", 50, 0, 2.0);
+ deltaXAtCal = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "delta X @ ECal (mm)", 50, -50, 50.0);
+ deltaYAtCal = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "delta Y @ ECal (mm)", 50, -50, 50.0);
+// trackXvsECalX = aida.histogram2D(plotDir +trkType+ triggerType + "/" + "track X vs ECal X", 50, -300, 300.0, 50, -300, 300.0);
+// trackYvsECalY = aida.histogram2D(plotDir +trkType+ triggerType + "/" + "track Y vs ECal Y", 50, -100, 100.0, 50, -100, 100.0);
+ trackPvsECalE = aida.histogram2D(plotDir +trkType+ triggerType + "/" + "track mom vs ECal E", 50, 0.1, beamEnergy * maxFactor, 50, 0.1, beamEnergy * maxFactor);
+ trackTvsECalT = aida.histogram2D(plotDir +trkType+ triggerType + "/" + "track T vs ECal T", 200, 0.0, 200.0, 100, -25.0, 25.0);
+ timeMatchDeltaT = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "ECal T minus track T", 200, -25, 175);
/* number of unassocaited tracks/event */
- nUnAssTracksHisto = aida.histogram1D(plotDir + finalStateParticlesColName + "/" + triggerType + "/" + "Number of unassociated tracks per event", 5, 0, 5);
+ nUnAssTracksHisto = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Number of unassociated tracks per event", 5, 0, 5);
}
@Override
@@ -167,7 +170,8 @@
if (debug) {
System.out.println("PDGID = " + fsPart.getParticleIDUsed() + "; charge = " + fsPart.getCharge() + "; pz = " + fsPart.getMomentum().x());
}
-
+ if(isGBL^fsPart.getType()<32)//XOR!!!!
+ continue;
// Extrapolate the track to the Ecal cluster position
boolean isPhoton = false;
boolean hasCluster = true;
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java Wed Sep 9 12:27:20 2015
@@ -184,18 +184,18 @@
trkYAtECALTop = aida.histogram1D(plotDir + trackCollectionName + "/" + triggerType + "/" + "Track Y at ECAL: Top", 100, 0, 100);
trkYAtECALBot = aida.histogram1D(plotDir + trackCollectionName + "/" + triggerType + "/" + "Track Y at ECAL: Bot", 100, 0, 100);
for (int i = 1; i <= nmodules; i++) {
- xvsyTop[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Top", 250, -100, 150, 30, 0, 60);
- xvsyBot[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Bottom", 250, -100, 150, 30, 0, 60);
- xvsyOnTrackTop[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Top, Hits On Tracks", 250, -100, 150, 30, 0, 60);
- xvsyOnTrackBot[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Bottom, Hits On Tracks", 250, -100, 150, 30, 0, 60);
- timevstimeTop[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Top: Hit Times", 30, -15, 15, 30, -15, 15);
- timevstimeBot[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Bottom: Hit Times", 30, -15, 15, 30, -15, 15);
- hthTop[i - 1] = aida.histogram1D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Top: Track Hits", 25, 0, 25);
- hthBot[i - 1] = aida.histogram1D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Bottom: Track Hits", 25, 0, 25);
- timevstimeOnTrackTop[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Top: Hit Times, Hits On Tracks", 30, -15, 15, 30, -15, 15);
- timevstimeOnTrackBot[i - 1] = aida.histogram2D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Bottom: Hit Times, Hits On Tracks", 30, -15, 15, 30, -15, 15);
- deltaTOnTrackTop[i - 1] = aida.histogram1D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Top: Hit Time Differences, Hits On Tracks", 50, -25, 25);
- deltaTOnTrackBot[i - 1] = aida.histogram1D(plotDir + triggerType + "/" + hthplotDir + "Module " + i + " Bottom: Hit Time Differences, Hits On Tracks", 50, -25, 25);
+ xvsyTop[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Top", 250, -100, 150, 30, 0, 60);
+ xvsyBot[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Bottom", 250, -100, 150, 30, 0, 60);
+ xvsyOnTrackTop[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Top, Hits On Tracks", 250, -100, 150, 30, 0, 60);
+ xvsyOnTrackBot[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Bottom, Hits On Tracks", 250, -100, 150, 30, 0, 60);
+ timevstimeTop[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Top: Hit Times", 30, -15, 15, 30, -15, 15);
+ timevstimeBot[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Bottom: Hit Times", 30, -15, 15, 30, -15, 15);
+ hthTop[i - 1] = aida.histogram1D(hthplotDir + triggerType + "/"+ "Module " + i + " Top: Track Hits", 25, 0, 25);
+ hthBot[i - 1] = aida.histogram1D(hthplotDir + triggerType + "/"+ "Module " + i + " Bottom: Track Hits", 25, 0, 25);
+ timevstimeOnTrackTop[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Top: Hit Times, Hits On Tracks", 30, -15, 15, 30, -15, 15);
+ timevstimeOnTrackBot[i - 1] = aida.histogram2D(hthplotDir + triggerType + "/"+ "Module " + i + " Bottom: Hit Times, Hits On Tracks", 30, -15, 15, 30, -15, 15);
+ deltaTOnTrackTop[i - 1] = aida.histogram1D(hthplotDir + triggerType + "/"+ "Module " + i + " Top: Hit Time Differences, Hits On Tracks", 50, -25, 25);
+ deltaTOnTrackBot[i - 1] = aida.histogram1D(hthplotDir + triggerType + "/"+ "Module " + i + " Bottom: Hit Time Differences, Hits On Tracks", 50, -25, 25);
}
trkChi2Pos = aida.histogram1D(plotDir + trackCollectionName + "/" + triggerType + "/" + positronDir + "Track Chi2", 25, 0, 25.0);
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingResiduals.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingResiduals.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingResiduals.java Wed Sep 9 12:27:20 2015
@@ -132,7 +132,7 @@
for (GenericObject gblSCD : gblSCDList) {
double umeas = gblSCD.getDoubleVal(GBLStripClusterData.GBLDOUBLE.UMEAS);//TODO: implement generic methods into GBLStripClusterData so this isn't hard coded
double utrk = gblSCD.getDoubleVal(GBLStripClusterData.GBLDOUBLE.TPOSU);//implement generic methods into GBLStripClusterData so this isn't hard coded
-// double vtrk = gblSCD.getDoubleVal(GBLStripClusterData.GBLDOUBLE.TPOSV);//implement generic methods into GBLStripClusterData so this isn't hard coded
+ double vtrk = gblSCD.getDoubleVal(GBLStripClusterData.GBLDOUBLE.TPOSV);//implement generic methods into GBLStripClusterData so this isn't hard coded
double resid = umeas - utrk;
double tanlambda = gblSCD.getDoubleVal(GBLStripClusterData.GBLDOUBLE.TLAMBDA);//use the slope as a proxy for the top/bottom half of tracker
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 Wed Sep 9 12:27:20 2015
@@ -106,7 +106,9 @@
protected void detectorChanged(Detector detector) {
System.out.println("TridentMonitoring::detectorChanged Setting up the plotter");
aida.tree().cd("/");
-
+ String trkType = "SeedTrack/";
+ if (isGBL)
+ trkType = "GBLTrack/";
/* V0 Quantities */
/* Mass, vertex, chi^2 of fit */
/* beamspot constrained */
@@ -122,54 +124,48 @@
// IHistogram1D tarconVy = aida.histogram1D(plotDir + triggerType + "/"+ triggerType + "/"+"Target Constrained Vy (mm)", 50, -1, 1);
// IHistogram1D tarconVz = aida.histogram1D(plotDir + triggerType + "/"+ triggerType + "/"+"Target Constrained Vz (mm)", 50, -10, 10);
// IHistogram1D tarconChi2 = aida.histogram1D(plotDir + triggerType + "/"+ triggerType + "/"+"Target Constrained Chi2", 25, 0, 25);
- pyEleVspyPos = aida.histogram2D(plotDir + triggerType + "/" + "Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04);
- pxEleVspxPos = aida.histogram2D(plotDir + triggerType + "/" + "Px(e) vs Px(p)", 50, -0.02, 0.06, 50, -0.02, 0.06);
- trackTimeDiff = aida.histogram1D(plotDir + triggerType + "/" + "Track time difference", 100, -10, 10);
- trackTime2D = aida.histogram2D(plotDir + triggerType + "/" + "Track time vs. track time", 100, -10, 10, 100, -10, 10);
- vertexMassMomentum = aida.histogram2D(plotDir + triggerType + "/" + "Vertex mass vs. vertex momentum", 100, 0, 1.1, 100, 0, 0.1);
- vertexedTrackMomentum2D = aida.histogram2D(plotDir + triggerType + "/" + "Positron vs. electron momentum", 100, 0, 1.1, 100, 0, 1.1);
- vertexedTrackMomentum2DRad = aida.histogram2D(plotDir + triggerType + "/" + "Positron vs. electron momentum: Radiative", 100, 0, 1.1, 100, 0, 1.1);
- vertexPxPy = aida.histogram2D(plotDir + triggerType + "/" + "Vertex Py vs. Px", 100, -0.02, 0.06, 100, -0.04, 0.04);
- goodVertexMass = aida.histogram1D(plotDir + triggerType + "/" + "Good vertex mass", 100, 0, 0.11);
- deltaP = aida.histogram1D(plotDir + triggerType + "/" + "Positron - electron momentum", 100, -1., 1.0);
- deltaPRad = aida.histogram1D(plotDir + triggerType + "/" + "Positron - electron momentum", 100, -1., 1.0);
- sumP = aida.histogram1D(plotDir + triggerType + "/" + "Positron + electron momentum", 100, 0.2, 1.25);
- vertexX = aida.histogram1D(plotDir + triggerType + "/" + "Vertex X Position (mm)", 100, -v0VxMax, v0VxMax);
- vertexY = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Y Position (mm)", 100, -v0VyMax, v0VyMax);
- vertexZ = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Z Position (mm)", 100, -v0VzMax, v0VzMax);
- vertexPx = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Px (GeV)", 100, -0.1, 0.1);
- vertexPy = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Py (GeV)", 100, -0.1, 0.1);
- vertexPz = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Pz (GeV)", 100, 0.0, v0PzMax);
- vertexU = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Px over Ptot (GeV)", 100, -0.1, 0.1);
- vertexV = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Py over Ptot (GeV)", 100, -0.1, 0.1);
-// vertexW = aida.histogram1D(plotDir + triggerType + "/" + "Vertex Pz overPtot (GeV)", 100, 0.95, 1.0);
- vertexVZ = aida.histogram2D(plotDir + triggerType + "/" + "Vertex Py over Ptot vs. Z", 100, -v0VzMax, v0VzMax, 100, -0.1, 0.1);
- vertexZY = aida.histogram2D(plotDir + triggerType + "/" + "Vertex Z vs. Y", 100, -v0VyMax, v0VyMax, 100, -v0VzMax, v0VzMax);
+ pyEleVspyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04);
+ pxEleVspxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Px(e) vs Px(p)", 50, -0.02, 0.06, 50, -0.02, 0.06);
+ trackTimeDiff = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Track time difference", 100, -10, 10);
+ trackTime2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Track time vs. track time", 100, -10, 10, 100, -10, 10);
+ vertexMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex mass vs. vertex momentum", 100, 0, 1.1, 100, 0, 0.1);
+ vertexedTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Positron vs. electron momentum", 100, 0, 1.1, 100, 0, 1.1);
+ vertexedTrackMomentum2DRad = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Positron vs. electron momentum: Radiative", 100, 0, 1.1, 100, 0, 1.1);
+ vertexPxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex Py vs. Px", 100, -0.02, 0.06, 100, -0.04, 0.04);
+ goodVertexMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Good vertex mass", 100, 0, 0.11);
+ deltaP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Positron - electron momentum", 100, -1., 1.0);
+ deltaPRad = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Positron - electron momentum", 100, -1., 1.0);
+ sumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Positron + electron momentum", 100, 0.2, 1.25);
+ vertexX = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex X Position (mm)", 100, -v0VxMax, v0VxMax);
+ vertexY = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Y Position (mm)", 100, -v0VyMax, v0VyMax);
+ vertexZ = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Z Position (mm)", 100, -v0VzMax, v0VzMax);
+ vertexPx = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Px (GeV)", 100, -0.1, 0.1);
+ vertexPy = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Py (GeV)", 100, -0.1, 0.1);
+ vertexPz = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Pz (GeV)", 100, 0.0, v0PzMax);
+ vertexU = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Px over Ptot (GeV)", 100, -0.1, 0.1);
+ vertexV = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex Py over Ptot (GeV)", 100, -0.1, 0.1);
+// vertexW = aida.histogram1D(plotDir +trkType+ triggerType + "/" + "Vertex Pz overPtot (GeV)", 100, 0.95, 1.0);
+ vertexVZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex Py over Ptot vs. Z", 100, -v0VzMax, v0VzMax, 100, -0.1, 0.1);
+ vertexZY = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex Z vs. Y", 100, -v0VyMax, v0VyMax, 100, -v0VzMax, v0VzMax);
}
@Override
public void process(EventHeader event) {
/* make sure everything is there */
- if (!event.hasCollection(ReconstructedParticle.class, finalStateParticlesColName)) {
- return;
- }
- if (!event.hasCollection(ReconstructedParticle.class, unconstrainedV0CandidatesColName)) {
- return;
- }
- if (!event.hasCollection(ReconstructedParticle.class, beamConV0CandidatesColName)) {
- return;
- }
- if (!event.hasCollection(ReconstructedParticle.class, targetV0ConCandidatesColName)) {
- return;
- }
- if (!event.hasCollection(Track.class, trackListName)) {
- return;
- }
+ if (!event.hasCollection(ReconstructedParticle.class, finalStateParticlesColName))
+ return;
+ if (!event.hasCollection(ReconstructedParticle.class, unconstrainedV0CandidatesColName))
+ return;
+ if (!event.hasCollection(ReconstructedParticle.class, beamConV0CandidatesColName))
+ return;
+ if (!event.hasCollection(ReconstructedParticle.class, targetV0ConCandidatesColName))
+ return;
+ if (!event.hasCollection(Track.class, trackListName))
+ return;
//check to see if this event is from the correct trigger (or "all");
- if (!matchTrigger(event)) {
- return;
- }
+ if (!matchTrigger(event))
+ return;
nRecoEvents++;
@@ -178,19 +174,15 @@
List<Track> trks = event.get(Track.class, trackListName);
int ntracks = trks.size();
- if (ntracks > nTrkMax || ntracks < 2) {
- return;
- }
+ if (ntracks > nTrkMax || ntracks < 2)
+ return;
List<ReconstructedParticle> fspList = event.get(ReconstructedParticle.class, finalStateParticlesColName);
int npos = 0;
- for (ReconstructedParticle fsp : fspList) {
- if (fsp.getCharge() > 0) {
+ for (ReconstructedParticle fsp : fspList)
+ if (fsp.getCharge() > 0)
npos++;
- }
- }
- if (npos < 1 || npos > nPosMax) {
- return;
- }
+ if (npos < 1 || npos > nPosMax)
+ return;
nPassBasicCuts++;//passed some basic event-level cuts...
@@ -200,50 +192,39 @@
// v0 & vertex-quality cuts
// Hep3Vector v0Mom = uncV0.getMomentum();
Hep3Vector v0Mom = VecOp.add(uncV0.getParticles().get(1).getMomentum(), uncV0.getParticles().get(0).getMomentum());
- if (v0Mom.z() > v0PzMax || v0Mom.z() < v0PzMin) {
- continue;
- }
- if (Math.abs(v0Mom.y()) > v0PyMax) {
- continue;
- }
- if (Math.abs(v0Mom.x()) > v0PxMax) {
- continue;
- }
+ if (v0Mom.z() > v0PzMax || v0Mom.z() < v0PzMin)
+ continue;
+ if (Math.abs(v0Mom.y()) > v0PyMax)
+ continue;
+ if (Math.abs(v0Mom.x()) > v0PxMax)
+ continue;
Hep3Vector v0Vtx = uncVert.getPosition();
- if (Math.abs(v0Vtx.z()) > v0VzMax) {
- continue;
- }
- if (Math.abs(v0Vtx.y()) > v0VyMax) {
- continue;
- }
- if (Math.abs(v0Vtx.x()) > v0VxMax) {
- continue;
- }
+ if (Math.abs(v0Vtx.z()) > v0VzMax)
+ continue;
+ if (Math.abs(v0Vtx.y()) > v0VyMax)
+ continue;
+ if (Math.abs(v0Vtx.x()) > v0VxMax)
+ continue;
List<Track> tracks = new ArrayList<Track>();
ReconstructedParticle electron = null, positron = null;
for (ReconstructedParticle particle : uncV0.getParticles()) // tracks.addAll(particle.getTracks()); //add add electron first, then positron...down below
- {
- if (particle.getCharge() > 0) {
+
+ if (particle.getCharge() > 0)
positron = particle;
- } else if (particle.getCharge() < 0) {
+ else if (particle.getCharge() < 0)
electron = particle;
- } else {
+ else
throw new RuntimeException("expected only electron and positron in vertex, got something with charge 0");
- }
- }
- if (electron == null || positron == null) {
+ if (electron == null || positron == null)
throw new RuntimeException("vertex needs e+ and e- but is missing one or both");
- }
tracks.add(electron.getTracks().get(0));
tracks.add(positron.getTracks().get(0));
- if (tracks.size() != 2) {
+ if (tracks.size() != 2)
throw new RuntimeException("expected two tracks in vertex, got " + tracks.size());
- }
List<Double> trackTimes = new ArrayList<Double>();
- for (Track track : tracks) {
+ for (Track track : tracks)
trackTimes.add(TrackUtils.getTrackTime(track, hitToStrips, hitToRotated));
- }
trackTime2D.fill(trackTimes.get(0), trackTimes.get(1));
trackTimeDiff.fill(trackTimes.get(0) - trackTimes.get(1));
boolean trackTimeDiffCut = Math.abs(trackTimes.get(0) - trackTimes.get(1)) < trkTimeDiff;
@@ -270,10 +251,10 @@
vertexPx.fill(uncV0.getMomentum().x());
vertexPy.fill(uncV0.getMomentum().y());
vertexPz.fill(uncV0.getMomentum().z());
- vertexU.fill(uncV0.getMomentum().x()/uncV0.getMomentum().magnitude());
- vertexV.fill(uncV0.getMomentum().y()/uncV0.getMomentum().magnitude());
+ vertexU.fill(uncV0.getMomentum().x() / uncV0.getMomentum().magnitude());
+ vertexV.fill(uncV0.getMomentum().y() / uncV0.getMomentum().magnitude());
// vertexW.fill(uncV0.getMomentum().z()/uncV0.getMomentum().magnitude());
- vertexVZ.fill(v0Vtx.z(), uncV0.getMomentum().y()/uncV0.getMomentum().magnitude());
+ vertexVZ.fill(v0Vtx.z(), uncV0.getMomentum().y() / uncV0.getMomentum().magnitude());
vertexZY.fill(v0Vtx.y(), v0Vtx.z());
}
}
@@ -284,9 +265,8 @@
@Override
public void printDQMData() {
System.out.println("TridentMonitoring::printDQMData");
- for (Entry<String, Double> entry : monitoredQuantityMap.entrySet()) {
+ for (Entry<String, Double> entry : monitoredQuantityMap.entrySet())
System.out.println(entry.getKey() + " = " + entry.getValue());
- }
System.out.println("*******************************");
}
@@ -305,9 +285,8 @@
@Override
public void printDQMStrings() {
for (int i = 0; i < 9; i++)//TODO: do this in a smarter way...loop over the map
- {
+
System.out.println("ALTER TABLE dqm ADD " + fpQuantNames[i] + " double;");
- }
}
IFitResult fitVertexPosition(IHistogram1D h1d, IFitter fitter, double[] init, String range) {
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 Wed Sep 9 12:27:20 2015
@@ -139,90 +139,88 @@
protected void detectorChanged(Detector detector) {
System.out.println("V0Monitoring::detectorChanged Setting up the plotter");
aida.tree().cd("/");
-
+ String xtra = "Extras";
+ String trkType = "SeedTrack/";
+ if (isGBL)
+ trkType = "GBLTrack/";
/* V0 Quantities */
/* Mass, vertex, chi^2 of fit */
/* unconstrained */
- unconMass = aida.histogram1D(plotDir + triggerType + "/" + "Unconstrained Mass (GeV)", 100, 0, 0.200);
- unconVx = aida.histogram1D(plotDir + triggerType + "/" + "Unconstrained Vx (mm)", 50, -10, 10);
- unconVy = aida.histogram1D(plotDir + triggerType + "/" + "Unconstrained Vy (mm)", 50, -10, 10);
- unconVz = aida.histogram1D(plotDir + triggerType + "/" + "Unconstrained Vz (mm)", 50, -50, 50);
- unconChi2 = aida.histogram1D(plotDir + triggerType + "/" + "Unconstrained Chi2", 25, 0, 25);
+ unconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Invariant Mass (GeV)", 100, 0, 0.200);
+ 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);
+ unconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Chi2", 25, 0, 25);
/* beamspot constrained */
-
- nV0 = aida.histogram1D(plotDir + triggerType + "/" + "Number of V0 per event", 10, 0, 10);
- v0Time = aida.histogram1D(plotDir + triggerType + "/" + "V0 mean time", 100, -25, 25);
- v0Dt = aida.histogram1D(plotDir + triggerType + "/" + "V0 time difference", 100, -25, 25);
- trigTimeV0Time = aida.histogram2D(plotDir + triggerType + "/" + "Trigger phase vs. V0 mean time", 100, -25, 25, 6, 0, 24);
- trigTime = aida.histogram1D(plotDir + triggerType + "/" + "Trigger phase", 6, 0, 24);
-
- bsconMass = aida.histogram1D(plotDir + triggerType + "/" + "BS Constrained Mass (GeV)", 100, 0, 0.200);
- bsconVx = aida.histogram1D(plotDir + triggerType + "/" + "BS Constrained Vx (mm)", 50, -10, 10);
- bsconVy = aida.histogram1D(plotDir + triggerType + "/" + "BS Constrained Vy (mm)", 50, -10, 10);
- bsconVz = aida.histogram1D(plotDir + triggerType + "/" + "BS Constrained Vz (mm)", 50, -50, 50);
- bsconChi2 = aida.histogram1D(plotDir + triggerType + "/" + "BS Constrained Chi2", 25, 0, 25);
+ bsconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Mass (GeV)", 100, 0, 0.200);
+ 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);
+ bsconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Chi2", 25, 0, 25);
/* target constrained */
- tarconMass = aida.histogram1D(plotDir + triggerType + "/" + "Target Constrained Mass (GeV)", 100, 0, 0.200);
- tarconVx = aida.histogram1D(plotDir + triggerType + "/" + "Target Constrained Vx (mm)", 50, -1, 1);
- tarconVy = aida.histogram1D(plotDir + triggerType + "/" + "Target Constrained Vy (mm)", 50, -1, 1);
- tarconVz = aida.histogram1D(plotDir + triggerType + "/" + "Target Constrained Vz (mm)", 50, -10, 10);
- tarconChi2 = aida.histogram1D(plotDir + triggerType + "/" + "Target Constrained Chi2", 25, 0, 25);
- pEleVspPos = aida.histogram2D(plotDir + triggerType + "/" + "P(e) vs P(p)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor);
- pEleVspPosWithCut = aida.histogram2D(plotDir + triggerType + "/" + "P(e) vs P(p): Radiative", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor);
- pyEleVspyPos = aida.histogram2D(plotDir + triggerType + "/" + "Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04);
- pxEleVspxPos = aida.histogram2D(plotDir + triggerType + "/" + "Px(e) vs Px(p)", 50, -0.02, 0.06, 50, -0.02, 0.06);
- massVsVtxZ = aida.histogram2D(plotDir + triggerType + "/" + "Mass vs Vz", 50, 0, 0.15, 50, -50, 80);
- VtxXVsVtxZ = aida.histogram2D(plotDir + triggerType + "/" + "Vx vs Vz", 100, -10, 10, 100, -50, 80);
- VtxYVsVtxZ = aida.histogram2D(plotDir + triggerType + "/" + "Vy vs Vz", 100, -5, 5, 100, -50, 80);
- VtxXVsVtxY = aida.histogram2D(plotDir + triggerType + "/" + "Vx vs Vy", 100, -10, 10, 100, -5, 5);
- L1IsoVsVz = aida.histogram2D(plotDir + triggerType + "/" + "L1 Isolation vs Vz", 50, -50, 80, 100, 0.0, 5.0);
- pEleVspEle = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/P(e) vs P(e)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor);
- pyEleVspyEle = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Py(e) vs Py(e)", 50, -0.04, 0.04, 50, -0.04, 0.04);
- pxEleVspxEle = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Px(e) vs Px(e)", 50, -0.02, 0.06, 50, -0.02, 0.06);
- pEleVspEleNoBeam = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/P(e) vs P(e) NoBeam", 50, 0, beambeamCut, 50, 0, beambeamCut);
- pEleVspEleMoller = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/P(e) vs P(e) Moller", 50, 0, beambeamCut, 50, 0, beambeamCut);
- pEleVspEleBeamBeam = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/P(e) vs P(e) BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, beambeamCut, beamEnergy * maxFactor);
- pyEleVspyEleNoBeam = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Py(e) vs Py(e) NoBeam", 50, -0.04, 0.04, 50, -0.04, 0.04);
- pxEleVspxEleNoBeam = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Px(e) vs Px(e) NoBeam", 50, -0.02, 0.06, 50, -0.02, 0.06);
- sumChargeHisto = aida.histogram1D(plotDir + triggerType + "/" + "Total Charge of Event", 5, -2, 3);
- numChargeHisto = aida.histogram1D(plotDir + triggerType + "/" + "Number of Charged Particles", 6, 0, 6);
-
- pEleVsthetaMoller = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/P(e) vs Theta Moller", 50, 0, beambeamCut, 50, thetaMin, thetaMax);
- thetaEleVsthetaMoller = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Theta vs Theta Moller", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax);
- pEleVsthetaBeamBeam = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/P(e) vs Theta BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, thetaMin, thetaMax);
- thetaEleVsthetaBeamBeam = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Theta vs Theta BeamBeam", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax);
-
- mollerMass = aida.histogram1D(plotDir + triggerType + "/" + "2 Electron/Moller Mass (GeV)", 100, 0, 0.100);
- mollerMassVtxCut = aida.histogram1D(plotDir + triggerType + "/" + "2 Electron/Moller Mass (GeV): VtxCut", 100, 0, 0.100);
- mollerVx = aida.histogram1D(plotDir + triggerType + "/" + "2 Electron/Moller Vx (mm)", 50, -10, 10);
- mollerVy = aida.histogram1D(plotDir + triggerType + "/" + "2 Electron/Moller Vy (mm)", 50, -2, 2);
- mollerVz = aida.histogram1D(plotDir + triggerType + "/" + "2 Electron/Moller Vz (mm)", 50, -50, 50);
- mollerVzVtxCut = aida.histogram1D(plotDir + triggerType + "/" + "2 Electron/Moller Vz (mm): VtxCut", 50, -50, 50);
- mollerXVsVtxZ = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Moller Vx vs Vz", 100, -5, 5, 100, -50, 50);
- mollerYVsVtxZ = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Moller Vy vs Vz", 100, -2, 2, 100, -50, 50);
- mollerXVsVtxY = aida.histogram2D(plotDir + triggerType + "/" + "2 Electron/Moller Vx vs Vy", 100, -5, 5, 100, -2, 2);
+ tarconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Mass (GeV)", 100, 0, 0.200);
+ 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);
+ tarconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Chi2", 25, 0, 25);
+
+ nV0 = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Number of V0 per event", 10, 0, 10);
+ v0Time = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "V0 mean time", 100, -25, 25);
+ v0Dt = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "V0 time difference", 100, -25, 25);
+ trigTimeV0Time = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Trigger phase vs. V0 mean time", 100, -25, 25, 6, 0, 24);
+ trigTime = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Trigger phase", 6, 0, 24);
+
+ 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.02, 0.06, 50, -0.02, 0.06);
+ massVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Mass vs Vz", 50, 0, 0.15, 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);
+ L1IsoVsVz = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "L1 Isolation vs Vz", 50, -50, 80, 100, 0.0, 5.0);
+ pEleVspEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor);
+ 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);
+ 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);
+ 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);
+
+ pEleVsthetaMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs Theta Moller", 50, 0, beambeamCut, 50, thetaMin, thetaMax);
+ thetaEleVsthetaMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Theta vs Theta Moller", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax);
+ 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);
+ 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);
+ mollerVzVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vz (mm): VtxCut", 50, -50, 50);
+ mollerXVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx vs Vz", 100, -5, 5, 100, -50, 50);
+ 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);
}
@Override
public void process(EventHeader event) {
/* make sure everything is there */
- if (!event.hasCollection(ReconstructedParticle.class, finalStateParticlesColName)) {
+ if (!event.hasCollection(ReconstructedParticle.class, finalStateParticlesColName))
return;
- }
- if (!event.hasCollection(ReconstructedParticle.class, unconstrainedV0CandidatesColName)) {
+ if (!event.hasCollection(ReconstructedParticle.class, unconstrainedV0CandidatesColName))
return;
- }
- if (!event.hasCollection(ReconstructedParticle.class, beamConV0CandidatesColName)) {
+ if (!event.hasCollection(ReconstructedParticle.class, beamConV0CandidatesColName))
return;
- }
- if (!event.hasCollection(ReconstructedParticle.class, targetV0ConCandidatesColName)) {
+ if (!event.hasCollection(ReconstructedParticle.class, targetV0ConCandidatesColName))
return;
- }
//check to see if this event is from the correct trigger (or "all");
- if (!matchTrigger(event)) {
+ if (!matchTrigger(event))
return;
- }
nRecoEvents++;
@@ -231,6 +229,7 @@
List<ReconstructedParticle> unonstrainedV0List = event.get(ReconstructedParticle.class, unconstrainedV0CandidatesColName);
for (ReconstructedParticle uncV0 : unonstrainedV0List) {
+
Vertex uncVert = uncV0.getStartVertex();
unconVx.fill(uncVert.getPosition().x());
unconVy.fill(uncVert.getPosition().y());
@@ -253,9 +252,9 @@
// pos = trks.get(0).getTracks().get(0);
// ele = trks.get(1).getTracks().get(0);
// }
-// aida.histogram2D(plotDir + triggerType + "/" + "P(e) vs P(p)").fill(getMomentum(ele), getMomentum(pos));
-// aida.histogram2D(plotDir + triggerType + "/" + "Px(e) vs Px(p)").fill(ele.getTrackStates().get(0).getMomentum()[1], pos.getTrackStates().get(0).getMomentum()[1]);
-// aida.histogram2D(plotDir + triggerType + "/" + "Py(e) vs Py(p)").fill(ele.getTrackStates().get(0).getMomentum()[2], pos.getTrackStates().get(0).getMomentum()[2]);
+// aida.histogram2D(plotDir + trkType + triggerType + "/" + "P(e) vs P(p)").fill(getMomentum(ele), getMomentum(pos));
+// aida.histogram2D(plotDir + trkType + triggerType + "/" + "Px(e) vs Px(p)").fill(ele.getTrackStates().get(0).getMomentum()[1], pos.getTrackStates().get(0).getMomentum()[1]);
+// aida.histogram2D(plotDir + trkType + triggerType + "/" + "Py(e) vs Py(p)").fill(ele.getTrackStates().get(0).getMomentum()[2], pos.getTrackStates().get(0).getMomentum()[2]);
ReconstructedParticle ele = trks.get(0);
ReconstructedParticle pos = trks.get(1);
//ReconParticles have the charge correct.
@@ -280,9 +279,8 @@
pxEleVspxPos.fill(ele.getMomentum().x(), pos.getMomentum().x());
pyEleVspyPos.fill(ele.getMomentum().y(), pos.getMomentum().y());
if (pe < v0MaxPCut && pp < v0MaxPCut && (pe + pp) > v0ESumMinCut && (pe + pp) < v0ESumMaxCut)//enrich radiative-like events
- {
+
pEleVspPosWithCut.fill(pe, pp);
- }
}
double eleT = TrackUtils.getTrackTime(ele.getTracks().get(0), hitToStrips, hitToRotated);
@@ -321,29 +319,25 @@
tarconChi2.fill(tarVert.getChi2());
}
List<ReconstructedParticle> finalStateParticles = event.get(ReconstructedParticle.class, finalStateParticlesColName);
- if (debug) {
+ if (debug)
System.out.println("This events has " + finalStateParticles.size() + " final state particles");
- }
ReconstructedParticle ele1 = null;
ReconstructedParticle ele2 = null;
int sumCharge = 0;
int numChargedParticles = 0;
for (ReconstructedParticle fsPart : finalStateParticles) {
- if (debug) {
+ if (debug)
System.out.println("PDGID = " + fsPart.getParticleIDUsed() + "; charge = " + fsPart.getCharge() + "; pz = " + fsPart.getMomentum().x());
- }
double charge = fsPart.getCharge();
sumCharge += charge;
if (charge != 0) {
numChargedParticles++;
- if (charge < 1) {
- if (ele1 == null) {
+ if (charge < 1)
+ if (ele1 == null)
ele1 = fsPart;
- } else if (!hasSharedStrips(ele1, fsPart, hitToStrips, hitToRotated)) {
+ else if (!hasSharedStrips(ele1, fsPart, hitToStrips, hitToRotated))
ele2 = fsPart;
- }
- }
}
}
sumChargeHisto.fill(sumCharge);
@@ -408,9 +402,8 @@
@Override
public void printDQMData() {
System.out.println("V0Monitoring::printDQMData");
- for (Entry<String, Double> entry : monitoredQuantityMap.entrySet()) {
+ for (Entry<String, Double> entry : monitoredQuantityMap.entrySet())
System.out.println(entry.getKey() + " = " + entry.getValue());
- }
System.out.println("*******************************");
}
@@ -435,9 +428,8 @@
double[] parsVy = resVy.fittedParameters();
double[] parsVz = resVz.fittedParameters();
- for (int i = 0; i < 5; i++) {
+ for (int i = 0; i < 5; i++)
System.out.println("Vertex Fit Parameters: " + resVx.fittedParameterNames()[i] + " = " + parsVx[i] + "; " + parsVy[i] + "; " + parsVz[i]);
- }
IPlotter plotter = analysisFactory.createPlotterFactory().create("Vertex Position");
plotter.createRegions(1, 3);
@@ -451,13 +443,12 @@
plotter.region(1).plot(resVy.fittedFunction());
plotter.region(2).plot(bsconVz);
plotter.region(2).plot(resVz.fittedFunction());
- if (outputPlots) {
+ if (outputPlots)
try {
plotter.writeToFile(outputPlotDir + "vertex.png");
} catch (IOException ex) {
Logger.getLogger(V0Monitoring.class.getName()).log(Level.SEVERE, null, ex);
}
- }
// monitoredQuantityMap.put(fpQuantNames[2], sumVx / nTotV0);
// monitoredQuantityMap.put(fpQuantNames[3], sumVy / nTotV0);
@@ -478,9 +469,8 @@
@Override
public void printDQMStrings() {
for (int i = 0; i < 9; i++)//TODO: do this in a smarter way...loop over the map
- {
+
System.out.println("ALTER TABLE dqm ADD " + fpQuantNames[i] + " double;");
- }
}
IFitResult fitVertexPosition(IHistogram1D h1d, IFitter fitter, double[] init, String range
Copied: java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim (from r3549, java/trunk/steering-files/src/main/resources/org/hps/steering/readout/EngineeringRun2015TrigPairs1.lcsim)
=============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/readout/EngineeringRun2015TrigPairs1.lcsim (original)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim Wed Sep 9 12:27:20 2015
@@ -1,116 +1,251 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
- <!--
- Steering file for readout for the EngRun 2015 MC
- @author Matt Graham <[log in to unmask]>
- -->
- <control>
- <printInputFiles>true</printInputFiles>
- <printDriversDetailed>true</printDriversDetailed>
- </control>
- <execute>
- <driver name="ConditionsDriver"/>
- <driver name="EventMarkerDriver" />
-<!-- Readout Simulation -->
- <driver name="EcalReadout"/>
- <driver name="EcalConverter"/>
- <driver name="EcalClustererGTP"/>
- <driver name="PairTrigger1"/>
- <driver name="SimpleSVTReadout" />
- <driver name="TestRunReconToLcio"/>
- <driver name="AidaSaveDriver"/>
- <driver name="ClockDriver"/>
- <driver name="CleanupDriver" />
- </execute>
- <drivers>
+<!--
+ Steering file for running DataQualityMonitoring classes on reconstructed data
+ @author Matt Graham <[log in to unmask]>
+-->
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+ <execute>
+ <driver name="EventMarkerDriver"/>
+ <!-- <driver name="DQMDatabaseDriver"/> -->
+ <driver name="RawTrackerHitSensorSetup"/>
+ <driver name="EcalMonitoring"/>
+ <driver name="SVTMonitoring"/>
+ <driver name="TrackingMonitoring"/>
+ <driver name="TrackingResiduals"/>
+ <driver name="FinalStateMonitoring"/>
+ <driver name="V0Monitoring"/>
+ <driver name="TridentMonitoring"/>
+ <driver name="TrackingMonitoringGBL"/>
+ <driver name="FinalStateMonitoringGBL"/>
+ <driver name="V0MonitoringGBL"/>
+ <driver name="TridentMonitoringGBL"/>
+ <!-- Singles0 -->
+ <driver name="EcalMonitoringSingles0"/>
+ <driver name="TrackingMonitoringSingles0"/>
+ <driver name="TrackingMonitoringGBLSingles0"/>
+ <driver name="TrackingResidualsSingles0"/>
+ <driver name="FinalStateMonitoringSingles0"/>
+ <driver name="V0MonitoringSingles0"/>
+ <driver name="TridentMonitoringSingles0"/>
+ <!-- Singles1 -->
+ <driver name="EcalMonitoringSingles1"/>
+ <driver name="TrackingMonitoringSingles1"/>
+ <driver name="TrackingMonitoringGBLSingles1"/>
+ <driver name="TrackingResidualsSingles1"/>
+ <driver name="FinalStateMonitoringSingles1"/>
+ <driver name="V0MonitoringSingles1"/>
+ <driver name="TridentMonitoringSingles1"/>
+ <driver name="FinalStateMonitoringGBLSingles1"/>
+ <driver name="V0MonitoringGBLSingles1"/>
+ <driver name="TridentMonitoringGBLSingles1"/>
+ <!-- Pairs0 -->
+ <driver name="EcalMonitoringPairs0"/>
+ <driver name="TrackingMonitoringPairs0"/>
+ <driver name="TrackingMonitoringGBLPairs0"/>
+ <driver name="TrackingResidualsPairs0"/>
+ <driver name="FinalStateMonitoringPairs0"/>
+ <driver name="V0MonitoringPairs0"/>
+ <driver name="TridentMonitoringPairs0"/>
+ <!-- Pairs1 -->
+ <driver name="EcalMonitoringPairs1"/>
+ <driver name="TrackingMonitoringPairs1"/>
+ <driver name="TrackingMonitoringGBLPairs1"/>
+ <driver name="TrackingResidualsPairs1"/>
+ <driver name="FinalStateMonitoringPairs1"/>
+ <driver name="V0MonitoringPairs1"/>
+ <driver name="TridentMonitoringPairs1"/>
+ <driver name="FinalStateMonitoringGBLPairs1"/>
+ <driver name="V0MonitoringGBLPairs1"/>
+ <driver name="TridentMonitoringGBLPairs1"/>
+ <!-- -->
+ <driver name="AidaSaveDriver"/>
+ <driver name="CleanupDriver"/>
+ </execute>
+ <drivers>
<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
<eventInterval>1000</eventInterval>
- </driver>
- <driver name="ConditionsDriver" type="org.hps.conditions.ConditionsDriver">
- <detectorName>${detector}</detectorName>
- <runNumber>${run}</runNumber>
- <freeze>true</freeze>
- </driver>
- <driver name="EcalReadout" type="org.hps.readout.ecal.FADCEcalReadoutDriver">
- <coincidenceWindow>1</coincidenceWindow>
- <ecalName>Ecal</ecalName>
- <ecalCollectionName>EcalHits</ecalCollectionName>
- <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
- <addNoise>true</addNoise>
- <use2014Gain>false</use2014Gain>
- <numSamplesAfter>25</numSamplesAfter>
- <numSamplesBefore>5</numSamplesBefore>
- <readoutThreshold>12</readoutThreshold>
- <triggerThreshold>12</triggerThreshold>
- <readoutWindow>50</readoutWindow>
- <readoutLatency>77</readoutLatency>
- <mode>1</mode>
- </driver>
- <driver name="EcalConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
- <rawCollectionName>EcalRawHits</rawCollectionName>
- <ecalCollectionName>EcalCorrectedHits</ecalCollectionName>
- <applyBadCrystalMap>false</applyBadCrystalMap>
- <nsa>100</nsa>
- <nsb>20</nsb>
- <use2014Gain>false</use2014Gain>
+ </driver>
+ <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup">
+ <readoutCollections>SVTRawTrackerHits</readoutCollections>
+ </driver>
+ <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
+ <outputFileName>${outputFile}.root</outputFileName>
+ </driver>
+
+ <!-- all triggers -->
+ <driver name="EcalMonitoring" type="org.hps.analysis.dataquality.EcalMonitoring">
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="SVTMonitoring" type="org.hps.analysis.dataquality.SvtMonitoring">
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="TrackingMonitoring" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <triggerType>all</triggerType>
+ </driver>
+
+ <driver name="TrackingResiduals" type="org.hps.analysis.dataquality.TrackingResiduals">
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoring" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="V0Monitoring" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="TridentMonitoring" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringGBL" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <trackCollectionName>GBLTracks</trackCollectionName>
+ <triggerType>all</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringGBL" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>all</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+ <driver name="V0MonitoringGBL" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>all</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+ <driver name="TridentMonitoringGBL" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>all</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+
+ <!-- singles0 triggers -->
+ <driver name="EcalMonitoringSingles0" type="org.hps.analysis.dataquality.EcalMonitoring">
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="SVTMonitoringSingles0" type="org.hps.analysis.dataquality.SvtMonitoring">
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringGBLSingles0" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <trackCollectionName>GBLTracks</trackCollectionName>
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringSingles0" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="TrackingResidualsSingles0" type="org.hps.analysis.dataquality.TrackingResiduals">
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringSingles0" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="V0MonitoringSingles0" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>singles0</triggerType>
+ </driver>
+ <driver name="TridentMonitoringSingles0" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>singles0</triggerType>
+ </driver>
+
+ <!-- singles1 triggers -->
+ <driver name="EcalMonitoringSingles1" type="org.hps.analysis.dataquality.EcalMonitoring">
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="SVTMonitoringSingles1" type="org.hps.analysis.dataquality.SvtMonitoring">
+ <triggerType>singles1</triggerType>
</driver>
- <driver name="EcalClustererGTP" type="org.hps.recon.ecal.cluster.GTPClusterDriver">
- <!--
- Hit Time Coincidence: +/-16 ns
- Seed Energy Threshold: 50 MeV
- -->
- <inputHitCollectionName>EcalCorrectedHits</inputHitCollectionName>
- <outputClusterCollectionName>EcalClustersGTP</outputClusterCollectionName>
- <clusterWindow>4</clusterWindow>
- <seedEnergyThreshold>0.050</seedEnergyThreshold>
- <logLevel>SEVERE</logLevel>
- </driver>
- <driver name="PairTrigger1" type="org.hps.readout.ecal.FADCPrimaryTriggerDriver">
- <!--
- Hits Per Cluster Min: 1
- Cluster Time Coincidence: +/-12 ns
- Cluster Energy Min: 54 MeV
- Cluster Energy Max: 630 MeV
- 2-Cluster Energy-Sum Min: 180 MeV
- 2-Cluster Energy-Sum Min: 860 MeV
- 2-Cluster Energy-Diff Max: 540 MeV
- Coplanarity Maximum: 30 deg
- Energy-Dist Slope: 5.5 MeV/mm
- Energy-Dist Minimum: 600 MeV
- -->
- <clusterCollectionName>EcalClustersGTP</clusterCollectionName>
- <deadTime>32</deadTime>
- <seedEnergyLow>0.050</seedEnergyLow>
- <minHitCount>1</minHitCount>
- <pairCoincidence>3</pairCoincidence>
- <clusterEnergyLow>0.054</clusterEnergyLow>
- <clusterEnergyHigh>0.630</clusterEnergyHigh>
- <energySumLow>0.180</energySumLow>
- <energySumHigh>0.860</energySumHigh>
- <energyDifferenceHigh>0.540</energyDifferenceHigh>
- <coplanarityHigh>30</coplanarityHigh>
- <energySlopeParamF>0.0055</energySlopeParamF>
- <energySlopeLow>0.600</energySlopeLow>
- <prescale>1</prescale>
- <outputFileName>${outputFile}.triggers.pairs1</outputFileName>
- <!--<verbose>true</verbose>-->
- </driver>
- <driver name="SimpleSVTReadout" type="org.hps.readout.svt.SimpleSvtReadout">
- <enablePileupCut>false</enablePileupCut>
- <useTimingConditions>true</useTimingConditions>
- </driver>
- <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup" />
-
- <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
- <outputFileName>./${outputFile}.root</outputFileName>
- </driver>
- <driver name="ClockDriver" type="org.hps.readout.ecal.ClockDriver"/>
- <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver" />
- <driver name="TestRunReconToLcio" type="org.hps.evio.TestRunTriggeredReconToLcio">
- <outputFile>${outputFile}.slcio</outputFile>
- <rejectBackground>false</rejectBackground>
- <writeSvtData>true</writeSvtData>
- <ecalMode>1</ecalMode>
- </driver>
+ <driver name="TrackingMonitoringSingles1" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringGBLSingles1" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <trackCollectionName>GBLTracks</trackCollectionName>
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="TrackingResidualsSingles1" type="org.hps.analysis.dataquality.TrackingResiduals">
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="V0MonitoringSingles1" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="TridentMonitoringSingles1" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>singles1</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringGBLSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>singles1</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+ <driver name="V0MonitoringGBLSingles1" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>singles1</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+ <driver name="TridentMonitoringGBLSingles1" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>singles1</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+
+ <!-- pairs0 triggers -->
+ <driver name="EcalMonitoringPairs0" type="org.hps.analysis.dataquality.EcalMonitoring">
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="SVTMonitoringPairs0" type="org.hps.analysis.dataquality.SvtMonitoring">
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringPairs0" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringGBLPairs0" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <trackCollectionName>GBLTracks</trackCollectionName>
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="TrackingResidualsPairs0" type="org.hps.analysis.dataquality.TrackingResiduals">
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringPairs0" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="V0MonitoringPairs0" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>pairs0</triggerType>
+ </driver>
+ <driver name="TridentMonitoringPairs0" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>pairs0</triggerType>
+ </driver>
+
+
+ <!-- pairs1 triggers -->
+ <driver name="EcalMonitoringPairs1" type="org.hps.analysis.dataquality.EcalMonitoring">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="SVTMonitoringPairs1" type="org.hps.analysis.dataquality.SvtMonitoring">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringPairs1" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="TrackingMonitoringGBLPairs1" type="org.hps.analysis.dataquality.TrackingMonitoring">
+ <trackCollectionName>GBLTracks</trackCollectionName>
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="TrackingResidualsPairs1" type="org.hps.analysis.dataquality.TrackingResiduals">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="V0MonitoringPairs1" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="TridentMonitoringPairs1" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>pairs1</triggerType>
+ </driver>
+ <driver name="FinalStateMonitoringGBLPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring">
+ <triggerType>pairs1</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+ <driver name="V0MonitoringGBLPairs1" type="org.hps.analysis.dataquality.V0Monitoring">
+ <triggerType>pairs1</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+ <driver name="TridentMonitoringGBLPairs1" type="org.hps.analysis.dataquality.TridentMonitoring">
+ <triggerType>pairs1</triggerType>
+ <isGBL>true</isGBL>
+ </driver>
+
+ <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/>
+
</drivers>
</lcsim>
|