Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-02 08:21:01

0001 #include <daqONCSEvent.h>
0002 
0003 // the constructor first ----------------
0004 daqONCSEvent::daqONCSEvent (int * where, const int length
0005         , const int irun, const int etype, const int evtseq)
0006 {
0007   event_base = where;
0008   evthdr = ( evtdata_ptr ) where;
0009   evthdr->evt_type = etype;
0010   max_length = length;
0011   prepare_next (evtseq, irun);
0012 }
0013 
0014 
0015 int daqONCSEvent::prepare_next()
0016 {
0017   return  prepare_next(-1,-1);
0018 }
0019 
0020 int daqONCSEvent::prepare_next( const int evtseq, const int irun)
0021 {
0022   // re-initialize the event header length
0023   evthdr->evt_length =  EVTHEADERLENGTH;
0024 
0025   // if < 0, just increment the current seq. number
0026   if ( evtseq < 0 )
0027     {
0028       evthdr->evt_sequence++;
0029     }
0030   else
0031     {
0032       evthdr->evt_sequence = evtseq;
0033     }
0034 
0035   // if > 0, adjust the run number, else just keep it.
0036   if ( irun >  0 )
0037     {
0038       evthdr->run_number=irun;
0039     }
0040   // if > 0, adjust the run number, else just keep it.
0041   evthdr->date = 0;
0042   evthdr->time = time(0);
0043   evthdr->reserved[0] = 0;
0044   evthdr->reserved[1] = 0;
0045 
0046  
0047   // reset the current data index, and the leftover counter
0048   current = 0;
0049   left=max_length - EVTHEADERLENGTH ;
0050   return 0;
0051 }
0052 
0053 
0054 int daqONCSEvent::addSubevent(const int etype, daq_device *dev)
0055 {
0056   int len;
0057 
0058   len = dev->put_data ( etype, &(evthdr->data[current]), left );
0059   if (left < 0) {
0060     return 0;
0061   }
0062   evthdr->evt_length += len;
0063   current += len;
0064   left -= len;
0065   return len;
0066 }
0067 
0068 
0069 int daqONCSEvent::formatHeader(int * where
0070                       , const int id
0071                       , const int hf
0072                       , const int type)
0073 {
0074   subevtdata_ptr sevt =  (subevtdata_ptr) where;
0075   sevt->sub_length =  SEVTHEADERLENGTH;
0076 
0077   sevt->sub_id =  id;
0078   sevt->sub_type=type;
0079   sevt->sub_decoding = hf;
0080   sevt->reserved[0] = 0;
0081   sevt->reserved[1] = 0;
0082   return 4;
0083 }
0084