00001 #ifndef STSVTONLINESEQADJSIM_HH
00002 #define STSVTONLINESEQADJSIM_HH
00003
00004 #include "Stiostream.h"
00005 #include <cstdlib>
00006 using namespace std;
00007 #include "StMaker.h"
00008
00009 class StSvtConfig;
00010 class StSvtHybridPixelsC;
00011 class StSvtHybridPixelsD;
00012
00013 class StSvtHybridCollection;
00014 class StSvtData;
00015 class StSvtDaq;
00016
00017
00018
00030 class StSvtOnlineSeqAdjSimMaker:public StMaker
00031 {
00032 public:
00033 StSvtOnlineSeqAdjSimMaker(const char* name = "SvtOnlineSeqAdj");
00034 ~StSvtOnlineSeqAdjSimMaker();
00035
00036
00037 void SetKillBadAnodes(bool doit){mKillBadAnodes=doit;}
00038 bool GetKillBadAnodes(){return mKillBadAnodes;}
00039 void SetSaveAnode2Raw(bool doit){mSaveAnode2Raw=doit;}
00040 bool GetSaveAnode2Raw(){return mSaveAnode2Raw;}
00041 void SetSaveAnode239Raw(bool doit){mSaveAnode239Raw=doit;}
00042 bool GetSaveAnode239Raw(){return mSaveAnode239Raw;}
00043
00044 void SetNumberTBinsToClear(int n){mNumberTBinsToClear=n;}
00045 int GetNumberTBinsToClear(){return mNumberTBinsToClear;}
00046 void SetExtraPixelsBefore(int num){mExtraBefore=num;}
00047 int GetExtraPixelsBefore(){return mExtraBefore;}
00048 void SetExtraPixelsAfter(int num){mExtraAfter=num;}
00049 int GetExtraPixelsAfter(){return mExtraAfter;}
00050
00051 void Set_n_seq_lo(int num){m_n_seq_lo=num;}
00052 int Get_n_seq_lo(){return m_n_seq_lo;}
00053 void Set_n_seq_hi(int num){m_n_seq_hi=num;}
00054 int Get_n_seq_hi(){return m_n_seq_hi;}
00055 void Set_thresh_lo(int num){m_thresh_lo=num;}
00056 int Get_thresh_lo(){return m_thresh_lo;}
00057 void Set_thresh_hi(int num){m_thresh_hi=num;}
00058 int Get_thresh_hi(){return m_thresh_hi;}
00059 void SetPedOffset(int num){mPedOffset=num;}
00060 int GetPedOffset(){return mPedOffset;}
00061
00062 void SetAdjParams(int thresh_lo,int n_seq_lo,int thresh_hi,int n_seq_hi);
00063
00065 virtual Int_t Init();
00066 virtual Int_t Make();
00067 virtual void Clear(const char *opt);
00068 virtual Int_t Finish();
00069 virtual Int_t InitRun(int runumber);
00070
00071 private:
00073 StSvtData *mPixelColl;
00074
00075 StSvtData *m8bitPixelColl;
00076 StSvtData *mRawData;
00077 StSvtHybridCollection *mSvtBadAnodes;
00078 StSvtConfig *mConfig;
00079 StSvtDaq *mDaq;
00080
00081 bool mKillBadAnodes;
00082 int mNumberTBinsToClear;
00083 bool mSaveAnode2Raw;
00084 bool mSaveAnode239Raw;
00085 bool mRunSvtOnlineSeqAdj;
00086
00088 int mExtraBefore;
00089 int mExtraAfter;
00090
00092 int m_n_seq_lo;
00093 int m_n_seq_hi;
00094 int m_thresh_lo;
00095 int m_thresh_hi;
00096 int mPedOffset;
00097 int mPedOffsetAdjustment;
00098 Bool_t mMask[128*240];
00099
00101 StSvtHybridPixelsD *mCurrentPixelData;
00102 StSvtHybridPixelsC *mCurrent8bitPixelData;
00103 int mCurrentIndex;
00104
00105 Int_t GetConfig();
00106 Int_t GetDaqParams();
00107 void GetBadAnodes();
00108 Int_t GetPixelData();
00109 void SetRawData();
00110
00111 void Conversion10to8bit();
00112 void KillBadAnodes();
00113 void ClearMask();
00114 void RawAnodes();
00115 void ClearFirstTbins();
00116 void SequenceSearch();
00117 void WriteMask();
00118 void WriteSequence(int anode,int begins, int ends, int NumOfHigh);
00119 void FillRawData();
00120 public:
00121 virtual const char *GetCVS() const
00122 {static const char cvs[]="Tag $Name: $ $Id: StSvtOnlineSeqAdjSimMaker.h,v 1.7 2010/04/15 18:37:32 baumgart Exp $ built "__DATE__" "__TIME__ ; return cvs;}
00123
00124 ClassDef(StSvtOnlineSeqAdjSimMaker,1)
00125 };
00126
00127 #endif