C Updates: C jms 16jan96 added 1 more 12 ch adc for version 11 C jms 4jan96 moved HOUR in /SCALER/ to avoid misalignment warning C jms 24apr95 added 2 more adcs for version 8 C jms 15feb95 added 24 more adcs version 6 C jms 12sep94 increase # chambers C NKM 4mar94 ADC pointers modified C======================================================================== C common block for raw event data C INTEGER MAX_WORD_SIZE PARAMETER(MAX_WORD_SIZE=10000) INTEGER*2 BUFFER(MAX_WORD_SIZE) COMMON/LOCBUF/BUFFER INTEGER BUF32(1) EQUIVALENCE (BUF32(1),BUFFER(1)) C C======================================================================== C common block for Whole Event INTEGER NNUM_LATCH,NNUM_MICH,NNHITMAX PARAMETER (NNUM_LATCH=1536) ! was 512 PARAMETER (NNUM_MICH=1536) ! was 2048 PARAMETER (NNHITMAX=NNUM_LATCH+NNUM_MICH) C INTEGER NUM_LATCH,NUM_MICH,NHITMAX C INTEGER NNADC,NNTDC,NNCHAMB,NWIRE,NNREG,REGISTER_SIZE PARAMETER (NNCHAMB=24) PARAMETER (NWIRE=128) PARAMETER (NNADC=144) PARAMETER (NNTDC=56) PARAMETER (NNREG=2) PARAMETER (REGISTER_SIZE=NNREG*16) INTEGER NADC,NTDC,NCHAMB C Pointers for locating various counters in the ADC and TDC arrays C Locations of telescope scintillators are: C Counter Index in ADC and TDC C A 1 attenuated in ADC() at 13 C Bbottom 2 14 C Btop 3 15 C Cbottom 4 16 C Ctop 5 17 C Dbottom 6 18 C Dtop 7 19 C E 8 INTEGER G_NUM_ADC,P_NUM_ADC,PBAR_NUM_ADC,STONEHENGE_NUM_ADC INTEGER P_NUM_TDC,PBAR_NUM_TDC,STONEHENGE_NUM_TDC INTEGER ALPHABET_NUM_TDC,ALPHABET_NUM_ADC,ATT_ALPHABET_NUM_ADC INTEGER G_APTR,P_APTR,PBAR_APTR,STONEHENGE_APTR,P_TPTR,PBAR_TPTR INTEGER STONEHENGE_TPTR,ALPHABET_APTR,ALPHABET_TPTR INTEGER ATT_ALPHABET_APTR,WSU_NUM_ADC,WSU_CAL_APTR INTEGER ATT_G_NUM_ADC, ATT_G_PTR *********************************** * ADC locations *********************************** ! number of PARAMETER (ALPHABET_NUM_ADC=7) ! alphabet PARAMETER (ATT_ALPHABET_NUM_ADC=7) ! attenuated alphabet PARAMETER (G_NUM_ADC=16) ! UM Calorimeter PARAMETER (P_NUM_ADC=8) ! Proton PARAMETER (PBAR_NUM_ADC=8) ! PBar PARAMETER (STONEHENGE_NUM_ADC=12) ! Stonehenge PARAMETER (WSU_NUM_ADC=24) ! WSU calo PARAMETER (ATT_G_NUM_ADC=24) ! Attenuated Mich & some WSU ! ADC channels ! pointer to first PARAMETER (ALPHABET_APTR=1) ! Alphabet channel PARAMETER (ATT_ALPHABET_APTR=13) ! Atten. Alphabet channel PARAMETER (G_APTR=20) ! UM Calorimeter channel PARAMETER (P_APTR=37) ! Proton counter PARAMETER (PBAR_APTR=49) ! PBAR PARAMETER (STONEHENGE_APTR=61) ! Stonehenge PARAMETER (WSU_CAL_APTR=85) ! WSU calorimeter PARAMETER (ATT_G_PTR=109) ! Attenuated calo signals ! in array ADC() *********************************** * TDC locations *********************************** ! number of PARAMETER (ALPHABET_NUM_TDC=7) ! alphabet PARAMETER (P_NUM_TDC=8) ! Proton PARAMETER (PBAR_NUM_TDC=8) ! PBar PARAMETER (STONEHENGE_NUM_TDC=12) ! Stonehenge ! TDC channels ! pointer to first PARAMETER (ALPHABET_TPTR=1) ! Alphabet channel PARAMETER (P_TPTR=9) ! Proton counter PARAMETER (PBAR_TPTR=17) ! Pbar PARAMETER (STONEHENGE_TPTR=25) ! Stonehenge ! in array TDC() INTEGER LENGTH,EVNUM,EVTYPE,TRIGGER,NHITS,CHAMB_NUM,WIRE_NUM, + PLS_HGT,ADC,TDC,VERSION_NUM,REGISTER REAL PED_SUB_PLS, PEDDS, PED_SUB_ADC, PEDDS_ADC LOGICAL FIRST_TIME, FIRST_LAM0 C flags for event valid etc. C EVENT_VALID is TRUE only if EVERYTHING is OK C is FALSE if part or all of event is bad C ADC_VALID is TRUE if ADCs were read out OK. C is FALSE otherwise. C TDC_VALID is TRUE if TDCs were read out OK. C is FALSE otherwise. C NANO_VALID is TRUE if nano latches were read out OK. C is FALSE otherwise. C MICH_VALID is TRUE if mich electronics were read out OK. C is FALSE otherwise. C PARTIAL_EVENT is = (ADC_VALID).OR.(TDC_VALID) C .OR.(NANO_VALID).OR.(MICH_VALID) C i.e. if PARTIAL_EVENT is TRUE there is C something worth saving LOGICAL EVENT_VALID, PARTIAL_EVENT, ADC_VALID, TDC_VALID LOGICAL NANO_VALID, MICH_VALID COMMON/EVENT/LENGTH,EVNUM,EVTYPE,TRIGGER,NHITS, + NADC,NTDC,NCHAMB,NUM_LATCH,NUM_MICH,NHITMAX,VERSION_NUM, + CHAMB_NUM(NNHITMAX),WIRE_NUM(NNHITMAX),PLS_HGT(NNHITMAX), + PED_SUB_PLS(NNHITMAX),PEDDS(NNCHAMB,NWIRE), + ADC(NNADC),TDC(NNTDC),PED_SUB_ADC(NNADC),PEDDS_ADC(NNADC), + REGISTER(REGISTER_SIZE),EVENT_VALID,PARTIAL_EVENT,ADC_VALID, + TDC_VALID,NANO_VALID,MICH_VALID C=========================================================================== C LENGTH: Event Length in 32 bit words C EVNUM: Event Number C EVTYPE: Event Type C TRIGGER: Trigger Bits C NHITS: # hits in event C NADC: Number of ADC channels in event C NTDC: Number of TDC channels in event C NCHAMB: Number of CHAMBERS in event C NUM_LATCH: Number of Nano Latches in experiment C NUM_MICH: Number of Mich Elec Channel in experiment C NHIT_MAX: Total number of wire channels in experiment C VERSION_NUM: Version number of the READEVENT.EVD file C CHAMB_NUM(I): chamber # for i'th hit C WIRE_NUM(I): wire # for i'th hit C PLS_HGT(I): pulse height for i'th hit (= 10000 for latches) C PEDDS(I,J): pedestal value for i'th chamb, j'th wire C PED_SUB_PLS(I): pedestal subtracted pulse height (=0. for latches) C ADC(I): pulse height for i'th ADC channel (calorimeter cell) C PEDDS_ADC(I): pedestal value for i'th ADC Channel C PED_SUB_ADC(I): pedestal subtracted pulse height for i'th ADC C TDC(I): time for i'th counter C REGISTER(I) register value for i'th input C FIRST_TIME: Logical - set FALSE when UNPACKER see first real event C C======================================================================== C common block for Scalers INTEGER NNSCLRS PARAMETER (NNSCLRS=48) INTEGER NSCLRS INTEGER SCLRCUR REAL SCLRTOT INTEGER*2 VAXTIME REAL HOUR CHARACTER*23 TIMEASC C COMMON/SCALER/NSCLRS,SCLRTOT(NNSCLRS),SCLRCUR(NNSCLRS), + HOUR,VAXTIME(7),TIMEASC C C NSCLRS: number of scalers in event C SCLRTOT(I): total scaler for this run C SCLRCUR(I): Current Scaler Value from last LAM 0 C VAXTIME(7): VAX format time from last LAM 0 C HOUR: 24 hour time as a real C TIMEASC: date and time as ASCII string C C======================================================================== C common block for ACNET data (event type=5) C INTEGER MAXREQ_T ! maximum number of ACNET list REQ types PARAMETER (MAXREQ_T=10) INTEGER MAXACDEV ! maximum number of ACNET devices per list PARAMETER (MAXACDEV=100) INTEGER NUMDEV(MAXREQ_T) ! number of filled devices in list INTEGER ACDEV(MAXACDEV,MAXREQ_T) ! list of device types REAL ACVAL(MAXACDEV,MAXREQ_T) ! list of device values INTEGER IACVAL(MAXACDEV,MAXREQ_T) ! used for unpacking EQUIVALENCE (ACVAL(1,1),IACVAL(1,1)) INTEGER ACLIST ! which list id LOGICAL FIRST_AC_EVENT ! flag C COMMON/ACNET/NUMDEV,ACDEV,ACVAL,ACLIST,FIRST_AC_EVENT C