hps-java/src/main/java/org/lcsim/hps/users/meeg
diff -u -r1.8 -r1.9
--- FilterMCBunches.java 14 Dec 2012 01:29:32 -0000 1.8
+++ FilterMCBunches.java 25 Feb 2013 21:53:42 -0000 1.9
@@ -9,7 +9,6 @@
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
@@ -30,7 +29,7 @@
* Can also be used to chain multiple LCIO files together.
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: FilterMCBunches.java,v 1.8 2012/12/14 01:29:32 meeg Exp $
+ * @version $Id: FilterMCBunches.java,v 1.9 2013/02/25 21:53:42 meeg Exp $
*/
public class FilterMCBunches {
@@ -41,13 +40,15 @@
*/
private static Options createCommandLineOptions() {
Options options = new Options();
- Option opt_e = OptionBuilder.hasArg(true).isRequired(true).withDescription("Interval between non-empty events").create("e");
+ Option opt_e = new Option("e", true, "Interval between non-empty events");
+ opt_e.setRequired(true);
options.addOption(opt_e);
//options.addOption(new Option("e", true, "Interval between non-empty events"));
options.addOption(new Option("n", true, "Number of events to read"));
- options.addOption(new Option("a", true, "All events - no cuts"));
+ options.addOption(new Option("a", false, "All events - no cuts"));
options.addOption(new Option("t", false, "Filter based on SimTrackerHits"));
options.addOption(new Option("r", false, "Filter based on RawTrackerHits"));
+ options.addOption(new Option("E", true, "Energy cut for EcalHit cut"));
return options;
}
@@ -84,7 +85,11 @@
EventTester tester = null;
if (!cl.hasOption("a")) {
- tester = new EcalEventTester();
+ if (cl.hasOption("E")) {
+ tester = new EcalEventTester(Double.valueOf(cl.getOptionValue("E")));
+ } else {
+ tester = new EcalEventTester(0.05);
+ }
}
if (cl.hasOption("t")) {
tester = new TrackerEventTester();
@@ -211,8 +216,8 @@
nEvents++;
List<RawCalorimeterHit> ecalHits = event.get(RawCalorimeterHit.class, "EcalReadoutHits");
List<RawTrackerHit> trackerHits = event.get(RawTrackerHit.class, "SVTRawTrackerHits");
- nEcal+=ecalHits.size();
- nRTH+=trackerHits.size();
+ nEcal += ecalHits.size();
+ nRTH += trackerHits.size();
Set<Integer> topLayers = new HashSet<Integer>();
Set<Integer> botLayers = new HashSet<Integer>();
@@ -230,6 +235,7 @@
return (countPairs(topLayers) >= 4 && countPairs(botLayers) >= 4);
}
+ @Override
void endOfRun() {
System.out.format("%d events, %f RawCalorimeterHits and %f RawTrackerHits on average\n", nEvents, ((double) nEcal) / nEvents, ((double) nRTH) / nEvents);
}
@@ -265,6 +271,12 @@
private static class EcalEventTester extends EventTester {
+ double eCut;
+
+ public EcalEventTester(double eCut) {
+ this.eCut = eCut;
+ }
+
@Override
public boolean goodEvent(EventHeader event) {
List<SimCalorimeterHit> ecalHits = event.getSimCalorimeterHits("EcalHits");
@@ -284,7 +296,7 @@
// return (ecalHits.size() + trackerHits.size() != 0);
// return (totalE > 0.05 || !trackerHits.isEmpty());
- return (totalE > 0.05);
+ return (totalE > eCut);
}
}
}
\ No newline at end of file