StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEmcCalibMaker.h
1 #ifndef STAR_StEmcCalibMaker
2 #define STAR_StEmcCalibMaker
3 
4 #include <TString.h>
5 #include <TF1.h>
6 #include <TH2.h>
7 #include <TH1.h>
8 
9 #include <StMaker.h>
10 
11 #include "StEmcCalibrationMaker.h"
12 
13 #define MAXTRACK 10000
14 #define MAXBEMC 4
15 #define MAXCHANNEL 18000
16 #define MAXTOWERCHANNEL 18000
17 
18 class StEmcGeom;
19 
20 class StEmcCalibMaker : public StMaker {
21 protected:
22  StEmcCalibrationMaker *mCalib;
23 
24  TH2F *mSpec;
25  TH1F *mAccept;
26 
27  int mNMinTracks;
28  int mNMaxTracks;
29  int mNEvents;
30  int mDate;
31  int mTime;
32  long mZDCMin;
33  long mZDCMax;
34  long mCTBMin;
35  long mCTBMax;
36 
37  int mDetector;
38  int mNChannel;
39  float mRange;
40 
41  TString mFileName;
42  TString mSpecName;
43  TString mAcceptName;
44 
45  bool mAutoSaveDB;
46  bool mDebug;
47 
48 public:
49 
50  StEmcCalibMaker(const Char_t *name="EmcCalib");
51  virtual ~StEmcCalibMaker();
52  virtual Int_t Init();
53  virtual Int_t Make();
54  virtual Int_t Finish();
55  virtual void Clear(Option_t *option="");
56 
57  bool accept();
58  void reset() { if(mSpec) mSpec->Reset(); mNEvents = 0; mDate = 20330101;}
59  void fill(int id, float value) { if(mSpec) mSpec->Fill(id,value);}
60 
61  void calcVoltages(TH1F*, char*, char*, char*);
62 
63  StEmcCalibrationMaker* getCalib() { return mCalib;}
64 
65  TH2F* getSpec() const { return mSpec;}
66  TH1D* getSpec(int id,const Char_t *name = "id") const {return mSpec ? mSpec->ProjectionY(name, id, id) : NULL;}
67 
68 
69  void saveHist(const Char_t *filename);
70  void loadHist(const Char_t *filename);
71  void addHist(const Char_t *filename);
72  int getNChannel() const { return mNChannel;}
73  int getNEvents() const { return mNEvents;}
74  int getDate() const { return mDate;}
75  int getTime() const { return mTime;}
76  int getDetector() const { return mDetector;}
77  void getMeanAndRms(TH1D*,float,float,float*,float*);
78  void getLogMeanAndRms(TH1D*,float,float,float*,float*);
79  float getTimeInterval(int,int);
80  StEmcGeom* getGeom();
81 
82  bool isAutoSaveDB() const { return mAutoSaveDB;}
83  bool isDebug() const { return mDebug;}
84 
85  void setFile(const Char_t *f) { mFileName = f; }
86  void setDetector(int det) { mDetector = det; if(mDetector<3) mNChannel = 4800; else mNChannel=18000;}
87  void setMinTracks(int t) { mNMinTracks = t;}
88  void setMaxTracks(int t) { mNMaxTracks = t;}
89  void setCTBMin(int t) { mCTBMin = t;}
90  void setCTBMax(int t) { mCTBMax = t;}
91  void setZDCMin(int t) { mZDCMin = t;}
92  void setZDCMax(int t) { mZDCMax = t;}
93  void setRange(float range) { mRange = range;}
94 
95  void setAutoSaveDB(bool a) { mAutoSaveDB = a;}
96  void setDebug(bool a) { mDebug = a;}
97  ClassDef(StEmcCalibMaker, 1)
98 };
99 
100 #endif
virtual void Clear(Option_t *option="")
User defined functions.
virtual Int_t Make()
virtual Int_t Finish()