StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFmsCalibMaker.h
1 #ifndef StFmsCalibMaker_h
2 #define StFmsCalibMaker_h
3 
4 #include "StMaker.h"
5 
7 class StFmsCollection;
8 class StFmsDbMaker;
9 class StFmsPointPair;
10 class StTriggerData;
11 class StTriggerId;
12 
13 class TFile;
14 class TTree;
15 class TH1F;
16 class TH2F;
17 
18 class StFmsCalibMaker : public StMaker
19 {
20  public:
21 
22  StFmsCalibMaker(const char* name = "fmsCalibMaker") : StMaker(name) {}
23  ~StFmsCalibMaker() {}
24 
25  void GetMap(void) { mGetMap = true; }
26  void GetQaHist(void) { mGetQaHist = true; }
27  void GetQaHistAdc(int trigId) { mGetQaHistAdc = true; mTrigMB = trigId; }
28  void GetQaTree(void) { mGetQaTree = true; }
29  void ReadCellStat(const char* list); //Get cell status from external file
30  void VpdTimingCut(int vpdCut) { mApplyVpdTime = true; mVpdCut = vpdCut; }
31  void SetOutName(const char* name) { mOutName = name; }
32 
33  Int_t CheckFmsTrigger(const StTriggerId& trigId, const int mFmsTrigIdBase = 480800); //RUN15pp200
34  Int_t ReadBbcSlewing(const char* filename_bbc); //Oleg's BBC slewing correction function
35  Float_t GetBbcZCorr(const StTriggerData* triggerData);
36  Float_t GetBbcZCorrMass(StFmsPointPair* pair, Float_t bbcZ, bool returnOpenA = false);
37 
38  Int_t Init();
39  Int_t InitRun(int runNo);
40  Int_t Finish();
41  Int_t Make();
42 
43  private:
44 
45  StFmsCalibMakerQa* mQa;
46  StFmsCollection* mFmsColl;
47  StFmsDbMaker* mFmsDbMk;
48  TFile* mFile;
49 
50  const char* mOutName = "fmsCalib.root";
51  bool mApplyBbcZvtx = false; //Turns to true if ReadBbcSlewing is used
52  bool mApplyVpdTime = false; //Turns to true if VpdTimingCut is used
53  bool mGetMap = false; //Get maps FmsMapBase, FmsBitShift for calibFms.C
54  bool mGetQaHist = false; //Get QA histograms: related to mass
55  bool mGetQaHistAdc = false; //Get QA histograms: ADC distributions by single physics trigger
56  bool mGetQaTree = false; //Get QA tree
57  bool mReadCellStat = false;
58  std::map<int, int> mCellStat[4]; //0 for not bad/dead, 1 for bad, 2 for dead, and 9 for converged
59  enum mCellStatIndex {GOOD, BAD, DEAD, NA3, NA4, NA5, NA6, NA7, NA8, CONVERGED};
60 
61  int mEvent = 0;
62  int mRunNo = 0;
63  int mTrig = 0;
64  int mTrigMB = 0;
65  int mVpdCut = 0;
66  int mXing = 0;
67  Float_t mBbcZ = -999.;
68  Float_t mBbcSlew[2][16][3]; //Oleg, [east/west][pmt][parameter]
69 
70  TH2F* mH2_mass[4]; //Mass vs. Channel, default
71  TH2F* mH2_massFine[4]; //Mass vs. Channel, x5 bins
72 
73  ClassDef(StFmsCalibMaker, 1);
74 };
75 
76 #endif
StMaker(const char *name="", const char *dummy=0)
Constructor &amp; Destructor.
Definition: StMaker.cxx:188