StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFcsTriggerSimMaker.h
1 // \class StFcsEventDisplay
2 // \author Akio Ogawa
3 //
4 // This is FCS trigger simulation.
5 //
6 
7 #ifndef STAR_StFcsTriggerSimMaker_HH
8 #define STAR_StFcsTriggerSimMaker_HH
9 
10 #include "StMaker.h"
11 #include <stdint.h>
12 
13 class StFcsDb;
14 class StFcsCollection;
15 class StMuFcsCollection;
16 class TFile;
17 class fcs_trg_base;
18 class link_t;
19 class geom_t;
20 class TTree;
21 class TH1F;
22 class StFcsHit;
23 class StMuFcsHit;
24 
26 public:
27  StFcsTriggerSimMaker(const char* name="FcsTrgSim");
29  int Init();
30  int InitRun(int runNumber);
31  int Make();
32  int Finish();
33 
34  void setTrigger(int v) {mTrgSelect=v;};
35  void setDebug(int v) {mDebug=v;};
36  void setWriteEventText(char* filename) {mFilename=filename;};
37  void setWriteQaTree(char* filename) {mQaTreeFilename=filename;};
38  void setWriteQaHist(char* filename) {mQaHistFilename=filename;};
39  void setReadPresMask(char* filename) {mPresMask=filename;};
40  void setSimMode(int v, int tb=52) {mSimMode=v; mTrgTimebin=tb;}
41  void setTrgTimeBin(int v) {mTrgTimebin=v;} //8 timebin = v-3 to v+4. v=52 for 49~56
42  void setThresholdFile(char* file) {mThresholdFile=file;}
43  void setThresholdDb(int run) {mThresholdDb=run;}
44  void setOverwriteGain(int v) {mOverwriteGain=v;} // 0=use text Et andelectronics gain file 1=from FscDb(default)
45 
46  //factor= 1(ET Match), 0(E Match), 0.5(halfway)
47  void setEtGain(float v) {mEtFactor=v;}
48 
49  fcs_trg_base* getTriggerEmu() {return mTrgSim;}
50 
51  template<typename T> void feedADC(T* hit, int ns, int ehp, uint16_t data_array[]);
52 
53  //this is for just running stage2 from macro
54  void runStage2(link_t ecal[], link_t hcal[], link_t pres[], geom_t &geo, link_t output[]);
55 
56 private:
57  StFcsDb* mFcsDb=0;
58  StFcsCollection* mFcsColl=0;
59  StMuFcsCollection* mMuFcsColl = 0;
60 
61  int mTrgSelect=0;
62  int mDebug=0;
63  char* mFilename=0;
64  FILE* mFile=0;
65 
66  int mSimMode=0;
67  int mTrgTimebin=52;
68 
69  fcs_trg_base* mTrgSim;
70 
71  char* mPresMask=0;
72  char* mQaTreeFilename=0;
73  char* mQaHistFilename=0;
74  TFile* mQaTreeFile=0;
75  TFile* mQaHistFile=0;
76  TTree* mTree=0;
77  TH1F* mTrgRate=0;
78  int mFlt=0;
79  int mTcu=0;
80  int mTrg=0;
81  float mEtFactor=1.0;
82  char* mThresholdFile=0;
83  int mThresholdDb=0;
84  int mOverwriteGain=1;
85 
86  void print4B4();
87  void printJP();
88  void readThresholdFile();
89  void readThresholdDb();
90 
91  virtual const char *GetCVS() const
92  {static const char cvs[]="Tag $Name: $ $Id: StFcsTriggerSimMaker.h,v 1.2 2021/05/30 21:40:56 akio Exp $ built " __DATE__ " " __TIME__ ; return cvs;}
93 
94  ClassDef(StFcsTriggerSimMaker,0);
95 };
96 
97 #endif