Print

Print


Author: [log in to unmask]
Date: Mon Feb  9 19:07:55 2015
New Revision: 2085

Log:
Remove EcalDetectorSetup and related changes.  HPSJAVA-419

Removed:
    java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalDetectorSetup.java
    java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_dev.xml
    java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalDetectorSetupTest.java
Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
    java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditions.java
    java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java
    java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_engrun.xml
    java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_prod.xml
    java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_testrun_2012.xml
    java/trunk/conditions/src/test/java/org/hps/conditions/EngRunConditionsTest.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	Mon Feb  9 19:07:55 2015
@@ -26,7 +26,6 @@
 import org.hps.conditions.api.ConditionsRecord.ConditionsRecordCollection;
 import org.hps.conditions.api.ConditionsSeries;
 import org.hps.conditions.ecal.EcalConditionsConverter;
-import org.hps.conditions.ecal.EcalDetectorSetup;
 import org.hps.conditions.ecal.TestRunEcalConditionsConverter;
 import org.hps.conditions.svt.SvtConditionsConverter;
 import org.hps.conditions.svt.SvtDetectorSetup;
@@ -96,7 +95,6 @@
     protected String svtName = "Tracker";
     protected ConditionsConverter svtConverter;
     protected ConditionsConverter ecalConverter;
-    protected EcalDetectorSetup ecalSetup = new EcalDetectorSetup(ecalName);
     protected SvtDetectorSetup svtSetup = new SvtDetectorSetup(svtName);
     
     // Active conditions tag.
@@ -109,7 +107,6 @@
     
     // Configuration from XML settings.  These are the defaults.
     protected boolean setupSvtDetector = true;
-    protected boolean setupEcalDetector = true;
     protected boolean freezeAfterInitialize = false;
     protected boolean closeConnectionAfterInitialize = true;
     protected boolean cacheAllConditions = false;
@@ -135,7 +132,6 @@
             //logger.config("registering converter for " + converter.getType());
             registerConditionsConverter(converter);
         }
-        addConditionsListener(ecalSetup);
         addConditionsListener(svtSetup);
     }
     
@@ -335,7 +331,6 @@
 
         registerConverters();
     
-        ecalSetup.setEnabled(setupEcalDetector);
         svtSetup.setEnabled(setupSvtDetector);
 
         // Open the database connection.
@@ -577,7 +572,6 @@
         logger.setLevel(level);
         logger.getHandlers()[0].setLevel(level);
         
-        ecalSetup.setLogLevel(level);
         svtSetup.setLogLevel(level);
     }
 
@@ -664,7 +658,6 @@
             throw new IllegalArgumentException("The ecalName is null");
         }
         this.ecalName = ecalName;
-        ecalSetup.setEcalName(ecalName);
     }
     
     /**
@@ -814,6 +807,10 @@
     public TableMetaData findTableMetaData(Class<?> type) {
         return tableRegistry.findByCollectionType(type);
     }
+    
+    public String getEcalName() {
+        return ecalName;
+    }
 
     /*
      *******************************
@@ -918,13 +915,7 @@
             setupSvtDetector = Boolean.parseBoolean(element.getText());
             logger.config("setupSvtDetector = " + setupSvtDetector);
         }
-        
-        element = node.getChild("setupEcalDetector");
-        if (element != null) {
-            setupEcalDetector = Boolean.parseBoolean(element.getText());
-            logger.config("setupEcalDetector = " + setupEcalDetector);
-        }
-        
+                
         element = node.getChild("ecalName");
         if (element != null) {
             setEcalName(element.getText());

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditions.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditions.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditions.java	Mon Feb  9 19:07:55 2015
@@ -4,6 +4,7 @@
 import java.util.Map;
 
 import org.hps.conditions.ecal.EcalChannel.EcalChannelCollection;
+import org.lcsim.geometry.Subdetector;
 
 /**
  * This class provides access to all ECAL conditions from the database,
@@ -24,10 +25,16 @@
     /** Map between channels and conditions data. */
     Map<EcalChannel, EcalChannelConstants> channelData = new HashMap<EcalChannel, EcalChannelConstants>();
 
+    Subdetector subdetector;
+    
     /**
      * Class constructor, which is package protected.
      */
