00001 #ifndef __StEEmcDisplay_h__
00002 #define __StEEmcDisplay_h__
00003
00004 #include "TNamed.h"
00005 #include "StEEmcUtil/EEmcGeom/EEmcGeomDefs.h"
00006
00007 #include "StEEmcPool/StEEmcA2EMaker/StEEmcTower.h"
00008 #include "StEEmcPool/StEEmcClusterMaker/StEEmcCluster.h"
00009 #include "StEEmcPool/StEEmcClusterMaker/StEEmcSmdCluster.h"
00010 #include "StEEmcPool/StEEmcPointMaker/StEEmcPointMaker.h"
00011
00012 class TH1F;
00013 class TH2F;
00014 class TMarker;
00015 class TCanvas;
00016 class TPaveText;
00017
00018 class EEmcGeomSimple;
00019
00020 class StEEmcDisplay : public TNamed
00021 {
00022
00023 public:
00024 StEEmcDisplay( const Char_t *name="aname", const Char_t *atitle="atitle" );
00025 ~StEEmcDisplay(){ };
00026
00028 void add ( StEEmcTower tower );
00030 void add ( StEEmcStrip strip );
00031
00033 void add ( StEEmcSmdCluster cluster, Int_t color=1, Int_t fill=1001 );
00035 void add ( StEEmcPoint point, Int_t color=1, Int_t style=20 );
00036
00038 void clear();
00039
00040 TH2F *DrawTowers(Option_t *opts="box,text");
00041 TH2F *DrawPoints(Option_t *opts="box");
00042 TH2F *DrawLayer(Int_t layer, Option_t *opts="box,text");
00043 TH1F *DrawSmd( Int_t sector, Int_t plane, Option_t *opts="" );
00044 TH1F *DrawClusters( Int_t sector, Int_t plane, Option_t *opts="");
00046 TH1F *DrawCluster( Int_t cluster, Option_t *opts="" );
00048 TCanvas *getEEmc(){ return eemc; }
00049 TCanvas *getSmdu(){ return smdu; }
00050 TCanvas *getSmdv(){ return smdv; }
00051 TCanvas *getPre1(){ return pre1; }
00052 TCanvas *getPre2(){ return pre2; }
00053 TCanvas *getPost(){ return post; }
00055
00056
00057
00058
00059
00060
00061 Float_t sumEnergy( Int_t layer );
00062
00064 Int_t hitMultiplicity( Int_t layer, Float_t threshold = 0.0 );
00065
00066
00067 Int_t mHighTowerPhibin;
00068 Int_t mHighTowerEtabin;
00069 Float_t mHighTowerEnergy;
00071 private:
00072 protected:
00073
00074 TCanvas *eemc;
00075 TCanvas *smdu;
00076 TCanvas *smdv;
00077 TCanvas *pre1;
00078 TCanvas *pre2;
00079 TCanvas *post;
00080
00081 EEmcGeomSimple *geom;
00082
00083 Float_t mEnergy2Mip;
00084
00085 Float_t mTowerEnergy[ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ];
00086 Int_t mTowerStat [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ];
00087 Int_t mTowerFail [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ];
00088 TH2F *hTowers;
00089
00090 Float_t mStripEnergy[ kEEmcNumSectors ][ kEEmcNumSmdPlanes ][ kEEmcNumStrips ];
00091 Int_t mStripStat [ kEEmcNumSectors ][ kEEmcNumSmdPlanes ][ kEEmcNumStrips ];
00092 Int_t mStripFail [ kEEmcNumSectors ][ kEEmcNumSmdPlanes ][ kEEmcNumStrips ];
00093 TH1F *hSmds[ kEEmcNumSectors ][ kEEmcNumSmdPlanes ];
00094
00095 Float_t mPrepostEnergy[ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ][3];
00096 Int_t mPrepostStat [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ][3];
00097 Int_t mPrepostFail [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ][3];
00098 TH2F *hPre1;
00099 TH2F *hPre2;
00100 TH2F *hPost;
00101
00102 std::vector< Int_t > mClusterKey;
00103 std::vector< Float_t > mClusterEnergy;
00104 std::vector< Int_t > mClusterSector;
00105 std::vector< Int_t > mClusterPlane;
00106 std::vector< std::vector < Int_t > > mClusterStrips;
00107 std::vector< Float_t > mClusterMean;
00108 std::vector< Float_t > mClusterSigma;
00109 std::vector< TPaveText * > mClusterStats;
00110 std::vector< Bool_t > mClusterSplit;
00111
00112 std::vector< TH1F* > mClusterHisto;
00113 std::vector< Int_t > mClusterColor;
00114 std::vector< Int_t > mClusterFill;
00115
00116 std::vector< Int_t > mPointKey;
00117 std::vector< Float_t > mPointEnergy;
00118 std::vector< Float_t > mPointX;
00119 std::vector< Float_t > mPointY;
00120
00121 std::vector< TMarker* > mPointMarker;
00122 std::vector< Int_t > mPointColor;
00123 std::vector< Int_t > mPointStyle;
00124
00125 std::vector< Int_t > mPointUkey;
00126 std::vector< Int_t > mPointVkey;
00127
00128 void failTower( Int_t sec, Int_t sub, Int_t eta, TH2F *histo );
00129
00130 Int_t nClustersU;
00131 Int_t nClustersV;
00132 Int_t nPoints;
00133 Int_t nPi0;
00134 Int_t nEta;
00135
00136 ClassDef(StEEmcDisplay,1);
00137
00138 };
00139
00140 #endif