fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/FE/fe4event.h
Go to the documentation of this file.
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