StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEEmcDisplay.h
1 #ifndef __StEEmcDisplay_h__
2 #define __StEEmcDisplay_h__
3 
4 #include "TNamed.h"
5 #include "StEEmcUtil/EEmcGeom/EEmcGeomDefs.h"
6 
7 #include "StEEmcPool/StEEmcA2EMaker/StEEmcTower.h"
8 #include "StEEmcPool/StEEmcClusterMaker/StEEmcCluster.h"
9 #include "StEEmcPool/StEEmcClusterMaker/StEEmcSmdCluster.h"
10 #include "StEEmcPool/StEEmcPointMaker/StEEmcPointMaker.h"
11 
12 class TH1F;
13 class TH2F;
14 class TMarker;
15 class TCanvas;
16 class TPaveText;
17 
18 class EEmcGeomSimple;
19 
20 class StEEmcDisplay : public TNamed
21 {
22 
23  public:
24  StEEmcDisplay( const Char_t *name="aname", const Char_t *atitle="atitle" );
25  ~StEEmcDisplay(){ /* nada */ };
26 
28  void add ( StEEmcTower tower );
30  void add ( StEEmcStrip strip );
31 
33  void add ( StEEmcSmdCluster cluster, Int_t color=1, Int_t fill=1001 );
35  void add ( StEEmcPoint point, Int_t color=1, Int_t style=20 );
36 
38  void clear();
39 
40  TH2F *DrawTowers(Option_t *opts="box,text");
41  TH2F *DrawPoints(Option_t *opts="box");
42  TH2F *DrawLayer(Int_t layer, Option_t *opts="box,text");
43  TH1F *DrawSmd( Int_t sector, Int_t plane, Option_t *opts="" );
44  TH1F *DrawClusters( Int_t sector, Int_t plane, Option_t *opts="");
46  TH1F *DrawCluster( Int_t cluster, Option_t *opts="" );
48  TCanvas *getEEmc(){ return eemc; }
49  TCanvas *getSmdu(){ return smdu; }
50  TCanvas *getSmdv(){ return smdv; }
51  TCanvas *getPre1(){ return pre1; }
52  TCanvas *getPre2(){ return pre2; }
53  TCanvas *getPost(){ return post; }
55  Float_t sumEnergy( Int_t layer );
62 
64  Int_t hitMultiplicity( Int_t layer, Float_t threshold = 0.0 );
65 
66 
69  Float_t mHighTowerEnergy;
71  private:
72  protected:
73 
74  TCanvas *eemc;
75  TCanvas *smdu;
76  TCanvas *smdv;
77  TCanvas *pre1;
78  TCanvas *pre2;
79  TCanvas *post;
80 
81  EEmcGeomSimple *geom; //||
82 
83  Float_t mEnergy2Mip; //||
84 
85  Float_t mTowerEnergy[ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ];
86  Int_t mTowerStat [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ];
87  Int_t mTowerFail [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ];
88  TH2F *hTowers;
89 
90  Float_t mStripEnergy[ kEEmcNumSectors ][ kEEmcNumSmdPlanes ][ kEEmcNumStrips ];
91  Int_t mStripStat [ kEEmcNumSectors ][ kEEmcNumSmdPlanes ][ kEEmcNumStrips ];
92  Int_t mStripFail [ kEEmcNumSectors ][ kEEmcNumSmdPlanes ][ kEEmcNumStrips ];
93  TH1F *hSmds[ kEEmcNumSectors ][ kEEmcNumSmdPlanes ];
94 
95  Float_t mPrepostEnergy[ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ][3];
96  Int_t mPrepostStat [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ][3];
97  Int_t mPrepostFail [ kEEmcNumSectors ][ kEEmcNumSubSectors ][ kEEmcNumEtas ][3];
98  TH2F *hPre1;
99  TH2F *hPre2;
100  TH2F *hPost;
101 
102  std::vector< Int_t > mClusterKey;
103  std::vector< Float_t > mClusterEnergy;
104  std::vector< Int_t > mClusterSector;
105  std::vector< Int_t > mClusterPlane;
106  std::vector< std::vector < Int_t > > mClusterStrips;
107  std::vector< Float_t > mClusterMean;
108  std::vector< Float_t > mClusterSigma;
109  std::vector< TPaveText * > mClusterStats;
110  std::vector< Bool_t > mClusterSplit;
111 
112  std::vector< TH1F* > mClusterHisto; //||
113  std::vector< Int_t > mClusterColor; //||
114  std::vector< Int_t > mClusterFill; //||
115 
116  std::vector< Int_t > mPointKey;
117  std::vector< Float_t > mPointEnergy;
118  std::vector< Float_t > mPointX;
119  std::vector< Float_t > mPointY;
120 
121  std::vector< TMarker* > mPointMarker; //||
122  std::vector< Int_t > mPointColor; //||
123  std::vector< Int_t > mPointStyle; //||
124 
125  std::vector< Int_t > mPointUkey;
126  std::vector< Int_t > mPointVkey;
127 
128  void failTower( Int_t sec, Int_t sub, Int_t eta, TH2F *histo );
129 
130  Int_t nClustersU;
131  Int_t nClustersV;
132  Int_t nPoints;
133  Int_t nPi0;
134  Int_t nEta;
135 
136  ClassDef(StEEmcDisplay,1);
137 
138 };
139 
140 #endif
void clear()
clears all storage arrays, deletes all canvases and histograms
TH1F * DrawClusters(Int_t sector, Int_t plane, Option_t *opts="")
Base class for representing EEMC points.
Definition: StEEmcPoint.h:24
Int_t mHighTowerEtabin
Definition: StEEmcDisplay.h:68
TH2F * DrawPoints(Option_t *opts="box")
TCanvas * getSmdv()
Definition: StEEmcDisplay.h:50
Float_t sumEnergy(Int_t layer)
Int_t mHighTowerPhibin
Definition: StEEmcDisplay.h:67
Base class for representing tower, preshower and postshower elements.
Definition: StEEmcTower.h:11
void add(StEEmcTower tower)
Add a tower to the display.
TCanvas * getPre1()
Definition: StEEmcDisplay.h:51
TH2F * DrawTowers(Option_t *opts="box,text")
Float_t mHighTowerEnergy
Definition: StEEmcDisplay.h:69
EEMC simple geometry.
TH2F * DrawLayer(Int_t layer, Option_t *opts="box,text")
A base class for representing clusters of EEMC smd strips.
TH1F * DrawCluster(Int_t cluster, Option_t *opts="")
TCanvas * getSmdu()
Definition: StEEmcDisplay.h:49
TH1F * DrawSmd(Int_t sector, Int_t plane, Option_t *opts="")
TCanvas * getPre2()
Definition: StEEmcDisplay.h:52
TCanvas * getPost()
Definition: StEEmcDisplay.h:53
Base class for describing an endcap SMD strip.
Definition: StEEmcStrip.h:8
TCanvas * getEEmc()
Definition: StEEmcDisplay.h:48
Int_t hitMultiplicity(Int_t layer, Float_t threshold=0.0)
Returns the number of hit elements in the spcified layer above threshold.