Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:05:33

0001 /*
0002  *  qp_mask.h  --
0003  *  Description of the massk involved in a query
0004  *
0005  *  Original: 24-Nov-1994 11:09
0006  *
0007  *  Author:   Maarten Ballintijn <Maarten.Ballintijn@cern.ch>
0008  *
0009  *  $Id$
0010  *
0011  *  $Log$
0012  *  Revision 1.5  1996/04/23 18:38:46  maartenb
0013  *  - Add RCS keywords
0014  *
0015  *
0016  */
0017 
0018 #ifndef CERN_MASK
0019 #define CERN_MASK
0020 
0021 #include    "cern_types.h"
0022 
0023 
0024 #define MASK_BLOCK_SIZE     1024    /* gives a 4k block */
0025 
0026 typedef struct _bit_desc_ {
0027     bool        valid;
0028     char        *desc;
0029     int     selected;   /* number of events passing the cut */
0030 } BitDesc;
0031 
0032 
0033 typedef struct _mask_ {
0034     char        *mname;
0035     char        *fname;
0036     FILE        *mfp;
0037     Int32       nevt;       /* number of events in the mask */
0038     bool        update;
0039     bool        dirty;      
0040     BitDesc     bits[32];
0041     Int32       buf_index;
0042     Int32       buf[MASK_BLOCK_SIZE];
0043 } Mask;
0044 
0045 Mask *
0046 mask_find( const char * const mname );
0047 
0048 bool
0049 mask_bit_defined( const Mask * const mp, const int ibit );
0050 
0051 bool
0052 mask_writable( const Mask * const mp );
0053 
0054 UInt32
0055 mask_get_word( Mask * mp, long ievt, int * errp );
0056 
0057 void
0058 mask_set_desc( Mask *mp, int ibit, char * desc );
0059 
0060 void
0061 mask_set_bit( Mask * mp, long ievt, int ibit, bool value, int * errp );
0062 
0063 int
0064 mask_flush_header( Mask * mp );
0065 
0066 int
0067 mask_flush_buf( Mask * mp );
0068 
0069 #endif  /*  CERN_MASK   */