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.); } } }