Print

Print


Author: omoreno
Date: Wed Oct 22 18:37:14 2014
New Revision: 1275

Log:
Work in progress on abstracting SvtConditionsConverter. 

Added:
    java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditionsConverter.java   (with props)

Added: java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditionsConverter.java
 =============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditionsConverter.java	(added)
+++ java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditionsConverter.java	Wed Oct 22 18:37:14 2014
@@ -0,0 +1,84 @@
+package org.hps.conditions.svt;
+
+import static org.hps.conditions.TableConstants.SVT_BAD_CHANNELS;
+import static org.hps.conditions.TableConstants.SVT_CALIBRATIONS;
+import static org.hps.conditions.TableConstants.SVT_CHANNELS;
+import static org.hps.conditions.TableConstants.SVT_DAQ_MAP;
+import static org.hps.conditions.TableConstants.SVT_GAINS;
+import static org.hps.conditions.TableConstants.SVT_PULSE_PARAMETERS;
+import static org.hps.conditions.TableConstants.SVT_TIME_SHIFTS;
+
+import org.lcsim.conditions.ConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.DatabaseConditionsManager;
+import org.hps.conditions.TableMetaData;
+import org.hps.conditions.svt.SvtCalibration.SvtCalibrationCollection;
+import org.hps.conditions.svt.SvtChannel.SvtChannelCollection;
+import org.hps.conditions.svt.SvtShapeFitParameters.SvtShapeFitParametersCollection;
+
+
+/**
+ * Abstract class providing some of the common methods used in creating
+ * SVT conditions objects from the database.
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ *
+ * @param <T>  SVT conditions object type
+ */
+public abstract class AbstractSvtConditionsConverter<T> implements ConditionsConverter<T> {
+	
+	private TableMetaData metaData = null; 
+	private String tableName = null; 
+	
+	public abstract T getData(ConditionsManager manager, String name);
+		
+	
+    private SvtChannelCollection getSvtChannelMap(DatabaseConditionsManager dbConditionsManager){
+    	
+        // Get the table name containing the SVT channel map from the 
+    	// database configuration.  If it doesn't exist, use the default value.
+    	metaData = dbConditionsManager.findTableMetaData(SvtChannelCollection.class);
+    	if(metaData != null){
+    		tableName = metaData.getTableName();
+    	} else { 
+    		tableName = SVT_CHANNELS; 
+    	}
+    	// Get the SVT channel map from the conditions database
+    	SvtChannelCollection channels 
+    		= dbConditionsManager.getCachedConditions(SvtChannelCollection.class, tableName).getCachedData();
+    
+    	return channels;
+    }
+    
+    private SvtCalibrationCollection getCalibrations(DatabaseConditionsManager dbConditionsManager){
+    	
+        // Get the table name containing the SVT calibrations (baseline, noise)
+        // from the database configuration.  If it doesn't exist, use the 
+        // default value.
+        metaData = dbConditionsManager.findTableMetaData(SvtCalibrationCollection.class);
+    	if(metaData != null){
+    		tableName = metaData.getTableName();
+    	} else { 
+    		tableName = SVT_CALIBRATIONS; 
+    	}
+    	// Get the calibrations from the conditions database
+        SvtCalibrationCollection calibrations = dbConditionsManager.getCachedConditions(SvtCalibrationCollection.class, tableName).getCachedData();
+    
+        return calibrations;
+    }
+    
+    private SvtShapeFitParametersCollection getShapeFitParameters(DatabaseConditionsManager dbConditionsManager){
+    	// Get the table name containing the SVT pulse shape parameters from 
+    	// the database configuration.  If it doesn't exist, use the default value.
+    	metaData = dbConditionsManager.findTableMetaData(SvtShapeFitParametersCollection.class);
+    	if(metaData != null){
+    		tableName = metaData.getTableName();
+    	} else { 
+    		tableName = SVT_PULSE_PARAMETERS; 
+    	}
+    	// Add pulse parameters by channel.
+    	SvtShapeFitParametersCollection shapeFitParametersCollection = dbConditionsManager.getCachedConditions(SvtShapeFitParametersCollection.class, tableName).getCachedData();
+    
+    	return shapeFitParametersCollection;
+    }
+}