import hep.analysis.*;

import hep.lcd.util.driver.*;
import hep.lcd.event.*;
import java.util.*;
import hep.physics.*;

final class ClusterAnalyzer extends AbstractProcessor
{
   public final void process(LCDEvent event)
   {		
      ClusterList cl = event.getEMClusters();
      histogram("NClust").fill(cl.getNClusters());
      Enumeration e = cl.getClusters();
      while (e.hasMoreElements())
      {
         Cluster c = (Cluster) e.nextElement();
         histogram("Hits per cluster").fill(c.getNHits());
         histogram("Cluster Energy").fill(c.getEnergy());
         histogram("Rms R").fill(c.getRMSRadius());
         histogram("R").fill(c.getEnergyRadius());

         // Find the hit with the highest energy

         double eMax = 0;
         Enumeration ee = c.getHits();
         while (ee.hasMoreElements())
         {
            CalorimeterHit h = (CalorimeterHit) ee.nextElement();
            double energy = h.getEnergy();
            eMax = Math.max(eMax,energy);
         }			
         histogram("E Max").fill(eMax);
      }
   }
} 