Author: [log in to unmask] Date: Tue Jan 6 12:54:22 2015 New Revision: 1886 Log: Remove usage of HPSEcalCluster and HPSEcalClusterIC where possible. Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalEventMonitor.java java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalMonitoringPlots.java java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalFADCPlotsDriver.java java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalPlotsDriver.java java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalTriggerPlotsDriver.java java/trunk/analysis/src/main/java/org/hps/analysis/ecal/TestRunRateAnalysis.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/exec/EventDisplayDriver.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/LCIOManager.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/LCIOBridgeDriver.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/POccupancyViewer.java java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PassiveViewer.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerVariableDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/NeutralPionTriggerDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/OccupancyAnalysisDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPTriggerLogic.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalUtils.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTEventDisplay.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalClusterPlots.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java java/trunk/users/src/main/java/org/hps/users/holly/EcalClustererCosmics.java java/trunk/users/src/main/java/org/hps/users/kmccarty/ClusterAnalysisDriver.java java/trunk/users/src/main/java/org/hps/users/luca/CalibClusterAnalizer.java java/trunk/users/src/main/java/org/hps/users/luca/CalibTest.java java/trunk/users/src/main/java/org/hps/users/luca/CalibTest2.java java/trunk/users/src/main/java/org/hps/users/luca/ClusterSorterReconData.java java/trunk/users/src/main/java/org/hps/users/luca/FADCVariableTriggerFEEDriver.java java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger.java java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger2.java java/trunk/users/src/main/java/org/hps/users/luca/FeeTriggerAna.java java/trunk/users/src/main/java/org/hps/users/luca/HitSeedHitConf.java java/trunk/users/src/main/java/org/hps/users/luca/PositronAna.java java/trunk/users/src/main/java/org/hps/users/luca/RawDataReader.java java/trunk/users/src/main/java/org/hps/users/luca/ReconData.java java/trunk/users/src/main/java/org/hps/users/luca/ReconDataPos.java java/trunk/users/src/main/java/org/hps/users/luca/TriggerAna.java java/trunk/users/src/main/java/org/hps/users/luca/TriggerAnaFEE.java java/trunk/users/src/main/java/org/hps/users/luca/TriggerTest.java java/trunk/users/src/main/java/org/hps/users/luca/TruthReader.java java/trunk/users/src/main/java/org/hps/users/luca/myTriggerDriver.java java/trunk/users/src/main/java/org/hps/users/luca/mycluster.java java/trunk/users/src/main/java/org/hps/users/luca/mycluster2.java java/trunk/users/src/main/java/org/hps/users/luca/mycluster3.java java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java java/trunk/users/src/main/java/org/hps/users/omoreno/TestRunTrackReconEfficiency.java java/trunk/users/src/main/java/org/hps/users/phansson/FastTrackResidualDriver.java java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java 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 Tue Jan 6 12:54:22 2015 @@ -145,9 +145,9 @@ } List<Cluster> clusters; - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) + if (event.hasCollection(Cluster.class, clusterCollectionName)) clusters = event.get(Cluster.class, clusterCollectionName); - else if (event.hasCollection(HPSEcalClusterIC.class, clusterCollectionName)) + else if (event.hasCollection(Cluster.class, clusterCollectionName)) clusters = event.get(Cluster.class, clusterCollectionName); else if (event.hasCollection(Cluster.class, clusterCollectionName)) clusters = event.get(Cluster.class, clusterCollectionName); Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalEventMonitor.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalEventMonitor.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalEventMonitor.java Tue Jan 6 12:54:22 2015 @@ -13,6 +13,7 @@ import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; @@ -96,10 +97,10 @@ hitPlot.fill(hit.getIdentifierFieldValue("ix"), hit.getIdentifierFieldValue("iy"), hit.getRawEnergy()); } } - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); - for (HPSEcalCluster cluster : clusters) { - CalorimeterHit seedHit = cluster.getSeedHit(); + if (event.hasCollection(Cluster.class, clusterCollectionName)) { + List<Cluster> clusters = event.get(Cluster.class, clusterCollectionName); + for (Cluster cluster : clusters) { + CalorimeterHit seedHit = cluster.getCalorimeterHits().get(0); clusterPlot.fill(seedHit.getIdentifierFieldValue("ix"), seedHit.getIdentifierFieldValue("iy"), cluster.getEnergy()); } } Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalMonitoringPlots.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalMonitoringPlots.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalMonitoringPlots.java Tue Jan 6 12:54:22 2015 @@ -6,8 +6,8 @@ import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.RawTrackerHit; import org.lcsim.event.base.BaseRawCalorimeterHit; @@ -89,11 +89,11 @@ hitCountFillPlot.fill(hit.getIdentifierFieldValue("ix"), hit.getIdentifierFieldValue("iy")); } } - if (event.hasCollection(HPSEcalCluster.class, clusterCollection)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollection); + if (event.hasCollection(Cluster.class, clusterCollection)) { + List<Cluster> clusters = event.get(Cluster.class, clusterCollection); //if (clusters.size()>1) - for (HPSEcalCluster cluster : clusters) { - clusterCountFillPlot.fill(cluster.getSeedHit().getIdentifierFieldValue("ix"), cluster.getSeedHit().getIdentifierFieldValue("iy")); + for (Cluster cluster : clusters) { + clusterCountFillPlot.fill(cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"), cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); } } if (eventRefreshRate > 0 && ++eventn % eventRefreshRate == 0) { Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalFADCPlotsDriver.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalFADCPlotsDriver.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalFADCPlotsDriver.java Tue Jan 6 12:54:22 2015 @@ -5,7 +5,6 @@ import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.ecal.HPSRawCalorimeterHit; import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; @@ -70,7 +69,7 @@ } public void process(EventHeader event) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusters = event.get(Cluster.class, clusterCollectionName); if (clusters == null) throw new RuntimeException("Missing cluster collection!"); Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalPlotsDriver.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalPlotsDriver.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalPlotsDriver.java Tue Jan 6 12:54:22 2015 @@ -17,7 +17,6 @@ import org.hps.readout.ecal.ClockSingleton; import org.hps.readout.ecal.TriggerDriver; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.detector.identifier.IIdentifier; import org.lcsim.detector.identifier.IIdentifierHelper; import org.lcsim.event.CalorimeterHit; @@ -199,7 +198,7 @@ MCParticle primary = getPrimary(mcparticles); double primaryE = primary.getEnergy(); - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalClusterCollectionName); + List<Cluster> clusters = event.get(Cluster.class, ecalClusterCollectionName); if (clusters == null) throw new RuntimeException("Missing cluster collection!"); @@ -230,14 +229,14 @@ IIdentifierHelper helper = event.getMetaData(hits).getIDDecoder().getSubdetector().getDetectorElement().getIdentifierHelper(); - for (HPSEcalCluster clus : clusters) { + for (Cluster clus : clusters) { clusNHits.fill(clus.getCalorimeterHits().size()); double e = clus.getEnergy(); clusEPlot.fill(e); clusE += e; - CalorimeterHit seedHit = (CalorimeterHit) clus.getSeedHit(); + CalorimeterHit seedHit = (CalorimeterHit) clus.getCalorimeterHits().get(0); //double maxe = 0; for (CalorimeterHit hit : clus.getCalorimeterHits()) { if (hitClusMap.containsKey(hit)) { Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalTriggerPlotsDriver.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalTriggerPlotsDriver.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/HPSEcalTriggerPlotsDriver.java Tue Jan 6 12:54:22 2015 @@ -1,5 +1,7 @@ package org.hps.analysis.ecal; +import static org.hps.recon.ecal.ECalUtils.maxVolt; +import static org.hps.recon.ecal.ECalUtils.nBit; import hep.aida.IHistogram2D; import java.util.ArrayList; @@ -7,10 +9,9 @@ import org.hps.readout.ecal.TriggerDriver; import org.hps.recon.ecal.ECalUtils; -import static org.hps.recon.ecal.ECalUtils.maxVolt; -import static org.hps.recon.ecal.ECalUtils.nBit; import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; @@ -85,12 +86,12 @@ // If the current event has the indicated cluster collection, // use it as the cluster list. - List<HPSEcalCluster> clusters; - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { - clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusters; + if(event.hasCollection(Cluster.class, clusterCollectionName)) { + clusters = event.get(Cluster.class, clusterCollectionName); } // If it does not, then use an empty list to avoid crashing. - else { clusters = new ArrayList<HPSEcalCluster>(0); } + else { clusters = new ArrayList<Cluster>(0); } // Populate hit plots. for (CalorimeterHit hit : hits) { @@ -120,9 +121,9 @@ boolean trigger = TriggerDriver.triggerBit(); // Populate cluster based plots. - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { // Get the cluster's seed hit position. - CalorimeterHit seed = cluster.getSeedHit(); + CalorimeterHit seed = cluster.getCalorimeterHits().get(0); int ix = seed.getIdentifierFieldValue("ix"); int iy = seed.getIdentifierFieldValue("iy"); Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/TestRunRateAnalysis.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/TestRunRateAnalysis.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/TestRunRateAnalysis.java Tue Jan 6 12:54:22 2015 @@ -5,8 +5,8 @@ import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.event.base.ParticleTypeClassifier; @@ -86,22 +86,23 @@ // MCParticle particle = mcparticles.get(0); // Get the list of raw ECal hits. - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusters = event.get(Cluster.class, clusterCollectionName); if (clusters == null) { throw new RuntimeException("Event is missing ECal clusters collection!"); } boolean trigger = false; - for (HPSEcalCluster cluster : clusters) { - if (cluster.getEnergy() > clusterEnergyLow && cluster.getSeedHit().getIdentifierFieldValue("ix") < 0) { + for (Cluster cluster : clusters) { + CalorimeterHit seedHit = cluster.getCalorimeterHits().get(0); + if (cluster.getEnergy() > clusterEnergyLow && seedHit.getIdentifierFieldValue("ix") < 0) { // if (cluster.getEnergy() > clusterEnergyLow && cluster.getSeedHit().getIdentifierFieldValue("iy")>0 && cluster.getSeedHit().getIdentifierFieldValue("ix")<0) { - triggersY[Math.abs(cluster.getSeedHit().getIdentifierFieldValue("iy")) - 1]++; - if (Math.abs(cluster.getSeedHit().getIdentifierFieldValue("iy")) > 1) { + triggersY[Math.abs(seedHit.getIdentifierFieldValue("iy")) - 1]++; + if (Math.abs(seedHit.getIdentifierFieldValue("iy")) > 1) { trigger = true; } } - if (cluster.getSeedHit().getIdentifierFieldValue("ix") < 0 && Math.abs(cluster.getSeedHit().getIdentifierFieldValue("iy")) > 1) { + if (seedHit.getIdentifierFieldValue("ix") < 0 && Math.abs(seedHit.getIdentifierFieldValue("iy")) > 1) { for (MCParticle particle : mcparticles) { if (ParticleTypeClassifier.isElectron(particle.getPDGID())) { electronEClusterVsP.fill(1000.0 * particle.getPZ(), 1000.0 * cluster.getEnergy()); Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/exec/EventDisplayDriver.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/exec/EventDisplayDriver.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/exec/EventDisplayDriver.java Tue Jan 6 12:54:22 2015 @@ -2,11 +2,10 @@ import java.util.List; -import org.hps.monitoring.ecal.eventdisplay.event.Cluster; import org.hps.monitoring.ecal.eventdisplay.event.EcalHit; import org.hps.monitoring.ecal.eventdisplay.ui.PEventViewer; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; @@ -55,7 +54,7 @@ viewer.resetDisplay(); viewer.updateDisplay(); - Cluster eventDisplayCluster; + org.hps.monitoring.ecal.eventdisplay.event.Cluster eventDisplayCluster; if (event.hasCollection(CalorimeterHit.class, inputCollection)) { List<CalorimeterHit> hits = event.get(CalorimeterHit.class, inputCollection); @@ -63,11 +62,11 @@ viewer.addHit(new EcalHit(hit.getIdentifierFieldValue("ix"), hit.getIdentifierFieldValue("iy"), hit.getRawEnergy())); } } - if (event.hasCollection(HPSEcalCluster.class, clusterCollection)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollection); - for (HPSEcalCluster cluster : clusters) { - CalorimeterHit seedHit = cluster.getSeedHit(); - eventDisplayCluster = new Cluster(seedHit.getIdentifierFieldValue("ix"), seedHit.getIdentifierFieldValue("iy"), cluster.getEnergy()); + if (event.hasCollection(Cluster.class, clusterCollection)) { + List<Cluster> clusters = event.get(Cluster.class, clusterCollection); + for (Cluster cluster : clusters) { + CalorimeterHit seedHit = cluster.getCalorimeterHits().get(0); + eventDisplayCluster = new org.hps.monitoring.ecal.eventdisplay.event.Cluster(seedHit.getIdentifierFieldValue("ix"), seedHit.getIdentifierFieldValue("iy"), cluster.getEnergy()); for (CalorimeterHit hit : cluster.getCalorimeterHits()) { if (hit.getRawEnergy() != 0) eventDisplayCluster.addComponentHit(hit.getIdentifierFieldValue("ix"), hit.getIdentifierFieldValue("iy")); Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/LCIOManager.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/LCIOManager.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/LCIOManager.java Tue Jan 6 12:54:22 2015 @@ -7,7 +7,7 @@ import org.hps.monitoring.ecal.eventdisplay.event.Cluster; import org.hps.monitoring.ecal.eventdisplay.event.EcalHit; -import org.hps.recon.ecal.HPSEcalCluster; +//import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; import org.lcsim.event.EventHeader; import org.lcsim.lcio.LCIOReader; @@ -88,15 +88,15 @@ // from the LCIO event. else { // Check to see if the event has a cluster collection. - if(current.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(current.hasCollection(org.lcsim.event.Cluster.class, clusterCollectionName)) { // Get the list of LCIO clusters. - List<HPSEcalCluster> lcioList = current.get(HPSEcalCluster.class, clusterCollectionName); + List<org.lcsim.event.Cluster> lcioList = current.get(org.lcsim.event.Cluster.class, clusterCollectionName); // Create a list to store event display clusters. List<Cluster> displayList = new ArrayList<Cluster>(lcioList.size()); // Convert the LCIO clusters to display clusters. - for(HPSEcalCluster lcioCluster : lcioList) { + for(org.lcsim.event.Cluster lcioCluster : lcioList) { displayList.add(toPanelCluster(lcioCluster)); } @@ -193,13 +193,13 @@ // TODO: LCIO files can't actually store an HPSEcalCluster; this // needs to be converted to use regular LCIO clusters instead. - public static final Cluster toPanelCluster(HPSEcalCluster lcioCluster) { + public static final Cluster toPanelCluster(org.lcsim.event.Cluster lcioCluster) { // If the argument is null, return null. if(lcioCluster == null) { return null; } // Otherwise, get the cluster x/y indices and energy. - int ix = lcioCluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = lcioCluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = lcioCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = lcioCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); double energy = lcioCluster.getEnergy(); // Create and return a panel cluster from the above values. Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java Tue Jan 6 12:54:22 2015 @@ -7,7 +7,7 @@ import org.lcsim.event.CalorimeterHit; import org.lcsim.event.EventHeader; -import org.hps.recon.ecal.HPSEcalCluster; +//import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.util.Driver; /** @@ -50,15 +50,15 @@ */ public void process(EventHeader event) { // Get the list of clusters. - List<HPSEcalCluster> clusters; + List<org.lcsim.event.Cluster> clusters; // If no cluster collection is present, then make an // empty list instead to avoid crashes. try { - clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + clusters = event.get(org.lcsim.event.Cluster.class, clusterCollectionName); if (clusters == null) { throw new RuntimeException("Missing cluster collection!"); } } - catch(IllegalArgumentException e) { clusters = new ArrayList<HPSEcalCluster>(0); } + catch(IllegalArgumentException e) { clusters = new ArrayList<org.lcsim.event.Cluster>(0); } // Get the list of calorimeter hits. List<CalorimeterHit> hits; @@ -103,9 +103,9 @@ // Only write clusters if the option is selected. if(outputClusters) { // Process the clusters. - for (HPSEcalCluster cluster : clusters) { + for (org.lcsim.event.Cluster cluster : clusters) { // Get the seed hit for the cluster. - CalorimeterHit seedHit = (CalorimeterHit)cluster.getSeedHit(); + CalorimeterHit seedHit = (CalorimeterHit)cluster.getCalorimeterHits().get(0); int ix = seedHit.getIdentifierFieldValue("ix"); int iy = seedHit.getIdentifierFieldValue("iy"); double time = seedHit.getTime(); Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/LCIOBridgeDriver.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/LCIOBridgeDriver.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/LCIOBridgeDriver.java Tue Jan 6 12:54:22 2015 @@ -5,7 +5,6 @@ import org.hps.monitoring.ecal.eventdisplay.event.Cluster; import org.hps.monitoring.ecal.eventdisplay.event.EcalHit; import org.hps.monitoring.ecal.eventdisplay.ui.PEventViewer; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; import org.lcsim.event.EventHeader; import org.lcsim.util.Driver; @@ -49,7 +48,7 @@ List<CalorimeterHit> hits = event.get(CalorimeterHit.class, ecalCollectionName); // Define a list of clusters from the event. - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + List<org.lcsim.event.Cluster> clusters = event.get(org.lcsim.event.Cluster.class, clusterCollectionName); // Increment the number of events we have seen. eventsProcessed++; @@ -74,12 +73,12 @@ } // Add all the clusters. - for(HPSEcalCluster cluster : clusters) { + for(org.lcsim.event.Cluster cluster : clusters) { // Get the seed hit. - CalorimeterHit seed = cluster.getSeedHit(); + CalorimeterHit seed = cluster.getCalorimeterHits().get(0); int ix = seed.getIdentifierFieldValue("ix"); int iy = seed.getIdentifierFieldValue("iy"); - double energy = seed.getRawEnergy(); + double energy = seed.getRawEnergy(); // FIXME: Should this be getCorrectedEnergy() instead? --JM // Add the cluster center to the event display. Cluster cc = new Cluster(ix, iy, energy); Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java Tue Jan 6 12:54:22 2015 @@ -32,7 +32,7 @@ public void addCluster(Cluster cluster) { clusterList.add(cluster); } @Override - public void addCluster(HPSEcalCluster lcioCluster) { clusterList.add(toPanelCluster(lcioCluster)); } + public void addCluster(org.lcsim.event.Cluster lcioCluster) { clusterList.add(toPanelCluster(lcioCluster)); } /** * Removes all of the hit data from the viewer. Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/POccupancyViewer.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/POccupancyViewer.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/POccupancyViewer.java Tue Jan 6 12:54:22 2015 @@ -72,7 +72,7 @@ * <b>Note:</b> This operation is not supported for occupancies. */ @Override - public void addCluster(HPSEcalCluster cluster) { } + public void addCluster(org.lcsim.event.Cluster cluster) { } /** * Removes a hit from the display. Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PassiveViewer.java ============================================================================= --- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PassiveViewer.java (original) +++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PassiveViewer.java Tue Jan 6 12:54:22 2015 @@ -2,8 +2,9 @@ import org.hps.monitoring.ecal.eventdisplay.event.Cluster; import org.hps.monitoring.ecal.eventdisplay.event.EcalHit; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.ecal.HPSEcalClusterIC; +//import org.hps.recon.ecal.HPSEcalCluster; +//import org.hps.recon.ecal.HPSEcalClusterIC; import org.lcsim.event.CalorimeterHit; /** @@ -38,7 +39,7 @@ * Adds a new cluster to the display. * @param cluster - The cluster to be added. */ - public abstract void addCluster(HPSEcalCluster cluster); + public abstract void addCluster(org.lcsim.event.Cluster cluster); /** * Clears any hits or clusters that have been added to the viewer. @@ -79,10 +80,10 @@ * @return Returns the argument cluster as a <code>Cluster</code> * object that can be used with the <code>Viewer</code>. */ - public static final Cluster toPanelCluster(HPSEcalCluster lcioCluster) { + public static final Cluster toPanelCluster(org.lcsim.event.Cluster lcioCluster) { // Get the cluster data from the LCIO cluster. - int ix = lcioCluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = lcioCluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = lcioCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = lcioCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); double energy = lcioCluster.getEnergy(); // Generate a new cluster. @@ -90,6 +91,7 @@ // If this is an IC cluster, cast it so that shared hits can // be properly displayed. + // FIXME: This should be changed to use the standard LCSim Cluster interface. --JM if(lcioCluster instanceof HPSEcalClusterIC) { // Cast the cluster object. HPSEcalClusterIC icCluster = (HPSEcalClusterIC) lcioCluster; Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -12,7 +12,7 @@ import java.util.Queue; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.aida.AIDA; @@ -54,8 +54,8 @@ // ================================================================== // ==== Driver Internal Variables =================================== // ================================================================== - private Queue<List<HPSEcalCluster>> topClusterQueue = null; // Store clusters on the top half of the calorimeter. - private Queue<List<HPSEcalCluster>> botClusterQueue = null; // Store clusters on the bottom half of the calorimeter. + private Queue<List<Cluster>> topClusterQueue = null; // Store clusters on the top half of the calorimeter. + private Queue<List<Cluster>> botClusterQueue = null; // Store clusters on the bottom half of the calorimeter. private int allClusters = 0; // Track the number of clusters processed. private int allPairs = 0; // Track the number of cluster pairs processed. private int clusterTotalEnergyCount = 0; // Track the clusters which pass the total energy cut. @@ -160,27 +160,27 @@ @Override public void process(EventHeader event) { // Process the list of clusters for the event, if it exists. - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the collection of clusters. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Create a list to hold clusters which pass the single // cluster cuts. - List<HPSEcalCluster> goodClusterList = new ArrayList<HPSEcalCluster>(clusterList.size()); + List<Cluster> goodClusterList = new ArrayList<Cluster>(clusterList.size()); // Sort through the cluster list and add clusters that pass // the single cluster cuts to the good list. clusterLoop: - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Increment the number of processed clusters. allClusters++; // Get the cluster plot values. int hitCount = cluster.getCalorimeterHits().size(); - double seedEnergy = cluster.getSeedHit().getCorrectedEnergy(); + double seedEnergy = cluster.getCalorimeterHits().get(0).getCorrectedEnergy(); double clusterEnergy = cluster.getEnergy(); - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); channel.x = ix; channel.y = iy; @@ -424,19 +424,19 @@ } // Initialize the top and bottom cluster queues. - topClusterQueue = new LinkedList<List<HPSEcalCluster>>(); - botClusterQueue = new LinkedList<List<HPSEcalCluster>>(); + topClusterQueue = new LinkedList<List<Cluster>>(); + botClusterQueue = new LinkedList<List<Cluster>>(); // Populate the top cluster queue. It should be populated with // a number of empty lists equal to (2 * pairCoincidence + 1). for (int i = 0; i < 2 * pairCoincidence + 1; i++) { - topClusterQueue.add(new ArrayList<HPSEcalCluster>()); + topClusterQueue.add(new ArrayList<Cluster>()); } // Populate the bottom cluster queue. It should be populated with // a number of empty lists equal to (2 * pairCoincidence + 1). for (int i = 0; i < pairCoincidence + 1; i++) { - botClusterQueue.add(new ArrayList<HPSEcalCluster>()); + botClusterQueue.add(new ArrayList<Cluster>()); } // If a background level has been set, pick the correct cuts. @@ -463,31 +463,31 @@ /** * Get a list of all unique cluster pairs in the event. - * @return A <code>List</code> collection of <code>HPSEcalCLuster - * </code> objects containing all cluster pairs. - */ - protected List<HPSEcalCluster[]> getClusterPairsTopBot() { + * @return A <code>List</code> collection of <code>Cluster</code> + * objects containing all cluster pairs. + */ + protected List<Cluster[]> getClusterPairsTopBot() { // Create a list to store cluster pairs. - List<HPSEcalCluster[]> clusterPairs = new ArrayList<HPSEcalCluster[]>(); + List<Cluster[]> clusterPairs = new ArrayList<Cluster[]>(); // Loop over all top-bottom pairs of clusters; higher-energy cluster goes first in the pair // To apply pair coincidence time, use only bottom clusters from the // readout cycle pairCoincidence readout cycles ago, and top clusters // from all 2*pairCoincidence+1 previous readout cycles - for (HPSEcalCluster botCluster : botClusterQueue.element()) { - for (List<HPSEcalCluster> topClusters : topClusterQueue) { - for (HPSEcalCluster topCluster : topClusters) { + for (Cluster botCluster : botClusterQueue.element()) { + for (List<Cluster> topClusters : topClusterQueue) { + for (Cluster topCluster : topClusters) { // The first cluster in a pair should always be // the higher energy cluster. If the top cluster // is higher energy, it goes first. if (topCluster.getEnergy() > botCluster.getEnergy()) { - HPSEcalCluster[] clusterPair = {topCluster, botCluster}; + Cluster[] clusterPair = {topCluster, botCluster}; clusterPairs.add(clusterPair); } // Otherwise, the bottom cluster goes first. else { - HPSEcalCluster[] clusterPair = {botCluster, topCluster}; + Cluster[] clusterPair = {botCluster, topCluster}; clusterPairs.add(clusterPair); } } @@ -507,7 +507,7 @@ protected boolean triggerDecision(EventHeader event) { // If there is a list of clusters present for this event, // check whether it passes the trigger conditions. - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { return testTrigger(); } @@ -603,13 +603,13 @@ */ private boolean testTrigger() { // Get the list of cluster pairs. - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); // Iterate over the cluster pairs and perform each of the cluster // pair cuts on them. A cluster pair that passes all of the // cuts registers as a trigger. pairLoop: - for (HPSEcalCluster[] clusterPair : clusterPairs) { + for (Cluster[] clusterPair : clusterPairs) { // Increment the number of processed cluster pairs. allPairs++; @@ -676,10 +676,10 @@ int[] iy = new int[2]; for(int i = 0; i < 2; i++) { hitCount[i] = clusterPair[i].getCalorimeterHits().size(); - seedEnergy[i] = clusterPair[i].getSeedHit().getCorrectedEnergy(); + seedEnergy[i] = clusterPair[i].getCalorimeterHits().get(0).getCorrectedEnergy(); clusterEnergy[i] = clusterPair[i].getEnergy(); - ix[i] = clusterPair[i].getSeedHit().getIdentifierFieldValue("ix"); - iy[i] = clusterPair[i].getSeedHit().getIdentifierFieldValue("iy"); + ix[i] = clusterPair[i].getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + iy[i] = clusterPair[i].getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(ix[i] > 0) { ix[i] = ix[i] - 1; } } @@ -711,16 +711,16 @@ * queues so that they may be formed into pairs. * @param clusterList - The clusters to add to the queues. */ - private void updateClusterQueues(List<HPSEcalCluster> clusterList) { + private void updateClusterQueues(List<Cluster> clusterList) { // Create lists to store the top and bottom clusters. - ArrayList<HPSEcalCluster> topClusterList = new ArrayList<HPSEcalCluster>(); - ArrayList<HPSEcalCluster> botClusterList = new ArrayList<HPSEcalCluster>(); + ArrayList<Cluster> topClusterList = new ArrayList<Cluster>(); + ArrayList<Cluster> botClusterList = new ArrayList<Cluster>(); // Loop over the clusters in the cluster list. - for (HPSEcalCluster cluster : clusterList) { + for (Cluster cluster : clusterList) { // If the cluster is on the top of the calorimeter, it // goes into the top cluster list. - if (cluster.getSeedHit().getIdentifierFieldValue("iy") > 0) { + if (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy") > 0) { topClusterList.add(cluster); } Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -2,8 +2,8 @@ import hep.aida.IHistogram1D; import hep.aida.IHistogram2D; + import java.io.IOException; - import java.io.PrintWriter; import java.util.ArrayList; import java.util.EnumSet; @@ -12,7 +12,6 @@ import java.util.Queue; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; @@ -62,8 +61,8 @@ protected String clusterCollectionName = "EcalClusters"; // FIFO queues of lists of clusters in each ECal half. // Each list corresponds to one readout cycle. - private Queue<List<HPSEcalCluster>> topClusterQueue = null; - private Queue<List<HPSEcalCluster>> botClusterQueue = null; + private Queue<List<Cluster>> topClusterQueue = null; + private Queue<List<Cluster>> botClusterQueue = null; PrintWriter pairWriter; private enum Flag { @@ -276,13 +275,13 @@ @Override public void startOfData() { //initialize queues and fill with empty lists - topClusterQueue = new LinkedList<List<HPSEcalCluster>>(); - botClusterQueue = new LinkedList<List<HPSEcalCluster>>(); + topClusterQueue = new LinkedList<List<Cluster>>(); + botClusterQueue = new LinkedList<List<Cluster>>(); for (int i = 0; i < 2 * pairCoincidence + 1; i++) { - topClusterQueue.add(new ArrayList<HPSEcalCluster>()); + topClusterQueue.add(new ArrayList<Cluster>()); } for (int i = 0; i < pairCoincidence + 1; i++) { - botClusterQueue.add(new ArrayList<HPSEcalCluster>()); + botClusterQueue.add(new ArrayList<Cluster>()); } super.startOfData(); if (clusterCollectionName == null) { @@ -300,19 +299,19 @@ @Override public void process(EventHeader event) { - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { // this needs to run every readout cycle whether or not trigger is live - updateClusterQueues(event.get(HPSEcalCluster.class, clusterCollectionName)); + updateClusterQueues(event.get(Cluster.class, clusterCollectionName)); if (pairWriter != null) { - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); - for (HPSEcalCluster[] pair : clusterPairs) { + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); + for (Cluster[] pair : clusterPairs) { pairWriter.format("%d\t", ClockSingleton.getClock()); - for (HPSEcalCluster cluster : pair) { - pairWriter.format("%f\t", cluster.getSeedHit().getTime()); - pairWriter.format("%f\t", cluster.getSeedHit().getRawEnergy()); - pairWriter.format("%d\t", cluster.getSeedHit().getIdentifierFieldValue("ix")); - pairWriter.format("%d\t", cluster.getSeedHit().getIdentifierFieldValue("iy")); + for (Cluster cluster : pair) { + pairWriter.format("%f\t", cluster.getCalorimeterHits().get(0).getTime()); + pairWriter.format("%f\t", cluster.getCalorimeterHits().get(0).getRawEnergy()); + pairWriter.format("%d\t", cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")); + pairWriter.format("%d\t", cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); pairWriter.format("%d\t", cluster.getSize()); pairWriter.format("%f\t", cluster.getEnergy()); pairWriter.format("%f\t", getClusterAngle(cluster)); @@ -329,7 +328,7 @@ @Override protected boolean triggerDecision(EventHeader event) { // Get the list of raw ECal hits. - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { return testTrigger(); } else { return false; @@ -339,22 +338,22 @@ public boolean testTrigger() { boolean trigger = false; - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); //--- Apply Trigger Cuts ---// // Iterate through all cluster pairs present in the event. If at least // one of the cluster pairs satisfies all of the trigger conditions, // a trigger signal is sent to all other detectors. - for (HPSEcalCluster[] clusterPair : clusterPairs) { + for (Cluster[] clusterPair : clusterPairs) { EnumSet<Flag> bits = EnumSet.noneOf(Flag.class); if (outputStream != null) { outputStream.printf("Event %d: cluster pair (energy %f in quadrant %d (%s), energy %f in quadrant %d (%s))\n", ClockSingleton.getClock(), - clusterPair[0].getEnergy(), ECalUtils.getQuadrant(clusterPair[0]), clusterPair[0].getSeedHit().getPositionVec().toString(), - clusterPair[1].getEnergy(), ECalUtils.getQuadrant(clusterPair[1]), clusterPair[1].getSeedHit().getPositionVec().toString()); + clusterPair[0].getEnergy(), ECalUtils.getQuadrant(clusterPair[0]), clusterPair[0].getCalorimeterHits().get(0).getPositionVec().toString(), + clusterPair[1].getEnergy(), ECalUtils.getQuadrant(clusterPair[1]), clusterPair[1].getCalorimeterHits().get(0).getPositionVec().toString()); } allPairs++; @@ -467,9 +466,9 @@ } trigger = true; - for (HPSEcalCluster cluster : clusterPair) { - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + for (Cluster cluster : clusterPair) { + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); trigClusterSeeds.fill(ix - 0.5 * Math.signum(ix), iy); } } @@ -508,19 +507,19 @@ writer.close(); } - protected void updateClusterQueues(List<HPSEcalCluster> ecalClusters) { - ArrayList<HPSEcalCluster> topClusterList = new ArrayList<HPSEcalCluster>(); - ArrayList<HPSEcalCluster> botClusterList = new ArrayList<HPSEcalCluster>(); - for (HPSEcalCluster ecalCluster : ecalClusters) { -// System.out.format("add cluster\t%f\t%d\n", ecalCluster.getSeedHit().getTime(), ecalCluster.getSeedHit().getIdentifierFieldValue("iy")); - if (ecalCluster.getSeedHit().getIdentifierFieldValue("iy") > 0) { + protected void updateClusterQueues(List<Cluster> ecalClusters) { + ArrayList<Cluster> topClusterList = new ArrayList<Cluster>(); + ArrayList<Cluster> botClusterList = new ArrayList<Cluster>(); + for (Cluster ecalCluster : ecalClusters) { +// System.out.format("add cluster\t%f\t%d\n", ecalCluster.getCalorimeterHits().get(0).getTime(), ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); + if (ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy") > 0) { topClusterList.add(ecalCluster); } else { botClusterList.add(ecalCluster); } - int ix = ecalCluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = ecalCluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); clusterSeeds.fill(ix - 0.5 * Math.signum(ix), iy); } @@ -536,23 +535,23 @@ * @param ecalClusters : List of ECal clusters * @return list of cluster pairs */ - protected List<HPSEcalCluster[]> getClusterPairsTopBot() { + protected List<Cluster[]> getClusterPairsTopBot() { // Make a list of cluster pairs - List<HPSEcalCluster[]> clusterPairs = new ArrayList<HPSEcalCluster[]>(); + List<Cluster[]> clusterPairs = new ArrayList<Cluster[]>(); // Loop over all top-bottom pairs of clusters; higher-energy cluster goes first in the pair // To apply pair coincidence time, use only bottom clusters from the // readout cycle pairCoincidence readout cycles ago, and top clusters // from all 2*pairCoincidence+1 previous readout cycles - for (HPSEcalCluster botCluster : botClusterQueue.element()) { - for (List<HPSEcalCluster> topClusters : topClusterQueue) { - for (HPSEcalCluster topCluster : topClusters) { -// System.out.format("%f\t%f\n", topCluster.getSeedHit().getTime(), botCluster.getSeedHit().getTime()); + for (Cluster botCluster : botClusterQueue.element()) { + for (List<Cluster> topClusters : topClusterQueue) { + for (Cluster topCluster : topClusters) { +// System.out.format("%f\t%f\n", topCluster.getCalorimeterHits().get(0).getTime(), botCluster.getCalorimeterHits().get(0).getTime()); if (topCluster.getEnergy() > botCluster.getEnergy()) { - HPSEcalCluster[] clusterPair = {topCluster, botCluster}; + Cluster[] clusterPair = {topCluster, botCluster}; clusterPairs.add(clusterPair); } else { - HPSEcalCluster[] clusterPair = {botCluster, topCluster}; + Cluster[] clusterPair = {botCluster, topCluster}; clusterPairs.add(clusterPair); } } @@ -568,7 +567,7 @@ * @param clusterPair : pair of clusters * @return true if opposite quadrants, false otherwise */ - protected boolean oppositeQuadrantsCut(HPSEcalCluster[] clusterPair) { + protected boolean oppositeQuadrantsCut(Cluster[] clusterPair) { int quad1 = ECalUtils.getQuadrant(clusterPair[0]); int quad2 = ECalUtils.getQuadrant(clusterPair[1]); @@ -588,7 +587,7 @@ * @param clusterPair: pair of clusters * @return true if pair passes cut, false if fail */ - protected boolean clusterHitCount(HPSEcalCluster[] clusterPair) { + protected boolean clusterHitCount(Cluster[] clusterPair) { return (clusterPair[0].getCalorimeterHits().size() >= minHitCount && clusterPair[1].getCalorimeterHits().size() >= minHitCount); } @@ -600,7 +599,7 @@ * @param clusterPair : pair of clusters * @return true if a pair is found, false otherwise */ - protected boolean clusterECut(HPSEcalCluster[] clusterPair) { + protected boolean clusterECut(Cluster[] clusterPair) { return (clusterPair[0].getEnergy() < clusterEnergyHigh && clusterPair[1].getEnergy() < clusterEnergyHigh && clusterPair[0].getEnergy() > clusterEnergyLow @@ -626,7 +625,7 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - protected boolean energyDifference(HPSEcalCluster[] clusterPair) { + protected boolean energyDifference(Cluster[] clusterPair) { double clusterEDifference = clusterPair[0].getEnergy() - clusterPair[1].getEnergy(); return (clusterEDifference < energyDifferenceThreshold); @@ -639,8 +638,8 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - protected boolean energyDistanceCut(HPSEcalCluster[] clusterPair) { - HPSEcalCluster lowEnergyCluster = clusterPair[1]; + protected boolean energyDistanceCut(Cluster[] clusterPair) { + Cluster lowEnergyCluster = clusterPair[1]; // Calculate its position double lowEClusterDistance = getClusterDistance(clusterPair[1]); @@ -656,23 +655,23 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - protected boolean coplanarityCut(HPSEcalCluster[] clusterPair) { + protected boolean coplanarityCut(Cluster[] clusterPair) { return (Math.abs(pairUncoplanarity(clusterPair)) < maxCoplanarityAngle); } - protected double pairUncoplanarity(HPSEcalCluster[] clusterPair) { // Find the angle between clusters in the pair + protected double pairUncoplanarity(Cluster[] clusterPair) { // Find the angle between clusters in the pair double cluster1Angle = (getClusterAngle(clusterPair[0]) + 180.0) % 180.0; double cluster2Angle = (getClusterAngle(clusterPair[1]) + 180.0) % 180.0; return cluster2Angle - cluster1Angle; } - protected double getClusterAngle(HPSEcalCluster cluster) { //returns angle in range of -180 to 180 - double position[] = cluster.getSeedHit().getPosition(); + protected double getClusterAngle(Cluster cluster) { //returns angle in range of -180 to 180 + double position[] = cluster.getCalorimeterHits().get(0).getPosition(); return Math.toDegrees(Math.atan2(position[1], position[0] - originX)); } - protected double getClusterDistance(HPSEcalCluster cluster) { - return Math.hypot(cluster.getSeedHit().getPosition()[0] - originX, cluster.getSeedHit().getPosition()[1]); + protected double getClusterDistance(Cluster cluster) { + return Math.hypot(cluster.getCalorimeterHits().get(0).getPosition()[0] - originX, cluster.getCalorimeterHits().get(0).getPosition()[1]); } } Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerVariableDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerVariableDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerVariableDriver.java Tue Jan 6 12:54:22 2015 @@ -11,7 +11,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; @@ -56,40 +56,40 @@ public void process(EventHeader event) { // super.process(event); - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusters = event.get(Cluster.class, clusterCollectionName); //System.out.printf("%d ecal clusters in event\n", clusters.size()); //System.out.printf("%s: %d clusters\n",this.getClass().getSimpleName(),clusters.size()); - //for(HPSEcalCluster cl : clusters) { + //for(Cluster cl : clusters) { // System.out.printf("%s: cl E %f x %f y %f \n",this.getClass().getSimpleName(),cl.getEnergy(),cl.getPosition()[0],cl.getPosition()[1]); //} - List<HPSEcalCluster> unique_clusters = this.getUniqueClusters(clusters); + List<Cluster> unique_clusters = this.getUniqueClusters(clusters); //System.out.printf("%s: %d unique clusters\n",this.getClass().getSimpleName(),unique_clusters.size()); - //for(HPSEcalCluster cl : unique_clusters) { + //for(Cluster cl : unique_clusters) { // System.out.printf("%s: cl E %f x %f y %f \n",this.getClass().getSimpleName(),cl.getEnergy(),cl.getPosition()[0],cl.getPosition()[1]); //} updateClusterQueues(unique_clusters); - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); boolean foundClusterPairs = !clusterPairs.isEmpty(); if (foundClusterPairs) { int ipair = 0; - for(HPSEcalCluster[] pair : clusterPairs) { + for(Cluster[] pair : clusterPairs) { String evString = String.format("%d %f %d ", event.getEventNumber(),this.beamEnergy,ipair); for(int icluster = 0; icluster!=2; icluster++ ) { - HPSEcalCluster cluster = pair[icluster]; + Cluster cluster = pair[icluster]; //int quad = ECalUtils.getQuadrant(cluster); double E = cluster.getEnergy(); - double pos[] = cluster.getSeedHit().getPosition(); - //System.out.printf("x %f y %f ix %d iy %d \n", pos[0], pos[1], cluster.getSeedHit().getIdentifierFieldValue("ix"), cluster.getSeedHit().getIdentifierFieldValue("iy")); + double pos[] = cluster.getCalorimeterHits().get(0).getPosition(); + //System.out.printf("x %f y %f ix %d iy %d \n", pos[0], pos[1], cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"), cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); evString += String.format("%f %f %f ", E, pos[0], pos[1]); } @@ -121,12 +121,12 @@ - private List<HPSEcalCluster> getUniqueClusters(List<HPSEcalCluster> clusters) { - List<HPSEcalCluster> unique = new ArrayList<HPSEcalCluster>(); - for(HPSEcalCluster loop_cl : clusters) { - HPSEcalClusterCmp loop_clCmp = new HPSEcalClusterCmp(loop_cl); + private List<Cluster> getUniqueClusters(List<Cluster> clusters) { + List<Cluster> unique = new ArrayList<Cluster>(); + for(Cluster loop_cl : clusters) { + ClusterCmp loop_clCmp = new ClusterCmp(loop_cl); boolean found = false; - for(HPSEcalCluster cl : unique) { + for(Cluster cl : unique) { if( loop_clCmp.compareTo(cl) == 0 ) { found = true; } @@ -139,13 +139,13 @@ } - private static class HPSEcalClusterCmp implements Comparable<HPSEcalCluster> { - private HPSEcalCluster _cluster; - public HPSEcalClusterCmp(HPSEcalCluster cl) { + private static class ClusterCmp implements Comparable<Cluster> { + private Cluster _cluster; + public ClusterCmp(Cluster cl) { set_cluster(cl); } @Override - public int compareTo(HPSEcalCluster cl) { + public int compareTo(Cluster cl) { if(cl.getEnergy()==get_cluster().getEnergy() && cl.getPosition()[0]==get_cluster().getPosition()[0] && cl.getPosition()[1]==get_cluster().getPosition()[1] ) { return 0; } else { @@ -156,10 +156,10 @@ } } } - public HPSEcalCluster get_cluster() { + public Cluster get_cluster() { return _cluster; } - public void set_cluster(HPSEcalCluster _cluster) { + public void set_cluster(Cluster _cluster) { this._cluster = _cluster; } Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -8,7 +8,7 @@ import java.util.List; import java.util.Set; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.aida.AIDA; @@ -117,7 +117,7 @@ // Check if there is a cluster collection. If not, there is no // reason to continue; a trigger can not be produced if there // are no clusters. - if(!event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(!event.hasCollection(Cluster.class, clusterCollectionName)) { // VERBOSE :: Note that no cluster collection exists for // this event. if(verbose) { System.out.println("No cluster collection is present for event."); } @@ -131,7 +131,7 @@ if(verbose) { System.out.println("Cluster collection is present for event."); } // Get the cluster list from the event. - List<HPSEcalCluster> eventList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> eventList = event.get(Cluster.class, clusterCollectionName); // VERBOSE :: Output the number of extant clusters. if(verbose) { System.out.printf("%d clusters in event.%n", eventList.size()); } @@ -139,29 +139,29 @@ // Add the clusters from the event into the cluster list // if they pass the minimum total cluster energy and seed // energy thresholds. - for(HPSEcalCluster cluster : eventList) { + for(Cluster cluster : eventList) { // Increment the clusters processed count. allClusters++; // Plot the seed energy / cluster energy histogram. - seedPercent.fill(cluster.getSeedHit().getCorrectedEnergy() / cluster.getEnergy(), 1); + seedPercent.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy() / cluster.getEnergy(), 1); // Get the cluster position indices. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); // VERBOSE :: Output the current cluster's properties. if(verbose) { System.out.printf("\tTesting cluster at (%d, %d) with total energy %f and seed energy %f.%n", - ix, iy, cluster.getSeedHit().getCorrectedEnergy(), cluster.getEnergy()); + ix, iy, cluster.getCalorimeterHits().get(0).getCorrectedEnergy(), cluster.getEnergy()); } // Add the clusters to the uncut histograms. clusterHitCount.fill(cluster.getCalorimeterHits().size()); clusterTotalEnergy.fill(cluster.getEnergy()); - clusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + clusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); clusterDistribution.fill(ix > 0 ? ix - 1 : ix, iy, 1); - if(cluster.getSeedHit().getCorrectedEnergy() > 0.100) { clusterDistribution100.fill(ix > 0 ? ix - 1 : ix, iy, 1); } + if(cluster.getCalorimeterHits().get(0).getCorrectedEnergy() > 0.100) { clusterDistribution100.fill(ix > 0 ? ix - 1 : ix, iy, 1); } // VERBOSE :: Output the single cluster trigger thresholds. if(verbose) { @@ -214,7 +214,7 @@ // Add the clusters to the cut histograms. aClusterHitCount.fill(cluster.getCalorimeterHits().size()); aClusterTotalEnergy.fill(cluster.getEnergy()); - aClusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + aClusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); aClusterDistribution.fill(ix > 0 ? ix - 1 : ix, iy, 1); // Increment the trigger count. @@ -247,7 +247,7 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterHitCountCut(HPSEcalCluster cluster) { + private boolean clusterHitCountCut(Cluster cluster) { return cluster.getCalorimeterHits().size() >= clusterHitCountThreshold; } @@ -258,9 +258,9 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterSeedEnergyCut(HPSEcalCluster cluster) { + private boolean clusterSeedEnergyCut(Cluster cluster) { // Get the seed energy value. - double seedEnergy = cluster.getSeedHit().getCorrectedEnergy(); + double seedEnergy = cluster.getCalorimeterHits().get(0).getCorrectedEnergy(); // Perform the seed energy cut. return seedEnergy >= clusterSeedEnergyThresholdLow && seedEnergy <= clusterSeedEnergyThresholdHigh; @@ -273,7 +273,7 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterTotalEnergyCut(HPSEcalCluster cluster) { + private boolean clusterTotalEnergyCut(Cluster cluster) { // Get the cluster energy. double clusterEnergy = cluster.getEnergy(); @@ -288,10 +288,10 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterPositionCut(HPSEcalCluster cluster) { + private boolean clusterPositionCut(Cluster cluster) { // Get the cluster position. - Point seedLoc = new Point(cluster.getSeedHit().getIdentifierFieldValue("ix"), - cluster.getSeedHit().getIdentifierFieldValue("iy")); + Point seedLoc = new Point(cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"), + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); // Check if it is one of the allowed seed crystals. return allowedSeedSet.contains(seedLoc); @@ -302,7 +302,7 @@ // ================================================================== /** - * Sets the LCIO collection name where <code>HPSEcalCluster</code> + * Sets the LCIO collection name where <code>Cluster</code> * objects are stored for use in the trigger. * @param clusterCollectionName - The name of the LCIO collection. */ @@ -428,7 +428,7 @@ private Set<Point> allowedSeedSet = new HashSet<Point>(); /** - * The name of the LCIO collection containing <code>HPSEcalCluster + * The name of the LCIO collection containing <code>Cluster * </code> objects. */ private String clusterCollectionName = "EcalClusters"; Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/NeutralPionTriggerDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/NeutralPionTriggerDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/NeutralPionTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -12,10 +12,10 @@ import java.util.List; import java.util.Map; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.detector.IGeometryInfo; import org.lcsim.detector.solids.Trd; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.aida.AIDA; @@ -79,16 +79,16 @@ public void process(EventHeader event) { // Generate a temporary list to store the good clusters // in before they are added to the buffer. - List<HPSEcalCluster> tempList = new ArrayList<HPSEcalCluster>(); + List<Cluster> tempList = new ArrayList<Cluster>(); // If the current event has a cluster collection, get it. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // VERBOSE :: Note that a cluster collection exists for // this event. if(verbose) { System.out.println("Cluster collection is present for event."); } // Get the cluster list from the event. - List<HPSEcalCluster> eventList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> eventList = event.get(Cluster.class, clusterCollectionName); // VERBOSE :: Output the number of extant clusters. if(verbose) { System.out.printf("%d clusters in event.%n", eventList.size()); } @@ -96,27 +96,27 @@ // Add the clusters from the event into the cluster list // if they pass the minimum total cluster energy and seed // energy thresholds. - for(HPSEcalCluster cluster : eventList) { + for(Cluster cluster : eventList) { // Increment the clusters processed count. allClusters++; // Plot the seed energy / cluster energy histogram. - seedPercent.fill(cluster.getSeedHit().getCorrectedEnergy() / cluster.getEnergy(), 1); + seedPercent.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy() / cluster.getEnergy(), 1); // Get the cluster position indices. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); // VERBOSE :: Output the current cluster's properties. if(verbose) { System.out.printf("\tTesting cluster at (%d, %d) with total energy %f and seed energy %f.%n", - ix, iy, cluster.getSeedHit().getCorrectedEnergy(), cluster.getEnergy()); + ix, iy, cluster.getCalorimeterHits().get(0).getCorrectedEnergy(), cluster.getEnergy()); } // Add the clusters to the uncut histograms. clusterHitCount.fill(cluster.getCalorimeterHits().size()); clusterTotalEnergy.fill(cluster.getEnergy()); - clusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + clusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); clusterDistribution.fill(ix, iy, 1); // VERBOSE :: Output the single cluster trigger thresholds. @@ -180,7 +180,7 @@ // Add the cluster information to the single cut histograms. pClusterHitCount.fill(cluster.getCalorimeterHits().size()); pClusterTotalEnergy.fill(cluster.getEnergy()); - pClusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + pClusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); pClusterDistribution.fill(ix, iy, 1); } } @@ -204,9 +204,9 @@ // Loop over all of the cluster lists in the cluster buffer. double[] energy = { 0.0, 0.0, 0.0 }; - for(List<HPSEcalCluster> bufferList : clusterBuffer) { + for(List<Cluster> bufferList : clusterBuffer) { // Loop over all of the clusters in each buffer list. - for(HPSEcalCluster cluster : bufferList) { + for(Cluster cluster : bufferList) { // If the new cluster is higher energy than the first // slot cluster, move the subsequent clusters down and // insert the new one. @@ -249,11 +249,11 @@ public void startOfData() { // Initialize the cluster buffer to the size of the coincidence window. - clusterBuffer = new LinkedList<List<HPSEcalCluster>>(); + clusterBuffer = new LinkedList<List<Cluster>>(); // Populate the buffer with empty lists. for(int i = 0; i < coincidenceWindow; i++) { - clusterBuffer.add(new ArrayList<HPSEcalCluster>(0)); + clusterBuffer.add(new ArrayList<Cluster>(0)); } // Initialize the cluster hit count diagnostic plots. @@ -316,18 +316,18 @@ allPairs++; // Get the cluster position indices. - int[] ix = { clusterPair[0].getSeedHit().getIdentifierFieldValue("ix"), clusterPair[1].getSeedHit().getIdentifierFieldValue("ix") }; - int[] iy = { clusterPair[0].getSeedHit().getIdentifierFieldValue("iy"), clusterPair[1].getSeedHit().getIdentifierFieldValue("iy") }; + int[] ix = { clusterPair[0].getCalorimeterHits().get(0).getIdentifierFieldValue("ix"), clusterPair[1].getCalorimeterHits().get(0).getIdentifierFieldValue("ix") }; + int[] iy = { clusterPair[0].getCalorimeterHits().get(0).getIdentifierFieldValue("iy"), clusterPair[1].getCalorimeterHits().get(0).getIdentifierFieldValue("iy") }; // VERBOSE :: Output the clusters selected for triggering. if(verbose) { System.out.printf("\tTesting first cluster at (%d, %d) with total energy %f and seed energy %f.%n", - ix[0], iy[0], clusterPair[0].getSeedHit().getCorrectedEnergy(), clusterPair[0].getEnergy()); + ix[0], iy[0], clusterPair[0].getCalorimeterHits().get(0).getCorrectedEnergy(), clusterPair[0].getEnergy()); System.out.printf("\tTesting second cluster at (%d, %d) with total energy %f and seed energy %f.%n", - ix[1], iy[1], clusterPair[1].getSeedHit().getCorrectedEnergy(), clusterPair[1].getEnergy()); + ix[1], iy[1], clusterPair[1].getCalorimeterHits().get(0).getCorrectedEnergy(), clusterPair[1].getEnergy()); if(useClusterTriplet) { System.out.printf("\tTesting third cluster at (%d, %d) with total energy %f and seed energy %f.%n", - ix[1], iy[1], clusterTriplet[2].getSeedHit().getCorrectedEnergy(), clusterTriplet[2].getEnergy()); + ix[1], iy[1], clusterTriplet[2].getCalorimeterHits().get(0).getCorrectedEnergy(), clusterTriplet[2].getEnergy()); } } @@ -371,8 +371,8 @@ aClusterHitCount.fill(clusterPair[1].getCalorimeterHits().size()); aClusterTotalEnergy.fill(clusterPair[0].getEnergy()); aClusterTotalEnergy.fill(clusterPair[1].getEnergy()); - aClusterSeedEnergy.fill(clusterPair[0].getSeedHit().getCorrectedEnergy()); - aClusterSeedEnergy.fill(clusterPair[1].getSeedHit().getCorrectedEnergy()); + aClusterSeedEnergy.fill(clusterPair[0].getCalorimeterHits().get(0).getCorrectedEnergy()); + aClusterSeedEnergy.fill(clusterPair[1].getCalorimeterHits().get(0).getCorrectedEnergy()); aClusterDistribution.fill(ix[0], iy[0], 1); aClusterDistribution.fill(ix[1], iy[1], 1); @@ -400,8 +400,8 @@ aClusterHitCount.fill(clusterPair[1].getCalorimeterHits().size()); aClusterTotalEnergy.fill(clusterPair[0].getEnergy()); aClusterTotalEnergy.fill(clusterPair[1].getEnergy()); - aClusterSeedEnergy.fill(clusterPair[0].getSeedHit().getCorrectedEnergy()); - aClusterSeedEnergy.fill(clusterPair[1].getSeedHit().getCorrectedEnergy()); + aClusterSeedEnergy.fill(clusterPair[0].getCalorimeterHits().get(0).getCorrectedEnergy()); + aClusterSeedEnergy.fill(clusterPair[1].getCalorimeterHits().get(0).getCorrectedEnergy()); aClusterDistribution.fill(ix[0], iy[0], 1); aClusterDistribution.fill(ix[1], iy[1], 1); @@ -428,7 +428,7 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterHitCountCut(HPSEcalCluster cluster) { + private boolean clusterHitCountCut(Cluster cluster) { return cluster.getCalorimeterHits().size() >= clusterHitCountThreshold; } @@ -439,9 +439,9 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterSeedEnergyCut(HPSEcalCluster cluster) { + private boolean clusterSeedEnergyCut(Cluster cluster) { // Get the seed energy value. - double seedEnergy = cluster.getSeedHit().getCorrectedEnergy(); + double seedEnergy = cluster.getCalorimeterHits().get(0).getCorrectedEnergy(); // Perform the seed energy cut. return seedEnergy >= clusterSeedEnergyThresholdLow && seedEnergy <= clusterSeedEnergyThresholdHigh; @@ -454,7 +454,7 @@ * @return Returns <code>true</code> if the cluster passes and <code> * false</code> if it does not. */ - private boolean clusterTotalEnergyCut(HPSEcalCluster cluster) { + private boolean clusterTotalEnergyCut(Cluster cluster) { // Get the cluster energy. double clusterEnergy = cluster.getEnergy(); @@ -469,12 +469,12 @@ * cut value. * @return Returns the cut value as a <code>double</code>. */ - private static double getEnergySumValue(HPSEcalCluster[] clusterGroup) { + private static double getEnergySumValue(Cluster[] clusterGroup) { // Track the sum. double energySum = 0.0; // Add the energies of all clusters in the array. - for(HPSEcalCluster cluster : clusterGroup) { energySum += cluster.getEnergy(); } + for(Cluster cluster : clusterGroup) { energySum += cluster.getEnergy(); } // Return the sum. return energySum; @@ -487,18 +487,18 @@ * cut value. * @return Returns the cut value as a <code>double</code>. */ - private double getInvariantMassValue(HPSEcalCluster[] clusterPair) { + private double getInvariantMassValue(Cluster[] clusterPair) { // Store the x/y positions for the seeds. double x[] = new double[2]; double y[] = new double[2]; // Get the seed hits. - CalorimeterHit[] seed = { clusterPair[0].getSeedHit(), clusterPair[1].getSeedHit() }; + CalorimeterHit[] seed = { clusterPair[0].getCalorimeterHits().get(0), clusterPair[1].getCalorimeterHits().get(0) }; // Set the positions for each seed. for(int index = 0; index < seed.length; index++) { // Get the seed position array stored in the position map. - Double[] seedPos = seedPosMap.get(clusterPair[index].getSeedHit()); + Double[] seedPos = seedPosMap.get(clusterPair[index].getCalorimeterHits().get(0)); // If there is a position array for the seed, use it. if(seedPos != null) { @@ -509,7 +509,7 @@ // Otherwise, calculate the position at the crystal face. else { // Get the position and store it in a double array. - IGeometryInfo geom = clusterPair[index].getSeedHit().getDetectorElement().getGeometry(); + IGeometryInfo geom = clusterPair[index].getCalorimeterHits().get(0).getDetectorElement().getGeometry(); double[] pos = geom.transformLocalToGlobal(VecOp.add(geom.transformGlobalToLocal(geom.getPosition()), (Hep3Vector) new BasicHep3Vector(0, 0, -1 * ((Trd) geom.getLogicalVolume().getSolid()).getZHalfLength()))).v(); @@ -519,7 +519,7 @@ // Store the seed location for future use. Double[] positionVec = { pos[0], pos[1], pos[2] }; - seedPosMap.put(clusterPair[index].getSeedHit(), positionVec); + seedPosMap.put(clusterPair[index].getCalorimeterHits().get(0), positionVec); } } @@ -538,10 +538,10 @@ * @return Returns <code>true</code> if the cluster seed is on the * edge of the calorimeter and <code>false</code> otherwise. */ - private static boolean isEdgeCluster(HPSEcalCluster cluster) { + private static boolean isEdgeCluster(Cluster cluster) { // Get the x- and y-indices of the cluster seed hit. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); // Track whether the cluster is an edge cluster or not. boolean edge = false; @@ -571,7 +571,7 @@ * @return Returns <code>true</code> if the clusters pass and <code> * false</code> if they does not. */ - private boolean pairEnergySumCut(HPSEcalCluster[] clusterPair) { + private boolean pairEnergySumCut(Cluster[] clusterPair) { // Get the energy sum value. double energySum = getEnergySumValue(clusterPair); @@ -587,7 +587,7 @@ * @return Returns <code>true</code> if the clusters pass and <code> * false</code> if they does not. */ - private boolean pairInvariantMassCut(HPSEcalCluster[] clusterPair) { + private boolean pairInvariantMassCut(Cluster[] clusterPair) { // Calculate the invariant mass. double myy2 = getInvariantMassValue(clusterPair); @@ -603,7 +603,7 @@ * @return Returns <code>true</code> if the clusters pass and <code> * false</code> if they does not. */ - private boolean tripletEnergySumCut(HPSEcalCluster[] clusterTriplet) { + private boolean tripletEnergySumCut(Cluster[] clusterTriplet) { return (getEnergySumValue(clusterTriplet) >= tripletEnergySumThreshold); } @@ -615,15 +615,15 @@ * @return Returns <code>true</code> if the clusters pass and <code> * false</code> if they does not. */ - private static boolean tripletHorizontalCut(HPSEcalCluster[] clusterTriplet) { + private static boolean tripletHorizontalCut(Cluster[] clusterTriplet) { // Track whether a cluster has occurred on each horizontal side // of the calorimeter. boolean leftCluster = false; boolean rightCluster = false; // Sort through the cluster triplet and check where they occur. - for(HPSEcalCluster cluster : clusterTriplet) { - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); + for(Cluster cluster : clusterTriplet) { + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); if(ix < 0) { leftCluster = true; } if(ix > 0) { rightCluster = true; } } @@ -633,10 +633,10 @@ else { return false; } } - private boolean tripletTotalEnergyCut(HPSEcalCluster[] clusterTriplet) { + private boolean tripletTotalEnergyCut(Cluster[] clusterTriplet) { // Check to see if each cluster passes the check. - for(HPSEcalCluster cluster1 : clusterTriplet) { - for(HPSEcalCluster cluster2 : clusterTriplet) { + for(Cluster cluster1 : clusterTriplet) { + for(Cluster cluster2 : clusterTriplet) { // The cluster pair must be two different clusters. if(cluster1 == cluster2) { continue; } @@ -670,7 +670,7 @@ // ================================================================== /** - * Sets the LCIO collection name where <code>HPSEcalCluster</code> + * Sets the LCIO collection name where <code>Cluster</code> * objects are stored for use in the trigger. * @param clusterCollectionName - The name of the LCIO collection. */ @@ -897,29 +897,29 @@ /** * <b>clusterBuffer</b><br/><br/> - * <code>private LinkedList<List<HPSEcalCluster>> <b>clusterBuffer</b></code><br/><br/> + * <code>private LinkedList<List<Cluster>> <b>clusterBuffer</b></code><br/><br/> * Stores the list of clusters from each event for a finite-sized * buffer. The size of the buffer is determined by the coincidence * window. */ - private LinkedList<List<HPSEcalCluster>> clusterBuffer; + private LinkedList<List<Cluster>> clusterBuffer; /** * <b>clusterCollectionName</b><br/><br/> * <code>private String <b>clusterCollectionName</b></code><br/><br/> - * The name of the LCIO collection containing <code>HPSEcalCluster + * The name of the LCIO collection containing <code>Cluster * </code> objects. */ private String clusterCollectionName = "EcalClusters"; /** * <b>clusterPair</b><br/><br/> - * <code>private HPSEcalCluster[] <b>clusterPair</b></code><br/><br/> + * <code>private Cluster[] <b>clusterPair</b></code><br/><br/> * Stores the two highest energy clusters located in the cluster * buffer. These are sorted by energy, with the highest energy * cluster first in the array. */ - private HPSEcalCluster[] clusterPair = new HPSEcalCluster[2]; + private Cluster[] clusterPair = new Cluster[2]; /** * <b>clusterHitCountThreshold</b><br/><br/> @@ -963,12 +963,12 @@ /** * <b>clusterTriplet</b><br/><br/> - * <code>private HPSEcalCluster[] <b>clusterTriplet</b></code><br/><br/> + * <code>private Cluster[] <b>clusterTriplet</b></code><br/><br/> * Stores the three highest energy clusters located in the cluster * buffer. These are sorted by energy, with the highest energy * cluster first in the array. */ - private HPSEcalCluster[] clusterTriplet = new HPSEcalCluster[3]; + private Cluster[] clusterTriplet = new Cluster[3]; /** * <b>coincidenceWindow</b><br/><br/> Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/OccupancyAnalysisDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/OccupancyAnalysisDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/OccupancyAnalysisDriver.java Tue Jan 6 12:54:22 2015 @@ -1,12 +1,12 @@ package org.hps.readout.ecal; - -import java.util.List; import hep.aida.IHistogram1D; import hep.aida.IHistogram2D; -import org.hps.recon.ecal.HPSEcalCluster; +import java.util.List; + import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; @@ -62,22 +62,22 @@ @Override public void process(EventHeader event) { // If clusters are present, process them. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the list of clusters. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Use the clusters to populate the cluster plots. - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Get the ix and iy values for the cluster. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); // If we want to ignore the beam gap rows, make sure // that iy exceeds two. if(!ignoreBeamGapRows || (Math.abs(iy) > 2)) { // If the cluster passes the seed threshold, place it in // the level 1 plots. - if(cluster.getSeedHit().getCorrectedEnergy() >= seedThreshold) { + if(cluster.getCalorimeterHits().get(0).getCorrectedEnergy() >= seedThreshold) { clusterDistribution[0].fill(ix, iy, scalingFactor); clusterHitDistribution[0].fill(cluster.getCalorimeterHits().size(), scalingFactor); clusterEnergyDistribution[0].fill(cluster.getEnergy() * beamRatio, scalingFactor); Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPTriggerLogic.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPTriggerLogic.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPTriggerLogic.java Tue Jan 6 12:54:22 2015 @@ -1,6 +1,6 @@ package org.hps.readout.ecal; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; /** * Class <code>SSPLogic</code> implements each of the trigger cuts. It @@ -21,7 +21,7 @@ * @return Returns <code>true</code> if the cluster passes the cut * and <code>false</code> if the cluster does not. */ - public static final boolean clusterHitCountCut(HPSEcalCluster cluster, int thresholdLow) { + public static final boolean clusterHitCountCut(Cluster cluster, int thresholdLow) { return (getValueClusterHitCount(cluster) >= thresholdLow); } @@ -32,7 +32,7 @@ * @return Returns <code>true</code> if the cluster passes the cut * and <code>false</code> if the cluster does not. */ - public static final boolean clusterSeedEnergyCut(HPSEcalCluster cluster, double thresholdLow, double thresholdHigh) { + public static final boolean clusterSeedEnergyCut(Cluster cluster, double thresholdLow, double thresholdHigh) { // Get the cluster seed energy. double energy = getValueClusterSeedEnergy(cluster); @@ -50,7 +50,7 @@ * @return Returns <code>true</code> if the cluster passes the cut * and <code>false</code> if the cluster does not. */ - public static final boolean clusterTotalEnergyCut(HPSEcalCluster cluster, double thresholdLow, double thresholdHigh) { + public static final boolean clusterTotalEnergyCut(Cluster cluster, double thresholdLow, double thresholdHigh) { // Get the total cluster energy. double energy = getValueClusterTotalEnergy(cluster); @@ -65,8 +65,8 @@ * be calculated. * @return Returns the distance between the clusters. */ - public static final double getClusterDistance(HPSEcalCluster cluster) { - return Math.hypot(cluster.getSeedHit().getPosition()[0] - ORIGIN_X, cluster.getSeedHit().getPosition()[1]); + public static final double getClusterDistance(Cluster cluster) { + return Math.hypot(cluster.getCalorimeterHits().get(0).getPosition()[0] - ORIGIN_X, cluster.getCalorimeterHits().get(0).getPosition()[1]); } /** @@ -75,7 +75,7 @@ * derived. * @return Returns the cut value. */ - public static final double getValueClusterTotalEnergy(HPSEcalCluster cluster) { + public static final double getValueClusterTotalEnergy(Cluster cluster) { return cluster.getEnergy(); } @@ -85,7 +85,7 @@ * derived. * @return Returns the cut value. */ - public static final int getValueClusterHitCount(HPSEcalCluster cluster) { + public static final int getValueClusterHitCount(Cluster cluster) { return cluster.getCalorimeterHits().size(); } @@ -95,8 +95,8 @@ * derived. * @return Returns the cut value. */ - public static final double getValueClusterSeedEnergy(HPSEcalCluster cluster) { - return cluster.getSeedHit().getCorrectedEnergy(); + public static final double getValueClusterSeedEnergy(Cluster cluster) { + return cluster.getCalorimeterHits().get(0).getCorrectedEnergy(); } /** @@ -106,11 +106,11 @@ * @param originX - The calorimeter center. * @return Returns the cut value. */ - public static final double getValueCoplanarity(HPSEcalCluster[] clusterPair) { + public static final double getValueCoplanarity(Cluster[] clusterPair) { // Get the cluster angles. double[] clusterAngle = new double[2]; for(int i = 0; i < 2; i++) { - double position[] = clusterPair[i].getSeedHit().getPosition(); + double position[] = clusterPair[i].getCalorimeterHits().get(0).getPosition(); clusterAngle[i] = (Math.toDegrees(Math.atan2(position[1], position[0] - ORIGIN_X)) + 180.0) % 180.0; } @@ -124,7 +124,7 @@ * be calculated. * @return Returns the cut value. */ - public static final double getValueEnergyDifference(HPSEcalCluster[] clusterPair) { + public static final double getValueEnergyDifference(Cluster[] clusterPair) { return clusterPair[0].getEnergy() - clusterPair[1].getEnergy(); } @@ -136,7 +136,7 @@ * energy slope equation E_low + R_min * F. * @return Returns the cut value. */ - public static final double getValueEnergySlope(HPSEcalCluster[] clusterPair, double energySlopeParamF) { + public static final double getValueEnergySlope(Cluster[] clusterPair, double energySlopeParamF) { // E + R*F // Get the low energy cluster energy. double slopeParamE = clusterPair[1].getEnergy(); @@ -154,7 +154,7 @@ * be calculated. * @return Returns the cut value. */ - public static final double getValueEnergySum(HPSEcalCluster[] clusterPair) { + public static final double getValueEnergySum(Cluster[] clusterPair) { return clusterPair[0].getEnergy() + clusterPair[1].getEnergy(); } @@ -166,7 +166,7 @@ * @return Returns <code>true</code> if the cluster pair passes * the cut and <code>false</code> if it does not. */ - public static final boolean pairCoplanarityCut(HPSEcalCluster[] clusterPair, double thresholdHigh) { + public static final boolean pairCoplanarityCut(Cluster[] clusterPair, double thresholdHigh) { return (getValueCoplanarity(clusterPair) < thresholdHigh); } @@ -178,7 +178,7 @@ * @return Returns <code>true</code> if the cluster pair passes * the cut and <code>false</code> if it does not. */ - public static final boolean pairEnergyDifferenceCut(HPSEcalCluster[] clusterPair, double thresholdHigh) { + public static final boolean pairEnergyDifferenceCut(Cluster[] clusterPair, double thresholdHigh) { return (getValueEnergyDifference(clusterPair) < thresholdHigh); } @@ -190,7 +190,7 @@ * @param thresholdLow - The lower bound for the cut. * @return true if pair is found, false otherwise */ - public static final boolean pairEnergySlopeCut(HPSEcalCluster[] clusterPair, double thresholdLow, double energySlopeParamF) { + public static final boolean pairEnergySlopeCut(Cluster[] clusterPair, double thresholdLow, double energySlopeParamF) { return (getValueEnergySlope(clusterPair, energySlopeParamF) > thresholdLow); } @@ -203,7 +203,7 @@ * @return Returns <code>true</code> if the cluster pair passes * the cut and <code>false</code> if it does not. */ - public static final boolean pairEnergySumCut(HPSEcalCluster[] clusterPair, double thresholdLow, double thresholdHigh) { + public static final boolean pairEnergySumCut(Cluster[] clusterPair, double thresholdLow, double thresholdHigh) { // Get the energy sum value. double energySum = getValueEnergySum(clusterPair); Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -5,7 +5,7 @@ import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.aida.AIDA; @@ -44,19 +44,19 @@ @Override public void process(EventHeader event) { // Make sure that there are clusters in the event. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the list of clusters. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Iterate over the clusters. - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Get the x and y indices. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); ix = ix > 0 ? ix - 1 : ix; // Populate the uncut plots. - clusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy(), 1); + clusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy(), 1); clusterTotalEnergy.fill(cluster.getEnergy(), 1); clusterHitCount.fill(cluster.getCalorimeterHits().size(), 1); clusterDistribution.fill(ix, iy, 1); @@ -73,13 +73,13 @@ @Override protected boolean triggerDecision(EventHeader event) { // Check that there is a cluster object collection. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the list of hits. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Iterate over the hits and perform the cuts. triggerLoop: - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Perform the hit count cut. if(!SSPTriggerLogic.clusterHitCountCut(cluster, hitCountLow)) { continue triggerLoop; @@ -96,12 +96,12 @@ } // Get the x and y indices. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); ix = ix > 0 ? ix - 1 : ix; // Populate the cut plots. - clusterSeedEnergySingle.fill(cluster.getSeedHit().getCorrectedEnergy(), 1); + clusterSeedEnergySingle.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy(), 1); clusterTotalEnergySingle.fill(cluster.getEnergy(), 1); clusterHitCountSingle.fill(cluster.getCalorimeterHits().size(), 1); clusterDistributionSingle.fill(ix, iy, 1); Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java ============================================================================= --- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java (original) +++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -3,7 +3,7 @@ import java.util.ArrayList; import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; /** @@ -55,9 +55,9 @@ @Override protected boolean triggerDecision(EventHeader event) { - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { cycleCounter++; - if (testTrigger(event.get(HPSEcalCluster.class, clusterCollectionName))) { + if (testTrigger(event.get(Cluster.class, clusterCollectionName))) { triggerThisCycle = true; } } @@ -71,12 +71,12 @@ } } - public boolean testTrigger(List<HPSEcalCluster> clusters) { + public boolean testTrigger(List<Cluster> clusters) { boolean trigger = false; topBits <<= 1; botBits <<= 1; - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { if (cluster.getEnergy() > clusterEnergyLow) { if (cluster.getPosition()[1] > 0) { topBits |= 1; Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalUtils.java ============================================================================= --- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalUtils.java (original) +++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalUtils.java Tue Jan 6 12:54:22 2015 @@ -1,6 +1,7 @@ package org.hps.recon.ecal; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; /** * @@ -34,8 +35,8 @@ * @param ecalCluster : ECal cluster * @return Quadrant number */ - public static int getQuadrant(HPSEcalCluster ecalCluster) { - return getQuadrant(ecalCluster.getSeedHit()); + public static int getQuadrant(Cluster ecalCluster) { + return getQuadrant(ecalCluster.getCalorimeterHits().get(0)); } public static int getQuadrant(CalorimeterHit hit) { Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTEventDisplay.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTEventDisplay.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTEventDisplay.java Tue Jan 6 12:54:22 2015 @@ -8,10 +8,10 @@ import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.detector.tracker.silicon.SiSensor; import org.lcsim.detector.tracker.silicon.SiSensorElectrodes; import org.lcsim.detector.tracker.silicon.SiStrips; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.RawTrackerHit; import org.lcsim.fit.helicaltrack.HelicalTrackHit; @@ -85,9 +85,9 @@ fillPlots(hrth); } - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); + List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); // System.out.println("Number of ECAL clusters="+clusters.size()); - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { // dec.setID(cluster.getSeedHit().getCellID()); // CalorimeterHit seedHit = cluster.getSeedHit(); // System.out.println("z = "+seedHit.getPosition()[2]+" y = "+seedHit.getPosition()[1]); Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java Tue Jan 6 12:54:22 2015 @@ -17,7 +17,6 @@ //===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants; //===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants; //===> import org.hps.conditions.deprecated.SvtUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.tracking.BeamlineConstants; import org.hps.recon.tracking.DumbShaperFit; import org.hps.recon.tracking.HelixConverter; @@ -25,8 +24,9 @@ import org.hps.recon.tracking.ShaperFitAlgorithm; import org.hps.recon.tracking.StraightLineTrack; import org.hps.recon.tracking.TrackUtils; +import org.lcsim.detector.tracker.silicon.HpsSiSensor; import org.lcsim.detector.tracker.silicon.SiSensor; -import org.lcsim.detector.tracker.silicon.HpsSiSensor; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.LCIOParameters.ParameterName; import org.lcsim.event.RawTrackerHit; @@ -626,9 +626,9 @@ List<Track> tracks = event.get(Track.class, trackCollectionName); nTracks.fill(tracks.size()); - if (event.hasCollection(HPSEcalCluster.class, ecalCollectionName)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); - for (HPSEcalCluster cluster : clusters) { + if (event.hasCollection(Cluster.class, ecalCollectionName)) { + List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); + for (Cluster cluster : clusters) { if (cluster.getPosition()[1] > 0) { aida.histogram2D("Top ECal Cluster Position").fill(cluster.getPosition()[0], cluster.getPosition()[1]); } @@ -829,10 +829,10 @@ } } } - if(event.hasCollection(HPSEcalCluster.class,ecalCollectionName)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); - - HPSEcalCluster clust = findClosestCluster(posAtEcal, clusters); + if(event.hasCollection(Cluster.class,ecalCollectionName)) { + List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); + + Cluster clust = findClosestCluster(posAtEcal, clusters); // if (clust != null) { if (clust != null) { @@ -1008,10 +1008,10 @@ //bottomFrame.dispose(); } - private HPSEcalCluster findClosestCluster(Hep3Vector posonhelix, List<HPSEcalCluster> clusters) { - HPSEcalCluster closest = null; + private Cluster findClosestCluster(Hep3Vector posonhelix, List<Cluster> clusters) { + Cluster closest = null; double minDist = 9999; - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { double[] clPos = cluster.getPosition(); double clEne = cluster.getEnergy(); double dist = Math.sqrt(Math.pow(clPos[0] - posonhelix.x(), 2) + Math.pow(clPos[1] - posonhelix.y(), 2)); //coordinates!!! Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalClusterPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalClusterPlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalClusterPlots.java Tue Jan 6 12:54:22 2015 @@ -11,8 +11,8 @@ import org.apache.commons.math.stat.StatUtils; import org.hps.readout.ecal.SSPTriggerLogic; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; @@ -167,20 +167,20 @@ @Override public void process(EventHeader event) { // Check whether the event has clusters or not. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the list of clusters. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Create lists to store the clusters from the top of the // calorimeter and the bottom. - List<HPSEcalCluster> topList = new ArrayList<HPSEcalCluster>(); - List<HPSEcalCluster> bottomList = new ArrayList<HPSEcalCluster>(); + List<Cluster> topList = new ArrayList<Cluster>(); + List<Cluster> bottomList = new ArrayList<Cluster>(); // Track the highest energy cluster in the event. double maxEnergy = 0.0; // Process each of the clusters. - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // If this cluster has a higher energy then was seen // previously, it is now the highest energy cluster. if (cluster.getEnergy() > maxEnergy) { @@ -221,7 +221,7 @@ // Cluster pairs are formed from all top/bottom cluster // combinations. To create these pairs, separate the // clusters into two lists based on their y-indices. - if(cluster.getSeedHit().getIdentifierFieldValue("ix") > 0) { + if(cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") > 0) { topList.add(cluster); } else { bottomList.add(cluster); @@ -233,14 +233,14 @@ if(maxEnergy > 0) { clusterMaxEnergyPlot.fill(maxEnergy); } // Create a list to store cluster pairs. - List<HPSEcalCluster[]> pairList = new ArrayList<HPSEcalCluster[]>(topList.size() * bottomList.size()); + List<Cluster[]> pairList = new ArrayList<Cluster[]>(topList.size() * bottomList.size()); // Form pairs from all possible combinations of clusters // from the top and bottom lists. - for(HPSEcalCluster topCluster : topList) { - for(HPSEcalCluster bottomCluster : bottomList) { + for(Cluster topCluster : topList) { + for(Cluster bottomCluster : bottomList) { // Make a cluster pair array. - HPSEcalCluster[] pair = new HPSEcalCluster[2]; + Cluster[] pair = new Cluster[2]; // The lower energy cluster goes in the second slot. if(topCluster.getEnergy() > bottomCluster.getEnergy()) { @@ -257,7 +257,7 @@ } // Iterate over each pair and calculate the pair cut values. - for(HPSEcalCluster[] pair : pairList) { + for(Cluster[] pair : pairList) { // Get the energy slope value. double energySumValue = SSPTriggerLogic.getValueEnergySum(pair); double energyDifferenceValue = SSPTriggerLogic.getValueEnergyDifference(pair); Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java Tue Jan 6 12:54:22 2015 @@ -9,11 +9,10 @@ import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.lang.System; -import java.io.File; -import java.io.IOException; import org.hps.monitoring.ecal.eventdisplay.ui.PDataEventViewer; import org.hps.monitoring.ecal.eventdisplay.ui.PEventViewer; @@ -21,10 +20,9 @@ import org.hps.monitoring.ecal.eventdisplay.util.CrystalEvent; import org.hps.monitoring.ecal.eventdisplay.util.CrystalListener; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.event.RawTrackerHit; import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; @@ -330,16 +328,16 @@ } // If there are clusters in the event... - if (event.hasCollection(HPSEcalCluster.class, clusterCollection)) { + if (event.hasCollection(Cluster.class, clusterCollection)) { // Get the list of clusters. - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollection); + List<Cluster> clusters = event.get(Cluster.class, clusterCollection); // Iterate over the clusters and add them to the event // display if appropriate. - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { // Get the ix and iy indices for the seed. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); // Get the histogram index for the hit. int id = ECalUtils.getHistoIDFromRowColumn(iy, ix); Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java Tue Jan 6 12:54:22 2015 @@ -1,16 +1,14 @@ package org.hps.monitoring.ecal.plots; -import hep.aida.IHistogram1D; import hep.aida.IHistogram2D; import hep.aida.IPlotter; import hep.aida.IPlotterStyle; -import java.util.ArrayList; import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.ecal.ECalUtils; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; @@ -162,10 +160,10 @@ } } - if (event.hasCollection(HPSEcalCluster.class, clusterCollection)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollection); - for (HPSEcalCluster cluster : clusters) { - clusterCountFillPlot.fill(cluster.getSeedHit().getIdentifierFieldValue("ix"), cluster.getSeedHit().getIdentifierFieldValue("iy")); + if (event.hasCollection(Cluster.class, clusterCollection)) { + List<Cluster> clusters = event.get(Cluster.class, clusterCollection); + for (Cluster cluster : clusters) { + clusterCountFillPlot.fill(cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"), cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); } } Modified: java/trunk/users/src/main/java/org/hps/users/holly/EcalClustererCosmics.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/holly/EcalClustererCosmics.java (original) +++ java/trunk/users/src/main/java/org/hps/users/holly/EcalClustererCosmics.java Tue Jan 6 12:54:22 2015 @@ -7,9 +7,10 @@ import java.util.Set; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; +import org.lcsim.event.base.BaseCluster; import org.lcsim.geometry.Detector; import org.lcsim.geometry.subdetector.HPSEcal3; import org.lcsim.geometry.subdetector.HPSEcal3.NeighborMap; @@ -112,14 +113,14 @@ // Put Cluster collection into event. int flag = 1 << LCIOConstants.CLBIT_HITS; - event.put(clusterCollectionName, createClusters(hitMap), HPSEcalCluster.class, flag); + event.put(clusterCollectionName, createClusters(hitMap), Cluster.class, flag); } } - public List<HPSEcalCluster> createClusters(Map<Long, CalorimeterHit> map) { + public List<Cluster> createClusters(Map<Long, CalorimeterHit> map) { // New Cluster list to be added to event. - List<HPSEcalCluster> clusters = new ArrayList<HPSEcalCluster>(); + List<Cluster> clusters = new ArrayList<Cluster>(); // Loop over ECal hits to find cluster seeds. for (CalorimeterHit hit : map.values()) { @@ -169,7 +170,7 @@ // Did we find a seed? if (isSeed) { // Make a cluster from the hit list. - HPSEcalCluster cluster = new HPSEcalCluster(hit.getCellID()); + BaseCluster cluster = new BaseCluster(); cluster.addHit(hit); for (CalorimeterHit clusHit : neighborHits) { cluster.addHit(clusHit); Modified: java/trunk/users/src/main/java/org/hps/users/kmccarty/ClusterAnalysisDriver.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/kmccarty/ClusterAnalysisDriver.java (original) +++ java/trunk/users/src/main/java/org/hps/users/kmccarty/ClusterAnalysisDriver.java Tue Jan 6 12:54:22 2015 @@ -1,11 +1,11 @@ package org.hps.users.kmccarty; - -import java.util.List; import hep.aida.IHistogram1D; import hep.aida.IHistogram2D; -import org.hps.recon.ecal.HPSEcalCluster; +import java.util.List; + +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; @@ -58,32 +58,32 @@ public void process(EventHeader event) { // Check if there exists a cluster collection. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the raw hit collection. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Output the information on each hit to the histograms. - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Get the x and y indices for the hits. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(ix > 0) { ix = ix - 1; } // Write to the histograms. clusterTotalEnergy.fill(cluster.getEnergy()); - clusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + clusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); clusterHitCount.fill(cluster.getCalorimeterHits().size()); clusterDistribution.fill(ix, iy, 1.0); - if(cluster.getSeedHit().getCorrectedEnergy() > 0.100) { + if(cluster.getCalorimeterHits().get(0).getCorrectedEnergy() > 0.100) { fClusterTotalEnergy.fill(cluster.getEnergy()); - fClusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + fClusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); fClusterHitCount.fill(cluster.getCalorimeterHits().size()); fClusterDistribution.fill(ix, iy, 1.0); if(cluster.getCalorimeterHits().size() > 1) { nClusterTotalEnergy.fill(cluster.getEnergy()); - nClusterSeedEnergy.fill(cluster.getSeedHit().getCorrectedEnergy()); + nClusterSeedEnergy.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); nClusterHitCount.fill(cluster.getCalorimeterHits().size()); nClusterDistribution.fill(ix, iy, 1.0); } Modified: java/trunk/users/src/main/java/org/hps/users/luca/CalibClusterAnalizer.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/CalibClusterAnalizer.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/CalibClusterAnalizer.java Tue Jan 6 12:54:22 2015 @@ -7,31 +7,13 @@ package org.hps.users.luca; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; -import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.LinkedList; + import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; +import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; -import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram1D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; /** * * @author mac @@ -51,7 +33,7 @@ {List<Cluster> clusters= event.get(Cluster.class,"EcalClusters"); for(Cluster cluster : clusters){ eneTuttiPlot.fill(cluster.getEnergy()); - SeedHitPlot.fill(HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy()); + SeedHitPlot.fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); } Modified: java/trunk/users/src/main/java/org/hps/users/luca/CalibTest.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/CalibTest.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/CalibTest.java Tue Jan 6 12:54:22 2015 @@ -2,13 +2,14 @@ package org.hps.users.luca; //import hep.aida.ITupleColumn.String; + +import hep.aida.IHistogram1D; import java.util.List; import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.util.Driver; -import hep.aida.IHistogram1D; import org.lcsim.util.aida.AIDA; // the class has to be derived from the driver class public class CalibTest extends Driver { Modified: java/trunk/users/src/main/java/org/hps/users/luca/CalibTest2.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/CalibTest2.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/CalibTest2.java Tue Jan 6 12:54:22 2015 @@ -2,18 +2,12 @@ //import hep.aida.ITupleColumn.String; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; -import java.io.IOException; -import java.io.*; - import java.util.List; import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; - import org.lcsim.util.Driver; - import org.lcsim.util.aida.AIDA; /** Modified: java/trunk/users/src/main/java/org/hps/users/luca/ClusterSorterReconData.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/ClusterSorterReconData.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/ClusterSorterReconData.java Tue Jan 6 12:54:22 2015 @@ -5,31 +5,15 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; + import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; /** * @@ -169,14 +153,14 @@ //ciclo for nel set di currentCluster, ovvero il set nel mezzo del buffer for(Cluster cluster : currentClusters){ - if((HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")== posx) && (HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ + if((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")== posx) && (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ if(ClusterChecker(cluster)){ int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy() + " " + HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")+" " +HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getCorrectedEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ @@ -220,7 +204,7 @@ for(Cluster currentcluster : currentList){ if(currentcluster!= cluster){ //if there is a cluster in the buffer that is in the considered radius in a time window lower than expected, the loop is brocken and the analyzed cluster is not good - if(!((HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("ix") < posx-radius || HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("ix")> posx+radius)&& (HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("iy")< posy-radius || HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(HPSEcalCluster.getSeedHit(cluster).getTime()-HPSEcalCluster.getSeedHit(currentcluster).getTime())<timeDifference){ + if(!((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") < posx-radius || cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posx+radius)&& (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")< posy-radius || cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getCalorimeterHits().get(0).getTime()-cluster.getCalorimeterHits().get(0).getTime())<timeDifference){ check=false; break loops; } @@ -243,8 +227,8 @@ public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix"); - y= HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/FADCVariableTriggerFEEDriver.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/FADCVariableTriggerFEEDriver.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/FADCVariableTriggerFEEDriver.java Tue Jan 6 12:54:22 2015 @@ -5,10 +5,11 @@ import java.util.List; import java.util.Queue; +import org.hps.readout.ecal.FADCTriggerDriver; +import org.hps.readout.ecal.TriggerDriver; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.hps.readout.ecal.TriggerDriver; /** * Class <code>FADCVariableTriggerDriver</code> reads reconstructed * clusters and makes trigger decisions on them. It is designed to @@ -47,8 +48,8 @@ // ================================================================== // ==== Driver Internal Variables =================================== // ================================================================== - private Queue<List<HPSEcalCluster>> topClusterQueue = null; // Store clusters on the top half of the calorimeter. - private Queue<List<HPSEcalCluster>> botClusterQueue = null; // Store clusters on the bottom half of the calorimeter. + private Queue<List<Cluster>> topClusterQueue = null; // Store clusters on the top half of the calorimeter. + private Queue<List<Cluster>> botClusterQueue = null; // Store clusters on the bottom half of the calorimeter. private int allClusters = 0; // Track the number of clusters processed. private int allPairs = 0; // Track the number of cluster pairs processed. private int clusterTotalEnergyCount = 0; // Track the clusters which pass the total energy cut. @@ -92,18 +93,18 @@ @Override public void process(EventHeader event) { // Process the list of clusters for the event, if it exists. - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the collection of clusters. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Create a list to hold clusters which pass the single // cluster cuts. - List<HPSEcalCluster> goodClusterList = new ArrayList<HPSEcalCluster>(clusterList.size()); + List<Cluster> goodClusterList = new ArrayList<Cluster>(clusterList.size()); // Sort through the cluster list and add clusters that pass // the single cluster cuts to the good list. clusterLoop: - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Increment the number of processed clusters. allClusters++; @@ -305,19 +306,19 @@ } // Initialize the top and bottom cluster queues. - topClusterQueue = new LinkedList<List<HPSEcalCluster>>(); - botClusterQueue = new LinkedList<List<HPSEcalCluster>>(); + topClusterQueue = new LinkedList<List<Cluster>>(); + botClusterQueue = new LinkedList<List<Cluster>>(); // Populate the top cluster queue. It should be populated with // a number of empty lists equal to (2 * pairCoincidence + 1). for (int i = 0; i < 2 * pairCoincidence + 1; i++) { - topClusterQueue.add(new ArrayList<HPSEcalCluster>()); + topClusterQueue.add(new ArrayList<Cluster>()); } // Populate the bottom cluster queue. It should be populated with // a number of empty lists equal to (2 * pairCoincidence + 1). for (int i = 0; i < pairCoincidence + 1; i++) { - botClusterQueue.add(new ArrayList<HPSEcalCluster>()); + botClusterQueue.add(new ArrayList<Cluster>()); } // If a background level has been set, pick the correct cuts. @@ -333,28 +334,28 @@ * @param ecalClusters : List of ECal clusters * @return list of cluster pairs */ - protected List<HPSEcalCluster[]> getClusterPairsTopBot() { + protected List<Cluster[]> getClusterPairsTopBot() { // Create a list to store cluster pairs. - List<HPSEcalCluster[]> clusterPairs = new ArrayList<HPSEcalCluster[]>(); + List<Cluster[]> clusterPairs = new ArrayList<Cluster[]>(); // Loop over all top-bottom pairs of clusters; higher-energy cluster goes first in the pair // To apply pair coincidence time, use only bottom clusters from the // readout cycle pairCoincidence readout cycles ago, and top clusters // from all 2*pairCoincidence+1 previous readout cycles - for (HPSEcalCluster botCluster : botClusterQueue.element()) { - for (List<HPSEcalCluster> topClusters : topClusterQueue) { - for (HPSEcalCluster topCluster : topClusters) { + for (Cluster botCluster : botClusterQueue.element()) { + for (List<Cluster> topClusters : topClusterQueue) { + for (Cluster topCluster : topClusters) { // The first cluster in a pair should always be // the higher energy cluster. If the top cluster // is higher energy, it goes first. if (topCluster.getEnergy() > botCluster.getEnergy()) { - HPSEcalCluster[] clusterPair = {topCluster, botCluster}; + Cluster[] clusterPair = {topCluster, botCluster}; clusterPairs.add(clusterPair); } // Otherwise, the bottom cluster goes first. else { - HPSEcalCluster[] clusterPair = {botCluster, topCluster}; + Cluster[] clusterPair = {botCluster, topCluster}; clusterPairs.add(clusterPair); } } @@ -375,7 +376,7 @@ protected boolean triggerDecision(EventHeader event) { // If there is a list of clusters present for this event, // check whether it passes the trigger conditions. - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { return testTrigger(); } @@ -392,7 +393,7 @@ * @return Returns <code>true</code> if the cluster passes the cut * and <code>false</code> if the cluster does not. */ - private boolean clusterHitCountCut(HPSEcalCluster cluster) { + private boolean clusterHitCountCut(Cluster cluster) { return (getValueClusterHitCount(cluster) >= minHitCount); } @@ -404,7 +405,7 @@ * @return Returns <code>true</code> if the cluster passes the cut * and <code>false</code> if the cluster does not. */ - private boolean clusterSeedEnergyCut(HPSEcalCluster cluster) { + private boolean clusterSeedEnergyCut(Cluster cluster) { // Get the cluster seed energy. double energy = getValueClusterSeedEnergy(cluster); @@ -421,7 +422,7 @@ * @return Returns <code>true</code> if the cluster passes the cut * and <code>false</code> if the cluster does not. */ - private boolean clusterTotalEnergyCut(HPSEcalCluster cluster) { + private boolean clusterTotalEnergyCut(Cluster cluster) { // Get the total cluster energy. double energy = getValueClusterTotalEnergy(cluster); @@ -437,8 +438,8 @@ * be calculated. * @return Returns the distance between the clusters. */ - private double getClusterDistance(HPSEcalCluster cluster) { - return Math.hypot(cluster.getSeedHit().getPosition()[0] - originX, cluster.getSeedHit().getPosition()[1]); + private double getClusterDistance(Cluster cluster) { + return Math.hypot(cluster.getCalorimeterHits().get(0).getPosition()[0] - originX, cluster.getCalorimeterHits().get(0).getPosition()[1]); } /** @@ -448,7 +449,7 @@ * derived. * @return Returns the cut value. */ - private double getValueClusterTotalEnergy(HPSEcalCluster cluster) { + private double getValueClusterTotalEnergy(Cluster cluster) { return cluster.getEnergy(); } @@ -459,7 +460,7 @@ * derived. * @return Returns the cut value. */ - private int getValueClusterHitCount(HPSEcalCluster cluster) { + private int getValueClusterHitCount(Cluster cluster) { return cluster.getCalorimeterHits().size(); } @@ -470,8 +471,8 @@ * derived. * @return Returns the cut value. */ - private double getValueClusterSeedEnergy(HPSEcalCluster cluster) { - return cluster.getSeedHit().getCorrectedEnergy(); + private double getValueClusterSeedEnergy(Cluster cluster) { + return cluster.getCalorimeterHits().get(0).getCorrectedEnergy(); } /** @@ -481,11 +482,11 @@ * be calculated. * @return Returns the cut value. */ - private double getValueCoplanarity(HPSEcalCluster[] clusterPair) { + private double getValueCoplanarity(Cluster[] clusterPair) { // Get the cluster angles. double[] clusterAngle = new double[2]; for(int i = 0; i < 2; i++) { - double position[] = clusterPair[i].getSeedHit().getPosition(); + double position[] = clusterPair[i].getCalorimeterHits().get(0).getPosition(); //clusterAngle[i] = Math.toDegrees(Math.atan2(position[1], position[0] - originX)); //clusterAngle[i] = (clusterAngle[i] + 180.0) % 180.0; clusterAngle[i] = (Math.toDegrees(Math.atan2(position[1], position[0] - originX)) + 180.0) % 180.0; @@ -502,7 +503,7 @@ * be calculated. * @return Returns the cut value. */ - private double getValueEnergyDifference(HPSEcalCluster[] clusterPair) { + private double getValueEnergyDifference(Cluster[] clusterPair) { return clusterPair[0].getEnergy() - clusterPair[1].getEnergy(); } @@ -513,7 +514,7 @@ * be calculated. * @return Returns the cut value. */ - private double getValueEnergySlope(HPSEcalCluster[] clusterPair) { + private double getValueEnergySlope(Cluster[] clusterPair) { // E + R*F // Get the low energy cluster energy. double slopeParamE = clusterPair[1].getEnergy(); @@ -532,7 +533,7 @@ * be calculated. * @return Returns the cut value. */ - private double getValueEnergySum(HPSEcalCluster[] clusterPair) { + private double getValueEnergySum(Cluster[] clusterPair) { return clusterPair[0].getEnergy() + clusterPair[1].getEnergy(); } @@ -544,7 +545,7 @@ * @return Returns <code>true</code> if the cluster pair passes * the cut and <code>false</code> if it does not. */ - private boolean pairCoplanarityCut(HPSEcalCluster[] clusterPair) { + private boolean pairCoplanarityCut(Cluster[] clusterPair) { return (getValueCoplanarity(clusterPair) < coplanarityHigh); } @@ -556,7 +557,7 @@ * @return Returns <code>true</code> if the cluster pair passes * the cut and <code>false</code> if it does not. */ - private boolean pairEnergyDifferenceCut(HPSEcalCluster[] clusterPair) { + private boolean pairEnergyDifferenceCut(Cluster[] clusterPair) { return (getValueEnergyDifference(clusterPair) < energyDifferenceHigh); } @@ -568,7 +569,7 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - private boolean pairEnergySlopeCut(HPSEcalCluster[] clusterPair) { + private boolean pairEnergySlopeCut(Cluster[] clusterPair) { return (getValueEnergySlope(clusterPair) > energySlopeLow); } @@ -580,7 +581,7 @@ * @return Returns <code>true</code> if the cluster pair passes * the cut and <code>false</code> if it does not. */ - private boolean pairEnergySumCut(HPSEcalCluster[] clusterPair) { + private boolean pairEnergySumCut(Cluster[] clusterPair) { // Get the energy sum value. double energySum = getValueEnergySum(clusterPair); @@ -701,13 +702,13 @@ */ private boolean testTrigger() { // Get the list of cluster pairs. - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); // Iterate over the cluster pairs and perform each of the cluster // pair cuts on them. A cluster pair that passes all of the // cuts registers as a trigger. pairLoop: - for (HPSEcalCluster[] clusterPair : clusterPairs) { + for (Cluster[] clusterPair : clusterPairs) { // Increment the number of processed cluster pairs. allPairs++; @@ -759,16 +760,16 @@ * * @param clusterList - The clusters to add to the queues. */ - private void updateClusterQueues(List<HPSEcalCluster> clusterList) { + private void updateClusterQueues(List<Cluster> clusterList) { // Create lists to store the top and bottom clusters. - ArrayList<HPSEcalCluster> topClusterList = new ArrayList<HPSEcalCluster>(); - ArrayList<HPSEcalCluster> botClusterList = new ArrayList<HPSEcalCluster>(); + ArrayList<Cluster> topClusterList = new ArrayList<Cluster>(); + ArrayList<Cluster> botClusterList = new ArrayList<Cluster>(); // Loop over the clusters in the cluster list. - for (HPSEcalCluster cluster : clusterList) { + for (Cluster cluster : clusterList) { // If the cluster is on the top of the calorimeter, it // goes into the top cluster list. - if (cluster.getSeedHit().getIdentifierFieldValue("iy") > 0) { + if (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy") > 0) { topClusterList.add(cluster); } Modified: java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger.java Tue Jan 6 12:54:22 2015 @@ -3,8 +3,7 @@ import java.util.List; import org.hps.readout.ecal.TriggerDriver; -import org.hps.recon.ecal.HPSEcalCluster; - +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; /** @@ -72,18 +71,18 @@ */ @Override public void process(EventHeader event) { - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the list of clusters from the event. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Loop over the clusters and check for any that pass the threshold. - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Check if the current cluster exceeds the energy // threshold. If it does not, continue to the next // cluster in the list. if(cluster.getEnergy() > energyThreshold) { // Get the x-index of the seed hit. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); // Determine in which region the cluster is located // and increment the counter for that region. Zones @@ -171,7 +170,7 @@ protected boolean triggerDecision(EventHeader event) { // Check if the event has clusters. An event with no clusters // should never result in a trigger. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Check if any of the zone counts are high enough to trigger. return triggerTest(); } Modified: java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger2.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger2.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/FEETrigger2.java Tue Jan 6 12:54:22 2015 @@ -3,8 +3,7 @@ import java.util.List; import org.hps.readout.ecal.TriggerDriver; -import org.hps.recon.ecal.HPSEcalCluster; - +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; /** @@ -73,18 +72,18 @@ */ @Override public void process(EventHeader event) { - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Get the list of clusters from the event. - List<HPSEcalCluster> clusterList = event.get(HPSEcalCluster.class, clusterCollectionName); + List<Cluster> clusterList = event.get(Cluster.class, clusterCollectionName); // Loop over the clusters and check for any that pass the threshold. - for(HPSEcalCluster cluster : clusterList) { + for(Cluster cluster : clusterList) { // Check if the current cluster exceeds the energy // threshold. If it does not, continue to the next // cluster in the list. if(cluster.getEnergy() > energyThreshold) { // Get the x-index of the seed hit. - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); // Determine in which region the cluster is located // and increment the counter for that region. Zones @@ -115,7 +114,7 @@ protected boolean triggerDecision(EventHeader event) { // Check if the event has clusters. An event with no clusters // should never result in a trigger. - if(event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if(event.hasCollection(Cluster.class, clusterCollectionName)) { // Check if any of the zone counts are high enough to trigger. return triggerTest(); } Modified: java/trunk/users/src/main/java/org/hps/users/luca/FeeTriggerAna.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/FeeTriggerAna.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/FeeTriggerAna.java Tue Jan 6 12:54:22 2015 @@ -5,30 +5,17 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; + import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; - +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; - -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; /** @@ -43,7 +30,7 @@ int TotalCluster=0; double timeDifference; double energyThreshold=0; - private LinkedList<ArrayList<HPSEcalCluster>> clusterBuffer; + private LinkedList<ArrayList<Cluster>> clusterBuffer; protected String clusterCollectionName = "EcalClusters"; //AIDA aida = AIDA.defaultInstance(); @@ -91,12 +78,12 @@ public void startOfData(){ //initialize the clusterbuffer - clusterBuffer= new LinkedList<ArrayList<HPSEcalCluster>>(); + clusterBuffer= new LinkedList<ArrayList<Cluster>>(); //populate the clusterbuffer with (2*clusterWindow + 1) // empty events, representing the fact that the first few events will not have any events in the past portion of the buffer int bufferSize=(2*clusterWindow)+1; for(int i = 0;i<bufferSize; i++){ - clusterBuffer.add(new ArrayList<HPSEcalCluster>(0)); + clusterBuffer.add(new ArrayList<Cluster>(0)); } @@ -155,21 +142,21 @@ //get the clusters from the event if(TriggerDriver.triggerBit()){ //if they have triggered! - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { + if(event.hasCollection(Cluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusterList =event.get(HPSEcalCluster.class,clusterCollectionName ); + List<Cluster> clusterList =event.get(Cluster.class,clusterCollectionName ); //put the clusters in the arraylist - ArrayList<HPSEcalCluster> clusterSet = new ArrayList<HPSEcalCluster>(); - for(HPSEcalCluster cluster : clusterList){ + ArrayList<Cluster> clusterSet = new ArrayList<Cluster>(); + for(Cluster cluster : clusterList){ // clusterEne.fill(cluster.getEnergy()); TotalCluster++; // clusterSet.add(cluster); int id; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getSeedHit().getIdentifierFieldValue("ix")+" " +cluster.getSeedHit().getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ @@ -199,7 +186,7 @@ */ public void ClusterAnalyzer(){ //get the cluster list at the current time in the buffer -ArrayList<HPSEcalCluster> currentClusters = clusterBuffer.get(clusterWindow+1); +ArrayList<Cluster> currentClusters = clusterBuffer.get(clusterWindow+1); ///cerca i cluster nella posizione che ci interessa poi chiama la funzione che decide se sono "isolati" @@ -210,20 +197,20 @@ posy=y; //ciclo for nel set di currentCluster, ovvero il set nel mezzo del buffer - for(HPSEcalCluster cluster : currentClusters){ - if((cluster.getSeedHit().getIdentifierFieldValue("ix")== posx) && (cluster.getSeedHit().getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ + for(Cluster cluster : currentClusters){ + if((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")== posx) && (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ if(ClusterChecker(cluster)){ int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getSeedHit().getIdentifierFieldValue("ix")+" " +cluster.getSeedHit().getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ writer.append("\n"); - // SeedHistograms.get(id-1).fill(cluster.getSeedHit().getRawEnergy()); + // SeedHistograms.get(id-1).fill(cluster.getCalorimeterHits().get(0).getRawEnergy()); // ClustHistograms.get(id-1).fill(cluster.getEnergy()); } @@ -251,19 +238,19 @@ * @return */ -public boolean ClusterChecker (HPSEcalCluster cluster){ +public boolean ClusterChecker (Cluster cluster){ //System.out.println("Sono nel clustercheck! \n"); boolean check=true; //ciclo sulle liste del buffer loops: - for(ArrayList<HPSEcalCluster> currentList : clusterBuffer){ + for(ArrayList<Cluster> currentList : clusterBuffer){ //ciclo sui cluster della lista corrente - for(HPSEcalCluster currentcluster : currentList){ + for(Cluster currentcluster : currentList){ if(currentcluster!= cluster){ //if there is a cluster in the buffer that is in the considered radius in a time window lower than expected, the loop is brocken and the analyzed cluster is not good - if(!((currentcluster.getSeedHit().getIdentifierFieldValue("ix") < posx-radius || currentcluster.getSeedHit().getIdentifierFieldValue("ix")> posx+radius)&& (currentcluster.getSeedHit().getIdentifierFieldValue("iy")< posy-radius || currentcluster.getSeedHit().getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getSeedHit().getTime()-currentcluster.getSeedHit().getTime())<timeDifference){ + if(!((currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") < posx-radius || currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posx+radius)&& (currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")< posy-radius || currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getCalorimeterHits().get(0).getTime()-currentcluster.getCalorimeterHits().get(0).getTime())<timeDifference){ check=false; break loops; } @@ -284,10 +271,10 @@ - public int getCrystal (HPSEcalCluster cluster){ + public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*cluster.getSeedHit().getIdentifierFieldValue("ix"); - y= cluster.getSeedHit().getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/HitSeedHitConf.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/HitSeedHitConf.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/HitSeedHitConf.java Tue Jan 6 12:54:22 2015 @@ -5,31 +5,14 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; + +import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; /** * @@ -105,13 +88,13 @@ //get the clusters from the event - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusterList =event.get(HPSEcalCluster.class,clusterCollectionName ); - for(HPSEcalCluster cluster : clusterList){ + if(event.hasCollection(Cluster.class, "EcalClusters")) { + List<Cluster> clusterList =event.get(Cluster.class,clusterCollectionName ); + for(Cluster cluster : clusterList){ if(cluster.getEnergy()>1.5){ int id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getEnergy()+"\n"); + writer.append(id + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getEnergy()+"\n"); } catch(IOException e ){System.err.println("Error writing to output for event display");} @@ -144,10 +127,10 @@ -public int getCrystal (HPSEcalCluster cluster){ +public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*cluster.getSeedHit().getIdentifierFieldValue("ix"); - y= cluster.getSeedHit().getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/PositronAna.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/PositronAna.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/PositronAna.java Tue Jan 6 12:54:22 2015 @@ -6,32 +6,17 @@ package org.hps.users.luca; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; + +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; + +import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; +import org.lcsim.event.ReconstructedParticle; +import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; -import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.ReconstructedParticle; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; -import org.hps.recon.particle.HpsReconParticleDriver; /** * * @author Luca @@ -111,7 +96,7 @@ cluscount++; int id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy() + " " + cluster.getSize() + " " + HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy() + " " + HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")+" " +HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")+ "\n"); + writer.append(id + " " + cluster.getEnergy() + " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getCorrectedEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")+ "\n"); } catch(IOException e ){System.err.println("Error writing to output for event display");} @@ -131,8 +116,8 @@ public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix"); - y= HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/RawDataReader.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/RawDataReader.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/RawDataReader.java Tue Jan 6 12:54:22 2015 @@ -8,17 +8,13 @@ import java.io.FileWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.List; -import org.hps.recon.ecal.HPSRawCalorimeterHit; + import org.lcsim.event.CalorimeterHit; import org.lcsim.event.EventHeader; import org.lcsim.event.RawCalorimeterHit; +import org.lcsim.geometry.IDDecoder; import org.lcsim.util.Driver; -import org.lcsim.lcio.LCIOConstants; -import java.io.PrintWriter; -import org.lcsim.geometry.IDDecoder; -import org.lcsim.event.CalorimeterHit; /** * Modified: java/trunk/users/src/main/java/org/hps/users/luca/ReconData.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/ReconData.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/ReconData.java Tue Jan 6 12:54:22 2015 @@ -6,30 +6,18 @@ package org.hps.users.luca; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; + +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; + +import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; +import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; -import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; /** * @@ -199,19 +187,19 @@ //ciclo for nel set di currentCluster, ovvero il set nel mezzo del buffer for(Cluster cluster : currentClusters){ - if((HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")== posx) && (HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ + if((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")== posx) && (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ if(ClusterChecker(cluster)){ int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy() + " " + HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")+" " +HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getCorrectedEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ writer.append("\n"); - SeedHistograms.get(id-1).fill(HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy()); + SeedHistograms.get(id-1).fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); ClustHistograms.get(id-1).fill(cluster.getEnergy()); } @@ -252,7 +240,7 @@ for(Cluster currentcluster : currentList){ if(currentcluster!= cluster){ //if there is a cluster in the buffer that is in the considered radius in a time window lower than expected, the loop is brocken and the analyzed cluster is not good - if(!((HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("ix") < posx-radius || HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("ix")> posx+radius)&& (HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("iy")< posy-radius || HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(HPSEcalCluster.getSeedHit(cluster).getTime()-HPSEcalCluster.getSeedHit(currentcluster).getTime())<timeDifference){ + if(!((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") < posx-radius || cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posx+radius)&& (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")< posy-radius || cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getCalorimeterHits().get(0).getTime()-cluster.getCalorimeterHits().get(0).getTime())<timeDifference){ check=false; break loops; } @@ -275,8 +263,8 @@ public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix"); - y= HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/ReconDataPos.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/ReconDataPos.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/ReconDataPos.java Tue Jan 6 12:54:22 2015 @@ -6,30 +6,19 @@ package org.hps.users.luca; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; + +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; - - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; + +import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; +import org.lcsim.event.ReconstructedParticle; +import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; -import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; -import org.lcsim.event.ReconstructedParticle; /** * @@ -171,7 +160,7 @@ int id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy() + " " + cluster.getSize() + " " + HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy() + " " + HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")+" " +HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")+ "\n"); + writer.append(id + " " + cluster.getEnergy() + " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getCorrectedEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")+ "\n"); } catch(IOException e ){System.err.println("Error writing to output for event display");} @@ -237,19 +226,19 @@ //ciclo for nel set di currentCluster, ovvero il set nel mezzo del buffer for(Cluster cluster : currentClusters){ - if((HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")== posx) && (HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")==posy )){ + if((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")== posx) && (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")==posy )){ if(ClusterChecker(cluster)){ int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy() + " " + HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix")+" " +HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getCorrectedEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ writer.append("\n"); - SeedHistograms.get(id-1).fill(HPSEcalCluster.getSeedHit(cluster).getCorrectedEnergy()); + SeedHistograms.get(id-1).fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy()); ClustHistograms.get(id-1).fill(cluster.getEnergy()); } @@ -290,7 +279,7 @@ for(Cluster currentcluster : currentList){ if(currentcluster!= cluster){ //if there is a cluster in the buffer that is in the considered radius in a time window lower than expected, the loop is brocken and the analyzed cluster is not good - if(!((HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("ix") < posx-radius || HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("ix")> posx+radius)&& (HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("iy")< posy-radius || HPSEcalCluster.getSeedHit(currentcluster).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(HPSEcalCluster.getSeedHit(cluster).getTime()-HPSEcalCluster.getSeedHit(currentcluster).getTime())<timeDifference){ + if(!((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") < posx-radius || cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posx+radius)&& (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")< posy-radius || cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getCalorimeterHits().get(0).getTime()-cluster.getCalorimeterHits().get(0).getTime())<timeDifference){ check=false; break loops; } @@ -313,8 +302,8 @@ public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("ix"); - y= HPSEcalCluster.getSeedHit(cluster).getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/TriggerAna.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/TriggerAna.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/TriggerAna.java Tue Jan 6 12:54:22 2015 @@ -5,30 +5,17 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; + import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; - +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; - -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; /** @@ -43,7 +30,7 @@ int TotalCluster=0; double timeDifference; double energyThreshold=0; - private LinkedList<ArrayList<HPSEcalCluster>> clusterBuffer; + private LinkedList<ArrayList<Cluster>> clusterBuffer; protected String clusterCollectionName = "EcalClusters"; //AIDA aida = AIDA.defaultInstance(); @@ -91,12 +78,12 @@ public void startOfData(){ //initialize the clusterbuffer - clusterBuffer= new LinkedList<ArrayList<HPSEcalCluster>>(); + clusterBuffer= new LinkedList<ArrayList<Cluster>>(); //populate the clusterbuffer with (2*clusterWindow + 1) // empty events, representing the fact that the first few events will not have any events in the past portion of the buffer int bufferSize=(2*clusterWindow)+1; for(int i = 0;i<bufferSize; i++){ - clusterBuffer.add(new ArrayList<HPSEcalCluster>(0)); + clusterBuffer.add(new ArrayList<Cluster>(0)); } @@ -140,14 +127,14 @@ @Override public void process (EventHeader event){ - /* if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusterList =event.get(HPSEcalCluster.class,clusterCollectionName ); - for(HPSEcalCluster cluster : clusterList){ + /* if(event.hasCollection(Cluster.class, "EcalClusters")) { + List<Cluster> clusterList =event.get(Cluster.class,clusterCollectionName ); + for(Cluster cluster : clusterList){ if(cluster.getEnergy()>energyThreshold){ int idd=getCrystal(cluster); try{ - writer3.append(idd + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getSeedHit().getIdentifierFieldValue("ix")+" " +cluster.getSeedHit().getIdentifierFieldValue("iy")+"\n"); + writer3.append(idd + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")+"\n"); } catch(IOException e ){System.err.println("Error writing to output for event display");} } @@ -158,20 +145,20 @@ //get the clusters from the event IF they are triggered if(TriggerDriver.triggerBit()){ - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusterList =event.get(HPSEcalCluster.class,clusterCollectionName ); + if(event.hasCollection(Cluster.class, "EcalClusters")) { + List<Cluster> clusterList =event.get(Cluster.class,clusterCollectionName ); //put the clusters in the arraylist - for(HPSEcalCluster cluster : clusterList){ + for(Cluster cluster : clusterList){ // clusterEne.fill(cluster.getEnergy()); TotalCluster++; int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getSeedHit().getIdentifierFieldValue("ix")+" " +cluster.getSeedHit().getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ @@ -191,10 +178,10 @@ } - public int getCrystal (HPSEcalCluster cluster){ + public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*cluster.getSeedHit().getIdentifierFieldValue("ix"); - y= cluster.getSeedHit().getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/TriggerAnaFEE.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/TriggerAnaFEE.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/TriggerAnaFEE.java Tue Jan 6 12:54:22 2015 @@ -5,30 +5,17 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; + import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; - +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; - -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; /** @@ -43,7 +30,7 @@ int TotalCluster=0; double timeDifference; double energyThreshold=0; - private LinkedList<ArrayList<HPSEcalCluster>> clusterBuffer; + private LinkedList<ArrayList<Cluster>> clusterBuffer; protected String clusterCollectionName = "EcalClusters"; //AIDA aida = AIDA.defaultInstance(); @@ -88,12 +75,12 @@ public void startOfData(){ //initialize the clusterbuffer - clusterBuffer= new LinkedList<ArrayList<HPSEcalCluster>>(); + clusterBuffer= new LinkedList<ArrayList<Cluster>>(); //populate the clusterbuffer with (2*clusterWindow + 1) // empty events, representing the fact that the first few events will not have any events in the past portion of the buffer int bufferSize=(2*clusterWindow)+1; for(int i = 0;i<bufferSize; i++){ - clusterBuffer.add(new ArrayList<HPSEcalCluster>(0)); + clusterBuffer.add(new ArrayList<Cluster>(0)); } @@ -141,20 +128,20 @@ //get the clusters from the event IF they are triggered if(TriggerDriver.triggerBit()){ - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusterList =event.get(HPSEcalCluster.class,clusterCollectionName ); + if(event.hasCollection(Cluster.class, "EcalClusters")) { + List<Cluster> clusterList =event.get(Cluster.class,clusterCollectionName ); - for(HPSEcalCluster cluster : clusterList){ + for(Cluster cluster : clusterList){ // clusterEne.fill(cluster.getEnergy()); TotalCluster++; int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getSeedHit().getIdentifierFieldValue("ix")+" " +cluster.getSeedHit().getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ @@ -180,10 +167,10 @@ - public int getCrystal (HPSEcalCluster cluster){ + public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*cluster.getSeedHit().getIdentifierFieldValue("ix"); - y= cluster.getSeedHit().getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/TriggerTest.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/TriggerTest.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/TriggerTest.java Tue Jan 6 12:54:22 2015 @@ -3,11 +3,13 @@ //import hep.aida.ITupleColumn.String; import hep.aida.IHistogram1D; -import org.lcsim.util.aida.AIDA; + import java.util.List; + import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; // the class has to be derived from the driver class Modified: java/trunk/users/src/main/java/org/hps/users/luca/TruthReader.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/TruthReader.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/TruthReader.java Tue Jan 6 12:54:22 2015 @@ -6,29 +6,15 @@ package org.hps.users.luca; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; -import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; -import org.lcsim.event.SimCalorimeterHit; -import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; -import org.lcsim.util.Driver; -import hep.aida.*; import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; +import java.io.IOException; +import java.util.List; + +import org.lcsim.event.EventHeader; +import org.lcsim.event.SimCalorimeterHit; +import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; /** * This driver is supposed to read the truth information out of a SLIC output about the energy deposition in a given crystal * @author Luca Modified: java/trunk/users/src/main/java/org/hps/users/luca/myTriggerDriver.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/myTriggerDriver.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/myTriggerDriver.java Tue Jan 6 12:54:22 2015 @@ -10,19 +10,18 @@ import hep.aida.IHistogram1D; import hep.aida.IHistogram2D; + import java.io.IOException; - import java.io.PrintWriter; import java.util.ArrayList; import java.util.EnumSet; import java.util.LinkedList; import java.util.List; import java.util.Queue; + import org.hps.readout.ecal.ClockSingleton; import org.hps.readout.ecal.TriggerDriver; - import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; @@ -72,8 +71,8 @@ protected String clusterCollectionName = "EcalClusters"; // FIFO queues of lists of clusters in each ECal half. // Each list corresponds to one readout cycle. - private Queue<List<HPSEcalCluster>> topClusterQueue = null; - private Queue<List<HPSEcalCluster>> botClusterQueue = null; + private Queue<List<Cluster>> topClusterQueue = null; + private Queue<List<Cluster>> botClusterQueue = null; PrintWriter pairWriter; private enum Flag { @@ -286,13 +285,13 @@ @Override public void startOfData() { //initialize queues and fill with empty lists - topClusterQueue = new LinkedList<List<HPSEcalCluster>>(); - botClusterQueue = new LinkedList<List<HPSEcalCluster>>(); + topClusterQueue = new LinkedList<List<Cluster>>(); + botClusterQueue = new LinkedList<List<Cluster>>(); for (int i = 0; i < 2 * pairCoincidence + 1; i++) { - topClusterQueue.add(new ArrayList<HPSEcalCluster>()); + topClusterQueue.add(new ArrayList<Cluster>()); } for (int i = 0; i < pairCoincidence + 1; i++) { - botClusterQueue.add(new ArrayList<HPSEcalCluster>()); + botClusterQueue.add(new ArrayList<Cluster>()); } super.startOfData(); if (clusterCollectionName == null) { @@ -310,19 +309,19 @@ @Override public void process(EventHeader event) { - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { // this needs to run every readout cycle whether or not trigger is live - updateClusterQueues(event.get(HPSEcalCluster.class, clusterCollectionName)); + updateClusterQueues(event.get(Cluster.class, clusterCollectionName)); if (pairWriter != null) { - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); - for (HPSEcalCluster[] pair : clusterPairs) { + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); + for (Cluster[] pair : clusterPairs) { pairWriter.format("%d\t", ClockSingleton.getClock()); - for (HPSEcalCluster cluster : pair) { - pairWriter.format("%f\t", cluster.getSeedHit().getTime()); - pairWriter.format("%f\t", cluster.getSeedHit().getRawEnergy()); - pairWriter.format("%d\t", cluster.getSeedHit().getIdentifierFieldValue("ix")); - pairWriter.format("%d\t", cluster.getSeedHit().getIdentifierFieldValue("iy")); + for (Cluster cluster : pair) { + pairWriter.format("%f\t", cluster.getCalorimeterHits().get(0).getTime()); + pairWriter.format("%f\t", cluster.getCalorimeterHits().get(0).getRawEnergy()); + pairWriter.format("%d\t", cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")); + pairWriter.format("%d\t", cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); pairWriter.format("%d\t", cluster.getSize()); pairWriter.format("%f\t", cluster.getEnergy()); pairWriter.format("%f\t", getClusterAngle(cluster)); @@ -339,7 +338,7 @@ @Override protected boolean triggerDecision(EventHeader event) { // Get the list of raw ECal hits. - if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + if (event.hasCollection(Cluster.class, clusterCollectionName)) { return testTrigger(); } else { return false; @@ -349,22 +348,22 @@ public boolean testTrigger() { boolean trigger = false; - List<HPSEcalCluster[]> clusterPairs = getClusterPairsTopBot(); + List<Cluster[]> clusterPairs = getClusterPairsTopBot(); //--- Apply Trigger Cuts ---// // Iterate through all cluster pairs present in the event. If at least // one of the cluster pairs satisfies all of the trigger conditions, // a trigger signal is sent to all other detectors. - for (HPSEcalCluster[] clusterPair : clusterPairs) { + for (Cluster[] clusterPair : clusterPairs) { EnumSet<Flag> bits = EnumSet.noneOf(Flag.class); if (outputStream != null) { outputStream.printf("Event %d: cluster pair (energy %f in quadrant %d (%s), energy %f in quadrant %d (%s))\n", ClockSingleton.getClock(), - clusterPair[0].getEnergy(), ECalUtils.getQuadrant(clusterPair[0]), clusterPair[0].getSeedHit().getPositionVec().toString(), - clusterPair[1].getEnergy(), ECalUtils.getQuadrant(clusterPair[1]), clusterPair[1].getSeedHit().getPositionVec().toString()); + clusterPair[0].getEnergy(), ECalUtils.getQuadrant(clusterPair[0]), clusterPair[0].getCalorimeterHits().get(0).getPositionVec().toString(), + clusterPair[1].getEnergy(), ECalUtils.getQuadrant(clusterPair[1]), clusterPair[1].getCalorimeterHits().get(0).getPositionVec().toString()); } allPairs++; @@ -477,9 +476,9 @@ } trigger = true; - for (HPSEcalCluster cluster : clusterPair) { - int ix = cluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = cluster.getSeedHit().getIdentifierFieldValue("iy"); + for (Cluster cluster : clusterPair) { + int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); trigClusterSeeds.fill(ix - 0.5 * Math.signum(ix), iy); } } @@ -518,19 +517,19 @@ writer.close(); } - protected void updateClusterQueues(List<HPSEcalCluster> ecalClusters) { - ArrayList<HPSEcalCluster> topClusterList = new ArrayList<HPSEcalCluster>(); - ArrayList<HPSEcalCluster> botClusterList = new ArrayList<HPSEcalCluster>(); - for (HPSEcalCluster ecalCluster : ecalClusters) { -// System.out.format("add cluster\t%f\t%d\n", ecalCluster.getSeedHit().getTime(), ecalCluster.getSeedHit().getIdentifierFieldValue("iy")); - if (ecalCluster.getSeedHit().getIdentifierFieldValue("iy") > 0) { + protected void updateClusterQueues(List<Cluster> ecalClusters) { + ArrayList<Cluster> topClusterList = new ArrayList<Cluster>(); + ArrayList<Cluster> botClusterList = new ArrayList<Cluster>(); + for (Cluster ecalCluster : ecalClusters) { +// System.out.format("add cluster\t%f\t%d\n", ecalCluster.getCalorimeterHits().get(0).getTime(), ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); + if (ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy") > 0) { topClusterList.add(ecalCluster); } else { botClusterList.add(ecalCluster); } - int ix = ecalCluster.getSeedHit().getIdentifierFieldValue("ix"); - int iy = ecalCluster.getSeedHit().getIdentifierFieldValue("iy"); + int ix = ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + int iy = ecalCluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); clusterSeeds.fill(ix - 0.5 * Math.signum(ix), iy); } @@ -546,23 +545,23 @@ * @param ecalClusters : List of ECal clusters * @return list of cluster pairs */ - protected List<HPSEcalCluster[]> getClusterPairsTopBot() { + protected List<Cluster[]> getClusterPairsTopBot() { // Make a list of cluster pairs - List<HPSEcalCluster[]> clusterPairs = new ArrayList<HPSEcalCluster[]>(); + List<Cluster[]> clusterPairs = new ArrayList<Cluster[]>(); // Loop over all top-bottom pairs of clusters; higher-energy cluster goes first in the pair // To apply pair coincidence time, use only bottom clusters from the // readout cycle pairCoincidence readout cycles ago, and top clusters // from all 2*pairCoincidence+1 previous readout cycles - for (HPSEcalCluster botCluster : botClusterQueue.element()) { /////da come capisco sembra un for su tutti i cluster solo della testa della queue..e gli altri? - for (List<HPSEcalCluster> topClusters : topClusterQueue) { - for (HPSEcalCluster topCluster : topClusters) { -// System.out.format("%f\t%f\n", topCluster.getSeedHit().getTime(), botCluster.getSeedHit().getTime()); + for (Cluster botCluster : botClusterQueue.element()) { /////da come capisco sembra un for su tutti i cluster solo della testa della queue..e gli altri? + for (List<Cluster> topClusters : topClusterQueue) { + for (Cluster topCluster : topClusters) { +// System.out.format("%f\t%f\n", topCluster.getCalorimeterHits().get(0).getTime(), botCluster.getCalorimeterHits().get(0).getTime()); if (topCluster.getEnergy() > botCluster.getEnergy()) { - HPSEcalCluster[] clusterPair = {topCluster, botCluster}; + Cluster[] clusterPair = {topCluster, botCluster}; clusterPairs.add(clusterPair); } else { - HPSEcalCluster[] clusterPair = {botCluster, topCluster}; + Cluster[] clusterPair = {botCluster, topCluster}; clusterPairs.add(clusterPair); } } @@ -578,7 +577,7 @@ * @param clusterPair : pair of clusters * @return true if opposite quadrants, false otherwise */ - protected boolean oppositeQuadrantsCut(HPSEcalCluster[] clusterPair) { + protected boolean oppositeQuadrantsCut(Cluster[] clusterPair) { int quad1 = ECalUtils.getQuadrant(clusterPair[0]); int quad2 = ECalUtils.getQuadrant(clusterPair[1]); @@ -598,7 +597,7 @@ * @param clusterPair: pair of clusters * @return true if pair passes cut, false if fail */ - protected boolean clusterHitCount(HPSEcalCluster[] clusterPair) { + protected boolean clusterHitCount(Cluster[] clusterPair) { return (clusterPair[0].getCalorimeterHits().size() >= minHitCount && clusterPair[1].getCalorimeterHits().size() >= minHitCount); } @@ -610,7 +609,7 @@ * @param clusterPair : pair of clusters * @return true if a pair is found, false otherwise */ - protected boolean clusterECut(HPSEcalCluster[] clusterPair) { + protected boolean clusterECut(Cluster[] clusterPair) { return (clusterPair[0].getEnergy() < clusterEnergyHigh && clusterPair[1].getEnergy() < clusterEnergyHigh && clusterPair[0].getEnergy() > clusterEnergyLow @@ -636,7 +635,7 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - protected boolean energyDifference(HPSEcalCluster[] clusterPair) { + protected boolean energyDifference(Cluster[] clusterPair) { double clusterEDifference = clusterPair[0].getEnergy() - clusterPair[1].getEnergy(); return (clusterEDifference < energyDifferenceThreshold); @@ -649,8 +648,8 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - protected boolean energyDistanceCut(HPSEcalCluster[] clusterPair) { - HPSEcalCluster lowEnergyCluster = clusterPair[1]; + protected boolean energyDistanceCut(Cluster[] clusterPair) { + Cluster lowEnergyCluster = clusterPair[1]; // Calculate its position double lowEClusterDistance = getClusterDistance(clusterPair[1]); @@ -666,23 +665,23 @@ * @param clusterPair : pair of clusters * @return true if pair is found, false otherwise */ - protected boolean coplanarityCut(HPSEcalCluster[] clusterPair) { + protected boolean coplanarityCut(Cluster[] clusterPair) { return (Math.abs(pairUncoplanarity(clusterPair)) < maxCoplanarityAngle); } - protected double pairUncoplanarity(HPSEcalCluster[] clusterPair) { // Find the angle between clusters in the pair + protected double pairUncoplanarity(Cluster[] clusterPair) { // Find the angle between clusters in the pair double cluster1Angle = (getClusterAngle(clusterPair[0]) + 180.0) % 180.0; double cluster2Angle = (getClusterAngle(clusterPair[1]) + 180.0) % 180.0; return cluster2Angle - cluster1Angle; } - protected double getClusterAngle(HPSEcalCluster cluster) { //returns angle in range of -180 to 180 - double position[] = cluster.getSeedHit().getPosition(); + protected double getClusterAngle(Cluster cluster) { //returns angle in range of -180 to 180 + double position[] = cluster.getCalorimeterHits().get(0).getPosition(); return Math.toDegrees(Math.atan2(position[1], position[0] - originX)); } - protected double getClusterDistance(HPSEcalCluster cluster) { - return Math.hypot(cluster.getSeedHit().getPosition()[0] - originX, cluster.getSeedHit().getPosition()[1]); + protected double getClusterDistance(Cluster cluster) { + return Math.hypot(cluster.getCalorimeterHits().get(0).getPosition()[0] - originX, cluster.getCalorimeterHits().get(0).getPosition()[1]); } } Modified: java/trunk/users/src/main/java/org/hps/users/luca/mycluster.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/mycluster.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/mycluster.java Tue Jan 6 12:54:22 2015 @@ -6,26 +6,14 @@ package org.hps.users.luca; import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; -import java.io.IOException; - import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; +import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; -import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; /** * @@ -100,16 +88,16 @@ } - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters"); + if(event.hasCollection(Cluster.class, "EcalClusters")) { + List<Cluster> clusters = event.get(Cluster.class, "EcalClusters"); if(clusters.size() > 0) { - for(HPSEcalCluster cluster : clusters){ + for(Cluster cluster : clusters){ eneClusterPlot.fill(cluster.getEnergy()); - eneSeedPlot.fill(cluster.getSeedHit().getRawEnergy()); + eneSeedPlot.fill(cluster.getCalorimeterHits().get(0).getRawEnergy()); if(cluster.getEnergy()>=1.4){ eneClusterPlotcut.fill(cluster.getEnergy()); - eneSeedPlotcut.fill(cluster.getSeedHit().getRawEnergy()); + eneSeedPlotcut.fill(cluster.getCalorimeterHits().get(0).getRawEnergy()); } } Modified: java/trunk/users/src/main/java/org/hps/users/luca/mycluster2.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/mycluster2.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/mycluster2.java Tue Jan 6 12:54:22 2015 @@ -5,31 +5,14 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; -import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; + import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; -import hep.aida.IHistogram3D; -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; -import org.lcsim.event.MCParticle; /** * @@ -41,8 +24,8 @@ int Clustercount=0; protected String clusterCollectionName = "EcalClusters"; - ArrayList<HPSEcalCluster> ClusterQueue; - List<HPSEcalCluster> goodCluster; + ArrayList<Cluster> ClusterQueue; + List<Cluster> goodCluster; private FileWriter writer; //private FileWriter writer2; @@ -82,8 +65,8 @@ public void startOfData(){ - ClusterQueue=new ArrayList<HPSEcalCluster>(); - goodCluster = new ArrayList<HPSEcalCluster>(); + ClusterQueue=new ArrayList<Cluster>(); + goodCluster = new ArrayList<Cluster>(); try{ @@ -121,9 +104,9 @@ - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { + if(event.hasCollection(Cluster.class, "EcalClusters")) { - fillQueue(event.get(HPSEcalCluster.class, clusterCollectionName)); + fillQueue(event.get(Cluster.class, clusterCollectionName)); } @@ -132,8 +115,8 @@ /** * Puts cluster collected from events in the ClusterQueue */ - public void fillQueue (List<HPSEcalCluster> ecalClusters){ - for(HPSEcalCluster cluster : ecalClusters) + public void fillQueue (List<Cluster> ecalClusters){ + for(Cluster cluster : ecalClusters) { ClusterQueue.add(cluster); @@ -156,7 +139,7 @@ for(int i=0; i< ClusterQueue.size(); i++){ - if(ClusterQueue.get(i).getSeedHit().getIdentifierFieldValue("ix")== posx && ClusterQueue.get(i).getSeedHit().getIdentifierFieldValue("iy")==posy && ClusterQueue.get(i).getEnergy()>1.6){ + if(ClusterQueue.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("ix")== posx && ClusterQueue.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("iy")==posy && ClusterQueue.get(i).getEnergy()>1.6){ // System.out.println("sono nel primo if, ovvero ci sono cluster dove voglio io"); if(ClusterChecker(i)){ goodCluster.add(ClusterQueue.get(i));} @@ -172,11 +155,11 @@ int id; - for(HPSEcalCluster cluster :goodCluster){ + for(Cluster cluster :goodCluster){ Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getSeedHit().getIdentifierFieldValue("ix") + " " + cluster.getSeedHit().getIdentifierFieldValue("iy")+ " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " "); + writer.append(id + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")+ " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " "); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ @@ -202,7 +185,7 @@ for (int i=(pos-5);i<pos+5;i++){ ///controlla che non esca da array if(i>=0 && i < ClusterQueue.size()){ - deltaT=Math.abs(ClusterQueue.get(i).getSeedHit().getTime()-ClusterQueue.get(pos).getSeedHit().getTime()); + deltaT=Math.abs(ClusterQueue.get(i).getCalorimeterHits().get(0).getTime()-ClusterQueue.get(pos).getCalorimeterHits().get(0).getTime()); ///controlla la differenza temporale che deve essere >80ns, se è maggiore, check=true, se è minore, checka la posizione if(deltaT<80) {check=PositionChecker(i);} @@ -218,9 +201,9 @@ boolean test=true; //controllo su posizione orizzontale - if(ClusterQueue.get(i).getSeedHit().getIdentifierFieldValue("ix")< posx-2 || ClusterQueue.get(i).getSeedHit().getIdentifierFieldValue("ix")> posx+2){ + if(ClusterQueue.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("ix")< posx-2 || ClusterQueue.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posx+2){ //se orizzonale soddisfatto, controllo verticale - if(ClusterQueue.get(i).getSeedHit().getIdentifierFieldValue("iy")< posy-2 || ClusterQueue.get(i).getSeedHit().getIdentifierFieldValue("ix")> posy+2){ + if(ClusterQueue.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("iy")< posy-2 || ClusterQueue.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posy+2){ test= true; } @@ -232,10 +215,10 @@ return test; } - public int getCrystal (HPSEcalCluster cluster){ + public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*cluster.getSeedHit().getIdentifierFieldValue("ix"); - y= cluster.getSeedHit().getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/luca/mycluster3.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/luca/mycluster3.java (original) +++ java/trunk/users/src/main/java/org/hps/users/luca/mycluster3.java Tue Jan 6 12:54:22 2015 @@ -5,30 +5,16 @@ */ package org.hps.users.luca; -import hep.aida.IHistogram1D; -import hep.aida.IHistogram2D; +import java.io.FileWriter; import java.io.IOException; -import java.util.*; -import java.io.PrintWriter; import java.util.ArrayList; -import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import org.hps.readout.ecal.ClockSingleton; -import org.hps.readout.ecal.TriggerDriver; - -import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; - + +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; -import org.lcsim.geometry.Detector; -import org.lcsim.util.aida.AIDA; import org.lcsim.util.Driver; -import hep.aida.*; - -import java.io.FileWriter; -import org.lcsim.event.CalorimeterHit; /** @@ -43,7 +29,7 @@ int TotalCluster=0; double timeDifference; double energyThreshold=0; - private LinkedList<ArrayList<HPSEcalCluster>> clusterBuffer; + private LinkedList<ArrayList<Cluster>> clusterBuffer; protected String clusterCollectionName = "EcalClusters"; //AIDA aida = AIDA.defaultInstance(); @@ -91,12 +77,12 @@ public void startOfData(){ //initialize the clusterbuffer - clusterBuffer= new LinkedList<ArrayList<HPSEcalCluster>>(); + clusterBuffer= new LinkedList<ArrayList<Cluster>>(); //populate the clusterbuffer with (2*clusterWindow + 1) // empty events, representing the fact that the first few events will not have any events in the past portion of the buffer int bufferSize=(2*clusterWindow)+1; for(int i = 0;i<bufferSize; i++){ - clusterBuffer.add(new ArrayList<HPSEcalCluster>(0)); + clusterBuffer.add(new ArrayList<Cluster>(0)); } @@ -155,14 +141,14 @@ //get the clusters from the event // if(TriggerDriver.triggerBit()){ //if they have triggered! - if(event.hasCollection(HPSEcalCluster.class, "EcalClusters")) { + if(event.hasCollection(Cluster.class, "EcalClusters")) { - List<HPSEcalCluster> clusterList =event.get(HPSEcalCluster.class,clusterCollectionName ); + List<Cluster> clusterList =event.get(Cluster.class,clusterCollectionName ); //put the clusters in the arraylist - ArrayList<HPSEcalCluster> clusterSet = new ArrayList<HPSEcalCluster>(); - for(HPSEcalCluster cluster : clusterList){ + ArrayList<Cluster> clusterSet = new ArrayList<Cluster>(); + for(Cluster cluster : clusterList){ // clusterEne.fill(cluster.getEnergy()); TotalCluster++; clusterSet.add(cluster); @@ -190,7 +176,7 @@ */ public void ClusterAnalyzer(){ //get the cluster list at the current time in the buffer -ArrayList<HPSEcalCluster> currentClusters = clusterBuffer.get(clusterWindow+1); +ArrayList<Cluster> currentClusters = clusterBuffer.get(clusterWindow+1); ///cerca i cluster nella posizione che ci interessa poi chiama la funzione che decide se sono "isolati" @@ -201,20 +187,20 @@ posy=y; //ciclo for nel set di currentCluster, ovvero il set nel mezzo del buffer - for(HPSEcalCluster cluster : currentClusters){ - if((cluster.getSeedHit().getIdentifierFieldValue("ix")== posx) && (cluster.getSeedHit().getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ + for(Cluster cluster : currentClusters){ + if((cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")== posx) && (cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")==posy )&& (cluster.getEnergy() > energyThreshold)){ if(ClusterChecker(cluster)){ int id; Clustercount++; id=getCrystal(cluster); try{ - writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getSeedHit().getRawEnergy() + " " + cluster.getSeedHit().getIdentifierFieldValue("ix")+" " +cluster.getSeedHit().getIdentifierFieldValue("iy")); + writer.append(id + " " + cluster.getEnergy()+ " " + cluster.getSize() + " " + cluster.getCalorimeterHits().get(0).getRawEnergy() + " " + cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")+" " +cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")); /*for(CalorimeterHit hit : cluster.getCalorimeterHits()) {writer.append(hit.getRawEnergy()+ " "); }*/ writer.append("\n"); - // SeedHistograms.get(id-1).fill(cluster.getSeedHit().getRawEnergy()); + // SeedHistograms.get(id-1).fill(cluster.getCalorimeterHits().get(0).getRawEnergy()); // ClustHistograms.get(id-1).fill(cluster.getEnergy()); } @@ -242,19 +228,19 @@ * @return */ -public boolean ClusterChecker (HPSEcalCluster cluster){ +public boolean ClusterChecker (Cluster cluster){ //System.out.println("Sono nel clustercheck! \n"); boolean check=true; //ciclo sulle liste del buffer loops: - for(ArrayList<HPSEcalCluster> currentList : clusterBuffer){ + for(ArrayList<Cluster> currentList : clusterBuffer){ //ciclo sui cluster della lista corrente - for(HPSEcalCluster currentcluster : currentList){ + for(Cluster currentcluster : currentList){ if(currentcluster!= cluster){ //if there is a cluster in the buffer that is in the considered radius in a time window lower than expected, the loop is brocken and the analyzed cluster is not good - if(!((currentcluster.getSeedHit().getIdentifierFieldValue("ix") < posx-radius || currentcluster.getSeedHit().getIdentifierFieldValue("ix")> posx+radius)&& (currentcluster.getSeedHit().getIdentifierFieldValue("iy")< posy-radius || currentcluster.getSeedHit().getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getSeedHit().getTime()-currentcluster.getSeedHit().getTime())<timeDifference){ + if(!((currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix") < posx-radius || currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix")> posx+radius)&& (currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")< posy-radius || currentcluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy")> posy+radius))&& Math.abs(cluster.getCalorimeterHits().get(0).getTime()-currentcluster.getCalorimeterHits().get(0).getTime())<timeDifference){ check=false; break loops; } @@ -275,10 +261,10 @@ - public int getCrystal (HPSEcalCluster cluster){ + public int getCrystal (Cluster cluster){ int x,y,id=0; - x= (-1)*cluster.getSeedHit().getIdentifierFieldValue("ix"); - y= cluster.getSeedHit().getIdentifierFieldValue("iy"); + x= (-1)*cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + y= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); if(y==5){ if(x<0) Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java (original) +++ java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java Tue Jan 6 12:54:22 2015 @@ -16,6 +16,7 @@ import org.hps.recon.tracking.HelixConverter; import org.hps.recon.tracking.StraightLineTrack; import org.hps.recon.tracking.TrackUtils; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.Track; import org.lcsim.fit.helicaltrack.HelicalTrackFit; @@ -133,8 +134,8 @@ aida.histogram2D("Extrapolated X: Extend vs SLT").fill(extendAtConverter.y(), slt.getYZAtX(BeamlineConstants.HARP_POSITION_TESTRUN)[0]); aida.histogram2D("Extrapolated Y: Extend vs SLT").fill(extendAtConverter.z(), slt.getYZAtX(BeamlineConstants.HARP_POSITION_TESTRUN)[1]); - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); - HPSEcalCluster clust = findClosestCluster(posAtEcal, clusters); + List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); + Cluster clust = findClosestCluster(posAtEcal, clusters); if (clust != null) { // System.out.println("Cluster Position = ("+clust.getPosition()[0]+","+clust.getPosition()[1]+","+clust.getPosition()[2]+")"); @@ -456,10 +457,10 @@ style.statisticsBoxStyle().setVisible(true); } - private HPSEcalCluster findClosestCluster(Hep3Vector posonhelix, List<HPSEcalCluster> clusters) { - HPSEcalCluster closest = null; + private Cluster findClosestCluster(Hep3Vector posonhelix, List<Cluster> clusters) { + Cluster closest = null; double minDist = 9999; - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { double[] clPos = cluster.getPosition(); double clEne = cluster.getEnergy(); // double dist = Math.sqrt(Math.pow(clPos[0] - posonhelix.y(), 2) + Math.pow(clPos[1] - posonhelix.z(), 2)); //coordinates!!! Modified: java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java (original) +++ java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java Tue Jan 6 12:54:22 2015 @@ -15,6 +15,8 @@ import java.util.List; import java.util.Map; +import org.hps.recon.tracking.TrackUtils; +import org.hps.recon.tracking.TrackerHitUtils; import org.lcsim.detector.ITransform3D; import org.lcsim.detector.solids.Box; import org.lcsim.detector.solids.Point3D; @@ -30,10 +32,6 @@ import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA; - -import org.hps.recon.ecal.HPSEcalCluster; -import org.hps.recon.tracking.TrackUtils; -import org.hps.recon.tracking.TrackerHitUtils; /** * Analysis driver used to calculate the hit efficiency of the SVT. @@ -250,14 +248,14 @@ if(tracks.size() >= 2 ) return; // Get the list of Ecal clusters from the event - List<HPSEcalCluster> ecalClusters = event.get(HPSEcalCluster.class, ecalClustersCollectionName); + //List<Cluster> ecalClusters = event.get(Cluster.class, ecalClustersCollectionName); for(Track track : tracks){ ecalClusterTrackMatch = false; // Check if there is an Ecal cluster in the same detector volume as the track - /*for(HPSEcalCluster ecalCluster : ecalClusters){ + /*for(Cluster ecalCluster : ecalClusters){ if(ecalCluster.getPosition()[1] > 0 && trkUtil.getZ0() > 0){ ecalClusterTrackMatch = true; break; Modified: java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java (original) +++ java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java Tue Jan 6 12:54:22 2015 @@ -10,8 +10,8 @@ import java.util.List; import java.util.Map; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.tracking.TrackUtils; +import org.lcsim.event.Cluster; //--- org.lcsim ---// import org.lcsim.event.EventHeader; import org.lcsim.event.RawTrackerHit; @@ -264,7 +264,7 @@ List<SeedTrack> tracks = event.get(SeedTrack.class, trackCollectionName); Map<Hep3Vector,SeedTrack> trackToEcalPosition = new HashMap<Hep3Vector, SeedTrack>(); - Map<SeedTrack, HPSEcalCluster> trackToCluster = new HashMap<SeedTrack, HPSEcalCluster>(); + Map<SeedTrack, Cluster> trackToCluster = new HashMap<SeedTrack, Cluster>(); List<Hep3Vector> ecalPos = new ArrayList<Hep3Vector>(); for(SeedTrack track : tracks){ @@ -318,14 +318,14 @@ ecalPos.add(positionEcal); } - if(!event.hasCollection(HPSEcalCluster.class, "EcalClusters")) return; - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters"); + if(!event.hasCollection(Cluster.class, "EcalClusters")) return; + List<Cluster> clusters = event.get(Cluster.class, "EcalClusters"); for(Hep3Vector ecalP : ecalPos){ double xdiff = 1000; double ydiff = 1000; - for(HPSEcalCluster cluster : clusters){ + for(Cluster cluster : clusters){ double xd = ecalP.y() - cluster.getPosition()[0]; double yd = ecalP.z() - cluster.getPosition()[1]; if(yd < ydiff){ @@ -338,7 +338,7 @@ aida.histogram2D("XY Difference between Ecal Cluster and Track Position").fill(xdiff, ydiff); } - for(Map.Entry<SeedTrack, HPSEcalCluster> entry : trackToCluster.entrySet()){ + for(Map.Entry<SeedTrack, Cluster> entry : trackToCluster.entrySet()){ double Energy = entry.getValue().getEnergy(); SeedTrack track = entry.getKey(); double pTotal = Math.sqrt(track.getPX()*track.getPX() + track.getPY()*track.getPY() + track.getPZ()*track.getPZ()); @@ -351,7 +351,7 @@ aida.histogram2D("E versus P").fill(Energy, pTotal*1000); } - for(HPSEcalCluster cluster : clusters){ + for(Cluster cluster : clusters){ double[] clusterPosition = cluster.getPosition(); System.out.println("Cluster Position: [" + clusterPosition[0] + ", " + clusterPosition[1] + ", " + clusterPosition[2]+ "]"); Modified: java/trunk/users/src/main/java/org/hps/users/omoreno/TestRunTrackReconEfficiency.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/omoreno/TestRunTrackReconEfficiency.java (original) +++ java/trunk/users/src/main/java/org/hps/users/omoreno/TestRunTrackReconEfficiency.java Tue Jan 6 12:54:22 2015 @@ -11,8 +11,8 @@ import java.util.ArrayList; import java.util.List; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.tracking.TrackUtils; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.GenericObject; import org.lcsim.event.Track; @@ -143,10 +143,10 @@ // First check if the event contains a collection of Ecal clusters. If // it doesn't skip the event. - if(!event.hasCollection(HPSEcalCluster.class, ecalClustersCollectionName)) return; + if(!event.hasCollection(Cluster.class, ecalClustersCollectionName)) return; // Get the list of Ecal clusters in the event - List<HPSEcalCluster> ecalClusters = event.get(HPSEcalCluster.class, ecalClustersCollectionName); + List<Cluster> ecalClusters = event.get(Cluster.class, ecalClustersCollectionName); // Get the list of tracks from the event List<Track> tracks = event.get(Track.class, trackCollectionName); @@ -154,7 +154,7 @@ // If the event has a single Ecal cluster satisfying the threshold cut, // check if there is a track that is well matched to the cluster if(ecalClusters.size() == 1){ - HPSEcalCluster ecalCluster = ecalClusters.get(0); + Cluster ecalCluster = ecalClusters.get(0); // If the cluster is above the energy threshold, then the track should // be findable @@ -246,8 +246,8 @@ } // Match a track to the trigger cluster - HPSEcalCluster matchedCluster = null; - for(HPSEcalCluster ecalCluster : ecalClusters){ + Cluster matchedCluster = null; + for(Cluster ecalCluster : ecalClusters){ if(ecalCluster.getPosition()[1] > 0 && topTrigger){ if(!isClusterMatchedToTrack(ecalCluster, topTracks)){ this.printDebug("Trigger cluster-track match was not found."); @@ -304,14 +304,14 @@ /** * */ - private boolean isClusterWithinWindow(HPSEcalCluster clusterPosition){ + private boolean isClusterWithinWindow(Cluster clusterPosition){ return true; } /** * */ - private boolean isClusterAboveEnergyThreshold(HPSEcalCluster ecalCluster){ + private boolean isClusterAboveEnergyThreshold(Cluster ecalCluster){ if(ecalCluster.getEnergy() > thresholdEnergy) return true; return false; } @@ -319,7 +319,7 @@ /** * */ - private boolean hasClustersInOppositeVolumes(List<HPSEcalCluster> ecalClusters){ + private boolean hasClustersInOppositeVolumes(List<Cluster> ecalClusters){ this.printPosition(ecalClusters.get(0).getPosition()); this.printPosition(ecalClusters.get(1).getPosition()); if((ecalClusters.get(0).getPosition()[1] > 0 && ecalClusters.get(1).getPosition()[1] < 0) @@ -332,7 +332,7 @@ /** * */ - private boolean isClusterMatchedToTrack(HPSEcalCluster cluster, List<Track> tracks){ + private boolean isClusterMatchedToTrack(Cluster cluster, List<Track> tracks){ Hep3Vector clusterPos = new BasicHep3Vector(cluster.getPosition()); double rMax = Double.MAX_VALUE; Track matchedTrack = null; Modified: java/trunk/users/src/main/java/org/hps/users/phansson/FastTrackResidualDriver.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/phansson/FastTrackResidualDriver.java (original) +++ java/trunk/users/src/main/java/org/hps/users/phansson/FastTrackResidualDriver.java Tue Jan 6 12:54:22 2015 @@ -20,10 +20,10 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.detector.identifier.IIdentifier; import org.lcsim.detector.identifier.IIdentifierHelper; import org.lcsim.detector.tracker.silicon.SiSensor; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder; @@ -225,8 +225,8 @@ //Get the calorimeter cluster object used to construct the track - List<HPSEcalCluster> ecal_all_clusters = getAllEcalClustersForFastTracking(event); - //Exit if no clusters found + List<Cluster> ecal_all_clusters = getAllEcalClustersForFastTracking(event); + //Exit if no clusters found if (ecal_all_clusters.size()==0) return; //if ( 1==1 ) return; @@ -442,10 +442,10 @@ -// private List<HPSEcalCluster> getAllEcalClusters(EventHeader event) { +// private List<Cluster> getAllEcalClusters(EventHeader event) { // -// List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalReadoutHits"); -// //List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters"); +// List<Cluster> clusters = event.get(Cluster.class, "EcalReadoutHits"); +// //List<Cluster> clusters = event.get(Cluster.class, "EcalClusters"); // // if ( debug) { // System.out.println("Found " + clusters.size() + " clusters"); @@ -454,18 +454,18 @@ // } - public int[] getCrystalPair(HPSEcalCluster cluster) { + public int[] getCrystalPair(Cluster cluster) { int[] pos = new int[2]; - pos[0] = cluster.getSeedHit().getIdentifierFieldValue("ix"); - pos[1] = cluster.getSeedHit().getIdentifierFieldValue("iy"); - - //System.out.println("cluster ix,iy " + pos[0] + "," + pos[1] + " from pos " + cluster.getSeedHit().getPositionVec().toString()); + pos[0] = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + pos[1] = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); + + //System.out.println("cluster ix,iy " + pos[0] + "," + pos[1] + " from pos " + cluster.getCalorimeterHits().get(0).getPositionVec().toString()); return pos; //getCrystalPair(cluster.getPosition()); } - private List<Integer> getEcalClustersForFastTracking(List<HPSEcalCluster> clusters, String side) { + private List<Integer> getEcalClustersForFastTracking(List<Cluster> clusters, String side) { if(side!="up" && side!="down") { throw new RuntimeException("This ecal side" + side + " do not exist!!"); } @@ -494,7 +494,7 @@ return cls; } - private int selectCluster(List<Integer> ids, List<HPSEcalCluster> clusters) { + private int selectCluster(List<Integer> ids, List<Cluster> clusters) { //need to decide which cluster to take @@ -536,17 +536,12 @@ } - private List<HPSEcalCluster> getAllEcalClustersForFastTracking(EventHeader event) { - - //List<HPSEcalCluster> clusters = new ArrayList<HPSEcalCluster>(); - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters"); - //List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalReadoutHits"); - //List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalCalHits"); + private List<Cluster> getAllEcalClustersForFastTracking(EventHeader event) { + List<Cluster> clusters = event.get(Cluster.class, "EcalClusters"); if ( debug) { System.out.println("Found " + clusters.size() + " EcalClusters"); } - - + return clusters; } Modified: java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java (original) +++ java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java Tue Jan 6 12:54:22 2015 @@ -23,7 +23,6 @@ import org.hps.analysis.ecal.HPSMCParticlePlotsDriver; //===> import org.hps.conditions.deprecated.SvtUtils; import org.hps.readout.ecal.TriggerData; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.tracking.BeamlineConstants; import org.hps.recon.tracking.EventQuality; import org.hps.recon.tracking.HPSTrack; @@ -37,6 +36,7 @@ import org.lcsim.detector.identifier.IIdentifierHelper; import org.lcsim.detector.tracker.silicon.DopedSilicon; import org.lcsim.detector.tracker.silicon.HpsSiSensor; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.GenericObject; import org.lcsim.event.MCParticle; @@ -325,23 +325,23 @@ } - List<HPSEcalCluster> clusters = new ArrayList<HPSEcalCluster>(); - - if(!event.hasCollection(HPSEcalCluster.class, ecalClusterCollectionName)) { + List<Cluster> clusters = new ArrayList<Cluster>(); + + if(!event.hasCollection(Cluster.class, ecalClusterCollectionName)) { if(_debug) { System.out.println(this.getClass().getSimpleName() + ": event doesn't have a ecal cluster collection "); } } else { - clusters = event.get(HPSEcalCluster.class, ecalClusterCollectionName); + clusters = event.get(Cluster.class, ecalClusterCollectionName); if(_debug) { System.out.println(this.getClass().getSimpleName() + ": found " + clusters.size() + " ecal clusters " + event.getEventNumber()); } boolean goodRegion = false; - for(HPSEcalCluster c : clusters) { - int iy = c.getSeedHit().getIdentifierFieldValue("iy"); - int ix = c.getSeedHit().getIdentifierFieldValue("ix"); + for(Cluster c : clusters) { + int iy = c.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); + int ix = c.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); double E = c.getEnergy(); int evtnr = event.getEventNumber(); int clsize = c.getSize(); @@ -525,13 +525,13 @@ * @return clostest cluster. */ - private HPSEcalCluster findEcalCluster(Track trk, List<HPSEcalCluster> clusters) { - HPSEcalCluster matched_cluster = null; + private Cluster findEcalCluster(Track trk, List<Cluster> clusters) { + Cluster matched_cluster = null; double drMin = 9999999.9; double drMax = 9999999.9; double dr; Hep3Vector pos_cl,pos_trk; - for(HPSEcalCluster cluster : clusters) { + for(Cluster cluster : clusters) { pos_cl = new BasicHep3Vector(cluster.getPosition()); pos_trk = TrackUtils.extrapolateTrack(trk,pos_cl.z()); dr = VecOp.sub(pos_cl, pos_trk).magnitude(); @@ -545,7 +545,7 @@ return matched_cluster; } - private void fillTextTuple(MCParticle e, MCParticle p, List<CmpTrack> tracks, Hep3Vector vtxPosParticle, Hep3Vector vtxPos, Hep3Vector vtxPosFr, Hep3Vector vtxPosNonBend, List<HPSEcalCluster> clusters, EventHeader event) throws IOException { + private void fillTextTuple(MCParticle e, MCParticle p, List<CmpTrack> tracks, Hep3Vector vtxPosParticle, Hep3Vector vtxPos, Hep3Vector vtxPosFr, Hep3Vector vtxPosNonBend, List<Cluster> clusters, EventHeader event) throws IOException { if(doPrintBranchInfoLine) { throw new RuntimeException("Need to fill tuple branches first!?"); } @@ -649,7 +649,7 @@ } else printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9); - HPSEcalCluster matched_cluster = findEcalCluster(trk1, clusters); + Cluster matched_cluster = findEcalCluster(trk1, clusters); if(matched_cluster !=null) { double[] pos_cluster = matched_cluster.getPosition(); posAtECal = TrackUtils.extrapolateTrack(trk1,pos_cluster[2]); @@ -816,9 +816,9 @@ else if(clusters.size()<=i) { printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ",-999999.9,-999999,-999999,-999999.,-999999.,-999999.,-999999); } else { - //for(HPSEcalCluster cl : clusters) { - int iy = clusters.get(i).getSeedHit().getIdentifierFieldValue("iy"); - int ix = clusters.get(i).getSeedHit().getIdentifierFieldValue("ix"); + //for(Cluster cl : clusters) { + int iy = clusters.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); + int ix = clusters.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); double pos[] = clusters.get(i).getPosition(); double E = clusters.get(i).getEnergy(); int clsize = clusters.get(i).getSize(); Modified: java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java (original) +++ java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java Tue Jan 6 12:54:22 2015 @@ -17,7 +17,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.detector.identifier.IIdentifier; import org.lcsim.detector.tracker.silicon.ChargeCarrier; import org.lcsim.detector.tracker.silicon.SiSensor; @@ -25,6 +24,7 @@ import org.lcsim.detector.tracker.silicon.SiStrips; import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper; import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.RawTrackerHit; import org.lcsim.event.Track; @@ -208,17 +208,17 @@ return pos; } - private List<HPSEcalCluster> getAllEcalClusters(EventHeader event) { - - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters"); + private List<Cluster> getAllEcalClusters(EventHeader event) { + + List<Cluster> clusters = event.get(Cluster.class, "EcalClusters"); if ( debug) { System.out.println("Found " + clusters.size() + " clusters"); } return clusters; } - private double[] getClusterPosition(HPSEcalCluster cluster) { - CalorimeterHit hit = cluster.getSeedHit(); + private double[] getClusterPosition(Cluster cluster) { + CalorimeterHit hit = cluster.getCalorimeterHits().get(0); //IDDecoder dec = dec.getSubdetector("Ecal").getIDDecoder(); dec.setID(hit.getCellID()); @@ -231,14 +231,14 @@ } - private List<Hep3Vector> getEcalClustersForFastTracking(List<HPSEcalCluster> clusters, String side) { + private List<Hep3Vector> getEcalClustersForFastTracking(List<Cluster> clusters, String side) { if(!side.equalsIgnoreCase("up") && !side.equalsIgnoreCase("down")) { throw new RuntimeException("This ecal side" + side + " do not exist!!"); } List<Hep3Vector> cls = new ArrayList<Hep3Vector>(); boolean save; double [] pos_xy; - for ( HPSEcalCluster cl : clusters) { + for ( Cluster cl : clusters) { save=false; pos_xy = getClusterPosition(cl); if(pos_xy[1]>=0 && side.equalsIgnoreCase("up")) { @@ -262,9 +262,9 @@ } - private List<HPSEcalCluster> getAllEcalClustersForFastTracking(EventHeader event) { - - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters"); + private List<Cluster> getAllEcalClustersForFastTracking(EventHeader event) { + + List<Cluster> clusters = event.get(Cluster.class, "EcalClusters"); if ( debug) { System.out.println("Found " + clusters.size() + " clusters"); } @@ -284,7 +284,7 @@ List<SiTrackerHitStrip1D> trackerHits = getAllHitsInEvent(event); //Get the calorimeter cluster object used to construct the track - List<HPSEcalCluster> ecal_all_clusters = getAllEcalClustersForFastTracking(event); + List<Cluster> ecal_all_clusters = getAllEcalClustersForFastTracking(event); //Exit if no clusters found if (ecal_all_clusters.size()==0) return; Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java (original) +++ java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java Tue Jan 6 12:54:22 2015 @@ -14,7 +14,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.tracking.BeamlineConstants; import org.hps.recon.tracking.DumbShaperFit; import org.hps.recon.tracking.HelixConverter; @@ -24,6 +23,7 @@ import org.hps.recon.tracking.TrackUtils; import org.lcsim.detector.tracker.silicon.HpsSiSensor; import org.lcsim.detector.tracker.silicon.SiSensor; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.LCIOParameters.ParameterName; import org.lcsim.event.RawTrackerHit; @@ -648,9 +648,9 @@ List<Track> tracks = event.get(Track.class, trackCollectionName); nTracks.fill(tracks.size()); - if (event.hasCollection(HPSEcalCluster.class, ecalCollectionName)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); - for (HPSEcalCluster cluster : clusters) { + if (event.hasCollection(Cluster.class, ecalCollectionName)) { + List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); + for (Cluster cluster : clusters) { //System.out.println("cluser position = ("+cluster.getPosition()[0]+","+cluster.getPosition()[1]+") with energy = "+cluster.getEnergy()); if (cluster.getPosition()[1] > 0) { aida.histogram2D("Top ECal Cluster Position").fill(cluster.getPosition()[0], cluster.getPosition()[1]); @@ -848,10 +848,10 @@ } } } - if(event.hasCollection(HPSEcalCluster.class,ecalCollectionName)) { - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); - - HPSEcalCluster clust = findClosestCluster(posAtEcal, clusters); + if(event.hasCollection(Cluster.class,ecalCollectionName)) { + List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); + + Cluster clust = findClosestCluster(posAtEcal, clusters); // if (clust != null) { if (clust != null) { @@ -1028,10 +1028,10 @@ //bottomFrame.dispose(); } - private HPSEcalCluster findClosestCluster(Hep3Vector posonhelix, List<HPSEcalCluster> clusters) { - HPSEcalCluster closest = null; + private Cluster findClosestCluster(Hep3Vector posonhelix, List<Cluster> clusters) { + Cluster closest = null; double minDist = 9999; - for (HPSEcalCluster cluster : clusters) { + for (Cluster cluster : clusters) { double[] clPos = cluster.getPosition(); double clEne = cluster.getEnergy(); double dist = Math.sqrt(Math.pow(clPos[0] - posonhelix.x(), 2) + Math.pow(clPos[1] - posonhelix.y(), 2)); //coordinates!!! Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java (original) +++ java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java Tue Jan 6 12:54:22 2015 @@ -15,8 +15,8 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.hps.recon.ecal.HPSEcalCluster; import org.hps.recon.tracking.BeamlineConstants; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.Track; import org.lcsim.geometry.Detector; @@ -255,8 +255,8 @@ if(simTrigger) { boolean trigger = false; - if(event.hasCollection(HPSEcalCluster.class, triggerClusterCollectionName)) { - for(HPSEcalCluster cluster : event.get(HPSEcalCluster.class, triggerClusterCollectionName)) { + if(event.hasCollection(Cluster.class, triggerClusterCollectionName)) { + for(Cluster cluster : event.get(Cluster.class, triggerClusterCollectionName)) { if(cluster.getEnergy() > triggerThreshold) { trigger = true; } @@ -276,7 +276,7 @@ //fastTracking(event); - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalClusterCollectionName); + List<Cluster> clusters = event.get(Cluster.class, ecalClusterCollectionName); if(debug) System.out.println( clusters.size() + " ECal clusters in the event"); @@ -295,11 +295,11 @@ } - for(HPSEcalCluster cl : clusters) { + for(Cluster cl : clusters) { int[] clusterPosIdx = new int[2]; - clusterPosIdx[0] = cl.getSeedHit().getIdentifierFieldValue("ix"); - clusterPosIdx[1] = cl.getSeedHit().getIdentifierFieldValue("iy"); + clusterPosIdx[0] = cl.getCalorimeterHits().get(0).getIdentifierFieldValue("ix"); + clusterPosIdx[1] = cl.getCalorimeterHits().get(0).getIdentifierFieldValue("iy"); //Uses shower max position -> update ix,iy above? --> FIX THIS! double clusterPosY = cl.getPosition()[1]; double clusterPosZ = cl.getPosition()[2]; @@ -356,7 +356,7 @@ } /* - private boolean hasBadNeighbours(HPSEcalCluster cluster) { + private boolean hasBadNeighbours(Cluster cluster) { //check if this cluster has a neighbour that is dead or bad if(!EcalConditions.badChannelsLoaded()) return false; List<CalorimeterHit> hits = cluster.getCalorimeterHits(); Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java (original) +++ java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java Tue Jan 6 12:54:22 2015 @@ -19,7 +19,7 @@ import org.hps.analysis.ecal.HPSMCParticlePlotsDriver; import org.hps.readout.ecal.TriggerData; -import org.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.geometry.Detector; @@ -128,9 +128,9 @@ if(_DEBUG) System.out.println(this.getClass().getSimpleName() + ": event " + event.getRunNumber() + " has no trigger data"); } - List<HPSEcalCluster> clusters = null; - if( event.hasCollection(HPSEcalCluster.class, ecalClusterCollectionName) ) { - clusters = event.get(HPSEcalCluster.class, ecalClusterCollectionName); + List<Cluster> clusters = null; + if( event.hasCollection(Cluster.class, ecalClusterCollectionName) ) { + clusters = event.get(Cluster.class, ecalClusterCollectionName); if(_DEBUG) System.out.println(this.getClass().getSimpleName() + ": event " + event.getRunNumber() + " has " + clusters.size() + " ecal clusters"); } else {