5 * Revision 1.1.1.1 1995/10/24 10:21:08 cernlib
9 #include "geant321/pilot.h"
10 #if defined(CERNLIB_DOC)
11 *CMZ : 3.21/02 29/03/94 15.41.20 by S.Giani
14 ************************************************************************
16 * Introduction to the Detector Response package *
17 * --------------------------------------------- *
20 * THE DETECTOR RESPONSE PACKAGE *
22 * In the context of GEANT3: *
24 * - a hit is the user defined 'quantum of information' recorded at *
25 * tracking time to keep track of the interaction between one *
26 * particle and a given sensitive detector, and regarded as *
27 * necessary to compute the digitisations later. *
29 * - a digitisation is the user defined 'quantum of information' *
30 * simulating the response of a given detector element, after *
31 * tracking of a complete event. *
33 * The detector response package consists of tools to store in, and *
34 * retrieve or print from, the data structures JSET, JHITS and JDIGI *
35 * the information relevant to the hits and digitisations. A few *
36 * subroutines which may help the user to solve some of the usual *
37 * problems of digitisation in simple detectors have been added to *
38 * the package, e.g. the intersection of a track with a plane or a *
39 * cylinder and the digitisation of conventional drift and MWP *
41 * For complex set-ups with different types of detectors the user *
42 * has normally to define several types of hits and digitisations. *
43 * In addition to the hits generated by all particles of the current *
44 * event, computing the digitisations requires usually some *
45 * information about the intrinsic characteristics and performance of *
47 * The information to be recorded for the hits and digitisations is *
48 * highly experiment dependent, therefore only a framework can be *
49 * proposed to store it. The solution adopted here should be *
50 * satisfactory for most of the applications. Feedback from the *
51 * users is needed and will be welcome. *
52 * Two remarks can be made: *
54 * - the stability of the information to be stored is usually reached *
55 * much earlier for the hits than for the digitisations. Therefore *
56 * the user may save computing time by designing an intermediate *
57 * event output at the hits level. *
58 * - the scheme proposed for storing the digitisations should in any *
59 * case be considered as an intermediate stage, a reshuffling of *
60 * the data being necessary if the user wants to simulate more *
61 * closely the specific format of the real data acquisition system. *
63 * SETS AND DETECTORS *
65 * The reader is assumed to be familiar with the way the geometrical *
66 * setup is described [GEOM 001], in particular with the concepts of *
67 * logical volume structure and of physical path through the volume *
69 * The user is required to classify into sets all sensitive *
70 * detectors for which storing the hits in the data structure JHITS *
72 * The 4-character names which identify the sets are user defined, *
73 * and the list of sets which the user wants to activate for a given *
74 * run can be entered through the data card SETS. The user is *
75 * entirely free to group together, in one or in several sets, *
76 * detectors of the same type or of different types. For *
77 * convenience, it is recommended to have at least one set for each *
78 * main component of the setup, e.g. hadron calorimeters, *
79 * electromagnetic calorimeters, vertex chamber, etc. *
80 * A detector can be declared as sensitive through the tracking *
81 * medium parameter ISVOL, and allocated to a set through the *
82 * subroutine GSDET. Currently, the active sets and detectors have *
83 * to be redefined for every run. Tools will be provided later to *
84 * read in part or the whole of the information from a previous run *
85 * and to update the relevant structures according to the user *
87 * Each (logical) detector is identified by the 4-character name of *
88 * the corresponding volume. As a given volume may describe several *
89 * similar detectors of the physical setup, some additional *
90 * information is needed for associating correctly the hits with the *
91 * physical detectors. The user has to enter the (shortest) list of *
92 * volume names, the vector NAMESV, which permits identification of *
93 * the path through the physical tree, even in the presence of *
94 * multiple copies at the volume level or at any lower level in the *
95 * tree. The identification will be achieved when needed, by *
96 * specifying a list of volume numbers, the vector NUMBV, in one to *
97 * one correspondence with the above list of volume names. This *
98 * list, after packing, will constitute the identifier of the *
99 * physical detector. *
101 * THE BASIC USER TOOLS *
103 * The data structure JSET is built through calls to the routine *
104 * GSDET which allocates detectors to sets and defines their *
105 * parameters, and to the auxiliary routines GSDETH, GSDETD and *
106 * GSDETU which store respectively in the structure JSET, for each *
107 * logical detector separately: *
109 * - the parameters required for the storage of the hit elements in *
110 * the data structure JHITS, such as the packing and scaling *
113 * - the parameters required for the storage of the digitisations in *
114 * the structure JDIGI, such as the packing conventions. the user *
115 * parameters, which may consist, for instance, of the intrinsic *
116 * detector characteristics needed for computing the digitisations. *
118 * To permit storage of more than one type of hit for a given *
119 * sensitive detector, detector 'aliases' can be defined through *
120 * calls to the routine GSDETA. They are entered in the JSET *
121 * structure as additional detectors, with the same geometrical *
122 * characteristics as the original one. Then, the user has the *
123 * possibility to call the appropriate routines GSDETH, GSDETD and *
125 * During the tracking, for each step inside the sensitive *
126 * detectors, under control of the subroutine GUSTEP, the hits can be *
127 * stored in the data structure JHITS with the subroutine GSAHIT (or *
128 * GSCHIT, more appropriate for calorimetry). For each hit the *
129 * information consists of: *
131 * - the reference to the track in the structure JKINE, *
132 * - the packed identifier of the physical detector, and *
133 * - the packed data for the different elements of the hit. *
135 * When the tracking has been completed for the whole event the *
136 * digitisations can be computed in the user subroutine GUDIGI which *
137 * may extract the hits with the subroutine GFHITS and store the *
138 * digitisations in the data structure JDIGI, with the subroutine *
139 * GSDIGI. For each digitisation the information should at least *
142 * - the reference to the track(s), *
143 * - the packed identifier of the physical detector, and *
144 * - the packed data for the digitisation itself. *
146 * RETRIEVAL OF GEOMETRICAL INFORMATION *
148 * The packed identifier of as physical detector stored a part of *
149 * the hit (or digitisation) information, is returned (unpacked) by *
150 * the routines GFHITS or GFDIGI which extract the information from *
151 * the JHITS or JDIGI structures, and may be used to retrieve the *
152 * identity and geometrical characteristics of the given detector. *
153 * At the moment this is automatized through the use of the *
154 * routines GFPATH (which assumes that the sensitive detectors have *
155 * been declared through the routine GSDETV, not GSDET) and GLVOLU *
156 * which fills the common /GCVOLU/. *
157 * GFPATH prepares the lists LNAM and LNUM required by the routine *
158 * GLVOLU [GEOM 001]. *
159 * Worth is in progress in this area and might lead to a more *
160 * transparent approach. Therefore, the routines GSDETV, GGDETV and *
161 * GFPATH and their action on the structure JSETS will not be *
162 * documented in more detail now. *
164 ************************************************************************