6 added files
lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/scala
diff -N MainDriver.scala
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MainDriver.scala 9 Apr 2011 10:57:15 -0000 1.1
@@ -0,0 +1,35 @@
+import org.lcsim.util.Driver
+import org.lcsim.event.EventHeader
+import scala.collection.JavaConversions._
+import org.lcsim.event.MCParticle
+import org.lcsim.util.aida.AIDA
+import org.lcsim.event.ReconstructedParticle
+import hep.physics.vec.VecOp
+import hep.physics.vec.BasicHepLorentzVector
+import org.lcsim.mc.fast.tracking.fix.FastMCTrackFactory
+
+class ScalaDriver extends Driver {
+ val trackFactory = new FastMCTrackFactory("sidloi3", 5, false)
+
+ override def process(event: EventHeader) {
+ val aida = AIDA.defaultInstance
+ val mcParts = event.getMCParticles.par
+ val recoParts = event.get(classOf[ReconstructedParticle], "PandoraPFOCollection").par
+ val recoTracks = event.getTracks.par
+ // FINALSTATE == 1
+ val chargedParts = mcParts filter(p => p.getGeneratorStatus() == 1 && math.abs(p.getCharge) > 0 && p.getMomentum().magnitude() > 0.5)
+ val b_neutrinos = mcParts filter (p => (math.abs(p.getPDGID) == 12 || math.abs(p.getPDGID) == 14 || math.abs(p.getPDGID) == 16) && math.abs(p.getParents()(0).getPDGID) / 100 == 5)
+ val b_Mesons = mcParts filter(p => math.abs(p.getPDGID) / 100 == 5)
+ val barrel_bMesons = b_Mesons filter (p => math.abs(VecOp.cosTheta(p.getMomentum)) < 0.7)
+ for (track <- chargedParts) {
+ val t = trackFactory getUnsmearedTrack(track)
+ // d0 == parameter 0
+// aida.cloud1D("MC_d0", -1).fill(t.getTrackParameter(0))
+ t.getTrackParameter(0)
+ }
+ for (track <- recoTracks) {
+// aida.cloud1D("reco_d0", -1).fill(track.getTrackParameter(0))
+ track.getTrackParameter(0)
+ }
+ }
+}
lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/scala
diff -N MainLoop.scala
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MainLoop.scala 9 Apr 2011 10:57:15 -0000 1.1
@@ -0,0 +1,40 @@
+// MainLoop.java
+// Java wrapper to enable running outside of JAS3
+// 16-JUL-2005 Jan Strube
+// from a response to the JAS mailing list by Tony Johnson
+
+import java.io.File;
+//import org.lcsim.mc.fast.MCFast;
+import org.lcsim.util.Driver;
+//import org.lcsim.util.aida.AIDA;
+import org.lcsim.util.loop.LCIODriver;
+import org.lcsim.util.loop.LCSimLoop;
+import org.lcsim.util.aida.AIDA
+import org.lcsim.util.loop.LCIOEventSource;
+//import TrackAnalyzer;
+
+object MainLoop {
+ def main(args: Array[String]) {
+ val loop = new LCSimLoop()
+ val input = new File(args(0))
+ val fileList = new java.util.ArrayList[File]
+ for (infile <- input.listFiles) {
+ if (infile.getName endsWith ".slcio") {
+ fileList.add(infile)
+ }
+ }
+ val inputSource = new LCIOEventSource("bb", fileList);
+ loop.setLCIORecordSource(inputSource)
+ val outputFile = new File("x.slcio")
+ val output = new LCIODriver(outputFile)
+ output.setWriteOnlyCollection("SignalParticles")
+ loop.add(new ScalaDriver)
+// loop.add(new MuonDriver)
+// loop.add(new McParticleDriver)
+ // loop.add(output)
+ loop.loop(-1)
+ val aida = AIDA.defaultInstance
+ aida.saveAs("test.aida")
+ loop.dispose()
+ }
+}
lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/scala
diff -N McParticleDriver.scala
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ McParticleDriver.scala 9 Apr 2011 10:57:15 -0000 1.1
@@ -0,0 +1,16 @@
+import org.lcsim.util.Driver
+import org.lcsim.event.EventHeader
+import scala.collection.JavaConversions._
+import org.lcsim.event.MCParticle
+import org.lcsim.util.aida.AIDA
+
+class McParticleDriver extends Driver {
+ override def process(event: EventHeader) {
+ val aida = AIDA.defaultInstance
+ val mcParts = event.getMCParticles
+ val mcBGParts = event.get(classOf[MCParticle], "MCParticles_gghad")
+ val signal = mcParts filter(p => ! mcBGParts.contains(p))
+
+ event.put("SignalParticles", signal, classOf[MCParticle], 0)
+ }
+}
lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/scala
diff -N MuonDriver.scala
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MuonDriver.scala 9 Apr 2011 10:57:15 -0000 1.1
@@ -0,0 +1,45 @@
+import org.lcsim.util.Driver
+import org.lcsim.event.EventHeader
+import org.lcsim.event.ReconstructedParticle
+import scala.collection.JavaConversions._
+import org.lcsim.util.aida.AIDA
+import hep.physics.vec.VecOp
+
+class MuonDriver extends Driver {
+ override def process(event: EventHeader) {
+ val mcParts = event.getMCParticles
+ val recoParts = event.get(classOf[ReconstructedParticle], "PandoraPFOCollection")
+
+ val finalStates = mcParts filter(p => p.getGeneratorStatus == 1 && math.abs(VecOp.cosTheta(p.getMomentum())) < 0.7)
+ val mcMuons = finalStates filter(p => math.abs(p.getPDGID) == 13)
+ val mcProtons = finalStates filter(p => math.abs(p.getPDGID) == 2212)
+ val mcNeutrons = finalStates filter(p => math.abs(p.getPDGID) == 2112)
+ val barrelRecoParts = recoParts filter(p => math.abs(VecOp.cosTheta(p.getMomentum())) < 0.7)
+ val recoMuons = barrelRecoParts filter(p => math.abs(p.getType) == 13)
+ val recoProtons = barrelRecoParts filter (p => math.abs(p.getType) == 2212)
+ val recoNeutrons = barrelRecoParts filter (p => math.abs(p.getType) == 2112)
+ val otherParts = barrelRecoParts filter(p => math.abs(p.getType) != 13 && math.abs(p.getType) != 2212 && math.abs(p.getType) != 2112)
+ val aida = AIDA.defaultInstance
+
+ val recoProtonE = recoProtons.foldLeft(0.)((r, c) => r + c.getEnergy)
+ val mcProtonE = mcProtons.foldLeft(0.)((r, c) => r + c.getEnergy)
+ val recoMuonE = recoMuons.foldLeft(0.)((r, c) => r + c.getEnergy)
+ val mcMuonE = mcMuons.foldLeft(0.)((r, c) => r + c.getEnergy)
+ val recoNeutronE = recoNeutrons.foldLeft(0.)((r, c) => r + c.getEnergy)
+ val mcNeutronE = mcNeutrons.foldLeft(0.)((r, c) => r + c.getEnergy)
+
+ for (p <- otherParts) {
+ aida.cloud1D("otherParts").fill(p.getType, 100000)
+ }
+
+ for (p <- finalStates) {
+ aida.cloud1D("finalStates").fill(p.getPDGID, 100000)
+ }
+ aida.cloud1D("delta_mcMuons").fill(mcMuons.length - recoMuons.length)
+ aida.cloud1D("delta_mcProtons").fill(mcProtons.length - recoProtons.length)
+ aida.cloud1D("delta_mcNeutrons").fill(mcNeutrons.length - recoNeutrons.length)
+ aida.cloud1D("deltaE_Protons").fill(mcProtonE - recoProtonE)
+ aida.cloud1D("deltaE_Muons").fill(mcMuonE - recoMuonE)
+ aida.cloud1D("deltaE_Neutrons").fill(mcNeutronE - recoNeutronE)
+ }
+}
\ No newline at end of file
lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/scala
diff -N PFO_TrackCounter.scala
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ PFO_TrackCounter.scala 9 Apr 2011 10:57:15 -0000 1.1
@@ -0,0 +1,33 @@
+import org.lcsim.util.Driver
+import org.lcsim.event.EventHeader
+import scala.collection.JavaConversions._
+import org.lcsim.event.MCParticle
+import org.lcsim.util.aida.AIDA
+import org.lcsim.event.ReconstructedParticle
+import hep.physics.vec.VecOp
+import hep.physics.vec.BasicHepLorentzVector
+import org.lcsim.mc.fast.tracking.fix.FastMCTrackFactory
+
+class PFO_TrackCounter extends Driver {
+ var moreTracks:Int = 0
+ val aida = AIDA.defaultInstance
+
+ def truthMatching() {
+
+ }
+
+
+ override def process(event: EventHeader) {
+ val recoParts = event.get(classOf[ReconstructedParticle], "PandoraPFOCollection") filter(p => p.getCharge != 0)
+ val noClusters = recoParts filter(p => p.getClusters.size == 0)
+ //val recoTracks = event.getTracks
+ //if (recoParts.size < recoTracks.size) {
+ // printf("ERROR! %s Event %d in Run %d has more tracks than charged reco particles!\n", event.get("INPUT_FILE").toString, event.getEventNumber, event.getRunNumber)
+ // printf("\t nRecoTracks = %d; nTracks = %d\n\n", recoParts.size, recoTracks.size)
+ //}
+ //println(noClusters.size)
+ if (noClusters.size > 0) {
+ println("FOUND!")
+ }
+ }
+}
lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/scala
diff -N temp.scala
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ temp.scala 9 Apr 2011 10:57:15 -0000 1.1
@@ -0,0 +1,34 @@
+// MainLoop.java
+// Java wrapper to enable running outside of JAS3
+// 16-JUL-2005 Jan Strube
+// from a response to the JAS mailing list by Tony Johnson
+
+import java.io.File;
+//import org.lcsim.mc.fast.MCFast;
+import org.lcsim.util.Driver;
+//import org.lcsim.util.aida.AIDA;
+import org.lcsim.util.loop.LCIODriver;
+import org.lcsim.util.loop.LCSimLoop;
+import org.lcsim.util.aida.AIDA
+import org.lcsim.util.loop.LCIOEventSource;
+//import TrackAnalyzer;
+
+object MLoop {
+ def main(args: Array[String]) {
+ val loop = new LCSimLoop()
+ val input = new File(args(0))
+ val fileList = new java.util.ArrayList[File]
+ for (infile <- input.listFiles) {
+ if (infile.getName endsWith ".slcio") {
+ fileList.add(infile)
+ }
+ }
+ val inputSource = new LCIOEventSource("bb", fileList);
+ loop.setLCIORecordSource(inputSource)
+ loop.add(new PFO_TrackCounter)
+ loop.loop(1000)
+ val aida = AIDA.defaultInstance
+ aida.saveAs("t.aida")
+ loop.dispose()
+ }
+}
CVSspam 0.2.8