fdhwlib
2.0.25
|
00001 /*************************************************************************** 00002 fe4event.h - description 00003 00004 begin : Mon Jul 3 2000 00005 copyright : (C) 2000 by Andreas Kopmann 00006 email : kopmann@hpe.fzk.de 00007 ***************************************************************************/ 00008 00009 00010 #ifndef FE4EVENT_H 00011 #define FE4EVENT_H 00012 00013 00014 #include <hw4/subrackauger.h> 00015 00016 #include <FE/FEdef.h> 00017 00018 #include <hw4/fltdef.h> 00019 #include <hw4/sltdef.h> 00020 00021 #include <FE/febaseevent.h> 00022 00023 00024 class FE4timeStamp; 00025 00056 class FE4event : public FEbaseEvent { 00057 public: 00058 FE4event(hw4::SubrackAuger *s); 00059 00081 void read(int page, unsigned long *data); 00082 00089 void read(int page, int start, unsigned long *data); 00090 00091 using FEbaseEvent::readMultiplicity; 00092 00101 void readMultiplicity(int page,unsigned short *data); 00102 00111 void readMultiplicity(int page,int start,unsigned short *data); 00112 00113 00114 // V4 --- new for V4 - BEGIN -tb- 00128 void readSltPage(int pageStartOffset,unsigned long *data); 00129 00138 void readMultiplicityPage(int pageStartOffset,unsigned long *data); 00139 // V4 --- new for V4 - END -tb- 00140 00141 00142 00146 int getActualPage(); 00147 00153 int getNextPage(); 00154 00156 virtual int getNumFreePages(); 00157 00159 virtual int getOldestPage(); 00160 00161 using FEbaseEvent::isInUse; 00162 00167 bool isInUse(int page); 00168 00180 void isInUse(unsigned long *status); 00181 00183 virtual bool isPageReady(); 00184 00186 virtual void resetPages(); 00187 //-tb- + SAM 00191 void setPageFree(int page); 00192 00200 void setPageInUse(int page); 00201 00204 unsigned long getTimeStampHigh(int page); 00205 00208 unsigned long getTimeStampLow(int page); 00209 00210 using FEbaseEvent::getTimeStamp; 00211 00230 void getTimeStamp(int page, unsigned long *sec, 00231 int *subSec1, int *subSec2, int *imgAddr, 00232 int *evtAddr, int *trigger=0); 00233 00238 void getTimeStamp(int page, FE4timeStamp *timeStamp); 00239 00240 00243 unsigned long getLastTriggerTimeStampLow(int page); 00244 00267 int getTriggerSource(); 00268 00270 void setTriggerSource(int source); 00271 00277 void enableNeighborTrig(); 00278 00284 void disableNeighborTrig(); 00285 00291 bool isEnabledNeighborTrig(); 00292 00297 void forceTrigger(); 00298 00299 void enableLeftNeighborTrig(); 00300 void enableRightNeighborTrig(); 00301 void disableLeftNeigborTrig(); 00302 void disableRightNeighborTrig(); 00303 bool isEnabledLeftNeigborTrig(); 00304 bool isEnabledRightNeighborTrig(); 00305 00306 //-tb- 00314 int getNextPageDelay(); 00315 //-tb- 00318 void setNextPageDelay(int delay); 00319 00320 //-tb- 00327 int getCoincidenceTime(); 00328 //-tb- 00332 void setCoincidenceTime(int time); 00333 00334 //-tb- 00343 int getLengthOfBoxcar(int col=0, int fpga=1); 00344 00345 00351 int waitForNextPage(); 00352 00353 void disableNextPage(); 00354 00355 void enableNextPage(); 00356 00357 bool isEnabledNextPage(); 00358 00365 void waitForPageErr(); 00366 00367 void disablePageErr(); 00368 00369 void enablePageErr(); 00370 00371 bool isEnabledPageErr(); 00372 00373 private: 00374 00375 hw4::SubrackAuger *s; 00376 00377 }; 00378 00379 #endif // FE4EVENT_H 00380 00381 00382