00001 00002 /*************************************************************************** 00003 * 00004 * $Id: StTrsZeroSuppressedReader.hh,v 1.7 2008/06/20 15:01:04 fisyak Exp $ 00005 * 00006 * Authors: bl, mcbs 00007 *************************************************************************** 00008 * 00009 * Description: Access to the digital information via the abstract 00010 * interface 00011 * 00012 * 00013 * Int_t getPadList(Int_t PadRow, u_char **padList); 00014 * 00015 * Fills (*padList[]) with the list of pad numbers containing hits 00016 * returns number of pads in (*padList)[] 00017 * or negative if call fails 00018 * 00019 * Int_t getSequences(Int_t PadRow, Int_t Pad, Int_t *nSeq, StSequence **SeqData) 00020 * 00021 * Fills (*SeqData)[] along with the ADC 00022 * buffers pointed to by (*SeqData)[] 00023 * Set nSeq to the # of elements in the (*SeqData)[] array 00024 * returns 0 if OK...or negative if call fails 00025 * 00026 * struct Sequence 00027 * { 00028 * u_short startTimeBin; 00029 * u_short Length; 00030 * u_char *FirstAdc; 00031 * }; 00032 *************************************************************************** 00033 * 00034 * $Log: StTrsZeroSuppressedReader.hh,v $ 00035 * Revision 1.7 2008/06/20 15:01:04 fisyak 00036 * move from StTrsData to StTpcRawData 00037 * 00038 * Revision 1.6 2005/09/09 22:12:48 perev 00039 * Bug fix + IdTruth added 00040 * 00041 * Revision 1.4 2005/07/19 22:23:04 perev 00042 * Bug fix 00043 * 00044 * Revision 1.3 2003/12/24 13:44:52 fisyak 00045 * Add (GEANT) track Id information in Trs; propagate it via St_tpcdaq_Maker; account interface change in StTrsZeroSuppressedReaded in StMixerMaker 00046 * 00047 * Revision 1.2 2000/03/15 18:08:43 calderon 00048 * ZSR is no longer a singleton. Two will be needed for mixer chain. 00049 * 00050 * Revision 1.1 1999/11/05 22:17:05 calderon 00051 * Made private copy constructor and operator= in StTrsDigitalSector. 00052 * Renamed DigitalSignalGenerators: Fast -> Old, Parameterized -> Fast 00053 * and use new "Fast" as default. 00054 * Added StTrsZeroSuppressedReader and StTrsZeroSuppressedReader for DAQ type 00055 * data access. 00056 * 00057 ***************************************************************************/ 00058 #ifndef ST_TRS_ZERO_SUPPRESSED_READER_HH 00059 #define ST_TRS_ZERO_SUPPRESSED_READER_HH 00060 00061 #include "StSequence.hh" 00062 #include "StDaqLib/GENERIC/EventReader.hh" 00063 #include <vector> 00064 00065 #include "StTrsRawDataEvent.hh" 00066 #include "StTrsDigitalSector.hh" 00067 00068 class StTrsZeroSuppressedReader { 00069 00070 public: 00071 StTrsZeroSuppressedReader(StTpcRawData* ev=0); 00072 ~StTrsZeroSuppressedReader() {} 00073 00074 Int_t getPadList(Int_t padRow, unsigned char **padList) {return mTheSector->getPadList(padRow,padList);} 00075 Int_t getSequences(Int_t padRow, Int_t Pad, Int_t *nSeq, StSequence** SeqData, UShort_t ***Ids=0) { 00076 return mTheSector->getSequences(padRow,Pad,nSeq, SeqData, Ids); 00077 } 00078 Int_t getSequences(Int_t padRow, Int_t Pad, Int_t *nSeq, Sequence** SeqData, UShort_t ***Ids=0) { 00079 return getSequences(padRow, Pad, nSeq, (StSequence**) SeqData, Ids); 00080 } 00081 Int_t setSector(Int_t); 00082 void clear() {if (mTheSector) mTheSector->clear();} 00083 00084 private: 00085 StTrsZeroSuppressedReader(Int_t); 00086 00087 Int_t checkTheData(UInt_t); 00088 00089 Int_t mSector; 00090 StTrsDigitalSector* mTheSector; 00091 StTrsRawDataEvent* mTrsEvent; 00092 00093 }; 00094 #endif
1.5.9