00001 #ifndef BEMCPlots_H
00002 #define BEMCPlots_H
00003
00004 class TH1F;
00005 class TH2F;
00006 class TFile;
00007 class TObjArray;
00008
00009 #define BEMCNJET 12
00010 #define BEMCTOW 4800
00011
00012 class BEMCPlots {
00013
00014 public:
00015 BEMCPlots(TObjArray *list = 0);
00016 ~BEMCPlots();
00017
00018 void init(unsigned int date, unsigned int time, const char *bemcStatus);
00019 void clear(const char *bemcStatus);
00020 void saveHistograms(TFile *hfile);
00021 void processEvent( char *rdr
00022 , const unsigned char *dsmL0WestInput = 0
00023 , const unsigned char *dsmL0EastInput = 0
00024 , const unsigned short *dsmL1Input = 0
00025 , const unsigned short *dsmL2Input = 0
00026 , const unsigned short *dsmL3Input = 0
00027 );
00028
00029 int getDebug() {return mDebug;}
00030 void setDebug(int d) {mDebug = d;}
00031
00032
00033 static void initHisto(TObjArray *list = 0, const char *bemcStatus = 0);
00034 static void resetHisto(const char *bemcStatus = 0);
00035 static void saveHisto(TFile *hfile);
00036 static void fillHisto(char *rdr
00037 , const unsigned char *dsmL0WestInput = 0
00038 , const unsigned char *dsmL0EastInput = 0
00039 , const unsigned short *dsmL1Input = 0
00040 , const unsigned short *dsmL2Input = 0
00041 , const unsigned short *dsmL3Input = 0
00042 );
00043
00044
00045 private:
00046 int mDebug;
00047
00048 int mDsmL0InputHighTower[300];
00049 int mDsmL0InputPatchSum[300];
00050
00051 int mDsmL1InputHighTowerBits[6][6];
00052 int mDsmL1InputPatchSum[6][6];
00053
00054 int mDsmL2InputHighTowerBits[12];
00055 int mDsmL2InputPatchSumBits[12];
00056 int mDsmL2InputPatchSum[6];
00057
00058 int mDsmL3InputHighTowerBits[1];
00059 int mDsmL3InputPatchSumBits[1];
00060 int mDsmL3InputBackToBackBit[1];
00061 int mDsmL3InputJPsiTopoBit[1];
00062 int mDsmL3InputJetPatchTopoBit[1];
00063
00064 TH1F *mHistTot;
00065 TH2F *mHistDsmL0InputHighTower;
00066 TH2F *mHistDsmL0InputPatchSum;
00067
00068 TH2F *mHistDsmL1InputHighTowerBits;
00069 TH2F *mHistDsmL1InputPatchSum;
00070
00071 TH2F *mHistDsmL2InputHighTowerBits;
00072 TH2F *mHistDsmL2InputPatchSumBits;
00073 TH2F *mHistDsmL2InputPatchSum;
00074
00075 TH1F *mHistDsmL3InputHighTowerBits;
00076 TH1F *mHistDsmL3InputPatchSumBits;
00077 TH1F *mHistDsmL3InputBackToBackBit;
00078 TH1F *mHistDsmL3InputJPsiTopoBit;
00079 TH1F *mHistDsmL3InputJetPatchTopoBit;
00080
00081 TH2F *mHistRawAdc1;
00082 TH2F *mHistRawAdc2;
00083 TH2F *mHistRawAdc3;
00084 TH2F *mHistRawAdc4;
00085
00086 TH2F *mHistRawAdc1zoom;
00087 TH2F *mHistRawAdc2zoom;
00088 TH2F *mHistRawAdc3zoom;
00089 TH2F *mHistRawAdc4zoom;
00090
00091 TH2F *mHistRawAdcPsd1;
00092 TH2F *mHistRawAdcPsd2;
00093 TH2F *mHistRawAdcPsd3;
00094 TH2F *mHistRawAdcPsd4;
00095
00096 TH2F *mHistSmdFeeSum;
00097 TH2F *mHistPsdFeeSum;
00098
00099 TH2F *mHistSmdFeeSumNonZS;
00100 TH2F *mHistPsdFeeSumNonZS;
00101
00102 TH1F *mHistHighTowerSpectrum[BEMCNJET];
00103 TH1F *mHistPatchSumSpectrum[BEMCNJET];
00104
00105 int mTowerData[4800][3];
00106 int mPatchData[300][11];
00107 int mTriggerPedestalShift;
00108 TH1F *mHistTriggerCorruptionHighTower;
00109 TH1F *mHistTriggerCorruptionPatchSum;
00110 int mDsmSimuHighTower[300];
00111 int mDsmSimuPatchSum[300];
00112 TH2F *mHistDSM0HTCorr;
00113 TH2F *mHistDSM0TPCorr;
00114
00115 TH2F *mHist_TDC_status;
00116 TH2F *mHist_SMD_status;
00117 TH2F *mHist_PSD_status;
00118 TH1F *mHist_BTOW_Corruption;
00119
00120 TH2F *mHist_btow_spectra_1;
00121 TH2F *mHist_btow_spectra_2;
00122 TH2F *mHist_btow_spectra_3;
00123
00124 TH1F *mHist_smd_spectra;
00125 TH1F *mHist_smd_spectraNonZS;
00126 TH2F *mHist_smd_capacitor;
00127 TH2F *mHist_smd_sum;
00128 TH1F *mHist_psd_spectra;
00129 TH1F *mHist_psd_spectraNonZS;
00130 TH2F *mHist_psd_capacitor;
00131 TH2F *mHist_psd_sum;
00132
00133 TH2F *mHist_HTMAX_spectra;
00134 TH2F *mHist_PAMAX_spectra;
00135 TH1F *mHist_HTMAX_dist;
00136 TH1F *mHist_PAMAX_dist;
00137
00138 TH2F *mHist_JET_ped;
00139 TH2F *mHist_JET_spectra;
00140 TH2F *mHist_JETMAX_spectra;
00141 TH1F *mHist_JETMAX_dist;
00142
00143 TH2F *mHist_ADCEtaPhi_TowHits;
00144 TH2F *mHist_ADCEtaPhi_Pre1Hits;
00145
00146 int BEMCNJPPED[BEMCNJET];
00147 int BEMCJPPED[BEMCNJET];
00148 float towerPed[BEMCTOW];
00149
00150 };
00151
00152 #endif
00153