LISTSERV mailing list manager LISTSERV 16.5

Help for LCDET-SVN Archives


LCDET-SVN Archives

LCDET-SVN Archives


LCDET-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

LCDET-SVN Home

LCDET-SVN Home

LCDET-SVN  October 2014

LCDET-SVN October 2014

Subject:

r3403 - in /projects/lcsim/trunk/detector-framework/src/test: java/org/lcsim/detector/converter/compact/HpsTestRunSiSensorConverterTest.java resources/org/lcsim/geometry/subdetector/HpsTestRunSiSensorConverterTest.xml

From:

[log in to unmask]

Reply-To:

Notification of commits to the lcdet svn repository <[log in to unmask]>

Date:

Wed, 29 Oct 2014 07:35:45 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (269 lines)

Author: [log in to unmask]
Date: Wed Oct 29 00:35:43 2014
New Revision: 3403

Log:
Unit test to check if sensors of type HpsTestRunSiSensor are created when the attribute "type" of the element "module" is set to "HpsTestRunSiSensor". 

Added:
    projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/detector/converter/compact/HpsTestRunSiSensorConverterTest.java   (with props)
    projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HpsTestRunSiSensorConverterTest.xml

Added: projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/detector/converter/compact/HpsTestRunSiSensorConverterTest.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/detector/converter/compact/HpsTestRunSiSensorConverterTest.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/detector/converter/compact/HpsTestRunSiSensorConverterTest.java	Wed Oct 29 00:35:43 2014
@@ -0,0 +1,95 @@
+package org.lcsim.detector.converter.compact;
+
+import java.io.InputStream;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.lcsim.detector.converter.compact.subdetector.HpsTracker2;
+import org.lcsim.detector.converter.compact.subdetector.SvtStereoLayer;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
+import org.lcsim.detector.tracker.silicon.HpsTestRunSiSensor;
+import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.GeometryReader;
+
+/**
+ * Unit test for the {@link HPSTracker2Converter} when the sensor type
+ * is equal to {@link HpsTestRunSiSensor} 
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ */
+public class HpsTestRunSiSensorConverterTest extends TestCase {
+    
+    Detector detector = null;
+   
+    //-----------------//
+    //--- Constants ---//
+    //-----------------//
+    private static final int TOTAL_NUMBER_OF_SENSORS = 20; 
+    private static final int TOTAL_NUMBER_OF_STEREO_LAYERS = 10; 
+    private static final String SUBDETECTOR_NAME = "Tracker";
+    private static final String RESOURCE = "/org/lcsim/geometry/subdetector/HpsTestRunSiSensorConverterTest.xml";
+    
+    /*public static Test suite() {
+        return new TestSuite(HPSTracker2ConverterTest.class);
+    }*/
+    
+    public void setUp() { 
+        
+        InputStream in = this.getClass().getResourceAsStream(RESOURCE);
+
+        GeometryReader reader = new GeometryReader();
+
+        try {
+            detector = reader.read(in);
+        }
+        catch (Throwable x) {
+            throw new RuntimeException(x);
+        }
+    }
+    
+    
+    public void testHPSTracker2Converter() { 
+        
+        System.out.println("[ " + this.getClass().getSimpleName() + " ]: Checking if the correct number of sensors were created.");
+        List<HpsSiSensor> sensors = detector.getSubdetector(SUBDETECTOR_NAME).getDetectorElement().findDescendants(HpsSiSensor.class);
+        assertTrue("[ " + this.getClass().getSimpleName() + " ]: The wrong number of sensors were created.", sensors.size() == TOTAL_NUMBER_OF_SENSORS);
+        System.out.println("[ " + this.getClass().getSimpleName() + " ]: Total number of sensors that were created: " + sensors.size());
+        
+        
+        System.out.println("[ " + this.getClass().getSimpleName() + " ]: Checking if sensor is instance of HpsTestRunSiSensor.");
+        for(HpsSiSensor sensor : sensors) {
+            assertTrue("[ " + this.getClass().getSimpleName() + " ]: Sensor is of wrong type: " + sensor.getClass().getSimpleName(),
+                        sensor instanceof HpsTestRunSiSensor);
+        }
+        System.out.println("[ " + this.getClass().getSimpleName() + " ]: Sensors are all instances of HpsTestRunSiSensor.");
+        
+        
+        // Check that the correct number of stereo layers were created
+        System.out.println("[ HPSTracker2ConverterTest ]: Checking if the correct number of stereo layers were created.");
+        List<SvtStereoLayer> stereoLayers = ((HpsTracker2) detector.getSubdetector(SUBDETECTOR_NAME).getDetectorElement()).getStereoPairs();
+        // Check that the number of stereo layers created is as expected
+        assertTrue("The wrong number of stereo layers were created.", stereoLayers.size() == TOTAL_NUMBER_OF_STEREO_LAYERS);
+        System.out.println("[ " + this.getClass().getSimpleName() + " ]: Total number of stereo layers created: " + stereoLayers.size());
+
+        for(SvtStereoLayer stereoLayer : stereoLayers){
+            System.out.println("[ " + this.getClass().getSimpleName() + " ]: " + stereoLayer.toString());
+            
+            // The sensors comprising the stereo layer should belong to the same detector volume
+            assertTrue("Sensors belong to different detector volumes.", 
+                    stereoLayer.getAxialSensor().getModuleNumber() == stereoLayer.getStereoSensor().getModuleNumber());
+            
+            // If the stereo layer is part of the top detector volume, the axial layers have an odd layer number.
+            // If the stereo layer is part of the bottom detector volumen, the axial layers have an even layer number. 
+            System.out.println("[ " + this.getClass().getSimpleName() + " ]: check if the layers are oriented correctly."); 
+            if(stereoLayer.getAxialSensor().isTopLayer()){
+                assertTrue("Sensors composing the stereo layer are flipped", stereoLayer.getAxialSensor().getLayerNumber()%2 == 1);
+            } else { 
+                assertTrue("Sensors composing the stereo layer are flipped", stereoLayer.getAxialSensor().getLayerNumber()%2 == 0);
+                
+            }
+        } 
+    }
+}

