Print

Print


Author: [log in to unmask]
Date: Mon Jan  5 15:20:14 2015
New Revision: 1872

Log:
Remove old EcalConditions class.

Removed:
    java/trunk/conditions/src/main/java/org/hps/conditions/deprecated/EcalConditions.java
Modified:
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalWindowPlots.java
    java/trunk/users/src/main/java/org/hps/users/celentan/RawPedestalComputator.java

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalWindowPlots.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalWindowPlots.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalWindowPlots.java	Mon Jan  5 15:20:14 2015
@@ -11,7 +11,11 @@
 import javax.swing.JComboBox;
 import javax.swing.JLabel;
 
-import org.hps.conditions.deprecated.EcalConditions;
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.conditions.ecal.EcalChannel;
+import org.hps.conditions.ecal.EcalConditions;
+import org.hps.conditions.ecal.EcalConditionsUtil;
+import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
@@ -38,6 +42,9 @@
     private boolean testSlot = false;
     private boolean testChannel = false;
     private int plotCrate, plotSlot, plotChannel;
+    private EcalConditions conditions;
+    private EcalConditionsUtil util;
+    private IIdentifierHelper helper;
 
     public EcalWindowPlots() {
         int count = 0;
@@ -76,6 +83,11 @@
         if (inputCollection == null) {
             throw new RuntimeException("The inputCollection parameter was not set.");
         }
+        
+        DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance(); 
+        this.conditions = manager.getCachedConditions(EcalConditions.class, "ecal_conditions").getCachedData();
+        this.util = new EcalConditionsUtil(conditions);
+        this.helper = detector.getSubdetector("Ecal").getDetectorElement().getIdentifierHelper();
 
         setupPlots();
     }
