diff --git a/doc/CHEP2013/DD4hep-extensions.png b/doc/CHEP2013/DD4hep-extensions.png new file mode 100644 index 0000000000000000000000000000000000000000..ea81d439068c115099872e00ebc72bf5582c473c Binary files /dev/null and b/doc/CHEP2013/DD4hep-extensions.png differ diff --git a/doc/CHEP2013/DD4hep.pdf b/doc/CHEP2013/DD4hep.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d90b17cfebed9776fda0e2c901858d226094ae2f Binary files /dev/null and b/doc/CHEP2013/DD4hep.pdf differ diff --git a/doc/CHEP2013/DD4hep.tex b/doc/CHEP2013/DD4hep.tex new file mode 100644 index 0000000000000000000000000000000000000000..f6c192b866366767738ab878fd5685d116160596 --- /dev/null +++ b/doc/CHEP2013/DD4hep.tex @@ -0,0 +1,559 @@ +\documentclass[a4paper]{jpconf} +\usepackage{graphicx} + +\begin{document} +\title{DD4hep: A Detector Description Toolkit \\ +for High Energy Physics Experiments} + +\author{ +M.Frank\textsuperscript{1}, +F.Gaede\textsuperscript{2}, +C.Grefe\textsuperscript{1}, +P.Mato\textsuperscript{1} +} + +\address{\textsuperscript{1} CERN, 1211 Geneva 23, Switzerland} +\address{\textsuperscript{2} Desy, 22607 Hamburg, Germany} + +\ead{Markus.Frank@cern.ch} + +%============================================================================= +\begin{abstract} +%============================================================================= + +\noindent +The detector description is an essential component that is used to analyze data +resulting from particle collisions in high energy physics experiments. +We will present a generic detector description toolkit +and describe the guiding requirements and the architectural design for +such a toolkit, as well as the main implementation choices. +The design is strongly driven by easy of use; +developers of detector descriptions and applications using +them should provide minimal information and minimal specific +code to achieve the desired result. +The toolkit will be built reusing already existing components +from the ROOT geometry package and provides missing functional +elements and interfaces to offer a complete and coherent +detector description solution. A natural integration to +Geant4, the detector simulation program used in high energy physics, +is provided. +\end{abstract} + +%============================================================================= +% The document starts here: +%============================================================================= + +%============================================================================= +\section{Introduction} +%============================================================================= +\label{sec:introduction} +\noindent +The development of a coherent set of software tools for the description of +High Energy Physics detectors from a single source of information has been +on the agenda of many experiments for decades. +Providing appropriate and consistent detector views to simulation, +reconstruction and analysis applications from a single information source +is crucial for the success of the experiments. +Detector description in general includes not only the geometry and the +materials used in the apparatus, but all parameters describing e.g. the +detection techniques, constants required by alignment and calibration, +description of the readout structures, conditions data, etc. + +\noindent +The design of the DD4hep toolkit\cite{bib:DD4hep} +is shaped on the experience of detector description +systems, which were implemented for the LHC experiments, in particular +the LHCb experiment~\cite{bib:LHCb,bib:LHCb-geometry}, +as well as the lessons learnt from other +implementations of geometry description tools developed for +the Linear Collider community~\cite{bib:ILD,bib:SiD}. +Designing a coherent set of tools, with most of the basic components +already existing in one form or another, is an opportunity for getting +the best of all existing solutions. +DD4hep aims to widely reuse used existing software components, in particular +the ROOT geometry package~\cite{bib:ROOT-tgeo}, part of the +ROOT project\cite{bib:ROOT}, a tool for +building, browsing, navigating and visualizing detector geometries. The +code is designed to optimize particle transport through complex +structures and works standalone with respect to any Monte-Carlo +simulation engine. The ROOT geometry package provides +sophisticated 3D visualization functionality, which is ideal for building +detector and event displays. The second component is +the Geant4 simulation toolkit~\cite{bib:geant4}, which is used to +simulate the detector response from particle collisions in complex designs. +In DD4hep the geometrical +representation provided by ROOT is the main source of information. +In addition DD4hep provides the automatic conversions to other geometrical +representations, such as Geant4, and the convenient usage of these +components without the reinvention of the existing functionality. + +\noindent +In Section~\ref{sec:architectural-concepts} the scope and the high-level +requirements of the DD4hep toolkit are elaborated (in the following +also called "the toolkit"). This is basically the high level vision +of the provided functionality to the experimental communities. +In Section~\ref{sec:toolkit-design} the high-level or architectural design +of the toolkit is presented, and in subsequent subsections design +aspects of the various functional components and their interfaces will be +introduced. + +%============================================================================= +\section{Project Scope and Requirements} +%============================================================================= +\label{sec:architectural-concepts} +\noindent +The detector description should fully describe and qualify +the detection apparatus and must expose access to all information +required to interpret event data recorded from particle collisions. +Experience from the LHC experiments has shown that a generalized +view, not limited only to geometry, is very beneficial in order to obtain +a coherent set of tools for the interpretation of collision data. +This is particularly important in later stages of the experiment's life cycle, +when a valid set of detector data must be used to analyze real or simulated +detector response from particle collisions. An example would be an alignment +application, where time dependent precise detector positions are matched +with the detector geometry. + +\noindent +The following main requirements influenced the design of the toolkit: +\begin{itemize} +\item {\bf{Full Detector Description.}} The toolkit should be able to + manage the data describing the detector geometry, the materials used + when building the structures, + visualization attributes, detector readout information, alignment, + calibration and environmental parameters - all that is + necessary to interpret event data recorded from particle collisions. +\item {\bf{The Full Experiment Life Cycle}} should be supported. + The toolkit should support the development of the detector concepts, + detector optimizations, + construction and later operation of the detector. + The transition from one phase to the next should be simple and not require + new developments. The initial phases are characterized by very $ideal$ + detector descriptions, i.e. only very few parameters are sufficient + to describe new + detector designs. Once operational, the detector will be different + from the ideal detector, and each part of the detector will have + to have its own specific parameters and conditions, + which are exposed by the toolkit. +\item {\bf{One single source of detector information}} must be sufficient + to perform all data processing applications such as simulation, + reconstruction, online trigger and data analysis. + This ensures that all applications see a coherent description. + In the past attempts by experiments to re-synchronize parallel + detector descriptions were always problematic. + Consequently, the detector description is the union of the information + needed by all applications, though the level of detail may be selectable. +\item {\bf{Ease of Use}} influenced both + the design and the im\-ple\-men\-tation. The definition of sub\-detectors, + their geometrical description and the access to con\-ditions and alignment + data should follow a minimalistic, simple and intuitive interface. + Hence, the of the developer using the toolkit is focused on specifics of + the detector design and not on technicalities handled transparently by + the toolkit. +\end{itemize} + +%============================================================================= +\begin{figure}[h] + \vspace{-1cm} + \begin{center} + \includegraphics[height=70mm] {DD4hep_big_picture.png} + \caption{The components of the DD4hep detector geometry toolkit.} + \label{fig:dd4hep-big-picture} + \end{center} + \vspace{-0.4cm} +\end{figure} + +%============================================================================= +\section{Toolkit Design} +\label{sec:toolkit-design} +%============================================================================= +\noindent +Figure~\ref{fig:dd4hep-big-picture} shows the architecture +of the main components of the toolkit and their interfaces +to the end-user applications, namely the simulation, reconstruction, +alignment and visualization. +The central element of the toolkit is the so-called generic detector +description model. This is an in-memory model, i.e., a set of C++ objects +holding the data describing the geometry and other information of +the detector. The rest of the toolkit consists of tools and interfaces +to input or output information from this generic detector model. +The model and its components will be described in subsequence sections. + +%============================================================================= +\subsection{The Compact Detector Description} +\label{sec:problem_analysis} +%============================================================================= +\noindent +Inspired from the work of the linear collider detector +simulation~\cite{bib:LCDD,bib:lcsim}, the compact detector description is used +to define an ideal detector as typically used during +the conceptual design phase of an experiment. +The compact description in its minimalistic form is probably not going to +be adequate later in the detector life cycle and +is likely to be replaced or refined when a more realistic detector +with deviations from the ideal would be needed by the experiment. + +\noindent +In the compact description the detector is parametrized in minimalistic terms +with user provided parameters in XML. +XML is an open format, the DD4hep parsers do not validate against a fix schema +and hence allow to easily introduce new elements and attributes to describe +detectors. This feature minimizes the burden on the end-user while still +supporting flexibility. +%Figure~\ref{fig:fig-vxd-xml} shows a partial example of how to describe an ideal +%silicon-based vertex detector with regular disposition of ladders +%in 2 layers in total. +Such a compact detector descriptions cannot be interpreted in a +general manner, therefore so called $Detector$ $Constructors$ are needed. + +%============================================================================= +%\begin{figure}[h] +% \begin{center} +% \includegraphics[width=16cm] {DD4hep_compact_xml.png} +% \caption{An example sniplett of the compact detector description. The +% example shows the description of a 2 layered silicon vertex +% detector.} +% \label{fig:fig-vxd-xml} +% \end{center} +% \vspace{-0.6cm} +%\end{figure} +%============================================================================= + +%============================================================================= +\subsection{Detector Constructors} +\label{sec:detector-constructors} +%============================================================================= +\noindent +Detector Constructors are relatively small code fragments that get +as input an XML element from the compact description that represents +a single detector instance. The code interprets the data and expands +its geometry model in memory using the elements from the generic detector +description model described in section~\ref{subsec:generic-model}. +The toolkit invokes these code fragments in a data driven way +using naming conventions during the initialization phase of the +application. Users focus on one +single detector type at the time, but the toolkit supports them to still +construct complex and large detector setups. +Two implementations are currently supported: One is based on +C++, which performs better and is able to detect errors at +compiler time, but the code is slightly more technical. +The other is based on Python fragments, the code is more readable and +compact but errors are only detected at execution time. + +\noindent +The compact description together with the detector constructors are sufficient +to build the detector model and to visualize it. If during the lifetime of the +experiment the detector model changes, the corresponding constructors will +need to be adapted accordingly. +DD4hep provides already a palette of basic pre-implemented geometrical detector +concepts to design experiments. In view of usage of DD4hep as a detector +description toolkit, this library may in the future also adopt +generic designs of detector components created by end users e.g. during the design +phase of future experiments. +%============================================================================= +\begin{figure}[t] + \vspace{-0.8cm} + \begin{center} + \includegraphics[height=80mm] {DD4hep_classes.png} + \caption{Class diagram with the main classes and their relations + for the Generic Detector Description Model. The implementing + ROOT classes are shown in brackets.} + \label{fig:dd4hep-detector-model} + \end{center} + \vspace{-0.5cm} +\end{figure} +%============================================================================= +\subsection{Generic Detector Description Model} +\label{subsec:generic-model} +%============================================================================= + +\noindent +This is the heart of the DD4hep detector description toolkit. Its purpose is +to build in memory a model of the detector including its geometrical aspects +as well as structural and functional aspects. The design reuses the elements +from the ROOT geometry package and extends them in case required functionality +is not available. Figure~\ref{fig:dd4hep-detector-model} illustrates the main +players and their relationships. +Any detector is modeled as a tree of $Detector$ $Elements$, the entity +central to this design, which is represented in the implementation by +the $DetElement$ class~\cite{bib:LHCb-geometry}. It offers all +applications a natural entry point to any detector part of the experiment +and represents a complete sub-detector (e.g. TPC), a part of a +sub-detector (e.g. TPC-Endcap), a detector module or any other convenient +detector device. +The main purpose is to give access to the data associated +to the detector device. For example, if the user writes some TPC reconstruction +code, accessing the TPC detector element from this code will provide access +the all TPC geometrical dimensions, the alignment and calibration constants +and other slow varying conditions such as the gas pressure, end-plate +temperatures etc. The $Detector$ $Element$ acts as a data concentrator. +Applications may access the full experiment geometry and all connected data +through a singleton object called $LCDD$, which provides +management, bookkeeping and ownership to the model instances. + +\noindent +The geometry is implemented using the ROOT geometry classes, which are used +directly without unnecessary interfaces to isolate the end-user from the +actual ROOT based implementation. There is one exception: +The constructors are wrapped to facilitate a very compact and readable +notation to end-users building custom $Detector$ $Constructors$. + +%============================================================================= +\subsection{Detector Element Tree versus the Geometry Hierarchy} +\label{subsect:detelement-hierarchy} +%============================================================================= +\noindent +The geometry part of the detector description is delegated to the ROOT classes. +$Logical$ $Volumes$ are the basic objects used in building the geometrical hierarchy. +A $Logical$ $Volume$ is a shape with its dimensions and consist of a given material. +They represent unpositioned objects which store all information about +the placement of possibly embedded volumes. The same +volume can be replicated several times in the geometry. The $Logical$ $Volume$ also +represents a system of reference with respect to its containing volumes. +The reuse of instances of $Logical$ $Volumes$ for different placements +optimizes the memory consumption and detailed geometries for complex setups +consisting of millions of volumes may be realized with reasonable amount of memory. +The difficulty is to identify a given positioned volume +in space and e.g. applying misalignment to one of these volumes. +The relationship between the Detector Element and the placements +is not defined by a single reference to the placement, but the full path +from the top of the detector geometry model to resolve existing +ambiguities due to the reuse of $Logical$ $Volumes$. +Hence, individual volumes must be identified by their full path from mother +to daughter starting from the top-level volume. + +%============================================================================= +\begin{figure}[t] + \vspace{-0.8cm} + \begin{center} + \includegraphics[height=70mm] {DD4hep_detelement_tree.png} + \caption{The object diagram of a hypothetical TPC detector showing in + parallel the $Detector$ $Element$ and the $Geometry$ hierarchy and the + relationships between the objects.} + \label{fig:dd4hep-hierarchies} + \end{center} + \vspace{-0.3cm} +\end{figure} +%============================================================================= + +\noindent +The tree structure of +Detector Elements is a parallel structure to the geometrical hierarchy. +This structure will probably not be as deep as the geometrical one since +there would not need to associate detector information at very fine-grain +level - it is unlikely that every little metallic screw +needs associated detector information such as alignment, conditions, etc. +Though this screw and many other replicas must be described in the geometry +description since it may be important e.g. for its material contribution +in the simulation application. Thus, the tree of Detector Elements is +fully degenerate and each detector element object will be placed only +once in the detector element tree as illustrated for a hypothetical +TPC detector in Figure~\ref{fig:dd4hep-hierarchies}. + +%============================================================================= +\subsection{Extensions and Views} +\label{subsect:extesions-and-views} +%============================================================================= + +\noindent +As depicted in Figure~\ref{fig:dd4hep-big-picture} the reconstruction +application will require special functionality extending the basics +offered by the common detector element. This functionality may be +implemented by a set of specialized classes that will extend the +detector element. These extensions will be in charge +of providing specific answers to the questions formulated by the +reconstruction algorithms such as pattern recognition, tracking, vertexing, +particle identification, etc. One example could be to transform a calorimeter +cell identifier into a 3D space position in the global coordinate system. +A generic detector description toolkit would be unable +to answer this concrete question, however it provides a convenient +environment for the developer to slot-in code fragments, which implement the +additional functionality using parameters stored +in the XML compact description. + +\noindent +Depending on the functionality these specialized component must be able to +either store additional data, expose additional behavior or both. Additional +behavior may easily be added overloading the $DetElement$ class using its +internal data. The internal data is public and addressed by reference, hence +any number of views extending the $DetElement$ behavior may be constructed +with very small overhead. Additional data may be added by any user at any time +to any instance of the $DetElement$ class using a simple aggregation +mechanism shown in Figure~\ref{fig:dd4hep-extensions}. Data extensions must +differ by their type. The freedom to attach virtually +any data item allows for optimized attachments depending on the +application type, such as special attachments for reconstruction, +simulation, tracking, etc. +%============================================================================= +\begin{figure}[t] + \vspace{-1cm} + \begin{center} + \includegraphics[width=95mm] {DD4hep-extensions.png} + \caption{Extensions may be attached to common Detector Elements which + extend the functionality of the common DetElement + class and support e.g. caching of precomputed values.} + \label{fig:dd4hep-extensions} + \end{center} + \vspace{-0.6cm} +\end{figure} +%============================================================================= +This design allows to build views addressing the following use-cases: +\begin{itemize} +\item{{\bf{Convenience Views}}} provide higher level abstractions + and internally group complex calculations. Such views simplify + the life of the end-users. +\item{{\bf{Optimization Views}}} allows end-users extend the data of + the common detector detector element and store precomputed + results, which would be expensive to obtain repeatedly. +\item{{\bf{Compatibility Views}}} help to ensure smooth periods of + software redesign. During the life-time of the experiment + often various software constructs are for functional reasons + re-designed and re-engineered. + Compatibility Views either adapt new data designs to existing application + code or expose new behavior based on existing data. +\end{itemize} + +%============================================================================= +\section{Simulation Support} +\label{subsect:simulation-support} +%============================================================================= +\noindent +Detector-simulation depends strongly on the use of an underlying simulation toolkit, +the most prominent candidate nowadays being Geant4~\cite{bib:geant4}. +DD4hep supports simulation activities with Geant4 providing +an automatic translation mechanism between geometry representations. +The simulation response in the active elements of the detector +is not implemented by the toolkit, since it is strongly influenced by the technical +choices and precise simulations depends on the very specific detection techniques. +In Geant4 this response is computed in software constructs called $Sensitive$ +$Detectors$. + +\noindent +Ideally DD4hep aims to provide a generic simulation application. +Similar to the palette of pre-implemented geometrical detector +concepts to design experiments, it provides a palette of $Sensitive$ +$Detectors$ to simulate the detector response in form of a component library. +Detector designers may base the simulation of a planned experiment +on these predefined components for initial design and optimization +studies. In a similar way easy access +and configuration of other user actions of Geant4 is provided. + +%============================================================================= +\section{Detector Alignment Support} +\label{subsect:alignment-support} +%============================================================================= +\noindent +The support for alignment operations is crucial to the usefulness of the +toolkit. In the linear collider community this support is basically missing +in all the currently used geometry description systems. +The possibility to apply into the detector description alignment $deltas$ +(differences with respect the ideal or measured position) and read them +from an external source is mandatory to exploit the toolkit. A typical +alignment application would consist of calculating a new set of $deltas$ +from a given starting point, which could then be loaded and applied again +in order to validate the alignment by recalculating some alignment residuals. +The ROOT geometry package supports to apply an [mis]-alignment to +$touchable$ objects in the geometry. $Touchable$ objects are identified +by the path of positioned volumes starting with the top node +(e.g. path=$/TOP/A_1/B_4/C_3$). Contrary to ordinary multiple placements +of $Logical$ $Volumes$, $touchable$ objects are degenerate and only +valid for one single volume~\cite{bib:ROOT-tgeo}. +To simplify the usage for the end user, +the identification of a positioned volume will be connected +to the Detector Element, where only the relative path with respect +to the Detector Element will have to be specified +rather the full path from the top volume. +The $delta$-values will have to be read from various data sources. +The initial implementation will be based on simple XML files, later +a connection to other sources such as the detector conditions database +is envisaged. + +%%============================================================================= +%\section{INTERCHANGE FORMATS} +%%============================================================================= +%\noindent +%Figure~1 show the possibility to output and input the geometrical +%information in some interchange format between applications. +%We will be using the Geometry Description Markup Language (GDML), +%which is an application-independent geometry description format based +%on XML [5]. +%In principle, it can also be used as the primary persistent geometry +%implementation language but its verbosity would be a natural impediment +%during the early phases of the detector development. +%Probably we would need to extent the existing GDML standard with the +%additional information we have in the generic geometry model, for +%example the detector elements, alignment constants, sensitive +%detectors, etc. This is done typically by adding new tags and +%new elements, which is naturally foreseen in XML. In this way +%we will be able to fully save a detector model and be able to +%restore it completely from a GDML file. + +%============================================================================= +\section{Conclusions} +%============================================================================= +\noindent +The design of the core of the DD4hep Detector Description Toolkit described +has been implemented to a large extent and several key aspects were addressed. +The early adoption of parts of the linear collider community is an invaluable +asset to verify the usefulness of the implemented design. These early +end-users help to continuously verify that the implemented functionality +fulfills the needs of the experiment(s). +Whereas some areas are actively worked on such as the simulation part, +other topics such as alignment and the connection of conditions to +detector elements are either not yet or very rudimentary implemented, +though they were addressed in the design. +These will be subject of future work. + + +\section*{References} +\begin{thebibliography}{9} + +\bibitem{bib:DD4hep} DD4Hep web page, http://aidasoft.web.cern.ch/DD4hep. + +\bibitem{bib:LHCb} LHCb Collaboration, + "LHCb, the Large Hadron Collider beauty experiment, reoptimised detector + design and performance", CERN/LHCC 2003-030 + +\bibitem{bib:LHCb-geometry} S. Ponce et al., + "Detector Description Framework in LHCb", + International Conference on Computing in High Energy and Nuclear Physics (CHEP 2003), + La Jolla, CA, 2003, proceedings. + +\bibitem{bib:ILD} The ILD Concept Group, + "The International Large Detector: Letter of Intent",\\ + ISBN 978-3-935702-42-3, 2009. + +\bibitem{bib:SiD} H. Aihara, P. Burrows, M. Oreglia (Editors), + "SiD Letter of Intent", + arXiv:0911.0006, 2009. + +\bibitem{bib:ROOT-tgeo} R.Brun, A.Gheata, M.Gheata, "The ROOT geometry package",\\ + Nuclear Instruments and Methods {\bf{A}} 502 (2003) 676-680. + +\bibitem{bib:ROOT} R.Brun et al., + "Root - An object oriented data analysis framework",\\ + Nuclear Instruments and Methods {\bf{A}} 389 (1997) 81–86. + +\bibitem{bib:geant4} S. Agostinelli et al., + "Geant4 - A Simulation Toolkit", \\ + Nuclear Instruments and Methods {\bf{A}} 506 (2003) 250-303. + +\bibitem{bib:LCDD} T.Johnson et al., + "LCGO - geometry description for ILC detectors", + International Conference on Computing in High Energy and Nuclear Physics (CHEP 2007), + Victoria, BC, Canada, 2012, Proceedings. + +\bibitem{bib:lcsim} N.Graf et al., + "lcsim: An integrated detector simulation, + reconstruction and analysis environment", + International Conference on Computing in High Energy and Nuclear Physics (CHEP 2012), + New York, 2012, Proceedings. + +%\bibitem{bib:GDML} R. Chytracek et al., +% "Geometry Description Markup Language for Physics Simulation and Analysis Applications", +% IEEE Trans. Nucl. Sci., Vol. 53, Issue: 5, Part 2, 2892-2896, +% http://gdml.web.cern.ch. + +\end{thebibliography} +\end{document} + \ No newline at end of file diff --git a/doc/CHEP2013/DD4hep_big_picture.png b/doc/CHEP2013/DD4hep_big_picture.png new file mode 100644 index 0000000000000000000000000000000000000000..3a679926594bb23b38497f7874ab1efab8eadb8d Binary files /dev/null and b/doc/CHEP2013/DD4hep_big_picture.png differ diff --git a/doc/CHEP2013/DD4hep_classes.png b/doc/CHEP2013/DD4hep_classes.png new file mode 100644 index 0000000000000000000000000000000000000000..0bbe6d59611387a4b2d8fe1a2813e6d238504b33 Binary files /dev/null and b/doc/CHEP2013/DD4hep_classes.png differ diff --git a/doc/CHEP2013/DD4hep_compact_xml.png b/doc/CHEP2013/DD4hep_compact_xml.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8b9ee9767f4d552ca2cb5b5b682b4158982aab Binary files /dev/null and b/doc/CHEP2013/DD4hep_compact_xml.png differ diff --git a/doc/CHEP2013/DD4hep_detelement_tree.png b/doc/CHEP2013/DD4hep_detelement_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..4f7b71bc339850443a9a32ad14bae9bff4d8d068 Binary files /dev/null and b/doc/CHEP2013/DD4hep_detelement_tree.png differ diff --git a/doc/CHEP2013/iopams.sty b/doc/CHEP2013/iopams.sty new file mode 100644 index 0000000000000000000000000000000000000000..044dde929745d48d13601b572a0f586728ebf0a4 --- /dev/null +++ b/doc/CHEP2013/iopams.sty @@ -0,0 +1,87 @@ +%% +%% This is file `iopams.sty' +%% File to include AMS fonts and extra definitions for bold greek +%% characters for use with iopart.cls +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{iopams}[1997/02/13 v1.0] +\RequirePackage{amsgen}[1995/01/01] +\RequirePackage{amsfonts}[1995/01/01] +\RequirePackage{amssymb}[1995/01/01] +\RequirePackage{amsbsy}[1995/01/01] +% +\iopamstrue % \newif\ifiopams in iopart.cls & iopbk2e.cls +% % allows optional text to be in author guidelines +% +% Bold lower case Greek letters +% +\newcommand{\balpha}{\boldsymbol{\alpha}} +\newcommand{\bbeta}{\boldsymbol{\beta}} +\newcommand{\bgamma}{\boldsymbol{\gamma}} +\newcommand{\bdelta}{\boldsymbol{\delta}} +\newcommand{\bepsilon}{\boldsymbol{\epsilon}} +\newcommand{\bzeta}{\boldsymbol{\zeta}} +\newcommand{\bfeta}{\boldsymbol{\eta}} +\newcommand{\btheta}{\boldsymbol{\theta}} +\newcommand{\biota}{\boldsymbol{\iota}} +\newcommand{\bkappa}{\boldsymbol{\kappa}} +\newcommand{\blambda}{\boldsymbol{\lambda}} +\newcommand{\bmu}{\boldsymbol{\mu}} +\newcommand{\bnu}{\boldsymbol{\nu}} +\newcommand{\bxi}{\boldsymbol{\xi}} +\newcommand{\bpi}{\boldsymbol{\pi}} +\newcommand{\brho}{\boldsymbol{\rho}} +\newcommand{\bsigma}{\boldsymbol{\sigma}} +\newcommand{\btau}{\boldsymbol{\tau}} +\newcommand{\bupsilon}{\boldsymbol{\upsilon}} +\newcommand{\bphi}{\boldsymbol{\phi}} +\newcommand{\bchi}{\boldsymbol{\chi}} +\newcommand{\bpsi}{\boldsymbol{\psi}} +\newcommand{\bomega}{\boldsymbol{\omega}} +\newcommand{\bvarepsilon}{\boldsymbol{\varepsilon}} +\newcommand{\bvartheta}{\boldsymbol{\vartheta}} +\newcommand{\bvaromega}{\boldsymbol{\varomega}} +\newcommand{\bvarrho}{\boldsymbol{\varrho}} +\newcommand{\bvarzeta}{\boldsymbol{\varsigma}} %NB really sigma +\newcommand{\bvarsigma}{\boldsymbol{\varsigma}} +\newcommand{\bvarphi}{\boldsymbol{\varphi}} +% +% Bold upright capital Greek letters +% +\newcommand{\bGamma}{\boldsymbol{\Gamma}} +\newcommand{\bDelta}{\boldsymbol{\Delta}} +\newcommand{\bTheta}{\boldsymbol{\Theta}} +\newcommand{\bLambda}{\boldsymbol{\Lambda}} +\newcommand{\bXi}{\boldsymbol{\Xi}} +\newcommand{\bPi}{\boldsymbol{\Pi}} +\newcommand{\bSigma}{\boldsymbol{\Sigma}} +\newcommand{\bUpsilon}{\boldsymbol{\Upsilon}} +\newcommand{\bPhi}{\boldsymbol{\Phi}} +\newcommand{\bPsi}{\boldsymbol{\Psi}} +\newcommand{\bOmega}{\boldsymbol{\Omega}} +% +% Bold versions of miscellaneous symbols +% +\newcommand{\bpartial}{\boldsymbol{\partial}} +\newcommand{\bell}{\boldsymbol{\ell}} +\newcommand{\bimath}{\boldsymbol{\imath}} +\newcommand{\bjmath}{\boldsymbol{\jmath}} +\newcommand{\binfty}{\boldsymbol{\infty}} +\newcommand{\bnabla}{\boldsymbol{\nabla}} +\newcommand{\bdot}{\boldsymbol{\cdot}} +% +% Symbols for caption +% +\renewcommand{\opensquare}{\mbox{$\square$}} +\renewcommand{\opentriangle}{\mbox{$\vartriangle$}} +\renewcommand{\opentriangledown}{\mbox{$\triangledown$}} +\renewcommand{\opendiamond}{\mbox{$\lozenge$}} +\renewcommand{\fullsquare}{\mbox{$\blacksquare$}} +\newcommand{\fulldiamond}{\mbox{$\blacklozenge$}} +\newcommand{\fullstar}{\mbox{$\bigstar$}} +\newcommand{\fulltriangle}{\mbox{$\blacktriangle$}} +\newcommand{\fulltriangledown}{\mbox{$\blacktriangledown$}} + +\endinput +%% +%% End of file `iopams.sty'. diff --git a/doc/CHEP2013/jpconf.cls b/doc/CHEP2013/jpconf.cls new file mode 100644 index 0000000000000000000000000000000000000000..e3cbfb6ca36d76b05248c714327f1b9bb8e27f8b --- /dev/null +++ b/doc/CHEP2013/jpconf.cls @@ -0,0 +1,957 @@ +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{jpconf} + [2007/03/07 v1.1 + LaTeX class for Journal of Physics: Conference Series] +%\RequirePackage{graphicx} +\newcommand\@ptsize{1} +\newif\if@restonecol +\newif\if@letterpaper +\newif\if@titlepage +\newif\ifiopams +\@titlepagefalse +\@letterpaperfalse +\DeclareOption{a4paper} + {\setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}% +\@letterpaperfalse} +\DeclareOption{letterpaper} + {\setlength\paperheight {279.4mm}% + \setlength\paperwidth {215.9mm}% +\@letterpapertrue} +\DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\renewcommand\@ptsize{1} +%\ExecuteOptions{A4paper, twoside} +\ExecuteOptions{A4paper} +\ProcessOptions +\DeclareMathAlphabet{\bi}{OML}{cmm}{b}{it} +\DeclareMathAlphabet{\bcal}{OMS}{cmsy}{b}{n} +\input{jpconf1\@ptsize.clo} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand\baselinestretch{} +\setlength\parskip{0\p@ \@plus \p@} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\setlength\parindent{5mm} +\setcounter{topnumber}{8} +\renewcommand\topfraction{1} +\setcounter{bottomnumber}{3} +\renewcommand\bottomfraction{.99} +\setcounter{totalnumber}{8} +\renewcommand\textfraction{0.01} +\renewcommand\floatpagefraction{.8} +\setcounter{dbltopnumber}{6} +\renewcommand\dbltopfraction{1} +\renewcommand\dblfloatpagefraction{.8} +\renewcommand{\title}{\@ifnextchar[{\@stitle}{\@ftitle}} +\pretolerance=5000 +\tolerance=8000 +% Headings for all pages apart from first +% +\def\ps@headings{% + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \let\@oddhead\@empty + \let\@evenhead\@empty + %\def\@evenhead{\thepage\hfil\itshape\rightmark}% + %\def\@oddhead{{\itshape\leftmark}\hfil\thepage}% + %\def\@evenhead{{\itshape Journal of Physics: Conference Series}\hfill}% + %\def\@oddhead{\hfill {\itshape Journal of Physics: Conference Series}}%% + \let\@mkboth\markboth + \let\sectionmark\@gobble + \let\subsectionmark\@gobble} +% +% Headings for first page +% +\def\ps@myheadings{\let\@oddfoot\@empty\let\@evenfoot\@empty + \let\@oddhead\@empty\let\@evenhead\@empty + \let\@mkboth\@gobbletwo + \let\sectionmark\@gobble + \let\subsectionmark\@gobble} +% +\def\@stitle[#1]#2{\markboth{#1}{#1}% + %\pagestyle{empty}% + \thispagestyle{myheadings} + \vspace*{25mm}{\exhyphenpenalty=10000\hyphenpenalty=10000 + %\Large +\fontsize{18bp}{24bp}\selectfont\bf\raggedright\noindent#2\par}} +\def\@ftitle#1{\markboth{#1}{#1}% + \thispagestyle{myheadings} +%\pagestyle{empty}% + \vspace*{25mm}{\exhyphenpenalty=10000\hyphenpenalty=10000 + %\Large\raggedright\noindent\bf#1\par} +\fontsize{18bp}{24bp}\selectfont\bf\noindent\raggedright#1\par}} +%AUTHOR +\renewcommand{\author}{\@ifnextchar[{\@sauthor}{\@fauthor}} +\def\@sauthor[#1]#2{\markright{#1} % for production only + \vspace*{1.5pc}% + \begin{indented}% + \item[]\normalsize\bf\raggedright#2 + \end{indented}% + \smallskip} +\def\@fauthor#1{%\markright{#1} for production only + \vspace*{1.5pc}% + \begin{indented}% + \item[]\normalsize\bf\raggedright#1 + \end{indented}% + \smallskip} +%E-MAIL +\def\eads#1{\vspace*{5pt}\address{E-mail: #1}} +\def\ead#1{\vspace*{5pt}\address{E-mail: \mailto{#1}}} +\def\mailto#1{{\tt #1}} +%ADDRESS +\newcommand{\address}[1]{\begin{indented} + \item[]\rm\raggedright #1 + \end{indented}} +\newlength{\indentedwidth} +\newdimen\mathindent +\mathindent = 6pc +\indentedwidth=\mathindent +% FOOTNOTES +%\renewcommand\footnoterule{% +% \kern-3\p@ +% \hrule\@width.4\columnwidth +% \kern2.6\p@} +%\newcommand\@makefntext[1]{% +% \parindent 1em% +% \noindent +% \hb@xt@1.8em{\hss\@makefnmark}#1} +% Footnotes: symbols selected in same order as address indicators +% unless optional argument of [<num>] use to specify required symbol, +% 1=\dag, 2=\ddag, etc +% Usage: \footnote{Text of footnote} +% \footnote[3]{Text of footnote} +% +\def\footnoterule{}% +\setcounter{footnote}{0} +\long\def\@makefntext#1{\parindent 1em\noindent + \makebox[1em][l]{\footnotesize\rm$\m@th{\fnsymbol{footnote}}$}% + \footnotesize\rm #1} +\def\@makefnmark{\normalfnmark} +\def\normalfnmark{\hbox{${\fnsymbol{footnote}}\m@th$}} +\def\altfnmark{\hbox{$^{\rm Note}\ {\fnsymbol{footnote}}\m@th$}} +\def\footNote#1{\let\@makefnmark\altfnmark\footnote{#1}\let\@makefnmark\normalfnmark} +\def\@thefnmark{\fnsymbol{footnote}} +\def\footnote{\protect\pfootnote} +\def\pfootnote{\@ifnextchar[{\@xfootnote}{\stepcounter{\@mpfn}% + \begingroup\let\protect\noexpand + \xdef\@thefnmark{\thempfn}\endgroup + \@footnotemark\@footnotetext}} +\def\@xfootnote[#1]{\setcounter{footnote}{#1}% + \addtocounter{footnote}{-1}\footnote} + +\newcommand\ftnote{\protect\pftnote} +\newcommand\pftnote[1]{\setcounter{footnote}{#1}% + \addtocounter{footnote}{-1}\footnote} +\newcommand{\fnm}[1]{\setcounter{footnote}{#1}\footnotetext} + +\def\@fnsymbol#1{\ifnum\thefootnote=99\hbox{*}\else^{\thefootnote}\fi\relax} +% +% Address marker +% +\newcommand{\ad}[1]{\noindent\hbox{$^{#1}$}\relax} +\newcommand{\adnote}[2]{\noindent\hbox{$^{#1,}$}\setcounter{footnote}{#2}% + \addtocounter{footnote}{-1}\footnote} +\def\@tnote{} +\newcounter{oldftnote} +\newcommand{\tnote}[1]{*\gdef\@tnote{% + \setcounter{oldftnote}{\c@footnote}% + \setcounter{footnote}{99}% + \footnotetext{#1}% + \setcounter{footnote}{\c@oldftnote}\addtocounter{footnote}{-1}}} +%================== +% Acknowledgments (no heading if letter) +% Usage \ack for Acknowledgments, \ackn for Acknowledgement +\def\ack{\section*{Acknowledgments}} +\def\ackn{\section*{Acknowledgment}} +%SECTION DEFINITIONS +\setcounter{secnumdepth}{3} +\newcounter {section} +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] +\renewcommand \thesection {\arabic{section}} +\renewcommand\thesubsection {\thesection.\arabic{subsection}} +\renewcommand\thesubsubsection{\thesubsection .\arabic{subsubsection}} +\renewcommand\theparagraph {\thesubsubsection.\arabic{paragraph}} +\renewcommand\thesubparagraph {\theparagraph.\arabic{subparagraph}} +%\nosections +\def\nosections{\vspace{30\p@ plus12\p@ minus12\p@} + \noindent\ignorespaces} + +%\renewcommand{\@startsection}[6] +%{% +%\if@noskipsec \leavevmode \fi +%\par +% \@tempskipa #4\relax +%%\@tempskipa 0pt\relax +% \@afterindenttrue +% \ifdim \@tempskipa <\z@ +% \@tempskipa -\@tempskipa \@afterindentfalse +% \fi +% \if@nobreak +% \everypar{}% +% \else +% \addpenalty\@secpenalty\addvspace\@tempskipa +% \fi +% \@ifstar +% {\@ssect{#3}{#4}{#5}{#6}}% +% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +%\renewcommand{\@sect}[8]{% +% \ifnum #2>\c@secnumdepth +% \let\@svsec\@empty +% \else +% \refstepcounter{#1}% +% \protected@edef\@svsec{\@seccntformat{#1}\relax}% +% \fi +% \@tempskipa #5\relax +% \ifdim \@tempskipa>\z@ +% \begingroup +% #6{% +% \@hangfrom{\hskip #3\relax\@svsec}% +% \interlinepenalty \@M #8\@@par}% +% \endgroup +% \csname #1mark\endcsname{#7}% +% \addcontentsline{toc}{#1}{% +% \ifnum #2>\c@secnumdepth \else +% \protect\numberline{\csname the#1\endcsname}% +% \fi +% #7}% +% \else +% \def\@svsechd{% +% #6{\hskip #3\relax +% \@svsec #8}% +% \csname #1mark\endcsname{#7}% +% \addcontentsline{toc}{#1}{% +% \ifnum #2>\c@secnumdepth \else +% \protect\numberline{\csname the#1\endcsname}% +% \fi +% #7}}% +% \fi +% \@xsect{#5}} +%\renewcommand{\@xsect}[1]{% +% \@tempskipa #1\relax +% \ifdim \@tempskipa>\z@ +% \par \nobreak +% \vskip \@tempskipa +% \@afterheading +% \else +% \@nobreakfalse +% \global\@noskipsectrue +% \everypar{% +% \if@noskipsec +% \global\@noskipsecfalse +% {\setbox\z@\lastbox}% +% \clubpenalty\@M +% \begingroup \@svsechd \endgroup +% \unskip +% \@tempskipa #1\relax +% \hskip -\@tempskipa +% \else +% \clubpenalty \@clubpenalty +% \everypar{}% +% \fi}% +% \fi +% \ignorespaces} +%======================================================================== +\newcommand\section{\@startsection {section}{1}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1sp}% + {\reset@font\normalsize\bfseries\raggedright}} +\newcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1sp}% + {\reset@font\normalsize\itshape\raggedright}} +\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {-1em \@plus .2em}% + {\reset@font\normalsize\itshape}} +\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\reset@font\normalsize\itshape}} +\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\itshape}} +\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth + \let\@svsec\@empty\else + \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname. }\fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \noindent{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% + \endgroup + \csname #1mark\endcsname{#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi + #7}\else + \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90 + \@svsec #8\csname #1mark\endcsname + {#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi + #7}}\fi + \@xsect{#5}} +% +\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup #4\noindent{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup + \else \def\@svsechd{#4\hskip #1\relax #5}\fi + \@xsect{#3}} +% LIST DEFINITIONS +\setlength\leftmargini {2em} +\leftmargin \leftmargini +\setlength\leftmarginii {2em} +\setlength\leftmarginiii {1.8em} +\setlength\leftmarginiv {1.6em} + \setlength\leftmarginv {1em} + \setlength\leftmarginvi {1em} +\setlength\leftmargin{\leftmargini} +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand\theenumi{\roman{enumi}} +\renewcommand\theenumii{\alph{enumii}} +\renewcommand\theenumiii{\arabic{enumiii}} +\renewcommand\theenumiv{\Alph{enumiv}} +\newcommand\labelenumi{(\theenumi)} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{(\theenumiv)} +\renewcommand\p@enumii{(\theenumi)} +\renewcommand\p@enumiii{(\theenumi.\theenumii)} +\renewcommand\p@enumiv{(\theenumi.\theenumii.\theenumiii)} +\newcommand\labelitemi{$\m@th\bullet$} +\newcommand\labelitemii{\normalfont\bfseries --} +\newcommand\labelitemiii{$\m@th\ast$} +\newcommand\labelitemiv{$\m@th\cdot$} +\renewcommand \theequation {\@arabic\c@equation} + +%%%%%%%%%%%%% Figures +\newcounter{figure} +\renewcommand\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename~\thefigure} +\newenvironment{figure}{\footnotesize\rm\@float{figure}}% + {\end@float\normalsize\rm} +\newenvironment{figure*}{\footnotesize\rm\@dblfloat{figure}}{\end@dblfloat} +\newcounter{table} +\renewcommand\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename~\thetable} +\newenvironment{table}{\footnotesize\rm\@float{table}}% + {\end@float\normalsize\rm} +\newenvironment{table*}{\footnotesize\rm\@dblfloat{table}}% + {\end@dblfloat\normalsize\rm} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +%Table Environments +%\newenvironment{tableref}[3][\textwidth]{% +%\begin{center}% +%\begin{table}% +%\captionsetup[table]{width=#1} +%\centering\caption{\label{#2}#3}}{\end{table}\end{center}} +%%%%%%%%%%%%%%%%% +%\newcounter{figure} +%\renewcommand \thefigure {\@arabic\c@figure} +%\def\fps@figure{tbp} +%\def\ftype@figure{1} +%\def\ext@figure{lof} +%\def\fnum@figure{\figurename~\thefigure} +%ENVIRONMENT: figure +%\newenvironment{figure} +% {\@float{figure}} +% {\end@float} +%ENVIRONMENT: figure* +%\newenvironment{figure*} +% {\@dblfloat{figure}} +% {\end@dblfloat} +%ENVIRONMENT: table +%\newcounter{table} +%\renewcommand\thetable{\@arabic\c@table} +%\def\fps@table{tbp} +%\def\ftype@table{2} +%\def\ext@table{lot} +%\def\fnum@table{\tablename~\thetable} +%\newenvironment{table} +% {\@float{table}} +% {\end@float} +%ENVIRONMENT: table* +%\newenvironment{table*} +% {\@dblfloat{table}} +% {\end@dblfloat} +%\newlength\abovecaptionskip +%\newlength\belowcaptionskip +%\setlength\abovecaptionskip{10\p@} +%\setlength\belowcaptionskip{0\p@} +% CAPTIONS +% Added redefinition of \@caption so captions are not written to +% aux file therefore less need to \protect fragile commands +% +\long\def\@caption#1[#2]#3{\par\begingroup + \@parboxrestore + \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{{\bf #1.} #2}% + \ifdim \wd\@tempboxa >\hsize + {\bf #1.} #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} +%\newcommand\@pnumwidth{1.55em} +%\newcommand\@tocrmarg{2.55em} +%\newcommand\@dotsep{4.5} +%\setcounter{tocdepth}{3} +%\newcommand\tableofcontents{% +% \section*{\contentsname +% \@mkboth{% +% \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% +% \@starttoc{toc}% +% } +%\newcommand*\l@part[2]{% +% \ifnum \c@tocdepth >-2\relax +% \addpenalty\@secpenalty +% \addvspace{2.25em \@plus\p@}% +% \begingroup +% \parindent \z@ \rightskip \@pnumwidth +% \parfillskip -\@pnumwidth +% {\leavevmode +% \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par +% \nobreak +% \if@compatibility +% \global\@nobreaktrue +% \everypar{\global\@nobreakfalse\everypar{}}% +% \fi +% \endgroup +% \fi} +%\newcommand*\l@section[2]{% +% \ifnum \c@tocdepth >\z@ +% \addpenalty\@secpenalty +% \addvspace{1.0em \@plus\p@}% +% \setlength\@tempdima{1.5em}% +% \begingroup +% \parindent \z@ \rightskip \@pnumwidth +% \parfillskip -\@pnumwidth +% \leavevmode \bfseries +% \advance\leftskip\@tempdima +% \hskip -\leftskip +% #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par +% \endgroup +% \fi} +%\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +%\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +%\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +%\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +%\newcommand\listoffigures{% +% \section*{\listfigurename +% \@mkboth{\MakeUppercase\listfigurename}% +% {\MakeUppercase\listfigurename}}% +% \@starttoc{lof}% +% } +%\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +%\newcommand\listoftables{% +% \section*{\listtablename +% \@mkboth{% +% \MakeUppercase\listtablename}{\MakeUppercase\listtablename}}% +% \@starttoc{lot}% +% } +%\let\l@table\l@figure +%====================================== +%ENVIRONMENTS +%====================================== +%ENVIRONMENT: indented +\newenvironment{indented}{\begin{indented}}{\end{indented}} +\newenvironment{varindent}[1]{\begin{varindent}{#1}}{\end{varindent}} +% +\def\indented{\list{}{\itemsep=0\p@\labelsep=0\p@\itemindent=0\p@ + \labelwidth=0\p@\leftmargin=\mathindent\topsep=0\p@\partopsep=0\p@ + \parsep=0\p@\listparindent=15\p@}\footnotesize\rm} +\let\endindented=\endlist +\def\varindent#1{\setlength{\varind}{#1}% + \list{}{\itemsep=0\p@\labelsep=0\p@\itemindent=0\p@ + \labelwidth=0\p@\leftmargin=\varind\topsep=0\p@\partopsep=0\p@ + \parsep=0\p@\listparindent=15\p@}\footnotesize\rm} +\let\endvarindent=\endlist +%ENVIRONMENT: abstract +\newenvironment{abstract}{% + \vspace{16pt plus3pt minus3pt} + \begin{indented} + \item[]{\bfseries \abstractname.}\quad\rm\ignorespaces} + {\end{indented}\vspace{10mm}} +%ENVIRONMENT: description +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} +\newcommand\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries #1} +%ENVIRONMENT: quotation +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item[]} + {\endlist} +%ENVIRONMENT: quote +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item[]} + {\endlist} +%ENVIRONMENT: verse +\newenvironment{verse} + {\let\\=\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item[]} + {\endlist} +%ENVIRONMENT: bibliography +\newdimen\bibindent +\setlength\bibindent{1.5em} +\def\thebibliography#1{\list + {\hfil[\arabic{enumi}]}{\topsep=0\p@\parsep=0\p@ + \partopsep=0\p@\itemsep=0\p@ + \labelsep=5\p@\itemindent=-10\p@ + \settowidth\labelwidth{\footnotesize[#1]}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \advance\leftmargin -\itemindent + \usecounter{enumi}}\footnotesize + \def\newblock{\ } + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} +\let\endthebibliography=\endlist +\def\numrefs#1{\begin{thebibliography}{#1}} +\def\endnumrefs{\end{thebibliography}} +\let\endbib=\endnumrefs +%%%%%%%%%%%%%%%%%% + + +%\newenvironment{thebibliography}[1] +% {\section*{References} +% \list{\@biblabel{\@arabic\c@enumiv}}% +% {\settowidth\labelwidth{\@biblabel{#1}}% +% \leftmargin\labelwidth +% \advance\leftmargin\labelsep +% \@openbib@code +% \usecounter{enumiv}% +% \let\p@enumiv\@empty +% \renewcommand\theenumiv{\@arabic\c@enumiv}}% +% \sloppy +% \clubpenalty4000 +% \@clubpenalty \clubpenalty +% \widowpenalty4000% +% \sfcode`\.\@m} +% {\def\@noitemerr +% {\@latex@warning{Empty `thebibliography' environment}}% +% \endlist} +%\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +%\let\@openbib@code\@empty +%ENVIRONMENT: theindex +\newenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \columnseprule \z@ + \columnsep 35\p@ + \twocolumn[\section*{\indexname}]% + \@mkboth{\MakeUppercase\indexname}% + {\MakeUppercase\indexname}% + \thispagestyle{plain}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand\@idxitem{\par\hangindent 40\p@} +\newcommand\subitem{\@idxitem \hspace*{20\p@}} +\newcommand\subsubitem{\@idxitem \hspace*{30\p@}} +\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +%===================== +\def\appendix{\@ifnextchar*{\@appendixstar}{\@appendix}} +\def\@appendix{\eqnobysec\@appendixstar} +\def\@appendixstar{\@@par + \ifnumbysec % Added 30/4/94 to get Table A1, + \@addtoreset{table}{section} % Table B1 etc if numbering by + \@addtoreset{figure}{section}\fi % section + \setcounter{section}{0} + \setcounter{subsection}{0} + \setcounter{subsubsection}{0} + \setcounter{equation}{0} + \setcounter{figure}{0} + \setcounter{table}{0} + \def\thesection{Appendix \Alph{section}} + \def\theequation{\ifnumbysec + \Alph{section}.\arabic{equation}\else + \Alph{section}\arabic{equation}\fi} % Comment A\arabic{equation} maybe + \def\thetable{\ifnumbysec % better? 15/4/95 + \Alph{section}\arabic{table}\else + A\arabic{table}\fi} + \def\thefigure{\ifnumbysec + \Alph{section}\arabic{figure}\else + A\arabic{figure}\fi}} +\def\noappendix{\setcounter{figure}{0} + \setcounter{table}{0} + \def\thetable{\arabic{table}} + \def\thefigure{\arabic{figure}}} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\renewcommand\theequation{\arabic{equation}} +% NAME OF STRUCTURES +\newcommand\contentsname{Contents} +\newcommand\listfigurename{List of Figures} +\newcommand\listtablename{List of Tables} +\newcommand\refname{References} +\newcommand\indexname{Index} +\newcommand\figurename{Figure} +\newcommand\tablename{Table} +\newcommand\partname{Part} +\newcommand\appendixname{Appendix} +\newcommand\abstractname{Abstract} +%Miscellaneous commands +\newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} +\newcommand{\jpcsit}{{\bfseries\itshape\selectfont Journal of Physics: Conference Series}} +\newcommand{\jpcs}{{\itshape\selectfont Journal of Physics: Conference Series}} +\newcommand{\iopp}{IOP Publishing} +\newcommand{\cls}{{\upshape\selectfont\texttt{jpconf.cls}}} +\newcommand{\corg}{conference organizer} +\newcommand\today{\number\day\space\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\year} + \setlength\columnsep{10\p@} +\setlength\columnseprule{0\p@} +\newcommand{\Tables}{\clearpage\section*{Tables and table captions} +\def\fps@table{hp}\noappendix} +\newcommand{\Figures}{\clearpage\section*{Figure captions} + \def\fps@figure{hp}\noappendix} +% +\newcommand{\Figure}[1]{\begin{figure} + \caption{#1} + \end{figure}} +% +\newcommand{\Table}[1]{\begin{table} + \caption{#1} + \begin{indented} + \lineup + \item[]\begin{tabular}{@{}l*{15}{l}}} +\def\endTable{\end{tabular}\end{indented}\end{table}} +\let\endtab=\endTable +% +\newcommand{\fulltable}[1]{\begin{table} + \caption{#1} + \lineup + \begin{tabular*}{\textwidth}{@{}l*{15}{@{\extracolsep{0pt plus 12pt}}l}}} +\def\endfulltable{\end{tabular*}\end{table}} +%BIBLIOGRAPHY and References +%\newcommand{\Bibliography}[1]{\section*{References}\par\numrefs{#1}} +%\newcommand{\References}{\section*{References}\par\refs} +%\def\thebibliography#1{\list +% {\hfil[\arabic{enumi}]}{\topsep=0\p@\parsep=0\p@ +% \partopsep=0\p@\itemsep=0\p@ +% \labelsep=5\p@\itemindent=-10\p@ +% \settowidth\labelwidth{\footnotesize[#1]}% +% \leftmargin\labelwidth +% \advance\leftmargin\labelsep +% \advance\leftmargin -\itemindent +% \usecounter{enumi}}\footnotesize +% \def\newblock{\ } +% \sloppy\clubpenalty4000\widowpenalty4000 +% \sfcode`\.=1000\relax} +%\let\endthebibliography=\endlist +%\def\numrefs#1{\begin{thebibliography}{#1}} +%\def\endnumrefs{\end{thebibliography}} +%\let\endbib=\endnumrefs + +\def\thereferences{\list{}{\topsep=0\p@\parsep=0\p@ + \partopsep=0\p@\itemsep=0\p@\labelsep=0\p@\itemindent=-18\p@ +\labelwidth=0\p@\leftmargin=18\p@ +}\footnotesize\rm +\def\newblock{\ } +\sloppy\clubpenalty4000\widowpenalty4000 +\sfcode`\.=1000\relax}% +\let\endthereferences=\endlist +% MISC EQUATRION STUFF +%\def\[{\relax\ifmmode\@badmath\else +% \begin{trivlist} +% \@beginparpenalty\predisplaypenalty +% \@endparpenalty\postdisplaypenalty +% \item[]\leavevmode +% \hbox to\linewidth\bgroup$ \displaystyle +% \hskip\mathindent\bgroup\fi} +%\def\]{\relax\ifmmode \egroup $\hfil \egroup \end{trivlist}\else \@badmath \fi} +%\def\equation{\@beginparpenalty\predisplaypenalty +% \@endparpenalty\postdisplaypenalty +%\refstepcounter{equation}\trivlist \item[]\leavevmode +% \hbox to\linewidth\bgroup $ \displaystyle +%\hskip\mathindent} +%\def\endequation{$\hfil \displaywidth\linewidth\@eqnnum\egroup \endtrivlist} +%\@namedef{equation*}{\[} +%\@namedef{endequation*}{\]} +%\def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation +%\global\@eqnswtrue +%\global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr +%\abovedisplayskip\topsep\ifvmode\advance\abovedisplayskip\partopsep\fi +%\belowdisplayskip\abovedisplayskip +%\belowdisplayshortskip\abovedisplayskip +%\abovedisplayshortskip\abovedisplayskip +%$$\halign to +%\linewidth\bgroup\@eqnsel$\displaystyle\tabskip\z@ +% {##{}}$&\global\@eqcnt\@ne $\displaystyle{{}##{}}$\hfil +% &\global\@eqcnt\tw@ $\displaystyle{{}##}$\hfil +% \tabskip\@centering&\llap{##}\tabskip\z@\cr} +%\def\endeqnarray{\@@eqncr\egroup +% \global\advance\c@equation\m@ne$$\global\@ignoretrue } +%\mathindent = 6pc +%% +%\def\eqalign#1{\null\vcenter{\def\\{\cr}\openup\jot\m@th +% \ialign{\strut$\displaystyle{##}$\hfil&$\displaystyle{{}##}$\hfil +% \crcr#1\crcr}}\,} +%% +%\def\eqalignno#1{\displ@y \tabskip\z@skip +% \halign to\displaywidth{\hspace{5pc}$\@lign\displaystyle{##}$% +% \tabskip\z@skip +% &$\@lign\displaystyle{{}##}$\hfill\tabskip\@centering +% &\llap{$\@lign\hbox{\rm##}$}\tabskip\z@skip\crcr +% #1\crcr}} +%% +\newif\ifnumbysec +\def\theequation{\ifnumbysec + \arabic{section}.\arabic{equation}\else + \arabic{equation}\fi} +\def\eqnobysec{\numbysectrue\@addtoreset{equation}{section}} +\newcounter{eqnval} +\def\numparts{\addtocounter{equation}{1}% + \setcounter{eqnval}{\value{equation}}% + \setcounter{equation}{0}% + \def\theequation{\ifnumbysec + \arabic{section}.\arabic{eqnval}{\it\alph{equation}}% + \else\arabic{eqnval}{\it\alph{equation}}\fi}} +\def\endnumparts{\def\theequation{\ifnumbysec + \arabic{section}.\arabic{equation}\else + \arabic{equation}\fi}% + \setcounter{equation}{\value{eqnval}}} +% +\def\cases#1{% + \left\{\,\vcenter{\def\\{\cr}\normalbaselines\openup1\jot\m@th% + \ialign{\strut$\displaystyle{##}\hfil$&\tqs + \rm##\hfil\crcr#1\crcr}}\right.}% +\def\eqalign#1{\null\vcenter{\def\\{\cr}\openup\jot\m@th + \ialign{\strut$\displaystyle{##}$\hfil&$\displaystyle{{}##}$\hfil + \crcr#1\crcr}}\,} +% OTHER USEFUL BITS +\newcommand{\e}{\mathrm{e}} +\newcommand{\rme}{\mathrm{e}} +\newcommand{\rmi}{\mathrm{i}} +\newcommand{\rmd}{\mathrm{d}} +\renewcommand{\qquad}{\hspace*{25pt}} +\newcommand{\tdot}[1]{\stackrel{\dots}{#1}} % Added 1/9/94 +\newcommand{\tqs}{\hspace*{25pt}} +\newcommand{\fl}{\hspace*{-\mathindent}} +\newcommand{\Tr}{\mathop{\mathrm{Tr}}\nolimits} +\newcommand{\tr}{\mathop{\mathrm{tr}}\nolimits} +\newcommand{\Or}{\mathord{\mathrm{O}}} %changed from \mathop 20/1/95 +\newcommand{\lshad}{[\![} +\newcommand{\rshad}{]\!]} +\newcommand{\case}[2]{{\textstyle\frac{#1}{#2}}} +\def\pt(#1){({\it #1\/})} +\newcommand{\dsty}{\displaystyle} +\newcommand{\tsty}{\textstyle} +\newcommand{\ssty}{\scriptstyle} +\newcommand{\sssty}{\scriptscriptstyle} +\def\lo#1{\llap{${}#1{}$}} +\def\eql{\llap{${}={}$}} +\def\lsim{\llap{${}\sim{}$}} +\def\lsimeq{\llap{${}\simeq{}$}} +\def\lequiv{\llap{${}\equiv{}$}} +% +\newcommand{\eref}[1]{(\ref{#1})} +%\newcommand{\eqref}[1]{Equation (\ref{#1})} +%\newcommand{\Eqref}[1]{Equation (\ref{#1})} +\newcommand{\sref}[1]{section~\ref{#1}} +\newcommand{\fref}[1]{figure~\ref{#1}} +\newcommand{\tref}[1]{table~\ref{#1}} +\newcommand{\Sref}[1]{Section~\ref{#1}} +\newcommand{\Fref}[1]{Figure~\ref{#1}} +\newcommand{\Tref}[1]{Table~\ref{#1}} +\newcommand{\opencircle}{\mbox{\Large$\circ\,$}} % moved Large outside maths +\newcommand{\opensquare}{\mbox{$\rlap{$\sqcap$}\sqcup$}} +\newcommand{\opentriangle}{\mbox{$\triangle$}} +\newcommand{\opentriangledown}{\mbox{$\bigtriangledown$}} +\newcommand{\opendiamond}{\mbox{$\diamondsuit$}} +\newcommand{\fullcircle}{\mbox{{\Large$\bullet\,$}}} % moved Large outside maths +\newcommand{\fullsquare}{\,\vrule height5pt depth0pt width5pt} +\newcommand{\dotted}{\protect\mbox{${\mathinner{\cdotp\cdotp\cdotp\cdotp\cdotp\cdotp}}$}} +\newcommand{\dashed}{\protect\mbox{-\; -\; -\; -}} +\newcommand{\broken}{\protect\mbox{-- -- --}} +\newcommand{\longbroken}{\protect\mbox{--- --- ---}} +\newcommand{\chain}{\protect\mbox{--- $\cdot$ ---}} +\newcommand{\dashddot}{\protect\mbox{--- $\cdot$ $\cdot$ ---}} +\newcommand{\full}{\protect\mbox{------}} + +\def\;{\protect\psemicolon} +\def\psemicolon{\relax\ifmmode\mskip\thickmuskip\else\kern .3333em\fi} +\def\lineup{\def\0{\hbox{\phantom{0}}}% + \def\m{\hbox{$\phantom{-}$}}% + \def\-{\llap{$-$}}} +% +%%%%%%%%%%%%%%%%%%%%% +% Tables rules % +%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\boldarrayrulewidth}{1\p@} +% Width of bold rule in tabular environment. + +\def\bhline{\noalign{\ifnum0=`}\fi\hrule \@height +\boldarrayrulewidth \futurelet \@tempa\@xhline} + +\def\@xhline{\ifx\@tempa\hline\vskip \doublerulesep\fi + \ifnum0=`{\fi}} + +% +% Rules for tables with extra space around +% +\newcommand{\br}{\ms\bhline\ms} +\newcommand{\mr}{\ms\hline\ms} +% +\newcommand{\centre}[2]{\multispan{#1}{\hfill #2\hfill}} +\newcommand{\crule}[1]{\multispan{#1}{\hspace*{\tabcolsep}\hrulefill + \hspace*{\tabcolsep}}} +\newcommand{\fcrule}[1]{\ifnum\thetabtype=1\multispan{#1}{\hrulefill + \hspace*{\tabcolsep}}\else\multispan{#1}{\hrulefill}\fi} +% +% Extra spaces for tables and displayed equations +% +\newcommand{\ms}{\noalign{\vspace{3\p@ plus2\p@ minus1\p@}}} +\newcommand{\bs}{\noalign{\vspace{6\p@ plus2\p@ minus2\p@}}} +\newcommand{\ns}{\noalign{\vspace{-3\p@ plus-1\p@ minus-1\p@}}} +\newcommand{\es}{\noalign{\vspace{6\p@ plus2\p@ minus2\p@}}\displaystyle}% +% +\newcommand{\etal}{{\it et al\/}\ } +\newcommand{\dash}{------} +\newcommand{\nonum}{\par\item[]} %\par added 1/9/93 +\newcommand{\mat}[1]{\underline{\underline{#1}}} +% +% abbreviations for IOPP journals +% +\newcommand{\CQG}{{\it Class. Quantum Grav.} } +\newcommand{\CTM}{{\it Combust. Theory Modelling\/} } +\newcommand{\DSE}{{\it Distrib. Syst. Engng\/} } +\newcommand{\EJP}{{\it Eur. J. Phys.} } +\newcommand{\HPP}{{\it High Perform. Polym.} } % added 4/5/93 +\newcommand{\IP}{{\it Inverse Problems\/} } +\newcommand{\JHM}{{\it J. Hard Mater.} } % added 4/5/93 +\newcommand{\JO}{{\it J. Opt.} } +\newcommand{\JOA}{{\it J. Opt. A: Pure Appl. Opt.} } +\newcommand{\JOB}{{\it J. Opt. B: Quantum Semiclass. Opt.} } +\newcommand{\JPA}{{\it J. Phys. A: Math. Gen.} } +\newcommand{\JPB}{{\it J. Phys. B: At. Mol. Phys.} } %1968-87 +\newcommand{\jpb}{{\it J. Phys. B: At. Mol. Opt. Phys.} } %1988 and onwards +\newcommand{\JPC}{{\it J. Phys. C: Solid State Phys.} } %1968--1988 +\newcommand{\JPCM}{{\it J. Phys.: Condens. Matter\/} } %1989 and onwards +\newcommand{\JPD}{{\it J. Phys. D: Appl. Phys.} } +\newcommand{\JPE}{{\it J. Phys. E: Sci. Instrum.} } +\newcommand{\JPF}{{\it J. Phys. F: Met. Phys.} } +\newcommand{\JPG}{{\it J. Phys. G: Nucl. Phys.} } %1975--1988 +\newcommand{\jpg}{{\it J. Phys. G: Nucl. Part. Phys.} } %1989 and onwards +\newcommand{\MSMSE}{{\it Modelling Simulation Mater. Sci. Eng.} } +\newcommand{\MST}{{\it Meas. Sci. Technol.} } %1990 and onwards +\newcommand{\NET}{{\it Network: Comput. Neural Syst.} } +\newcommand{\NJP}{{\it New J. Phys.} } +\newcommand{\NL}{{\it Nonlinearity\/} } +\newcommand{\NT}{{\it Nanotechnology} } +\newcommand{\PAO}{{\it Pure Appl. Optics\/} } +\newcommand{\PM}{{\it Physiol. Meas.} } % added 4/5/93 +\newcommand{\PMB}{{\it Phys. Med. Biol.} } +\newcommand{\PPCF}{{\it Plasma Phys. Control. Fusion\/} } % added 4/5/93 +\newcommand{\PSST}{{\it Plasma Sources Sci. Technol.} } +\newcommand{\PUS}{{\it Public Understand. Sci.} } +\newcommand{\QO}{{\it Quantum Opt.} } +\newcommand{\QSO}{{\em Quantum Semiclass. Opt.} } +\newcommand{\RPP}{{\it Rep. Prog. Phys.} } +\newcommand{\SLC}{{\it Sov. Lightwave Commun.} } % added 4/5/93 +\newcommand{\SST}{{\it Semicond. Sci. Technol.} } +\newcommand{\SUST}{{\it Supercond. Sci. Technol.} } +\newcommand{\WRM}{{\it Waves Random Media\/} } +\newcommand{\JMM}{{\it J. Micromech. Microeng.\/} } +% +% Other commonly quoted journals +% +\newcommand{\AC}{{\it Acta Crystallogr.} } +\newcommand{\AM}{{\it Acta Metall.} } +\newcommand{\AP}{{\it Ann. Phys., Lpz.} } +\newcommand{\APNY}{{\it Ann. Phys., NY\/} } +\newcommand{\APP}{{\it Ann. Phys., Paris\/} } +\newcommand{\CJP}{{\it Can. J. Phys.} } +\newcommand{\JAP}{{\it J. Appl. Phys.} } +\newcommand{\JCP}{{\it J. Chem. Phys.} } +\newcommand{\JJAP}{{\it Japan. J. Appl. Phys.} } +\newcommand{\JP}{{\it J. Physique\/} } +\newcommand{\JPhCh}{{\it J. Phys. Chem.} } +\newcommand{\JMMM}{{\it J. Magn. Magn. Mater.} } +\newcommand{\JMP}{{\it J. Math. Phys.} } +\newcommand{\JOSA}{{\it J. Opt. Soc. Am.} } +\newcommand{\JPSJ}{{\it J. Phys. Soc. Japan\/} } +\newcommand{\JQSRT}{{\it J. Quant. Spectrosc. Radiat. Transfer\/} } +\newcommand{\NC}{{\it Nuovo Cimento\/} } +\newcommand{\NIM}{{\it Nucl. Instrum. Methods\/} } +\newcommand{\NP}{{\it Nucl. Phys.} } +\newcommand{\PL}{{\it Phys. Lett.} } +\newcommand{\PR}{{\it Phys. Rev.} } +\newcommand{\PRL}{{\it Phys. Rev. Lett.} } +\newcommand{\PRS}{{\it Proc. R. Soc.} } +\newcommand{\PS}{{\it Phys. Scr.} } +\newcommand{\PSS}{{\it Phys. Status Solidi\/} } +\newcommand{\PTRS}{{\it Phil. Trans. R. Soc.} } +\newcommand{\RMP}{{\it Rev. Mod. Phys.} } +\newcommand{\RSI}{{\it Rev. Sci. Instrum.} } +\newcommand{\SSC}{{\it Solid State Commun.} } +\newcommand{\ZP}{{\it Z. Phys.} } +%=================== +\pagestyle{headings} +\pagenumbering{arabic} +\raggedbottom +\onecolumn +\endinput +%% +%% End of file `jconf.cls'. diff --git a/doc/CHEP2013/jpconf11.clo b/doc/CHEP2013/jpconf11.clo new file mode 100644 index 0000000000000000000000000000000000000000..8e94a9d3e9ccb2383d6b3df1721603fe48166ccf --- /dev/null +++ b/doc/CHEP2013/jpconf11.clo @@ -0,0 +1,141 @@ +%% +%% This is file `jpconf11.clo' +%% +%% This file is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesFile{jpconf11.clo}[2005/05/04 v1.0 LaTeX2e file (size option)] +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xipt{13}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\newcommand\small{% + \@setfontsize\small\@xpt{12}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand\footnotesize{% +% \@setfontsize\footnotesize\@xpt\@xiipt + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt} +\newcommand\large{\@setfontsize\large\@xivpt{18}} +\newcommand\Large{\@setfontsize\Large\@xviipt{22}} +\newcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}} +\newcommand\huge{\@setfontsize\huge\@xxvpt{30}} +\let\Huge=\huge +\if@twocolumn + \setlength\parindent{14\p@} + \else + \setlength\parindent{18\p@} +\fi +\if@letterpaper% +%\input{letmarg.tex}% +\setlength{\hoffset}{0mm} +\setlength{\marginparsep}{0mm} +\setlength{\marginparwidth}{0mm} +\setlength{\textwidth}{160mm} +\setlength{\oddsidemargin}{-0.4mm} +\setlength{\evensidemargin}{-0.4mm} +\setlength{\voffset}{0mm} +\setlength{\headheight}{8mm} +\setlength{\headsep}{5mm} +\setlength{\footskip}{0mm} +\setlength{\textheight}{230mm} +\setlength{\topmargin}{1.6mm} +\else +%\input{a4marg.tex}% +\setlength{\hoffset}{0mm} +\setlength{\marginparsep}{0mm} +\setlength{\marginparwidth}{0mm} +\setlength{\textwidth}{160mm} +\setlength{\oddsidemargin}{-0.4mm} +\setlength{\evensidemargin}{-0.4mm} +\setlength{\voffset}{0mm} +\setlength{\headheight}{8mm} +\setlength{\headsep}{5mm} +\setlength{\footskip}{0mm} +\setlength{\textheight}{230mm} +\setlength{\topmargin}{1.6mm} +\fi +\setlength\maxdepth{.5\topskip} +\setlength\@maxdepth\maxdepth +\setlength\footnotesep{8.4\p@} +\setlength{\skip\footins} {10.8\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep {24\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {16\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\dblfloatsep {16\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{24\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@} +\setlength\@fpsep{10\p@ \@plus 1fil} +\setlength\@fpbot{0\p@} +\setlength\@dblfptop{0\p@} +\setlength\@dblfpsep{10\p@ \@plus 1fil} +\setlength\@dblfpbot{0\p@} +\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} +\def\@listI{\leftmargin\leftmargini + \parsep=\z@ + \topsep=6\p@ \@plus3\p@ \@minus3\p@ + \itemsep=3\p@ \@plus2\p@ \@minus1\p@} +\let\@listi\@listI +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep=3\p@ \@plus2\p@ \@minus\p@ + \parsep=\z@ + \itemsep=\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep=\z@ + \parsep=\z@ + \partopsep=\z@ + \itemsep=\z@} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `iopart12.clo'. diff --git a/doc/release.notes b/doc/release.notes index 9e3565477c365819ec10e56cf06df47fc7846df6..4d9884a50bd8e25d2874c9803cc2747474df7afd 100644 --- a/doc/release.notes +++ b/doc/release.notes @@ -2,11 +2,34 @@ DD4hep ---- Release Notes ================================= - -------- -| v00-05 | - -------- - - Markus Frank: +2013/11/03 Markus Frank +-------------------------- + - doc: Add CHEP2013 paper about DD4hep as a start of the documentation + section. More to come hopefully. + - DDCore: several small improvements: + - Segmentations are no longer Ref_t's. + - Base internal implementing object directly on the segmentations + classes from Christian. + - Rearrangement of some code from Handle.h to Primitives.h + - Allow to attach extensions to LCDD + - DDG4: Fix Frank's simulation problem, which he caused himself + introducing his famous factories.... + - DDG4: First attempt to fix simulation problem with mignetic field. + Ready for testing. + - DDG4: First commit of a independent simulation aimed for LHCb and LHeC + + other newcomers. Documentation needs to be written. + Features: + - Modular setup of all Geant4 action routines as plugins, including the + Run-, event-, tracking-, stacking-, stepping- and generator-actions + as well as the physics lists with particle and physics constructors. + - Setup is possible in XML or with C++ either as an AClick in root or + standalone. Python based starter to come. + - Missing is a modular description of the G4 UI and VIS manager(s). + - Documentation is to come. Before documentation is not present + the usage is discouraged. + +2013/10/18 Markus Frank +-------------------------- - Throw exception if the expression evaluator sees a problem. The message printed before was often not seen. - Improve printout on exceptions and plugin abortion @@ -28,7 +51,10 @@ DD4hep ---- Release Notes Unclear to me was if in Geant3 steradian is also 2*2*pi or 2*2*180 degree. - F. Gaede: + + +No-date F. Gaede +------------------- - changes to build system: (see ReadMe.txt for details)