Skip to content
Snippets Groups Projects
Commit bd9e4948 authored by Jeremy McCormick's avatar Jeremy McCormick
Browse files

move slic to subdir

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 1990 additions and 0 deletions
#
# CMake configuration for SLIC application.
#
# @author Jeremy McCormick <jeremym@slac.stanford.edu>
#
# minimum cmake version
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
# project name
PROJECT( SLIC )
# project version
SET( SLIC_VERSION_MAJOR 3 )
SET( SLIC_VERSION_MINOR 1 )
SET( SLIC_VERSION_PATCH 4 )
# option for enabling and disabling the logging system
OPTION( ENABLE_SLIC_LOG "enable slic logging system" ON )
# find ilcutil
FIND_PACKAGE( ILCUTIL COMPONENTS ILCSOFT_CMAKE_MODULES REQUIRED )
# load default settings from ILCSOFT_CMAKE_MODULES
INCLUDE( ilcsoft_default_settings )
INCLUDE( ExternalProject )
# add path containing CMake macros for this project
LIST( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
# macro for generating configuration output
INCLUDE( MacroGeneratePackageConfigFiles )
# find Xerces C++
find_package ( XERCES REQUIRED )
IF( NOT XERCES_FOUND )
MESSAGE( FATAL_ERROR "Xerces was not found!" )
ENDIF()
# find LCIO
FIND_PACKAGE( LCIO REQUIRED )
IF ( NOT LCIO_FOUND )
MESSAGE( FATAL_ERROR "LCIO was not found!" )
ELSE()
MESSAGE( STATUS "Found LCIO: ${LCIO_ROOT}" )
ENDIF()
# find Geant4
find_package(Geant4 REQUIRED)
IF ( NOT Geant4_FOUND )
MESSAGE( FATAL_ERROR "Geant4 was not found! Define Geant4_DIR when calling cmake." )
ELSE()
MESSAGE( STATUS "Found Geant4: ${Geant4_DIR}" )
ENDIF()
MESSAGE( STATUS "Geant4_VERSION=${Geant4_VERSION}" )
# enable visualization
find_package(Geant4 REQUIRED vis_all)
# find GDML
FIND_PACKAGE( GDML REQUIRED )
IF ( NOT GDML_FOUND )
MESSAGE( FATAL_ERROR "Geant4 was not found!" )
ELSE()
MESSAGE( STATUS "Found GDML: ${GDML_DIR}" )
ENDIF()
# find LCDD
FIND_PACKAGE( LCDD REQUIRED )
IF ( NOT LCDD_FOUND )
MESSAGE( FATAL_ERROR "LCDD was not found!" )
ELSE()
MESSAGE( STATUS "Found LCDD: ${LCDD_DIR}" )
ENDIF()
# find LCDD
FIND_PACKAGE( HEPPDT REQUIRED )
IF ( NOT LCDD_FOUND )
MESSAGE( FATAL_ERROR "HEPPDT was not found!" )
ELSE()
MESSAGE( STATUS "Found HEPPDT: ${HEPPDT_ROOT}" )
ENDIF()
#EXECUTE_PROCESS( COMMAND grep "define G4VERSION_NUMBER" ${Geant4_DIR}/source/global/management/include/G4Version.hh | sed 's/#define G4VERSION_NUMBER\ \ //g' OUTPUT_VARIABLE GEANT4_VERSION )
#EXECUTE_PROCESS( COMMAND grep "define G4VERSION_NUMBER" ${Geant4_DIR}/source/global/management/include/G4Version.hh OUTPUT_VARIABLE GEANT4_VERSION )
#MESSAGE( STATUS "GEANT4_VERSION=${GEANT4_VERSION}" )
# configure files
CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/include/PackageInfo.hh.in ${PROJECT_SOURCE_DIR}/include/PackageInfo.hh)
CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/include/Geant4VersionInfo.hh.in ${PROJECT_SOURCE_DIR}/include/Geant4VersionInfo.hh )
# additional compilation flags
ADD_DEFINITIONS( ${Geant4_DEFINITIONS} )
# turn on compilation flag for enabling log statements in preprocessor blocks
IF ( ENABLE_SLIC_LOG STREQUAL "ON" )
MESSAGE( STATUS "Enabling slic log system" )
ADD_DEFINITIONS( -DSLIC_LOG )
ENDIF()
# local includes
SET( SLIC_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include )
INCLUDE_DIRECTORIES( ${SLIC_INCLUDE_DIR} )
# include directories
INCLUDE_DIRECTORIES( ${XERCES_INCLUDE_DIR} ${LCIO_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS} ${GDML_INCLUDE_DIRS} ${LCDD_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIR} )
# add GDML link directory
LINK_DIRECTORIES( ${GDML_LIBRARY_DIR} )
LINK_DIRECTORIES( ${LCDD_LIBRARY_DIR} )
LINK_DIRECTORIES( ${LCIO_LIBRARY_DIRS} )
# libraries
LINK_LIBRARIES( ${XERCES_LIBRARY} )
LINK_LIBRARIES( ${Geant4_LIBRARIES} )
LINK_LIBRARIES( ${GDML_LIBRARY} )
LINK_LIBRARIES( ${LCDD_LIBRARY} )
LINK_LIBRARIES( ${HEPPDT_LIBRARIES} )
LINK_LIBRARIES( ${LCIO_LIBRARIES} )
# get list of sources
FILE( GLOB_RECURSE library_sources ${PROJECT_SOURCE_DIR}/src/*.cc )
# executable
ADD_EXECUTABLE( slic ${library_sources} slic.cc )
# configure and output documentation using doxygen
OPTION( INSTALL_DOC "Set to OFF to skip build/install documentation" ON )
IF ( INSTALL_DOC )
# find doxygen
FIND_PROGRAM( DOXYGEN_EXECUTABLE doxygen ${PATH} )
IF ( DOXYGEN_EXECUTABLE-NOTFOUND )
MESSAGE( FATAL_ERROR "The doxygen executable was not found." )
ENDIF()
# find dot
FIND_PROGRAM( DOT_EXECUTABLE dot ${PATH} )
IF ( DOT_EXECUTABLE-NOTFOUND )
MESSAGE( FATAL_ERROR "The dot executable was not found." )
ENDIF()
# configure doxygen output
MESSAGE( STATUS "Configuring doxygen input file" )
CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/config/doxygen/slic_doxygen.cfg.in ${PROJECT_SOURCE_DIR}/config/doxygen/slic_doxygen.cfg )
# add doxygen documentation to install step
INSTALL( CODE "EXECUTE_PROCESS( COMMAND doxygen ${PROJECT_SOURCE_DIR}/config/doxygen/slic_doxygen.cfg)" )
ELSE()
# message that documentation is off for this build
MESSAGE( STATUS "INSTALL_DOC is set to OFF. Documentation will not be created." )
ENDIF()
#get_cmake_property(_variableNames VARIABLES)
#foreach (_variableName ${_variableNames})
# message(STATUS "${_variableName}=${${_variableName}}")
#endforeach()
FIND_PATH( HEPPDT_INCLUDE_DIR HepPDT/Version.hh ${HEPPDT_DIR}/include )
FIND_LIBRARY( HEPPDT_LIBRARY HepPDT ${HEPPDT_DIR}/src/HepPDT/.libs/ )
FIND_LIBRARY( HEPPID_LIBRARY HepPID ${HEPPDT_DIR}/src/HepPID/.libs/ )
SET( HEPPDT_LIBRARIES ${HEPPDT_LIBRARY} ${HEPPID_LIBRARY} )
# Report the found libraries, quit with fatal error if any required library has not been found.
INCLUDE( FindPackageHandleStandardArgs )
FIND_PACKAGE_HANDLE_STANDARD_ARGS( HEPPDT DEFAULT_MSG HEPPDT_LIBRARIES HEPPDT_INCLUDE_DIR )
if(WIN32)
set(XERCES_LIBRARY_NAMES xerces-c_3)
else(WIN32)
set(XERCES_LIBRARY_NAMES xerces-c)
endif(WIN32)
FIND_PATH(XERCES_INCLUDE_DIR xercesc/sax/InputSource.hpp xercesc/dom/DOMDocument.hpp xercesc/dom/DOMErrorHandler.hpp ${XERCES_DIR}/include)
FIND_LIBRARY(XERCES_LIBRARY ${XERCES_LIBRARY_NAMES} ${XERCES_DIR}/lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib)
# Report the found libraries, quit with fatal error if any required library has not been found.
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XERCES DEFAULT_MSG XERCES_LIBRARY XERCES_INCLUDE_DIR)
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
SLIC: Simulator for the LInear Collider
Jeremy McCormick, SLAC
In order to use this package, first setup these programs.
Program Version
------------------------------
Geant4 6.x
Xerces C++ 2.6
GDML 1.1.0
LCDD CVS head
Refer to setup-slic-slac.sh and setup-slic-nicadd.sh
for examples of setting up the build/run environment.
To build, set LCDD_BASE to your checkout directory after
configuring the environment and type "gmake all".
Doxygen docs are available at
http://nicadd.niu.edu/~jeremy/lcd/slic/doc/html/index.html
--Jeremy
_MC Bug Fixing with Ron Cassell_
2/11/2005
-too many Mcp in the cal hits
-energy cut on saving particles? (CHANGE TO 1.0 MeV)
-too many particles per hit in cal hits
-long, not super-long format (CHANGE IN LcioHCBuilder.cc)
-needs combining logic
-aggregate hits by unique track ids
-McpHitContribList = aggregateMcpHitContribListByTrackId( calHit );
-flags "all wrong"
-backscatter flag set on initial muons
-vertexIsNotEndpointOfParent is incorrect
-startPoint incorrect
-within tolerance for Mcp not correct
-status bits (review)
-creation (do in preTracking)
-createdInSimulator
-backscatter
-vertexIsNotEndpointOfParent
-disposition (mutually exclusive) (do in postTracking)
-decayedInCal
-decayedInTracker
-stopped
-but *not* decayed
-left
-hasEndpointDaughters
-run some Kshorts, lamdas
-100 events
2/14/2005
minimumTrackingDistance == min travel for particle to be created in
sim generator
neutrinos w/ tracker hits!
-fixed bug with (<= cut) in G4TrackerSD
-seems to have fixed a bunch of stuff!
endpoint dau is totally off!
2/15/2005
-starting tracking status is incorrect (now appears to be erroneous bug)
-picking up parent's region info
-stopped flag = incorrect
-vertex not end of parent flag = incorrect
-decayedInTrackingRegion set when cal!
2/16/2005
-suspicious about hadron calorimeter
-overlaps?
-possibly SD not aggregating hits correctly
-hcal
-energy distrib is strange
2/18/05
-energy in GeV for LCIO
-manual setup not correct
-particles w/o final status (decayed, etc.)
2/22/05
-vtxnotendp bug
-probably fixed (secondaryTrack)
-manual setup not working in LCS
-probably fixed
-numSecoAtEnd ! correct (?)
-decayC
-photons
-above threshhold
-decayT
-photons below threshhold
-vtx and endp identical
-needed manual setup which didn't work!
-left a tracker hit
-left
-electrons
-above 4 MeV
-thru the beampipe
-need lum monitor
-none
-2 events w/ no status
-stuck/loopers (need status)
-photons
-below our energy threshhold
-vertex and endp look reasonable
-photon have secondaries at end and have tracker hit
-all continuous photons below threshhold
-very little energy
-tracker hit by stopping
-how get seco???
-electrons
-ionization electrons not interacting
-vtxNotEndp
-daughters at endp (after the fact)
-ex.
-muon brems photon
-photon below threshhold, no tracker hit
-photon kicks out some electron, below threshhold
-electrons do leave hit
-photon stops or pair produces
-product electron leaves hit
-electron gets trackID = muon
-need to flag all daughters past 1st level with this flag
("once chain has been broken")
2/28/05
-zpoles
-lambdas w/ kE = 0, probably okay
-gammas
-extremely short tracks obscured by hit graphic (WIRED)
-weird placement of tracker hits
-possibly "orphaned" hits
3/1/05
-ttbar
-stdhep to LCIO conv.
-"dangling" gluons and quarks (needs to be checked against input)
-some particles (e-) with no final status, similar to looper, but
no message on this from G4
-muons
-muon not flagged as decayed in tracker
\ No newline at end of file
Release Notes - SLIC - Version 1.10.0
<h2>Bug</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-63'>SLIC-63</a>] - Multiple /run/beamOn generate funny run numbers</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-66'>SLIC-66</a>] - Deprecate -z command-line switch.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-67'>SLIC-67</a>] - Integrate Makoto's Material mapper classes.</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-12'>SLIC-12</a>] - CL: orderless switches</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-19'>SLIC-19</a>] - Handle multiple options on same '-'</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-64'>SLIC-64</a>] - make schema more flexible</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-65'>SLIC-65</a>] - Automatic simulator initialization.</li>
</ul>
Release Notes - SLIC - Version 1.11.0
<h2>Bug</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-69'>SLIC-69</a>] - Charge is 0 for quarks and other short-lived, non-tracked particles.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-74'>SLIC-74</a>] - TrackerHit momenta look wrong.</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-62'>SLIC-62</a>] - Write energy of particle at its endpoint into LCIO file.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-68'>SLIC-68</a>] - Selectable magnetic field integrator stepper.</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-71'>SLIC-71</a>] - EventSourceManager should not inherit from G4VPrimaryGenerator.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-72'>SLIC-72</a>] - Store momentum of SimTrackerHits</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-73'>SLIC-73</a>] - PackageInfo should not be regenerated by user configure.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-76'>SLIC-76</a>] - Remove option to print out macro command list.</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-11'>SLIC-11</a>] - improve event debugging facilities</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-21'>SLIC-21</a>] - Refactor MCParticle handling code</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-30'>SLIC-30</a>] - current track/trackID member variables in TrajectoryManager</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-51'>SLIC-51</a>] - CL: check # of args to a switch, explicitly</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-70'>SLIC-70</a>] - All manager classes (and similar) should inherit from a common module class.</li>
</ul>
Release Notes - SLIC - Version 1.12.0
<h2>Bug</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-79'>SLIC-79</a>] - The "/generator/select" command should print an error message if the generator name is invalid.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-86'>SLIC-86</a>] - Charge is Infinite for non-tracked documentation particles.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-87'>SLIC-87</a>] - Argument to seed switch (-d) not allowed.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-89'>SLIC-89</a>] - Crash on ZH StdHep.</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-78'>SLIC-78</a>] - Deprecate TrackerHitMomentum collection now that momentum is stored in SimTrackerHits.</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-46'>SLIC-46</a>] - autoname: add date field</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-47'>SLIC-47</a>] - autoname: append run #, total # of events executed</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-53'>SLIC-53</a>] - autoname: Command should be configurable.</li>
<li>[<a href='http://jira.slac.stanford.edu/browse/SLIC-91'>SLIC-91</a>] - StdHepToLcioConverter should first create MCParticles without any parentage/daughter links.</li>
</ul>
Release Notes - SLIC - Version 1.13.0
<h2>Bug</h2>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-82'>SLIC-82</a>] - Geant4-generated primary particles are not final state.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-95'>SLIC-95</a>] - Problem running XDR file.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-106'>SLIC-106</a>] - StdHepToLcioConverter doesn't work with StdHep v5.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-116'>SLIC-116</a>] - Backspace is broken in Geant4 terminal.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-119'>SLIC-119</a>] - MCParticle production time is always zero.</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-75'>SLIC-75</a>] - Add facilities for debugging individual tracks and ranges of them.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-100'>SLIC-100</a>] - call to RunManager::BeamOn() should try to initialize if not already</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-108'>SLIC-108</a>] - Add command to get detector weight.</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-6'>SLIC-6</a>] - OSX binaries</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-83'>SLIC-83</a>] - Sim bundles for Linux, Windows and Mac.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-90'>SLIC-90</a>] - Add C++ Macro for printing filename, function and line number.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-99'>SLIC-99</a>] - make LCPhys optional</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-112'>SLIC-112</a>] - Implement path length and momentum in TrackerHit as per most recent LCIO.</li>
</ul>
<head>
<title>Release Notes - SLIC - Version 2.0</title>
</head>
<h1>Release Notes - SLIC - Version 2.0</h1>
<h2>I. Overview</h2>
<p>
These are the release notes for the SLIC 2.0 release. This
corresponds to the CVS tag v2r0p7 in the SLAC CVS.
<p>
<p>
The <a href="http://www.lcsim.org/software/slic/">slic homepage</a>
has links to documentation for this software package.
</p>
<p>
The <a
href="http://confluence.slac.stanford.edu/display/ilc/SLIC">SLIC
Wiki</a> is a good source of information where you may add comments,
corrections, etc.
</p>
<h2>II. Getting SLIC</h2>
<p>
The SLIC source code is anonymously accessible using the following command.
</p>
<p>
<i>cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co slic</i>
</p>
<p>
The sources can also be <a
href="http://source.freehep.org/jcvsweb/ilc/slic/list/slic">browsed online</a>.
<p>
Binaries are available from the <a href="http://www.lcsim.org/dist/slic/">slic distribution directory</a>.
</p>
<p>
Finally, the SimDist project is a standalone package for building slic
plus all of its dependencies. It is also accessible via the SLAC cvs.
SimDist can be obtained and built as follows.
</p>
<p>
<i>
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co SimDist<br>
cd SimDist<br>
./configure [options]<br>
make
</i>
</p>
<p>
SimDist is the preferred method for users to build slic, as
configuring slic and all 7 of its dependencies from scratch
is prone to error.
</p>
<p>
These are the current package versions used by SimDist.
</p>
<ul>
<li>clhep v1r9p2_2</li>
<li>gdml v2r5p0_2</li>
<li>geant4 v8r1p02</li>
<li>lcdd v1r11p1</li>
<li>lcio v1r7p2</li>
<li>lcphys v1r0p1</li>
<li>slic v2r0p7</li>
<li>xerces v2r7p0</li>
</ul>
<p>
Other versions <i>may or may not work</i>. In general, only the
versions withint SimDist are tested for compatability. If you are
maintaining a slic installation manually without using SimDist, it is
highly recommended that you update to these package versions or slic may
either fail to build or not work correctly.
</p>
<h2>III. This Release</h2>
<p>
Since the releases for slic have not been very regular, a number of
items from the Jira were reassigned to the 2.0 release in the interest
of consolidation. All Jira items in the 1.14.0 release were
reassigned to 2.0, and the 1.14.0 release was deleted, as it was
never released.
</p>
<p>
No major, new features have been introduced this version. See the
Improvement and New Feature sections for some minor, additional features
that were added.
</p>
<p>
A few, relatively minor, bugs were fixed. There has not been any
major reworking of MCParticle codes, etc., though there are still
several outstanding bugs in this area that are currently being worked on.
</p>
<h2>IV. Issue Summary</h2>
<p>
The <a href="https://jira.slac.stanford.edu/browse/SLIC">slic Jira</a>
is the official bug tracker for this project. All of the bug fixes,
new features, and improvements are tracked here. It should be
accessible anonymously, though you cannot comment on items unless you
are logged-in.
</p>
<p>The following was automatically generated by Jira.</p>
<h3>Bug</h3>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-2'>SLIC-2</a>] - Cannot open stdhep file if space in filename</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-114'>SLIC-114</a>] - Up arrow to cycle through previous commands is broken in Geant4 UI terminal.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-122'>SLIC-122</a>] - Output when using "-h" and "-v" is too cluttered.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-137'>SLIC-137</a>] - The -o argument incorrectly treats all paths as relative.</li>
</ul>
<h3>Improvement</h3>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-3'>SLIC-3</a>] - enums for generator type</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-139'>SLIC-139</a>] - If LCIO file exists, program should not crash.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-146'>SLIC-146</a>] - Singleton module and manager classes should be templated.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-148'>SLIC-148</a>] - Add physics list to list of autoname fields.</li>
</ul>
<h3>New Feature</h3>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-5'>SLIC-5</a>] - Should be a way to set the initial run number</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-7'>SLIC-7</a>] - Read MCP information from an LCIO file's MCParticle collection.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-10'>SLIC-10</a>] - Event timer</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-115'>SLIC-115</a>] - Write id encodings into LCIO output file.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-121'>SLIC-121</a>] - Add the name of the binary to options for autonaming.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-129'>SLIC-129</a>] - Command line option to dump GDML file.</li>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-131'>SLIC-131</a>] - SimDist: Statically linked Xerces library.</li>
</ul>
<h3>Task</h3>
<ul>
<li>[<a href='https://jira.slac.stanford.edu/browse/SLIC-120'>SLIC-120</a>] - Test the nbar and antiproton patch from Dennis.</li>
</ul>
<h2>V. Contact</h2>
<p>
Any bug reports, problems, questions, comments, etc. can be sent to the primary maintainer,
Jeremy McCormick<a href="mailto:jeremym@slac.stanford.edu">&lt;jeremym@slac.stanford.edu&gt;</a>.
</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org">
<title>Release Notes - SLIC - Version 2.1.0</title>
</head>
<body>
<p>
These are the release notes for SLIC 2.1.0 .
</p>
<h2>Summary of Major Changes</h2>
<ul>
<li>The number of events skipped is now printed out after skipping events.</li>
<li>SLIC was updated for CLHEP 2 compatibility.</li>
<li>The -h option (or printing usage) is now the default if no options are passed to the command line.</li>
<li>The output from the -v (version) and -h (usage) options was cleaned up.</li>
<li>The field 'geant4' to add the Geant4 version number from G4Version.hh to the autoname was added to list of possible autoname fields.</li>
<li>The /physics commands were rewritten to support all physics lists packaged with v 8.2 Geant4.</li>
<li>The command line parser was rewritten using getopt to be more conformant to GNU/POSIX standards. (Several Jira items follow from this.)</li>
</ul>
<h2>Bug</h2>
<ul>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-156'>SLIC-156</a>] -
MCParticle vertices outside of tracking region.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-158'>SLIC-158</a>] -
Event skipping needs informational message on number of events
actually skipped.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-162'>SLIC-162</a>] -
SLIC does not work with CLHEP 2.x versions.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-178'>SLIC-178</a>] -
Single macro argument with no option no longer works with new
command line parser.</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-157'>SLIC-157</a>] -
Make -h the default option if there are no command line arguments
given to slic.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-159'>SLIC-159</a>] -
The function EventSourceWithInputFile::skipEvents() should return
the number of events actually skipped as an unsigned int.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-160'>SLIC-160</a>] -
Better output from selecting help/usage, version, or arguments at
the command line.</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-173'>SLIC-173</a>] -
Add Geant4 version to list of possible autoname fields.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-179'>SLIC-179</a>] -
Allow usage of any Geant4 physics lists defined in
$G4INSTALL/source/physics_lists/include</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-113'>SLIC-113</a>] -
Order of command-line arguments should not have any effect.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-161'>SLIC-161</a>] -
Rewrite command line processing using getopt.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-166'>SLIC-166</a>] -
Check for getopt in configure.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-167'>SLIC-167</a>] -
Create the getopt options string automatically based on the
CommandLineOption list.</li>
<li>[<a href=
'https://jira.slac.stanford.edu/browse/SLIC-175'>SLIC-175</a>] -
Some SimTrackerHits do not have corresponding MCParticles.</li>
</ul>
</body>
</html>
{\rtf1\ansi\deff1\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\froman\fprq2\fcharset0 Times New Roman;}{\f3\fnil\fprq2\fcharset0 Luxi Sans;}{\f4\fnil\fprq0\fcharset0 Tahoma;}}
{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs24\lang1033\snext1 Default;}
{\s2\sa120\rtlch\afs24\lang255\ltrch\dbch\afs24\langfe255\loch\fs24\lang1033\sbasedon1\snext2 Text body;}
{\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\afs24\langfe255\loch\f1\fs24\lang1033\sbasedon2\snext3 List;}
{\s4\sb120\sa120\rtlch\af4\afs20\lang255\ai\ltrch\dbch\afs20\langfe255\ai\loch\fs20\lang1033\i\sbasedon1\snext4 Caption;}
{\s5\rtlch\af4\afs24\lang255\ltrch\dbch\afs24\langfe255\loch\fs24\lang1033\sbasedon1\snext5 Index;}
{\*\cs7\cf0\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs24\lang1033 Numbering Symbols;}
}
{\info{\creatim\yr2005\mo5\dy13\hr14\min57}{\revtim\yr1601\mo1\dy1\hr0\min0}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6450}}\deftab709
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn706\margrsxn734\margtsxn662\margbsxn662\pgdscnxt0 Default;}}
{\*\pgdscno0}\paperh15840\paperw12240\margl706\margr734\margt662\margb662\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn706\margrsxn734\margtsxn662\margbsxn662\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \ltrpar\s1\cf0\ul\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 Simulation ToDos}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033{\loch\f1\fs16\lang1033\i0\b{\b __General__}}{\loch\f1\fs16\lang1033\line -docs}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -update \ldblquote Getting Started\rdblquote Guide}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -refactoring}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -separate codes by area (as in GDML, Mokka)}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -build and configuration}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -Geant4 build settings should be \ldblquote picked-up\rdblquote from environment at configuration time and maintained with the local GMK. }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -Geant4's env.sh should not (ever) need to be sourced before building or running, just at configuration time.}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033\b {\loch\f1\fs16\lang1033\i0\b __GDML__}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -'gdml' namespace}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033\b {\loch\f1\fs16\lang1033\i0\b __LCDD__}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -'lcdd' namespace}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -segmentations}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -certification and sanity checks on 4 different types of cals, 5 cases total w/ tracker}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -cell offset percentage by layer}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -cell shapes}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -nonprojective planes of hexagonal cells}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -ID system in sim / reco / analysis\tab }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -more general approach to ID creation}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -explicit 32/64 bit ids}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -allow Ids of any length}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -check ranges of input data against the field using a mask\tab }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -check for cal hit aggregation using IDs rather than glob coord. (but this is problemmatic when no idspecref exists)}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -LCDD examples (actually packaged with SLIC)\line \tab -Testbeam with realistic cells}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -3, 6, 12 in hcal; dead tubes in TCMT strips}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -SiD }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -envelopes with \ldblquote corners\rdblquote }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -D09 / D10}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -all solids}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -all types of placements: replica, param, assembly, physvol}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033\b {\loch\f1\fs16\lang1033\i0\b __SLIC__}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 *-MC / secondary particle handling}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -[x]code review and bug checking (w/ RC) (ONGOING)}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -StdHep}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -handle \ldblquote gracefully\rdblquote various non-conformant StdHep files (see Lima's \ldblquote bad\rdblquote StdHeps email)}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -GPS}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -correct output for GPS single particles\tab \tab }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -G4 events}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -enable timer for single events}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -event debugging facilities}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -add event(s) to debug (produce verbose output)}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs24\lang255\ltrch\dbch\af3\afs24\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab \tab -/mcp/debugEvent [eventNum] (should dump random seed, print verbose output)}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 -CL}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab -make CL args \ldblquote orderless\rdblquote }
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -set internal flags and reorder commands}
\par \pard\plain \ltrpar\s1\cf0\sl202\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af3\afs16\lang255\ltrch\dbch\af3\afs16\langfe255\loch\f1\fs16\lang1033 {\loch\f1\fs16\lang1033\i0\b0 \tab \tab -attempt automatic initialization in order if user did not specify}
\par }
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<lcdd xmlns:lcdd="http://www.lcsim.org/schemas/lcdd/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcdd/1.0/lcdd.xsd">
<header>
<detector name="CellReadout2D" />
<generator name="GeomConverter" version="1.0" file="SteelBox.xml" checksum="3713463430" />
<author name="Jeremy McCormick" />
<comment>Test of class org.lcsim.geometry.compact.converter.lcdd.TestBeamCalorimeter</comment>
</header>
<iddict>
<idspec name="CalHits" length="64">
<idfield signed="false" label="layer" length="7" start="0" />
<idfield signed="false" label="system" length="3" start="7" />
<idfield signed="true" label="ix" length="16" start="32" />
<idfield signed="true" label="iy" length="16" start="48" />
</idspec>
</iddict>
<sensitive_detectors>
<calorimeter name="CellReadout2DTest" ecut="0.0" eunit="MeV" verbose="0" hits_collection="CalHits">
<idspecref ref="CalHits" />
<cell_readout_2d cell_size_x="1.0" cell_size_y="1.0" lunit="cm" />
</calorimeter>
</sensitive_detectors>
<limits />
<regions>
<region name="TrackingRegion" store_secondaries="true" cut="10.0" lunit="mm" threshold="1.0" eunit="MeV" />
</regions>
<display />
<gdml>
<define>
<rotation name="identity_rot" x="0.0" y="0.0" z="0.0" unit="radian" />
<position name="identity_pos" x="0.0" y="0.0" z="0.0" unit="mm" />
<constant name="tracking_region_radius" value="0.5*m" />
<constant name="tracking_region_zmax" value="1.0*m" />
<constant name="world_x" value="1.0*m" />
<constant name="world_y" value="1.0*m" />
<constant name="world_z" value="1.0*m" />
<constant name="box_x" value="2.0*cm" />
<constant name="box_y" value="2.0*cm" />
<constant name="box_z" value="1.0*mm" />
<position name="TestBeamCalorimeterTest_position" x="0.0" y="0.0" z="0.0" unit="mm" />
<position name="TestBeamCalorimeterTest_layerType0_slice0_position" x="0.0" y="0.0" z="0.0" unit="mm" />
<position name="TestBeamCalorimeterTest_layer0_position" x="0.0" y="0.0" z="0.0" unit="mm" />
</define>
<materials>
<element name="N" formula="N" Z="7.0">
<atom type="A" unit="g/mol" value="14.00674" />
</element>
<element name="O" formula="O" Z="8.0">
<atom type="A" unit="g/mol" value="15.9994" />
</element>
<element name="Ar" formula="Ar" Z="18.0">
<atom type="A" unit="g/mol" value="39.948" />
</element>
<material name="Air">
<D type="density" unit="g/cm3" value="0.0012" />
<fraction n="0.754" ref="N" />
<fraction n="0.234" ref="O" />
<fraction n="0.012" ref="Ar" />
</material>
<element name="Fe" formula="Fe" Z="26.0">
<atom type="A" unit="g/mol" value="55.845" />
</element>
<element name="C" formula="C" Z="6.0">
<atom type="A" unit="g/mol" value="12.0107" />
</element>
<material name="Steel235">
<D value="7.85" unit="g/cm3" />
<fraction n="0.998" ref="Fe" />
<fraction n=".002" ref="C" />
</material>
</materials>
<solids>
<box name="world_box" x="world_x" y="world_y" z="world_z" />
<tube name="tracking_cylinder" deltaphi="6.283185307179586" rmin="0.0" rmax="tracking_region_radius" z="tracking_region_zmax" />
<box name="TestBeamCalorimeterTest_box" x="box_x" y="box_y" z="box_z" />
<box name="TestBeamCalorimeterTest_layerType0_box" x="box_x" y="box_y" z="box_z" />
<box name="TestBeamCalorimeterTest_layerType0_slice0_box" x="box_x" y="box_y" z="box_z" />
</solids>
<structure>
<volume name="TestBeamCalorimeterTest_layerType0_slice0">
<materialref ref="Steel235" />
<solidref ref="TestBeamCalorimeterTest_layerType0_slice0_box" />
<sdref ref="CellReadout2DTest" />
</volume>
<volume name="TestBeamCalorimeterTest_layerType0">
<materialref ref="Air" />
<solidref ref="TestBeamCalorimeterTest_layerType0_box" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_layerType0_slice0" />
<positionref ref="TestBeamCalorimeterTest_layerType0_slice0_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="slice" value="0" />
</physvol>
</volume>
<volume name="TestBeamCalorimeterTest_envelope">
<materialref ref="Air" />
<solidref ref="TestBeamCalorimeterTest_box" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_layerType0" />
<positionref ref="TestBeamCalorimeterTest_layer0_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="layer" value="0" />
</physvol>
</volume>
<volume name="tracking_volume">
<materialref ref="Air" />
<solidref ref="tracking_cylinder" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_envelope" />
<positionref ref="TestBeamCalorimeterTest_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="system" value="0" />
</physvol>
<regionref ref="TrackingRegion" />
</volume>
<volume name="world_volume">
<materialref ref="Air" />
<solidref ref="world_box" />
<physvol>
<volumeref ref="tracking_volume" />
<positionref ref="identity_pos" />
<rotationref ref="identity_rot" />
</physvol>
</volume>
</structure>
<setup name="Default" version="1.0">
<world ref="world_volume" />
</setup>
</gdml>
<fields />
</lcdd>
<?xml version="1.0" encoding="UTF-8"?>
<lcdd xmlns:lcdd="http://www.lcsim.org/schemas/lcdd/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcdd/1.0/lcdd.xsd">
<header>
<detector name="SteelBox" />
<generator name="GeomConverter" version="1.0" file="SteelBox.xml" checksum="3713463430" />
<author name="Jeremy McCormick" />
<comment>Test of class org.lcsim.geometry.compact.converter.lcdd.TestBeamCalorimeter</comment>
</header>
<iddict>
<idspec name="CalHits" length="64">
<idfield signed="false" label="layer" length="7" start="0" />
<idfield signed="false" label="system" length="3" start="7" />
<idfield signed="true" label="x" length="16" start="32" />
<idfield signed="true" label="y" length="16" start="48" />
</idspec>
</iddict>
<!--
<sensitive_detectors>
<calorimeter name="TestBeamCalorimeterTest" ecut="0.0" eunit="MeV" verbose="0" hits_collection="CalHits">
<idspecref ref="CalHits" />
<grid_xyz grid_size_x="10.0" grid_size_y="10.0" grid_size_z="0.0" />
</calorimeter>
</sensitive_detectors>
-->
<limits />
<regions>
<region name="TrackingRegion" store_secondaries="true" />
<region name="killEmAll" store_secondaries="true" kill_tracks="true" />
</regions>
<display />
<gdml>
<define>
<rotation name="identity_rot" x="0.0" y="0.0" z="0.0" unit="radian" />
<rotation name="reflect_rot" x="3.141592653589793" y="0.0" z="0.0" unit="radian" />
<position name="identity_pos" x="0.0" y="0.0" z="0.0" unit="mm" />
<constant name="tracking_region_zmax" value="2000.0" />
<constant name="world_side" value="5000.0" />
<constant name="box_size" value="1000.0" />
<constant name="tracking_region_radius" value="1000.0" />
<position name="TestBeamCalorimeterTest_position" x="0.0" y="0.0" z="0.0" unit="mm" />
<position name="TestBeamCalorimeterTest_layerType0_slice0_position" x="0.0" y="0.0" z="0.0" unit="mm" />
<position name="TestBeamCalorimeterTest_layer0_position" x="0.0" y="0.0" z="0.0" unit="mm" />
</define>
<materials>
<element name="N" formula="N" Z="7.0">
<atom type="A" unit="g/mol" value="14.00674" />
</element>
<element name="O" formula="O" Z="8.0">
<atom type="A" unit="g/mol" value="15.9994" />
</element>
<element name="Ar" formula="Ar" Z="18.0">
<atom type="A" unit="g/mol" value="39.948" />
</element>
<material name="Air">
<D type="density" unit="g/cm3" value="0.0000000000000000001" />
<fraction n="0.754" ref="N" />
<fraction n="0.234" ref="O" />
<fraction n="0.012" ref="Ar" />
</material>
<element name="Fe" formula="Fe" Z="26.0">
<atom type="A" unit="g/mol" value="55.845" />
</element>
<element name="C" formula="C" Z="6.0">
<atom type="A" unit="g/mol" value="12.0107" />
</element>
<material name="Steel235">
<D value="7.85" unit="g/cm3" />
<fraction n="0.998" ref="Fe" />
<fraction n=".002" ref="C" />
</material>
</materials>
<solids>
<box name="world_box" x="world_side" y="world_side" z="world_side" />
<tube name="tracking_cylinder" deltaphi="6.283185307179586" rmin="0.0" rmax="tracking_region_radius" z="2*tracking_region_zmax" />
<box name="TestBeamCalorimeterTest_box" x="box_size" y="box_size" z="box_size" />
</solids>
<structure>
<volume name="TestBeamCalorimeterTest_envelope">
<materialref ref="Air" />
<solidref ref="TestBeamCalorimeterTest_box" />
<regionref ref="killEmAll" />
</volume>
<volume name="tracking_volume">
<materialref ref="Air" />
<solidref ref="tracking_cylinder" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_envelope" />
<positionref ref="TestBeamCalorimeterTest_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="system" value="0" />
</physvol>
<regionref ref="TrackingRegion" />
</volume>
<volume name="world_volume">
<materialref ref="Air" />
<solidref ref="world_box" />
<physvol>
<volumeref ref="tracking_volume" />
<positionref ref="identity_pos" />
<rotationref ref="identity_rot" />
</physvol>
</volume>
</structure>
<setup name="Default" version="1.0">
<world ref="world_volume" />
</setup>
</gdml>
<fields />
</lcdd>
<?xml version="1.0" encoding="UTF-8"?>
<lcdd xmlns:lcdd="http://www.lcsim.org/schemas/lcdd/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcdd/1.0/lcdd.xsd">
<header>
<detector name="SteelBox" />
<generator name="GeomConverter" version="1.0" file="SteelBox.xml" checksum="3713463430" />
<author name="Jeremy McCormick" />
<comment>Test of class org.lcsim.geometry.compact.converter.lcdd.TestBeamCalorimeter</comment>
</header>
<iddict>
<idspec name="CalHits" length="64">
<idfield signed="false" label="layer" length="7" start="0" />
<idfield signed="false" label="system" length="3" start="7" />
<idfield signed="true" label="x" length="16" start="32" />
<idfield signed="true" label="y" length="16" start="48" />
</idspec>
</iddict>
<sensitive_detectors>
<calorimeter name="TestBeamCalorimeterTest" ecut="0.0" eunit="MeV" verbose="0" hits_collection="CalHits">
<idspecref ref="CalHits" />
<grid_xyz grid_size_x="10.0" grid_size_y="10.0" grid_size_z="0.0" />
</calorimeter>
</sensitive_detectors>
<limits />
<regions>
<region name="TrackingRegion" store_secondaries="true" cut="10.0" lunit="mm" threshold="1.0" eunit="MeV" />
</regions>
<display />
<gdml>
<define>
<rotation name="identity_rot" x="0.0" y="0.0" z="0.0" unit="radian" />
<rotation name="reflect_rot" x="3.141592653589793" y="0.0" z="0.0" unit="radian" />
<position name="identity_pos" x="0.0" y="0.0" z="0.0" unit="mm" />
<constant name="world_x" value="50000.0" />
<constant name="tracking_region_zmax" value="2000.0" />
<constant name="world_z" value="50000.0" />
<constant name="world_side" value="50000.0" />
<constant name="world_y" value="50000.0" />
<constant name="cm" value="10.0" />
<constant name="tracking_region_radius" value="10000.0" />
<position name="TestBeamCalorimeterTest_position" x="0.0" y="0.0" z="0.0" unit="mm" />
<position name="TestBeamCalorimeterTest_layerType0_slice0_position" x="0.0" y="0.0" z="0.0" unit="mm" />
<position name="TestBeamCalorimeterTest_layer0_position" x="0.0" y="0.0" z="0.0" unit="mm" />
</define>
<materials>
<element name="N" formula="N" Z="7.0">
<atom type="A" unit="g/mol" value="14.00674" />
</element>
<element name="O" formula="O" Z="8.0">
<atom type="A" unit="g/mol" value="15.9994" />
</element>
<element name="Ar" formula="Ar" Z="18.0">
<atom type="A" unit="g/mol" value="39.948" />
</element>
<material name="Air">
<D type="density" unit="g/cm3" value="0.0012" />
<fraction n="0.754" ref="N" />
<fraction n="0.234" ref="O" />
<fraction n="0.012" ref="Ar" />
</material>
<element name="Fe" formula="Fe" Z="26.0">
<atom type="A" unit="g/mol" value="55.845" />
</element>
<element name="C" formula="C" Z="6.0">
<atom type="A" unit="g/mol" value="12.0107" />
</element>
<material name="Steel235">
<D value="7.85" unit="g/cm3" />
<fraction n="0.998" ref="Fe" />
<fraction n=".002" ref="C" />
</material>
</materials>
<solids>
<box name="world_box" x="world_x" y="world_y" z="world_z" />
<tube name="tracking_cylinder" deltaphi="6.283185307179586" rmin="0.0" rmax="tracking_region_radius" z="2*tracking_region_zmax" />
<box name="TestBeamCalorimeterTest_box" x="5000.0" y="5000.0" z="5000.0" />
<box name="TestBeamCalorimeterTest_layerType0_box" x="5000.0" y="5000.0" z="5000.0" />
<box name="TestBeamCalorimeterTest_layerType0_slice0_box" x="5000.0" y="5000.0" z="5000.0" />
</solids>
<structure>
<volume name="TestBeamCalorimeterTest_layerType0_slice0">
<materialref ref="Steel235" />
<solidref ref="TestBeamCalorimeterTest_layerType0_slice0_box" />
</volume>
<volume name="TestBeamCalorimeterTest_layerType0">
<materialref ref="Air" />
<solidref ref="TestBeamCalorimeterTest_layerType0_box" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_layerType0_slice0" />
<positionref ref="TestBeamCalorimeterTest_layerType0_slice0_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="slice" value="0" />
</physvol>
</volume>
<volume name="TestBeamCalorimeterTest_envelope">
<materialref ref="Air" />
<solidref ref="TestBeamCalorimeterTest_box" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_layerType0" />
<positionref ref="TestBeamCalorimeterTest_layer0_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="layer" value="0" />
</physvol>
</volume>
<volume name="tracking_volume">
<materialref ref="Air" />
<solidref ref="tracking_cylinder" />
<physvol>
<volumeref ref="TestBeamCalorimeterTest_envelope" />
<positionref ref="TestBeamCalorimeterTest_position" />
<rotationref ref="identity_rot" />
<physvolid field_name="system" value="0" />
</physvol>
<regionref ref="TrackingRegion" />
</volume>
<volume name="world_volume">
<materialref ref="Air" />
<solidref ref="world_box" />
<physvol>
<volumeref ref="tracking_volume" />
<positionref ref="identity_pos" />
<rotationref ref="identity_rot" />
</physvol>
</volume>
</structure>
<setup name="Default" version="1.0">
<world ref="world_volume" />
</setup>
</gdml>
<fields />
</lcdd>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Descciption of ECal calorimeter from: NIMA 487 (2002) 291-307
-->
<lcdd xmlns:lcdd="http://www.lcsim.org/schemas/lcdd/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcdd/1.0/lcdd.xsd">
<header>
<detector name="ECAL" version="1.0" />
<author name="Tony Johnson" email="tonyj@slac.stanford.edu"/>
<generator name="DummyGenerator" version="1.0" file="DummyCompactFile.xml" checksum="0" />
<comment>ECAL: NIMA 487 (2002) 291-307</comment>
</header>
<!-- iddict not used in this example -->
<iddict/>
<!-- Specifiy which detector volumes should be considered "sensitive", and how they
should be read out. (We use a 1mm grid, far finer segmentation than used in the
real calorimeter described in NIMA 487 (2002) 291-307, since it allows the hits
to be visualized better. Since we are only interested in the total energy deposited
in the layers, and since we are ignoring gaps between pads, this is good enough -->
<sensitive_detectors>
<calorimeter name="ECAL" hits_collection="ECalHits">
<grid_xyz grid_size_x="1.0"
grid_size_y="1.0"
grid_size_z="0.0"
lunit="mm"/>
</calorimeter>
</sensitive_detectors>
<!-- limits not used in this example -->
<limits/>
<!-- We put the entire detector into a detector region and specify default cuts. We do not
store secondary particles, since this would greatly increase the size of the output file -->
<regions>
<region name="DetectorRegion"
store_secondaries="false"
cut="1.0"
lunit="mm"
threshold="1.0"
eunit="MeV" />
</regions>
<!-- Set some simple visibility attributes. We set the lead layers to be bluish, and the
scintillator layers to be orange -->
<display>
<vis name="InvisibleVis"
visible="false"
show_daughters="true"
line_style="unbroken"
drawing_style="wireframe">
<color R="1.0" G="1.0" B="1.0" alpha="1.0" />
</vis>
<vis name="LeadVis"
visible="true"
show_daughters="true"
line_style="unbroken"
drawing_style="wireframe">
<color R="0.0" G="0.5" B="1.0" alpha="1.0" />
</vis>
<vis name="ScintillatorVis"
visible="true"
show_daughters="true"
line_style="unbroken"
drawing_style="wireframe">
<color R="1.0" G="0.5" B="0.0" alpha="1.0" />
</vis>
</display>
<!-- Beginning of the standard GDML content section -->
<gdml>
<!-- Define constants. We define the position of all the elements here, as well as the sizes of the volumes.
Since GDML does not support any sort of loop construct, we must specify the position of each layer explicitly -->
<define>
<!-- ecal_constants.inc, ecal constants -->
<!-- ecal slice thicknesses -->
<constant name="ecal_lead_thickness" value="8*mm" />
<constant name="ecal_scintillator_thickness" value="2*mm" />
<!-- ecal layer thickness -->
<constant name="ecal_layer_thickness" value="ecal_lead_thickness + ecal_scintillator_thickness " />
<constant name="ecal_layer_half_thickness" value="ecal_layer_thickness/2" />
<!-- ecal layer box dims -->
<constant name="ecal_layer_x" value="100.0*cm" />
<constant name="ecal_layer_y" value="100.0*cm" />
<constant name="ecal_layer_z" value="ecal_layer_thickness" />
<!-- ecal number of layers
must match the layJ#_z, lay#_pos given below
-->
<constant name="ecal_num_layers" value="18" />
<!-- ecal dims -->
<constant name="ecal_x" value="ecal_layer_x" />
<constant name="ecal_y" value="ecal_layer_y" />
<constant name="ecal_z" value="ecal_num_layers * ecal_layer_thickness" />
<constant name="ecal_half_z" value="ecal_z/2" />
<!-- ecal slice z in layer -->
<constant name="ecal_lead_z" value="-ecal_layer_half_thickness + ecal_lead_thickness/2" />
<constant name="ecal_scintillator_z" value="ecal_lead_z + ecal_lead_thickness/2 + ecal_scintillator_thickness/2" />
<!-- ecal slice rel pos in layer -->
<position name="ecal_lead_pos" z="ecal_lead_z" />
<position name="ecal_scintillator_pos" z="ecal_scintillator_z" />
<!-- ecal layer z values -->
<constant name="ecal_lay0_z" value="-ecal_z/2 + ecal_layer_half_thickness" />
<constant name="ecal_lay1_z" value="ecal_lay0_z + ecal_layer_thickness" />
<constant name="ecal_lay2_z" value="ecal_lay1_z + ecal_layer_thickness" />
<constant name="ecal_lay3_z" value="ecal_lay2_z + ecal_layer_thickness" />
<constant name="ecal_lay4_z" value="ecal_lay3_z + ecal_layer_thickness" />
<constant name="ecal_lay5_z" value="ecal_lay4_z + ecal_layer_thickness" />
<constant name="ecal_lay6_z" value="ecal_lay5_z + ecal_layer_thickness" />
<constant name="ecal_lay7_z" value="ecal_lay6_z + ecal_layer_thickness" />
<constant name="ecal_lay8_z" value="ecal_lay7_z + ecal_layer_thickness" />
<constant name="ecal_lay9_z" value="ecal_lay8_z + ecal_layer_thickness" />
<constant name="ecal_lay10_z" value="ecal_lay9_z + ecal_layer_thickness" />
<constant name="ecal_lay11_z" value="ecal_lay10_z + ecal_layer_thickness" />
<constant name="ecal_lay12_z" value="ecal_lay11_z + ecal_layer_thickness" />
<constant name="ecal_lay13_z" value="ecal_lay12_z + ecal_layer_thickness" />
<constant name="ecal_lay14_z" value="ecal_lay13_z + ecal_layer_thickness" />
<constant name="ecal_lay15_z" value="ecal_lay14_z + ecal_layer_thickness" />
<constant name="ecal_lay16_z" value="ecal_lay15_z + ecal_layer_thickness" />
<constant name="ecal_lay17_z" value="ecal_lay16_z + ecal_layer_thickness" />
<!-- ecal layer positions -->
<position name="ecal_lay0_pos" z="ecal_lay0_z" />
<position name="ecal_lay1_pos" z="ecal_lay1_z" />
<position name="ecal_lay2_pos" z="ecal_lay2_z" />
<position name="ecal_lay3_pos" z="ecal_lay3_z" />
<position name="ecal_lay4_pos" z="ecal_lay4_z" />
<position name="ecal_lay5_pos" z="ecal_lay5_z" />
<position name="ecal_lay6_pos" z="ecal_lay6_z" />
<position name="ecal_lay7_pos" z="ecal_lay7_z" />
<position name="ecal_lay8_pos" z="ecal_lay8_z" />
<position name="ecal_lay9_pos" z="ecal_lay9_z" />
<position name="ecal_lay10_pos" z="ecal_lay10_z" />
<position name="ecal_lay11_pos" z="ecal_lay11_z" />
<position name="ecal_lay12_pos" z="ecal_lay12_z" />
<position name="ecal_lay13_pos" z="ecal_lay13_z" />
<position name="ecal_lay14_pos" z="ecal_lay14_z" />
<position name="ecal_lay15_pos" z="ecal_lay15_z" />
<position name="ecal_lay16_pos" z="ecal_lay16_z" />
<position name="ecal_lay17_pos" z="ecal_lay17_z" />
</define>
<!-- materials -->
<materials>
<element name="N" formula="N" Z="7.0">
<atom type="A" unit="g/mol" value="14.00674" />
</element>
<element name="O" formula="O" Z="8.0">
<atom type="A" unit="g/mol" value="15.9994" />
</element>
<element name="Ar" formula="Ar" Z="18.0">
<atom type="A" unit="g/mol" value="39.948" />
</element>
<material name="Air">
<D type="density" unit="g/cm3" value="0.0012" />
<fraction n="0.754" ref="N" />
<fraction n="0.234" ref="O" />
<fraction n="0.012" ref="Ar" />
</material>
<element name="Pb" formula="Pb" Z="82.0">
<atom type="A" unit="g/mol" value="207.2" />
</element>
<material name="Lead">
<D type="density" unit="g/cm3" value="11.342" />
<composite n="1" ref="Pb" />
</material>
<element name="C" formula="C" Z="6.0">
<atom type="A" unit="g/mol" value="12.0107" />
</element>
<element name="H" formula="H" Z="1.0">
<atom type="A" unit="g/mol" value="1.00794" />
</element>
<material name="Polystyrene">
<D value="1.032" unit="g/cm3" />
<composite n="19" ref="C" />
<composite n="21" ref="H" />
</material>
</materials>
<!-- solids -->
<solids>
<box name="EcalLeadBox" x="ecal_layer_x" y="ecal_layer_y" z="ecal_lead_thickness" />
<box name="EcalScintillatorBox" x="ecal_layer_x" y="ecal_layer_y" z="ecal_scintillator_thickness" />
<box name="EcalLayerBox" x="ecal_layer_x" y="ecal_layer_y" z="ecal_layer_thickness"/>
<box name="EcalBox" x="ecal_x" y="ecal_y" z="ecal_z"/>
<box name="WorldBox" x="10*m" y="10*m" z="10*m"/>
</solids>
<!-- structure, contains list of volumes. Each volume must contain a name, a material, a solid
(which defines its shape). Volumes can also contain information about how child volumes are
to be nested inside (physvol) including a position and an optional rotation -->
<structure>
<volume name="EcalLead">
<materialref ref="Lead" />
<solidref ref="EcalLeadBox" />
<visref ref="LeadVis" />
</volume>
<volume name="EcalScintillator">
<materialref ref="Polystyrene" />
<solidref ref="EcalScintillatorBox" />
<sdref ref="ECAL" />
<visref ref="ScintillatorVis" />
</volume>
<!-- single ecal layer -->
<volume name="EcalLayer">
<materialref ref="Air" />
<solidref ref="EcalLayerBox" />
<physvol>
<volumeref ref="EcalLead" />
<positionref ref="ecal_lead_pos" />
</physvol>
<physvol>
<volumeref ref="EcalScintillator" />
<positionref ref="ecal_scintillator_pos" />
</physvol>
<visref ref="InvisibleVis" />
</volume>
<!-- ecal layer positions -->
<volume name="Ecal">
<materialref ref="Air" />
<solidref ref="EcalBox" />
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay0_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay1_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay2_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay3_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay4_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay5_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay6_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay7_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay9_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay9_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay10_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay11_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay12_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay13_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay14_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay15_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay16_pos" />
</physvol>
<physvol>
<volumeref ref="EcalLayer" />
<positionref ref="ecal_lay17_pos" />
</physvol>
<regionref ref="DetectorRegion"/>
</volume>
<volume name="World">
<materialref ref="Air" />
<solidref ref="WorldBox" />
<physvol>
<volumeref ref="Ecal" />
</physvol>
</volume>
</structure>
<!-- setup, defines which volume Geant4 should consider the "world" volume. All other volumes must be nested within this volume. -->
<setup name="Default" version="1.0">
<world ref="World" />
</setup>
</gdml>
<!-- No magnetic fields in this example -->
<fields/>
</lcdd>
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Header: /nfs/slac/g/lcd/cvs/lcdroot/slic/examples/cal/ecap.lcdd,v 1.9 2005-03-25 02:43:31 jeremy Exp $
Octagonal calorimeter endcap compose of trapezoid sections.
This geometry has 3 layers in the cal,
and each layer is composed of an absorber
and active sublayer.
-->
<lcdd xmlns:lcdd="http://www.lcsim.org/schemas/lcdd/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcdd/1.0/lcdd.xsd">
<header>
<detector name="CalEcapExample"
version="1.0" />
<author name="Your Name"
email="your@email.com"/>
<generator name="MyDetectorGenerator"
version="1.0"
file="MyDetectorCompactFile.xml"
checksum="0" />
<comment>
Calorimeter endcap example with a few layers.
</comment>
</header>
<iddict>
</iddict>
<sensitive_detectors>
<calorimeter name="CalEcapSD"
hits_collection="CalEcapHits">
<grid_xyz grid_size_x="1.0"
grid_size_y="0.0"
grid_size_z="1.0" />
</calorimeter>
</sensitive_detectors>
<limits>
</limits>
<regions>
<region name="CalEcapRegion"
store_secondaries="false"
cut="1.0"
lunit="mm"
/>
</regions>
<display>
</display>
<gdml>
<define>
<!-- ident -->
<position name="identity_pos" />
<rotation name="identity_rot" />
<!-- "user parameters" -->
<constant name="num_sides" value="8" />
<constant name="inner_radius" value="500.0*mm" />
<constant name="sect_trans_dim" value="500.0*mm" />
<!-- layers -->
<constant name="abs_thickness" value="20.0*mm" />
<constant name="sens_thickness" value="5.0*mm" />
<constant name="layer_thickness" value="abs_thickness + sens_thickness" />
<constant name="num_layers" value="3" />
<!-- section -->
<constant name="outer_radius" value="inner_radius + sect_trans_dim" />
<constant name="sect_thickness" value="num_layers * layer_thickness" />
<constant name="sect_long_dim" value="sect_thickness" />
<constant name="sect_center_radius" value="inner_radius + sect_trans_dim / 2" />
<constant name="inner_angle" value="(360/num_sides)" />
<constant name="half_inner_angle" value="inner_angle/2"/>
<constant name="inner_face" value="( inner_radius * tan( half_inner_angle * deg ) ) * 2" />
<constant name="outer_face" value="( outer_radius * tan( half_inner_angle * deg ) ) * 2" />
<constant name="sect_rot_x" value="90.0 * deg" />
<constant name="sect_start_rot_y" value="0.0" />
<constant name="sect_rot" value="-sect_start_rot_y/2" />
<constant name="sect_start_place_angle" value="0.0" />
<!-- starting params -->
<constant name="irot" value="inner_angle * deg" />
<constant name="offrot" value="-irot / 2" />
<constant name="placerot" value="-offrot" />
<!-- sect0 -->
<constant name="sect0_rot_y" value="-offrot" />
<constant name="sect0_pos_x" value="-sect_center_radius * sin( sect0_rot_y )" />
<constant name="sect0_pos_y" value="sect_center_radius * cos( sect0_rot_y )" />
<position name="sect0_pos"
x="sect0_pos_x"
y="sect0_pos_y"
z="0.0" />
<rotation name="sect0_rot"
x="sect_rot_x"
y="sect0_rot_y"
z="0.0"
/>
<!-- sect1 -->
<constant name="sect1_rot_y" value="sect0_rot_y - irot" />
<constant name="sect1_pos_x" value="-sect_center_radius * sin( sect1_rot_y )" />
<constant name="sect1_pos_y" value="sect_center_radius * cos( sect1_rot_y )" />
<position name="sect1_pos"
x="sect1_pos_x"
y="sect1_pos_y"
z="0.0" />
<rotation name="sect1_rot"
x="sect_rot_x"
y="sect1_rot_y"
z="0.0"
/>
<!-- sect2 -->
<constant name="sect2_rot_y" value="sect1_rot_y - irot" />
<constant name="sect2_pos_x" value="-sect_center_radius * sin( sect2_rot_y )" />
<constant name="sect2_pos_y" value="sect_center_radius * cos( sect2_rot_y )" />
<position name="sect2_pos"
x="sect2_pos_x"
y="sect2_pos_y"
z="0.0" />
<rotation name="sect2_rot"
x="sect_rot_x"
y="sect2_rot_y"
z="0.0" />
<!-- sect3 -->
<constant name="sect3_rot_y" value="sect2_rot_y - irot" />
<constant name="sect3_pos_x" value="-sect_center_radius * sin( sect3_rot_y )" />
<constant name="sect3_pos_y" value="sect_center_radius * cos( sect3_rot_y )" />
<position name="sect3_pos"
x="sect3_pos_x"
y="sect3_pos_y"
z="0.0" />
<rotation name="sect3_rot"
x="sect_rot_x"
y="sect3_rot_y"
z="0.0" />
<!-- sect4 -->
<constant name="sect4_rot_y" value="sect3_rot_y - irot" />
<constant name="sect4_pos_x" value="-sect_center_radius * sin( sect4_rot_y )" />
<constant name="sect4_pos_y" value="sect_center_radius * cos( sect4_rot_y )" />
<position name="sect4_pos"
x="sect4_pos_x"
y="sect4_pos_y"
z="0.0" />
<rotation name="sect4_rot"
x="sect_rot_x"
y="sect4_rot_y"
z="0.0" />
<!-- sect5 -->
<constant name="sect5_rot_y" value="sect4_rot_y - irot" />
<constant name="sect5_pos_x" value="-sect_center_radius * sin( sect5_rot_y )" />
<constant name="sect5_pos_y" value="sect_center_radius * cos( sect5_rot_y )" />
<position name="sect5_pos"
x="sect5_pos_x"
y="sect5_pos_y"
z="0.0" />
<rotation name="sect5_rot"
x="sect_rot_x"
y="sect5_rot_y"
z="0.0" />
<!-- sect6 -->
<constant name="sect6_rot_y" value="sect5_rot_y - irot" />
<constant name="sect6_pos_x" value="-sect_center_radius * sin( sect6_rot_y )" />
<constant name="sect6_pos_y" value="sect_center_radius * cos( sect6_rot_y )" />
<position name="sect6_pos"
x="sect6_pos_x"
y="sect6_pos_y"
z="0.0" />
<rotation name="sect6_rot"
x="sect_rot_x"
y="sect6_rot_y"
z="0.0" />
<!-- sect7 -->
<constant name="sect7_rot_y" value="sect6_rot_y - irot" />
<constant name="sect7_pos_x" value="-sect_center_radius * sin( sect7_rot_y )" />
<constant name="sect7_pos_y" value="sect_center_radius * cos( sect7_rot_y )" />
<position name="sect7_pos"
x="sect7_pos_x"
y="sect7_pos_y"
z="0.0" />
<rotation name="sect7_rot"
x="sect_rot_x"
y="sect7_rot_y"
z="0.0" />
<!-- angle subtended by inner_face and outside section radius -->
<constant name="layer_outer_angle" value="(180 - inner_angle) / 2" />
<!-- angle subtended by Z side of the layer box and sect side along layer -->
<constant name="layer_inner_angle" value="(180 - 90 - layer_outer_angle) * deg" />
<constant name="layer_incr_y" value="layer_thickness" />
<!-- positions in layer -->
<constant name="sens_y" value="-layer_thickness/2 + sens_thickness/2" />
<constant name="abs_y" value="sens_y + sens_thickness/2 + abs_thickness/2" />
<position name="sens_pos" y="sens_y" />
<position name="abs_pos" y="abs_y" />
<!-- layer 0 -->
<constant name="layer0_y" value="-( sect_thickness/2 ) + layer_thickness/2"/>
<position name="layer0_pos" y="layer0_y" />
<!-- layer 1 -->
<constant name="layer1_y" value="layer0_y + layer_incr_y" />
<position name="layer1_pos" y="layer1_y" />
<!-- layer 2 -->
<constant name="layer2_y" value="layer1_y + layer_incr_y" />
<position name="layer2_pos" y="layer2_y" />
<!-- world -->
<constant name="world_side" value="5000.0 * mm" />
</define>
<materials>
<element name="Argon_e"
Z="18.0"
N="40" >
<atom type="A"
unit="g/mol"
value=" 39.9480" />
</element>
<element name="Carbon_e" formula="C" Z="6.">
<atom value="12.01" />
</element>
<element name="Hydrogen_e" formula="H" Z="1.">
<atom value="1.01" />
</element>
<element name="Iron_e"
formula="Fe"
Z="26.0">
<atom value="55.85" />
</element>
<element name="Nitrogen_e"
Z="7.0"
N=" 14">
<atom type="A"
unit="g/mol"
value=" 14.01" />
</element>
<element name="Oxygen_e"
Z="8.0"
N="16">
<atom type="A"
unit="g/mol"
value=" 16.0"/>
</element>
<material name="Air" >
<D type="density"
unit="g/cm3"
value="0.0012"/>
<fraction n="0.7803" ref="Nitrogen_e"/>
<fraction n="0.2103" ref="Oxygen_e"/>
<fraction n="0.0094" ref="Argon_e"/>
</material>
<material name="StainlessSteel">
<D value="7.85" unit="g/cm3" />
<fraction n="0.998" ref="Iron_e" />
<fraction n=".002" ref="Carbon_e" />
</material>
<material name="Polystyrene">
<D value="1.032" unit="g/cm3" />
<composite n="19" ref="Carbon_e"/>
<composite n="21" ref="Hydrogen_e" />
</material>
</materials>
<solids>
<box lunit="mm"
name="world_box"
x="world_side"
y="world_side"
z="world_side" />
<trd name="sect_trd"
x1="inner_face"
x2="outer_face"
y1="sect_long_dim"
y2="sect_long_dim"
z="sect_trans_dim"
/>
<trd name="sens_trd"
x1="inner_face"
x2="outer_face"
y1="sens_thickness"
y2="sens_thickness"
z="sect_trans_dim"
/>
<trd name="abs_trd"
x1="inner_face"
x2="outer_face"
y1="abs_thickness"
y2="abs_thickness"
z="sect_trans_dim"
/>
<trd name="layer_trd"
x1="inner_face"
x2="outer_face"
y1="layer_thickness"
y2="layer_thickness"
z="sect_trans_dim"
/>
</solids>
<structure>
<!-- sublayers -->
<volume name="sens">
<materialref ref="Polystyrene" />
<solidref ref="sens_trd" />
<sdref ref="CalEcapSD" />
</volume>
<volume name="abs">
<materialref ref="StainlessSteel" />
<solidref ref="abs_trd" />
</volume>
<!-- layer volume -->
<volume name="layer">
<materialref ref="StainlessSteel" />
<solidref ref="layer_trd" />
<physvol>
<volumeref ref="sens"/>
<positionref ref="sens_pos" />
</physvol>
<physvol>
<volumeref ref="abs"/>
<positionref ref="abs_pos" />
</physvol>
</volume>
<!-- cal section -->
<volume name="sect">
<materialref ref="Air" />
<solidref ref="sect_trd" />
<physvol>
<volumeref ref="layer"/>
<positionref ref="layer0_pos" />
</physvol>
<physvol>
<volumeref ref="layer"/>
<positionref ref="layer1_pos" />
</physvol>
<physvol>
<volumeref ref="layer"/>
<positionref ref="layer2_pos" />
</physvol>
<regionref ref="CalEcapRegion" />
</volume>
<volume name="world">
<materialref ref="Air"/>
<solidref ref="world_box"/>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect0_pos" />
<rotationref ref="sect0_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect1_pos" />
<rotationref ref="sect1_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect2_pos" />
<rotationref ref="sect2_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect3_pos" />
<rotationref ref="sect3_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect4_pos" />
<rotationref ref="sect4_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect5_pos" />
<rotationref ref="sect5_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect6_pos" />
<rotationref ref="sect6_rot" />
</physvol>
<physvol>
<volumeref ref="sect" />
<positionref ref="sect7_pos" />
<rotationref ref="sect7_rot" />
</physvol>
</volume>
</structure>
<setup name="Default" version="1.0">
<world ref="world"/>
</setup>
</gdml>
<fields>
<solenoid name="theField"
inner_field="5.0"
outer_field="0.0"
zmin="0"
zmax="1000"
inner_radius="0"
outer_radius="2000"
funit="tesla"
lunit="mm"
/>
<global_field>
<fieldref ref="theField" />
</global_field>
</fields>
</lcdd>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment