lcsim-contrib/src/main/java/org/lcsim/contrib/jeremym/pfa/cheat
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);