Drawing Track Hits in Sensitive Detectors

+-------------+                                               +----------##
| Geant 3.15  |               GEANT User's Guide              | DRAW140  ##
+-------------+                                               +----------##
                                   

Author(s) : F.Carminati Submitted: 07.03.84 Origin : R.Brun, W.Gebel, P.Zanarini Revised: 11.12.92

The hits generated by the tracking package and stored in the data structure JHITS can be displayed by the followingroutines:

  1. draw one hit (GDAHIT); called by the user;
  2. draw all the hits of trajectory type sets/ detectors (GDHITS);
  3. draw all the hits of calorimeter type sets/ detectors (GDCHIT).

    Different symbols for each subdetector can be used, chosen among hardware characters (dots), software crosses, or from the HPLOT table of software characters. The size of the software characters and crosses is given as an argument to GDAHIT and GDHITS, while it is computed as a function of the hits value in GDCHIT.

    The option H of the interactive MOVE command gives the possibility to rotate, zoom and translate in real time the hits stored for one event. This allow a 3D display of the event where it is possible to pick one hit with the mouse and have the hit values printed. The interactive command LENS allows a detailed visual scanning of the hits displayed (see the interactive section).

        +----------------------------------------------------------------+
        |CALL GDHITS (CHUSET,CHUDET,ITRA,ISYMB,SSYMB) |
        +----------------------------------------------------------------+
                                      
    Draws the hit points as stored by GSAHIT, which were generated by track ITRA in detector CHUDET of set CHUSET, with the currently selected view parameters in /GCDRAW/. The character plotted at each point may be chosen via ISYMB:

      -1               (small) hardware points                               (fast)
      0                software crosses                                   (default)
      840/850          empty/full circles                                    (slow)
      841/851          empty/full squares                                    (slow)
      842/852          empty/full triangles (up)                             (slow)
      843/853          empty diamond/full triangle (down)                    (slow)
      844/854          empty/full stars                                      (slow)
    

    More information on the meaning of the ISIMB value can be found in the HPLOT manual [bib-HPLOT]. Any value for ISYMB which is not in the above table is equivalent to option 0. Except for ISYMB = -1, the size of the character can be chosen by SSYMB. On the 2D projection on the screen one can distinguish which set/detector a given track passes, by drawing different symbols for the hits in different sets/detectors. The size of these symbols may then be chosen to suit the scale of the total picture (detectors and tracks).

    Note: It is obligatory for the use of this routine that the spatial MARS (MAster Reference System) current coordinates of the hits are stored as the first 3 elements of the hit [HITS200].

    CHUSET
    (CHARACTER*4) user set identifier (if '*' all sets are taken)
    CHUDET
    (CHARACTER*4) user detector identifier (if '*' all detectors are taken)
    ITRA
    (INTEGER) number of selected track (if 0 all tracks are taken)
    ISYMB
    (INTEGER) character selection number (see table above)
    SSYMB
    (REAL) size of characters in cm (if 0, a default of 0.1 is taken)

    +------------------------------------------------------------------------------------+
    |CALL GDCHIT (CHUSET,CHUDET,ITRA,ISYMB,SIZMAX,IHIT,HITMIN,HITMAX) |
    +------------------------------------------------------------------------------------+
                                      

    Draws the hit points as stored by GSCHIT, which were generated by track ITRA in detector CHUDET of set CHUSET, with the currently selected view parameters in /GCDRAW/. Except for ISYMB = -1 the size of the character is chosen as a function of HITS(IHIT):

                 SIZE = sizmax * ( hits(ihit) - hitmin ) / hitmax
                                      

    Note: It is obligatory for the use of this routine that the spatial MARS (MAster Reference System) current coordinates of the hits are stored as the first 3 elements of the hit [HITS200].

    SIZMAX
    (REAL) maximum character size in cm
    IHIT
    (INTEGER) HITS(IHIT) contains the calorimeter hit value. IHIT>3, and the first three elements are supposed to contain the space position of the hit
    HITMIN
    (REAL) minimum boundary of HITS(IHIT)
    HITMAX
    (REAL) maximum boundary of HITS(IHIT)

              +----------------------------------------------------+
              | CALL GDAHIT (X,Y,Z,ISYMB,SSYMB) |
              +----------------------------------------------------+
                                      

    Draws one hit point at coordinates X, Y, Z. This routine is useful when the user wants only to display but not to store the hits. The first three arguments are the position of the hit in the MARS, and the last two arguments have the same meaning as the similar arguments in GDHITS.

    X
    (REAL) x coordinate in MARS of the hit point
    Y
    (REAL) y coordinate in MARS of the hit point
    X
    (REAL) z coordinate in MARS of the hit point

    The following is an example of use of the hits drawing routines.

    SUBROUTINE GUTREV
     - - - - -
     CALL GDOPT('THRZ','ON ')
     CALL GDRAWC('OPAL',2,5.,10.,10.,0.013,0.013)
     CALL GTREVE
     END
     SUBROUTINE GUSTEP
     - - - - -
     CALL GDCXYZ
     - - - - -
     END
     CALL GDOPT('THRZ','ON  ')
     CALL GDRAWC('OPAL',2,5.,10.,10.,0.013,0.013)
     CALL GDCHIT('EB  ',0,0,841,1.,6,0.,0.5)
     CALL GDCHIT('EE  ',0,0,841,1.,6,0.,0.5)
     CALL GDCHIT('HB  ',0,0,851,1.,5,0.,0.5)
     CALL GDCHIT('HE  ',0,0,851,1.,5,0.,0.5)
     CALL GDHITS('CJ  ',0,0,0,0.01)
     CALL GDHITS('CV  ',0,0,0,0.01)
     CALL GDHITS('CZ  ',0,0,0,0.01)
     CALL GDHITS('F   ',0,0,853,0.1)
     CALL GDHITS('HP  ',0,0,840,0.2)
     CALL GDHITS('ME  ',0,0,842,0.2)
     CALL GDHITS('MB  ',0,0,842,0.2)