-    EcalConditions() {
+    EcalConditions(Subdetector subdetector) {
+        if (subdetector == null) {
+            throw new IllegalArgumentException("The subdetector argument is null.");
+        }
+        this.subdetector = subdetector;
     }
 
     /**
@@ -35,7 +42,14 @@
      * @param channels The channel map.
      */
     void setChannelCollection(EcalChannelCollection channelMap) {
+                
         this.channelMap = channelMap;
+        
+        // Get the full channel map created by the conditions system.
+        channelMap = getChannelCollection();
+                                
+        // Build the map of geometry IDs.
+        channelMap.buildGeometryMap(subdetector.getDetectorElement().getIdentifierHelper(), subdetector.getSystemID());
     }
 
     /**
@@ -45,7 +59,7 @@
     public EcalChannelCollection getChannelCollection() {
         return channelMap;
     }
-
+        
     /**
      * Get the conditions constants for a specific channel. These will be
      * created if they do not exist for the given channel, BUT only channels in

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	Mon Feb  9 19:07:55 2015
@@ -14,6 +14,7 @@
 import org.hps.conditions.svt.AbstractSvtConditionsConverter;
 import org.lcsim.conditions.ConditionsConverter;
 import org.lcsim.conditions.ConditionsManager;
+import org.lcsim.geometry.Detector;
 import org.lcsim.util.log.LogUtil;
 
 /**
@@ -60,7 +61,8 @@
 
         // Create the ECal conditions object that will be used to encapsulate
         // ECal conditions collections
-        EcalConditions conditions = new EcalConditions();
+        Detector detector = databaseConditionsManager.getDetectorObject();
+        EcalConditions conditions = new EcalConditions(detector.getSubdetector(databaseConditionsManager.getEcalName()));
 
         // Set the channel map.
         conditions.setChannelCollection(channels);

Modified: java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_engrun.xml
 =============================================================================
--- java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_engrun.xml	(original)
+++ java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_engrun.xml	Mon Feb  9 19:07:55 2015
@@ -1,7 +1,6 @@
 <conditions_database>
     <configuration>
         <setupSvtDetector>false</setupSvtDetector>
-        <setupEcalDetector>true</setupEcalDetector>
         <cacheAllConditions>false</cacheAllConditions>
         <freezeAfterInitialize>false</freezeAfterInitialize>
     </configuration>

Modified: java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_prod.xml
 =============================================================================
--- java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_prod.xml	(original)
+++ java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_prod.xml	Mon Feb  9 19:07:55 2015
@@ -1,7 +1,6 @@
 <conditions_database>
     <configuration>
         <setupSvtDetector>true</setupSvtDetector>
-        <setupEcalDetector>true</setupEcalDetector>
         <cacheAllConditions>false</cacheAllConditions>
         <freezeAfterInitialize>false</freezeAfterInitialize>
     </configuration>

Modified: java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_testrun_2012.xml
 =============================================================================
--- java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_testrun_2012.xml	(original)
+++ java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_database_testrun_2012.xml	Mon Feb  9 19:07:55 2015
@@ -2,7 +2,6 @@
     <configuration>
         <isTestRun>true</isTestRun>
         <setupSvtDetector>true</setupSvtDetector>
-        <setupEcalDetector>true</setupEcalDetector>
         <cacheAllConditions>false</cacheAllConditions>
         <freezeAfterInitialize>false</freezeAfterInitialize>
     </configuration>

Modified: java/trunk/conditions/src/test/java/org/hps/conditions/EngRunConditionsTest.java
 =============================================================================
--- java/trunk/conditions/src/test/java/org/hps/conditions/EngRunConditionsTest.java	(original)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/EngRunConditionsTest.java	Mon Feb  9 19:07:55 2015
@@ -70,11 +70,14 @@
     static class ConditionsCheckDriver extends Driver {
         
         boolean detectorChangedCalled = false;
-          
+        
+        EcalConditions ecalConditions;
+        
         public void detectorChanged(Detector detector) {
+                        
             assertEquals("Wrong run number.", runNumber, DatabaseConditionsManager.getInstance().getRun());
             
-            DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance();
+            DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance();                       
             
             EcalChannelCollection channels = conditionsManager.getCollection(EcalChannelCollection.class);
             assertEquals("Wrong number of channels.", nChannels, channels.size());
@@ -101,7 +104,7 @@
             assertEquals("Wrong LEDs collection ID.", 2, timeShifts.getConditionsRecord().getCollectionId());
             checkRunNumbers(timeShifts);
             
-            EcalConditions ecalConditions = conditionsManager.getConditionsData(EcalConditions.class, "ecal_conditions");
+            ecalConditions = conditionsManager.getConditionsData(EcalConditions.class, "ecal_conditions");
             Set<EcalChannelConstants> channelConstants = new LinkedHashSet<EcalChannelConstants>();
             for (EcalChannel channel : ecalConditions.getChannelCollection().sortedByChannelId()) {
                 channelConstants.add(ecalConditions.getChannelConstants(channel));
@@ -120,12 +123,25 @@
             assertEquals("Wrong run number.", runNumber, event.getRunNumber());
             if (event.hasCollection(CalorimeterHit.class, "EcalCalHits")) {
                 List<CalorimeterHit> calHits = event.get(CalorimeterHit.class, "EcalCalHits");
-                for (CalorimeterHit hit : calHits) {
+                for (CalorimeterHit hit : calHits) {                    
                     EcalCrystal crystal = (EcalCrystal) hit.getDetectorElement();
-                    assertEquals("Crystal and hit ID are different.", crystal.getIdentifier(), hit.getIdentifier());
-                    assertTrue("Crystal gain is invalid.", crystal.getGain() > 0.);
-                    assertTrue("Crystal pedestal is invalid.", crystal.getPedestal() > 0.);
-                    assertTrue("Crystal noise is invalid.", crystal.getNoise() > 0.);
+                    if (crystal == null) {
+                        throw new RuntimeException("EcalCrystal is null.");
+                    }
+                    if (crystal.getIdentifier() == null) {
+                        throw new RuntimeException("EcalCrystal ID is null.");
+                    }
+                    if (hit.getIdentifier() == null) {
+                        throw new RuntimeException("The hit ID is null.");
+                    }
+                    assertEquals("The crystal and hit ID are different.", crystal.getIdentifier(), hit.getIdentifier());
+                    
+                    EcalChannel channel = ecalConditions.getChannelCollection().findGeometric(hit.getIdentifier().getValue());                    
+                    EcalChannelConstants constants = ecalConditions.getChannelConstants(channel);
+                    
+                    assertTrue("The crystal gain is invalid.", constants.getGain().getGain() > 0.);
+                    assertTrue("The crystal pedestal is invalid.", constants.getCalibration().getPedestal() > 0.);
+                    assertTrue("The crystal noise is invalid.", constants.getCalibration().getNoise() > 0.);
                 }
             }
         }