Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/jeremym/pfa/cheat on MAIN
SimpleAnalysis.java+33-71.1 -> 1.2
add a few more simple plots

lcsim-contrib/src/main/java/org/lcsim/contrib/jeremym/pfa/cheat
SimpleAnalysis.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SimpleAnalysis.java	2 Oct 2009 01:10:03 -0000	1.1
+++ SimpleAnalysis.java	2 Oct 2009 01:44:14 -0000	1.2
@@ -2,8 +2,10 @@
 
 import java.io.IOException;
 
+import org.lcsim.event.Cluster;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.Track;
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
 
@@ -12,6 +14,8 @@
 	String particleCollection = "CheatReconParticles";
 	String filename = "SimpleAnalysis.aida";
 	AIDA aida = AIDA.defaultInstance();
+	int nevents = 0;
+	double avgE = 0.;
 	
 	public SimpleAnalysis()
 	{}
@@ -28,28 +32,50 @@
 	
 	public void process(EventHeader event)
 	{
-		double massSum = 0.;
 		double energySum = 0.;
 		int nparticles = 0;
 		int nclusters = 0;
 		int ntracks = 0;
+		int ntrackHits = 0;
+		int nhits = 0;
 		for (ReconstructedParticle p : event.get(ReconstructedParticle.class, particleCollection))
 		{
-			massSum += p.getMass();
 			energySum += p.getEnergy();
 			++nparticles;
 			nclusters += p.getClusters().size();
 			ntracks += p.getTracks().size();
+			int nhitsP = 0;
+			for (Cluster c : p.getClusters())
+			{
+				nhits += c.getCalorimeterHits().size();
+				nhitsP += c.getCalorimeterHits().size();
+			}
+			int ntrackHitsP = 0;
+			for (Track t : p.getTracks())
+			{
+				ntrackHits += t.getTrackerHits().size();
+				ntrackHitsP += t.getTrackerHits().size();
+			}
+			aida.cloud1D("Number of Tracks for Particle").fill(p.getTracks().size());
+			aida.cloud1D("Number of Clusters for Particle").fill(p.getClusters().size());
+			aida.cloud1D("Number of CalorimeterHits for Particle").fill(nhitsP);
+			aida.cloud1D("Number of TrackerHits for Particle").fill(ntrackHitsP);
+			aida.cloud1D("Particle Energy").fill(p.getEnergy());
 		}
-		aida.cloud1D("Mass").fill(massSum);
-		aida.cloud1D("Energy").fill(energySum);
-		aida.cloud1D("Number of Particles").fill(nparticles);
-		aida.cloud1D("Number of Clusters").fill(nclusters);
-		aida.cloud1D("Number of Tracks").fill(ntracks);
+		aida.cloud1D("Total Energy per Event").fill(energySum);
+		aida.cloud1D("Total Number of Particles per Event").fill(nparticles);
+		aida.cloud1D("Total Number of Clusters per Event").fill(nclusters);
+		aida.cloud1D("Total Number of Tracks per Event").fill(ntracks);
+		aida.cloud1D("Total Number of Cal Hits per Event").fill(nhits);
+		aida.cloud1D("Total Number of Tracker Hits per Event").fill(ntrackHits);
+		avgE += energySum;
+		++nevents;
 	}
 	
 	public void endOfData()
 	{
+		avgE = avgE / nevents;
+		aida.cloud1D("Average Energy for " + nevents + " Events").fill(avgE);
 		try 
 		{
 			aida.saveAs(filename);
CVSspam 0.2.8