@@ -127,13 +139,15 @@
 
     @Override
     public void process(EventHeader event) {
-        if (event.hasCollection(RawTrackerHit.class, inputCollection)) {
+        if (event.hasCollection(RawTrackerHit.class, inputCollection)) {            
             List<RawTrackerHit> hits = event.get(RawTrackerHit.class, inputCollection);
             for (RawTrackerHit hit : hits) {
-                Long daqId = EcalConditions.physicalToDaqID(hit.getCellID());
-                int crate = EcalConditions.getCrate(daqId);
-                int slot = EcalConditions.getSlot(daqId);
-                int channel = EcalConditions.getChannel(daqId);
+                
+                EcalChannel ecalChannel = util.findChannel(helper, hit.getCellID());
+                int crate = ecalChannel.getCrate();
+                int slot = ecalChannel.getSlot();
+                int channelNumber = ecalChannel.getChannel();
+                                
 //System.out.println("got hit: crate " + crate + ", slot " + slot + ", channel " + channel);
                 if (hit.getADCValues().length != window) {
                     throw new RuntimeException("Hit has unexpected window length " + hit.getADCValues().length + ", not " + window);
@@ -144,7 +158,7 @@
                 if (testSlot && slot != plotSlot) {
                     continue;
                 }
-                if (testChannel && channel != plotChannel) {
+                if (testChannel && channelNumber != plotChannel) {
                     continue;
                 }
                 windowPlot.reset();

Modified: java/trunk/users/src/main/java/org/hps/users/celentan/RawPedestalComputator.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/celentan/RawPedestalComputator.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/celentan/RawPedestalComputator.java	Mon Jan  5 15:20:14 2015
@@ -1,131 +1,125 @@
 package org.hps.users.celentan;
 
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.PrintWriter;
 import java.util.List;
 
-import org.hps.conditions.deprecated.EcalConditions;
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.conditions.ecal.EcalChannel;
+import org.hps.conditions.ecal.EcalChannel.GeometryId;
+import org.hps.conditions.ecal.EcalConditions;
 import org.hps.recon.ecal.ECalUtils;
-import org.lcsim.event.CalorimeterHit;
+import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.event.EventHeader;
-import org.lcsim.event.GenericObject;
-import org.lcsim.event.RawCalorimeterHit;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
-import org.lcsim.lcio.LCIOConstants;
 import org.lcsim.util.Driver;
-import java.io.PrintWriter;
-import java.io.FileNotFoundException;
-import java.io.IOException;
 
+public class RawPedestalComputator extends Driver {
 
-public class RawPedestalComputator extends Driver{
-	
-	   String inputCollectionRaw = "EcalReadoutHits";
-	   int row,column;
-	   
-	   int[] windowRaw=new int[47*11];//in case we have the raw waveform, this is the window lenght (in samples)
-	   boolean[] isFirstRaw=new boolean[47*11];  
-	   
-	   double[] pedestal=new double[47*11];
-	   double[] noise=new double[47*11];
-	   double[] result;
-	   
-	   int pedSamples=50;
-	   int nEvents=0;
-	   @Override
-	    public void detectorChanged(Detector detector) {
-	    	System.out.println("Pedestal computator: detector changed");
-	    	for (int ii=0;ii<11*47;ii++){
-	    		isFirstRaw[ii]=true;
-	    		pedestal[ii]=0;
-	    		noise[ii]=0;
-	    	}
-	   }
-	   
+    String inputCollectionRaw = "EcalReadoutHits";
+    int row, column;
 
-	    @Override
-	    public void process(EventHeader event) {
-	    	int ii=0;
-	    	if (event.hasCollection(RawTrackerHit.class, inputCollectionRaw)){       	
-	    		List<RawTrackerHit> hits = event.get(RawTrackerHit.class, inputCollectionRaw);
-	          	for (RawTrackerHit hit : hits) {
-	          		row=hit.getIdentifierFieldValue("iy");
-	                column=hit.getIdentifierFieldValue("ix");	
-	                ii = ECalUtils.getHistoIDFromRowColumn(row,column);
-	                if ((row!=0)&&(column!=0)){
-	                	if (!ECalUtils.isInHole(row,column)){
-	                		if (isFirstRaw[ii]){ //at the very first hit we read for this channel, we need to read the window length and save it
-	                			isFirstRaw[ii]=false;
-	                			windowRaw[ii]=hit.getADCValues().length;  
-	                		 }
-	                  		result=ECalUtils.computeAmplitude(hit.getADCValues(),windowRaw[ii],pedSamples);
-	                  		pedestal[ii]+=result[1];
-	                  		noise[ii]+=result[2];	                  		
-	                	}
-	                }	
-	          	}		
-	    	  }	
-	    	nEvents++;
-	    }
-	    
-	    @Override
-	    public void endOfData() {
-	    	try{
-	    	PrintWriter writerTop = new PrintWriter("default01.ped","UTF-8");
-    		PrintWriter writerBottom = new PrintWriter("default02.ped","UTF-8");	
-	    	
-	    	for (int ii=0;ii<11*47;ii++){	    	
-	    		int row,column;	
-	    		row=ECalUtils.getRowFromHistoID(ii);
-	    		column=ECalUtils.getColumnFromHistoID(ii);
-	    		if (ECalUtils.isInHole(row,column)) continue;
-   				if ((row==0)||(column==0)) continue;
-	    		pedestal[ii]/=nEvents;
-	    		noise[ii]/=nEvents;
+    int[] windowRaw = new int[47 * 11];// in case we have the raw waveform, this is the window lenght (in samples)
+    boolean[] isFirstRaw = new boolean[47 * 11];
 
-	    		long daqID=EcalConditions.physicalToDaqID(EcalConditions.makePhysicalID(column,row));
-	    		
-	    		int crate=EcalConditions.getCrate(daqID);
-	    		int slot=EcalConditions.getSlot(daqID);
-	    		int channel=EcalConditions.getChannel(daqID);
+    double[] pedestal = new double[47 * 11];
+    double[] noise = new double[47 * 11];
+    double[] result;
 
-	    		System.out.println(column+" "+row+" "+crate+" "+slot+" "+channel+" "+pedestal[ii]+" "+noise[ii]);
-	    		
-	    		
-	    		
-	    		if (crate==37){
-	    			writerTop.print(slot+" "+channel+" "+(int)(Math.round(pedestal[ii]))+" "+(int)(Math.round(noise[ii]))+"\r\n");
-	    		}
-	    		else if (crate==39){
-	    			writerBottom.print(slot+" "+channel+" "+(int)(Math.round(pedestal[ii]))+" "+(int)(Math.round(noise[ii]))+"\r\n");
-	    		}
-	    		
-	    	}
+    int pedSamples = 50;
+    int nEvents = 0;
 
-    		writerTop.close();
-    		writerBottom.close();
-	    	}
-	    	 catch(FileNotFoundException fnfe)
-	        {
+    private EcalConditions conditions;
+    private IIdentifierHelper helper;
+    private int systemId;
 
-	            System.out.println(fnfe.getMessage());
+    @Override
+    public void detectorChanged(Detector detector) {
 
-	        }
+        DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance();
+        this.conditions = manager.getCachedConditions(EcalConditions.class, "ecal_conditions").getCachedData();
+        this.helper = detector.getSubdetector("Ecal").getDetectorElement().getIdentifierHelper();
+        this.systemId = detector.getSubdetector("Ecal").getSystemID();
 
-	        catch(IOException ioe)
-	        {
+        System.out.println("Pedestal computator: detector changed");
+        for (int ii = 0; ii < 11 * 47; ii++) {
+            isFirstRaw[ii] = true;
+            pedestal[ii] = 0;
+            noise[ii] = 0;
+        }
+    }
 
-	            System.out.println(ioe.getMessage());
+    @Override
+    public void process(EventHeader event) {
+        int ii = 0;
+        if (event.hasCollection(RawTrackerHit.class, inputCollectionRaw)) {
+            List<RawTrackerHit> hits = event.get(RawTrackerHit.class, inputCollectionRaw);
+            for (RawTrackerHit hit : hits) {
+                row = hit.getIdentifierFieldValue("iy");
+                column = hit.getIdentifierFieldValue("ix");
+                ii = ECalUtils.getHistoIDFromRowColumn(row, column);
+                if ((row != 0) && (column != 0)) {
+                    if (!ECalUtils.isInHole(row, column)) {
+                        if (isFirstRaw[ii]) { // at the very first hit we read for this channel, we need to read the window length and save it
+                            isFirstRaw[ii] = false;
+                            windowRaw[ii] = hit.getADCValues().length;
+                        }
+                        result = ECalUtils.computeAmplitude(hit.getADCValues(), windowRaw[ii], pedSamples);
+                        pedestal[ii] += result[1];
+                        noise[ii] += result[2];
+                    }
+                }
+            }
+        }
+        nEvents++;
+    }
 
-	        }
-	    }
+    @Override
+    public void endOfData() {
+        try {
+            PrintWriter writerTop = new PrintWriter("default01.ped", "UTF-8");
+            PrintWriter writerBottom = new PrintWriter("default02.ped", "UTF-8");
+
+            for (int ii = 0; ii < 11 * 47; ii++) {
+                int row, column;
+                row = ECalUtils.getRowFromHistoID(ii);
+                column = ECalUtils.getColumnFromHistoID(ii);
+                if (ECalUtils.isInHole(row, column))
+                    continue;
+                if ((row == 0) || (column == 0))
+                    continue;
+                pedestal[ii] /= nEvents;
+                noise[ii] /= nEvents;
+
+                EcalChannel ecalChannel = conditions.getChannelCollection().findChannel(new GeometryId(helper, new int[] {systemId, column, row}));
+                int crate = ecalChannel.getCrate();
+                int slot = ecalChannel.getSlot();
+                int channel = ecalChannel.getChannel();
+
+                System.out.println(column + " " + row + " " + crate + " " + slot + " " + channel + " " + pedestal[ii] + " " + noise[ii]);
+
+                if (crate == 37) {
+                    writerTop.print(slot + " " + channel + " " + (int) (Math.round(pedestal[ii])) + " " + (int) (Math.round(noise[ii])) + "\r\n");
+                } else if (crate == 39) {
+                    writerBottom.print(slot + " " + channel + " " + (int) (Math.round(pedestal[ii])) + " " + (int) (Math.round(noise[ii])) + "\r\n");
+                }
+
+            }
+
+            writerTop.close();
+            writerBottom.close();
+        } catch (FileNotFoundException fnfe) {
+
+            System.out.println(fnfe.getMessage());
+
+        }
+
+        catch (IOException ioe) {
+
+            System.out.println(ioe.getMessage());
+
+        }
+    }
 }
-
-
-
-
-
-
-
-
-
-