00001 #ifndef EVENTDISPLAYCELL_H
00002 #define EVENTDISPLAYCELL_H
00003
00004 #include <iostream>
00005 #include <vector>
00006
00007 #include "TH1D.h"
00008 #include "TH2D.h"
00009
00010 class Particle;
00011
00012 using namespace std;
00013
00014 const int CELL_SIZE_010_010 = 1;
00015 const int CELL_SIZE_020_020 = 2;
00016 const double NEGATIVE_LARGE_NUMBER_ENERGY = -1.E+30;
00017
00018 class EventDisplayCell
00019 {
00020 public:
00021 EventDisplayCell(Int_t *AJ_ncellLArHEC,
00022 Float_t *AJ_ce_etaLArHEC,
00023 Float_t *AJ_ce_phiLArHEC,
00024 Float_t *AJ_ce_eLArHEC,
00025 Int_t *AJ_ce_detLArHEC,
00026 Int_t *AJ_ncellLArFCal,
00027 Float_t *AJ_ce_etaLArFCal,
00028 Float_t *AJ_ce_phiLArFCal,
00029 Float_t *AJ_ce_eLArFCal,
00030 Int_t *AJ_ce_detLArFCal,
00031 Int_t *AJ_ncellTile,
00032 Float_t *AJ_ce_etaTile,
00033 Float_t *AJ_ce_phiTile,
00034 Float_t *AJ_ce_eTile,
00035 Int_t *AJ_ce_detTile,
00036 Int_t *AJ_ncellLArEM,
00037 Float_t *AJ_ce_etaLArEM,
00038 Float_t *AJ_ce_phiLArEM,
00039 Float_t *AJ_ce_eLArEM,
00040 Int_t *AJ_ce_detLArEM,
00041 vector<Particle*> &JetList
00042 ) :
00043 aj_ncellLArHEC(AJ_ncellLArHEC), aj_ce_etaLArHEC(AJ_ce_etaLArHEC),
00044 aj_ce_phiLArHEC(AJ_ce_phiLArHEC), aj_ce_eLArHEC(AJ_ce_eLArHEC),
00045 aj_ce_detLArHEC(AJ_ce_detLArHEC),
00046 aj_ncellLArFCal(AJ_ncellLArFCal), aj_ce_etaLArFCal(AJ_ce_etaLArFCal),
00047 aj_ce_phiLArFCal(AJ_ce_phiLArFCal), aj_ce_eLArFCal(AJ_ce_eLArFCal),
00048 aj_ce_detLArFCal(AJ_ce_detLArFCal),
00049 aj_ncellTile(AJ_ncellTile), aj_ce_etaTile(AJ_ce_etaTile),
00050 aj_ce_phiTile(AJ_ce_phiTile), aj_ce_eTile(AJ_ce_eTile),
00051 aj_ce_detTile(AJ_ce_detTile),
00052 aj_ncellLArEM(AJ_ncellLArEM), aj_ce_etaLArEM(AJ_ce_etaLArEM),
00053 aj_ce_phiLArEM(AJ_ce_phiLArEM), aj_ce_eLArEM(AJ_ce_eLArEM),
00054 aj_ce_detLArEM(AJ_ce_detLArEM),
00055 jetList(JetList) {
00056 m_2d[0] = 0;
00057 m_2d[1] = 0;
00058 m_2d[2] = 0;
00059 m_2d[3] = 0;
00060 m_2d[4] = 0;
00061 m_2d[5] = 0;
00062 m_mode = CELL_SIZE_010_010;
00063 m_cellEth = NEGATIVE_LARGE_NUMBER_ENERGY;
00064 m_towerEth = NEGATIVE_LARGE_NUMBER_ENERGY;
00065 };
00066
00067 virtual ~EventDisplayCell() { deleteHist(); }
00068
00069 TH1D ** GetTH1D() { return 0; }
00070 TH2D ** GetTH2D() { return m_2d; }
00071 int GetNTH1D() { return 0; }
00072 int GetNTH2D() { return 6; }
00073
00074 void CreateHist() { makeHist(); fillHist(); }
00075 void DeleteHist() { deleteHist(); }
00076 void SetMode(int mode) { m_mode = mode; }
00077 void SetCellEth(double x) { m_cellEth = x; }
00078 void SetTowerEth(double x) { m_towerEth = x; }
00079 int GetMode() { return m_mode; }
00080 double GetCellEth() { return m_cellEth; }
00081 double GetTowerEth() { return m_towerEth; }
00082
00083 private:
00084 TH2D *m_2d[6];
00085
00086 int m_mode;
00087 double m_cellEth;
00088 double m_towerEth;
00089
00090 void makeHist();
00091 void deleteHist();
00092 void fillHist();
00093 double calPhi(double phi);
00094 void applyTowerEthCut(TH2D *src, TH2D *dest);
00095
00096 Int_t *aj_ncellLArHEC;
00097 Float_t *aj_ce_etaLArHEC;
00098 Float_t *aj_ce_phiLArHEC;
00099 Float_t *aj_ce_eLArHEC;
00100 Int_t *aj_ce_detLArHEC;
00101 Int_t *aj_ncellLArFCal;
00102 Float_t *aj_ce_etaLArFCal;
00103 Float_t *aj_ce_phiLArFCal;
00104 Float_t *aj_ce_eLArFCal;
00105 Int_t *aj_ce_detLArFCal;
00106 Int_t *aj_ncellTile;
00107 Float_t *aj_ce_etaTile;
00108 Float_t *aj_ce_phiTile;
00109 Float_t *aj_ce_eTile;
00110 Int_t *aj_ce_detTile;
00111 Int_t *aj_ncellLArEM;
00112 Float_t *aj_ce_etaLArEM;
00113 Float_t *aj_ce_phiLArEM;
00114 Float_t *aj_ce_eLArEM;
00115 Int_t *aj_ce_detLArEM;
00116 std::vector<Particle*> jetList;
00117 };
00118
00119 #endif // EVENTDISPLAYCELL_H