Author: [log in to unmask]
Date: Thu Oct 8 13:42:11 2015
New Revision: 3811
Log:
Updated some trident analysis drivers.
Modified:
java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java
java/trunk/users/src/main/java/org/hps/users/kmccarty/RafoAnalysis.java
Modified: java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java Thu Oct 8 13:42:11 2015
@@ -60,18 +60,20 @@
private IHistogram1D posTrackCount = aida.histogram1D("MTE Analysis/All Positive Event Tracks", 10, -0.5, 9.5);
private IHistogram1D chargedTrackCount = aida.histogram1D("MTE Analysis/All Event Event Tracks", 10, -0.5, 9.5);
- private IHistogram1D trTimeCoincidenceAll = aida.histogram1D("Trident/Time Coincidence", 150, 0.0, 15.0);
- private IHistogram1D trTimeCoincidenceFiducial = aida.histogram1D("Trident/Time Coincidence (Fiducial Region)", 150, 0.0, 15.0);
- private IHistogram1D trEnergySumAll = aida.histogram1D("Trident/Energy Sum", 220, 0.0, 1.1);
- private IHistogram1D trEnergySumFiducial = aida.histogram1D("Trident/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
- private IHistogram2D trEnergySum2DAll = aida.histogram2D("Trident/First Cluster Energy vs. Second Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D trEnergySum2DFiducial = aida.histogram2D("Trident/First Cluster Energy vs. Second Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram1D trInvariantMassAll = aida.histogram1D("Trident/Invariant Mass", 2200, 0.0, 1.1);
+ private IHistogram1D trInvariantMassFiducial = aida.histogram1D("Trident/Invariant Mass (Fiducial Region)", 2200, 0.0, 1.1);
+ private IHistogram1D trTimeCoincidenceAll = aida.histogram1D("Trident/Time Coincidence", 300, -15.0, 15.0);
+ private IHistogram1D trTimeCoincidenceFiducial = aida.histogram1D("Trident/Time Coincidence (Fiducial Region)", 300, -15.0, 15.0);
+ private IHistogram1D trEnergySumAll = aida.histogram1D("Trident/Energy Sum", 220, 0.0, 1.1);
+ private IHistogram1D trEnergySumFiducial = aida.histogram1D("Trident/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
+ private IHistogram2D trEnergySum2DAll = aida.histogram2D("Trident/First Cluster Energy vs. Second Cluster Energy", 220, 0, 1.1, 220, 0, 1.5);
+ private IHistogram2D trEnergySum2DFiducial = aida.histogram2D("Trident/First Cluster Energy vs. Second Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.5);
private IHistogram2D trSumCoplanarityAll = aida.histogram2D("Trident/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 180);
private IHistogram2D trSumCoplanarityFiducial = aida.histogram2D("Trident/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 180);
private IHistogram2D trSumCoplanarityCalcAll = aida.histogram2D("Trident/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 130, 230);
private IHistogram2D trSumCoplanarityCalcFiducial = aida.histogram2D("Trident/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 130, 230);
- private IHistogram2D trTimeEnergyAll = aida.histogram2D("Trident/Cluster Time vs. Cluster Energy", 220, 0, 1.1, 100, 0, 100);
- private IHistogram2D trTimeEnergyFiducial = aida.histogram2D("Trident/Cluster Time vs. Cluster Energy (Fiducial Region)", 220, 0, 1.1, 100, 0, 100);
+ private IHistogram2D trTimeEnergyAll = aida.histogram2D("Trident/Cluster Time vs. Cluster Energy", 440, 0, 1.1, 100, 0, 100);
+ private IHistogram2D trTimeEnergyFiducial = aida.histogram2D("Trident/Cluster Time vs. Cluster Energy (Fiducial Region)", 440, 0, 1.1, 100, 0, 100);
private TriggerPlotsModule allPlots = new TriggerPlotsModule("All");
private TriggerPlotsModule møllerPlots = new TriggerPlotsModule("Møller");
@@ -324,13 +326,21 @@
for(ReconstructedParticle[] pair : pairList) {
// If trackless events are to be excluded, then require
// that each "track" have a real track.
- if(excludeNoTrackEvents && (pair[0].getTracks().isEmpty() || pair[1].getTracks().isEmpty())) {
+ if(pair[0].getTracks().isEmpty() || pair[1].getTracks().isEmpty()) {
continue tridentTrackLoop;
}
- // Check the trident condition.
+ // Require that all tridents consist of a positive and
+ // negative pair.
boolean isPosNeg = (pair[0].getCharge() < 0 && pair[1].getCharge() > 0) || (pair[0].getCharge() > 0 && pair[1].getCharge() < 0);
if(!isPosNeg) { continue tridentTrackLoop; }
+
+ // Require that tridents also be a top/bottom pair.
+ boolean isTopBot = (pair[0].getTracks().get(0).getTrackStates().get(0).getTanLambda() > 0 && pair[0].getTracks().get(0).getTrackStates().get(0).getTanLambda() < 0)
+ || (pair[0].getTracks().get(0).getTrackStates().get(0).getTanLambda() < 0 && pair[0].getTracks().get(0).getTrackStates().get(0).getTanLambda() > 0);
+ if(!isTopBot) {
+ continue tridentTrackLoop;
+ }
// Both tracks must have clusters associated with them.
Cluster[] trackClusters = new Cluster[pair.length];
@@ -390,9 +400,10 @@
double pairEnergy = trackClusters[0].getEnergy() + trackClusters[1].getEnergy();
trEnergySumAll.fill(pairEnergy);
trEnergySum2DAll.fill(trackClusters[1].getEnergy(), trackClusters[0].getEnergy());
- trTimeCoincidenceAll.fill(TriggerModule.getValueTimeCoincidence(trackClusters));
+ trTimeCoincidenceAll.fill(RafoAnalysis.getTimeConicidence(trackClusters));
trSumCoplanarityCalcAll.fill(pairEnergy, getCalculatedCoplanarity(trackClusters));
trSumCoplanarityAll.fill(pairEnergy, TriggerModule.getValueCoplanarity(trackClusters));
+ trInvariantMassAll.fill(RafoAnalysis.getInvariantMass(pair));
// Fill the singles plots.
if(!plotSet.contains(trackClusters[0])) {
@@ -407,9 +418,10 @@
if(inFiducialRegion(trackClusters[0]) && inFiducialRegion(trackClusters[1])) {
trEnergySumFiducial.fill(pairEnergy);
trEnergySum2DFiducial.fill(trackClusters[1].getEnergy(), trackClusters[0].getEnergy());
- trTimeCoincidenceFiducial.fill(TriggerModule.getValueTimeCoincidence(trackClusters));
+ trTimeCoincidenceFiducial.fill(RafoAnalysis.getTimeConicidence(trackClusters));
trSumCoplanarityCalcFiducial.fill(pairEnergy, getCalculatedCoplanarity(trackClusters));
trSumCoplanarityFiducial.fill(pairEnergy, TriggerModule.getValueCoplanarity(trackClusters));
+ trInvariantMassFiducial.fill(RafoAnalysis.getInvariantMass(pair));
}
// Fill the singles fiducial plots if appropriate.
Modified: java/trunk/users/src/main/java/org/hps/users/kmccarty/RafoAnalysis.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/RafoAnalysis.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/RafoAnalysis.java Thu Oct 8 13:42:11 2015
@@ -17,48 +17,51 @@
public class RafoAnalysis extends Driver {
private boolean useGoodSVT = false;
- private String clusterCollectionName = "EcalClusters";
+ private String clusterCollectionName = "EcalClustersCorr";
private String particleCollectionName = "FinalStateParticles";
private AIDA aida = AIDA.defaultInstance();
- private IHistogram1D t0TimeCoincidenceAll = aida.histogram1D("Tier 0/Time Coincidence", 45, 0.0, 15.0);
- private IHistogram1D t0TimeCoincidenceFiducial = aida.histogram1D("Tier 0/Time Coincidence (Fiducial Region)", 45, 0.0, 15.0);
- private IHistogram1D t0EnergySumAll = aida.histogram1D("Tier 0/Energy Sum", 220, 0.0, 1.1);
- private IHistogram1D t0EnergySumFiducial = aida.histogram1D("Tier 0/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
- private IHistogram2D t0EnergySum2DAll = aida.histogram2D("Tier 0/Top Cluster Energy vs. Bottom Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D t0EnergySum2DFiducial = aida.histogram2D("Tier 0/Top Cluster Energy vs. Bottom Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D t0SumCoplanarityAll = aida.histogram2D("Tier 0/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t0SumCoplanarityFiducial = aida.histogram2D("Tier 0/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t0SumCoplanarityCalcAll = aida.histogram2D("Tier 0/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t0SumCoplanarityCalcFiducial = aida.histogram2D("Tier 0/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t0TimeEnergyAll = aida.histogram2D("Tier 0/Cluster Time vs. Cluster Energy", 220, 0, 1.1, 100, 0, 100);
- private IHistogram2D t0TimeEnergyFiducial = aida.histogram2D("Tier 0/Cluster Time vs. Cluster Energy (Fiducial Region)", 220, 0, 1.1, 100, 0, 100);
-
- private IHistogram1D t1TimeCoincidenceAll = aida.histogram1D("Tier 1/Time Coincidence", 45, 0.0, 15.0);
- private IHistogram1D t1TimeCoincidenceFiducial = aida.histogram1D("Tier 1/Time Coincidence (Fiducial Region)", 45, 0.0, 15.0);
- private IHistogram1D t1EnergySumAll = aida.histogram1D("Tier 1/Energy Sum", 220, 0.0, 1.1);
- private IHistogram1D t1EnergySumFiducial = aida.histogram1D("Tier 1/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
- private IHistogram2D t1EnergySum2DAll = aida.histogram2D("Tier 1/Top Cluster Energy vs. Bottom Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D t1EnergySum2DFiducial = aida.histogram2D("Tier 1/Top Cluster Energy vs. Bottom Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D t1SumCoplanarityAll = aida.histogram2D("Tier 1/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t1SumCoplanarityFiducial = aida.histogram2D("Tier 1/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t1SumCoplanarityCalcAll = aida.histogram2D("Tier 1/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t1SumCoplanarityCalcFiducial = aida.histogram2D("Tier 1/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram1D t0TimeCoincidenceAll = aida.histogram1D("Tier 0/Time Coincidence", 300, -15.0, 15.0);
+ private IHistogram1D t0TimeCoincidenceFiducial = aida.histogram1D("Tier 0/Time Coincidence (Fiducial Region)", 300, -15.0, 15.0);
+ private IHistogram1D t0EnergySumAll = aida.histogram1D("Tier 0/Energy Sum", 220, 0.0, 1.1);
+ private IHistogram1D t0EnergySumFiducial = aida.histogram1D("Tier 0/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
+ private IHistogram1D t0InvariantMassAll = aida.histogram1D("Tier 0/Invariant Mass", 2200, 0.0, 1.1);
+ private IHistogram2D t0EnergySum2DAll = aida.histogram2D("Tier 0/Top Cluster Energy vs. Bottom Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram2D t0EnergySum2DFiducial = aida.histogram2D("Tier 0/Top Cluster Energy vs. Bottom Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram2D t0SumCoplanarityAll = aida.histogram2D("Tier 0/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram2D t0SumCoplanarityFiducial = aida.histogram2D("Tier 0/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram2D t0SumCoplanarityCalcAll = aida.histogram2D("Tier 0/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 130, 230);
+ private IHistogram2D t0SumCoplanarityCalcFiducial = aida.histogram2D("Tier 0/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 130, 230);
+ private IHistogram2D t0TimeEnergyAll = aida.histogram2D("Tier 0/Cluster Time vs. Cluster Energy", 220, 0, 1.1, 100, 0, 100);
+ private IHistogram2D t0TimeEnergyFiducial = aida.histogram2D("Tier 0/Cluster Time vs. Cluster Energy (Fiducial Region)", 220, 0, 1.1, 100, 0, 100);
+
+ private IHistogram1D t1TimeCoincidenceAll = aida.histogram1D("Tier 1/Time Coincidence", 300, -15.0, 15.0);
+ private IHistogram1D t1TimeCoincidenceFiducial = aida.histogram1D("Tier 1/Time Coincidence (Fiducial Region)", 300, -15.0, 15.0);
+ private IHistogram1D t1EnergySumAll = aida.histogram1D("Tier 1/Energy Sum", 220, 0.0, 1.1);
+ private IHistogram1D t1EnergySumFiducial = aida.histogram1D("Tier 1/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
+ private IHistogram1D t1InvariantMassAll = aida.histogram1D("Tier 1/Invariant Mass", 2200, 0.0, 1.1);
+ private IHistogram2D t1EnergySum2DAll = aida.histogram2D("Tier 1/Top Cluster Energy vs. Bottom Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram2D t1EnergySum2DFiducial = aida.histogram2D("Tier 1/Top Cluster Energy vs. Bottom Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram2D t1SumCoplanarityAll = aida.histogram2D("Tier 1/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram2D t1SumCoplanarityFiducial = aida.histogram2D("Tier 1/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram2D t1SumCoplanarityCalcAll = aida.histogram2D("Tier 1/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 130, 230);
+ private IHistogram2D t1SumCoplanarityCalcFiducial = aida.histogram2D("Tier 1/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 130, 230);
private IHistogram2D t1TimeEnergyAll = aida.histogram2D("Tier 1/Cluster Time vs. Cluster Energy", 220, 0, 1.1, 100, 0, 100);
private IHistogram2D t1TimeEnergyFiducial = aida.histogram2D("Tier 1/Cluster Time vs. Cluster Energy (Fiducial Region)", 220, 0, 1.1, 100, 0, 100);
-
- private IHistogram1D t2TimeCoincidenceAll = aida.histogram1D("Tier 2/Time Coincidence", 45, 0.0, 15.0);
- private IHistogram1D t2TimeCoincidenceFiducial = aida.histogram1D("Tier 2/Time Coincidence (Fiducial Region)", 45, 0.0, 15.0);
- private IHistogram1D t2EnergySumAll = aida.histogram1D("Tier 2/Energy Sum", 220, 0.0, 1.1);
- private IHistogram1D t2EnergySumFiducial = aida.histogram1D("Tier 2/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
- private IHistogram2D t2EnergySum2DAll = aida.histogram2D("Tier 2/Top Cluster Energy vs. Bottom Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D t2EnergySum2DFiducial = aida.histogram2D("Tier 2/Top Cluster Energy vs. Bottom Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
- private IHistogram2D t2SumCoplanarityAll = aida.histogram2D("Tier 2/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t2SumCoplanarityFiducial = aida.histogram2D("Tier 2/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t2SumCoplanarityCalcAll = aida.histogram2D("Tier 2/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t2SumCoplanarityCalcFiducial = aida.histogram2D("Tier 2/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
- private IHistogram2D t2TimeEnergyAll = aida.histogram2D("Tier 2/Cluster Time vs. Cluster Energy", 220, 0, 1.1, 100, 0, 100);
- private IHistogram2D t2TimeEnergyFiducial = aida.histogram2D("Tier 2/Cluster Time vs. Cluster Energy (Fiducial Region)", 220, 0, 1.1, 100, 0, 100);
+
+ private IHistogram1D t2TimeCoincidenceAll = aida.histogram1D("Tier 2/Time Coincidence", 300, -15.0, 15.0);
+ private IHistogram1D t2TimeCoincidenceFiducial = aida.histogram1D("Tier 2/Time Coincidence (Fiducial Region)", 300, -15.0, 15.0);
+ private IHistogram1D t2EnergySumAll = aida.histogram1D("Tier 2/Energy Sum", 220, 0.0, 1.1);
+ private IHistogram1D t2EnergySumFiducial = aida.histogram1D("Tier 2/Energy Sum (Fiducial Region)", 220, 0.0, 1.1);
+ private IHistogram1D t2InvariantMassAll = aida.histogram1D("Tier 2/Invariant Mass", 2200, 0.0, 1.1);
+ private IHistogram2D t2EnergySum2DAll = aida.histogram2D("Tier 2/Top Cluster Energy vs. Bottom Cluster Energy", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram2D t2EnergySum2DFiducial = aida.histogram2D("Tier 2/Top Cluster Energy vs. Bottom Cluster Energy (Fiducial Region)", 220, 0, 1.1, 220, 0, 1.1);
+ private IHistogram2D t2SumCoplanarityAll = aida.histogram2D("Tier 2/Hardware Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram2D t2SumCoplanarityFiducial = aida.histogram2D("Tier 2/Hardware Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 0, 230);
+ private IHistogram2D t2SumCoplanarityCalcAll = aida.histogram2D("Tier 2/Calculated Coplanarity vs. Energy Sum", 220, 0, 1.1, 115, 130, 230);
+ private IHistogram2D t2SumCoplanarityCalcFiducial = aida.histogram2D("Tier 2/Calculated Coplanarity vs. Energy Sum (Fiducial Region)", 220, 0, 1.1, 115, 130, 230);
+ private IHistogram2D t2TimeEnergyAll = aida.histogram2D("Tier 2/Cluster Time vs. Cluster Energy", 220, 0, 1.1, 100, 0, 100);
+ private IHistogram2D t2TimeEnergyFiducial = aida.histogram2D("Tier 2/Cluster Time vs. Cluster Energy (Fiducial Region)", 220, 0, 1.1, 100, 0, 100);
private int t0Events = 0;
private int t1Events = 0;
@@ -106,7 +109,7 @@
// Perform tier 1 analysis. This requires that there be at
// least one top/bottom cluster pair with a time difference
// of less then 4 ns.
- double t1TimeThreshold = 4;
+ double t1TimeThreshold = 2.5;
// Get a list of cluster pairs.
List<Cluster[]> pairList = getClusterPairs(clusterList);
@@ -138,8 +141,7 @@
boolean t2Passed = false;
t2TrackLoop:
for(ReconstructedParticle[] pair : trackPairList) {
- if((pair[0].getCharge() > 0 && pair[1].getCharge() < 0)
- || (pair[0].getCharge() < 0 && pair[1].getCharge() > 0)) {
+ if((pair[0].getCharge() > 0 && pair[1].getCharge() < 0) || (pair[0].getCharge() < 0 && pair[1].getCharge() > 0)) {
t2Passed = true;
break t2TrackLoop;
}
@@ -154,13 +156,17 @@
// singles plot so that there are no repeats.
Set<Cluster> plotSet = new HashSet<Cluster>(clusterList.size());
Set<Cluster> plotFiducial = new HashSet<Cluster>(clusterList.size());
+
+ for(ReconstructedParticle[] pair : trackPairList) {
+ t0InvariantMassAll.fill(getInvariantMass(pair));
+ }
for(Cluster[] pair : pairList) {
// Fill the all pairs plots.
double pairEnergy = pair[0].getEnergy() + pair[1].getEnergy();
t0EnergySumAll.fill(pairEnergy);
t0EnergySum2DAll.fill(pair[1].getEnergy(), pair[0].getEnergy());
- t0TimeCoincidenceAll.fill(TriggerModule.getValueTimeCoincidence(pair));
+ t0TimeCoincidenceAll.fill(getTimeConicidence(pair));
t0SumCoplanarityCalcAll.fill(pairEnergy, getCalculatedCoplanarity(pair));
t0SumCoplanarityAll.fill(pairEnergy, TriggerModule.getValueCoplanarity(pair));
@@ -177,7 +183,7 @@
if(inFiducialRegion(pair[0]) && inFiducialRegion(pair[1])) {
t0EnergySumFiducial.fill(pairEnergy);
t0EnergySum2DFiducial.fill(pair[1].getEnergy(), pair[0].getEnergy());
- t0TimeCoincidenceFiducial.fill(TriggerModule.getValueTimeCoincidence(pair));
+ t0TimeCoincidenceFiducial.fill(getTimeConicidence(pair));
t0SumCoplanarityCalcFiducial.fill(pairEnergy, getCalculatedCoplanarity(pair));
t0SumCoplanarityFiducial.fill(pairEnergy, TriggerModule.getValueCoplanarity(pair));
}
@@ -203,12 +209,16 @@
Set<Cluster> plotSet = new HashSet<Cluster>(clusterList.size());
Set<Cluster> plotFiducial = new HashSet<Cluster>(clusterList.size());
+ for(ReconstructedParticle[] pair : trackPairList) {
+ t1InvariantMassAll.fill(getInvariantMass(pair));
+ }
+
for(Cluster[] pair : pairList) {
// Fill the all pairs plots.
double pairEnergy = pair[0].getEnergy() + pair[1].getEnergy();
t1EnergySumAll.fill(pairEnergy);
t1EnergySum2DAll.fill(pair[1].getEnergy(), pair[0].getEnergy());
- t1TimeCoincidenceAll.fill(TriggerModule.getValueTimeCoincidence(pair));
+ t1TimeCoincidenceAll.fill(getTimeConicidence(pair));
t1SumCoplanarityCalcAll.fill(pairEnergy, getCalculatedCoplanarity(pair));
t1SumCoplanarityAll.fill(pairEnergy, TriggerModule.getValueCoplanarity(pair));
@@ -225,7 +235,7 @@
if(inFiducialRegion(pair[0]) && inFiducialRegion(pair[1])) {
t1EnergySumFiducial.fill(pairEnergy);
t1EnergySum2DFiducial.fill(pair[1].getEnergy(), pair[0].getEnergy());
- t1TimeCoincidenceFiducial.fill(TriggerModule.getValueTimeCoincidence(pair));
+ t1TimeCoincidenceFiducial.fill(getTimeConicidence(pair));
t1SumCoplanarityCalcFiducial.fill(pairEnergy, getCalculatedCoplanarity(pair));
t1SumCoplanarityFiducial.fill(pairEnergy, TriggerModule.getValueCoplanarity(pair));
}
@@ -242,7 +252,7 @@
}
// Populate the tier 2 analysis plots, if the conditions were met.
- if(t2Passed) {
+ if(t1Passed && t2Passed) {
// Increment the number of tier 2 events found.
t2Events++;
@@ -250,13 +260,17 @@
// singles plot so that there are no repeats.
Set<Cluster> plotSet = new HashSet<Cluster>(clusterList.size());
Set<Cluster> plotFiducial = new HashSet<Cluster>(clusterList.size());
+
+ for(ReconstructedParticle[] pair : trackPairList) {
+ t2InvariantMassAll.fill(getInvariantMass(pair));
+ }
for(Cluster[] pair : pairList) {
// Fill the all pairs plots.
double pairEnergy = pair[0].getEnergy() + pair[1].getEnergy();
t2EnergySumAll.fill(pairEnergy);
t2EnergySum2DAll.fill(pair[1].getEnergy(), pair[0].getEnergy());
- t2TimeCoincidenceAll.fill(TriggerModule.getValueTimeCoincidence(pair));
+ t2TimeCoincidenceAll.fill(getTimeConicidence(pair));
t2SumCoplanarityCalcAll.fill(pairEnergy, getCalculatedCoplanarity(pair));
t2SumCoplanarityAll.fill(pairEnergy, TriggerModule.getValueCoplanarity(pair));
@@ -273,7 +287,7 @@
if(inFiducialRegion(pair[0]) && inFiducialRegion(pair[1])) {
t2EnergySumFiducial.fill(pairEnergy);
t2EnergySum2DFiducial.fill(pair[1].getEnergy(), pair[0].getEnergy());
- t2TimeCoincidenceFiducial.fill(TriggerModule.getValueTimeCoincidence(pair));
+ t2TimeCoincidenceFiducial.fill(getTimeConicidence(pair));
t2SumCoplanarityCalcFiducial.fill(pairEnergy, getCalculatedCoplanarity(pair));
t2SumCoplanarityFiducial.fill(pairEnergy, TriggerModule.getValueCoplanarity(pair));
}
@@ -290,7 +304,19 @@
}
}
- private static final double getCalculatedCoplanarity(Cluster[] pair) {
+ public static final double getInvariantMass(ReconstructedParticle[] pair) {
+ // Get energy.
+ double[] energy = new double[2];
+ final double electronMassSquared = Math.pow(0.00051099891, 2);
+ energy[0] = Math.sqrt(pair[0].getMomentum().magnitudeSquared() + electronMassSquared);
+ energy[1] = Math.sqrt(pair[1].getMomentum().magnitudeSquared() + electronMassSquared);
+
+ // Calculate the invariant mass.
+ return Math.sqrt(Math.pow(energy[0] + energy[1], 2) - Math.pow(pair[0].getMomentum().x() - pair[1].getMomentum().x(), 2)
+ + Math.pow(pair[0].getMomentum().y() - pair[1].getMomentum().y(), 2) + Math.pow(pair[0].getMomentum().z() - pair[1].getMomentum().z(), 2));
+ }
+
+ public static final double getCalculatedCoplanarity(Cluster[] pair) {
// Define the x- and y-coordinates of the clusters as well as
// calorimeter center.
final double ORIGIN_X = 42.52;
@@ -400,6 +426,10 @@
return pairList;
}
+ public static final double getTimeConicidence(Cluster[] pair) {
+ return TriggerModule.getClusterSeedHit(pair[1]).getTime() - TriggerModule.getClusterSeedHit(pair[0]).getTime();
+ }
+
public void setUseGoodSVT(boolean state) {
useGoodSVT = state;
}
|