Added: projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HpsTestRunSiSensorConverterTest.xml
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HpsTestRunSiSensorConverterTest.xml	(added)
+++ projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HpsTestRunSiSensorConverterTest.xml	Wed Oct 29 00:35:43 2014
@@ -0,0 +1,145 @@
+<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
+       xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
+    
+    <info name="HPS-Test-JLAB-v4pt0">
+        <comment>HPS Test Proposal detector</comment>
+    </info>
+
+    <define>
+        
+        <!-- world -->
+        <constant name="world_side" value="500.0*cm" />
+        <constant name="world_x" value="world_side" />
+        <constant name="world_y" value="world_side" />
+        <constant name="world_z" value="world_side" />
+
+        <!-- tracking region -->
+        <constant name="tracking_region_radius" value="200.0*cm"/>
+        <constant name="tracking_region_min" value="5.0*cm"/>
+        <constant name="tracking_region_zmax" value="100.0*cm"/>
+
+        <!-- SVT module dimensions -->
+        <constant name="moduleLength" value="100.0"/>
+        <constant name="moduleWidth" value="40.34"/>
+
+        <!-- SVT sensor dimensions -->
+        <constant name="sensorLength" value="98.33"/>
+        <!-- Sensor width is slightly under the real value of 38.34 mm so that sisim doesn't break. -->
+        <constant name="sensorWidth" value="38.3399"/>
+
+        <!-- module tilt for stereo angle -->
+        <constant name="SA"  value="0.10" />
+        <constant name="SA2"  value="0.05" />
+        
+        <constant name="pi"  value="3.14159" />
+        <!-- module z placement -->
+        <constant name="zCent1" value="10*cm"/>
+        <constant name="zCent2" value="20*cm"/>
+        <constant name="zCent3" value="30*cm"/>
+        <constant name="zCent4" value="50*cm"/>
+        <constant name="zCent5" value="70*cm"/>
+
+        <!-- module z gaps -->
+        <constant name="ygap1" value="0.30*cm" />
+        <constant name="ygap2" value="0.60*cm" />
+        <constant name="ygap3" value="0.90*cm" />
+        <constant name="ygap4" value="1.5*cm" />
+        <constant name="ygap5" value="2.1*cm" />
+
+        <!-- module z plane distance -->
+        <constant name="zPlaneDist" value="1.0*cm"/>
+
+        <!-- ecal -->
+        <constant name="ecal_front" value="13.3/2*mm" />
+        <constant name="ecal_back" value="16/2*mm" />
+        <constant name="ecal_z" value="160/2*mm" />
+
+    </define>
+    
+    <materials>
+
+        <!-- Set tracking material to vacuum. -->
+        <material name="TrackingMaterial">
+            <D type="density" unit="g/cm3" value="0.0000000000000001"/>
+            <fraction n="1.0" ref="Air" />
+        </material>
+        
+    </materials>
+      
+    <detectors>
+       
+        <detector id="1" name="Tracker" type="HPSTracker2" readout="TrackerHits" combineHits="true">
+            <comment> The Silicon Vertex Tracker.</comment>            
+            <module name="TestRunModule" type="HpsTestRunSiSensor">
+                <box x="moduleLength" y="moduleWidth" />
+                <module_component thickness="0.032*cm" material = "Silicon" sensitive="true">
+                    <dimensions x="sensorLength" y="sensorWidth" /> 
+                </module_component>
+                <module_component thickness="0.02*cm" material = "Carbon" sensitive="false"/> 
+            </module>            
+            <layer id="1">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="21.67" z="100.0" rx="0.0" ry="0.0" rz="-1.5707963267948966"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-21.67" z="100.0" rx="0.0" ry="0.0" rz="-1.6707963267948966"/>
+            </layer>
+            <layer id="2">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="21.67" z="110.0" rx="0.0" ry="3.14159" rz="-4.812386326794897"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-21.67" z="110.0" rx="0.0" ry="3.14159" rz="-4.712386326794896"/>
+            </layer>
+            <layer id="3">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="23.17" z="200.0" rx="0.0" ry="0.0" rz="-1.5707963267948966"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-23.17" z="200.0" rx="0.0" ry="0.0" rz="-1.6707963267948966"/>
+            </layer>
+            <layer id="4">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="23.17" z="210.0" rx="0.0" ry="3.14159" rz="-4.812386326794897"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-23.17" z="210.0" rx="0.0" ry="3.14159" rz="-4.712386326794896"/>
+            </layer>
+            <layer id="5">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="24.67" z="300.0" rx="0.0" ry="0.0" rz="-1.5707963267948966"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-24.67" z="300.0" rx="0.0" ry="0.0" rz="-1.6707963267948966"/>
+            </layer>
+            <layer id="6">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="24.67" z="310.0" rx="0.0" ry="3.14159" rz="-4.812386326794897"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-24.67" z="310.0" rx="0.0" ry="3.14159" rz="-4.712386326794896"/>
+            </layer>
+            <layer id="7">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="27.67" z="500.0" rx="0.0" ry="0.0" rz="-1.5707963267948966"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-27.67" z="500.0" rx="0.0" ry="0.0" rz="-1.6207963267948966"/>
+            </layer>
+            <layer id="8">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="27.67" z="510.0" rx="0.0" ry="3.14159" rz="-4.762386326794896"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-27.67" z="510.0" rx="0.0" ry="3.14159" rz="-4.712386326794896"/>
+            </layer>
+            <layer id="9">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="30.67" z="700.0" rx="0.0" ry="0.0" rz="-1.5707963267948966"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-30.67" z="700.0" rx="0.0" ry="0.0" rz="-1.6207963267948966"/>
+            </layer>
+            <layer id="10">
+                <module_placement name="TestRunModule" id="0" x="0.0" y="30.67" z="710.0" rx="0.0" ry="3.14159" rz="-4.762386326794896"/>
+                <module_placement name="TestRunModule" id="1" x="0.0" y="-30.67" z="710.0" rx="0.0" ry="3.14159" rz="-4.712386326794896"/>
+            </layer>                                      
+        </detector>     
+    </detectors>
+    
+    <readouts>   
+        <readout name="TrackerHits">
+            <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12</id> 
+        </readout>
+    </readouts>
+
+    <fields>
+        <field type="BoxDipole" 
+               name="AnalyzingDipole"
+               x="0*cm"
+               y="0*cm"
+               z="45.22*cm"
+               dx="22.86*cm"
+               dy="7.62*cm"
+               dz="46.22*cm"
+               bx="0.0"
+               by="-0.5"
+               bz="0.0">     
+        </field>
+    </fields>
+
+</lccdd>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the LCDET-SVN list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use